想了解 Dify 中的「知识检索(Knowledge Retrieval)」在编排环节的具体解释和核心作用,本文我会先讲清楚这个功能的本质,再结合编排场景说明它的作用,最后用实操示例帮你理解。
一、Dify 知识检索的核心解释
Dify 的「知识检索」(也常叫 RAG 检索,即检索增强生成),本质是将用户的问题与你预先上传/接入的私有知识库(文档、数据库、API 数据等)进行语义匹配,精准提取相关知识片段,再交给 LLM 结合这些片段生成回答。
它不是简单的"关键词搜索",而是基于语义理解的精准匹配------比如用户问"Dify 怎么部署",即使知识库中只有"Dify 开源版部署步骤"的文档,检索也能匹配到相关内容,而非只找含"怎么部署"的文字。
在 Dify 的编排画布中,知识检索以「检索节点」的形式存在,是连接"私有知识"和"LLM 回答"的核心桥梁。
二、知识检索在编排中的核心作用
在 Dify 编排流程里,知识检索解决了 LLM "记不住私有信息、易胡说八道"的核心问题,具体作用可总结为 4 点:
- 精准补充私有知识:让 LLM 回答基于你自定义的知识库(比如企业手册、产品文档、客户资料),而非仅依赖模型自身的通用知识,避免回答偏离实际;
- 限定回答范围:通过检索结果约束 LLM 的回答边界,比如只让客服机器人基于产品手册回答,杜绝无关内容;
- 提升回答可信度:检索返回的知识片段可作为 LLM 回答的"依据",甚至能在回答中附上来源(如"参考文档:产品手册 v2.0 第 5 章");
- 降低 Prompt 复杂度:无需把大量私有知识写进 Prompt 里,只需通过检索动态获取相关内容,避免 Prompt 过长导致的性能下降。
简单来说,在编排中,知识检索是「给 LLM 找答案的"参考书"」------ 先帮 LLM 从你的私有知识里找到和问题相关的内容,再让 LLM 基于这些内容回答,而非凭空生成。
三、知识检索在编排中的实操示例(产品客服机器人)
结合上一轮的编排逻辑,以"产品客服机器人"为例,展示知识检索在编排中的具体应用:
1. 前置准备
- 已在 Dify 中创建知识库:上传「Dify 产品使用手册.pdf」,并完成文档的解析、向量化(Dify 会自动处理,无需手动操作);
- 已进入 Dify 编排画布,基础流程:用户输入 → 意图解析 → 检索 → LLM 回答。
2. 编排流程中的检索节点配置
步骤 1:添加「知识检索」节点
在编排画布中,拖拽「检索」节点到「LLM 意图解析」之后、「LLM 生成回答」之前:
- 关联知识库:选择你创建的「Dify 产品使用手册」知识库;
- 检索配置(核心参数):
- 检索方式:语义检索(默认,最优);
- 召回数量:3(返回最相关的 3 个知识片段,数量过多会增加 LLM 处理负担);
- 相似度阈值:0.7(低于该值则判定无相关知识,避免返回无关片段);
- 变量绑定:将用户输入的问题(
{``{user_input}})作为检索关键词。
步骤 2:配置分支判断(基于检索结果)
在检索节点后添加「分支判断」节点,判断逻辑:
- 如果检索结果「有相关片段」:将检索结果(
{``{retrieval_results}})传入 LLM 生成回答; - 如果检索结果「无相关片段」:让 LLM 回复"暂无相关知识,请咨询人工客服"。
步骤 3:配置 LLM 生成回答节点(结合检索结果)
Prompt 核心配置(关键是让 LLM 基于检索片段回答):
请基于以下检索到的知识片段,回答用户的问题,要求:
1. 仅使用片段中的信息,不要编造内容;
2. 语言简洁、易懂,符合产品客服的语气;
3. 如果片段中没有答案,直接回复"暂无相关知识,请咨询人工客服"。
【检索到的知识片段】:
{{retrieval_results}}
【用户问题】:
{{user_input}}
3. 编排流程执行示例
- 用户输入:"Dify 怎么导入知识库文档?"
- 编排执行逻辑:
- LLM 意图解析:判定为"产品使用问题";
- 知识检索:匹配到知识库中"Dify 知识库文档导入步骤"的片段;
- 分支判断:有相关片段,进入 LLM 生成节点;
- LLM 结合检索片段生成回答:"Dify 导入知识库文档的步骤:1. 进入知识库页面;2. 点击「导入文档」;3. 选择本地文件(支持PDF/Word等);4. 等待解析完成即可。"
4. 进阶:检索 + 多轮对话编排
如果用户追问:"支持导入多大的文件?"
- 编排中可配置「上下文记忆」,将上一轮的检索主题("知识库文档导入")作为检索的附加条件,让检索更精准:
- 检索关键词:
{``{user_input}} + {``{prev_topic}}(prev_topic 为上一轮的"知识库文档导入"); - 检索结果:匹配到"Dify 知识库导入文件大小限制:单文件最大 100MB,支持批量导入最多 50 个文件";
- LLM 生成回答:"Dify 知识库导入的文件大小限制为单文件最大 100MB,同时支持批量导入最多 50 个文件哦。"
- 检索关键词:
四、知识检索在编排中的常见组合场景
除了基础的"检索 + LLM 回答",在编排中还可灵活组合:
- 检索 + 工具调用:比如先检索用户的订单信息(知识库/数据库),再调用物流 API 查询物流状态;
- 多知识库检索:编排中配置多个检索节点,分别检索"产品手册""常见问题""客户案例",再合并结果给 LLM;
- 检索结果重排序:对检索返回的片段,用 LLM 二次筛选(比如"只保留和用户问题强相关的片段"),再交给回答节点。
总结
- Dify 知识检索的本质是语义级的私有知识匹配,在编排中以「检索节点」形式存在;
- 核心作用是补充私有知识、限定回答范围、提升回答可信度,解决 LLM 通用知识不足的问题;
- 编排中典型用法是「意图解析 → 检索 → 分支判断 → LLM 结合检索结果回答」,可扩展多轮对话、多知识库组合等场景。
至此,可以基于这个逻辑,把知识检索整合到之前的天气助手示例中(比如检索"不同城市的天气预警知识"),让应用能力更完整。