チャージ金額不足でOpenAI API からレートリミットのエラーが発生したときに調べたことのまとめ
この記事について
openAI APIを利用したデータ生成をしている最中にレートリミットに抵触するエラーが発生し、一時APIの利用が不可という状況になりました。
その際に調べたことをマークダウンにまとめたものになります。
OpenAIのサイトをベースにしていますので詳しくはレートリミットの詳細ページより確認した方がより確実となります。
また、API利用に関してTier1を満たす課金をしているため、この記事は主にTier1についてのものになります。
現在のtierを調べるにはこちらのURLを確認するのがいいです。
筆者のレートリミットの理由
タイトル通りなのですが、チャージ金額不足が理由でレートリミットが発生しました。
ですのでタイトルの釣りみたいになってしまいますが実際の意味でのレートリミットには抵触していませんでした。
ただ、エラー内容自体は以下の通りです。
エラーコードの429とはレートリミットに関するエラーのようです。
status code: 429, status: 429 Too Many Requests,
message: You exceeded your current quota, please check your plan and billing details. For more information on this error,
read the docs:
https://platform.openai.com/docs/guides/error-codes/api-errors.
チャージ分がなくなったことに気づいたのはレートリミットについてを調べたあとでした。
わかってしまえば大したことはなかったのですが、レートリミットのエラーをなぜチャージ金額不足で出すのかは謎です。。。
レートリミットの概要
OpenAIのAPIには、ユーザーやクライアントが指定された期間内にサービスにアクセスできる回数を制限するレートリミットがあります。これらの制限は以下の理由で設けられています
- 悪用防止: APIへの過剰なリクエストを防ぎ、サービスの中断を避ける。
- 公平なアクセス: 一部のユーザーが過剰にリクエストを送信することを防ぎ、全てのユーザーがAPIを利用できるようにする。
- インフラ管理: APIへのリクエストが急増した場合でも、安定したパフォーマンスを維持するため。
レートリミットは以下の5つの方法で測定されます
- RPM (Requests Per Minute): 1分あたりのリクエスト数
- RPD (Requests Per Day): 1日あたりのリクエスト数
- TPM (Tokens Per Minute): 1分あたりのトークン数
- TPD (Tokens Per Day): 1日あたりのトークン数
- IPM (Images Per Minute): 1分あたりの画像生成数
このあたりのことまで調べた時に、言葉通りのレートリミットには抵触してないのになぜエラーが発生しているのか?と疑問に感じ、そのあとすぐにチャージ不足に気づくに至るといった感じです。
Usage Tierとレートリミット
レートリミットを調べると、tierという利用者レベルのような概念の説明があります。
OpenAI APIには複数のUsage Tierがあり、各Tierごとに異なるレートリミットが設定されています。
以下は各Tierの概要です
Tier | 資格条件 | 使用制限 |
---|---|---|
Free | 許可された地域にいるユーザー | $100 / 月 |
Tier 1 | $5支払い済み | $100 / 月 |
Tier 2 | $50支払い済み、初回支払いから7日以上経過 | $500 / 月 |
Tier 3 | $100支払い済み、初回支払いから7日以上経過 | $1,000 / 月 |
Tier 4 | $250支払い済み、初回支払いから14日以上経過 | $5,000 / 月 |
Tier 5 | $1,000支払い済み、初回支払いから30日以上経過 | $200,000 / 月 |
調べている時は、過去に$5以上の支払いはしたことがあったためtier1だと推測していました。
そのあと、アカウントのページにtier表示があるとわかり、そちらにてtier1だと確認しました。
Tier 1のレートリミット
Tier 1($5支払い済み)のGPT-4o-miniモデルのレートリミットは以下です
- RPM: 500
- RPD: 10,000
- TPM: 200,000
- バッチキューリミット: 2,000,000トークン
こちらの利用方法が1分あたり(RPM)500を超えそうにはなっていたのですが、実際のコードを確認したところ、せいぜい300までしか行かないのでレートリミットには抵触してないということも証明できました。
レートリミット解除方法と降格条件
レートリミットを解除または緩和する方法は以下です
- 上位Tierへの昇格: より多くの支払いを行うことで自動的に昇格。
- 使用量と支出を増やす: 使用量が増えると自動的に次のTierに昇格。
筆者の場合は、$10課金して大体10分くらい間を置いたら解決しました。
課金したあとすぐにAPIを叩いてもエラーになるので、しばらく間をおく必要があるようです。
降格条件は明確には示されていませんが、以下のような状況で降格が起こる可能性があるようです。
- 長期間APIを使用しない場合
- 支払いが滞った場合
- 月間使用上限を大幅に下回る使用が続いた場合
実際に降格してみないとわからないのですが、利用し続けていればそうそう降格しない雰囲気はありそうです。
終わりに
チャージ金額がなくなったらレートリミットじゃなくてチャージ残高不足のエラーを出して欲しい。。。
Discussion