Skip to main content
Version: DEV

检索组件

从指定知识库中检索信息的组件。

使用场景

检索组件在大多数 RAG 场景中都是必不可少的,在将信息发送给 LLM 进行内容生成之前,先从指定的知识库中提取信息。检索组件既可以作为独立的工作流模块运行,也可以作为智能体组件的工具。在后一种角色中,智能体组件对何时调用它进行查询和检索具有自主控制权。

以下屏幕截图显示了使用检索组件的参考设计,其中该组件作为智能体组件的工具。您可以从使用知识库的报告智能体智能体模板中找到它。

检索参考设计

前提条件

确保您已正确配置目标知识库

快速开始

1. 点击检索组件以显示其配置面板

相应的配置面板出现在画布右侧。使用此面板定义和微调检索组件的搜索行为。

2. 输入查询变量

检索组件依赖查询变量来指定其查询。

重要
  • 如果您将检索组件用作独立的工作流模块,请在输入变量文本框中输入查询变量。
  • 如果它用作智能体组件的工具,请在智能体组件的用户提示字段中输入查询变量。

默认情况下,您可以使用 sys.query,它是用户查询和开始组件的默认输出。在检索组件之前定义的所有全局变量也可以用作查询语句。使用 (x) 按钮或输入 / 以显示所有可用的查询变量。

3. 选择要查询的知识库

您可以指定一个或多个知识库来检索数据。如果选择多个,请确保它们使用相同的嵌入模型。

4. 展开高级设置以配置检索方法

默认情况下,使用加权关键词相似度和加权向量余弦相似度的组合进行检索。如果选择了重排序模型,则将使用加权关键词相似度和加权重排序分数的组合。

作为初学者,您可以跳过此步骤以保持默认的检索方法。

警告

使用重排序模型将显著增加系统的响应时间。如果您必须使用重排序模型,请确保使用 SaaS 重排序器;如果您更喜欢本地部署的重排序模型,请确保使用docker-compose-gpu.yml启动 RAGFlow。

5. 启用跨语言搜索

如果您的用户查询与知识库的语言不同,您可以在跨语言搜索下拉菜单中选择目标语言。然后模型将翻译查询以确保跨语言的语义含义准确匹配。

6. 测试检索结果

点击画布顶部的运行按钮以测试检索结果。

7. 选择下一个组件

必要时,点击检索组件上的**+**按钮,从下拉列表中选择工作流中的下一个组件。

配置

查询变量

必需

选择检索的查询源。默认为 sys.query,它是开始组件的默认输出。

检索组件依赖查询变量来指定其查询。在检索组件之前定义的所有全局变量也可以用作查询。使用 (x) 按钮或输入 / 以显示所有可用的查询变量。

知识库

选择要从中检索数据的知识库。

  • 如果未选择知识库,意味着与智能体的对话将不基于任何知识库,请确保空响应字段留空以避免错误。
  • 如果您选择多个知识库,您必须确保您选择的知识库(知识库)使用相同的嵌入模型;否则会出现错误消息。

相似度阈值

RAGFlow 在检索期间采用加权关键词相似度和加权向量余弦相似度的组合。此参数设置用户查询与存储在知识库中的块之间的相似度阈值。任何相似度分数低于此阈值的块都将从结果中排除。

默认为 0.2。

关键词相似度权重

此参数设置组合相似度分数中关键词相似度的权重。两个权重的总和必须等于 1.0。其默认值为 0.7,这意味着组合搜索中向量相似度的权重为 1 - 0.7 = 0.3。

Top N

此参数从检索到的块中选择"Top N"个块并将其提供给 LLM。

默认为 8。

重排序模型

可选

如果选择了重排序模型,将使用加权关键词相似度和加权重排序分数的组合进行检索。

警告

使用重排序模型将显著增加系统的响应时间。

空响应

  • 如果从知识库中为您的查询检索不到结果,请将此设置为响应,或
  • 将此字段留空以允许聊天模型在找不到任何内容时即兴发挥。
警告

如果您未指定知识库,您必须将此字段留空;否则会出现错误。

跨语言搜索

选择一种或多种语言进行跨语言搜索。如果未选择语言,系统将使用原始查询进行搜索。

使用知识图谱

重要

在启用此功能之前,请确保您已正确从每个目标知识库构建了知识图谱

是否在指定知识库中检索期间使用知识图谱进行多跳问答。启用后,这将涉及跨实体、关系和社区报告块的迭代搜索,大大增加检索时间。

输出

检索组件输出的全局变量名,可由工作流中的其他组件引用。

常见问题

如何减少响应时间?

请按照以下检查清单以获得最佳性能:

  • 重排序模型字段留空。
  • 如果您必须使用重排序模型,请确保使用 SaaS 重排序器;如果您更喜欢本地部署的重排序模型,请确保使用docker-compose-gpu.yml启动 RAGFlow。
  • 禁用使用知识图谱