400, 401, 및 잘못된 요청 오류를 수정하세요.
Documentation Index
Fetch the complete documentation index at: /llms.txt
Use this file to discover all available pages before exploring further.
CometAPI에서 model ID를 순서대로 시도하고, 재시도 가능한 실패는 다시 시도하며, 요청 형식 오류에서는 중단하여 model 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을 순차적으로 시도하세요. |