4. 知识检索
知识检索节点用于把已有的知识库接入工作流。它在指定的知识库中搜索与查询相关的内容,并把搜到的结果作为上下文输出,供下游节点(如 LLM)使用。
下面是一个在聊天流中使用知识检索节点的典型链路:用户输入节点收集查询 → 知识检索节点在选定知识库中搜出相关内容并输出 → LLM 节点结合查询和检索结果生成回答 → Answer 节点把回答返回。
使用前需确保至少有一个可用的知识库。在 Dify Cloud 上,知识检索操作受套餐对应的速率限制。
节点配置

要让节点正常工作,需要明确三件事:搜什么(查询)、去哪搜(知识库)、搜到后怎么处理(节点级检索设置)。此外还可借助文档元数据做筛选式检索,进一步提升精度。
指定查询内容
设定节点拿什么去知识库里搜。
- 查询文本:选一个文本变量作为搜索词。聊天流里通常选
userinput.query,它就是访客在对话框里输入的那句话;工作流里则选某个自定义的文本类输入字段。 - 查询图片:选一个图片变量(比如经用户输入节点上传的图片),用图片本身去搜,单张上限 2 MB。这个选项只有在节点里加了至少一个多模态知识库时才会出现——这类知识库带 Vision 标签,意味着它用的是能同时理解文字和图像的多模态嵌入模型。
知识库
添加一个或多个已有知识库,作为节点的检索范围。加了多个时,节点会先同时在所有知识库里搜一遍,再把各家的结果汇到一起,按下面的节点级设置统一处理。带 Vision 标签的知识库支持跨模态检索,也就是能按语义相关性把文字和图片一起召回。点击任一已添加知识库旁的编辑图标,可单独调整它的设置。
配置节点级检索设置

点击「召回设置」,可以调整节点在拿到知识库返回的结果之后,如何进一步处理这些结果。
需要先理清一点:检索设置其实分两层,一层在知识库上,一层在这个节点上。两层是先后接力的关系——知识库那层决定初步捞出哪些候选结果,节点这层再对这批候选重新排序、或筛掉一部分,得到最终输出。
节点级可调整的设置包括:
-
权重设置:拖动滑杆,在「语义」和「关键词」之间分配权重,两者之和固定、一增一减。越靠语义一侧,排序越看重含义是否相近;越靠关键词一侧,越看重词面是否精确命中。该方式要求所有已添加的知识库都采用「高质量」索引模式,否则不可用。
-
Rerank 模型:改用一个重排模型,按结果与查询的相关程度重新打分、重新排序。若加了多模态知识库,记得一并选带 Vision 标签的多模态重排模型,否则召回的图片会在重排时被丢掉、进不了最终输出。
-
Top K:重排之后最多返回几条结果。选了重排模型时,这个数会随模型一次能处理的最大文本量自动调整。
-
Score 阈值:结果能被返回的最低相似度分数,低于此分的一律剔除。该项可通过左侧开关单独启用或关闭。阈值调高,留下的结果更精准;调低,则纳入更宽泛的匹配。
元数据过滤
默认情况下,检索会扫遍整个知识库。如果只想在特定文档里搜,可以开启元数据筛选(手动或自动均可)。知识库很大、或里头混着面向不同场景的内容时,这一步对提升检索精度尤其明显。
提示:元数据的介绍详见下方「知识库」章节。
输出
知识检索节点把检索结果输出成一个名为 result 的变量。它是一个数组,每个元素是一段检索到的文档分片,带有该分片的正文内容、元数据、标题等属性。如果检索结果里含图片附件,result 里还会多出一个 files 字段,存放图片的详细信息。
与 LLM 节点配合

要把检索结果作为上下文喂给 LLM 节点:
- 在 LLM 节点的「上下文」中,选择知识检索节点的
result变量。 - 在系统提示词中引用这个「上下文」变量。
- 可选:若 LLM 支持视觉,开启「视觉」,它便能处理检索结果中的图片附件。无需另行把检索结果指定为视觉输入——开启 Vision 后,LLM 会自动读取召回的图片。
在聊天流中,引用了知识库的回答默认会附带引用出处。如需关闭,可在画布右上角「功能」里停用「引用与归属」。

评论
0 条