> ## Documentation Index
> Fetch the complete documentation index at: https://docs.coze.cn/llms.txt
> Use this file to discover all available pages before exploring further.

扣子编程的知识库功能支持上传和存储外部知识内容，并提供了多种检索能力。扣子编程的知识能力可以解决大模型幻觉、专业领域知识不足的问题，提升大模型回复的准确率。
## 知识库介绍 {#0fa41dbd}
扣子编程的知识库功能包含两个能力，一是存储和管理外部数据的能力，二是增强检索的能力。

* 数据管理与存储
   扣子编程支持从多种数据源例如本地文档、在线数据、Notion、飞书文档等渠道上传文本和表格数据。上传后，扣子编程可将知识内容自动切分为一个个内容片段进行存储，同时支持用户自定义内容分片规则，例如通过分段标识符、字符长度等方式进行内容分割。
* 增强检索
   扣子编程的知识功能还提供了多种检索方式来对存储的内容片段进行检索，例如使用全文检索通过关键词进行内容片段检索和召回。
   大模型会根据召回的内容片段生成最终的回复内容。

关于知识库的详细介绍，请参考[知识库概述](/guides/knowledge)。
## 添加知识库 {#ecc3a987}
:::tip 说明
单个低代码智能体最多可绑定 150 个知识库。
:::
为低代码智能体添加知识库，能够提供准确的知识支持，增强大模型回答的可靠性和专业性。知识库有助于低代码智能体减少错误信息的生成，提高对复杂查询的处理能力。支持为低代码智能体添加扣子知识库（文本、表格、照片知识库）和火山知识库（结构化与非结构化知识库）。
### 前提条件 {#1434006a}

* 扣子知识库：已创建扣子知识库，详情请参考[创建文本知识库](/guides/create_knowledge)。
* 火山知识库：已在火山知识库控制台创建知识库、上传文件、配置召回策略并发布为知识检索类型的服务调用，并在扣子编程中关联了火山知识库，详情请参考[关联火山知识库](/guides/kir27ori)。

