Ori联系我们

文档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 走。