创建自定义算子¶
创建一个可在工作流中使用的自定义算子。代码类型算子需要提供源代码或源文件 ID;内置绑定类型使用基础算子和绑定配置。
POST https://moi.matrixorigin.cn/newmoi/workflow/v2/custom-operators
调用前准备¶
准备有目标工作区访问权限的个人访问令牌和目标工作区 ID。先确定创建代码类型还是内置绑定类型,并准备对应的实现内容。
下方示例使用:
$AI_STUDIO_API_KEY:实际个人访问令牌,通过X-API-KeyHeader 传递。$WORKSPACE_ID:目标工作区 ID,通过X-Workspace-IDHeader 传递。
请求体¶
参数 |
类型 |
是否必填 |
说明 |
|---|---|---|---|
|
string |
是 |
算子名称。 |
|
string |
是 |
算子标识。 |
|
string |
是 |
算子说明。 |
|
object |
是 |
输入定义。每个 |
|
object |
是 |
输出定义。每个 |
|
string |
否 |
算子类型;省略时为代码类型。 |
|
string |
否 |
代码类型的实现语言;当前仅支持 |
|
string |
否 |
代码类型的处理函数。Python 处理函数使用模块和函数名,例如 |
|
string |
否 |
代码类型的版本。 |
|
string |
否 |
代码类型的隔离配置。 |
|
string |
条件必填 |
代码类型的源代码;与 |
|
string |
条件必填 |
代码类型的源文件 ID;与 |
|
string |
条件必填 |
内置绑定类型所需的基础算子 ID。 |
|
string |
条件必填 |
内置绑定类型所需的基础算子版本。 |
|
object |
条件必填 |
内置绑定类型所需的绑定配置。 |
|
string |
是 |
自定义的工作流算子 ID,格式为 |
|
boolean |
否 |
初始是否启用。 |
|
integer |
否 |
关联的 Catalog ID。 |
|
integer |
否 |
关联的数据库 ID。 |
按算子类型提供字段¶
|
必填字段 |
限制 |
|---|---|---|
|
|
两者只能提供一个。 |
|
|
不提供代码或语言字段。 |
请求示例¶
curl -X POST "https://moi.matrixorigin.cn/newmoi/workflow/v2/custom-operators" \
-H "X-API-Key: $AI_STUDIO_API_KEY" \
-H "X-Workspace-ID: $WORKSPACE_ID" \
-H "Content-Type: application/json" \
-d '{
"name": "文本计数",
"identifier": "text_counter",
"node_id": "moi:custom.operator:$WORKSPACE_ID:text_counter",
"description": "统计输入文本的字符数。",
"language": "python",
"handler": "main.handle",
"input_schema": {
"type": "object",
"properties": {
"text": {
"type": "string",
"description": "要统计的文本。"
}
}
},
"output_schema": {
"type": "object",
"properties": {
"count": {
"type": "integer",
"description": "文本的字符数。"
}
}
},
"code": "def handle(workspace_id, sdk, input):\n return {\"count\": len(input[\"text\"])}"
}'
成功响应¶
响应返回新建算子的 ID 和配置。保存算子 ID,后续查看、更新、试运行、启用、停用和删除均需使用该 ID。
{
"code": "OK",
"msg": "OK",
"data": {
"id": 123,
"node_id": "moi:custom.operator:workspace:text_counter",
"name": "文本计数",
"identifier": "text_counter",
"language": 1,
"kind": 1,
"input_schema": "{\"type\":\"object\"}",
"output_schema": "{\"type\":\"object\"}",
"enabled": true
}
}
响应字段如下。
字段 |
类型 |
说明 |
|---|---|---|
|
string |
成功时为 |
|
string |
成功时为 |
|
integer |
新建的自定义算子 ID。 |
|
string |
工作流中的算子 ID。 |
|
string |
算子名称。 |
|
string |
算子标识。 |
|
string |
算子说明;有值时返回。 |
|
integer |
实现语言的数值编码。请求中的 |
|
integer |
算子类型的数值编码。请求中的 |
|
string |
处理函数;有值时返回。 |
|
string |
算子版本;有值时返回。 |
|
string |
隔离配置;有值时返回。 |
|
string |
源文件 ID;使用源文件创建时返回。 |
|
string |
输入定义的序列化内容。 |
|
string |
输出定义的序列化内容。 |
|
string |
创建者标识;有值时返回。 |
|
string |
最后更新者标识;有值时返回。 |
|
integer |
创建时间戳;有值时返回。 |
|
integer |
最后更新时间戳;有值时返回。 |
|
string |
内置绑定类型关联的基础算子;有值时返回。 |
|
string |
内置绑定类型关联的基础算子版本;有值时返回。 |
|
string |
绑定配置的序列化内容;有值时返回。 |
|
integer |
关联的 Catalog ID;有值时返回。 |
|
integer |
关联的数据库 ID;有值时返回。 |
|
boolean |
算子是否已启用。 |
错误响应¶
{
"code": "ErrParamInvalid",
"msg": "请求参数无效",
"data": null
}
常见 HTTP 错误¶
HTTP 状态码 |
错误代码 |
常见原因 |
建议操作 |
|---|---|---|---|
|
|
请求体缺少必填字段、schema 属性未提供 |
检查请求体,并为每个 schema 属性补充 |
|
|
个人访问令牌缺失或无效。 |
检查个人访问令牌和工作区 ID。 |
|
|
当前身份没有创建自定义算子的权限。 |
使用有权限的凭据,或联系管理员授权。 |
|
|
新算子与已有资源冲突。 |
修改标识或处理冲突资源后重试。 |
|
|
服务暂时无法创建算子。 |
记录错误信息后重试。 |