レート制限
OfoxAIのレート制限はプラットフォームの安定性を保証します。制限ルールを理解し、呼び出し戦略を最適化しましょう。
デフォルト制限
OfoxAI は従量課金制で、すべてのユーザーが統一されたレート制限ポリシーを共有します:
| 制限項目 | 上限 |
|---|---|
| RPM(リクエスト/分) | 200 |
| TPM(トークン/分) | 無制限 |
より高い RPM クォータが必要な場合は、OfoxAI サポート にお問い合わせの上、調整を申請してください。
Rate Limit Header
各 API レスポンスにはレート制限情報が含まれています:
x-ratelimit-limit-requests: 200
x-ratelimit-remaining-requests: 195
x-ratelimit-reset-requests: 12s| Header | 説明 |
|---|---|
x-ratelimit-limit-requests | RPM 制限値 |
x-ratelimit-remaining-requests | 残りリクエスト回数 |
x-ratelimit-reset-requests | リクエスト制限のリセット時間 |
429エラーの対処
レート制限がトリガーされると、API は 429 Too Many Requests を返します:
from openai import RateLimitError
import time
try:
response = client.chat.completions.create(...)
except RateLimitError as e:
retry_after = float(e.response.headers.get("retry-after", 1))
print(f"レート制限に到達しました。{retry_after}秒待機します...")
time.sleep(retry_after)最適化戦略
1. Prompt Caching の利用
繰り返しの system prompt に対してキャッシュを有効化し、トークン消費を削減します:
response = client.chat.completions.create(
model="openai/gpt-4o",
messages=[
# 長い system prompt は自動的にキャッシュされます
{"role": "system", "content": "あなたはプロフェッショナルな...(長文テキスト省略)"},
{"role": "user", "content": "ユーザーの質問"}
]
)詳細は プロンプトキャッシュ をご参照ください。
2. バッチ処理
複数の短いリクエストを1つのリクエストにまとめます:
# ❌ 非推奨:質問ごとに個別のリクエストを送信
for question in questions:
client.chat.completions.create(messages=[{"role": "user", "content": question}])
# ✅ 推奨:1つのリクエストにまとめる
combined = "\n".join(f"{i+1}. {q}" for i, q in enumerate(questions))
client.chat.completions.create(
messages=[{"role": "user", "content": f"以下の質問に順番に回答してください:\n{combined}"}]
)3. 適切なモデルの選択
| シナリオ | 推奨モデル | 理由 |
|---|---|---|
| シンプルな対話 | openai/gpt-4o-mini | 高速でトークン消費が少ない |
| 複雑な推論 | openai/gpt-4o | 高品質な出力 |
| コード生成 | anthropic/claude-sonnet-4.5 | 優れたコーディング能力 |
| 長文テキスト処理 | google/gemini-3-flash-preview | 大きなコンテキスト、高コストパフォーマンス |
4. max_tokens の制御
適切な max_tokens 制限を設定し、不要なトークン消費を回避します:
response = client.chat.completions.create(
model="openai/gpt-4o",
messages=[{"role": "user", "content": "一文で要約してください"}],
max_tokens=100 # 出力長を制限
)5. モデルフォールバックの利用
プライマリモデルが制限に達した場合、自動的に代替モデルに切り替えます:
response = client.chat.completions.create(
model="openai/gpt-4o",
messages=[...],
extra_body={
"provider": {
"fallback": ["anthropic/claude-sonnet-4.5", "google/gemini-3-flash-preview"]
}
}
)詳細は フォールバック をご参照ください。
Last updated on