Anthropic’in en son API özelliği olan "prompt caching", geliştiricilerin Claude modelleriyle etkileşimini, tekrarlanan sistem istemleri için gereksiz token ücretlerini ortadan kaldırarak sessizce dönüştürüyor. Üç aylık faturaları analiz eden bir geliştirici, 8 KB sistem isteminin her istekle tam fiyattan faturalandığını ve aynı talimatları içerse de bunun değişmediğini fark etti. Çözüm? Önbelleğe alınmış tokenlar için girdi maliyetlerini yaklaşık %90 oranında azaltan basit bir 10 satırlık kod değişikliği. Bu pratik rehber, bir yıl boyunca üretim kullanımından edinilen dersleri eyleme geçirilebilir adımlara dönüştürüyor.
Neden Prompt Caching, Hızı Feda Etmeden AI Maliyetlerini Düşürür?
Uygulamanız her seferinde Claude API’sine bir istek gönderdiğinde Anthropic, sistem talimatları, araç şemaları ve önceki konuşma geçmişi dahil olmak üzere tüm mesajı baştan kodlar. Tekrarlayan istemlere sahip uygulamalar için bu, aynı statik içeriğin sürekli olarak ücretlendirilmesi anlamına gelir. Prompt caching, belirli içerik bloklarını önbelleğe alınabilir olarak işaretleyerek Anthropic’in o noktaya kadar olan tüm içeriğin kodlanmış durumunu saklamasına olanak tanır. Aynı baytlarla başlayan sonraki istekler yeniden hesaplama yerine önbellekten okunarak token tabanlı faturalandırmayı keskin bir şekilde azaltır.
Önbellek başarısının üç kritik nüansı vardır:
- Ön ek hassasiyeti önemlidir: Önbellek, önekler üzerinde çalışır; sistem isteminde veya araçlarda tek bir token farkı bile bir önbellek hatasına ve tam fiyatlandırmaya yol açar.
- Erişimde TTL sıfırlanır: Her önbellek girişi varsayılan 5 dakikalık bir ömrü vardır ve her okuma ile sıfırlanır, böylece yeniden yazma maliyetlerini tetiklemeden sohbetler canlı tutulur.
- Her istek için dört durak noktası: Önbellek işaretlerini stratejik olarak yerleştirmek, statik içeriği (araçlar, sistem istemleri, RAG belgeleri) katman katman önbelleğe almanıza olanak tanır ve her katmanla önbelleğe alınmış öneki genişletir.
ROI Hesaplama: 5 Dakika 1 Saatten Daha Avantajlı Olduğunda
Prompt caching’in finansal avantajı önbelleğe alınmamış isteklerle önbelleğe alınmış olanları karşılaştırıldığında netleşir. 3 ABD doları/1 milyon girdi tokenı fiyatıyla Claude Sonnet 4.6 kullanılarak beş dakikalık bir pencere içinde 10 istek için maliyetler şu şekilde birikir:
- Önbelleğe alınmamış senaryo: 2.000 token/istek × 10 = Toplam 0,06 ABD doları, 1 milyon token başına 3,00 ABD dolarına eşdeğer.
- 5 dakikalık TTL: İlk istek 1,25 kat fiyatlandırılır (0,0075 ABD doları), sonraki okumalar temel oranın %10’unda (0,0006 ABD doları). Toplam 0,0129 ABD doları veya 1 milyon token başına 0,65 ABD doları olur.
- 1 saatlik TTL: İlk istek 2 kat fiyatlandırılır (0,0120 ABD doları), daha sonraki okumalar 0,0006 ABD doları. Toplam 0,0174 ABD doları veya 1 milyon token başına 0,87 ABD doları olur.
5 dakikalık önbellek ikinci istekten sonra kendini amorti ederken, 1 saatlik versiyon üçüncü istekle kâra geçer. Çağrılar arasında önekin 10 dakikadan fazla kalacağından emin olmadıkça varsayılan olarak 5 dakikalık TTL kullanın. Unutmayın: çıktı token maliyetleri etkilenmez—önbellekleme yalnızca girdi tarafındaki faturalandırmayı etkiler.
Diller Arasında Adım Adım Uygulama
Prompt caching’i benimsemek için minimum kod değişikliği gerekir. Temel kavram, statik istem bölümlerini tanımlamak ve son bloğu cache_control direktifiyle işaretlemektir. TypeScript ve Python’da nasıl çalıştığına bakalım.
TypeScript Örneği: Sistem İstem Optimizasyonu
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic();
const SYSTEM_PROMPT = `You are a TypeScript monorepo code reviewer.
Follow these strict guidelines:
1. Flag TypeScript version mismatches
2. Enforce consistent linting rules
3. Validate import path aliases
[... additional 1,500 tokens of static context ...]`;
async function reviewDiff(diff: string) {
const response = await client.messages.create({
model: "claude-sonnet-4-6",
max_tokens: 1024,
system: [
{
type: "text",
text: SYSTEM_PROMPT,
cache_control: { type: "ephemeral" } // Varsayılan 5 dakikalık TTL
}
],
messages: [{ role: "user", content: diff }]
});
console.log({
cache_creation: response.usage.cache_creation_input_tokens,
cache_read: response.usage.cache_read_input_tokens,
fresh_input_tokens: response.usage.input_tokens
});
}Yapay zeka özeti
Discover how prompt caching in the Claude API can slash your input token bills by up to 90% with just 10 lines of code. Includes TypeScript and Python examples.