创建知识库
接口描述(Description)
创建知识库
请注意,当前版本(Beta),1个账号下允许创建10个知识库。
请求地址(Request URL)
[POST] https://api.sensenova.cn/v1/llm/knowledge-bases
请求头(Request Header)
无特殊Header,请参考接口鉴权
请求体(Request Body)
| 名称 | 类型 | 必须 | 默认值 | 可选值 | 描述 |
|---|---|---|---|---|---|
| description | string | 否 | - | - | 知识库描述 长度不超过256字符 |
| files | string[] | 否 | - | - | 文件管理模块对应的文件ID,1个知识库最多支持添加50个文件(注意,文件必须是知识库支持的格式) |
| configs | object | 否 | - | - | 知识库构建参数配置 |
configs部分参数如下:
| 名称 | 类型 | 必须 | 默认值 | 可选值 | 描述 |
|---|---|---|---|---|---|
| text_split | object | 否 | - | - | 文本分割配置 |
| embedding | object | 否 | - | - | embedding配置 |
text_split部分参数如下:
| 名称 | 类型 | 必须 | 默认值 | 可选值 | 描述 |
|---|---|---|---|---|---|
| mode | string | 否 | semantics | 按语义分割:semantics 按长度和标点分割: delimiter(请注意,这种模式目前仅支持处理PDF格式的知识库文件) | 文本分割模式 |
| config | object | 否 | - | - | delimiter模式下的分隔符配置,semantics模式不支持 |
config部分参数如下:
| 名称 | 类型 | 必须 | 默认值 | 可选值 | 描述 |
|---|---|---|---|---|---|
| max_length | int | 否 | 500 | [200,+∞) | 每个分割片段最大字数长度,注意最大值不能超过所使用的Embedding模型的长度限制,否则超出部分会被截断 |
| punctuations | object[] | 否 | 默认优先级顺序由大到小为:##、\n\n、\n、。、!、.、,、, 、空格 | - | 分割每个片段的标记符号列表,包括符号及其优先级 |
punctuations部分参数如下:
| 名称 | 类型 | 必须 | 默认值 | 可选值 | 描述 |
|---|---|---|---|---|---|
| mark | string | 否 | -- | ##、\n\n、\n、。、!、.、,、, 、空格 | 分割标记 |
| priority | int | 否 | -- | [1,+∞) | 分割标记优先级,数字越大优先级越高,若指定标点符号则必须填写优先级 |
embedding部分参数如下:
| 名称 | 类型 | 必须 | 默认值 | 可选值 | 描述 |
|---|---|---|---|---|---|
| model | string | 否 | nova-embedding-stable | 参考查询模型列表 | 模型ID |
请求示例(Request Example)
curl --request POST "https://api.sensenova.cn/v1/llm/knowledge-bases" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $API_TOKEN" \
-d '{
"description": "string",
"files":[
"string"
],
"configs":{
"text_split":{
"mode": "semantics"
},
"embedding":{
"model": "string"
}
}
}'
响应(Response)
| 名称 | 类型 | 描述 |
|---|---|---|
| knowledge_base | object | 知识库 |
knowledge_base部分参数如下:
| 名称 | 类型 | 描述 |
|---|---|---|
| id | string | 知识库ID |
| description | string | 知识库描述 |
| files | objetc[] | 文件详情 |
| configs | object | 知识库构建参数详情 |
| created_at | string | 知识库创建时间,ISO 8601标准时间格式,精确到纳秒 |
| updated_at | string | 知识库更新时间,ISO 8601标准时间格式,精确到纳秒 |
| status | string | 知识库状态 可用: AVAILABLE 不可用: UNAVAILABLE 正在准备: LOADING 等待中: PENDING |
files部分参数如下:
| 名称 | 类型 | 描述 |
|---|---|---|
| id | string | 文件ID |
| description | string | 文件描述 |
| status | string | 文件状态,枚举值 未上传/上传中: NOTUPLOADED 已上传: UPLOADED 文件无效: INVALID 文件有效: VALID |
configs部分参数如下:
| 名称 | 类型 | 描述 |
|---|---|---|
| text_split | object | 文本分割配置 |
| embedding | object | embedding配置 |
text_split部分参数如下:
| 名称 | 类型 | 描述 |
|---|---|---|
| mode | string | 文本分割模式 |
| config | object | delimiter模式下的分隔符配置,semantics模式无此配置 |
config部分参数如下:
| 名称 | 类型 | 描述 |
|---|---|---|
| max_length | string | 每个分割片段最大字数长度 |
| punctuations | object[] | 分割每个片段的标记符号列表 |
punctuations部分参数如下:
| 名称 | 类型 | 描述 |
|---|---|---|
| mark | string | 分割标记 |
| priority | int | 分割标记优先级 |
embedding部分参数如下:
| 名称 | 类型 | 描述 |
|---|---|---|
| model | string | 模型ID |
响应示例(Response Example)
{
"knowledge_base": {
"id": "string",
"description": "string",
"files":[
{
"id": "string",
"description": "string",
"status": "string"
}
],
"configs":{
"text_split":{
"mode": "string",
"config": {}
},
"embedding":{
"model": "string"
}
},
"created_at": "2023-06-28T17:23:01.243566533Z",
"updated_at": "2023-06-28T17:23:01.243566533Z",
"status": "string"
}
}
错误信息
参考错误码