创建语义条目¶
创建语义配置条目,为数据表补充字段、指标、关联和业务规则等定义。
POST https://api.moi.matrixorigin.cn/v5/semantic-models/{model_id}/entries
调用前准备¶
先查询知识库列表取得知识库 ID。准备有目标工作区访问权限的个人访问令牌和目标工作区 ID。
请求体¶
curl -X POST "https://api.moi.matrixorigin.cn/v5/semantic-models/$MODEL_ID/entries" \
-H "X-API-Key: $AI_STUDIO_API_KEY" \
-H "X-Workspace-ID: $WORKSPACE_ID" \
-H 'Content-Type: application/json' \
-d '{
"kind": "metric",
"key": "total_rows",
"tables": ["orders"],
"spec": {
"expr": "COUNT(*)"
}
}'
字段 |
类型 |
必填 |
说明 |
|---|---|---|---|
|
integer |
是 |
要创建语义条目的知识库 ID。 |
类型后的 [] 表示数组。例如,string[] 是字符串数组。
字段 |
类型 |
必填 |
说明 |
|---|---|---|---|
|
string |
是 |
条目类型;它决定 |
|
string |
是 |
知识库内的稳定引用键。 |
|
array of string |
否 |
关联的表名称,不是 Catalog 表 ID。 |
|
object |
是 |
|
|
spec 配置
在同一条目中,先选择 kind,再按下表提交对应的 spec 字段。
字段 |
类型 |
必填 |
说明 |
|---|---|---|---|
|
|
否 |
描述用于分组、筛选的字段。 |
|
|
否 |
描述可参与计算的事实字段。 |
|
|
否 |
定义指标计算表达式。 |
|
|
否 |
定义两张已配置表的关联。 |
|
|
否 |
指定推荐列和不推荐列。 |
|
|
否 |
定义可复用的过滤表达式。 |
|
|
否 |
定义列的默认筛选约束;仅支持通过 API 配置。 |
|
|
否 |
保存高频问题及其 SQL。 |
|
|
否 |
定义业务术语及其含义。 |
|
|
否 |
在指定阶段应用业务规则。 |
|
|
否 |
保存 SQL 结果集定义。 |
|
下面表格展开请求示例中 spec 对象;仅当 kind 为 metric 时使用。
字段 |
类型 |
必填 |
说明 |
|---|---|---|---|
|
string |
是 |
指标的计算表达式。 |
下面表格展开 relationship 类型的 spec 对象;每一行是该对象的一个字段。
字段 |
类型 |
必填 |
说明 |
|---|---|---|---|
|
string |
否 |
左侧表名称。 |
|
string |
否 |
右侧表名称。 |
|
array of object |
否 |
连接列对;数组不能为空。 |
下面表格展开请求示例中 spec.join_columns 数组的每一项;每一行是该数组项的一个字段。
字段 |
类型 |
必填 |
说明 |
|---|---|---|---|
|
string |
是 |
左侧列名称。 |
|
string |
是 |
右侧列名称。 |
类型专属约束
字段 |
类型 |
必填 |
说明 |
|---|---|---|---|
|
|
否 |
数组不能为空;每项必须包含非空的 |
|
|
否 |
两个值均不能为空,且不区分大小写时不能相同。 |
|
|
否 |
至少包含一个非空字符串;可选 |
|
|
否 |
数组不能为空;每项只能为 |
|
|
否 |
|
sql_resultset 可选配置
字段 |
类型 |
必填 |
说明 |
|---|---|---|---|
|
string |
否 |
只能为 |
|
integer |
否 |
不能小于 |
|
integer |
否 |
不能小于 |
|
integer |
否 |
范围为 |
|
object |
否 |
SQL 展开配置。设置时必须同时提交 |
|
object |
否 |
检索配置。 |
下面表格展开请求示例中 expand_sql 对象;每一行是该对象的一个字段。
字段 |
类型 |
必填 |
说明 |
|---|---|---|---|
|
string |
条件必填 |
不超过 16 KiB;其中的 |
|
array of string |
条件必填 |
数量为 |
下面表格展开请求示例中 retrieval 对象;每一行是该对象的一个字段。
字段 |
类型 |
必填 |
说明 |
|---|---|---|---|
|
boolean |
否 |
设置为 |
|
string |
条件必填 |
|
成功响应¶
成功时返回 201;保存 data.id 用于后续更新和删除。
{
"code": "OK",
"msg": "OK",
"data": {
"id": 501,
"kind": "metric",
"key": "total_rows",
"tables": ["orders"],
"spec": {
"expr": "COUNT(*)"
},
"created_at": 1735632000,
"updated_at": 1735632000
}
}
字段 |
类型 |
说明 |
|---|---|---|
|
string |
成功时为 |
|
string |
成功时为 |
|
object |
本次操作的返回数据。 |
下面表格展开响应示例中 data 对象;每一行是该对象的一个字段。
字段 |
类型 |
说明 |
|---|---|---|
|
integer |
新条目 ID。 |
|
string |
已创建的条目类型。 |
|
string |
知识库内的稳定引用键。 |
|
array of string |
关联表名称;未设置时可能省略。 |
|
object |
|
|
integer |
Unix 时间戳。 |
|
integer |
Unix 时间戳。 |
下面表格展开响应示例中 data.spec 对象;实际字段随 kind 变化。
字段 |
类型 |
说明 |
|---|---|---|
|
string |
示例中指标条目的计算表达式。 |
错误响应¶
{
"code": "ErrParamInvalid",
"msg": "invalid semantic entry",
"data": null
}
字段 |
类型 |
说明 |
|---|---|---|
|
string |
错误代码。 |
|
string |
面向调用者的错误信息。 |
|
null |
发生错误时为 |