mirror of
https://github.com/langgenius/dify-docs.git
synced 2026-03-27 13:28:32 +07:00
125 lines
5.4 KiB
Plaintext
125 lines
5.4 KiB
Plaintext
---
|
||
title: 知识检索
|
||
icon: "database"
|
||
---
|
||
|
||
<Note> ⚠️ 本文档由 AI 自动翻译。如有任何不准确之处,请参考[英文原版](/en/use-dify/nodes/knowledge-retrieval)。</Note>
|
||
|
||
使用知识检索节点将已有知识库集成到你的工作流中。该节点在指定知识库中检索与查询相关的信息,并将检索结果作为上下文内容输出,供下游节点(如 LLM)使用。
|
||
|
||
以下是在对话流中使用知识检索节点的示例:
|
||
|
||
1. **用户输入**节点收集用户查询。
|
||
|
||
2. **知识检索**节点在选定的知识库中搜索与用户查询相关的内容,并输出检索结果。
|
||
|
||
3. **LLM** 节点根据用户查询和检索到的知识生成响应。
|
||
|
||
4. **回答**节点将 LLM 的响应返回给用户。
|
||
|
||

|
||
|
||
使用知识检索节点前,请确保至少有一个可用的知识库。了解如何创建知识库,请参阅[知识库](/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>
|
||
|
||
在对话流中,默认情况下引用知识的响应旁会显示引用来源。你可以在画布右上角的**功能**中关闭**引用和归属**来禁用此功能。
|