İçeriğe geç

Gemini Context Caching: Storage Fee + Read Fee Modeli ve Düşük-Trafik Avantajı

Gemini'nin caching pricing'i unique: cache create normal, sonra **$1/M token/saat storage fee** + 0.25× read fee. Düşük-trafik düşük-frequency senaryolarında Anthropic'ten ekonomik olabilir.

Şükrü Yusuf KAYA
16 dakikalık okuma
Orta
Gemini Context Caching: Storage Fee + Read Fee Modeli ve Düşük-Trafik Avantajı
🟦 Gemini'nin alternatif modeli
Google, prompt caching'i farklı bir paradigmayla yapıyor: "Cache'i sen yaratıp manage edersin, ama her saat kira ödersin." Bu, bazı senaryolarda Anthropic'ten ekonomik.

Gemini Cache Pricing (Mayıs 2026)#

İşlemMaliyet
Cache createStandart input fiyatı (1×) — zam yok
Storage$1.00/M token/saat
Cache read0.25× normal input

Gemini 2.5 Pro örnek#

  • Standart input: $1.25/M
  • Cache create: $1.25/M (no surcharge ✅)
  • Storage: $1/M/saat
  • Cache read: $0.3125/M
Anthropic Sonnet 4.6 ile karşılaştırma:
ModelWriteReadStorage
Sonnet 4.6 (1h TTL)$6.00/M (2×)$0.30/M— (TTL'de dahil)
Gemini 2.5 Pro (1h)$1.25/M$0.3125/M1/M/saat=1/M/saat = 1/M
Total Gemini 1h: 1.25 + 1 = 2.25/M,sonraread2.25/M, sonra read 0.31. Anthropic 1h: 6write,read6 write, read 0.30.
Yüksek-trafik: Anthropic write maliyeti amortize olur, daha ucuza geliyor. Düşük-trafik: Gemini write ucuz, storage 1 saatlik fixed — Anthropic'ten ekonomik olabilir.

TTL Kontrolü — Gemini'nin Esnekliği#

Gemini'de TTL'i sen seçiyorsun:
from google import genai cache = client.caches.create( model="gemini-2.5-pro", config={ "contents": [{"role": "user", "parts": [{"text": LARGE_CONTEXT}]}], "system_instruction": SYSTEM_PROMPT, "tools": tools, "ttl": "3600s", # 1 hour, ya da "300s" 5 dakika, ya da daha uzun }, ) # Sonra cache'i kullanarak çağrı yap response = client.models.generate_content( model="gemini-2.5-pro", contents="User question here", config={"cached_content": cache.name}, )

TTL Stratejisi#

TTL'i ne kadar tutmalı?
TTL × $1/M/saat = storage maliyet/M token 5 dakika = ~$0.083/M (storage minimal) 30 dakika = $0.50/M 1 saat = $1.00/M (1× normal input) 2 saat = $2.00/M (2× normal input!)
Storage 1 saatlik break-even noktası. Daha uzun TTL pahalı — write'ı minimize ediyorsun ama storage bedeli büyüyor.

Karar formülü#

Optimal TTL ≈ İki ardışık istek arası beklenen süre Beklenen süre 3dk → TTL 5dk yeterli (storage çok az) Beklenen süre 30dk → TTL 30-60dk Beklenen süre 2 saat → Cache değmez, normal kullan

Use Case'lere Göre Cache Karşılaştırma#

Use Case 1 — Yüksek-trafik chatbot (100K req/saat aynı prefix)#

SağlayıcıYöntemAylık maliyet (10K input/req)
Anthropic 5dkCache write her 5dk, read sonra$4.500
OpenAI autoOtomatik 5-10dk$5.200
Gemini 1h1h cache + 100K read$8.000
Yüksek-trafik: Anthropic veya OpenAI kazanıyor.

Use Case 2 — Orta-trafik (1K req/saat)#

SağlayıcıAylık
Anthropic 1h$1.200
OpenAI auto$1.400 (cache TTL kısıt için daha kötü)
Gemini 1h$1.100
Orta-trafik: Gemini'nin esnekliği avantaj.

Use Case 3 — Düşük-trafik B2B (50 req/saat)#

SağlayıcıAylık
Anthropic 1h$480 (write maliyeti yüksek)
OpenAI auto$620
Gemini 30dk$320
Düşük-trafik: Gemini açık ara önde.

Pratik Implementasyon#

from google import genai from google.genai.types import CreateCachedContentConfig client = genai.Client() # Şirket için tek bir cache oluştur (uzun TTL) def create_company_cache(system_instruction: str, knowledge_base: str): cache = client.caches.create( model="gemini-2.5-pro", config=CreateCachedContentConfig( system_instruction=system_instruction, contents=[{ "role": "user", "parts": [{"text": knowledge_base}], }], ttl="3600s", # 1 saat display_name="company-faq-cache", ), ) return cache.name # caches/abc123... # Cache'i kullanan request'ler def cached_chat(user_query: str, cache_name: str): response = client.models.generate_content( model="gemini-2.5-pro", contents=user_query, config={ "cached_content": cache_name, "max_output_tokens": 500, }, ) return response # Production pattern COMPANY_CACHE = create_company_cache(SYSTEM, KNOWLEDGE_BASE) # 1 saatlik validity. Cron job ile her 50 dakikada bir refresh.

Sınırlamalar#

1. Min cache size — 4096 token#

Anthropic min 1024'ten daha yüksek. Küçük prompt'lar cache'lenemez.

2. Max cache size — 2M token#

Gemini'nin 2M context limit'i ile aynı. Pratik sınırsız.

3. Cache invalidation otomatik değil#

TTL süresinden önce cache'i değiştirmek istersen, explicit silmen lazım:
client.caches.delete(name=cache_name)
Yenisini yarat. Hash-based otomatik invalidation yok Anthropic'in aksine.

4. Tek-cache her seferde#

Multi-breakpoint Anthropic'tekiniden farklı. Eğer 3 katmanlı cache istiyorsan, Gemini'de tek cache'te birleştirip yönetmek zorundasın.

5. Vertex AI'da farklılık#

Vertex'te
cachedContent
desteklenir ama pricing biraz farklı. Vertex enterprise tier'a göre değişir.

Karar Özeti — 2026 Cache Strateji Matrisi#

SenaryoEn İyi
Yüksek-trafik (100+ req/dk) aynı prefixAnthropic 5dk
Orta-trafik (10-100 req/dk)Anthropic 1h, Gemini 1h yakın
Düşük-trafik (<10 req/dk)Gemini esnek TTL
OpenAI ekosistemOpenAI automatic (zero-effort)
Multi-layer cache gerekliAnthropic (4 breakpoint)
Maliyet kontrolü kritikAnthropic (%90 indirim)
Hızlı POCOpenAI automatic
Bu kursta Anthropic'i en çok kullanma sebebi yukarıdaki tabloda netçe görülüyor: Türkiye'deki tipik B2B SaaS yüksek-trafik + Türkçe + multi-layer ihtiyacı = Anthropic sweet spot.
▶️ Sıradaki ders
7.4 — Cache-Friendly Mimari: Statik Baş, Dinamik Kuyruk. Pattern level: prompt'unu hangi sırayla yazsan cache hit ratio'yu maksimize edersin? Conversation history, RAG chunks, tool definitions — hangisi nereye gelir?

Sık Sorulan Sorular

Iki opsiyon: (1) Cache TTL'in bitmesine yakın yeni cache yarat (rolling), (2) Her gerektiğinde lazy refresh. Yüksek-traffic'te rolling daha iyi (TTL kayb olmasın), düşük-traffic'te lazy daha verimli.

Yorumlar & Soru-Cevap

(0)
Yorum yazmak için giriş yap.
Yorumlar yükleniyor...

İlgili İçerikler