---
title: 知识检索
---

## 简介

你可以通过知识检索节点将已有知识库集成到 Chatflow 或 Workflow 应用中。该节点在指定知识库中检索相关信息，其检索结果可传递给下游节点（如 LLM）用作上下文。

知识检索节点在 Chatflow 中的典型用例如下：

1. **用户输入** 节点收集用户问题。
2. **知识检索** 节点在指定知识库中检索与用户问题相关的内容，并输出检索结果。
3. **LLM** 节点基于用户问题和检索结果生成回复。
4. **直接回答** 节点将 LLM 的回复输出给用户。

![知识检索节点用例](/images/knowledge_retrieval_node_example.png)

<Info>
    使用知识检索节点前，确保至少有一个可用的知识库。了解如何创建知识库，阅读 [创建知识库](/zh-hans/guides/knowledge-base/readme#创建知识库)。
</Info>

## 配置知识检索节点

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

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

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

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

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

### 指定查询内容

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

- **查询文本**：选择一个文本变量。例如，在 Chatflow 中可用 `userinput.query` 引用用户输入，而在 Workflow 中则可选择文本类型的用户输入变量。

- **查询图片**：选择一个图片变量（如用户通过用户输入节点上传的图片），启用图片检索。图片大小限制为 10 MB。

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

    <Info>
        仅当添加了至少一个支持图片检索的知识库时，才会出现 **查询图片** 选项。

        此类知识库带有 **Vision** 图标，表示其使用的嵌入模型支持图片向量化。
    </Info>


### 选择检索的知识库

为节点添加一个或多个知识库，用于检索与查询内容相关的信息。

<Info>
   支持图片检索的知识库带有 **Vision** 图标，支持用文本和/或图片作为查询内容，检索语义相关的文本及图片。
</Info>

<Tip>
    点击已添加知识库对应的 **编辑** 图标，可直接在知识检索节点内修改其设置。了解更多设置说明，阅读 [调整知识库设置](/zh-hans/guides/knowledge-base/knowledge-and-documents-maintenance/introduction) 和 [指定索引方式与检索设置](/zh-hans/guides/knowledge-base/create-knowledge-and-upload-documents/setting-indexing-methods)。
</Tip>


### 调整节点级检索（召回）设置

设置节点在获取知识库检索结果后的处理方式。

<Info>
    检索设置分为知识库级和节点级两层。
    
    可将其理解为先后两道筛选：知识库设置决定初步的检索结果池，而节点设置对结果进行重排序（Rerank）或进一步筛选。
</Info>

- **Rerank 设置**

    - **权重设置**：语义相似度与关键词匹配的权重。语义权重高则更注重语义相关性，关键词权重高则更偏向精确匹配。

        <Info>
            仅当所有已添加的知识库使用的索引方式均为高质量时，才会出现 **权重设置** 的选项。
        </Info>

    - **Rerank 模型**：根据与查询内容的相关性，对所有结果的相似度分数进行重新评定和排序。

        <Note>
            若检索结果中可能包含图片，则需选择带有 Vision 图标的 Rerank 模型。否则，检索到的图片将不会参与重排序，也不会出现在最终的检索结果中。
        </Note>

- **Top K**：重排序后返回的最大结果数。选择 Rerank 模型时，该值将根据模型的最大输入容量自动调整。

- **Score 阈值**：返回结果的最低相似度分数。低于该阈值的结果会被过滤。阈值高表示对结果的相关性更严格，阈值低则更宽松。

<Info>
    添加多个知识库时，会同时检索所有知识库，合并结果并根据上述设置进行处理。
</Info>


### 启用元数据过滤

可利用已有的文档元数据，将检索范围限定在知识库的特定文档内，以进一步提升检索精度。

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

<Info>
    了解如何创建与管理文档元数据，阅读 [元数据](/zh-hans/guides/knowledge-base/metadata)。
</Info>

## 输出变量

知识检索节点将检索结果输出为 `result` 变量——一个包含分段内容、分段标题、分段链接等属性的文档分段数组。

若检索结果中包含图片，`result` 变量中将增加 `files` 字段，包含检索到的图片信息。

## 搭配 LLM 节点使用知识检索节点

如需在 LLM 节点中基于检索结果回答用户问题：

1. 在 **上下文** 字段中，选择知识检索节点的 `result` 变量。

2. 在提示词字段中，同时引用 `上下文` 变量和用户输入变量（如 Chatflow 中的 `userinput.query`）。

<img src="/images/llm_node_configuration_example.png" alt="LLM 节点配置示例" width="400"/>

<Note>
    知识检索操作受订阅计划的频率限制。详见 [知识库请求频率限制](/zh-hans/guides/knowledge-base/knowledge-request-rate-limit)。
</Note>



{/*
Contributing Section
DO NOT edit this section!
It will be automatically generated by the script.
*/}

---

[编辑此页面](https://github.com/langgenius/dify-docs/edit/main/zh-hans/guides/workflow/node/knowledge-retrieval.mdx) | [提交问题](https://github.com/langgenius/dify-docs/issues/new?template=docs.yml)

