
# 构建儿科知识库
#### 场景介绍
知识库是一个组织、存储及管理知识的系统，包括文档、数据库、图表、表格等多种形式的信息的分类、整理和归纳，可以帮助用户组织和管理大量的信息，平台为用户提供了创建并管理知识库的能力，且创建的知识库可在工作流和Agent中调用。
对于需要处理大量问答知识、对检索效率有较高要求的场景，通过构建知识库组织和管理信息，可以提升信息获取效率。本实践以构建儿科知识库为例进行介绍，主要完成以下设置：
- 上传儿科问答知识.pdf文档，对文档进行自定义切分。切分出来的切片为"问答对"格式（包含图片），切片效果如[图1]所示。
  图1切片效果   
  ![](https://support.huaweicloud.com/bestpractice-appstage/zh-cn_image_0000002180878072.png "点击放大") 
- 对切片的问题和答案进行提取，用于向量化检索。
- 对问题做向量化检索，附加返回答案内容。在检索时，通过对问题配置条件过滤和排序规则，确保精准返回查询结果。
- 使用混合检索的方式检索内容。
 
#### 准备工作
准备pdf文档并进行预处理，本实践中以儿科问答知识.pdf为例，在每个问答对后面增加"===="，作为切片分段分隔符，请参见[儿科问答知识.pdf](https://res-static.hc-cdn.cn/cloudbu-site/china/zh-cn/AppStage/1743062256587221776.pdf)。
#### 创建知识库
1. 基础配置。 
   1. 在AI原生应用引擎的左侧导航栏选择"知识中心 \> 知识库"，单击"创建知识库"。
   
   2. 在"基础配置"区域，配置相关参数，如[图2]所示。
      图2知识库基础配置   
      ![](https://support.huaweicloud.com/bestpractice-appstage/zh-cn_image_0000002320712008.png)
      表1知识库基础配置参数说明 
      | 参数    | 说明                                                  |
      |:---|:---|
      | 知识库名称 | 自定义知识库的名称，例如：儿科知识库。                                 |
      | 知识库描述 | 知识库的相关描述。例如：关于儿科医疗知识的综合资源库，涵盖儿童健康、疾病、发育、护理等全方位专业知识。 |
      | RAG类型 | 本实践中文档为简单的问答信息，此处选择"VectorRAG"。                     |
      | 数据来源  | 选择"接入源数据"。                                          |
      | 数据类型  | 选择"文档"。                                             |
         
      
   
   
   
   
2. 数据接入。 
   在"数据接入"区域，通过"本地上传"的方式上传儿科问答知识.pdf，如[图3]所示。
   图3数据接入   
   ![](https://support.huaweicloud.com/bestpractice-appstage/zh-cn_image_0000002202944617.png "点击放大")
   
   
3. 数据加工。 
   在"数据加工"区域，对文档进行PDF预处理及切分配置，参数说明如[表2]所示。
   图4数据加工配置   
   ![](https://support.huaweicloud.com/bestpractice-appstage/zh-cn_image_0000002354550893.png "点击放大")
    表2数据加工参数说明 
   | 参数     | 说明                          |
   |:---|:---|
   | PDF预处理 | 选择"提取PDF富媒体"，提取PDF中的图片。     |
   | 数据切分   | 选择"自定义切分"。                  |
   | 分段分隔符  | 选择"自定义"。                    |
   | 自定义输入  | 输入"===="。                   |
   | 包含分隔符  | 选择"不包含"，表示切片中不包含分隔符。        |
   | 分段最小长度 | 设置为最小值"1"，表示不合并分片。          |
   | 分段重叠长度 | 设置为"0"，表示当前分段开头与上一个分段结尾不重叠。 |
      
   
   
4. 索引配置。 
   表3索引配置参数说明 
   | 参数    | 说明                                                                                                                     |
   |:---|:---|
   | 向量化模型 | 选择平台预置的bge-large-zh-v1.5。                                                                                              |
   | 长文本策略 | 选择"截断模式"。 当前向量化模型仅支持向量化512 token的内容，对应的中文约为512个字，英文与符号约900个字符，选择"截断模式"，对分片超出部分进行截断。 |
      
   
   
5. 检索配置。 
   选择"混合检索"，表示同步执行语义检索与全文检索，并对两种检索方式所得的结果进行综合排序。
   
   
6. 开启高级配置。 
   配置切片提取，并对提取的切片片段进行检索配置。相关参数如[表4]所示。
   图5高级配置   
   ![](https://support.huaweicloud.com/bestpractice-appstage/zh-cn_image_0000002354670681.png "点击放大")
    表4高级配置参数说明 
   | 参数     | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
   |:---|:---|
   | 切片提取模式 | 选择"规则提取"。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
   | 切片内容示例 | 切片内容示例，用于测试切片提取效果。此处，以对儿科问答知识.pdf切分出来的某一分片为例： 小儿肥胖超重该怎样医治？答：孩子一旦患上肥胖症家长要先通过运动和饮食来改变孩子的情况，要让孩子做一些他这个年龄段能做的运动，如游泳，慢跑等，要给孩子多吃一些像苹果，猕猴桃，胡萝卜等食物，禁止孩子吃高热量，高脂肪的食物，像蛋糕，干果，曲奇饼干等，严格地控制孩子的饮食，不要让他暴饮暴食，多运动对改变孩子肥胖都是有好处的，在治疗小儿肥胖期间如果情况严重，建议家长先带孩子去医院检查一下孩子肥胖症的原因再针对性的治疗。                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
   | 切片提取配置 | 对于儿科问答知识.pdf文档，切分出来的切片为"问答对"形式，因此，可以提取出问题、答案两个片段。 单击"添加提取字段"，配置如下参数： - 片段1 切片片段名称：question。 提取规则：选择"分隔符提取"。 提取设置：以分隔符**？** 对切片进行分段，选择第**1** 个片段，片段中**不包含**分隔符。   - 片段2 切片片段名称：answer。 提取规则：选择"按规则提取"。 提取设置：从切片提取以**答：** 开头和以**。** 结尾的片段，选择第**1** 个片段，片段中**不** **包含** 开头，**不包含**结尾。    |
   | 切片提取效果 | 展示对切片内容提取后的效果。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
   | 索引字段配置 | - 检索字段：勾选"对question进行检索"，选择question作为向量化检索字段，并作为检索命中内容返回。  - 文本过滤字段：勾选"设置question为过滤字段"，表示在检索时，同步对question字段进行文本过滤，并返回该字段的内容。文本过滤配置请参见[配置知识库文本过滤条件和排序规则]。  - 附加返回字段：勾选"检索返回answer"，表示在检索时，附加返回answer字段的内容。                                                                                                                                                                                                                                                      |
      
   
   
7. 单击"保存并启用"。
 
#### 命中测试
命中测试即测试检索的命中率。
1. 在知识库列表中，单击操作列的"命中测试"。
2. 在命中测试页面，配置测试输入参数，参数说明如[表5]所示，配置完单击"测试"。
    表5测试输入参数配置 
   | 参数    | 说明                                 |
   |:---|:---|
   | 检索内容  | 输入测试文本"肥胖懒惰"。                      |
   | 选择数据集 | 默认选择"儿科知识库"。                       |
   | 相似度阈值 | 取值范围为0\~1，配置为0.5，则返回相似度大于等于0.5的结果。 |
   | 查询数量  | 查询最大返回数量，设置为5。                     |
      
   
3. 在"测试结果"区域查看测试效果，测试结果根据相似度从大到小进行排序。
   在索引字段配置时，本实践选择question作为向量化检索字段，answer为附加返回字段。因此在命中测试时，命中内容即为question字段内容，并同时返回answer字段的内容。
   图6命中测试   
   ![](https://support.huaweicloud.com/bestpractice-appstage/zh-cn_image_0000002216493249.png "点击放大") 
 
 #### 配置知识库文本过滤条件和排序规则
在检索知识库时，响应参数metadata默认包含order字段，同时，如果索引字段配置时配置所提取的字段作为文本过滤字段，metadata还会新增该字段及其内容。通过配置metadata参数的order和文本过滤字段，用户可以在工作流中调用知识库时，对知识库检索结果进行过滤和排序，以确保检索结果的精准度和相关性。具体配置方法如下：
1. 在AI原生应用引擎的左侧导航栏，选择"Agent编排中心 \> 我的工作流"。
2. 在"我的工作流"页面，单击"创建工作流"。
3. 在"基本信息"对话框，设置工作流名称为"儿科知识检索"，单击"确认"。
4. 在工作流构建页面，添加节点和执行动作，并配置各节点输入、输出参数。 
   1. 配置起始节点。
      图7配置起始节点   
      ![](https://support.huaweicloud.com/bestpractice-appstage/zh-cn_image_0000002251349185.png "点击放大") 
   
   2. 添加"查询知识库"节点。
      1. 在"起始节点"下单击"![](https://support.huaweicloud.com/bestpractice-appstage/zh-cn_image_0000002251429333.png) \> 添加执行动作"，在"基础节点"页签中选择"知识库"，执行动作选择为"查询知识库"。
      
      2. 配置输入参数，参数说明如[表6]所示。
      
      
       表6知识库参数配置说明 
      | 参数    | 说明                                                                                                                                                                                                                                                                  |
      |:---|:---|
      | 知识库ID | 单击"获取知识库ID"，进入"我的知识库"列表选择儿科知识库，单击![](https://support.huaweicloud.com/bestpractice-appstage/zh-cn_image_0000002216578058.png)复制。                                                                                                                                     |
      | 最小相似度 | 取值范围为0\~1，配置为0.5，则返回相似度大于等于0.5的结果。                                                                                                                                                                                                                                  |
      | 限量    | 查询最大返回数量，设置为5。                                                                                                                                                                                                                                                      |
      | 过滤项   | 本实践中，在索引字段配置时选择了question字段作为文本过滤字段，此处对该字段配置过滤条件，筛选以"儿童"开头的内容，填写如下配置： ``` { "group_type": "AND", "expressions": [ { "field": "metadata.question", "field_type": "STRING", "operator": "STARTS_WITH", "values": [ "儿童" ] } ] } ``` |
      | 排序项   | 按照metadata的order字段降序排序，填写如下配置： ``` { "order_items": [ { "field": "metadata.order", "field_type": "INT", "order_type": "DESC" } ] } ```                                                                                            |
      | 关键字   | 检索的关键字。此处选择起始节点的输入：起始节点.WISEAGENT_USER_INPUT。                                                                                                                                                                                                                       |
         
      
   
   3. 配置完成后，调测节点，验证知识库查询结果。
      1. 在起始节点的参数配置面板中，单击"设置参数"，输入"肥胖懒惰"。
      
      2. 在查询知识库节点的参数配置面板中，单击"调测节点"，可以看到查询结果为过滤并排序后的信息，如[图8]所示。
         图8在工作流配置过滤项和排序项   
         ![](https://support.huaweicloud.com/bestpractice-appstage/zh-cn_image_0000002251458017.png "点击放大") 
       
   
   
   
   
 
