WaveSpeed API 認證與錯誤處理:像專家一樣修復 401、429、5xx

WaveSpeed API 認證與錯誤處理:像專家一樣修復 401、429、5xx

嗨,我是 Dora——我以破壞 API 為樂,這樣你就不用了。

上週我一直收到 401 錯誤。不是神祕的那種——是蠢的那種,你知道有問題但看不出來。結果是我一直在標頭中使用 X-API-KeyWaveSpeed 要的是 Authorization: Bearer。差別不大。兩小時白費。

API 身份驗證就是這樣——正確時無聲運作,出錯時大聲失敗。而 WaveSpeed 像大多數現代 API 一樣,沒有給你太多迴旋餘地。這是我在過去幾個月中使用 WaveSpeed 的 API 進行圖像和視頻生成所學到的——以及當事情出錯時真正有幫助的東西。


WaveSpeed API 身份驗證實際如何運作

WaveSpeed 使用 Bearer 令牌身份驗證。每個請求都需要:

  • Authorization: Bearer <YOUR_API_KEY>
  • Content-Type: application/json

格式很簡單:

Authorization: Bearer your_api_key_here
Content-Type: application/json

我見過人們嘗試 X-API-Key、Api-Key 或將其用引號括起來。WaveSpeed 的官方文檔和示例始終顯示 Bearer 令牌格式。就是這樣。沒有變化。

獲取您的 API 金鑰

您的 API 金鑰位於 WaveSpeed 儀表板的 wavespeed.ai/accesskey。您需要先充值帳戶才能生成密鑰——免費層用戶沒有密鑰。
複製金鑰時,注意多餘的空格。我做過兩次——末尾多拿了一個空格,花了 20 分鐘調試才注意到。

WaveSpeed API 的身份驗證流程

沒有令牌刷新、沒有 OAuth、沒有中間步驟。您發送 Bearer 令牌,WaveSpeed 驗證它,您的請求要麼進行,要麼被 401 拒絕。
如果身份驗證失敗,您會立即收到 401 回應。錯誤通常說「無效的身份驗證」並告訴您驗證您的金鑰。

處理 401 未授權錯誤

WaveSpeed 的 401 表示它查看了您的 Authorization 標頭並說「我不認識這個」。

常見原因檢查清單

常見的嫌疑人:

  • 錯誤的標頭格式(沒有使用 Authorization: Bearer)
  • API 金鑰複製時帶有尾部空格或換行符
  • 金鑰在儀表板中重新生成,但舊金鑰仍在代碼中
  • 環境變數未加載
  • 沒有帳戶充值——沒有添加信用就無法生成密鑰

快速修復

當我遇到 401 時,我從這裡開始:
首先,記錄確切的標頭。不是我認為我在發送的——是 HTTP 請求中實際的內容。通常 Bearer 令牌格式不正確或標頭名稱略有不同。
其次,從儀表板重新複製密鑰。在將其放入代碼之前,立即用 curl 進行測試:

curl -X POST "https://api.wavespeed.ai/api/v3/wavespeed-ai/flux-dev" \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"prompt": "test"}'

如果 curl 有效,問題在我的應用程序代碼中。如果 curl 失敗,密鑰本身就是錯誤的。
第三,檢查帳戶餘額。WaveSpeed 按基於信用的模式運營——如果您的餘額降至零,API 調用可能會失敗。

管理 429 速率限制回應

WaveSpeed 的速率限制分為層級:Bronze(基本限制,$100 充值)、Silver(更高的並發性,$1,000 充值)和 Gold(自訂,$10,000+)。每個層級有不同的吞吐量和並發任務限制。

具體內容沒有以確切數字公開記錄,但模式很清楚:發送過多請求過快,獲得 429。


了解速率限制

根據常見問題解答,示例限制包括 Bronze 每分鐘 10 張圖像 / 5 個視頻,最多 3 個並發任務,Silver 每分鐘 500 張圖像 / 60 個視頻,最多 100 個並發,以及 **Gold 每分鐘 2000 張圖像 / 120 個視頻,最多 200 個並發。

如果您收到 「請求過多」 錯誤,您可能遇到了層級限制。要防止節流,請考慮升級您的方案。


重試的指數退避策略

當我遇到 429 時,我會等待然後重試。不要立即——那只會讓我得到另一個 429。我使用指數退避:

  • 第一次重試:等待 1 秒
  • 第二次重試:等待 2 秒
  • 第三次重試:等待 4 秒
  • 三次嘗試後,停止並記錄失敗

