錯誤 504:gemini-3.1-pro-preview-customtools 呼叫失敗怎麼辦
回應 504 表示閘道等待上游模型回應逾時:請求已送出,但上游在閘道允許的時間內沒有回傳結果。
504 Gateway Timeout 表示閘道等待上游回應逾時。請求已被轉發,但上游在閘道限制的時間內沒有回傳結果。縮短輸出、改用串流、或降低 max_tokens 通常可以解決。
gemini-3.1-pro-preview-customtools 由 Google 提供,本頁的觸發分析、處理建議與實測數據均基於該模型在閘道層的真實運行情況整理。
在本閘道,此類報錯最常見的誘因是:上游回應時間超過閘道逾時門檻。建議優先處理:改用串流輸出。
常見原因
- 上游回應時間超過閘道逾時門檻
- 上下文過長導致推理時間過長
- 上游節點卡住
- 使用非串流請求且輸出很長
解決辦法
- 改用串流輸出
- 縮短上下文並調小 max_tokens
- 稍後重試
- 換用推理更快的模型
帶指數退避的重試範例
下面這段在呼叫 gemini-3.1-pro-preview-customtools 遇到 504 時會自動退避重試,最多 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 |
| 廠商 | |
|---|---|
| 上下文 | 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 |
常見問題
失敗的請求會算進限流配額嗎?
不會計費,只有實際產出內容才會計入用量。已經產出的部分會計費,失敗的部分不會。按 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 估算成本時,把重試預算也算進去。
結果快取能減少 504 嗎?
併發與逾時才是這裡真正的變數,不是模型本身。先把併發降下來再判斷,多數吞吐問題會隨之消失。該模型上下文視窗 1M,廠商為 Google。上下文 1M 意味著長輸入會明顯拉長首字延遲。長輸出場景把逾時單獨放寬到 60 秒以上。併發從低值起步,觀察幾分鐘後再逐步加大。
退避策略用指數還是固定間隔?
通常不需要改商業邏輯,調整呼叫節奏即可。按 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 的 504?
建議同時準備一個備用模型。在架構上做備援,比逐個錯誤修補更穩。廠商 Google 的該模型在閘道上有多個上游節點可切換。準備一個更輕量的備用模型,主流程就不會中斷。
該模型的其他錯誤
- gemini-3.1-pro-preview-customtools:錯誤 429 的原因與解決辦法
- gemini-3.1-pro-preview-customtools:錯誤 timeout 的原因與解決辦法
- gemini-3.1-pro-preview-customtools:錯誤 500 的原因與解決辦法
- gemini-3.1-pro-preview-customtools:錯誤 502 的原因與解決辦法
- gemini-3.1-pro-preview-customtools:錯誤 503 的原因與解決辦法
- gemini-3.1-pro-preview-customtools:錯誤 401 的原因與解決辦法
- gemini-3.1-pro-preview-customtools:錯誤 403 的原因與解決辦法
- gemini-3.1-pro-preview-customtools:錯誤 400 的原因與解決辦法
遇到同樣錯誤的其他模型
- gpt-5
- claude-opus-5
- gemini-2.5-pro
- deepseek-v4-pro
- grok-4.3
- llama-3.3-70b-instruct
- qvq-max
- qwq-32b
- glm-5
- MiniMax-M3
- kimi-k3
- hy3
- doubao-seed-evolving
- mimo-v2.5
- gpt-4o
- claude-opus-4-6
資料更新於: 2026-10-10 12:10