公共任務合約
創建響應可以包括:/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 或完整提示。