Caching
Das Zwischenspeichern von häufig angefragten Daten oder Berechnungsergebnissen, um wiederholte Anfragen schneller und günstiger zu beantworten.
Eine Optimierungstechnik bei LLM-APIs, bei der wiederkehrende Teile eines Prompts (z.B. System-Prompts oder lange Dokumente) gecacht werden, um Latenz und Kosten zu reduzieren.
Prompt Caching löst ein konkretes Kostenproblem bei LLM-Anwendungen: Viele Anfragen teilen denselben langen Kontext – einen ausführlichen System-Prompt, ein Dokument, das analysiert werden soll, oder eine umfangreiche Sammlung von Beispielen. Ohne Caching muss das Modell diesen Kontext bei jeder Anfrage neu verarbeiten und berechnet ihn als Input-Tokens.
Mit Prompt Caching wird der verarbeitete Kontext zwischengespeichert. Folge-Anfragen, die denselben Kontext nutzen, zahlen nur einen Bruchteil der normalen Token-Kosten – bei Anthropic 10% statt 100%. Bei einem System-Prompt mit 50.000 Tokens und hunderten täglichen Anfragen ist das ein erheblicher Kostenvorteil.
Wann Prompt Caching besonders lohnt:
- System-Prompts mit mehr als 1.000 Tokens
- Dokument-Analyse mit vielen Fragen zum selben Dokument
- RAG-Systeme, die dieselben Chunks häufig abrufen
- Chatbots mit langer Konversationshistorie als Kontext
import anthropic
client = anthropic.Anthropic()
response = client.messages.create(
model="claude-3-5-sonnet-20241022",
max_tokens=1024,
system=[
{
"type": "text",
"text": "Du bist ein hilfreicher Assistent...",
},
{
"type": "text",
"text": "<sehr_langes_dokument>...</sehr_langes_dokument>",
"cache_control": {"type": "ephemeral"} # Dieser Teil wird gecacht
}
],
messages=[{"role": "user", "content": "Fasse das Dokument zusammen."}]
)
# Bei der nächsten Anfrage mit demselben Dokument:
# → Cache Hit: 90% Kostenersparnis für den Dokument-Teil
print(response.usage.cache_read_input_tokens) # Tokens aus Cache
print(response.usage.cache_creation_input_tokens) # Tokens zum Cache hinzugefügt
OpenAI cached automatisch – keine Code-Änderungen nötig:
# Normaler API-Aufruf – OpenAI cached automatisch bei >1024 Tokens
response = client.chat.completions.create(
model="gpt-5",
messages=[
{"role": "system", "content": langer_system_prompt}, # Wird automatisch gecacht
{"role": "user", "content": "Neue Frage"}
]
)
# Kosten-Check
print(response.usage.prompt_tokens_details.cached_tokens)
| Szenario | Ohne Caching | Mit Caching | Ersparnis |
|---|---|---|---|
| 10k Token System-Prompt, 100 Anfragen | 1.000.000 Input-Tokens | 100.000 Input-Tokens | 90% |
| 50k Token Dokument, 50 Fragen | 2.500.000 Input-Tokens | 250.000 Input-Tokens | 90% |
| 1k Token System-Prompt | Kein Caching sinnvoll | – | – |
Prompt Caching ist wie ein Buch, das du dem Modell einmal gibst und es sich merkt: Statt bei jeder Frage das gesamte Buch erneut zu lesen, erinnert sich das Modell an den Inhalt und beantwortet nur die neue Frage.
Spart bis zu 90% der Token-Kosten für wiederkehrende Prompt-Teile
Reduziert Latenz bei langen System-Prompts und Dokumenten erheblich
Unterstützt von Anthropic Claude und OpenAI GPT-5
Lange System-Prompts
Umfangreiche Instruktionen einmal cachen statt bei jeder Anfrage zu senden
Dokument-Analyse
Ein langes Dokument cachen und viele Fragen dazu stellen
Few-Shot-Beispiele
Umfangreiche Beispiel-Sammlungen cachen für konsistente Outputs
RAG-Kontext
Abgerufene Dokumente cachen wenn dieselben Chunks mehrfach genutzt werden
Bei Anthropic kostet ein Cache-Hit 10% des normalen Input-Token-Preises. Bei einem System-Prompt mit 10.000 Tokens spart man 90% der Kosten für diesen Teil. Bei vielen Anfragen mit demselben langen Kontext kann das erheblich sein.
Bei Anthropic: 5 Minuten nach dem letzten Zugriff (wird bei jedem Hit erneuert). Bei OpenAI: automatisch, Dauer nicht öffentlich spezifiziert. Caches sind nicht dauerhaft – bei Inaktivität verfallen sie.
Bei Anthropic markierst du Prompt-Teile mit cache_control: {type: 'ephemeral'}. Bei OpenAI passiert es automatisch für Prompts über 1024 Tokens. Du musst nicht manuell invalidieren – der Cache verfällt automatisch.