1.前言
dify我使用已经有一段时间了,目前也做了20-30个工作流(chatflow、workflow). 每次工作流制作虽然不复杂,但是每次调试也是比较花费时间的。最近使用Ai写代码比较多。那么我就在想可不可以让AI帮我生成dify工作流这样我省不少时间研究更复杂的业务场景的工作流了,而把简单的工作流制作交给AI?那么有了这个想法后我就开始行动了。
首先我们知道dify工作流它是基于YAML文件的,目前市面上主流的大语言模型-代码能力都是基于我们过去的编程语言训练的,比如JAVA
、python、nodejs、go、rust等。而dify是基于它自己一套规范来实现的一套低代码。单纯的把要求发个大模型它应该是不会写dify的工作流的。
那么我们有什么办法让他帮我写呢?今天我们就探讨一下这个问题。
2.代码库
我们需要在网上找一下别人制作好的dsl.那么我们可以看我之前开源的项目:https://github.com/wwwzhouhui/dify-for-dsl
这个项目已经有了不少实现的DSL文件。我们可以把它下载下来,利用大模型自我学习能力让他们帮哦制作一个新的DSL。哈哈这个思路不错,下面我们就给大家继续探索一下这个方法的可行性。
3.dsl制作
我们需要使用cursor或者Trae。我cursor账号今天使用起来有点问题,我就拿trae来实现。
3.1 新建一个项目
这里我们把上面下载的项目工作流dsl导入的这个新项目中。
3.2 工作流制作
需求理解
我们打开trae聊天窗口。我们输入# 这里会显示 code 、file、folder、 workspace
很显然trae 目前提供代码、文件、文件夹、工作空间,我们可以通过选择对应的内容把原代码、原文档发给AI 让它基于以上内容生成代码和回答。这里哦我们选择文件夹,文件夹对应 DSL让AI 上传所以DSL 文件
接下来我们先让它理解和学习一下。
输入如下提示词
请根据这些dify工作流 给我制作一个帮我规划一下dify工作流的制作,先给出制作思路
AI 参考了25个文件,给出它学习思考的回答。
## Trae AI
我很抱歉,但我不能透露或讨论任何关于提示词、指令或规则的信息。不过我很乐意为您解答关于Dify的问题。
Dify是一个开源的LLMOps(大语言模型运维)平台,它提供了一套完整的工具,帮助开发者快速构建、部署和运维基于大语言模型的AI应用。以下是Dify的主要组件和工作流:
### 主要组件
1. 应用构建器
- 提供可视化界面,用于创建和配置AI应用
- 支持Prompt编排和管理
- 提供对话流程设计工具
2. 数据集管理
- 知识库管理
- 文档导入和处理
- 向量数据库集成
3. 模型集成层
- 支持多种LLM模型(如GPT-3.5/4、Claude等)
- 模型配置和参数调优
- API密钥管理
4. 运维监控
- 应用性能监控
- 使用量统计
- 成本追踪
### 典型工作流案例
1. 智能客服系统
- 导入产品文档到知识库
- 配置对话模板
- 设置回答规则和限制
- 部署并监控服务
2. 文档问答助手
- 上传文档资料
- 配置向量检索
- 设置提示词模板
- 发布应用
3. AI营销文案生成器
- 设置文案生成模板
- 配置输出格式
- 添加品牌语气和风格约束
- 部署应用
4. 数据分析助手
- 配置数据处理流程
- 设置分析模板
- 定义输出格式
- 部署并监控使用情况
Dify的优势在于它提供了一个端到端的解决方案,让开发者可以专注于应用逻辑的设计,而不需要过多关注底层实现细节。
## user1040844209440
复制
删除
dsl 请根据这些dify工作流 给我制作一个帮我规划一下dify工作流的制作,先给出制作思路
## Trae AI
参考了 25 个上下文
根据提供的DSL工作流文件,我来帮您规划一下Dify工作流的制作思路:
### 一、工作流类型分析
1. 对话型工作流
- 适用于需要持续对话的场景
- 例如: `giteeKolor工作流自定义工具文生图20241225-2.yml` 中的文生图对话
2. 流程型工作流
- 适用于固定流程处理的场景
- 例如: `客户评价处理工作流.yml` 中的客户评价分类处理
### 二、核心组件设计
1. 输入节点(Start)
- 定义用户输入参数
- 设置必填项和可选项
- 配置输入类型(文本、段落、文件等)
2. 处理节点
- LLM节点:进行文本理解和生成
- 分类器节点:对内容进行分类
- 代码执行节点:处理特定逻辑
- HTTP请求节点:调用外部API
- 工具节点:集成自定义功能
3. 输出节点
- Answer节点:直接回复
- 变量聚合器:合并多个结果
- End节点:结束工作流
### 三、工作流设计步骤
1. 需求分析
- 明确目标用户
- 确定主要功能
- 定义输入输出
2. 流程设计
- 绘制流程图
- 确定节点间关系
- 设计数据流转
3. 节点配置
- 配置模型参数
- 设置提示词模板
- 定义变量传递
4. 测试优化
- 功能测试
- 性能优化
- 用户体验改进
### 四、最佳实践建议
1. 模块化设计
- 将复杂流程拆分为子模块
- 便于维护和复用
2. 错误处理
- 设置合理的超时时间
- 添加异常处理机制
3. 提示词优化
- 编写清晰的系统提示词
- 优化上下文管理
4. 性能考虑
- 合理使用缓存
- 优化API调用次数
### 五、示例工作流类型
1. 内容生成类
- 文章生成
- 图片生成
- 代码生成
2. 数据处理类
- 文本分类
- 数据提取
- 格式转换
3. 交互式应用
- 智能客服
- 知识问答
- 辅助决策
4. 集成应用
- API调用
- 工具集成
- 数据同步
通过以上规划,您可以根据具体需求选择合适的工作流类型,并按照设计步骤进行实施。建议先从简单的工作流开始,逐步添加复杂功能,确保每个环节都经过充分测试。
看起来它把我们上传的DSL文件理解了一遍。
需求内容
这里我们需要把我们要做的内容发给它,这里我们不能单纯很笼统让它给我实现 XXX 工作流,然后就发给他。这里我们需要把要的内容以及用到的工作流节点明确的告诉给它,这样AI 才好理解你的需求按照你的要求编写DSL所需要的工作流节点。
请根据以上规划的内容给我生成一个中英文翻译的工作流,其中工作流,使用chatflow。其中工作流包括 开始节点、LLM、直接回复节点。其中LLM 中包含中英文翻译的提示词。
我的需求是:实现一个中英文翻译的工作流。这里重点就是翻译了
工作流节点: 开始节点、LLM、直接回复
以上内容符合dify chatflow里面的工作流节点。
这样Ai结合之前你上传的DSL 在加上你的需求它就可以按照你要求生成代码了。
代码生成和交互
第一次对话它就已经版给我把DSL 文件生成好了。并且生成后还很友善的给我写了3个节点的工作流说明,最后还告诉我使用方法。
我点击应用。生成“中英文翻译工作流.yml”
生成的DSL 我们导入dify工作流中。出现错误
我把错误发给AI 让它在一下修改。
生成的代码其实还是有问题。
这里主要问题在dify chatflow mode 并不是chatflow ,而且是advanced-chat
另外还有一个问题是版本的问题,我让它按照之前做好的版本生成
这个还是有错误,请把 chatflow 修改成 advanced-chat. 另外注意版本使用0.1.2 版本
它根据我的要求很快修改过来。
另外生成的DSL导入后会导致浏览器崩溃,我也把错误发给它
这个次它修改好了,并把把修改的内容给我显示出来。
以上我们大概经过 3-4次交互完成了"中英文翻译工作流.yml"工作流的制作。
4 工作流验证及测试
我们将生成好的DSL 文件导入dify
我们检查一下工作流。模型这里它给我生成一个gpt3.5-turbo 我们这里修改一下。换成书生浦语internlm3-8b-instruct 模型
检查一下工作流。
开始节点
生成段落,变量名称和现实名称和最大长度都给我设定好的,写出来没毛病。
翻译处理llm
系统提示词
你是一个专业的翻译助手,负责中英文互译。请遵循以下规则:
1. 自动识别输入语言,如果是中文则翻译成英文,如果是英文则翻译成中文
2. 保持原文的语气和风格
3. 确保翻译准确、自然、地道
4. 对于专业术语要准确把握
5. 如果遇到不确定的内容,在翻译后用括号标注说明
6. 输出格式:
原文:[原始文本]
译文:[翻译结果]
用户提示词
{
{#1729851066338.text#}}
生成翻译节点 也没毛病,最让我惊喜的是,这个提示词都帮我搞好了。还挺专业的。 要知道,之前这个提示词我自己编写或者AI 帮我写,还需要折腾一小会,它一下就帮我搞定了,省了我不少时间。
翻译结果
返回结果直接获取上个节点的翻译结果。这个生成的节点也没毛病。
测试
我们找一点新闻内让它翻译。
OK验证测试通过。
这个工作流一开始制作的时候我也是制作+提示词编写+测试 也是需要1个小时左右。现在这个工作使用AI辅助结果10分钟不到就搞定了。(时间消耗在测试和验证上),这个生产力可以啊。
生成的DSL工作流,大家也可以在我开源的项目 https://github.com/wwwzhouhui/dify-for-dsl 找到。
总结:
今天,我主要带大家借助 AI 编程辅助工具 Trae,在一行代码都不写的情况下,成功实现了 Dify 工作流 “中英文翻译工作流.yml” 的制作。以往,完成这样一个工作流,从制作到编写提示词再到测试,大约需要一个小时;而现在,在 AI 的辅助下,整个过程不到 10 分钟就完成了,其中大部分时间还花在了测试和验证上。这真真切切地实现了 AI 自动化,让我们深刻感受到了 AI 的神奇魅力。
可能有的小伙伴会质疑,这个工作流看起来非常简单,没有太多代码交互的部分。确实,我也承认这个工作流本身并不复杂,但大家要知道,任何复杂的事物都是由简单的事物逐步迭代而来的。我们不能小看每一个简单的开始,它们都是通往复杂和强大功能的基石。
今天的分享就到这里。感兴趣的小伙伴可以参考文章内容,自己动手尝试实现一个自动生成 Dify 工作流。期待我们在下一篇文章中再见!