跳至主要內容
指南
指南

快速入門

建立非同步任務並處理輪詢、完成、失敗及回呼。

RunAPI 使用任務進行非同步圖像、視頻、音頻及音樂生成。建立請求會快速返回;您的應用程式隨後對任務進行輪詢,或接收該端點 API 參考中列出的回呼事件。

建立任務

在目錄中選擇模型和端點,然後發送端點所需的輸入。此示例啟動一個 Flux 2 文字轉圖像任務:

SHELL
curl -X POST "https://runapi.ai/api/v1/flux_2/text_to_image" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Idempotency-Key: 8c8ba3c9-0ce0-4bbd-a9a7-bf59ab639286" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "flux-2-pro-text-to-image",
    "prompt": "A product photograph on a clean studio background"
  }'

已接受的非同步請求返回 202 Accepted 及任務識別碼:

JSON
{
  "id": "task_id",
  "status": "processing"
}

id 與您的應用程式記錄一起儲存。它是用於輪詢、支援及回呼對帳的穩定識別符。

防止重複建立任務

任務建立端點接受一個可選的 Idempotency-Key 標頭,其值為最多 512 個字元的不透明字串。為每個邏輯任務生成一個值,並在確認請求是否已被接受之前隨請求一同保留。

若超時或連接失敗導致結果未知,請使用相同的金鑰重試完全相同的 Task 建立請求。RunAPI 將返回原始 Task,而非建立並收費一個新的。以不同的 Task 建立請求重複使用金鑰會返回 409 Conflict。為有意建立的新 Task 生成新金鑰,且不要將 X-Client-Request-Id 用作此金鑰。

恢復中斷的同步請求

緩慢的同步端點通常保持連線開放,並返回與之前相同的終止回應。現有整合無需更改輪詢方式。

如需刻意縮短連接預算,請發送 Prefer: wait=N。 若 Task 在明確預算到期後仍在執行,RunAPI 將回傳 202 Accepted,包含相同的 Task id、用於恢復的不透明 Location URL, 以及建議查詢延遲的 Retry-After。請完整遵循 Location,而非自行構建結果 URL。已完成的 Task 結果保留終止 HTTP 狀態、允許的標頭、內容類型及主體;請根據 response.content_type 解碼 response.body,後者並非總是 JSON。

輪詢任務

將任務識別碼附加至相同的端點路徑:

SHELL
curl "https://runapi.ai/api/v1/flux_2/text_to_image/task_id" \
  -H "Authorization: Bearer YOUR_API_TOKEN"

statusprocessing 時繼續輪詢。請在 請求之間使用有限退避,而非持續輪詢。當任務狀態為 completedfailed 時,任務進入終態。

處理完成

completed 回應包含任務 id、終止 status 及端點特定的結果欄位。請持久化所需的結果並停止輪詢。請參閱端點的 API 參考以獲取確切的結果結構,而非假設每個媒體端點均返回相同的欄位。

處理失敗

failed 回應包含任務 id、終止 status,以及 RunAPI 提供的 error(如有)。停止輪詢,記錄識別碼和錯誤,並僅在應用程式將失敗歸類為暫時性後才重試。重試將建立新的任務識別碼。

接收回呼

如需 RunAPI 傳送該端點所記錄的回呼事件,請在建立請求時新增公開的 HTTPS callback_url

JSON
{
  "model": "flux-2-pro-text-to-image",
  "prompt": "A product photograph on a clean studio background",
  "callback_url": "https://your-domain.com/webhooks/runapi"
}

每個回呼主體對應端點 API 參考中的一個生命週期事件,並省略僅限輪詢的計費詳情。終止回呼包含與終止輪詢回應相同的結果欄位;部分端點亦會發送已記錄的 processing 回呼。請快速回傳成功的 HTTP 回應,並在交付延遲或您的回呼處理器不可用時,保持輪詢可用以進行核對。

閱讀回呼,了解如何建立回呼密鑰、驗證簽名及安全處理重試。