許多 API 包含 Retry-After 標頭,告訴您確切要等待多長時間。檢查它,並在可用時使用該值。


設計客户端請求隊列

對於批量操作——例如批量生成 100 張圖像——我添加了一個尊重我的層級限制的隊列:

  • 跟蹤我在當前時間窗口中發送了多少個請求
  • 一旦我接近限制(比如,達到我層級吞吐量的 90%),暫停新請求
  • 當時間窗口重置時恢復

這在大多數情況下防止了 429 發生。當多個進程同時運行時,我偶爾仍會遇到它們,但重試邏輯會處理這些。


處理 5xx 伺服器錯誤

伺服器錯誤是不同的。401 或 429 是我做的什麼東西錯誤。來自 WaveSpeed 的 500 或 503 意味著他們端有東西破裂了。


安全重試模式

對於 5xx 錯誤,重試是安全的——大多數伺服器錯誤在幾秒內解決。Microsoft 文檔中很好的模式是立即重試一次,以防是瞬態錯誤,然後如果持續發生則回退到指數退避。

我的方法:

  • 立即重試一次(也許那只是一個打嗝)
  • 如果失敗,使用與 429 相同的指數退避
  • 上限為 總共三次重試
  • 記錄失敗並繼續

對於 GET 請求(檢查生成狀態),重試總是安全的。
對於 POST 請求(開始新生成),我更謹慎——我不想意外啟動同一個任務兩次。


有效配置超時

我設置了兩個超時:

  • 連接超時: 5 秒
  • 讀取超時: 30 秒

WaveSpeed 的目標是「圖像少於 2 秒」和「視頻約 2 分鐘」,儘管實際時間取決於模型、解析度和負載。

大多數圖像生成在 5 秒內 完成。視頻需要更長時間——有時 60-90 秒。但我見過偶爾的峰值達到 甚至圖像 20+ 秒

沒有超時,慢速請求可能會無限期掛起。有了超時,我得到乾淨的錯誤並可以重試。


WaveSpeed API 的日誌記錄和可觀察性

身份驗證和錯誤處理開始工作後,我需要知道它們保持工作。

記錄什麼

對於每個 WaveSpeed API 調用,我記錄:

  • 被調用的 模型端點
  • HTTP 狀態碼
  • 回應時間(毫秒)
  • 它是否是重試,以及 哪個嘗試號

當聯繫 WaveSpeed 支持部門報告失敗請求時,他們要求工作 ID 和時間戳。將這些保存在您的日誌中進行調試。


警報閾值

我為以下情況設置警報:

  • 401 錯誤率高於 1%(身份驗證損壞)
  • 429 錯誤率高於 5%(一致地遇到速率限制)
  • 任何 5xx 錯誤(應該很少見)
  • 平均回應時間超過 10 秒(潛在的性能問題)

這些不是通用閾值——它們是對我的使用有意義的。重要的是有一些閾值在用戶注意到之前觸發調查。


WaveSpeed API 身份驗證生產檢查清單

上線之前:

  • API 金鑰存儲在環境變數中,而不是代碼中
  • 正確使用 Authorization: Bearer 格式
  • Content-Type 標頭設置為 application/json
  • 具有指數退避的重試邏輯用於 429 和 5xx
  • 配置的超時(5 秒連接,30 秒讀取)
  • 日誌記錄包括狀態碼、回應時間、工作 ID
  • 為錯誤率峰值設置警報
  • 客户端速率限制以保持在層級限制內
  • 集成的餘額監控以跟蹤信用使用情況

在流量峰值期間,我仍然偶爾遇到 429。上個月 WaveSpeed 出現簡短問題時,我看到了一些 5xx 錯誤。但有了這個設置,這些錯誤不會級聯。

身份驗證主要是通過正常工作而起作用的。工作進入處理它不工作的時期——清潔、可預測、不會在凌晨 2 點因為信用餘額達到零而把我吵醒。

💡 遇到問題?
在評論中發布錯誤代碼 + 請求 ID,我們將指導您完成故障排除檢查清單,幫助識別根本原因。

**提示:大多數錯誤是客户端的可控的(標頭、API 金鑰、速率限制),但這個過程也幫助您發現需要 WaveSpeed 支持 的問題。