Programmatically generate Dify-compatible workflow DSL files with Python.
这个仓库解决一个具体问题:
当一个 Dify workflow 已经被验证过,不应该每次都在界面里手动拖节点、连线、改变量,而应该用代码生成、复用和版本管理。
适合场景:
- 批量生成相似 workflow
- 把标准化流程沉淀成模板
- 用 Git 管理 workflow 变更
- 为数据问答、内容生成、文档处理、SQL Review 等场景生成可导入的 Dify YAML
- 把 Dify workflow 和 n8n / Claude SDK / Codex 等工具链做流程映射
当前版本更适合作为开发者工具和模板生成器,不是完整的商业化 workflow 平台。
这个项目提供:
- Python API:用代码创建 workflow、node 和 edge
- Fluent Builder:链式构建简单 workflow
- YAML 导出:生成 Dify 可导入的 DSL 文件
- 基础校验:检查节点、连接和必要字段
- 示例 workflow:翻译、数据分析、workflow generator
- CLI 入口:用于构建、校验、导出和查看模板
很多 workflow 有两类部分:
变化部分:业务问题、字段、提示词、输出格式
固定部分:节点顺序、变量传递、校验规则、失败处理、人工确认
变化部分可以交给 AI。
固定部分应该沉淀成代码和模板。
这就是这个仓库的定位:让 Dify workflow 变成可复制、可审查、可版本管理的工程资产。
git clone https://github.com/SevenDataAI/dify-workflow-generator.git
cd dify-workflow-generator
pip install -e .开发环境:
pip install -e ".[dev]"from dify_workflow import Workflow, StartNode, LLMNode, EndNode
wf = Workflow(
name="content_rewrite",
description="Rewrite user input into a cleaner version",
mode="workflow",
)
start = StartNode(variables=[
{"name": "text", "type": "string", "label": "原文", "required": True},
])
rewrite = LLMNode(
title="润色文本",
prompt="""请把下面这段文字改得更清楚、更自然。
原文:
{{#start.text#}}
""",
)
end = EndNode(outputs=[
{"variable": "result", "value_selector": ["润色文本", "text"]},
])
wf.add_nodes([start, rewrite, end])
wf.connect(start, rewrite)
wf.connect(rewrite, end)
wf.export("content_rewrite.yml")生成的 YAML 可以导入 Dify 后继续调整。
输入:
- 选题
- 目标受众
- 资料链接
- 转化目标
节点:
Start
-> 受众分析
-> 核心观点提炼
-> 脚本生成
-> 多平台文案生成
-> 人工审核提示
-> End
适合:
- 短视频脚本
- 小红书笔记
- B 站技术视频简介
- 私信承接话术
输入:
- CSV 字段说明
- 业务背景
- 分析目标
节点:
Start
-> 字段理解
-> 分析计划生成
-> Code 节点计算核心指标
-> LLM 生成结论
-> 人工复核提示
-> End
关键原则:
- 指标计算尽量用 Code 节点,不要让 LLM 编数字
- 业务解释可以让 LLM 写,但必须标记“基于哪些指标”
- 没有数据支撑的结论不能进入最终报告
输入:
- 用户问题
- AI 生成 SQL
- 表结构
- 指标口径
节点:
Start
-> SQL 风险识别
-> 分区检查
-> 敏感字段检查
-> 指标口径检查
-> Review 结果解释
-> End
适合:
- AI 问数
- AI 取数
- NL2SQL
- 数据开发辅助
这类场景里,Dify 不应该直接执行高风险 SQL。更合理的方式是:Dify 负责生成和解释,真正执行前由外部网关、审批或数据平台做最后控制。
常用命令:
dify-workflow validate workflow.yml
dify-workflow visualize workflow.yml --format mermaid
dify-workflow docs workflow.yml -o docs.md
dify-workflow template list如果你的本地环境没有安装包,可以直接运行源码里的脚本或先执行:
pip install -e .dify_workflow/
workflow.py # Workflow object
nodes.py # Node definitions
builder.py # Fluent builder
cli.py # CLI entry
importer.py # YAML import
docs.py # Documentation generation
templates.py # Built-in templates
examples/
create_workflows.py
ai_data_analysis.py
这个项目还在整理阶段,当前需要注意:
- Dify DSL 版本变化可能导致导入兼容性差异
- 复杂 workflow 仍建议导入 Dify 后人工检查
- 数据库执行、权限系统、审批流应放在外部系统中控制
- AI 生成 workflow 的部分只能作为草稿,不能直接当生产配置
- 部分 experimental 文件仍在清理中,不建议作为正式接口依赖
- 整理更稳定的 Dify DSL schema
- 增加 data-analysis workflow 模板
- 增加 SQL Review workflow 模板
- 增加 content workflow 模板
- 增加 workflow.yaml -> Dify DSL 转换示例
- 增加 n8n / Claude SDK / Codex 映射文档
- 增加导入 Dify 后的人工检查清单
- 清理 historical experimental docs
ai-workflow-recipes:普通人也能用的 AI 工作流模板库data-agent-eval-kit:AI 问数 / NL2SQL 评测模板
MIT