45 个 Dify 工作流上手实录:从 YAML 导入到 Sandbox 调优的完整指南
【免费下载链接】Awesome-Dify-Workflow分享一些好用的 Dify DSL 工作流程,自用、学习两相宜。 Sharing some Dify workflows.项目地址: https://gitcode.com/GitHub_Trending/aw/Awesome-Dify-Workflow
每次让 LLM 输出 JSON,你都先看到少个引号、多个括号;每次想分析一个 CSV,又得现写一段 pandas 脚本。Awesome-Dify-Workflow 就是来省掉这些活路的:一个直接导入即用的 Dify 工作流集合,仓库里目前有 45 个 YAML 工作流,覆盖翻译、数据分析、代码执行、知识库问答、创意内容等 10 多个场景。
🩹 这三类重复劳动,可以直接交给现成工作流
先说几个几乎每个做过 LLM 应用的人都踩过的场景。
LLM 输出的 JSON 不可解析。少引号、多括号、单引号混用,下游接口一接就崩。仓库里的json-repair.yml用一个代码节点调json_repair.repair_json(llm_string, ensure_ascii=False),把坏 JSON 修成可解析格式,整条流程只有 开始→代码执行→结束 三个节点。
要翻译 JSON 里的字段,又不能破坏结构。整个丢给 LLM 翻译,键名和嵌套结构很容易被打散。json_translate.yml的做法是先把可翻译文本连同字段路径抽出来,进迭代器逐条翻译,再按原路径拼回去,结构不动。
LLM 生成了分析代码,但没地方跑。runLLMCode.yml把"生成代码"和"执行代码"串成了闭环:LLM 用 pandas 写分析脚本,代码节点提取出纯代码,再通过 HTTP 请求打到 sandbox 执行,最后把 stdout 当结果返回。对,Dify 的代码节点不能直接执行 LLM 的产出,这个工作流演示了怎么绕过它。
换句话说,你不用再为这些"脏活"各写一套解析脚本,导入对应 YAML,改改提示词就能用。
📥 第一次导入 Dify 工作流的 4 个动作
实际操作时,最短闭环是这样:
- 准备环境:Docker 部署按官方教程走;想省事的用官方云服务,免费用户可创建最多 5 个流程。版本要求Dify 0.13.0 及以上,因为已支持多任务并行、会话变量、表单、echart 渲染;带 Agent 节点的工作流是 1.0 之后的功能,尽量用最新版导入。
- 拿到 YAML:把仓库拉到本地,从
DSL/目录挑文件。git clone https://gitcode.com/GitHub_Trending/aw/Awesome-Dify-Workflow注意:所有 DSL 都是工作流模式,发布为工具后可以嵌入 ChatBot 流程复用。
- 导入并配模型:在 Dify 中新建工作流,用"导入"粘贴 YAML 内容或文件。导入后逐个检查 LLM 节点用的 provider 和模型名(比如
runLLMCode.yml默认挂的是 deepseek 的 deepseek-coder),换成你账号里已有的模型。 - Test Run 跑一遍:用右侧测试面板给开始节点填参数。
runLLMCode.yml这类需要上传文件的,记得先上传一个 CSV 再发 query。
展示的是 Dify 中导入 YAML 工作流的界面,导入后节点结构会完整还原。
🔎 runLLMCode:上传 CSV + 一句话,换一份分析结果
想让业务同事把一张销售 CSV 拖进来问"这个月哪个渠道掉得最多",却不想自己写数据管道的人,会被它救一命。
流程一句话:开始(File + query)→ 获取文件路径→ 读取 CSV→ LLM 生成 pandas 代码→ 提取代码→ sandbox 执行→ 返回结果。
runLLMCode 工作流的完整节点编排:文件定位、CSV 预览、LLM 生成代码到 sandbox 执行。
关键节点逐个看。获取文件路径是个代码节点:Dify 把上传文件落到/upload_files目录,它用开始节点传入的文件 size 去匹配目录里 mtime 最新的文件,拿到真实路径——这是 LLM 摸不到文件系统时的常规桥接手法。读取 CSV节点用 pandas 读head(5)生成 Markdown 表,再附上总行数、总列数、列名,作为数据样本塞进 LLM 上下文,模型不用"盲写"代码。LLM节点的系统提示词限定它是数据处理专家、习惯用 pandas,用户提示词里还先让它判断"这是不是数据处理需求",不是就反问用户。提取 LLM 中的代码用正则```python(.*?)```从 Markdown 里抠出第一个代码块。sandbox 执行代码是个 HTTP 请求节点,POST 到http://sandbox:8194/v1/sandbox/run,header 带X-Api-Key: dify-sandbox,body 就是{"code": ..., "language": "python3"}。提取输出内容再从响应里取data['data']['stdout']。
谁能直接抄作业:所有想把"传文件 + 提问"包装成自助工具、挂进客服机器人或内部平台的团队。改两个地方就能换成你的业务:CSV 预览逻辑和 LLM 的提示词。
🔎 json_translate:翻译 JSON 而不打散它的结构
做多语言内容、API 数据本地化,手里是一大坨带嵌套的 JSON 的人,会被它救一命。它和json-repair.yml是一对:一个修格式,一个保结构翻译。
流程一句话:抽取→ 迭代→ (解析→ 翻译→ 合并)→ 组装→ 结束。
json_translate 工作流:抽取可翻译字段,迭代器内逐条翻译后按原路径组装回 JSON。
抽取节点递归遍历 JSON,收集出items_to_translate数组,每个元素带着字段路径和文本。迭代节点配了parallel_nums: 10,10 路并行逐条处理,长 JSON 也压得住时长。迭代内部三步:解析把 item 拆成path和text;翻译用的是内置 google_translate 工具,目标语言在tool_configurations.dest里改,想换其他翻译引擎也可以把这个节点换掉;合并把译文写回 item 的translated_text字段。组装最后按原路径把译文填回,输出一份结构完全一致的 JSON。
能抄作业的场景:商品描述多语言化、i18n 配置文件批量翻译、接口出参按语言切换。如果你的上游是 LLM 生成的脏 JSON,先串一个json-repair.yml再进这条流程。
其余工作流一句话速览
matplotlib.yml:matplotlib 画图输出 base64、直接回复里渲染图片;File_read.yml:sandbox 挂上传目录,pandas 解析 CSV 示例;中译英.yml:直译→反思→意译三步出高质量英文;全书翻译.yml走长文本切分 + 迭代器;搜索大师.yml:SearXNG 搜索 + jina 抓取正文做问答;SEO Slug Generator.yml:从博文标题生成 URL slug;Document_chat_template.yml:知识库问答模板,客服机器人直接套用;图文知识库/图文知识库.yml:知识库检索结果做到"图配文",知识库 Markdown 里放图片远程链接即可;MCP-amap.yml:用 MCP Agent 策略调高德地图在线服务,申请个免费 Key 就能试;chart_demo.yml:回复内容里渲染 chart 图表;记忆测试.yml:短期记忆 + CoT 思维链的机器人示例;春联生成器.yml:LLM 生成对联 + 代码节点格式化,字体要求电脑上有,可按需改。
🛠️ 四类报错,对应的四个修法
报operation not permitted(sandbox 里跑 pandas、numpy>2.0、matplotlib 老报错):官方 sandbox 权限限制比较死,装完 matplotlib 也用不了。两条路:往/docker/volumes/sandbox/dependencies/python-requirements.txt里加依赖后重启 sandbox,或者直接用作者做的简化版沙箱 dify-sandbox-py,pandas、numpy、matplotlib、scikit-learn 都测过可用。仓库 README 里明确说matplotlib.yml、jieba.yml、File_read.yml依赖它。
节点间传 string 提示超限制:改.env里两个值,重启容器:
CODE_MAX_STRING_LENGTH: 1000000 TEMPLATE_TRANSFORM_MAX_LENGTH: 1000000matplotlib 图表里中文显示为方框:在代码节点里加字体配置:
import matplotlib.pyplot as plt plt.rcParams["font.family"] = ["SimHei", "WenQuanYi Micro Hei", "Heiti TC"]matplotlib 工作流生成的图表以 base64 形式渲染在聊天回复中。
知识库上传大文件失败:.env里改了上传限制还不够,nginx 的限制也要一起改(在.env里搜 nginx),然后重启所有相关容器。另外两个高频小坑顺带说:Markdown 图片在聊天窗口不显示,通常是图片源不支持跨域;知识库永久排队,把.env的LOG_FILE=/app/logs/server.log改好再重启容器。
📋 工作流速查表与下一步动作
| 类别 | 工作流 | 干什么 | 适合谁 |
|---|---|---|---|
| 数据分析 | runLLMCode.yml | LLM 生成 pandas 代码,sandbox 执行分析 CSV | 想"传文件 + 提问"自助化的人 |
| 数据分析 | File_read.yml | sandbox 挂上传目录,pandas 解析文件 | 需要解析上传文件的人 |
| 数据处理 | json-repair.yml | json_repair 修复不规范 JSON | 下游接 LLM 输出的接口 |
| 数据处理 | json_translate.yml | 迭代翻译字段,保持 JSON 结构 | 多语言内容本地化 |
| 可视化 | matplotlib.yml | 画图输出 base64,回复内渲染 | 报表生成 |
| 可视化 | chart_demo.yml | 回复内容渲染 chart 图表 | 快速出图 |
| 翻译 | 中译英.yml | 直译→反思→意译三步 | 技术文档翻译 |
| 翻译 | 全书翻译.yml | 长文本切分 + 迭代器翻译 | 书籍/长文档 |
| 知识库 | Document_chat_template.yml | 知识库问答模板 | 客服机器人 |
| 知识库 | 图文知识库.yml | 检索结果图配文展示 | 图文混排知识库 |
| 创意 | 春联生成器.yml | LLM + 代码节点格式化对联 | 节日营销 |
| 创意 | Text to Card Iteration.yml | 自动生成小红书风格卡片 | 内容运营 |
| 工具 | 搜索大师.yml | SearXNG + jina 联网问答 | 搜索增强场景 |
| Agent | MCP-amap.yml | MCP Agent 策略调高德地图 | 位置服务应用 |
接下来做三件事就行:今天先导入json-repair.yml,拿一段 LLM 输出的坏 JSON 跑一次 Test Run,十分钟能建立"导入—配模型—跑通"的肌肉记忆;然后把runLLMCode.yml里的 LLM 模型换成你自己的,上传一份真实 CSV 验证闭环;如果跑出自己的改进版本,欢迎回仓库提 issue 或补个说明,让下一个人少走弯路。
【免费下载链接】Awesome-Dify-Workflow分享一些好用的 Dify DSL 工作流程,自用、学习两相宜。 Sharing some Dify workflows.项目地址: https://gitcode.com/GitHub_Trending/aw/Awesome-Dify-Workflow
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考