Gemini Context Cachingを使えば、大量のコンテキストをキャッシュしてAPIコストを大幅に削減できます。仕組みと実装を解説します。

AIを知りたい
Gemini APIにもキャッシュ機能があるって聞いたんですが、Claudeのとは違うんですか?

AIエンジニア
GeminiにはContext Cachingという機能があります。Claudeのプロンプトキャッシュと似たコンセプトですが、実装方法が異なります。

AIを知りたい
どう違うんですか?

AIエンジニア
Geminiの場合は明示的にキャッシュを作成して名前を付けて管理できます。有効期限も柔軟に設定可能です。
Context Cachingとは
Context Cachingは、Google Gemini APIの機能で、大量のコンテキスト(テキスト、画像、動画など)をキャッシュとして保存し、複数のリクエストで再利用できる仕組みです。特にマルチモーダルなコンテンツを繰り返し参照する場合に大幅なコスト削減と高速化を実現します。
Context Cachingの基本的な使い方

AIを知りたい
実際にどうやって使うんですか?

AIエンジニア
Pythonでの実装例を見てみましょう。
import google.generativeai as genai
import datetime
genai.configure(api_key="YOUR_API_KEY")
# キャッシュの作成
cache = genai.caching.CachedContent.create(
model="gemini-1.5-pro",
display_name="技術ドキュメント",
system_instruction="以下のドキュメントを参照して回答してください。",
contents=[
"大量の技術ドキュメントの内容をここに..."
],
ttl=datetime.timedelta(hours=1)
)
# キャッシュを使ってモデルを作成
model = genai.GenerativeModel.from_cached_content(cache)
# 複数のクエリでキャッシュを再利用
response1 = model.generate_content("APIの使い方を教えて")
response2 = model.generate_content("エラーハンドリングについて教えて")
Claude Prompt CachingとGemini Context Cachingの比較

AIを知りたい
ClaudeとGeminiのキャッシュ機能の違いを教えてください!

AIエンジニア
特徴をまとめて比較しましょう。
| 項目 | Claude Prompt Caching | Gemini Context Caching |
|---|---|---|
| 作成方法 | リクエスト内でcache_controlを指定 | 明示的にキャッシュオブジェクトを作成 |
| 有効期限 | 最終使用から5分 | カスタム設定可能(分〜時間) |
| 対応コンテンツ | テキスト | テキスト・画像・動画・音声 |
| コスト削減率 | 最大90% | 最大75% |
| 最小トークン数 | 1024トークン | 32,768トークン |
| 管理方法 | 自動(暗黙的) | 明示的(一覧・削除可能) |
マルチモーダルキャッシュの活用

AIを知りたい
動画もキャッシュできるんですか?

AIエンジニア
はい!Geminiの大きな強みはマルチモーダルコンテンツのキャッシュです。長時間の動画を一度キャッシュすれば、その内容について何度でも質問できます。
# 動画コンテンツのキャッシュ
video_file = genai.upload_file("training_video.mp4")
cache = genai.caching.CachedContent.create(
model="gemini-1.5-pro",
display_name="トレーニング動画",
contents=[video_file],
ttl=datetime.timedelta(hours=2)
)
model = genai.GenerativeModel.from_cached_content(cache)
response = model.generate_content("この動画の要約を作成して")
コスト最適化のポイント

AIを知りたい
どういうときにキャッシュを使うべきですか?

AIエンジニア
コスト対効果を考えて判断しましょう。
| ユースケース | 推奨度 | 理由 |
|---|---|---|
| 大量ドキュメントへの複数質問 | ★★★ | キャッシュのコスト回収が容易 |
| 動画・音声分析の繰り返し | ★★★ | アップロード時間も節約 |
| チャットボットの固定知識 | ★★☆ | TTL管理が必要 |
| 一回限りの質問 | ★☆☆ | キャッシュ作成コストが無駄 |

AIを知りたい
使い分けが大事なんですね!

AIエンジニア
その通りです。繰り返し同じコンテキストを使う場合にキャッシュは絶大な効果を発揮します。プロジェクトの特性に合わせて選択してください!
関連記事
- Claude Prompt Caching入門:APIコストを90%削減する方法
- Gemini API入門:Google AIモデルをプログラムから活用する方法
- Gemini Flash完全ガイド:無料で使える高速AIモデルの活用法
Gemini Context Cachingに関するよくある質問
- Q1. キャッシュの有効期限は?
- デフォルトの有効期限(TTL)は1時間で、作成時に最短1分から最長24時間まで任意に設定できます。また、明示的な有効期限の代わりに
expire_timeで絶対時刻を指定することも可能です。期限切れ後はキャッシュが自動削除され、再度同じコンテキストを使う場合はキャッシュを再作成する必要があります。 - Q2. コスト削減効果は?
- キャッシュされたトークンの入力料金は、通常の入力トークン料金の約25%に割引されます。例えば100,000トークンのドキュメントを10回の会話で参照する場合、キャッシュなしでは100万トークン分の入力料金がかかりますが、キャッシュ利用時は初回の10万トークン+9回分の割引料金で済み、約75%のコスト削減が見込めます。ただし、キャッシュの保存自体にも時間あたりの料金が発生する点に注意が必要です。
- Q3. 対応モデルは?
- Context CachingはGemini 1.5 Flash、Gemini 1.5 Pro、およびGemini 2.0以降のモデルで利用可能です。キャッシュに含めるコンテンツは最低32,768トークン以上である必要があり、テキスト・画像・音声・動画など各モダリティのデータをキャッシュできます。短いプロンプトのキャッシュは対象外のため、長大なドキュメントやコードベースの繰り返し参照に最適です。
