Skip to content

SevenDataAI/dify-workflow-generator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dify Workflow Generator

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 平台。

What It Does

这个项目提供:

  • Python API:用代码创建 workflow、node 和 edge
  • Fluent Builder:链式构建简单 workflow
  • YAML 导出:生成 Dify 可导入的 DSL 文件
  • 基础校验:检查节点、连接和必要字段
  • 示例 workflow:翻译、数据分析、workflow generator
  • CLI 入口:用于构建、校验、导出和查看模板

Why Code-Generated Workflow

很多 workflow 有两类部分:

变化部分:业务问题、字段、提示词、输出格式
固定部分:节点顺序、变量传递、校验规则、失败处理、人工确认

变化部分可以交给 AI。

固定部分应该沉淀成代码和模板。

这就是这个仓库的定位:让 Dify workflow 变成可复制、可审查、可版本管理的工程资产。

Installation

git clone https://github.com/SevenDataAI/dify-workflow-generator.git
cd dify-workflow-generator

pip install -e .

开发环境:

pip install -e ".[dev]"

Quick Start

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 后继续调整。

Practical Recipes

1. 内容脚本生成

输入:

  • 选题
  • 目标受众
  • 资料链接
  • 转化目标

节点:

Start
  -> 受众分析
  -> 核心观点提炼
  -> 脚本生成
  -> 多平台文案生成
  -> 人工审核提示
  -> End

适合:

  • 短视频脚本
  • 小红书笔记
  • B 站技术视频简介
  • 私信承接话术

2. 数据分析报告

输入:

  • CSV 字段说明
  • 业务背景
  • 分析目标

节点:

Start
  -> 字段理解
  -> 分析计划生成
  -> Code 节点计算核心指标
  -> LLM 生成结论
  -> 人工复核提示
  -> End

关键原则:

  • 指标计算尽量用 Code 节点,不要让 LLM 编数字
  • 业务解释可以让 LLM 写,但必须标记“基于哪些指标”
  • 没有数据支撑的结论不能进入最终报告

3. AI 生成 SQL 审查

输入:

  • 用户问题
  • AI 生成 SQL
  • 表结构
  • 指标口径

节点:

Start
  -> SQL 风险识别
  -> 分区检查
  -> 敏感字段检查
  -> 指标口径检查
  -> Review 结果解释
  -> End

适合:

  • AI 问数
  • AI 取数
  • NL2SQL
  • 数据开发辅助

这类场景里,Dify 不应该直接执行高风险 SQL。更合理的方式是:Dify 负责生成和解释,真正执行前由外部网关、审批或数据平台做最后控制。

CLI

常用命令:

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 .

Project Structure

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

Current Limitations

这个项目还在整理阶段,当前需要注意:

  • Dify DSL 版本变化可能导致导入兼容性差异
  • 复杂 workflow 仍建议导入 Dify 后人工检查
  • 数据库执行、权限系统、审批流应放在外部系统中控制
  • AI 生成 workflow 的部分只能作为草稿,不能直接当生产配置
  • 部分 experimental 文件仍在清理中,不建议作为正式接口依赖

Roadmap

  • 整理更稳定的 Dify DSL schema
  • 增加 data-analysis workflow 模板
  • 增加 SQL Review workflow 模板
  • 增加 content workflow 模板
  • 增加 workflow.yaml -> Dify DSL 转换示例
  • 增加 n8n / Claude SDK / Codex 映射文档
  • 增加导入 Dify 后的人工检查清单
  • 清理 historical experimental docs

Related Projects

License

MIT

About

Python toolkit for generating and validating Dify workflow DSL files.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors