第 6 期:Workflow 101 — 可视化画布入门
[Translation Pending]\n\n## Workflow 全景
graph LR
Start[🟢 Start 开始节点] --> LLM[🤖 LLM 节点]
LLM --> Code[💻 Code 代码节点]
Code --> IF{🔀 IF/ELSE}
IF -->|是| HTTP[🌐 HTTP 请求]
IF -->|否| Template[📝 模板转换]
HTTP --> End[🔴 End 结束节点]
Template --> End20+ 节点类型速览
| 类别 | 节点 | 用途 |
|---|---|---|
| 控制流 | 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())
}
}