使用 SDK

AI Studio SDK 用于在 Go 或 Python 应用中操作工作区范围内的 AI Studio 资源。调用资源前,先使用个人访问令牌列出可见工作区,取得工作区 ID 后再创建工作区范围的客户端。

全部场景和任务指南见 AI Studio SDK。

准备工作:获取 SDK

使用前,请先前往 AI Studio SDK 下载 获取对应语言的离线安装包(Python wheel 或 Go 源码模块),并在本地完成安装与依赖引入。

1. 配置服务地址和个人访问令牌

在访问凭据中创建个人访问令牌,并与 AI Studio API 服务地址一起配置为环境变量:

export PRODUCT_API_BASE_URL='https://api.moi.matrixorigin.cn/v5'
export PRODUCT_API_KEY='<你的个人访问令牌>'

公网服务使用上述地址。私有部署请填写部署方提供的完整 AI Studio API 服务地址,包括实际 API 路径前缀。SDK 不会自动补充 /v5 或 /newmoi。

个人访问令牌使用原始值,SDK 将其放入 X-API-Key 请求头。不要添加 Bearer 前缀或使用 Genesis API 地址。以下示例从环境变量读取配置,并显式传给客户端。

2. 获取工作区 ID

AI Studio SDK 的功能需要在工作区中使用。调用工作流、知识库、数据或智能体等功能前,先选择目标工作区并获取工作区 ID。

调用工作区列表接口,输出当前身份可访问的工作区:

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"],
)
result = client.workspaces().list()
for workspace in result.workspaces:
    print(workspace.id, workspace.name)
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)
	}
	result, err := client.Workspaces().List(ctx)
	if err != nil {
		panic(err)
	}
	for _, workspace := range result.GetWorkspaces() {
		fmt.Printf("%s\t%s\n", workspace.GetId(), workspace.GetName())
	}
}

从输出中选择目标工作区的 ID;也可以在控制台中复制工作区 ID。将该 ID 保存为环境变量:

export WORKSPACE_ID='<工作区 ID>'

3. 调用示例

本示例调用“查看工作流列表”功能。使用前两步准备的调用信息,创建工作区客户端并列出当前身份可以读取的工作流:

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(os.environ["WORKSPACE_ID"])
result = workspace.workflows().list()

print(result.total)
for workflow in result.workflows:
    print(workflow.id, workflow.name, workflow.status)
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(os.Getenv("WORKSPACE_ID"))
	if err != nil {
		panic(err)
	}
	result, err := workspace.Workflows().List(ctx)
	if err != nil {
		panic(err)
	}

	fmt.Println(result.GetTotal())
	for _, workflow := range result.GetWorkflows() {
		fmt.Printf("%s\t%s\t%s\n", workflow.GetId(), workflow.GetName(), workflow.GetStatus())
	}
}

调用成功后,程序先输出工作流总数,再输出各工作流的 ID、名称和状态。

现象

检查项

收到 401

个人访问令牌是否完整,是否误加了 Bearer 前缀。

收到 404 或网页内容

公网服务地址是否为 https://api.moi.matrixorigin.cn/v5;私有部署地址是否包含部署方提供的实际 API 路径前缀。

工作区列表为空或收到 403

当前账号是否具有目标工作区的成员或角色权限。

下一步

最后更新于