跳转到内容
返回主页

SDK 操作手册

  • SDK 是纯代码 SDK,不做 UI、CLI、配置文件发现或凭据存储。
  • 初始化客户端时必须显式传入非空 API Key。
  • timeout 可以在客户端级别设置,也可以在单次请求里覆盖。
  • getSeaCloudDocs() 是离线文档入口,不需要客户端、不需要 API Key,也不发起网络请求。
  • 生成任务默认读取模型契约,用于校验参数、补默认值并规划 queue 请求;契约服务暂不可用时,默认 auto 模式回退到原始 queue 请求。
能力SDK 使用的服务
LLM 对话https://cloud.vtrix.ai/llm
生成 queue 生命周期https://cloud.seaart.ai
模型规格https://cloud-model-spec.vtrix.ai
SkillHubhttps://skill-hub.vtrix.ai/api/v1
flowchart TD
User["调用 run / runSync"] --> ValidateInput["校验 modelId 和 params"]
ValidateInput --> ReadSpec["读取模型契约"]
ReadSpec --> PlanRequest["规划协议、bodyMode、queue endpoint 和 headers"]
PlanRequest --> ValidateParams["校验参数并补契约默认值"]
ValidateParams --> DryRun{"dryRun?"}
DryRun -- 是 --> Preview["返回请求预览"]
DryRun -- 否 --> Submit["POST 提交 queue 请求"]
Submit --> Task["返回任务句柄"]
Task --> Sync{"是否同步等待?"}
Sync -- 否 --> Manual["调用方用 tasks.get / getResponse 查询"]
Sync -- 是 --> Poll["轮询 statusUrl"]
Poll --> Response["GET responseUrl"]
Response --> Result["返回标准化结果"]

适合你要把任务 ID 存进数据库,或者把轮询交给后台 worker 的场景。

const task = await client.run("wan25_t2i_preview", params, {
timeout: 60_000,
contract: "auto",
});
console.log(task.id, task.statusUrl, task.responseUrl);

适合请求方希望在一次 SDK 调用里拿到最终结果的场景。成功时,结果会把真实 response 放在 output.raw,并递归收集 url 字段到 output.urls。任务失败时返回 status: "failed"error,不会伪造 output

const result = await client.runSync("wan25_t2i_preview", params, {
timeout: 600_000,
});
if (result.status === "failed") {
console.error(result.error?.message);
} else {
console.log(result.output?.urls);
}

dryRun 会走同一条模型契约规划路径,返回 endpoint、method、脱敏 headers、请求体和校验结果,但不会提交生成任务、不会轮询、不会读取 response。

const preview = await client.run("wan25_t2i_preview", params, {
dryRun: true,
});
console.log(preview.endpoint);
console.log(preview.request);

tasks.get 读取任务状态;tasks.getResponse 读取最终 response。创建任务返回的 statusUrl / responseUrl 优先使用完整 URL;没有 URL 时再用 endpoint 拼接。

const status = await client.tasks.get(task.id, {
statusUrl: task.statusUrl,
endpoint: "wan25_t2i_preview",
});
const finalResult = await client.tasks.getResponse(task.id, {
responseUrl: status.responseUrl ?? task.responseUrl,
endpoint: "wan25_t2i_preview",
});
  • models.list:按分页、类型和关键词查询可用模型。
  • models.getSpec / models.get_spec:读取模型参数、协议、body mode、endpoint 和 Agent prompt。生成方法默认会自动读取同一份契约;当你要提前解释参数或做 UI 表单时,再主动调用。
  • skills.find:按关键词搜索 SkillHub 技能。
  • skills.list:分页列出 SkillHub 技能。

常见 SDK 错误包括:

错误场景
AuthErrorAPI Key 缺失、无效或无权限。
BalanceError余额不足。
ValidationErrorSDK 本地参数校验失败。
ModelNotFoundError模型不存在或模型规格不可读取。
NetworkErrorHTTP 非 2xx 或网络异常。
TimeoutError单次 HTTP 请求超时。
TaskTimeoutError同步等待任务结果超时。

TypeScript 和 Python 都可以用 isSeaCloudError(error) 判断 SDK 错误,并读取 typemessagehint 等稳定字段。

主题TypeScriptPython
异步模型Promise / async iteratorcoroutine / async iterator
命名camelCasesnake_case 优先,保留 camelCase 兼容别名
可选参数option objectdict 或关键字参数
错误throw SDK errorraise SDK error
dry run 返回重载返回 DryRunResultdict 返回 dryRun: True