はじめに
みなさんこんにちは。株式会社インプルの岩崎です。
本日は、最近業務でclaudeのAPIキーを使ったツール開発が多いので、その開発の注意点をまとめてみました。主にトークン数の話にはなりますが・・・。
claudeとは
claudeとは、Anthropicが提供しているAIのモデルで、chatGPTのようなチャット型のLLMがあったり、CLI上で動くclaude code、そして今回紹介するclaudeモデルを使用できるAPIキーを提供していたりします。
claude codeは過去にも使ったことがあり。
でも、本格的には使えていなかったので、また時期に契約し、しっかりと使ってみようと思います。
APIキーを使ってみよう!
claudeのAPIキーを使うことで、独自のツールにAIのモデルを呼び出すことができます。
モデル構成
claudeのモデルは、現在 claude 4 まで出ており、最新モデルは、claude 4.6 シリーズです。大きく分けて3種類のモデルがあります。
一番メジャーなモデルなのは、Claude sonnet 。
モデルのコストと速度や精度が、一番バランスの取れたモデルです。モデルの位置付けとしては、中間のモデルになります。
続けて、Claude Haiku 。
最も軽量でスピードの速いモデルになります。エントリーモデルとなっており、とにかく安く試したい!というのであれば、このモデルがおすすめです。ですが、その分、解析タスクなどの精度は低いです。
最後に、Claude Opus 。
最も構成能で、claudeの中でも解析力はピカイチです。しかし、その分コストは高いので、本当に複雑なタスクでなければ、あまりメリットを発揮することはないかもしれません。
モデルの選び方
さて、上記モデルを3つ解説しましたが、それでもモデルはどうしよう、と悩む方も多いと思います。
基本的には Claude sonnet を使っておけば間違いないですが、コストのかかる問題なので、あまり安易には決めたくないですよね。
基本的には、能力・速度・コストの3つの軸から検討することが重要です。
ちなみに公式からは、とりあえず安価な Claude Haik から使ってみることをお勧めするオプション1と、Claude Opus から使ってみるオプション2の、2つの検討方法が用意されています。それで能力が足りなければ、上のモデルへアップグレード、余るようなら下のモデルへダウングレードしてね、という話です。
詳しくは下記記事よりご覧ください。
APIキーをつかうには?
CluadeのAPIキーを使うには、下記サイトでアカウントを作成・ログインし、APIキーを管理する必要があります。
取得ができたら、下記コードのようにAPIキーを呼び出すプログラムを使ってAPIキーを使ってみましょう。きっと、CLI上で動くものだったら、簡単に作れるはずです。
# 1. APIキーを設定
export ANTHROPIC_API_KEY='your-api-key-here'
# 2. APIキーの呼び出し - シンプルなweb検索アシスタント
curl https://api.anthropic.com/v1/messages \
-H "Content-Type: application/json" \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-d '{
"model": "claude-opus-4-6",
"max_tokens": 1000,
"messages": [
{
"role": "user",
"content": "What should I search for to find the latest developments in renewable energy?"
}
]
}'
# 3. 出力例
{
"id": "msg_01HCDu5LRGeP2o7s2xGmxyx8",
"type": "message",
"role": "assistant",
"content": [
{
"type": "text",
"text": "Here are some effective search strategies to find the latest renewable energy developments:\n\n## Search Terms to Use:\n- \"renewable energy news 2024\"\n- \"clean energy breakthrough\"\n- \"solar/wind/battery technology advances\"\n- \"green energy innovations\"\n- \"climate tech developments\"\n- \"energy storage solutions\"\n\n## Best Sources to Check:\n\n**News & Industry Sites:**\n- Renewable Energy World\n- GreenTech Media (now Wood Mackenzie)\n- Energy Storage News\n- CleanTechnica\n- PV Magazine (for solar)\n- WindPower Engineering & Development..."
}
],
"model": "claude-opus-4-6",
"stop_reason": "end_turn",
"usage": {
"input_tokens": 21,
"output_tokens": 305
}
}
トークンの理解(用語、リミット、などなど)
さて、この記事の本題である、トークンの用語やリミットについての理解です。
このトークン数を理解しておくことで、ツールのエラーを防ぎ、コストの考え方も少し身につきます。
ツールを開発していると、よく400エラーや429エラーのようなエラーで解析が実行できない、ということが発生します。それらの問題は、トークンの制限を理解しておくことで、回避することもできます。(できないものもありますが。。。)
用語整理と、どれだけトークン消費するの?
まず、トークン制限などを考える時には、下記の用語が大事になってきます。まずはそれを整理しましょう。
| 制限 | 「何が」上限か | いつ問題になるか |
|---|---|---|
| コンテキストウィンドウ | 1回の器の大きさ | 画像枚数・会話が長い時 |
| ITPM | 1分間の入力量 | 短時間に大量処理する時 |
| OTPM | 1分間の出力量 | 長文レスポンスを連続で出す時 |
| RPM | 1分間のリクエスト回数 | ループ処理・並列処理する時 |
また、トークンは、下記のような感じで消費されていきますので、これもイメージを持っておくとツールに反映しやすいかもしれません。
| 内容 | おおよそのトークン数 |
|---|---|
| 日本語1文字 | 約1〜2トークン |
| 英語1単語 | 約1トークン |
| 画像1枚(標準) | 1,000〜2,000トークン程度 |
さて、先ほどのようなエラーは、それらはクレジットの残高が足りてなかったり、トークンの制限でエラーが発生しているものです。クレジット残高は、チャージすれば対処できるものの、トークン制限はプログラム上で削減するか、工夫するほかありません。
それらを工夫するため、3段階の消費パターンを理解することで、APIのエラーを回避していきましょう!
層1:コンテキストウィンドウ
まず最初に、1リクエストに対する制限を見ていきましょう。先ほどの用語集で一番上にあげた、コンテキストウィンドウです。これは、1回のAPIコールで扱える最大量で、基本は200,000トークン(システムプロンプト+入力+出力の合計)に設定されています。
入力は、AIに何を与えるかでトークン量が決まってきます。一方、出力は、テキストだけであればあまりトークン数は増えませんが、画像や膨大なテキストになってくると、トークン数が増えてきます。システムプロンプトは、AIに役割を与えるために必要ですね。
一番引っかかりやすいのはこのトークン制限なので、コンテキストウィンドウを200,000トークンになるよう、工夫してあげましょう。
例えば、入力はどんなに頑張っても減らしにくいので(解析対象そのものだから)出力を工夫してみたり、入力の形(画像をテキストで再現する、とか)を変えてみたりすることで、消費はできます。
層2:ITPM / OTPM(流量制限)
続けて、1分間の入出力量です。
ここからclaudeは、Tierというランクを導入しており、それによって入出力量が変動してくるので、少々考え方が複雑になってきます。Tierは、簡単に言えばclaudeをどれだけ使ったかで決まるランクで、4つのランクがあります。下記の通りです。
Tier 1($5入金)
└── 低い RPM / ITPM / OTPM + 月支出上限 小
Tier 2(累計$40)
└── ↑ 緩和
Tier 3(累計$200)
└── ↑ さらに緩和
Tier 4(累計$400)
└── 高い制限 + 1Mコンテキストウィンドウ利用可
Custom(営業相談)
└── エンタープライズ向け個別設定
時間感覚を2分以上空けてやるのであれば、これらの制限には引っかかりませんが、1分間で膨大な量の情報を入出力するのであれば、ここは注意が必要です。
層3:RPM(リクエスト回数制限)
最後に、リクエスト回数制限です。
1分間に平行処理で何個も処理をさせる場合、この制限に引っかかることがあります。1分間に叩けるAPIの回数は決まっているので、これに引っかかった場合は、平行処理の回数を減らしたり、高速で処理されるものの間に待機時間を設けることで、制限を回避しましょう!
実際の例でイメージしてみよう!
さて、実際に例を挙げてみてみましょう。
claudeにお願いしたら、こんなものを作ってくれました笑。claudeチャットも非常に有能なので、これも記事に紹介したいですね。
さて、これは、トークン制限をビジュアルで示してくれたものです。

例えば、画像のような状態だと、シンプルな1回の送って返すチャットのやり取りの試算です。
上段がコンテキストウィンドウの試算で、下段は1分間のRate Limit使用量(Tier 1)の資産です。シンプルなチャットの場合は、どれも非常に軽量な資産になっていますね。

続いて、ビジュアル3枚を入れてみた時の試算です。
画像が増えたことで、上段左下のトークン量が増加し、3枚に対しての回答を生成するので出力も増しています。ですが、まだまだ制限には引っかかりませんね。

では、画像1枚に対して長い会話を続けたときは?
いよいよオーバーしてしまいました。これは、過去の会話履歴が積み重なったことによるトークン量の上限がオーバーしてしまった試算ですね。それがなければ、特には問題なさそうですが、チャットツールを作る場合には、履歴がネックになってくるかもしれないことがよくわかりました。

おわりに
いかがだったでしょうか?
解説したように、ツールにはトークンの上限があり、ツールを作成するときはそれを超えないように注意しなければいけません。皆さんもAPIキーを使ったツール作成をする際は、これらの条件に注意しながら作成してみてください。
ご覧いただきありがとうございました!
