
# 管理知识检索流
知识检索流是一种特殊的工作流，除工作流基础节点外，还具备检索规划、召回、重排序三个节点。
通常可以使用检索规划节点对原始查询内容进行意图识别、拆解或改写，提升查询的准确性，然后使用召回节点从知识库中检索并召回所有与查询相关的信息，最后通过重排序节点对召回结果进行重排序，确保最相关的信息能够排在前面，从而优化知识检索过程。
在Agent中添加知识检索流，可以提升用户体验和Agent响应质量。
#### 前提条件
需要具备AI原生应用引擎管理员或开发者权限，权限申请操作请参考[AppStage组织成员申请权限](https://support.huaweicloud.com/usermanual-appstage/appstage_04_0009.html)。
#### 创建知识检索流
1. [进入AI原生应用引擎](https://support.huaweicloud.com/usermanual-wiseagent/appstage_04_0638.html#appstage_04_0638__section439520293419)。
2. 在AI原生应用引擎的左侧导航栏选择"知识中心 \> 知识检索流"，单击"创建知识检索流"。
3. 在"基本信息"弹窗，设置检索流名称、描述，单击"确认"。
4. 单击"起始节点"，配置[表1]所示参数。
   
   当接收到匹配的请求时，起始节点会解析请求中的参数，并根据这些参数来初始化检索流实例。
   起始节点是流的入口，可以接收和存储初始化参数，当Agent调用检索流时，会提取起始节点入参，并初始化检索流实例，随后按照检索流定义的逻辑顺序执行各个节点。
    表1起始节点配置参数说明 
   | 参数                                                                                 || 说明                                                                                                                                                                                                                                                                                                                                                                                         |
   |:---|---|:---|
   | API请求方式                                                                            || 仅支持**post**，用于向服务器提交数据，通常将数据放在请求体中。                                                                                                                                                                                                                                                                                                                                                        |
   | API请求体架构  | 请求头  | HTTP请求消息的组成部分之一，请求头负责通知服务器有关于客户端请求的信息。 单击"添加header参数"可添加多行请求头；单击![](https://support.huaweicloud.com/usermanual-wiseagent/zh-cn_image_0000002062796580.png)即可删除不需要的请求头。                                                                                                                                                    |
   | API请求体架构  | 请求参数 | 请求参数是API请求的一部分，如果被调用API没有请求参数则可以不填。如果请求为查询参数，则查询参数会追加到URL。例如，在 /items?id=#### 中，查询参数为ID。 单击"添加query参数"可添加多行请求参数；单击![](https://support.huaweicloud.com/usermanual-wiseagent/zh-cn_image_0000002062638260.png)即可删除不需要的请求参数。                                                                                                  |
   | API请求体架构  | 请求体  | HTTP请求消息的组成部分之一，请求体呈现发送给服务器的数据。 知识检索流默认在起始节点的请求体中引入了WISEAGENT_USER_INPUT参数，表示在Agent调用知识检索流时，以用户在问答对话中输入的内容作为知识检索流的请求参数。 您也可以单击请求体操作列的![](https://support.huaweicloud.com/usermanual-wiseagent/zh-cn_image_0000002173433276.png)，新增参数。支持数据类型为：string、number、boolean、integer、array、object。 |
   | 节点备注                                                                               || 输入节点备注信息，方便后续查阅节点功能。                                                                                                                                                                                                                                                                                                                                                                       |
      
   
   
5. 添加其他节点，设置执行动作。 
   在画布中单击"![](https://support.huaweicloud.com/usermanual-wiseagent/zh-cn_image_0000002345740245.png) \> 添加执行动作"或"添加执行动作"，选择节点和执行动作，并参考[知识检索流相关节点说明]和[工作流基础节点说明](https://support.huaweicloud.com/usermanual-wiseagent/appstage_04_0811.html)在参数配置面板中配置节点参数。
   图1添加执行动作   
   ![](https://support.huaweicloud.com/usermanual-wiseagent/zh-cn_image_0000002311939454.png "点击放大")
   
   
6. （可选）单击起始节点，在参数配置面板中单击"设置参数"，输入起始节点的请求参数，用于调测知识检索流。
7. （可选）单击其他后续节点，在参数配置面板中单击"调测节点"，对当前节点进行正确性测试。 
   调测成功后，会将测试的输出数据（即样本数据）及输入数据进行展示，并会在该条节点的左上角标记![](https://support.huaweicloud.com/usermanual-wiseagent/zh-cn_image_0000002173450968.png)图标。如果提示"调测失败，请检查接口参数配置是否准确"，请检查并重新配置参数后重试。
   图2调测节点   
   ![](https://support.huaweicloud.com/usermanual-wiseagent/zh-cn_image_0000002311797994.png "点击放大")
   
   
8. 执行动作设置完成后，单击"保存"。
9. 在"流保存成功"弹框中选择是否开启检索流。 
   - 单击"确定"，立即开启流，启用后的检索流才可在Agent中引用或通过API调用。
   
   - 单击"取消"，暂不开启，如有需要可参考[更多操作]开启检索流。
   
   
   
   
 
 #### 知识检索流相关节点说明
本节仅介绍知识检索流特有的检索规划、召回及重排序三个节点，工作流其他基础节点说明请参见[工作流基础节点说明](https://support.huaweicloud.com/usermanual-wiseagent/appstage_04_0811.html)。
- **检索规划**
  检索规划包含"Query拆解"、"Query改写"、"意图识别"三个执行动作，执行动作参数配置说明如[表2]所示。
  - **Query拆解：**配置适当的模型将原始查询内容拆解为更简单、易理解的请求。
  
  - **Query改写：**配置适当的模型对原始查询内容进行改写、优化，使得原始请求更准确。
  
  - **意图识别：**配置适当的模型对原始内容进行意图判断。
   
   表2检索规划执行动作参数说明 
  | 参数             || 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
  |:---|---|:---|
  | 输入   | 模型服务调用ID | 执行检索规划所调用的模型。 - 对于平台接入的第三方厂商模型服务或平台预置的模型服务，可在AI原生应用引擎的左侧导航栏选择"资产中心"，进入"大模型"页签后单击模型卡片进入模型详情页面，在"模型信息"区域查看模型服务调用ID。  - 对于用户自接入的模型和路由策略，请单击"获取模型服务调用ID"，进入模型服务页面，选择"我的模型服务"页签，在模型服务列表中复制模型服务调用ID。   |
  | 输入   | 原始查询内容   | 当执行动作为"拆解/改写"时，需要配置此参数。 表示待处理（拆解/改写）的原始内容。支持自定义文本或引入前置节点的输出，也支持两者组合使用。                                                                                                                                                                                                                                                                                                                                               |
  | 输入   | 原始文本内容   | 当执行动作为"意图识别"时，需要配置此参数。 表示待进行意图识别的原始内容。支持自定义文本或引入前置节点的输出，也支持两者组合使用。                                                                                                                                                                                                                                                                                                                                                     |
  | 输入   | 意图类别     | 当执行动作为"意图识别"时，需要配置此参数。 定义意图类别，大模型会按照定义的意图类别对用户问题进行归类。支持自定义数组或选择数组类型的节点输出，例如，\["儿科医疗问题","消化科医疗问题"\]。                                                                                                                                                                                                                                                                                                                  |
  | 输出   | 无需配置，根据用户定义的内容输出指定参数。                                                                                                                                                                                                                                                                                                                                                                                                                                            ||
  | 节点实例 | 首次调用检索规划节点需要新增实例，实例是节点的鉴权方式，如果未配置实例，节点就无法调通。 - **实例名称：**必填项，自定义实例名称。由1\~64个字符组成，包含中文、大小写字母、数字、下划线、空格、中划线、英文小括号，不能以下划线、空格、中划线、英文小括号开头。  - **描述：**选填项，输入实例相关描述信息。  - **API Key：** 必填项，输入在AI原生应用引擎平台申请的API Key，获取方式请参见[创建API Key](https://support.huaweicloud.com/usermanual-wiseagent/appstage_04_0704.html)。   ||
  | 节点备注           || 输入节点备注信息，方便后续查阅节点功能。                                                                                                                                                                                                                                                                                                                                                                                                                                   |
     
  

- **召回**
  召回节点包含"召回"一个执行动作，用于从知识库中检索并召回所有与查询相关的信息，参数配置说明如[表3]所示。
   表3召回执行动作参数说明 
  | 参数            || 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
  |:---|---|:---|
  | 输入   | 知识库ID   | 指定检索目标知识库的唯一标识，通过此ID精准定位并召回对应信息。 单击"获取知识库ID"，在知识库列表中单击"知识库ID"列的![](https://support.huaweicloud.com/usermanual-wiseagent/zh-cn_image_0000002080329864.png)进行复制。                                                                                                                                                                                                                                                                                                                                                                                                                              |
  | 输入   | 向量化检索内容 | 通过将数据转换为向量表示、建立高效的索引结构和使用相似度度量方法，向量化检索能够快速地找到与查询最相似的数据。 用于向量化检索的文本内容。支持自定义文本或引入前置节点的输出，也支持两者组合使用。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
  | 输入   | 相似度阈值   | 检索的关键字和返回内容的相似度阈值，取值范围0\~1，默认为0.5，表示返回相似度大于等于0.5的结果。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
  | 输入   | 召回数量    | 从检索结果中返回的内容片段数量，取值范围：0\~10，默认为10条。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
  | 输入   | 文本过滤    | 配置文本过滤规则。依据知识库索引字段配置的文本过滤字段对检索结果进行筛选，以保障结果的精准性和相关性。默认为空，支持填入SearchSqlFilter类对象，SearchSqlFilter参数说明如[表4]所示。 如下示例表示：在知识库索引字段配置时选择了file_name和path字段作为文本过滤字段，此处对这两个字段配置过滤条件，筛选元数据中file_name字段等于 "四大名著介绍.txt"或元数据中path字段等于 "四大名著介绍.txt"的内容。 ``` { "group_type": "OR", "expressions": [ { "field": "metadata.file_name", "field_type": "STRING", "operator": "EQUAL", "values": [ "四大名著介绍.txt" ] }, { "field": "metadata.path", "field_type": "STRING", "operator": "EQUAL", "values": [ "四大名著介绍.txt" ] } ] } ``` |
  | 输入   | 召回排序    | 配置排序规则，依据元数据中的order字段进行排序，以保障结果的精准性和相关性。默认为空，支持填入SqlOrder类对象，SqlOrder参数说明如[表6]所示。 如下示例表示：按order字段的整数值降序排列，即order值最大的内容排在检索结果最前方。 ``` { "order_items": [ { "field": "metadata.order", "field_type": "INT", "order_type": "DESC" } ] } ```                                                                                                                                                                                                                                                                          |
  | 输出   | 根据用户定义的内容输出指定参数。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      ||
  | 节点实例 | 首次调用检索规划节点需要新增实例，实例是节点的鉴权方式，如果未配置实例，节点就无法调通。 - **实例名称：**必填项，自定义实例名称。由1\~64个字符组成，包含中文、大小写字母、数字、下划线、空格、中划线、英文小括号，不能以下划线、空格、中划线、英文小括号开头。  - **描述：**选填项，输入实例相关描述信息。  - **API Key：** 必填项，输入在AI原生应用引擎平台申请的API Key，获取方式请参见[创建API Key](https://support.huaweicloud.com/usermanual-wiseagent/appstage_04_0704.html)。                               ||
  | 节点备注          || 输入节点备注信息，方便后续查阅节点功能。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
     
   表4SearchSqlFilter 
  | 参数          | 是否必选 | 参数类型                                                                 | 描述                                                                                                                                                                                                                                                                                                                                                                                  |
  |:---|:---|:---|:---|
  | group_type  | 否    | String                                                               | **参数解释：** 过滤条件运算符。 **约束限制：** 只有一个expression时，不需要group_type，group_type可以为null。 **取值范围：** 可以为null，如果不为null，枚举值AND和OR。 **默认取值：** 不涉及。 |
  | expressions | 否    | Array of [Expression] objects | **参数解释：** 过滤条件。 **约束限制：** 不涉及。 **取值范围：** 非空，条件数量为1\~10。 **默认取值：** 不涉及。                                                           |
     
   表5Expression 
  | 参数         | 是否必选 | 参数类型             | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
  |:---|:---|:---|:---|
  | field      | 否    | String           | **参数解释：** 过滤字段。 **约束限制：** 不涉及。 **取值范围：** 非空，字符串长度为1\~100。 **默认取值：** 不涉及。                                                                                                                                         |
  | field_type | 否    | String           | **参数解释：** 过滤字段类型。 **约束限制：** 不涉及。 **取值范围：** 可以为null，如果不为null，枚举值：INT、FLOAT、BOOLEAN和STRING。 **默认取值：** 不涉及。                                                                                                                 |
  | operator   | 否    | String           | **参数解释：** 过滤操作符。 **约束限制：** 不涉及。 **取值范围：** 可以为null，如果不为null，枚举值：EQUAL、NOT_EQUAL、GREAT_THAN、GREAT_EQUAL、LESS_THAN、LESS_EQUAL、IN、NOTIN和STARTS_WITH。 **默认取值：** 不涉及。                                                         |
  | values     | 否    | Array of strings | **参数解释：** 过滤值。 **约束限制：** 当operator参数的值为EQUAL（等于）、NOT_EQUAL（不等于）、GREAT_THAN（大于）、GREAT_EQUAL（大于等于）、LESS_THAN（小于）、LESS_EQUAL（小于等于）和STARTS_WITH（以xxx开头）时，数量限制为1。 **取值范围：** 非空，数量为1\~100，每个字符串长度最大不超过2000。 **默认取值：** 不涉及。 |
     
   表6SqlOrder 
  | 参数          | 是否必选 | 参数类型                                                               | 描述                                                                                                                                                                                                                                                                                                             |
  |:---|:---|:---|:---|
  | order_items | 否    | Array of [OrderItem] objects | **参数解释：** 排序规则。 **约束限制：** 不涉及。 **取值范围：** 非空，数量为1\~10。 **默认取值：** 不涉及。 |
     
   表7OrderItem 
  | 参数         | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                   |
  |:---|:---|:---|:---|
  | field      | 否    | String | **参数解释：** 排序字段。 **约束限制：** 不涉及。 **取值范围：** 非空，字符串长度为1\~100。 **默认取值：** 不涉及。                              |
  | field_type | 否    | String | **参数解释：** 排序字段类型。 **约束限制：** 不涉及。 **取值范围：** 可以为null，如果不为null，枚举值：INT、FLOAT、BOOLEAN和STRING。 **默认取值：** 不涉及。 |
  | order_type | 否    | String | **参数解释：** 排序类型。 **约束限制：** 不涉及。 **取值范围：** 不为null，枚举值：ASC（升序）和DESC（降序）。 **默认取值：** 不涉及。                      |
     
  
- **重排序**
  重排序节点包含"重排序"一个执行动作，用于对召回结果进行重排序，参数配置说明如[表8]所示。
   表8重排序执行动作参数说明 
  | 参数             || 说明                                                                                                                                                                                                                                                                                                                                                                                                                                             |
  |:---|---|:---|
  | 输入   | 模型服务调用ID | 执行重排序所调用的模型，例如，平台预置的bge-reranker-large。 - 对于平台接入的第三方厂商模型服务或平台预置的模型服务，可在AI原生应用引擎的左侧导航栏选择"资产中心"，进入"大模型"页签后单击模型卡片进入模型详情页面，在"模型信息"区域查看模型服务调用ID。  - 对于用户自接入的模型和路由策略，请单击"获取模型服务调用ID"，进入模型服务页面，选择"我的模型服务"页签，在模型服务列表中复制模型服务调用ID。   |
  | 输入   | 原始查询内容   | 将原始查询内容传递给大模型作为重排序参考依据。支持自定义文本或引入前置节点的输出，也支持两者组合使用。                                                                                                                                                                                                                                                                                                                                                                                            |
  | 输入   | 排序返回数量   | 重排序后返回的召回结果数量。                                                                                                                                                                                                                                                                                                                                                                                                                                 |
  | 输入   | 召回结果     | 召回的结果，提供给模型进行重排序。                                                                                                                                                                                                                                                                                                                                                                                                                              |
  | 输出   | 根据用户定义的内容输出指定参数。                                                                                                                                                                                                                                                                                                                                                                                                                                         ||
  | 节点实例 | 首次调用检索规划节点需要新增实例，实例是节点的鉴权方式，如果未配置实例，节点就无法调通。 - **实例名称：**必填项，自定义实例名称。由1\~64个字符组成，包含中文、大小写字母、数字、下划线、空格、中划线、英文小括号，不能以下划线、空格、中划线、英文小括号开头。  - **描述：**选填项，输入实例相关描述信息。  - **API Key：** 必填项，输入在AI原生应用引擎平台申请的API Key，获取方式请参见[创建API Key](https://support.huaweicloud.com/usermanual-wiseagent/appstage_04_0704.html)。   ||
  | 节点备注           || 输入节点备注信息，方便后续查阅节点功能。                                                                                                                                                                                                                                                                                                                                                                                                                           |
     
  
 
#### 测试检索流
当前仅支持post请求调用测试，也可以使用其他调测工具进行调测。
1. 在知识检索流列表中，单击检索流名称，进入检索流查看页面。
2. 单击"测试"，在测试面板，输入参数，单击"提交测试"。
3. 查看测试结果。
4. 单击"查看运行历史详情"，在运行详情页面，查看本次测试过程中检索流的运行总次数、成功次数、失败次数，以及各节点的执行时长、状态、参数信息等，方便定位问题。
 
 #### 更多操作
检索流创建完成后，可执行如下[表9]所示的相关操作。
 表9管理检索流 
| 操作      | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
|:---|:---|
| 启用检索流   | 在知识检索流列表中，在操作列单击"启用"，启用后的检索流才可在Agent中引用或通过API调用。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| 停用检索流   | 在知识检索流列表中，单击操作列的"停用"停用检索流。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| 查看检索流详情 | 在知识检索流列表中单击检索流名称，查看检索流最近一次运行预览图、基本信息、运行历史及历史版本。 - **最近一次运行预览图：**在检索流详情页面左侧区域，展示最近一次流运行预览图，单击页面右上角"编辑"，可进入检索流编辑页面。  - **基本信息：**显示检索流的基本信息，包括名称、状态、调用地址等。  - **运行历史：**可以查看近24小时、近7天、近28天的运行历史记录，也可以自定义时间段进行查询。  - **历史版本：** 展示检索流的历史版本，最多20条。 - 选择历史版本操作列的"更多 \> 保存为最新版本"，会产生一条新的记录并应用于当前的流。如果流已经被其他应用调用，请谨慎操作。  - 选择历史版本操作列的"更多 \> 删除"，删除历史版本。  - 单击历史版本操作列的"编辑"，编辑工作流，保存后会产生一条新的记录并应用于当前的流。如果流已经被其他应用调用，请谨慎操作。     |
| 修改检索流   | 在知识检索流列表中，单击操作列的"修改"，单击检索流名称后的![](https://support.huaweicloud.com/usermanual-wiseagent/zh-cn_image_0000002208827865.png)，可修改检索流名称、描述，并支持增加、删除节点以及修改执行动作参数等。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| 删除检索流   | 已启用的检索流需要先停用，才可删除。 在知识检索流列表中，选择操作列的"更多 \> 删除"，在弹出的确认框中单击"确认"。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| 复制检索流   | 在知识检索流列表中，单击操作列的"复制"，在弹出的复制流提示框中单击"确认"。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
   
#### 相关文档
- 知识检索流启用后，可在Agent中引用或通过API调用，请参考[在AI原生应用引擎中创建单Agent（自主规划模式）](https://support.huaweicloud.com/usermanual-wiseagent/appstage_04_0597.html)、[调用知识检索流](https://support.huaweicloud.com/api-appstage/OpenExecuteRagFlow.html)。
- 知识检索流实践案例请参考[使用知识检索流增强知识库检索能力](https://support.huaweicloud.com/bestpractice-appstage/appstage_09_0203.html)。
 
