【实战】Dify从0到100进阶--文档解读(4)开始节点和LLM节点
定义:预设的必备节点,应用运行时首先被触发,用于采集使用者输入的各种信息(文本、文件等),同时注入一系列系统级变量。主要作用采集前置输入:让用户按照应用设计的格式,主动填写关键参数或上传文件,减少后续模型提问的歧义。初始化系统变量:将sys.querysys.app_id等内置变量注入流程,便于整个工作流或对话的上下文管理、分支判断与日志监控。定义:在可视化画布中添加的“调用大语言模型”节点,通过

1.开始节点
开始 节点是每个 Dify Workflow 或 Chatflow 应用的“入口”,负责收集用户的初始输入与上下文信息,为后续节点的执行提供必要的数据支持。
定义与作用
-
定义:预设的必备节点,应用运行时首先被触发,用于采集使用者输入的各种信息(文本、文件等),同时注入一系列系统级变量。
-
主要作用:
- 采集前置输入:让用户按照应用设计的格式,主动填写关键参数或上传文件,减少后续模型提问的歧义。
- 初始化系统变量:将
sys.query、sys.user_id、sys.app_id等内置变量注入流程,便于整个工作流或对话的上下文管理、分支判断与日志监控。
配置项
1. 输入字段(Input Fields)
在“开始”节点的配置页,可自定义为用户收集哪些信息,所有字段都可设为“必填”或“可选”。支持六种类型:
| 类型 | 含义 | 适用场景示例 |
|---|---|---|
| 文本 | 单行短文本,最多 256 字符 | 用户姓名、项目名称、短问句 |
| 段落 | 多行长文本 | 项目背景、详细描述、用例要求 |
| 下拉选项 | 预设固定选项列表 | 产品类型、文档格式、语种选择 |
| 数字 | 仅限数字输入 | 时间范围跨度、数量阈值 |
| 单文件 | 单个文件上传(文档/图片/音视频等) | 用户简历、合同附件、数据样本 |
| 文件列表 | 批量文件上传 | 多份报告、图片集、音视频素材 |
Tip:若需对上传的图片、音频或视频进行进一步处理,可结合“外部数据工具”节点,将文件先传入自定义脚本或第三方服务做格式转换与提取。
2. 系统变量(System Variables)
“开始”节点自动注入平台预设变量,供后续所有节点全局读取。
2.1 Workflow 应用中的系统变量
| 变量名 | 类型 | 说明 |
|---|---|---|
sys.files [LEGACY] |
Array[File] | 用户上传的图片(如启用了“图片上传”)。 |
sys.user_id |
String | 本次运行的唯一用户标识。 |
sys.app_id |
String | 应用(Workflow)本身的唯一标识。 |
sys.workflow_id |
String | 工作流定义的唯一 ID,用于区分不同流程结构。 |
sys.workflow_run_id |
String | 每次流程执行的唯一实例 ID,便于日志跟踪与监控。 |
2.2 Chatflow 应用中的系统变量
| 变量名 | 类型 | 说明 |
|---|---|---|
sys.query |
String | 用户在对话框中首次输入的文本。 |
sys.files |
Array[File] | 用户在对话中上传的文件。 |
sys.dialogue_count |
Number | 当前对话轮数(每触发一次用户输入即 +1),可用于分支逻辑或多轮回顾。 |
sys.conversation_id |
String | 整个会话的唯一标识,保证多轮问答在同一上下文中持续。 |
sys.user_id |
String | 分配给每个使用者的唯一标识符,用于区分不同用户对话。 |
sys.app_id |
String | Chatflow 应用本身的唯一 ID。 |
sys.workflow_id |
String | 与 Workflow 共用,用于记录底层节点结构。 |
sys.workflow_run_id |
String | 与 Workflow 共用,用于日志与监控。 |
使用场景示例
-
智能周报生成
- 输入字段:姓名(文本)、日期区间(下拉或数字)、工作内容(段落)。
- 意义:帮助 LLM 理解要生成哪位同事、哪个时间段的周报,以及背景细节。
-
合同审查助手
- 输入字段:上传合同 PDF(单文件)、选择审查类型(下拉)、补充说明(段落)。
- 意义:自动将合同文本提取入后续“知识检索”节点,再由 LLM 结合类型给出审查要点。
-
多轮对话问答机器人
- 输入字段:首问(文本),可选上传资料(文件列表)。
- 意义:
sys.dialogue_count计数后续对话轮数,实现第 N 轮回顾或自动 summary。
2.LLM节点
LLM 节点 是 Dify 工作流/对话流中调用大语言模型(LLM)的核心组件,它能够处理从“开始”节点传来的自然语言或文件输入,执行生成、理解、分类、翻译、编程等多种任务。
定义与作用
- 定义:在可视化画布中添加的“调用大语言模型”节点,通过已配置的模型与提示词(Prompt),对输入内容进行推理与生成。
- 作用:承接前置节点(如“开始”或“知识检索”)提供的上下文变量,调用选定的 LLM 进行自然语言处理,从而输出文本、分类标签、代码片段、翻译结果等。
应用场景
- 意图识别:对客服咨询进行分类,决定后续流程走向(如退款、技术支持、投诉等)。
- 文本生成:根据主题或关键词,撰写文章、总结报告、营销文案。
- 内容分类:批量处理邮件或评论,自动标注类别(咨询/投诉/垃圾信息)。
- 文本转换:翻译、摘要、格式转换(如 Markdown ↔ HTML)。
- 代码生成:辅助编程需求,生成业务代码、测试用例、SQL 查询等。
- RAG(检索增强生成):结合“知识检索”节点,重新组织检索到的文档段落,给出精准回答。
- 多模态理解:使用具备视觉能力的模型,分析图片或 PDF,回答图像问答。
配置流程
-
添加节点
- 在画布上右键或点击前节点末端的“+”,选择 LLM 节点。
-
选择模型
- 支持 OpenAI(GPT 系列)、Anthropic(Claude 系列)、Google(Gemini 系列)等主流模型。
- 初次使用需至 “系统设置 → 模型供应商” 完成授权与接入。
-
设置模型参数
- 温度、Top P、最大 Token、惩罚系数 等,控制输出的随机性与重复率。
- 可直接选用系统预设的「创意」「平衡」「精确」三套参数。
-
填写上下文
- 将上游节点输出变量(如
result、text、sys.query等)插入为上下文变量,为提示词提供背景信息。
- 将上游节点输出变量(如
-
编写提示词(Prompt)
- 聊天模型:配置 SYSTEM / USER / ASSISTANT 三段角色提示;
- 补全模型:填写单一提示内容。
- 可通过 “/” 调出变量插入菜单,也可使用 提示生成器 AI 辅助起草。
-
高级设置(可选)
- 开启记忆:自动携带对话历史,适用于 Chatflow 多轮对话;
- 视觉功能:勾选支持多模态模型分析文件;
- Jinja-2 模板:在提示词中嵌入逻辑与变量转换,满足复杂业务需求;
- 错误重试:配置最大重试次数与间隔;
- 异常处理:定义备用分支,防止节点失败中断主流程。
特殊变量说明
- 上下文变量:通常指“知识检索”或“文档提取器”节点的输出,用于在提示词中为 LLM 提供外部知识。
- 文件变量:部分模型原生支持 PDF、DOCX、图片等文件输入,可直接在提示词中插入文件变量进行分析。
- 会话历史:仅在 Chatflow 且选用补全模型时可用,用于将历史对话注入当前 Prompt。
结构化输出(JSON Schema)
- 目的:让 LLM 按预定义的 JSON 结构输出,保证字段类型与层级可解析、可验证。
- 可视化编辑:拖拽式添加字段,填写名称、类型(string/number/object/array)、描述和枚举等属性。
- 代码编辑:直接编写或粘贴完整 JSON Schema,支持高级特性如
pattern、oneOf。 - AI 生成:在编辑器内调用模型,自动从示例 JSON 或自然语言描述生成 Schema。
- 使用方式:在 LLM 节点 “输出变量” 区域打开“结构化开关”后配置。
高级功能
-
记忆与对话角色
- 调整记忆窗口大小或精确控制传递轮数;
- 自定义角色前缀(如 Human/Assistant、User/AI),提升多模型兼容性。
-
Jinja-2 模板
- 通过模板语法进行条件判断、循环、变量格式化,轻量实现数据转换。
-
错误重试与异常处理
- 支持最多 10 次自动重试,间隔可设(如 5000ms);
- 异常分支可捕捉 Token 超限、缺少变量等错误,自定义备用输出或分支流程。
典型使用案例
-
知识库问答
- “知识检索”节点检索相关文档段落→输出
result; - 在 LLM 节点“上下文变量”插入
result; - Prompt 中引导模型引用知识、给出答案与出处。
- “知识检索”节点检索相关文档段落→输出
-
ChatPDF 应用
- “开始”节点上传 PDF 文件→
sys.files; - 上游添加“文档提取器”节点提取文本→
text; - 在 LLM Prompt 中插入
text,实现对 PDF 内容的问答。
- “开始”节点上传 PDF 文件→
-
客户信息采集表单
- 设计结构化输出 Schema(如
name、email、phone等字段); - LLM 节点按 Schema 返回 JSON;
- 下游节点可直接解析并存入数据库。
- 设计结构化输出 Schema(如
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)