公共任务契约
创建响应可以包括:/v1/tasks/{id} 是公共异步媒体作业的规范固定状态端点。可能存在特定于媒体的状态路由以保持兼容性,但新的集成应优先使用 poll_url 或 /v1/tasks/{id}。
推荐流程
- 验证用户请求并发送带有显式
model的创建调用。 - 在将控制权返回给 UI 之前,持久化
id/task_id、poll_url、端点、模型、用户 ID 和您自己的作业 ID。 - 对于长时间运行的媒体任务,每
5-10s轮询一次。 - 仅在任务为
completed或failed时停止。 - 在
completed时,读取特定于媒体的结果字段并存储最终 URL 或元数据。 - 在
failed时,存储公共错误,并仅作为新的用户可见作业提供重试。
轮询示例
pending、processing、completed 和 failed。取消的任务表示为 failed,并带有 cancelled: true 和 cancellation_status: "cancelled",以便旧的状态处理继续有效。
客户端重试规则
网络超时是重复作业的最常见来源。使用以下规则:
不要仅因为浏览器刷新或状态轮询失败而发送第二个创建请求。
计费与结算
异步作业在创建请求被接受时可以保留估计金额。最终结算发生在终止状态之后。当可用时,任务状态响应可以暴露billing_transaction_id 和 X-Billing-Transaction-ID 头。
对于对账,请在您的日志中连接这些标识符:
- 来自创建请求的
request_id。 - 来自任务的
task_id/id。 - 当存在时的
billing_transaction_id。 - 您自己的用户 ID、项目 ID 或作业 ID。
取消
DELETE /v1/tasks/{id} 的支持范围有意保持较窄。当前在所选任务支持取消时,可用于排队中的 Seedance 视频任务,例如 seedance-1.5-pro、seedance-2.0 和 seedance-2.0-fast。
不支持的任务返回 400 unsupported_task_cancel。已经运行或处于终止状态的任务返回 409 task_not_cancellable。构建取消 UI 时应为“请求取消”,而不是保证停止按钮。
故障排除
支持包
联系支持时,请包括request_id、task_id、billing_transaction_id(如有)、端点、模型、时间戳和经过清理的请求形状。除非支持要求提供经过编辑的示例,否则请勿包含 API 密钥、私人媒体、签名 URL 或完整提示。