spicyapi文件
主要內容

任務提交與重試

為什麼生成任務受理後不可取消,以及失敗或過期任務如何安全重試。

createTask 一旦受理,生成任務即正式提交,之後不可取消。該規則同時適用於 queuedrunning:生成一旦開始就無法可靠地中止,因此 SpicyAPI 不會提供一個只在介面上顯示「已取消」、背景卻可能繼續生成與計費的操作。

已受理任務不可撤銷

提交前請確認模型、輸入與預估費用。關閉瀏覽器、離開頁面或刪除 API Key 都不會停止已經受理的任務。

重試失敗或終止的任務

POST /api/v1/jobs/retry
curl -X POST https://api.spicyapi.ai/api/v1/jobs/retry \
  -H "Authorization: Bearer $SPICY_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: retry-order-8814-1" \
  -d '{"taskId":"job_01k3m8x9q2z4v7n5p6r8s0t1w3"}'

正常情況下只重試 failedexpired 任務。歷史 canceled 記錄仍可查詢,也可為相容舊資料而重試,但新任務不能再透過使用者操作進入該狀態。成功時建立一個新的 queued 任務:

{
  "code": 200,
  "msg": "success",
  "data": {
    "taskId": "job_01k3mnewtask",
    "sourceTaskId": "job_01k3m8x9q2z4v7n5p6r8s0t1w3",
    "state": "queued",
    "estimatedCost": "0.08"
  },
  "request_id": "req_01k3mretry"
}
  • 原任務保持終態,不被覆蓋。
  • 新任務的 sourceTaskId 指回原任務,用於追蹤重試鏈。
  • 重試會用目前的 Schema、價格、權限與餘額重新驗證。它是一次全新的任務,會重新排隊,並與原任務分開處理。
  • Idempotency-Key 按「原任務 + retry 操作」隔離;同鍵同語義回傳同一個新任務,不同語義回傳 409

網路錯誤不等於任務失敗

如果 createTask 的連線在回應前斷開,應使用原 Idempotency-Key 重放 createTask,而不是呼叫 retryretry 只針對已經有明確終態的任務。

狀態與重試表

目前狀態可執行操作
queued / running等待終態;任務不可取消
succeeded檢視或下載結果;需要再次生成時新建任務
failed / expired重試並建立一條獨立計費的新任務
歷史 canceled檢視記錄或重試;不再提供新的使用者取消入口

本頁目錄