创建知识库并添加数据¶
创建知识库并同时提交初始数据源。请求成功只表示来源记录和处理任务已创建,不表示内容已可检索。
POST https://api.moi.matrixorigin.cn/v5/semantic-models/create-with-sources
调用前准备¶
先确认来源:Catalog 表、Catalog 文件和批量选择只能引用 Catalog 中已有的数据;本地文件先通过上传本地文件取得文件 ID。准备有目标工作区访问权限且具有创建知识库权限的个人访问令牌和目标工作区 ID。
直接添加来源时,按来源类型提供字段:
来源类型 |
必填字段 |
|---|---|
|
|
|
|
|
上传返回的 |
source_selections 只能在 Catalog 的 Database 或 Volume 范围内选择,不能传入 Catalog 之外的数据源。
请求体¶
curl -X POST "https://api.moi.matrixorigin.cn/v5/semantic-models/create-with-sources" \
-H "X-API-Key: $AI_STUDIO_API_KEY" \
-H "X-Workspace-ID: $WORKSPACE_ID" \
-H 'Content-Type: application/json' \
-d '{
"name": "$KNOWLEDGE_BASE_NAME",
"sources": [
{
"source_type": "catalog_table",
"table_id": $TABLE_ID
}
]
}'
字段路径中的 [] 表示数组中的每一项。例如,sources[].source_type 表示 sources 数组中每一项的 source_type 字段。
除知识库名称外,提交直接来源或来源选择。
字段 |
类型 |
必填 |
说明 |
|---|---|---|---|
|
string |
是 |
知识库名称。 |
|
string |
否 |
知识库说明。 |
|
boolean |
否 |
是否在创建时启用图片索引。 |
|
object |
否 |
文件索引扩展配置;服务会补齐创建知识库所需的固定索引设置。 |
|
array of object |
否 |
直接添加的来源。 |
|
array of object |
否 |
按数据库或卷选择来源的规则。 |
下面表格展开请求示例中 files 对象;每一行是该对象的一个字段。
字段 |
类型 |
必填 |
说明 |
|---|---|---|---|
|
array of string |
否 |
要加入的文件 ID。 |
|
array of string |
否 |
文件父目录路径。 |
|
array of integer |
否 |
要扫描的卷 ID。 |
|
array of object |
否 |
卷及其扫描路径。 |
|
string |
否 |
兼容的文本向量表名称。 |
|
string |
否 |
文本嵌入模型标识。 |
|
string |
否 |
图片向量表名称。 |
|
string |
否 |
图片嵌入模型标识。 |
|
string |
否 |
图片嵌入后端 ID。 |
|
integer |
否 |
图片嵌入维度。 |
|
string |
否 |
图片预处理版本。 |
|
string |
否 |
图片向量距离度量。 |
|
array of string |
否 |
文件来源标签。 |
下面表格展开请求示例中 files.volumes 数组的每一项;每一行是该数组项的一个字段。
字段 |
类型 |
必填 |
说明 |
|---|---|---|---|
|
integer |
是 |
卷 ID。 |
|
array of string |
否 |
卷内父目录路径。 |
|
string |
否 |
卷内起始路径。 |
下面表格展开请求示例中 sources 数组的每一项;每一行是该数组项的一个字段。
字段 |
类型 |
必填 |
说明 |
|---|---|---|---|
|
string |
条件必填 |
来源类型。 |
|
integer |
条件必填 |
|
|
string |
条件必填 |
文件来源的文件 ID。 |
|
string |
条件必填 |
|
|
integer |
条件必填 |
|
下面表格展开请求示例中 source_selections 数组的每一项;每一行是该数组项的一个字段。
字段 |
类型 |
必填 |
说明 |
|---|---|---|---|
|
string |
条件必填 |
|
|
integer |
条件必填 |
|
|
integer |
条件必填 |
|
|
boolean |
是 |
|
|
array of integer |
条件必填 |
|
|
array of string |
条件必填 |
|
|
array of integer |
否 |
|
|
array of string |
否 |
|
|
object |
否 |
在选择范围内按名称或扩展名过滤。 |
下面表格展开请求示例中 source_selections[].filters 对象;每一行是该对象的一个字段。
字段 |
类型 |
必填 |
说明 |
|---|---|---|---|
|
string |
否 |
表名筛选条件。 |
|
string |
否 |
文件名筛选条件。 |
|
array of string |
否 |
文件扩展名筛选条件。 |
成功响应¶
成功时返回 201,其中包含新知识库、已创建的 sources 和处理 jobs。保存来源的 row_id,后续来源、分段和治理接口均使用它。jobs 已创建不表示来源处理完成。
{
"code": "OK",
"msg": "OK",
"data": {
"model": {
"id": 401,
"name": "product_docs",
"source_counts": {
"files": 0,
"tables": 0,
"total": 0
},
"created_at": 1735632000,
"updated_at": 1735632000
},
"data_domain": {
"model_id": 401,
"catalog_id": 10,
"database_id": 20,
"raw_volume_id": 30,
"processed_volume_id": 31,
"ensure_status": "ready",
"last_checked_at": 1735632000
},
"sources": [
{
"row_id": "src_01",
"source_type": "table",
"model_id": 401,
"resource_id": "123",
"ingest_status": "pending",
"effective_enabled": true
}
],
"jobs": [
{
"job_id": "job_01",
"source_id": "src_01",
"model_id": 401,
"job_type": "ingest",
"job_status": "pending",
"idempotency_key": "idem_01",
"retry_count": 0
}
]
}
}
字段 |
类型 |
说明 |
|---|---|---|
|
string |
成功时为 |
|
string |
成功时为 |
|
object |
本次操作的返回数据。 |
下面表格展开响应示例中 data 对象;每一行是该对象的一个字段。
字段 |
类型 |
说明 |
|---|---|---|
|
object |
新建知识库的快照。 |
|
object |
为该知识库解析的数据域;包含 Catalog、数据库和卷的 ID,以及数据域的检查状态。 |
|
array of object |
已创建的来源记录。 |
|
array of object |
为来源创建的处理任务。 |
下面表格展开响应示例中 data.model 对象;每一行是该对象的一个字段。
字段 |
类型 |
说明 |
|---|---|---|
|
integer |
新知识库 ID。 |
|
string |
知识库名称。 |
|
string |
知识库说明。 |
|
array of object |
兼容的旧式表来源定义。 |
|
object |
兼容的旧式文件来源定义;未设置时可能省略。 |
|
object |
来源数量。 |
|
integer |
创建时间。 |
|
integer |
最近更新时间。 |
下面表格展开响应示例中 data.model.tables 数组的每一项;每一行是该数组项的一个字段。
字段 |
类型 |
说明 |
|---|---|---|
|
string |
数据库名称。 |
|
array of string |
该数据库中的表名称。 |
下面表格展开响应示例中 data.model.files 对象;每一行是该对象的一个字段。
字段 |
类型 |
说明 |
|---|---|---|
|
array of string |
文件 ID。 |
|
array of string |
文件父目录路径。 |
|
array of integer |
卷 ID。 |
|
array of object |
卷及其扫描路径。 |
|
string |
文本向量表名称。 |
|
string |
文本嵌入模型标识。 |
|
string |
图片向量表名称。 |
|
string |
图片嵌入模型标识。 |
|
string |
图片嵌入后端 ID。 |
|
integer |
图片嵌入维度。 |
|
string |
图片预处理版本。 |
|
string |
图片向量距离度量。 |
|
array of string |
文件来源标签。 |
下面表格展开响应示例中 data.model.files.volumes 数组的每一项;每一行是该数组项的一个字段。
字段 |
类型 |
说明 |
|---|---|---|
|
integer |
卷 ID。 |
|
array of string |
卷内父目录路径。 |
|
string |
卷内起始路径。 |
下面表格展开响应示例中 data.model.source_counts 对象;每一行是该对象的一个字段。
字段 |
类型 |
说明 |
|---|---|---|
|
integer |
文件来源数量。 |
|
integer |
表来源数量。 |
|
integer |
来源总数。 |
下面表格展开响应示例中 data.data_domain 对象;每一行是该对象的一个字段。
字段 |
类型 |
说明 |
|---|---|---|
|
string |
数据域的当前确保状态。 |
|
integer |
知识库 ID。 |
|
integer |
Catalog ID。 |
|
integer |
数据库 ID。 |
|
integer |
原始文件卷 ID。 |
|
integer |
处理结果卷 ID。 |
|
string 或 null |
最近检查错误。 |
|
integer |
最近检查时间。 |
下面表格展开响应示例中 data.sources 数组的每一项;每一行是该数组项的一个字段。
字段 |
类型 |
说明 |
|---|---|---|
|
string |
来源记录 ID,后续来源、分段和治理接口使用该值。 |
|
string |
来源类型: |
|
string |
来源处理状态; |
|
boolean |
当前生效的启用状态。 |
|
string 或 null |
来源 ID。 |
|
integer |
所属知识库 ID。 |
|
string |
来源资源 ID。 |
|
string 或 null |
原始文件 ID。 |
|
string 或 null |
知识库文件 ID。 |
|
integer 或 null |
原始表 ID。 |
|
integer 或 null |
知识库表 ID。 |
|
string 或 null |
显示名称。 |
|
array of string |
来源路径。 |
|
string 或 null |
数据库名称。 |
|
string 或 null |
表名称。 |
|
integer 或 null |
文件大小。 |
|
integer 或 null |
表行数。 |
|
boolean 或 null |
启用设置。 |
|
integer 或 null |
到期时间。 |
|
boolean |
是否到期。 |
|
boolean |
到期后是否强制启用。 |
|
array of string |
来源标签。 |
|
string 或 null |
当前分段版本 ID。 |
|
integer 或 null |
当前索引版本。 |
|
string 或 null |
处理错误。 |
|
string |
治理状态。 |
|
string 或 null |
历史来源标记。 |
下面表格展开响应示例中 data.jobs 数组的每一项;每一行是该数组项的一个字段。
字段 |
类型 |
说明 |
|---|---|---|
|
string |
处理任务 ID。 |
|
string |
关联的来源 ID。 |
|
string |
处理任务类型。 |
|
string |
处理任务的当前状态。 |
|
string |
此处理任务的幂等键。 |
|
integer |
当前已记录的重试次数。 |
|
integer |
所属知识库 ID。 |
|
string 或 null |
操作 ID。 |
|
string 或 null |
工作流执行 ID。 |
|
string 或 null |
原始文件 ID。 |
|
string 或 null |
知识库文件 ID。 |
|
integer 或 null |
原始表 ID。 |
|
integer 或 null |
知识库表 ID。 |
|
integer 或 null |
下次重试时间。 |
|
string 或 null |
作业错误。 |
|
integer |
创建时间。 |
|
integer |
最近更新时间。 |
错误响应¶
{
"code": "ErrParamInvalid",
"msg": "name is required",
"data": null
}
字段 |
类型 |
说明 |
|---|---|---|
|
string |
错误代码。 |
|
string |
面向调用者的错误信息。 |
|
null |
发生错误时为 |
后续操作¶
使用 data.jobs[].job_id 查询数据处理任务,确认来源处理完成后再使用知识库。