调用算子 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-Key Header 传递。

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

  • $NODE_ID:要调用服务对应的算子 ID。

  • $VERSION:要调用服务对应的算子版本。

  • $SERVICE_NAME:服务名称,填写查看服务配置响应中的 service_name 值,并在请求体的 service_name 字段中传递。

路径参数

参数

类型

是否必填

说明

node_id

string

要调用的算子 ID。

请求体

字段

类型

是否必填

说明

service_name

string

服务名称,使用服务配置响应中的 data.service.service_name

type

string

固定为 operator

version

string

已发布的算子版本。

payload

object

服务的输入数据;字段和类型以 data.service.input_schema 为准。

请求示例

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}"
    }
  }
}

响应字段如下。

字段

类型

说明

code

string

成功时为 OK

msg

string

成功时为 OK

data.result.case_id

string

本次调用 ID;响应提供时可用于关联本次结果。

data.result.status

string

服务返回的状态;响应提供时出现。

data.result.result

string

服务返回的 JSON 格式字符串;解析后的结构由算子决定。

data.result.error

string

服务返回的错误信息;有错误时出现。

错误响应

{
  "code": "api_service_unavailable",
  "msg": "服务暂不可用",
  "data": null
}

常见 HTTP 错误

HTTP 状态码

错误代码

常见原因

建议操作

400

ErrParamInvalid

算子 ID、versionservice_namepayload 无效;type 不是 operator 也会失败。

检查请求字段,并按服务输入定义填写 payload

401

ErrUnauthorized

个人访问令牌缺失或无效。

检查个人访问令牌和工作区 ID。

403

ErrForbidden

当前访问凭据没有调用权限。

使用有权限的访问凭据,或联系管理员授权。

404

ErrNotFound

算子、版本或服务不存在。

检查算子 ID、版本和服务名称是否来自同一份服务配置。

500

ErrServer

服务端无法处理调用。

记录请求时间和错误信息后重试。

503

api_service_unavailable

服务或其依赖暂不可用。

稍后重试。

后续操作

调用完成后,需要核对配置时查看算子 API 服务配置

最后更新于