
# 创建知识库
#### 功能介绍
该接口用于创建知识库，创建的知识库启用后可在创建Agent时引用。
#### 调用方法
请参见[如何调用API](https://support.huaweicloud.com/api-appstage/appstage_07_0008.html)。
#### URI
POST https://aiae.appstage.myhuaweicloud.com/v1/knowledge-bases
#### 请求参数
表1请求Header参数 
| 参数            | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                    |
|:---|:---|:---|:---|
| Authorization | 是    | String | **参数解释：** 鉴权信息。获取平台API Key，并为API Key添加前缀Bearer，得到标准鉴权信息，例如Bearer sk-74e4157\*\*\*。API Key获取方法请参见[创建API Key](https://support.huaweicloud.com/usermanual-wiseagent/appstage_04_0704.html)。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。 |
   
表2请求Body参数 
| 参数                  | 是否必选 | 参数类型                                                                                | 描述                                                                                                                                                                      |
|:---|:---|:---|:---|
| name                | 是    | String                                                                              | **参数解释：** 知识库名称。 **约束限制：** 不涉及。 **取值范围：** 支持中英文、数字、"_"，长度为\[2-50\]，以中英文、数字开头。 **默认取值：** 不涉及。                                                                            |
| description         | 否    | String                                                                              | **参数解释：** 知识库描述。 **约束限制：** 不涉及。 **取值范围：** 只能包含英文，中文，数字，下划线，中划线，空格及,.?:;"'：；""''，。？、()（）/等符号，最长255个字符。 **默认取值：** 不涉及。                                                    |
| retrieval_status    | 是    | String                                                                              | **参数解释：** 知识库召回状态。 **约束限制：** 不涉及。 **取值范围：** 枚举值：ENABLE（启用召回）、DISABLE（禁用召回）。 **默认取值：** 不涉及。                                                                              |
| rag_type            | 否    | String                                                                              | **参数解释：** 知识库RAG类型。 **约束限制：** 不涉及。 **取值范围：** 可以为空，为空则使用默认值。枚举值：VECTOR_RAG（向量RAG，是一种结合了向量化和大语言模型的RAG技术）、GRAPH_RAG（知识图谱RAG，是一种结合了知识图谱和大语言模型的RAG技术）。 **默认取值：** VECTOR_RAG。 |
| retrieval_config    | 否    | [RetrievalConfig] object             | **参数解释：** 知识库检索召回配置。 **约束限制：** 不涉及。 **取值范围：** 可以为空，为空则使用默认值。 **默认取值：** 若不传，则检索配置（retrieval_config）中，检索模式（retrieval_modes）默认为语义检索（SEMANTIC_RETRIEVAL）。                   |
| knowledge_data_sets | 是    | Array of [KnowledgeDataSet] objects | **参数解释：** 知识数据集信息列表，选择知识数据集创建知识库。 **约束限制：** 不涉及。 **取值范围：** 不允许为空，数量最小为1，最大为5。 **默认取值：** 不涉及。                                                                            |
   
 表3RetrievalConfig 
| 参数                    | 是否必选 | 参数类型             | 描述                                                                                                                                                                                                       |
|:---|:---|:---|:---|
| retrieval_modes       | 是    | Array of strings | **参数解释：** 检索模式，用于设置知识库检索召回时的检索方式。 **约束限制：** 不涉及。 **取值范围：** 可传多个值。枚举值： - SEMANTIC_RETRIEVAL：使用向量进行文本语义查询，即调用向量数据库根据向量的相似性检索。 - FULL_TEXT_RETRIEVAL：使用关键字进行文本匹配，适合查找一些关键词和主题语的数据。 **默认取值：** 不涉及。           |
| retrieval_hybrid_mode | 否    | String           | **参数解释：** 此参数用于指定混合检索的模式。 "retrieval_modes"选择SEMANTIC_RETRIEVAL和FULL_TEXT_RETRIEVAL时，为混合检索。 **约束限制：** "retrieval_modes"选择SEMANTIC_RETRIEVAL和FULL_TEXT_RETRIEVAL。 **取值范围：** 支持RRF，枚举值：RRF。 **默认取值：** 不涉及。 |
   
 表4KnowledgeDataSet 
| 参数               | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                           |
|:---|:---|:---|:---|
| data_set_id      | 是    | String | **参数解释：** 知识数据集ID，获取方式： - [创建知识数据集](https://support.huaweicloud.com/api-appstage/CreateKnowledgeDataSet.html)接口返回值即为知识数据集ID。 - 进入[AI原生应用引擎](https://support.huaweicloud.com/usermanual-wiseagent/appstage_04_0638.html#section0)，在左侧导航栏选择"知识中心 \> 知识库"，选择页面右上角的"... \> 知识数据集"，在数据集列表中，单击数据集名称，进入详情页即可获取数据集ID。 **约束限制：** 需要先调用创建知识数据集接口，接口返回即为知识数据集ID。 **取值范围：** 仅支持数字、字母和中划线。 **默认取值：** 不涉及。 |
| data_set_version | 是    | String | **参数解释：** 数据集版本。 **约束限制：** 需根据知识数据集ID，调用查询数据集详情接口，获取版本。 **取值范围：** 格式为：v2024-11-21T11:36:55Z。 **默认取值：** 不涉及。                                                                                                                                                                                                                                                                                  |
| index_config_id  | 是    | String | **参数解释：** 索引配置ID。 **约束限制：** 需根据知识数据集ID，调用查询数据集详情接口，获取索引配置ID。 **取值范围：** 仅支持数字、字母和中划线。 **默认取值：** 不涉及。                                                                                                                                                                                                                                                                                          |
   
#### 响应参数
**状态码：200**
表5响应Body参数 
| 参数   | 参数类型   | 描述                                |
|:---|:---|:---|
| data | String | **参数解释：** 正常返回的结果。 **取值范围：** 不涉及。 |
   
**状态码：400**
表6响应Body参数 
| 参数         | 参数类型   | 描述                               |
|:---|:---|:---|
| error_code | String | **参数解释：** 异常错误码。 **取值范围：** 不涉及。  |
| error_msg  | String | **参数解释：** 异常错误信息。 **取值范围：** 不涉及。 |
   
#### 请求示例
```
{
  "name" : "知识库名称",
  "description" : "知识库描述",
  "retrieval_status" : "ENABLE",
  "rag_type" : "VECTOR_RAG",
  "retrieval_config" : {
    "retrieval_modes" : [ "SEMANTIC_RETRIEVAL", "FULL_TEXT_RETRIEVAL" ],
    "retrieval_hybrid_mode" : "RRF"
  },
  "knowledge_data_sets" : [ {
    "data_set_id" : "djh28e62-xxxxxxxxx-a15be0d63812",
    "data_set_version" : "v2024-11-21T11:36:55Z",
    "index_config_id" : "d3f28e62-xxxxxxx-a15be0d638a2"
  } ]
}
```
#### 响应示例
**状态码：200**
操作成功，返回知识库id。
```
{
  "data" : "3f28e62-xxxxxxxx-a15be0d638a2"
}
```
**状态码：400**
请求错误。
```
{
  "error_code" : "AIAE.40001001",
  "error_msg" : "参数xxxx不合法。"
}
```
#### 状态码
| 状态码 | 描述            |
|:---|:---|
| 200 | 操作成功，返回知识库id。 |
| 400 | 请求错误。         |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-appstage/ErrorCode.html)。
