コアガイド

レート制限

レート制限

既定の毎分リクエスト数は User 1,000、Partner 10,000、VIP 10,000 ですが、設定は変更される場合があります。認証が必要なリクエストには API キー単位でこの制限が適用されます。GET /v1/models などの公開エンドポイントには別の制限があります。表のコピーではなく、429 の X-RateLimit-Limit と Retry-After を確認してください。

429 / Retry-After

{
  "error": {
    "message": "Rate limit exceeded. Please retry later.",
    "type": "rate_limit_exceeded",
    "code": "rate_limit_exceeded",
    "retryable": true,
    "retry_after": 8
  }
}
Retry-After: 8

Retry-After の秒数を待ち、なければランダムな揺らぎを含む指数バックオフを使います。次の例は最大 4 回で、SDK の自動再試行を無効にし、指定されたモデルを維持します。

import random
import time
from openai import RateLimitError

def chat_with_rate_limit_retry(client, model, messages, attempts=4):
    for attempt in range(attempts):
        try:
            return client.with_options(max_retries=0).chat.completions.create(
                model=model,
                messages=messages,
            )
        except RateLimitError as exc:
            if attempt == attempts - 1:
                raise
            header = exc.response.headers.get("Retry-After")
            wait = float(header) if header else min(30, 2 ** attempt + random.random())
            time.sleep(wait)

同時実行を制限し、集中する要求をキューに入れ、安全に再利用できる結果だけをキャッシュします。認証、権限、残高、検証エラーは再試行しません。高速なモデルでも要求上限は増えません。変更の相談はアカウント、想定量、用途を添えて support@tokenlab.sh へ。

このページの内容