AI APIのキャッシュとは?ヒット率80%でも料金が80%下がらない理由
AI APIの利用画面で「キャッシュヒット率80%」を見ると、料金も8割ほど安くなると思うかもしれません。
ところが、入力の80%を再利用できても、合計料金の削減は約51%にとどまるケースがあります。キャッシュから読み取る部分にも料金がかかり、回答を生成する出力側の費用も残るためです。
この記事では、架空の単価でその差を計算します。実際の請求額や実験結果を紹介するものではありません。まずは「何の80%なのか」を分けてみましょう。
キャッシュは、繰り返す入力の処理を再利用する仕組み
AI APIでは、指示や資料などを入力し、モデルが作った回答を受け取ります。この入出力を数える単位がトークンです。文字数と完全には一致しませんが、ここでは料金計算に使う文章の単位と考えれば十分です。基本はトークン数と料金の考え方でも整理しています。
毎回同じ説明や資料を渡す場合、その入力の処理を再利用できる仕組みがプロンプトキャッシュです。長い共通資料を使って何度も質問する場面を考えると、役割をつかみやすいでしょう。
ただし、以前の回答を丸ごと保存して返す「回答の使い回し」とは仕組みが違います。プロンプトキャッシュを利用しても回答はその都度生成され、同じ入力から同じ回答が出る保証もありません。この点はOpenAIの公式説明でも確認できます。
したがって、キャッシュヒット率は正答率を表しません。ヒット率が高いことと、資料に沿った回答ができていることは、それぞれ確認する必要があります。
また、同じ文章をどこかに含めれば必ず再利用されるわけではありません。入力の先頭から共通する部分や設定、モデルごとの条件が関係します。使うAPIの公式説明を確認し、実際に再利用された量を見るのが確実です。
「80%」の分母を確認する
キャッシュヒット率という言葉だけでは、何を数えた割合か分かりません。リクエストの件数を数える場合もあれば、入力トークンの量を数える場合もあります。
この記事では、次の意味で使います。
入力トークンの再利用率 = キャッシュから読み取った入力トークン数 ÷ 入力トークン総数
入力が10,000トークンあり、そのうち8,000トークンを再利用したら80%です。これは「入力のうち、どれだけを再利用できたか」という数字であり、支払額の80%が消えたという意味ではありません。
集計や確認の際は、以下の3点に注意してください。
- リクエスト件数の割合と区別する
10回中8回で一部でもキャッシュが使われた場合、件数ベースでは80%になります。しかし、その8回が短い入力なら、入力全体の再利用量は小さいかもしれません。 - 複数回の集計は「合計同士」で割る
複数回の利用を集計するときは、各回の率を単純に平均せず、「再利用されたトークン数の合計」を「入力総数の合計」で割ります。たとえば、入力1,000の回で100%再利用し、入力9,000の回で0%なら、全体は10%です。各回の率を平均した50%では、長さの差が抜け落ちます。 - APIごとの「入力総数」の定義を確認する
APIによって「入力総数」にキャッシュ分が含まれるか、通常入力と別項目で報告されるかが異なります。数字を足す前に各項目の定義を確認してください。同じ量を二重に数えると、料金の見積もりもずれます。
架空の単価で計算すると、料金は約51%減る
ここからは仕組みを理解するための計算例です。特定サービスの実際の料金ではありません。すべて100万トークンあたりの米ドル単価とします。
- 通常の入力:1ドル
- キャッシュからの読み取り:0.1ドル
- 出力:4ドル
【計算の前提条件】
入力10,000トークン、出力1,000トークンの1回を比べます。キャッシュ利用時は入力のうち8,000を読み取り、残る2,000を通常入力として処理する設定です。
※最初にキャッシュを作る費用、保存費用、別の呼び出しや追加料金は、この比較には含めません。
| 項目 | キャッシュなし | キャッシュあり(入力の80%を再利用) |
|---|---|---|
| 通常入力 | 10,000 ÷ 1,000,000 × 1 = 0.01ドル | 2,000 ÷ 1,000,000 × 1 = 0.002ドル |
| キャッシュ読み取り | なし(0ドル) | 8,000 ÷ 1,000,000 × 0.1 = 0.0008ドル |
| 出力 | 1,000 ÷ 1,000,000 × 4 = 0.004ドル | 1,000 ÷ 1,000,000 × 4 = 0.004ドル |
| 合計 | 0.014ドル | 0.0068ドル |
差額は0.0072ドルです。元の0.014ドルで割ると、削減率は約51.4%になります。
入力だけを見ると、0.01ドルから0.0028ドルへ72%減っています。それでも80%には届きません。再利用した8,000トークンにも読み取り料金があるからです。さらに出力料金を足すと、合計の削減率は約51%になります。
同じ80%の再利用率でも、出力が長い仕事と短い仕事では合計料金への効き方が変わります。比較する際は、入力と出力の量、使ったモデルをそろえましょう。
実際の節約額を見るときに足すもの
先ほどの例は、すでに使えるキャッシュがある1回だけを切り取っています。月の費用を見積もるなら、その前後も含める必要があります。
1. キャッシュを作る書き込みの費用
読み取り単価が安くても、作成時の扱いまで同じとは限りません。Claudeの公式資料では、書き込みと読み取りを分けた料金体系が示されています。サービス名だけで一律に考えず、使うモデルと設定に対応する料金を確認してください。
2. 有効期間(TTL)と保存費用
再利用したいときに有効期限(TTLと書かれることがあります)が切れていれば、想定した読み取りができない場合があります。保存時間に応じた費用がある方式なら、その費用も加えます。書き込みや保存の料金が、すべての方式で同じように発生するわけではありません。
3. サービスやモデルごとの設定方法の違い
設定方法も共通ではありません。たとえばGemini APIの公式資料には、暗黙的なキャッシュと、API・モデルによる対応範囲の違いが案内されています。他サービス向けの記事の設定を、そのまま当てはめないようにしましょう。
4. 出力・再試行・ツール利用に伴う追加呼び出し
利用者には1回の質問に見えても、裏側で再試行やツール利用のために複数回APIを呼んでいれば、その分の出力や追加呼び出しの費用も確認が必要です。
利用量と費用を確認する際の注意点
効果を確かめるときは、再利用率だけでなく、同じ条件の処理1件あたりの合計費用を記録すると判断しやすくなります。API料金の概算ツールは基本の入出力を見積もる参考になりますが、キャッシュを含む計算には対応していないため、そのまま節約額の検証には使えません。
また、利用量の欄が「0」なら、まずその項目が何を表すか確認します。項目自体が取得できていない場合やログに残っていない場合は、0として補わず「不明」として扱いましょう。観測できていない数字から、キャッシュが効いていないと断定することはできません。
キャッシュでどれだけ安くなったかを知るには、「再利用した入力の割合」と「必要な費用を足した合計」を並べて見ます。ヒット率80%という数字を見かけたら、まず分母を確認し、次に出力と書き込みなどの費用を確認する。この順番なら、見かけの割合に引っ張られずに判断できます。
参照した公式資料
- OpenAI:Prompt caching ↗
- Claude:Prompt caching ↗
- Gemini API:Context caching ↗
- Gemini Generate Content API:キャッシュの保存費用 ↗
確認日:2026年10月15日。計算例の単価は架空の設定です。キャッシュの料金・設定方法・対応範囲は、利用するモデルとAPIの公式資料で確認してください。