在大语言模型(LLM)应用的浪潮中,Dify 作为一款低代码 LLM 平台,备受瞩目。它以其独特的画布 + 节点拖拽连接方式,简化了大语言模型的集成和应用过程,让开发者能够快速搭建出各种 AI 应用。今天,咱们就来深入聊聊 Dify 中十分实用的 Chatflow 搭建方法。
一、Dify 与 Chatflow 初相识
Dify 是一个面向直观快速开发的 LLM 大模型 app 低代码平台 ,不仅支持多种大语言模型,如 GPT、千问、千帆、星火等,还提供了直观的用户界面和灵活的 API。它自带的搜索引擎、网页爬虫等工具,进一步增强了应用的功能。
而 Chatflow 是 Dify 中面向对话类情景的一种工作流编排模式,适用于客户服务、语义搜索,以及其他需要在构建响应时进行多步逻辑的对话式应用程序。与 Workflow 不同,Chatflow 支持对生成的结果进行多轮对话交互,调整生成的结果。列如在客户服务场景中,用户可以就生成的回答进行追问、修改要求等操作,这使得应用更加智能和灵活。
二、Chatflow 搭建前的准备工作
(一)明确应用场景和目标
在搭建 Chatflow 之前,第一要清楚自己想要搭建的应用是用于什么场景,列如是做一个智能客服,还是一个语义搜索助手,或者是其他对话式应用。明确场景后,进一步确定应用的目标,例如智能客服的目标可能是快速准确地回答用户常见问题,提高客户满意度等。只有目标明确,后续的搭建工作才能有的放矢。
(二)了解 Dify 平台基础

