400、401 和無效請求錯誤。
Documentation Index
Fetch the complete documentation index at: /llms.txt
Use this file to discover all available pages before exploring further.
透過依序嘗試 model ID、重試可重試的失敗,並在請求格式錯誤時停止,使用 CometAPI 新增模型 fallback。
400、401 和無效請求錯誤。
import os
import time
from openai import OpenAI, APIError, RateLimitError
client = OpenAI(
api_key=os.environ["COMETAPI_KEY"],
base_url="https://api.cometapi.com/v1",
)
models = ["your-primary-model-id", "your-fallback-model-id"]
for model in models:
try:
completion = client.chat.completions.create(
model=model,
messages=[
{
"role": "user",
"content": "Summarize CometAPI in one sentence.",
}
],
)
print(completion.choices[0].message.content)
break
except RateLimitError:
time.sleep(2)
continue
except APIError as error:
status_code = getattr(error, "status_code", None)
if status_code in {500, 503, 504, 524}:
time.sleep(2)
continue
raise
else:
raise RuntimeError("All configured model fallbacks failed.")
{
"model": "your-fallback-model-id",
"choices": [
{
"message": {
"role": "assistant",
"content": "CometAPI gives developers one API surface for multiple model providers."
}
}
]
}
curl https://api.cometapi.com/api/models
{
"success": true,
"page": 0,
"page_size": 0,
"total": 301,
"data": [
{
"id": "deepseek-v4-pro",
"provider": "DeepSeek",
"model_type": "text",
"features": [
"text-to-text"
],
"pricing": {
"currency": "USD / M Tokens",
"input": 0.416,
"output": 0.832,
"per_request": null,
"per_second": null
},
"api_doc_url": "https://apidoc.cometapi.com/api/text/chat"
}
]
}
| 錯誤 | 修正方式 |
|---|---|
| Fallback 掩蓋了無效請求 | 不要在 400、401 或無效請求錯誤時進行 fallback。 |
| 模型具有不同的輸出格式 | 在回傳給使用者之前,先在你的應用程式中標準化回應。 |
| Fallback 會增加成本 | 在將模型加入 fallback 清單之前,先估算每個模型的成本。 |
| 過多平行 fallback | 除非你的產品需要平行競速,否則請依序嘗試 fallback。 |