APIの料金はトークン数を基準に計算されます。「なぜこんなにコストがかかるのか」と気づいたとき、最初に理解すべきなのはトークンの課金構造です。削減手法は複数ありますが、どこから手を付けるかは実測なしには決められません。
トークン(Token)とは、言語モデルがテキストを処理する際の最小単位です。単語全体のこともあれば、単語の一部(部分文字列)のこともあります。英語では概ね「1トークン ≈ 4文字(約0.75語)」が目安で、1,000トークンは約750語に相当します(OpenAI公式ドキュメント)。重要なのは日本語の挙動です。技術ブログの実測によると、日本語のトークン消費量は英語の同内容テキストに対して平均2.12倍に達します。これは実測ベースの目安であり、OpenAI・Anthropic・Googleの各公式ドキュメントに数値の明示はありません。ただし「英語以外のテキストは特にトークン消費が多い」とOpenAI公式が明記しており、日本語で運用するシステムのコスト見積もりにはこの係数を織り込む必要があります。
主要3社(OpenAI・Anthropic・Google)のAPIは、概ね以下の4区分でトークンを課金します。
| 区分 | 内容 |
|---|---|
| 入力トークン(Input) | プロンプト+コンテキスト全体。毎回送るので量が積み上がりやすい |
| 出力トークン(Output) | モデルが生成したテキスト。入力より単価が高い傾向(一般に3〜5倍程度) |
| キャッシュ書き込み(Cache write) | 同じプレフィックスを初回キャッシュするときの追加コスト |
| キャッシュヒット(Cache hit) | キャッシュ済みプレフィックスが再利用された場合の大幅割引 |
単価の具体値は陳腐化が早いため各社の最新料金ページを参照してください。構造として押さえるべきは、出力が最も高く、キャッシュヒットが最も安いという相対関係です。
削減手法4選
① モデルの使い分け
同一プロバイダーでも軽量モデル(例: Haiku、GPT-4o mini、Gemini Flash)と高性能モデルの単価差は数倍〜十数倍あります。分類・要約・判定など反復頻度の高い処理を軽量モデルに割り振るだけで、システム全体の費用を大きく抑えられます。複雑な推論が必要な処理だけを高性能モデルに回すルーティング設計が効果的です。
② プロンプトキャッシュ(Prompt Caching)
同じシステムプロンプトや参照文書を繰り返し送信する場合にキャッシュを活用すると、キャッシュヒット時の入力コストが最大90〜97.5%削減されます(OpenAI・Anthropic 公式ドキュメントに記載)。条件は、同じプレフィックスが一定トークン数以上(モデルにより異なる)連続して存在すること。キャッシュを書き込む最初の呼び出しにはやや追加コストが発生するため、同じプレフィックスを複数回使う用途で効果を発揮します。
③ バッチ処理(Batch API)
リアルタイム応答が不要な処理——文書の一括要約、夜間バッチのデータ分析、大量データのラベリングなど——は Batch API を使うと3社とも50%割引が適用されます。OpenAI は24時間以内の処理完了を保証しています。スループットより費用対効果を優先できる処理への適用を最初に検討してください。
④ コンテキスト圧縮(Context Compression)
不要なコンテキストを送らないことが最もシンプルな削減策です。長い会話の途中に「これまでの要約」を挟み、古いターンを削除する手法がOpenAI公式Cookbookで紹介されています。マルチターンのエージェント設計では会話履歴・ツール呼び出し結果・中間状態が積み上がってコンテキストが肥大化しやすいため、意図的な刈り込みが設計に組み込まれているかどうかを確認してください。
削減インパクトの大きさはシステム構成によって異なります。まずtoken countingを実施して、どの区分・どのモデル・どのフローがコストを支配しているかを把握することが先決です。手元の実測なしに最適化に入ると、効果の小さな場所に時間と工数を使うことになります。
参考
- https://help.openai.com/en/articles/4936856-what-are-tokens-and-how-to-count-them
- https://github.com/openai/tiktoken
- https://developers.openai.com/api/docs/guides/prompt-caching
- https://developers.openai.com/api/docs/guides/batch
- https://platform.claude.com/docs/en/docs/build-with-claude/prompt-caching
- https://tonybaloney.github.io/posts/cjk-chinese-japanese-korean-llm-ai-best-practices.html

ORGANIZATION / 2026.09.04
ADOPTION / 2026.09.01
REPORT / 2026.06.30
AGENTS / 2026.08.25
CONNECT / 2026.08.18
ROADMAP / 2026.08.04
NEWS / 2026.07.23
EVALUATION / 2026.07.07
KNOWLEDGE / 2026.06.23
AGENTS / 2026.06.02
OPERATIONS / 2026.05.19