【Gemini Context Caching】長文ドキュメント・大量コード読み込み時のトークンコストを75%削減する実装法 アイキャッチ

Icons: Lobe Icons(MIT)

マニュアル
公開: 2026.09.02更新: 2026.09.03読了目安 7分

【Gemini Context Caching】長文ドキュメント・大量コード読み込み時のトークンコストを75%削減する実装法

Google Gemini API(Gemini 2.5 / 3.7 Flash)のコンテキストキャッシング(Context Caching)機能を活用し、巨大なコードベースや仕様書を何度も読み込む際の課金とレイテンシを激減させる実装法を解説します。

はじめに:固定プロンプトの再利用による課金爆発を防ぐ

Gemini 3.7 Flash / 3.8 Flash は最大200万トークンという広大なコンテキストウィンドウを持っていますが、巨大なソースコードや数万行の自治体データ・仕様書を毎回リクエストに含めて送信すると、莫大なトークン費用と通信待ち時間が発生します。

Google Geminiが提供する「Context Caching(コンテキストキャッシング)」機能を使用すると、事前にアップロードした巨大データをサーバー側でキャッシュし、キャッシュヒット時の入力トークン料金を75%割引、かつ応答速度を大幅に短縮できます。


1. Context Caching の料金と仕様

項目 通常リクエスト キャッシュ利用時
入力トークン単価 100% (標準料金) 25% (75% OFF)
最小キャッシュサイズ なし 32,768 トークン以上
キャッシュ保持費用 なし 1時間あたり極小のストレージ料金
TTL (有効期限) デフォルト1時間(延長可能)

2. Python SDK による実装例

import os
import google.generativeai as genai
from google.generativeai import caching
import datetime

genai.configure(api_key=os.environ["GEMINI_API_KEY"])

# 1. 巨大なドキュメントやコードベースのテキストを読み込み
with open("large_codebase_dump.txt", "r", encoding="utf-8") as f:
    huge_content = f.read()

# 2. キャッシュの作成 (有効期限: 2時間)
cache = caching.CachedContent.create(
    model="models/gemini-3.7-flash",
    display_name="codebase_cache_v2",
    contents=[huge_content],
    ttl=datetime.timedelta(hours=2)
)
print(f"Created cache: {cache.name}, expires at: {cache.expire_time}")

# 3. キャッシュを参照して推論を実行
model = genai.GenerativeModel.from_cached_content(cached_content=cache)

# 質問1 (高速・75%割引)
res1 = model.generate_content("認証モジュールのアーキテクチャ概要を説明してください。")
print("Response 1:", res1.text)

# 質問2 (高速・75%割引)
res2 = model.generate_content("データベース接続プールで発生しうるボトルネックは?")
print("Response 2:", res2.text)

社内ナレッジベースや大規模コードレビューの定期実行において、劇的なコストパフォーマンス向上をもたらす必須技術です。