在正式環境處理 LLM API 失敗:重試、切換與逐請求日誌
(修改过)
IPFS
說明:我在 APIGOTO 團隊工作。APIGOTO 是獨立服務,與 OpenAI、Anthropic、Google 皆無關聯。
只要在 Claude、GPT、Gemini 這類託管 LLM API 上做產品,就一定會遇到失敗:429 限流、5xx、逾時,還有串流回應做到一半就斷掉。以下是我們這個小團隊在維運 LLM 閘道時整理的檢查清單,用任何用戶端或自架 proxy 都適用。
1. 先分類再重試。400(請求格式錯誤)、401(金鑰錯誤)重試永遠不會成功,應該直接失敗;429、5xx 和逾時才值得重試。
2. 重試要有上限。我們固定最多 3 次,無限重試只會把短暫故障放大成成本與延遲的尖峰。
3. 429 要退避。立刻對同一家重送只會讓限流更嚴重;有 Retry-After 就照做,或者改走另一條路由。
4. 想清楚「切換」代表什麼。換成另一個模型,輸出風格、工具呼叫格式和 token 數都會變;一般對話可以接受,評測或嚴格 JSON 輸出就未必。
5. 每個請求各記一筆日誌:哪個上游回應、延遲、輸入/輸出 token、重試了幾次。沒有這些,排查「模型變慢了」只能靠猜。
6. 串流要小心。輸出到一半斷線時,換到別家重來可能產生重複內容,直接回傳清楚的錯誤往往更安全。
我們的產品 APIGOTO 就是把上面這些做在一個相容 OpenAI 的 base_url(https://api.china-aiapi.com/v1)後面:自動切換(最多重試 3 次)、每個請求一筆日誌、支援 BYOK、按用量計費。
想請教大家:處理繁體中文內容時,你們觀察到 Claude、GPT、Gemini 的 token 數或回答品質差異大嗎?