5. 创建 Chatflow


功能介绍

Chatflow 是 Dify 中功能最强大的对话式应用类型。与基础聊天助手不同,Chatflow 采用工作流画布的方式来编排对话逻辑,你可以通过拖拽节点和连线来定义 AI 的对话处理流程。这意味着你可以实现条件分支(根据用户意图走不同的处理路径)、多步骤推理(先检索知识库、再调用 LLM 生成回答)、以及复杂的数据处理逻辑。

Chatflow 的默认结构是"开始节点 → LLM 节点 → 直接回复",但你可以在其中插入知识检索、条件分支、代码执行等任意节点,构建出高度定制化的对话体验。Chatflow 特别适合需要精细控制对话流程的业务场景,比如多步骤的客服系统、问诊导诊流程、或者复杂的信息收集对话。

使用方法

image-20260407151103998

选择「Chatflow」类型,输入应用名称和描述,点击创建。

image-20260407151158580

进入工作流画布,系统会自动创建默认的三节点结构(用户输入 → LLM → 直接回复)。

image-20260407151840204

点击开始节点,在右侧面板中添加变量。

image-20260407152014209

image-20260407152106433

配置变量,然后保存。

image-20260407154516890

添加一个「条件分支」节点。输入端与开始节点相连。

image-20260407154828598

再添加一个「LLM 2」节点。

image-20260407154706792

「条件分支」节点的「IF」和「ELSE」端分别连接「LLM」节点和「LLM 2」节点

image-20260407154936689

点击「LLM」节点,输入提示词,并将开始节点的变量名用{}引用到提示词中。

image-20260407160135963

点击「LLM 2」节点,输入提示词,并将开始节点的变量名和用户最新输入的变量名{}引用到提示词中。

image-20260407160240989

「LLM 2」节点需开启「记忆」功能。

image-20260407161606982

点击「条件」节点,配置条件。当sys.dialogue_count(对话轮次)等于1时,走「LLM」节点,否则走「LLM 2」节点。

image-20260407161627237

将「LLM」节点和「LLM 2」节点与「直接回复」节点相连。

image-20260407161642917

点击「直接回复」节点,将「LLM」节点和「LLM 2」节点的输出添加上去。

image-20260407161703943

点击右上角的「预览」按钮进行对话测试。

image-20260407162137313

测试完后点击「发布」即可。

image-20260407162220775

发布后的应用可以在「探索」界面的左侧边栏使用。

与聊天助手的区别

对比维度聊天助手Chatflow
编排方式表单式配置可视化工作流画布
逻辑复杂度简单线性对话支持条件分支、循环、并行处理
知识库集成直接关联通过「知识检索」节点灵活集成
自定义程度较低极高,可自由组合各种节点
学习成本中等
适合场景简单问答、通用对话复杂业务流程、精细化对话控制

使用技巧

  • 设计 Chatflow 前先画好流程图,明确用户的可能路径和分支条件。
  • 善用「问题分类器」节点对用户输入进行意图识别,将不同类型的问题路由到不同的处理分支。
  • LLM 节点支持开启「记忆」功能,可以保留对话历史上下文。记忆窗口默认为 10 轮,可以根据需要调整。
  • 在 LLM 节点的提示词中,可以引用「知识检索」节点的输出作为上下文,实现 RAG 增强。
  • 复杂的 Chatflow 建议使用注释节点标注每个分支的用途,方便团队协作和后续维护。

示例

示例一:电商售后客服 Chatflow

流程设计:
开始(用户输入)
    → 问题分类器(分类为:退换货 / 物流查询 / 产品咨询 / 投诉)
        → 退换货分支:知识检索(退换货政策文档)→ LLM(生成退换货指引)→ 直接回复
        → 物流查询分支:HTTP 请求(查询物流 API)→ LLM(整理物流信息)→ 直接回复
        → 产品咨询分支:知识检索(产品文档)→ LLM(回答产品问题)→ 直接回复
        → 投诉分支:LLM(安抚用户情绪)→ 人工介入 → 直接回复

示例二:智能问诊助手 Chatflow

流程设计:
开始(用户输入症状描述)
    → LLM(提取症状关键词并分类严重程度)
    → 条件分支(判断是否紧急)
        → 紧急:直接回复(建议立即就医 + 120 电话)
        → 非紧急:知识检索(常见症状与科室对照表)
            → LLM(推荐就诊科室和注意事项)
            → 直接回复

示例三:多语言客服路由 Chatflow

流程设计:
开始(用户输入)
    → LLM(检测输入语言:中文/英文/日文/其他)
    → 条件分支(按语言路由)
        → 中文:LLM(中文客服提示词)→ 直接回复
        → 英文:LLM(英文客服提示词)→ 直接回复
        → 日文:LLM(日文客服提示词)→ 直接回复
        → 其他:LLM(默认英文回复 + 提示切换语言)→ 直接回复

示例四:文档 QA 增强型 Chatflow

流程设计:
开始(用户输入)
    → 知识检索(从产品文档知识库中检索相关片段)
    → 条件分支(判断检索结果是否为空)
        → 有检索结果:LLM(基于检索内容回答用户问题,提示词中引用 @知识检索.result)→ 直接回复
        → 无检索结果:LLM(告知用户该问题不在已有资料范围内,提供通用性建议)→ 直接回复

示例五:面试模拟 Chatflow

流程设计:
开始(用户输入目标岗位和简历信息)
    → LLM(根据岗位生成面试问题,每次只问一个问题)
    → 直接回复(输出面试问题)
    ↺ 用户回答后,LLM(评价用户回答,给出改进建议,然后抛出下一个问题)
    → 循环直到完成 5 个问题
    → LLM(生成面试总结报告:评分、优势、改进建议)
    → 直接回复