调用算子 API 服务¶
调用已发布且已启用的算子 API 服务。payload 的字段必须符合该服务的输入定义;先查看服务配置确认服务可调用并获取输入定义。
POST https://moi.matrixorigin.cn/newmoi/workflow/v2/workitems/catalog/$NODE_ID/api-service/invoke
调用前准备¶
先查看服务配置,确认服务已启用,并取得要调用服务的算子 ID、版本和服务名称。准备有目标工作区访问权限的个人访问令牌、目标工作区 ID、算子 ID、版本和服务名称。
下方示例使用:
$AI_STUDIO_API_KEY:实际个人访问令牌,通过X-API-KeyHeader 传递。$WORKSPACE_ID:目标工作区 ID,通过X-Workspace-IDHeader 传递。$NODE_ID:要调用服务对应的算子 ID。$VERSION:要调用服务对应的算子版本。$SERVICE_NAME:服务名称,填写查看服务配置响应中的service_name值,并在请求体的service_name字段中传递。
路径参数¶
参数 |
类型 |
是否必填 |
说明 |
|---|---|---|---|
|
string |
是 |
要调用的算子 ID。 |
请求体¶
字段 |
类型 |
是否必填 |
说明 |
|---|---|---|---|
|
string |
是 |
服务名称,使用服务配置响应中的 |
|
string |
是 |
固定为 |
|
string |
是 |
已发布的算子版本。 |
|
object |
是 |
服务的输入数据;字段和类型以 |
请求示例¶
curl -X POST "https://moi.matrixorigin.cn/newmoi/workflow/v2/workitems/catalog/$NODE_ID/api-service/invoke" \
-H "X-API-Key: $AI_STUDIO_API_KEY" \
-H "X-Workspace-ID: $WORKSPACE_ID" \
-H 'Content-Type: application/json' \
-d "{
\"service_name\": \"$SERVICE_NAME\",
\"type\": \"operator\",
\"version\": \"$VERSION\",
\"payload\": {
\"sql\": \"SELECT now()\"
}
}"
成功响应¶
data.result 返回本次调用的状态和算子输出。result 以 JSON 格式字符串返回;解析该字符串后再读取算子输出。响应中出现 error 时,按错误信息处理。
{
"code": "OK",
"msg": "OK",
"data": {
"result": {
"case_id": "case_01JEX4A1M2",
"status": "COMPLETED",
"result": "{\"count\":9}"
}
}
}
响应字段如下。
字段 |
类型 |
说明 |
|---|---|---|
|
string |
成功时为 |
|
string |
成功时为 |
|
string |
本次调用 ID;响应提供时可用于关联本次结果。 |
|
string |
服务返回的状态;响应提供时出现。 |
|
string |
服务返回的 JSON 格式字符串;解析后的结构由算子决定。 |
|
string |
服务返回的错误信息;有错误时出现。 |
错误响应¶
{
"code": "api_service_unavailable",
"msg": "服务暂不可用",
"data": null
}
常见 HTTP 错误¶
HTTP 状态码 |
错误代码 |
常见原因 |
建议操作 |
|---|---|---|---|
|
|
算子 ID、 |
检查请求字段,并按服务输入定义填写 |
|
|
个人访问令牌缺失或无效。 |
检查个人访问令牌和工作区 ID。 |
|
|
当前访问凭据没有调用权限。 |
使用有权限的访问凭据,或联系管理员授权。 |
|
|
算子、版本或服务不存在。 |
检查算子 ID、版本和服务名称是否来自同一份服务配置。 |
|
|
服务端无法处理调用。 |
记录请求时间和错误信息后重试。 |
|
|
服务或其依赖暂不可用。 |
稍后重试。 |
后续操作¶
调用完成后,需要核对配置时查看算子 API 服务配置。