廣瀬製紙株式会社

Employees' Blog 社員ブログ

Claude APIの制限(Rate limits)について

公開日:2025.01.06 更新日:2025.01.06
illustration of api

みなさんこんにちは。廣瀬製紙株式会社 稼働率向上PJチームのAMです。

今回は、Claude APIを使用する際に気をつけたいRate limitsの制限についてご紹介したいと思います。
弊社では、Webサイトにアップロードする「社員ブログ」用の記事を執筆するにあたって、主にClaude APIを使った文章の執筆補助アプリを開発し活用しています。こうして今まさにご覧いただいている記事も、内容の詳細は執筆者が責任を持って考えつつ、文章にまとめあげる部分はClaudeに任せています。オリジナリティのある記事として内容を考えるのはあくまで執筆者の役目ですので、最終的なWeb記事としての品質は執筆者に責任がありますし、AIまかせで自動で記事を濫造するというものではありませんが、文章の体裁を整えてくれるというだけでもだいぶ執筆者の負担が減ったかなと感じています。

そのアプリを活用している際に、Rate limitsという制限に思いがけず引っかかってしまい、対応に手間取った経験がありました。この経験を、これから開発を始める方々に共有できればと思います。

Spend limitsとRate limits

Claude APIには、大きく分けて2種類の制限があります。1つは「Spend limits」、もう1つは「Rate limits」です。
Spend limitsは比較的シンプルで、月々の最大利用料金を私たち利用者側で自由に設定できる制限です。予算管理の観点から便利な機能ですね。
一方、Rate limitsの方は少し複雑です。この制限は利用者側で設定を変更することができません。制限の内容は使用する言語モデルによって若干異なりますが、それ以上に「Tier(ティア)」と呼ばれる利用レベルによって大きく変わってきます。Tierは1から4まであり、それぞれで制限の厳しさが異なります。
社内で利用するためのちょっとした便利ツールとはいえ、Rate limitsへの対応で意外と面倒なことが多かったため、今回はその点について共有させていただきたいと思います。
なおこの記事の情報は執筆時点のものですので、最新の情報は公式ドキュメントでご確認いただければと思います。

Tierについて

Claude APIのサービス利用には、デポジット制(事前決済制)が採用されています。利用者が事前に入金した金額からサービス利用料が差し引かれていく仕組みで、このデポジット額に応じて4段階のTierが設定されています。
具体的な金額で見ていくと、Tier1は$5以上、Tier2は$40以上、Tier3は$200以上、Tier4は$400以上となっています。各Tierによって利用制限が大きく異なるため、用途に応じた適切なTier選択が重要になってきます。
たとえば、社内で使用する程度の簡易的なツールであれば、最も入門的なTier1での運用が有力な選択肢の1つとなるかと思います。が、実際の運用では意外と制限が厳しいことに注意が必要です。
Tierの変更には一定の条件があり、上位Tierに移行するためには、該当するTierの必要デポジット額を下回ることなく、1〜2週間程度の期間を維持する必要があります。このため、ある程度の利用規模が見込める場合は、最初から適切なTierを選択しておくことをお勧めします。

Tier1のRate limitsについて

Tier1では、1分間あたりのリクエスト数が50回に制限されています。これに加えて、1分間あたりの最大インプットトークン数は20,000~50,000、最大アウトプットトークン数は4,000~10,000と設定されています(具体的な数値は使用する言語モデルによって変動します)。

個人的に特に厳しいなと思ったのが、1分間あたりの最大アウトプットトークン数の制限です。私の感覚では、日本語で1,000文字程度の文章を生成しようとすると2回ほどの生成で制限に達してしまうなという印象です。3回目の文章を生成したい場合は、1分ほど待機が必要になってしまいます(いろんな条件によって変わってくるとは思いますが)。
複数の文章を連続して生成する必要がある場合や、リアルタイムでの文章生成が求められる場合には、実装においても待機時間が発生することを考慮に入れる必要があります。

一方、Tier2にアップグレードすると制限はだいぶ緩和されます。1分間あたりのリクエスト数は1,000回に増加し、最大インプットトークン数は40,000~100,000、最大アウトプットトークン数も8,000~20,000まで拡大されます。

limitsに達したら

Rate limitsの制限に達した場合は、1分程度待機すれば再び利用可能となります。制限超過時にはレスポンスコード429が返されるので、これを目安に対応を検討しましょう。

具体的な対応方法としては、APIからの応答で得られる情報を活用できます。
例えば、生成されたテキストのトークン数は「response.usage.input_tokens」(入力)と「response.usage.output_tokens」(出力)で確認することができます(responseの部分は任意の変数になりますので各自のコードによって変わります)。
これらの値を参照することで、制限にどの程度近づいているかを把握できます。

また、制限解除までの待機時間については、レスポンスヘッダーの「retry-after」から取得可能です。
ただ弊社で使用している文章執筆補助アプリに関しては、それほど厳密な待機時間を計算する必要もないため、ざっくりと60秒強の固定待機時間を設定する実装をしています。そのほうがずいぶんとシンプルになることが多いでしょう。
参考までに、これらの詳細な情報はAnthropicの公式ドキュメントで確認することができます。

・レスポンスコードと使用トークン数
・レスポンスヘッダー

まとめ

Claude APIの利用制限は、開発初期の段階で想定以上に影響を与える可能性があります。特にTier1での制約は意外と厳しく、アプリ開発の際には事前に十分な考慮が必要です。
Tierを上げるためには、より多額のデポジットが必要になりますが、単にデポジット額を増やすだけでは不十分です。例えば、Tier2に上げるためには$40以上のデポジットを維持しつつ7日間待機する必要があります。
そのため、もし開発するアプリケーションで$40以上の利用が見込まれる場合は、開発開始時点で十分な額($40 + 7日間の待機期間で消費することを見込んで追加で数ドル程度)をデポジットしておくことをお勧めします。