模型状态 API
获取模型详情
GET https://tiangongtuxue.com/api/v1/models/:modelId
Authorization: Bearer <access-token>
成功响应:
{
"data": {
"id": "model-id", "name": "bracket.step", "projectId": "project-id",
"status": "waiting", "lifecycleStatus": "queued", "message": null,
"task": { "id": "task-id", "attempt": 1, "status": "queued", "retryable": false, "errorCode": null, "errorMessage": null },
"timestamps": { "createdAt": "2026-10-04T10:00:00.000Z", "uploadTokenIssuedAt": "2026-10-04T10:00:01.000Z", "uploadCallbackAt": "2026-10-04T10:00:08.000Z", "queuedAt": "2026-10-04T10:00:09.000Z", "startedAt": null, "finishedAt": null, "expiredAt": null }
}
}
| 返回参数 | 类型 | 说明 |
|---|---|---|
data.id | string | 模型 ID |
data.name | string | 模型名称 |
data.projectId | string | 所属工程 ID |
data.lifecycleStatus | string | 细粒度生命周期状态 |
data.message | string/null | 当前状态补充信息 |
data.task.id | string/null | 当前任务 ID |
data.task.attempt | number | 当前任务尝试次数 |
data.task.status | string | 任务状态 |
data.task.retryable | boolean | 是否允许重试 |
data.task.errorCode | string/null | 机器可读错误码 |
data.task.errorMessage | string/null | 错误详情 |
data.timestamps.* | ISO 8601/null | 各阶段发生时间 |
状态含义
lifecycleStatus | phase | 含义 | 客户端动作 |
|---|---|---|---|
created | upload | 模型记录已创建,尚未完成上传授权 | 检查上传授权请求结果 |
uploading | upload | 上传授权已签发,等待文件上传和平台确认 | 继续上传,不要重复创建模型 |
uploaded | upload | 源文件已确认,尚未进入处理 | 等待下一次状态变化 |
queued | queue | 平台已接收并安排处理 | 低频轮询或等待业务回调 |
running | processing | 平台正在处理模型 | 展示处理中状态 |
succeeded | completed | 结果已生成,可获取资产 | 读取 url/imageUrl |
failed | failed | 处理失败 | 查看错误字段和 retryable |
expired | expired | 上传或处理窗口已过期 | 重新创建模型或联系支持 |
JavaScript
const r = await fetch(`${base}/v1/models/${modelId}`, { headers: { Authorization: `Bearer ${accessToken}` } });
const { data: model } = await r.json();
console.log(model.lifecycleStatus, model.task, model.timestamps);
Python
r = requests.get(f"{base}/v1/models/{model_id}", headers={"Authorization": f"Bearer {access_token}"}, timeout=15)
r.raise_for_status()
model = r.json()["data"]
Java
var request = java.net.http.HttpRequest.newBuilder()
.uri(java.net.URI.create(base + "/v1/models/" + modelId))
.header("Authorization", "Bearer " + accessToken).GET().build();
var response = client.send(request, java.net.http.HttpResponse.BodyHandlers.ofString());
curl
curl --fail-with-body "$TUO_API_BASE_URL/v1/models/$MODEL_ID" \
-H "Authorization: Bearer $TUO_ACCESS_TOKEN"
401/403 表示鉴权或工程归属失败,404 表示模型不存在或对当前工程不可见。