45 个 Dify 工作流上手实录:从 YAML 导入到 Sandbox 调优的完整指南
2026/9/17 12:55:58 网站建设 项目流程

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 个动作

实际操作时,最短闭环是这样:

  1. 准备环境:Docker 部署按官方教程走;想省事的用官方云服务,免费用户可创建最多 5 个流程。版本要求Dify 0.13.0 及以上,因为已支持多任务并行、会话变量、表单、echart 渲染;带 Agent 节点的工作流是 1.0 之后的功能,尽量用最新版导入。
  2. 拿到 YAML:把仓库拉到本地,从DSL/目录挑文件。
    git clone https://gitcode.com/GitHub_Trending/aw/Awesome-Dify-Workflow

    注意:所有 DSL 都是工作流模式,发布为工具后可以嵌入 ChatBot 流程复用。

  3. 导入并配模型:在 Dify 中新建工作流,用"导入"粘贴 YAML 内容或文件。导入后逐个检查 LLM 节点用的 provider 和模型名(比如runLLMCode.yml默认挂的是 deepseek 的 deepseek-coder),换成你账号里已有的模型。
  4. 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 拆成pathtext翻译用的是内置 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.ymljieba.ymlFile_read.yml依赖它。

节点间传 string 提示超限制:改.env里两个值,重启容器:

CODE_MAX_STRING_LENGTH: 1000000 TEMPLATE_TRANSFORM_MAX_LENGTH: 1000000

matplotlib 图表里中文显示为方框:在代码节点里加字体配置:

import matplotlib.pyplot as plt plt.rcParams["font.family"] = ["SimHei", "WenQuanYi Micro Hei", "Heiti TC"]

matplotlib 工作流生成的图表以 base64 形式渲染在聊天回复中。

知识库上传大文件失败.env里改了上传限制还不够,nginx 的限制也要一起改(在.env里搜 nginx),然后重启所有相关容器。另外两个高频小坑顺带说:Markdown 图片在聊天窗口不显示,通常是图片源不支持跨域;知识库永久排队,把.envLOG_FILE=/app/logs/server.log改好再重启容器。

📋 工作流速查表与下一步动作

类别工作流干什么适合谁
数据分析runLLMCode.ymlLLM 生成 pandas 代码,sandbox 执行分析 CSV想"传文件 + 提问"自助化的人
数据分析File_read.ymlsandbox 挂上传目录,pandas 解析文件需要解析上传文件的人
数据处理json-repair.ymljson_repair 修复不规范 JSON下游接 LLM 输出的接口
数据处理json_translate.yml迭代翻译字段,保持 JSON 结构多语言内容本地化
可视化matplotlib.yml画图输出 base64,回复内渲染报表生成
可视化chart_demo.yml回复内容渲染 chart 图表快速出图
翻译中译英.yml直译→反思→意译三步技术文档翻译
翻译全书翻译.yml长文本切分 + 迭代器翻译书籍/长文档
知识库Document_chat_template.yml知识库问答模板客服机器人
知识库图文知识库.yml检索结果图配文展示图文混排知识库
创意春联生成器.ymlLLM + 代码节点格式化对联节日营销
创意Text to Card Iteration.yml自动生成小红书风格卡片内容运营
工具搜索大师.ymlSearXNG + jina 联网问答搜索增强场景
AgentMCP-amap.ymlMCP 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),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询