Documentation Index
Fetch the complete documentation index at: https://apidoc.cometapi.com/llms.txt
Use this file to discover all available pages before exploring further.
透過在你的應用程式中維護一個小型且有順序的 model ID 清單,並且只在失敗可重試或屬於特定模型時才嘗試下一個模型,來實作模型備援。不要重試格式錯誤的請求;在呼叫另一個模型之前,先修正 400、401 與無效請求錯誤。
實作有序備援
以下 Python 範例會依序嘗試 model ID,並在遇到不可重試的錯誤時停止:
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."
}
}
]
}
選擇備援模型
以下請求會列出可用的 model ID,供你評估哪些適合作為備援:
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"
}
]
}
常見錯誤
| 錯誤 | 修正方式 |
|---|
| 備援掩蓋了無效請求 | 不要在 400、401 或無效請求錯誤時啟用備援。 |
| 模型有不同的輸出格式 | 在回傳給使用者之前,先在你的應用程式中標準化回應。 |
| 備援會增加成本 | 在將模型加入備援清單之前,先估算每個模型的成本。 |
| 過多平行備援 | 除非你的產品需要平行競速,否則請依序嘗試備援。 |
相關連結