创建自定义算子和工作流模板

使用 AI Studio SDK 创建自定义算子或工作流模板。创建结果提供后续读取、更新、启停、测试或删除所需的资源引用。

任务流程

创建算子时,需要完整的算子定义;创建成功后先读取详情或提交一次测试,再决定是否更新、启用或删除。创建模板时,需要名称和 DSL 内容;创建结果可继续用于读取、更新或删除模板。

准备

需要的内容

如何取得

在本页中的作用

已认证的客户端和工作区 ID

在首次接入流程中创建或选择。

确定资源访问和创建范围。

算子定义

由算子开发者提供名称、标识、说明、输入输出结构、运行语言和代码。

创建可测试的自定义算子。

测试输入

由算子输入定义和测试场景提供。

提交算子测试运行。

模板名称和 DSL 内容

由工作流设计提供。

创建工作流模板。

创建和删除会改变工作区资源。只对可安全管理的算子和模板执行示例中的写操作。

创建并测试自定义算子

下面的示例创建一个算子,读取其详情,再提交测试运行。测试运行返回状态和输出信息;请求返回不表示业务断言已经满足。

import os

import moi_product_sdk as sdk

client = sdk.new_with_personal_access_token(
    os.environ["PRODUCT_API_BASE_URL"],
    os.environ["PRODUCT_API_KEY"],
)
workspace = client.workspace("<workspace-id>")
operator, created = workspace.create_custom_operator(
    "<operator-name>",
    "<operator-identifier>",
    "<operator-description>",
    {"type": "object"},
    {"type": "object"},
    sdk.with_custom_operator_language("python"),
    sdk.with_custom_operator_code("<operator-code>"),
)
operator_info = operator.info()
test_run = operator.test({"<input-name>": "<input-value>"})

print(created)
print(operator_info)
print(test_run)
package main

import (
	"context"
	"fmt"
	"os"

	sdk "github.com/matrixorigin/matrixflow/sdk/go-sdk"
)

func main() {
	ctx := context.Background()
	client, err := sdk.NewWithPersonalAccessToken(
		os.Getenv("PRODUCT_API_BASE_URL"),
		os.Getenv("PRODUCT_API_KEY"),
	)
	if err != nil {
		panic(err)
	}
	workspace, err := client.Workspace("<workspace-id>")
	if err != nil {
		panic(err)
	}
	operator, created, err := workspace.CreateCustomOperator(
		ctx,
		"<operator-name>",
		"<operator-identifier>",
		"<operator-description>",
		map[string]any{"type": "object"},
		map[string]any{"type": "object"},
		sdk.WithCustomOperatorLanguage("python"),
		sdk.WithCustomOperatorCode("<operator-code>"),
	)
	if err != nil {
		panic(err)
	}
	operatorInfo, err := operator.Info(ctx)
	if err != nil {
		panic(err)
	}
	testRun, err := operator.Test(ctx, map[string]any{"<input-name>": "<input-value>"})
	if err != nil {
		panic(err)
	}

	fmt.Println(created)
	fmt.Println(operatorInfo)
	fmt.Println(testRun)
}

维护自定义算子

使用创建结果或已确认的算子 ID 读取算子后,可以更新、启用、停用或删除。删除前应确认没有仍在使用的工作流引用;删除后不要继续使用原资源引用。

创建工作流模板

继续使用本页建立的工作区作用域。创建模板后,使用创建结果更新模板;模板 ID 来自创建结果或已确认的资源结果,不要从模板名称推断。

template, created_template = workspace.create_workflow_template(
    "<template-name>",
    "<workflow-dsl-yaml>",
    sdk.with_workflow_template_key("<template-key>"),
)
updated = template.update("<updated-template-name>", "<updated-workflow-dsl-yaml>")

print(created_template)
print(updated)
template, createdTemplate, err := workspace.CreateWorkflowTemplate(
	ctx,
	"<template-name>",
	"<workflow-dsl-yaml>",
	sdk.WithWorkflowTemplateKey("<template-key>"),
)
if err != nil {
	panic(err)
}
updated, err := template.Update(ctx, "<updated-template-name>", "<updated-workflow-dsl-yaml>")
if err != nil {
	panic(err)
}

fmt.Println(createdTemplate)
fmt.Println(updated)

下一步

最后更新于