跳转到主要内容
⚠️ 本文档由 AI 自动翻译。如有任何不准确之处,请参考英文原版
使用知识检索节点将已有知识库集成到你的工作流中。该节点在指定知识库中检索与查询相关的信息,并将检索结果作为上下文内容输出,供下游节点(如 LLM)使用。 以下是在对话流中使用知识检索节点的示例:
  1. 用户输入节点收集用户查询。
  2. 知识检索节点在选定的知识库中搜索与用户查询相关的内容,并输出检索结果。
  3. LLM 节点根据用户查询和检索到的知识生成响应。
  4. 回答节点将 LLM 的响应返回给用户。
知识检索节点用例 使用知识检索节点前,请确保至少有一个可用的知识库。了解如何创建知识库,请参阅知识库
在 Dify Cloud 上,知识检索操作受订阅计划的频率限制。详见知识库请求频率限制

配置知识检索节点

要使知识检索节点正常工作,你需要指定:
  • 检索什么(查询内容)
  • 在哪里检索(知识库)
  • 如何处理检索结果(节点级检索设置)
你还可以使用文档元数据来启用基于筛选的检索,进一步提升检索精度。

指定查询内容

设置节点需要在选定知识库中检索的查询内容。
  • 查询文本:选择一个文本变量。例如,在对话流中使用 userinput.query 引用用户输入,或在工作流中使用自定义的文本类型用户输入变量。
  • 查询图片:选择一个图片变量,例如用户通过用户输入节点上传的图片,通过图片进行检索。图片大小限制为 2 MB。
    对于自托管部署,可通过环境变量 ATTACHMENT_IMAGE_FILE_SIZE_LIMIT 调整图片大小限制。
    当添加了至少一个多模态知识库时,才会出现查询图片选项。此类知识库带有 Vision 标签,表示其使用了多模态嵌入模型。

选择检索的知识库

添加一个或多个已有知识库,供节点检索与查询相关的内容。 当添加了多个知识库时,会同时从所有知识库中检索,然后合并结果并根据节点级检索设置进行处理。
带有 Vision 标签的知识库支持跨模态检索——基于语义相关性同时检索文本和图片。
你可以点击已添加知识库旁的编辑图标来修改其设置

配置节点级检索设置

进一步调整节点在从知识库获取检索结果后的处理方式。
检索设置分为知识库级和知识检索节点级两层。可以将其理解为两道连续的筛选:知识库设置决定初始结果池,节点设置进一步重排或缩小结果范围。
  • Rerank 设置
    • 权重分数:重排时语义相似度与关键词匹配的相对权重。语义权重越高越偏向语义相关性,关键词权重越高越偏向精确匹配。
      仅当所有已添加的知识库均为高质量模式时,才可使用权重分数
    • Rerank 模型:使用 Rerank 模型根据与查询的相关性对所有结果重新评分和排序。
      如果添加了多模态知识库,请同时选择多模态 Rerank 模型(带有 Vision 标签)。否则,检索到的图片将被排除在重排序和最终输出之外。
  • Top K:重排后返回的最大结果数。选择 Rerank 模型时,该值将根据模型的最大输入容量(模型一次可处理的文本量)自动调整。
  • Score 阈值:返回结果的最低相似度分数。低于该阈值的结果将被排除。较高的阈值意味着更严格的相关性,较低的阈值则包含更广泛的匹配。

启用元数据过滤

使用已有的文档元数据将检索范围限定在知识库内的特定文档,以提升检索精度。 启用元数据过滤后,知识检索节点仅搜索符合指定元数据条件的文档,而非整个知识库。这在内容多样的大型知识库中尤其有用。

输出

知识检索节点将检索结果输出为名为 result 的变量,它是一个包含检索到的文档分段的数组,包含内容、元数据、标题和其他属性。 当检索结果包含图片附件时,result 变量还包含一个名为 files 的字段,其中包含图片详情。

与 LLM 节点搭配使用

要在 LLM 节点中使用检索结果作为上下文:
  1. 高级设置 > 上下文中,选择知识检索节点的 result 变量。
  2. 在系统指令中,引用 Context 变量。
  3. 可选:如果 LLM 支持视觉能力,启用 视觉 以便其处理检索结果中的图片附件。
    你无需将检索结果变量指定为视觉输入。启用 视觉 后,LLM 会自动访问检索到的图片。
在对话流中,默认情况下引用知识的响应旁会显示引用来源。你可以在画布右上角的功能中关闭引用和归属来禁用此功能。