Dify RAG与在线搜索混合知识检索深度测评
要实现Dify中AI助手同时精准检索私有知识库与实时联网搜索,核心不在于某个单一技巧,而在于从架构层面设计双通道数据源。操作步骤拆解后,无非是明确数据源配置、独立通道调优,并在工作流中让两者协同。简单说,别把“仅用本地知识”与“仅用联网搜索”当成非此即彼的选择。
确认Dify版本与插件支持能力
动手前先确认硬性条件:Dify版本是否达标。进入控制台右上角「设置」→「系统信息」,确保版本号≥1.12.0。若低于此版本,原生在线搜索插件无法集成——要么升级,要么通过API网关做旁路转发,但那是另一套方案。
接着在「应用管理」找到目标应用,进入「插件」标签页,检查「Web Search」插件是否已安装并激活。未安装?点击「添加插件」,搜索“Web Search”,安装后还需授权。特别注意:该插件依赖外部搜索引擎API(如Serper、SerpAPI),必须提前在「模型供应商」中配置对应API KEY,否则所有搜索请求会在后台静默失败,排查起来很隐蔽。
构建双路检索工作流
开始操作。打开应用编辑器,切换至「工作流」模式,点击「+ 添加节点」,选择「检索」节点。核心是为该节点配置两条并行检索分支。
RAG知识库分支
在检索节点配置中,将「知识库来源」设为「内部知识库」,勾选已上传并解析完成的私有知识库。检索模式选「混合检索」——确保语义搜索与关键词搜索双通道同时生效,避免遗漏字面匹配的细节。
在线搜索分支
在同一检索节点下,点击「+ 添加检索源」,选择「Web Search」插件。弹出配置框后,在「搜索查询模板」填入{user_query} site:gov.cn OR site:edu.cn。通过域名限制可大幅提升返回结果的权威性。另外,“结果数量”不能留空,必须设为3到5条——默认值为0,不设置会返回空结果,别让这个细节卡住流程。
两个分支输出自动合并为一个文档列表。Dify内置的融合策略会按相关性对RAG片段和网页摘要统一打分、重新排序,无需手动调整权重。
控制RAG与在线内容的触发逻辑
仅有检索通道不够,关键是按需触发。第一步,在「提示词编排」区域的「系统提示词」中插入条件判断指令:{% if user_query contains "最新" or user_query contains "2026" or user_query contains "今天" %}启用在线搜索{% else %}仅使用知识库{% endif %}。
第二步,返回工作流画布,双击检索节点进入「高级设置」,勾选「启用动态源路由」。开启后,节点会根据上一步提示词中的条件变量自动决定是否激活Web Search分支。
第三步,在检索节点下游再接一个「条件分支」节点。设置判断规则为“检索结果总数 > 0 且 包含来自 web_search 的来源”。真分支走「摘要生成」流程,假分支走「知识库精读」流程。这样纯知识库能解决的问题不会被无关的网页搜索结果干扰。
验证混合结果的来源标识
配置完成,别急着收工。发布应用后,在聊天界面输入测试问题,例如:“2026年6月北京高考报名截止日期是哪天?”
观察返回答案末尾的引用标记:若出现类似 [1] 来源:北京市教育委员会官网 · 2026-06-10 的格式,说明在线搜索正常工作;若同时看到 [2] 来源:《2025年招生政策汇编》P12,则证明RAG通道也在线。两条引用并排出现,才是理想的混合检索效果。
注意:首次调用在线搜索可能会有3到5秒延迟,这是Serper API的响应时间。若连续两次测试都未看到网页引用,直接去「模型供应商」检查Web Search的API KEY状态——最常见的原因是Key已过期。
