錯誤 503:gemini-3.1-pro-preview-customtools 呼叫失敗怎麼辦

回應 503 表示服務暫時無法使用,通常與維護或過載有關。它與 429 的差別是:429 是額度問題,503 是伺服器端容量問題。

503 Service Unavailable 表示服務目前無法處理請求,通常與過載或維護有關。與 429 的區分很關鍵:429 是你的額度用完了,503 是伺服端容量不足,應加大退避間隔而不是換 Key。

gemini-3.1-pro-preview-customtools 由 Google 提供,本頁的觸發分析、處理建議與實測數據均基於該模型在閘道層的真實運行情況整理。

在本閘道,此類報錯最常見的誘因是:上游模型過載。建議優先處理:稍後重試並加大退避間隔。

常見原因

  • 上游模型過載
  • 服務正在維護或滾動發布
  • 目前區域節點不可用
  • 突發流量

解決辦法

  • 稍後重試並加大退避間隔
  • 換用負載較低的同類模型
  • 避免在尖峰時段跑批次任務
  • 關注我們的公告

帶指數退避的重試範例

下面這段在呼叫 gemini-3.1-pro-preview-customtools 遇到 503 時會自動退避重試,最多 5 次,每次等待時間遞增並疊加隨機抖動,避免大量請求同時重試。base URL 與 API Key 請從環境變數讀取,不要寫死在程式碼裡。

import os, time, random
import requests

BASE  = os.getenv("OPENAI_BASE_URL")   # e.g. https://<your-gateway>/v1
KEY   = os.getenv("OPENAI_API_KEY")
MODEL = 'gemini-3.1-pro-preview-customtools'


def chat(messages, retries=5):
    """Retry with exponential backoff + jitter."""
    for i in range(retries):
        try:
            r = requests.post(
                BASE + "/chat/completions",
                headers={"Authorization": "Bearer " + KEY},
                json={"model": MODEL, "messages": messages, "stream": True},
                timeout=60,
            )
            if r.status_code == 429 or r.status_code >= 500:
                time.sleep(min(2 ** i + random.uniform(0, 1), 30))
                continue
            r.raise_for_status()
            return r.json()
        except requests.exceptions.Timeout:
            time.sleep(min(2 ** i + random.uniform(0, 1), 30))
    raise RuntimeError("gave up after " + str(retries) + " retries")


print(chat([{"role": "user", "content": "hello"}]))

該模型的關鍵資料

API 端點https://api.airai.cc/v1
OpenAI 相容OpenAI-compatible
廠商Google
上下文1M
能力Reasoning, Tools, Files, Vision, Audio
API 格式openai, openai-response, openai-response-compact, anthropic, gemini, openai-alpha-search
計費方式p * 2 + cr * 0.2 + c * 12) : tier("200k_plus", p * 4 + cr * 0.4 + c * 18

常見問題

改成串流輸出能減少 503 嗎?

需要修改請求參數,單純重試不會有幫助。上下文 1M 決定了單次請求的最大輸入,超出會被直接拒絕。對參數類錯誤直接快速失敗,不要浪費重試次數。長輸入先截斷或做摘要,能明顯降低 503 的機率。

退避策略用指數還是固定間隔?

通常不需要改商業邏輯,調整呼叫節奏即可。重試是最有效的第一步。按 p * 2 + cr * 0.2 + c * 12) : tier("200k_plus", p * 4 + cr * 0.4 + c * 18 計費時,失敗的請求不會計入用量。把重試上限設為 3 到 5 次,並加上隨機抖動。可重試的錯誤做指數退避,不可重試的立即回傳錯誤。

gemini-3.1-pro-preview-customtools 的 503 和帳號額度有關嗎?

提高方案上限或降低呼叫頻率都能緩解。按 p * 2 + cr * 0.2 + c * 12) : tier("200k_plus", p * 4 + cr * 0.4 + c * 18 計費時,長輸出的成本主要來自輸出 token。按 p * 2 + cr * 0.2 + c * 12) : tier("200k_plus", p * 4 + cr * 0.4 + c * 18 計費時,失敗的請求不會計入用量。按 p * 2 + cr * 0.2 + c * 12) : tier("200k_plus", p * 4 + cr * 0.4 + c * 18 估算成本時,把重試預算也算進去。

換成更小的模型能減少 503 嗎?

在架構上做備援,比逐個錯誤修補更穩。廠商 Google 的該模型在閘道上有多個上游節點可切換。準備一個更輕量的備用模型,主流程就不會中斷。把模型名稱寫成設定項,切換上游時不用改商業邏輯。

該模型的其他錯誤

遇到同樣錯誤的其他模型

資料更新於: 2026-10-10 12:10

技術支持在線客服
返回頂部