### 操作步骤 {#0309bfe6}
1. 登录[扣子编程](https://code.coze.cn/home)。
2. 在页面顶部选择目标工作空间，然后在左侧导航栏中单击**新建项目**。


3. 在**低代码模式**区域，单击**智能体开发**。
4. 根据页面提示，创建一个新智能体。
5. 在**编排**页面的**知识**区域，选择**扣子知识库**或**火山知识库**，然后单击对应的 **+** 图标，添加要使用的知识库。
   ![Image=492x120](https://p9-arcosite.byteimg.com/tos-cn-i-goo7wpa0wc/986e93bba26f4398b048374733c1ce7f~tplv-goo7wpa0wc-image.image)

## 扣子知识库召回配置 {#143f0211}
在智能体关联要使用的知识库后，可以通过检索和召回配置来解决从哪里查、怎么查、返回几条的问题。召回的内容的完整度和相关度越高，大模型生成的回复内容的准确性和可用性也就越高。
单击**知识**功能区域中的**自动调用**选项，打开配置页面，配置内容的召回和搜索策略等。
![Image=402x207](https://p9-arcosite.byteimg.com/tos-cn-i-goo7wpa0wc/3e8e38ad0f9a46a4a5ae06a4eb53d1fb~tplv-goo7wpa0wc-image.image)
配置说明如下。
<!-- @cols-width: 128,128,613 -->
| | | | \
|**分类** |**配置项** |**说明** |
|---|---|---|
| | | | \
|召回配置 |调用方式 |选择是否每轮对话都基于知识库的召回内容来生成回复内容。 |\
| | | |\
| | |   * **自动调用**：智能体在每一轮对话中都会调用知识库，并使用召回的内容辅助生成回复。 |\
| | |   * **按需调用**：智能体根据提示词自行判断是否调用知识库，并使用召回内容辅助生成回复。此时，需要在左侧的**人设与回复逻辑**区域明确写清楚在什么情况下调用哪个知识库进行回复。 |\
| | |      ![Image=2156x677](https://p9-arcosite.byteimg.com/tos-cn-i-goo7wpa0wc/2f860d6b782647ed86472ee6752b9be0~tplv-goo7wpa0wc-image.image) |\
| | | |\
| | |:::tip 说明 |\
| | |只有当在智能体中使用知识库时需要配置调用方式。在工作流中会根据节点顺序调用知识库。 |\
| | |::: |
|^^| | | \
| |搜索策略 |选择如何从知识库中搜索内容片段，不同的检索策略适应于不同的场景。检索到的内容片段的相关性越高，大模型根据召回内容生成的回复的准确性和可用性也越高。 |\
| | | |\
| | |* **混合**：结合全文检索和语义检索的优势，并对结果进行综合排序召回相关的内容片段。 |\
| | |* **语义**：像人类一样去理解词与词、句与句之间的关系。推荐在需要理解语义关联度和跨语言查询的场景使用。例如下面两组句子，第一组的语义关系就更强。 |\
| | |   ```SQL |\
| | |   "狼追小羊"和"豺狼追山羊" |\
| | |   "狼追小羊"和"我爱吃炸猪排" |\
| | |   ``` |\
| | | |\
| | |* **全文**：基于关键词进行全文检索。推荐当查询内容包含以下场景时使用： |\
| | |      * 特定名称或专有名词，术语等，例如比尔盖茨、 特斯拉 Model Y。 |\
| | |      * 缩写词，例如 SFT。 |\
| | |      * ID，例如 12s1w1s2系列。 |
|^^| | | \
| |最大召回数量 |选择从检索结果中返回多少个内容片段给大模型使用。数值越大，返回的内容片段就越多。 |
|^^| | | \
| |最小匹配度 |根据设置的匹配度选取要返回给大模型的内容片段。低于设定匹配度的内容不会被返回。 |\
| | |该配置可过滤掉一些低相关度的搜索结果。 |
|^^| | | \
| |查询改写 |在多轮对话中，用户的 Query 和对话的上下文息息相关，仅凭借用户最新一条提问可能无法正确识别用户的真实检索意图。查询改写是指根据对话历史对用户输入的 Query 进行优化或重构，从而更准确地捕捉真实的用户意图，提升信息检索的效率。 |\
| | |例如用户对话的上下文为： |\
| | | |\
| | |* 问题 1：知识库检索节点可以用来做什么？ |\
| | |* 回复 1：知识库检索节点可以基于用户输入查询指定的知识库，召回最匹配的信息，并将匹配结果以列表形式返回。 |\
| | |* 问题 2：怎么用？ |\
| | | |\
| | |对于问题 2，不参考上下文的情况下无法判断用户的真实意图。开启查询改写后，问题 2 会被改写为`知识库检索节点怎么用？`。 |
|^^| | | \
| |结果重排 |结果重排是指根据相关性或质量对检索到的文档切片进行重新排序，以提高生成答案的准确性和相关性，适用于追求回答高精度和高相关性的场景，例如智能客服、专业技术答疑等场景。 |\
| | | |\
| | |* 未开启结果重排时，节点输出的是向量检索的结果，根据匹配度从大到小排序； |\
| | |* 开启结果重排后，系统会将 Embedding 的召回结果交由 Rerank 模型进行质量和相关性判断，对结果重新排序，将与输入问题最相关的文档排在前面。 |\
| | | |\
| | |假设用户查询 `如何制作意大利面？`，首先会从知识库中检索得到以下几个文档片段，其中先按照ABCD先后顺序排列： |\
| | | |\
| | |* 切片 A：介绍意大利面的历史。 |\
| | |* 切片 B：讨论了不同种类的意大利面和它们的搭配。 |\
| | |* 切片 C：详细描述了制作意大利面的步骤，包括所需材料和烹饪技巧。 |\
| | |* 切片 D：提供了一些意大利面食谱。 |\
| | | |\
| | |在结果重排的过程中，知识库检索节点会分析用户的真实意图，对切片重新排序，使得最相关的内容排在前面。最终的排序可能变为： |\
| | | |\
| | |* 切片 C：详细描述了制作意大利面的步骤，包括所需材料和烹饪技巧。 |\
| | |* 切片 D：提供了一些意大利面食谱。 |\
| | |* 切片 B：讨论了不同种类的意大利面和它们的搭配。 |\
| | |* 切片 A：介绍意大利面的历史。 |
| | | | \
|回复配置 |无召回回复 |当知识库没有召回有效切片时的回复话术，支持使用默认回复话术和自定义设置回复话术。 |
| | | | \
|来源配置 |显示来源 |将召回的知识库原始切片呈现给用户，并支持查看源文件。默认关闭。 |\
| | |![Image=350x120](https://p9-arcosite.byteimg.com/tos-cn-i-goo7wpa0wc/0442eb19ab194a8cb75c1a7bc6fc23b1~tplv-goo7wpa0wc-image.image) |

## 火山知识库召回配置 {#3809c61c}
知识库的召回配置在很大程度上会影响召回结果的准确性、相关性。火山知识库召回配置需在火山知识库控制台中完成。

1. 在**知识**区域，选择**火山知识库**，然后单击对应的 **+** 图标，添加要使用的火山知识库。
2. 单击目标知识库对应的**设置**图标，然后单击**前往火山设置**。
   你可以在火山知识库控制台查看已配置的召回策略，包括返回文本片数量、重排模型、Dense Weight 等。如果修改了召回配置，必须将该配置发布为新的知识服务，并在此处选择新的知识服务。
   ![Image=554x197](https://p9-arcosite.byteimg.com/tos-cn-i-goo7wpa0wc/6ff47104a4914c75b0c52cc17454a0e9~tplv-goo7wpa0wc-image.image)

## 火山知识库标签配置 {#d617a199}
如果你为火山知识库中的文档添加了标签，那么你可以在目标火山知识库的设置中，通过标签设置过滤条件，以实现知识库检索时，将先在标签范围内检索文档，然后结合召回策略返回结果。
:::tip 说明
仅火山知识库旗舰版支持标签功能。更多信息，请参考[创建知识库](https://www.volcengine.com/docs/84313/1254457)。
:::

1. 在**知识**区域，选择**火山知识库**，然后单击对应的 **+** 图标，添加要使用的火山知识库。
2. 单击目标知识库对应的**设置**图标，然后设置过滤条件，包括标签名、操作符和标签值。
   * 标签名：仅在创建知识库时创建了标签，此处才能选择对应的标签名。
   * 操作符：不同的数据类型支持的操作符不同，以实际页面为准。
   * 标签值：支持设置为固定值或引用变量。变量说明，请参考[变量](/guides/variable)。
   例如设置过滤条件为 `doc_id 包含 123456`，那么系统将会筛选出本知识库中所有带有 `doc_id` 标签且标签值包含 `123456` 的文档。
   ![Image=577x207](https://p9-arcosite.byteimg.com/tos-cn-i-goo7wpa0wc/c249e0dbcbfd45cb9a9d7111e550d748~tplv-goo7wpa0wc-image.image)

## 常见问题 {#2c94bf7c}
### 为什么设置了优先检索知识库的提示词，但智能体仍无法召回知识库内容？ {#e08bd7d7}
如果设置了优先检索知识库的提示词但智能体仍无法找回知识库内容，请参考如下步骤排查：

1. 检查知识库名称、描述是否与 Query 相匹配。
2. 检查提示词是否合理，是否明确表达了调用知识库的意图。
3. 检查知识库的调用方式是否合理。调用方式分为两种：
* **按需调用**：智能体根据提示词自行判断是否调用知识库，并使用召回内容辅助生成回复。选择按需调用时，需要在左侧的**人设与回复**逻辑区域明确填写期望调用哪个知识库进行回复。
* **自动调用**：智能体在每一轮对话中都会调用知识库，并使用召回的内容辅助生成回复。

如果当前使用的是按需调用模式，建议切换为自动调用模式，以提高召回效率。