- 注册与登录:访问 Dify 官网(https://dify.ai/ ),完成注册和登录操作。
- 熟悉界面:进入 Dify 平台后,先熟悉一下整体界面布局。了解各个区域的功能,列如工作室用于创建和管理应用,应用概览页展示应用的基本信息和状态,编排页面则是进行 Chatflow 搭建的核心区域。
- 学习基本概念:除了前面提到的 Chatflow,还需要了解节点、变量等概念。节点是工作流中的关键构成,通过连接不同功能的节点,执行工作流的一系列操作,像 LLM 节点用于文本生成,问题分类器节点用于分析用户输入等;变量则是作为一种动态数据容器存在,能够存储和传递不固定的内容,在不同的节点内被相互引用,实现信息在节点间的流动 。
(三)准备相关数据和资源

- 选择大语言模型:根据自己的需求和预算,在 Dify 支持的模型中选择合适的大语言模型。如果对模型推理能力要求较高,可选择如 GPT – 4 等模型;若思考成本等因素,也有一些免费或低成本的模型可供选择。
- 整理知识库(可选):如果应用需要基于特定的知识进行回答,列如企业内部的产品知识、常见问题解答等,就需要提前整理好这些知识,并将其导入到 Dify 的知识库中,以便在 Chatflow 中引用。
三、Chatflow 搭建实战步骤
(一)创建新应用


- 登录 Dify 平台后,进入工作室页面。
- 点击 “从空白创建” 按钮,在弹出的对话框中填写应用名称,选择应用类型为 “聊天助手”(由于我们搭建的是 Chatflow,属于对话类应用),然后点击 “创建”。
(二)编排 Chatflow

- 添加开始节点:创建应用后,会自动跳转到应用的编排页面。在这个页面中,第一从左侧的节点库中拖拽 “开始” 节点到画布上。开始节点是工作流的起点,在这里可以配置用户输入的变量,列如用户提问的文本输入框。
- 添加问题分类器节点:接着添加 “问题分类器” 节点,并将其与开始节点连接。问题分类器节点的作用是分析用户输入的问题,并将其分类到不同的类别,以便后续进行针对性处理。例如,可以将问题分为产品咨询、技术支持、投诉提议等类别。在配置问题分类器节点时,需要定义好各个类别的名称和说明描述,也可以自行撰写分类器的系统提示 prompt,让分类更加准确。
- 添加 LLM 节点:根据问题分类的结果,为不同类别的问题分别添加 LLM 节点。LLM 节点用于生成回答内容,在配置 LLM 节点时,关键是设计好提示词(prompt)。提示词要清晰地告知大模型需要完成的任务,列如 “请根据用户的产品咨询问题,结合我们的产品知识库,给出准确详细的回答” 。同时,提示词内可以插入表单变量,如{{input}},这样变量的值会替换成用户填写的实际内容。
- 添加其他辅助节点(可选):代码执行节点:如果需要对生成的内容进行一些特殊处理,列如数据格式转换、调用外部 API 等,可以添加代码执行节点。例如,在大模型输出结果时,可能会带有一些转义字符影响后续使用,就可以通过代码执行节点编写 Python 或 Node.js 代码来去掉这些转义字符 。变量聚合器节点:当有多个节点生成结果,需要将这些结果合并在一起时,可以使用变量聚合器节点。列如,一个节点生成回答的主要内容,另一个节点生成相关的补充信息,就可以通过变量聚合器将它们整合起来。条件分支节点:根据不同的条件来决定工作流的走向。例如,如果用户提问中包含特定关键词,就执行某一个分支的操作;否则,执行另一个分支。
- 添加结束节点:在完成所有必要的节点连接和配置后,添加 “结束” 节点,并将最后一个处理节点与之连接。结束节点用于输出最终的结果,也就是展示给用户的回答内容。
(三)调试与优化

- 输入测试数据:在编排完成后,点击右侧的 “调试” 按钮,在输入框中输入各种测试问题,模拟真实用户的提问场景。列如对于智能客服应用,可以输入常见的产品问题、使用问题等。
- 检查回答结果:查看大模型生成的回答是否准确、完整、符合预期。如果回答不理想,可能是提示词设计不合理、节点配置错误或者模型选择不合适等缘由。
- 调整优化:提示词优化:根据回答结果,调整 LLM 节点的提示词,使其更加准确地引导大模型生成期望的回答。可以尝试不同的表述方式、添加更多的约束条件等。节点配置检查:检查各个节点的配置参数,确保输入输出变量正确设置,节点之间的连接逻辑无误。模型切换(可选):如果某个模型在当前应用场景下表现不佳,可以尝试切换到其他模型进行测试,比较不同模型的回答效果,选择最合适的模型。
(四)发布应用

经过反复调试和优化,当对 Chatflow 的表现满意后,就可以点击右上角的 “发布” 按钮,将应用发布出去。发布后的应用会生成一个独立的 URL,用户可以通过这个 URL 访问应用,进行实际的对话交互。同时,还可以基于 Dify 提供的 APIs 对应用进行二次开发,或者将其嵌入到自己的网站、移动应用等平台中,进一步拓展应用的使用场景。
四、常见问题及解决方法
(一)学习成本问题
虽然 Dify 是低代码平台,但对于没有技术背景的用户来说,依旧可能存在必定的学习成本。特别是在理解节点、变量、提示词等概念,以及设计复杂的 Chatflow 逻辑时,可能会遇到困难。
解决方法:多参考 Dify 官方文档、教程和社区案例,通过实际操作来加深理解。也可以参与一些线上或线下的交流活动,与其他开发者交流经验,遇到问题及时在社区提问。
(二)变量管理问题
在多节点组合的 Chatflow 中,变量名管理可能会成为一个问题,每个节点的输入输出变量名容易重复,且自行修改可能会导致一些变量名不同步的问题,增加调试难度。
解决方法:在命名变量时,遵循必定的命名规范,使其具有明确的含义,便于区分和管理。尽量避免随意修改预设变量名称,如果的确 需要修改,要确保在所有相关节点中同步更新。同时,在调试过程中,仔细检查变量的传递和使用情况,利用 Dify 提供的变量查看功能,逐步排查问题。
(三)复杂功能实现困难
对于一些需要自定义逻辑和流程的复杂应用,Dify 的低代码功能可能无法很好地支持,需要手动介入代码。
解决方法:在设计 Chatflow 之前,对应用的功能需求进行充分评估。如果预计会有复杂功能,可以提前规划,将部分功能通过代码执行节点来实现,或者结合其他开发工具和技术进行补充开发。同时,关注 Dify 平台的更新和发展,看是否有新的功能或解决方案能够满足复杂需求。
通过以上全攻略,信任大家已经掌握了 Dify Chatflow 的搭建方法。赶紧动手实践吧,利用 Dify Chatflow 打造出属于自己的智能对话应用,开启 AI 应用开发的奇妙之旅!如果在搭建过程中遇到任何问题,欢迎在评论区留言交流哦!






收藏学习了
好文章,可借鉴
收藏了,感谢分享