錯誤 401:claude-sonnet-5 呼叫失敗怎麼辦
回應 401 表示身分驗證失敗:請求裡沒有 API Key,或 Key 無效、已被刪除、已過期。
401 Unauthorized 表示請求缺少有效憑證。閘道無法辨識呼叫方身分,因此不會把請求轉發給上游模型。檢查 Authorization 標頭與 Key 狀態是唯一的排查方向。
claude-sonnet-5 由 Anthropic 提供,本頁的觸發分析、處理建議與實測數據均基於該模型在閘道層的真實運行情況整理。
在本閘道,此類報錯最常見的誘因是:請求標頭缺少 Authorization。建議優先處理:確認請求標頭為 Authorization: Bearer 加你的 Key。
常見原因
- 請求標頭缺少 Authorization
- Key 拼字錯誤或帶了多餘空白
- Key 已在「權杖」頁面被刪除或停用
- 誤用了其他平台的 Key
解決辦法
- 確認請求標頭為 Authorization: Bearer 加你的 Key
- 在「權杖」頁面重新產生一組 Key
- 核對是否誤用了其他服務的 Key
- 用一條最小 curl 請求驗證 Key 是否可用
帶指數退避的重試範例
下面這段在呼叫 claude-sonnet-5 遇到 401 時會自動退避重試,最多 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 = 'claude-sonnet-5'
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 |
| 廠商 | Anthropic |
|---|---|
| 上下文 | 1M |
| 能力 | Reasoning, Tools, Files, Vision |
| API 格式 | openai, openai-response, openai-response-compact, anthropic, gemini, openai-alpha-search |
| 計費方式 | p * 2 + cr * 0.2 + cc * 2.5 + cc1h * 4 + c * 10 |
常見問題
claude-sonnet-5 的 401 和請求體大小有關嗎?
需要修改請求參數,單純重試不會有幫助。該模型的能力標籤為 Reasoning, Tools, Files, Vision,參數上限受能力集約束。上下文 1M 決定了單次請求的最大輸入,超出會被直接拒絕。對參數類錯誤直接快速失敗,不要浪費重試次數。
官方 SDK 已經自動重試了,還需要自己寫重試嗎?
通常不需要改商業邏輯,調整呼叫節奏即可。重試是最有效的第一步。按 p * 2 + cr * 0.2 + cc * 2.5 + cc1h * 4 + c * 10 計費時,失敗的請求不會計入用量。可重試的錯誤做指數退避,不可重試的立即回傳錯誤。
claude-sonnet-5 回報 401 時,回應內容裡應該看哪些欄位?
把錯誤按時間與節點彙整後再看,規律通常很明顯。如果只在正式環境出現,多半是環境差異而不是模型問題。該模型由 Anthropic 提供,上游狀態以廠商公告為準。記錄每次錯誤的請求識別碼,排查時比狀態碼更有用。先在測試環境用相同的請求主體重現一次。
呼叫 claude-sonnet-5 回傳 401,會扣費嗎?
不會計費,只有實際產出內容才會計入用量。已經產出的部分會計費,失敗的部分不會。按 p * 2 + cr * 0.2 + cc * 2.5 + cc1h * 4 + c * 10 計費時,長輸出的成本主要來自輸出 token。按 p * 2 + cr * 0.2 + cc * 2.5 + cc1h * 4 + c * 10 計費時,失敗的請求不會計入用量。按 p * 2 + cr * 0.2 + cc * 2.5 + cc1h * 4 + c * 10 估算成本時,把重試預算也算進去。
該模型的其他錯誤
- claude-sonnet-5:錯誤 429 的原因與解決辦法
- claude-sonnet-5:錯誤 timeout 的原因與解決辦法
- claude-sonnet-5:錯誤 500 的原因與解決辦法
- claude-sonnet-5:錯誤 502 的原因與解決辦法
- claude-sonnet-5:錯誤 503 的原因與解決辦法
- claude-sonnet-5:錯誤 504 的原因與解決辦法
- claude-sonnet-5:錯誤 403 的原因與解決辦法
- claude-sonnet-5:錯誤 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