第 6 期:Workflow 101 — 可视化画布入门

更新于 2026/4/6

Workflow 全景

graph LR
    Start[🟢 Start 开始节点] --> LLM[🤖 LLM 节点]
    LLM --> Code[💻 Code 代码节点]
    Code --> IF{🔀 IF/ELSE}
    IF -->|是| HTTP[🌐 HTTP 请求]
    IF -->|否| Template[📝 模板转换]
    HTTP --> End[🔴 End 结束节点]
    Template --> End

20+ 节点类型速览

类别 节点 用途
控制流 Start 工作流入口,定义输入变量
控制流 End 工作流出口,定义输出
控制流 IF/ELSE 条件分支路由
控制流 Iterator 循环遍历数组
控制流 Parallel 并行执行多条分支
AI LLM 调用大语言模型
AI Knowledge Retrieval 知识库检索
AI Question Classifier 意图分类
处理 Code 执行 Python/JS 代码
处理 Template Transform Jinja2 模板渲染
处理 Variable Aggregator 变量聚合
处理 Variable Assigner 变量赋值
外部 HTTP Request 调用外部 API
外部 Tool 调用内置/自定义工具
辅助 Answer 直接输出文本回复
辅助 Parameter Extractor 从文本提取结构化参数

变量引用语法

Dify 使用 / 分隔的路径语法引用节点输出:

# 引用 Start 节点的输入变量
{{#start.input_text#}}

# 引用 LLM 节点的输出
{{#llm_1.text#}}

# 引用 Code 节点的输出
{{#code_1.result#}}

# 系统变量
{{#sys.user_id#}}
{{#sys.app_id#}}
{{#sys.workflow_id#}}

实战:创建一个文章摘要 + 翻译 Pipeline

graph LR
    S[Start - 输入文章] --> LLM1[LLM: 生成中文摘要]
    LLM1 --> LLM2[LLM: 翻译为英文]
    LLM2 --> Code[Code: 格式化输出JSON]
    Code --> E[End - 输出结果]

Start 节点配置

定义输入变量 article_text(类型:Paragraph)。

LLM 节点 1 — 摘要

System Prompt:
你是一个专业的文章摘要生成器。
请将以下文章概括为 3-5 句话的中文摘要,保留核心观点。

User Prompt:
{{#start.article_text#}}

LLM 节点 2 — 翻译

System Prompt:
将以下中文文本翻译为地道的英文。

User Prompt:
{{#llm_1.text#}}

Code 节点 — 格式化

def main(summary_zh: str, summary_en: str) -> dict:
    return {
        "result": {
            "chinese_summary": summary_zh,
            "english_summary": summary_en,
            "word_count_zh": len(summary_zh),
            "word_count_en": len(summary_en.split())
        }
    }