> ## Documentation Index
> Fetch the complete documentation index at: https://dify-6c0370d8-add-new-agent.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# 知识检索

<Note> ⚠️ 本文档由 AI 自动翻译。如有任何不准确之处，请参考[英文原版](/en/use-dify/nodes/knowledge-retrieval)。</Note>

使用知识检索节点将已有知识库集成到你的工作流中。该节点在指定知识库中检索与查询相关的信息，并将检索结果作为上下文内容输出，供下游节点（如 LLM）使用。

以下是在对话流中使用知识检索节点的示例：

1. **用户输入**节点收集用户查询。

2. **知识检索**节点在选定的知识库中搜索与用户查询相关的内容，并输出检索结果。

3. **LLM** 节点根据用户查询和检索到的知识生成响应。

4. **回答**节点将 LLM 的响应返回给用户。

<img src="https://mintcdn.com/dify-6c0370d8-add-new-agent/1Mn9PbDOxsURxQHH/images/knowledge_retrieval_node_example.png?fit=max&auto=format&n=1Mn9PbDOxsURxQHH&q=85&s=cc1418fd46ea840309ec38cee462a3b7" alt="知识检索节点用例" width="2022" height="580" data-path="images/knowledge_retrieval_node_example.png" />

使用知识检索节点前，请确保至少有一个可用的知识库。了解如何创建知识库，请参阅[知识库](/zh/use-dify/knowledge/readme#创建知识库)。

<Info>
  在 Dify Cloud 上，知识检索操作受订阅计划的频率限制。详见[知识库请求频率限制](/zh/use-dify/knowledge/knowledge-request-rate-limit)。
</Info>

## 配置知识检索节点

要使知识检索节点正常工作，你需要指定：

* *检索什么*（查询内容）

* *在哪里检索*（知识库）

* *如何处理检索结果*（节点级检索设置）

你还可以使用文档元数据来启用基于筛选的检索，进一步提升检索精度。

### 指定查询内容

设置节点需要在选定知识库中检索的查询内容。

* **查询文本**：选择一个文本变量。例如，在对话流中使用 `userinput.query` 引用用户输入，或在工作流中使用自定义的文本类型用户输入变量。

* **查询图片**：选择一个图片变量，例如用户通过用户输入节点上传的图片，通过图片进行检索。图片大小限制为 2 MB。

  <Tip>
    对于自托管部署，可通过环境变量 `ATTACHMENT_IMAGE_FILE_SIZE_LIMIT` 调整图片大小限制。
  </Tip>

  <Info>
    当添加了至少一个多模态知识库时，才会出现**查询图片**选项。

    此类知识库带有 **Vision** 标签，表示其使用了多模态嵌入模型。
  </Info>

### 选择检索的知识库

添加一个或多个已有知识库，供节点检索与查询相关的内容。

当添加了多个知识库时，会同时从所有知识库中检索，然后合并结果并根据[节点级检索设置](#配置节点级检索设置)进行处理。

<Info>
  带有 **Vision** 标签的知识库支持跨模态检索——基于语义相关性同时检索文本和图片。
</Info>

你可以点击已添加知识库旁的**编辑**图标来修改其[设置](/zh/use-dify/knowledge/manage-knowledge/introduction)。

### 配置节点级检索设置

进一步调整节点在从知识库获取检索结果后的处理方式。

<Info>
  检索设置分为知识库级和知识检索节点级两层。

  可以将其理解为两道连续的筛选：知识库设置决定初始结果池，节点设置进一步重排或缩小结果范围。
</Info>

* **Rerank 设置**

  * **权重分数**：重排时语义相似度与关键词匹配的相对权重。语义权重越高越偏向语义相关性，关键词权重越高越偏向精确匹配。

    <Info>
      仅当所有已添加的知识库均为高质量模式时，才可使用**权重分数**。
    </Info>

  * **Rerank 模型**：使用 Rerank 模型根据与查询的相关性对所有结果重新评分和排序。

    <Note>
      如果添加了多模态知识库，请同时选择多模态 Rerank 模型（带有 **Vision** 标签）。否则，检索到的图片将被排除在重排序和最终输出之外。
    </Note>

* **Top K**：重排后返回的最大结果数。选择 Rerank 模型时，该值将根据模型的最大输入容量（模型一次可处理的文本量）自动调整。

* **Score 阈值**：返回结果的最低相似度分数。低于该阈值的结果将被排除。较高的阈值意味着更严格的相关性，较低的阈值则包含更广泛的匹配。

### 启用元数据过滤

使用已有的[文档元数据](/zh/use-dify/knowledge/metadata)将检索范围限定在知识库内的特定文档，以提升检索精度。

启用元数据过滤后，知识检索节点仅搜索符合指定元数据条件的文档，而非整个知识库。这在内容多样的大型知识库中尤其有用。

## 输出

知识检索节点将检索结果输出为名为 `result` 的变量，它是一个包含检索到的文档分段的数组，包含内容、元数据、标题和其他属性。

当检索结果包含图片附件时，`result` 变量还包含一个名为 `files` 的字段，其中包含图片详情。

## 与 LLM 节点搭配使用

要在 LLM 节点中使用检索结果作为上下文：

1. 在**高级设置** > **上下文**中，选择知识检索节点的 `result` 变量。

2. 在系统指令中，引用 `Context` 变量。

3. 可选：如果 LLM 支持视觉能力，启用 **视觉** 以便其处理检索结果中的图片附件。

   <Info>
     你无需将检索结果变量指定为视觉输入。启用 **视觉** 后，LLM 会自动访问检索到的图片。
   </Info>

在对话流中，默认情况下引用知识的响应旁会显示引用来源。你可以在画布右上角的**功能**中关闭**引用和归属**来禁用此功能。
