メインコンテンツへスキップ

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.

CometAPI のエラーは、リクエストを修正すべきか、リトライすべきかを判断して対応します。429、タイムアウト系の障害、一時的なサーバー障害はバックオフを使ってリトライし、不正なリクエストや認証失敗はリトライしないでください。

リトライ可能な障害のみリトライする

ステータスまたはシグナルリトライ可否対応
400いいえリクエストボディまたはパラメータを修正します。
401いいえAPI キーと Authorization ヘッダーを修正します。
403通常はいいえサポートされていないフィールドを削除し、model へのアクセスを確認します。
429はい指数バックオフとジッターを使ってリトライします。
500 with invalid_requestいいえリクエスト形式を修正します。
500, 503, 504, 524はいバックオフを使ってリトライし、request ID を保持します。

バックオフを追加する

以下の Python の例では、リトライ可能な障害のみをリトライします。
import os
import random
import time
from openai import APIError, OpenAI, RateLimitError

client = OpenAI(
    api_key=os.environ["COMETAPI_KEY"],
    base_url="https://api.cometapi.com/v1",
)

for attempt in range(5):
    try:
        response = client.chat.completions.create(
            model="your-model-id",
            messages=[{"role": "user", "content": "Say hello."}],
        )
        print(response.choices[0].message.content)
        break
    except RateLimitError:
        delay = min(30, 2**attempt) + random.random()
        time.sleep(delay)
    except APIError as error:
        status_code = getattr(error, "status_code", None)
        if status_code in {500, 503, 504, 524}:
            delay = min(30, 2**attempt) + random.random()
            time.sleep(delay)
            continue
        raise
else:
    raise RuntimeError("The request failed after retries.")
成功したレスポンスには、model の出力が含まれます。
{
  "choices": [
    {
      "message": {
        "role": "assistant",
        "content": "Hello."
      }
    }
  ],
  "usage": {
    "total_tokens": 9
  }
}

役立つコンテキストをログに残す

以下の JSON 形式は、ユーザーの秘密情報と大きなファイルを削除した後であれば安全に保存できます。
{
  "method": "POST",
  "path": "/v1/chat/completions",
  "model": "your-model-id",
  "status": 429,
  "request_id": "request_id_from_error_message",
  "retryable": true
}

よくあるエラー

エラー修正方法
401 をリトライするリトライを停止し、API キーをローテーションまたは再読み込みします。
無効な JSON をリトライする別のリクエストを送る前に、リクエストボディを検証します。
ログに request ID がないSDK がラップする前の正確なエラーボディを取得します。
429 の直後にリトライするジッターを追加し、同時実行数を減らします。

関連リンク

Last modified on May 28, 2026