OpenAI
このページは機械翻訳されています。元の英語の記事を表示

API のレート制限と 429 エラーのトラブルシューティング

API 429 エラーの原因を特定し、リクエストの集中を抑え、レート、クレジット、使用量の各制限に応じた適切な対応を選びます。

更新日: 16 hours ago

概要

API の使用にはレート制限が適用されます。これらの制限により、一定期間内のリクエスト数、トークン数、その他の使用量が制限されます。

429 レスポンスは、一時的なレート制限、プリペイド残高の枯渇、または支出上限や使用量上限を示すことがあります。再試行や請求設定の変更を行う前に、エラーの詳細を確認してください。

原因の特定

エラーメッセージと、表示されている場合は error.code を確認してください。請求関連のエラーでも、より広義の error.type 値である insufficient_quota が使用される場合があります。

エラーまたはコード意味対処方法
リクエストまたはトークンのレート制限に到達リクエストが該当するレート制限を超えています。リクエストの送信間隔を調整し、以下の再試行手順に従ってください。
credit_balance_exhausted組織のプリペイドクレジット残高がありません。API の請求設定でクレジットを追加してください。
organization_usage_limit_exceeded組織が OpenAI によって割り当てられた使用量上限に達しました。承認済みの使用量上限の引き上げを申請してください。
organization_spend_limit_exceeded組織が適用中の支出上限に達しました。上限を引き上げるか解除する、または月次リセットを待ってください。
project_spend_limit_exceededプロジェクトが適用中の支出上限に達しました。プロジェクトの上限を引き上げるか解除する、または月次リセットを待ってください。

請求、支出、クォータに関するエラーは、再試行してもアクセスが回復しません。まず、表示された残高または上限の問題に対処してください。適用中の支出上限の変更が反映されるまで、時間がかかることがあります。

支出上限を変更するには、該当する組織またはプロジェクトの設定を管理する権限が必要です。権限がない場合は、その設定の管理者に依頼してください。

プリペイドクレジットの購入については、プリペイド方式の API 請求の設定と管理をご覧ください。

各種の支出管理については、API 支出上限ガイドをご覧ください。

適用されるレート制限の確認

組織の制限ページで、現在の使用量ティアと上限を確認してください。

レート制限は、組織レベルとプロジェクトレベルで適用される場合があります。個々のユーザーに割り当てられる上限ではありません。上限はモデルによっても異なり、一部のモデルファミリーでは上限が共有されます。

エラーに示されている上限の種類を確認してください。たとえば、1 分あたりのリクエスト数と 1 分あたりのトークン数は別々の制限です。一方を下回っていても、もう一方の上限に達することがあります。

リクエストで使用する組織の確認

複数の組織に所属している場合は、リクエストで意図した組織とプロジェクトが使用されていることを確認してください。

API キーでデフォルトの組織を使用している場合は、デフォルト組織の設定を確認してください。請求方法と使用量ティアは組織ごとに異なる場合があります。

一時的なレート制限エラーの削減

リクエスト間隔の調整と集中回避

多数のリクエストを一度に送信せず、時間を空けて分散させてください。

レート制限は、表示されている間隔より短い期間単位で適用される場合があります。たとえば、1 分あたり 60 リクエストという制限が、1 秒単位でも適用される場合があります。そのため、平均使用量が 1 分あたりの制限を下回っているように見えても、短時間に集中するとエラーが発生することがあります。

長いプロンプトや、必要以上に大きな出力トークン上限も、トークンレートエラーの一因になります。

時間を置いて再試行

一時的なレート制限エラーの場合:

  1. レスポンスに Retry-After ヘッダーがあるか確認してください。

  2. ヘッダーに有効な待機時間が指定されている場合は、少なくともその時間だけ待ってから再試行してください。

  3. ヘッダーがない、または無効な場合は、ジッターを伴う指数バックオフを使用してください。試行に失敗するたびに待機時間を延ばし、短いランダムな遅延を加えます。

  4. 再試行の回数と、再試行に費やす合計時間の両方に上限を設けてください。

OpenAI 公式 SDK は、対象となるレート制限エラーをすでに再試行し、Retry-After がある場合はその指定に従います。別の再試行ループを追加する前に、これらの再試行を考慮してください。

失敗したリクエストも、1 分あたりの制限に算入されます。同じリクエストを繰り返し送信し続けると、問題が長引くことがあります。

実装方法と例については、API レート制限ガイドをご覧ください。サードパーティー製の再試行ライブラリは、アプリケーションで使用する前に内容を確認してください。

プロンプトと出力サイズの見直し

プロンプトから不要な指示、重複するコンテキスト、例を削除してください。修正したプロンプトをテストし、必要な結果が引き続き得られることを確認してください。

エンドポイントとモデルが対応する出力トークンパラメーターを使用してください:

  • Chat Completions では max_completion_tokens を使用します。

  • Responses では max_output_tokens を使用します。

リクエストに必要な量を大幅に上回る上限は設定しないでください。これらのパラメーターには、表示される出力だけでなく推論トークンも含まれます。リーズニングモデルを使用する際は、両方を考慮して設定してください。

使用量ティアの確認

リクエストの集中を抑え、トークン使用量を確認してもエラーが続く場合は、制限ページで上限を引き上げる方法を確認してください。

API の支出額が増えると、OpenAI により組織が上位の使用量ティアへ自動的に移行される場合があります。通常、これによりほとんどのモデルでレート制限が引き上げられます。

承認済みの月間使用量上限は、リクエストとトークンのレート制限とは別です。一方の引き上げを、もう一方も変更されたことの確認とみなさないでください。

問題が解決しない場合

サポートに問い合わせる前の準備

正確なエラーメッセージ、エラーコード、関連するリクエスト ID、タイムゾーンを含むエラー発生時刻、アカウントに表示された該当上限を手元に用意してください。すでに試した手順を記録してください。

OpenAI サポートへの問い合わせ

表示された上限を確認しても問題を解決できない場合は、ヘルプセンターから OpenAI サポートにお問い合わせください。API キーやその他の認証用シークレットは記載しないでください。

この記事は役に立ちましたか?