添加数据源

向已有知识库追加数据源。请求成功不表示来源已经完成解析或索引。

POST https://moi.matrixorigin.cn/newmoi/semantic-models/{model_id}/sources

调用前准备

检查数据源是否已添加,移除重复项;按数据库或卷批量选择时先预览待添加的数据源。准备有目标工作区访问权限的个人访问令牌和目标工作区 ID。

下方示例使用:

  • $AI_STUDIO_API_KEY:实际个人访问令牌,通过 X-API-Key Header 传递。

  • $WORKSPACE_ID:目标工作区 ID,通过 X-Workspace-ID Header 传递。

  • $MODEL_ID:要追加数据源的知识库 ID。

直接添加来源时,按来源类型提供字段:

来源类型

必填字段

catalog_table

table_id

catalog_file

file_idvolume_id

local_file

上传本地文件返回的文件 ID、原始 file_name

按范围选择仅支持 Catalog 的 Database 和 Volume,不能用 source_selections 添加 Catalog 之外的数据源。

路径参数

参数

类型

说明

model_id

integer

要追加数据源的知识库 ID。

请求体

字段路径中的 [] 表示数组中的每一项。例如,sources[].source_type 表示 sources 数组中每一项的 source_type 字段。

字段

类型

是否必填

说明

sources

array

要添加的来源。

sources[].source_type

string

来源类型,例如 catalog_tablecatalog_filelocal_file

sources[].table_id

integer

条件必填

catalog_table 来源的表 ID。

sources[].file_id

string

条件必填

文件来源的文件 ID。

sources[].file_name

string

条件必填

local_file 来源的原始文件名。

sources[].volume_id

integer

条件必填

catalog_file 来源的权威卷 ID。

source_selections

object(对象数组)

按数据库或卷选择来源的规则。

source_selections[].kind

string

条件必填

database_tablesvolume_files

source_selections[].database_id

integer

条件必填

database_tables 的 Catalog Database ID。

source_selections[].volume_id

integer

条件必填

volume_files 的 Catalog Volume ID。

source_selections[].all_selected

boolean

true 选择当前范围内全部对象;false 时必须提供对应的显式选择 ID。

source_selections[].selected_table_ids

array

条件必填

all_selectedfalse 时,显式选中的 Catalog 表 ID。

source_selections[].selected_file_ids

array

条件必填

all_selectedfalse 时,显式选中的 Catalog 文件 ID。

source_selections[].excluded_table_ids

array

全选时要排除的 Catalog 表 ID。

source_selections[].excluded_file_ids

array

全选时要排除的 Catalog 文件 ID。

请求示例

curl -X POST "https://moi.matrixorigin.cn/newmoi/semantic-models/$MODEL_ID/sources" \
  -H "X-API-Key: $AI_STUDIO_API_KEY" \
  -H "X-Workspace-ID: $WORKSPACE_ID" \
  -H 'Content-Type: application/json' \
  -d '{
    "sources": [
      {
        "source_type": "catalog_file",
        "file_id": "$FILE_ID",
        "volume_id": $VOLUME_ID
      }
    ]
  }'

成功响应

成功时返回 200。保存每项来源的 row_id,并通过处理任务状态确认实际处理结果。

{
  "code": "OK",
  "msg": "OK",
  "data": {
    "data_domain": {
      "model_id": 401,
      "catalog_id": 10,
      "database_id": 20,
      "raw_volume_id": 30,
      "processed_volume_id": 31,
      "ensure_status": "ready"
    },
    "sources": [
      {
        "row_id": "src_01",
        "source_type": "file",
        "model_id": 401,
        "resource_id": "file_01",
        "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
      }
    ]
  }
}

响应字段如下。

字段路径中的 [] 表示数组中的每一项。例如,data.sources[].row_id 表示 data.sources 数组中每一项的 row_id 字段。

字段

类型

说明

code

string

成功时为 OK

msg

string

成功时为 OK

data.data_domain

object

知识库的数据域及其确保状态。

data.sources

object(对象数组)

已创建的来源记录。

data.sources[].row_id

string

来源记录 ID。

data.sources[].source_type

string

来源类型。

data.sources[].resource_id

string

来源资源 ID。

data.sources[].ingest_status

string

处理状态;pending 不表示已可检索。

data.sources[].effective_enabled

boolean

当前实际生效状态。

data.jobs

object(对象数组)

新建的处理任务。

data.jobs[].job_id

string

任务 ID。

data.jobs[].source_id

string

关联来源 ID。

data.jobs[].job_type

string

任务类型。

data.jobs[].job_status

string

当前任务状态。

data.jobs[].idempotency_key

string

任务幂等键。

data.jobs[].retry_count

integer

已记录的重试次数。

错误响应

{
  "code": "ErrParamInvalid",
  "msg": "invalid source request",
  "data": null
}

常见 HTTP 错误

HTTP 状态码

错误代码

常见原因

建议操作

400

ErrParamInvalid

来源类型、文件/表 ID 或卷 ID 无效。

按来源类型提供所需字段后重试。

401

ErrUnauthorized

API Key 无效或已失效。

检查 API Key。

403

ErrForbidden

调用者没有更新知识库或读取来源对象的权限。

检查工作区和对象授权。

404

ErrNotFound

知识库或来源对象不存在,或当前调用者不可见。

重新确认 ID。

409

ErrConflict

服务拒绝冲突的来源写入。

检查已存在来源后调整请求。

500

ErrServer

服务未能创建来源或处理任务。

保留脱敏后的响应信息后重试。

后续操作

使用 data.jobs[].job_id 查询数据处理任务,确认来源处理完成。

最后更新于