文档OriHub
查询任务
轮询任务状态、成片地址和这次到底扣了多少。
提交完任务拿 task_id,靠这个接口查进度和结果。图片、视频、音频任务都用它。
请求
curl "https://api.lk888.ai/v1/skills/task-status?task_id=12345" \
-H "Authorization: Bearer $OPENAI_API_KEY"
就一个参数:task_id。
响应
{
"task_id": 12345,
"model": "gk-video-3",
"state": "success",
"status": "生成完成",
"status_group": "completed",
"progress": "100",
"is_final": true,
"result_url": "https://cdn.example.com/video/abc.mp4",
"result_urls": ["https://cdn.example.com/video/abc.mp4"],
"result_type": "video",
"cost": 1.5,
"refunded": false,
"channel_group": "标准渠道",
"error": null,
"error_code": null,
"created_at": "2026-03-17T10:00:00Z",
"completed_at": "2026-03-17T10:02:13Z",
"duration_seconds": 133
}
| 字段 | 含义 |
|---|---|
state |
任务状态,程序判断成败看它 |
is_final |
是否终态。true 就必须停止轮询 |
status / status_group |
按请求语言翻译的文案,给人看的 |
progress |
数字字符串,没有百分号("0"、"99"、"100") |
result_url |
成品下载地址,成功才有 |
result_urls |
数组;有结果时 result_urls[0] === result_url,多文件任务给全 |
result_type |
成品类型:video / image / audio |
cost |
实际扣的算力点(随阶段变,见下) |
refunded / refunded_amount |
失败退款时为真,金额在这里 |
channel_group |
实际落地的渠道分组名 |
error |
没有错时是 null;有错时是失败原因字符串 |
error_code |
失败分类,能不能重试看它 |
input_files |
传进去的素材 URL 数组,没有就是 [] |
created_at / completed_at / duration_seconds |
创建时间、完成时间、总耗时(秒) |
state 和 is_final 才是终态依据 —— status / status_group 是翻译过的文案,程序别读。
轮询节奏
- 间隔 5 秒一次,别更频繁
is_final = true必须停- 轮询超过 7200 秒(2 小时)还没完成,当超时处理,停下来告知用户
cost 随阶段变
| 阶段 | cost 是 |
|---|---|
| 任务在跑 | 提交时预扣的量 |
| 成功 | 实际结算的量(多退少补) |
| 失败并退款 | 0,退款额看 refunded_amount |
扣了多少,以 is_final = true 之后的值为准。
error 的两种形态
别混:
- HTTP 200 时,
error是任务级字段 ——null或失败原因字符串 - 非 200(参数错、认证失败、找不到)时,
error才是{"message": "...", "type": "..."}对象
所以先看 HTTP 状态码判断请求成没成,别看有没有 error 键。
老端点 GET /v1/media/status 无错时 error 是空字符串 "",跟这里的 null 不一样 —— 两个端点别混用。
同步调用没有 task id 在 body
四个聊天协议(/v1/chat/completions、/v1/responses、/v1/messages、Gemini generateContent)和图片同步生成(/v1/images/generations、/v1/images/edits)的响应体里没有任务号,它在响应头 X-Task-Id 里 —— 拿它调这个接口,就能查那次调用实际花了多少。
聊天任务交付的是文本(在 ai_reply 里),没有 result_url,成功就是 state = success、is_final = true,不会卡在 99% 等文件传输。
按 token 计费的模型
成功后除了 input_tokens / output_tokens 总数,还有 input_tokens_details / output_tokens_details 明细(有就带 text / image 拆分,没有就整个字段不出现 —— 字段缺失是没数据,不是 0,解析时防御一下)。
明细只作参考,计费按总数和 cost 走。