cache_control hinzugefügt haben, erstellt die erste Anfrage einen Cache und nachfolgende Anfragen können den noch gültigen Cache lesen.
Legen Sie zunächst Ihren API-Schlüssel fest:
Die Beispiele in diesem Leitfaden verwenden
claude-sonnet-5. Ob andere Modelle Context Cache unterstützen, erfahren Sie in der Modelldokumentation der Plattform.Anwendungsfälle
Wenn mehrere Anfragen wiederholt dieselben umfangreichen Inhalte enthalten, können Sie einen stabilen Präfix zwischenspeichern, zum Beispiel:- Einen langen System-Prompt
- Eine feste Wissensdatenbank oder Produktdokumentation
- Einen unveränderten Gesprächsverlauf aus mehreren Dialogrunden
- Wiederverwendete Codebasen, Tool-Definitionen und Anweisungen
Claude Messages API
5-Minuten-Cache
Fügen Siecache_control zu dem Inhaltsblock hinzu, der zwischengespeichert werden soll:
ttl weggelassen wird, beträgt die Cache-Gültigkeitsdauer standardmäßig 5 Minuten.
1-Stunden-Cache
Für einen 1-Stunden-Cache müssen Sie zusätzlich den Anfrage-Headeranthropic-beta senden und ttl auf 1h setzen:
Felder zur Nutzung in der Antwort
Die Claude Messages API gibt gewöhnliche Eingabe-, Cache-Schreib- und Cache-Lese-Token getrennt im Objektusage zurück:
cache_creation_input_tokens > 0; wenn Sie denselben stabilen Präfix erneut senden, sollte cache_read_input_tokens > 0 sein.
OpenAI-kompatible API
Anfragebeispiel
Bei der Verwendung des Caches über/v1/chat/completions wird cache_control ähnlich wie bei der Claude Messages API angegeben:
1-Stunden-Cache
Das OpenAI-kompatible Format unterstützt ebenfalls einen 1-Stunden-Cache. Fügen Sie einfach den Anfrage-Headeranthropic-beta hinzu und setzen Sie in cache_control den Wert ttl: "1h":
content muss ein Array sein
Im OpenAI-kompatiblen Format muss cache_control innerhalb eines konkreten Inhaltsblocks stehen. Es kann nicht an eine Nachricht mit String-Inhalt angehängt werden.
user- oder assistant-Inhaltsblöcke zwischenspeichern
Sie können cache_control auch in einem Inhaltsblock einer user- oder assistant-Nachricht platzieren, um lange Dokumente oder einen Präfix aus mehreren Dialogrunden zwischenzuspeichern:
cache_control nur dem stabilen Inhaltsblock hinzu.
Felder zur Nutzung in der Antwort
Das OpenAI-kompatible Format meldet die Cache-Nutzung über andere Felder:Wenn
prompt_tokens_details.cache_write_tokens den Wert 0 hat, prüfen Sie trotzdem claude_cache_creation_5_m_tokens und claude_cache_creation_1_h_tokens. Wenn Felder mit TTL-Aufschlüsselung vorhanden sind, wird die Cache-Schreibmenge über das entsprechende Feld zurückgegeben.In
claude_cache_creation_5_m_tokens und claude_cache_creation_1_h_tokens stehen Unterstriche zwischen der Zahl und der Einheit. Verwenden Sie die Feldnamen genau so, wie sie in der Antwort zurückgegeben werden.Bedingungen für einen Cache-Treffer
Der Präfix erreicht die Mindestlänge
Der Cache-Präfix des Beispielmodells muss in der Regel mindestens etwa 1024 Token umfassen. Bei einem kürzeren Präfix kann die Cache-Markierung ohne Fehlermeldung ignoriert werden.Der Präfix bleibt bytegenau identisch
Text, Leerzeichen, Zeilenumbrüche und die Reihenfolge der Inhaltsblöcke im Cache-Präfix müssen unverändert bleiben. Fügen Sie dem stabilen Präfix keine dynamischen Inhalte wie Zeitstempel, zufällige IDs oder Anfragezähler hinzu.Die Anfrage hat keine Modellablehnung ausgelöst
Wenn die Anfrage eine Modellablehnung auslöst, kann die Antwort dennoch Cache-Erstellungs-Token melden, der Cache wird bei der nächsten Anfrage jedoch nicht gelesen. Prüfen Sie bei der Fehlersuche nach ausbleibenden Cache-Treffern auch, obstop_reason den Wert refusal hat.
Der Cache ist noch gültig
Die Cache-Gültigkeitsdauer beträgt 5 Minuten oder 1 Stunde und wird ab dem letzten Zugriff berechnet. Ein Cache-Treffer erneuert die Gültigkeitsdauer.Abrechnungsnutzung
Die Cache-bezogene Nutzung wird in drei Kategorien unterteilt:
Die drei Nutzungskategorien überschneiden sich nicht. Cache-Schreibvorgänge kosten in der Regel mehr als gewöhnliche Eingaben, während Cache-Lesevorgänge in der Regel weniger kosten. Context Cache eignet sich daher besonders für stabile Präfixe, die innerhalb der TTL wiederverwendet werden.
Minimales reproduzierbares Beispiel
Das folgende Skript erzeugt zunächst einen ausreichend langen stabilen Präfix und sendet anschließend dieselbe Anfrage zweimal. In der zweiten Antwort solltecache_read_input_tokens > 0 erscheinen.
Checkliste zur Fehlerbehebung
Wenn der Cache nicht getroffen wird, prüfen Sie die folgenden Punkte in dieser Reihenfolge:- Hat
stop_reasonden Wertrefusal? - Erreicht der Cache-Präfix die für das Modell erforderliche Mindestanzahl an Token?
- Sind die stabilen Präfixe der beiden Anfragen bytegenau identisch?
- Ist
contentim OpenAI-kompatiblen Format ein Array? - Befindet sich
cache_controlin einem konkreten Inhaltsblock? - Sind für einen 1-Stunden-Cache sowohl
ttl: "1h"als auch der entsprechendeanthropic-beta-Header festgelegt? - Ist die TTL des Caches bereits abgelaufen?
- Lesen Sie die Cache-Nutzungsfelder der verwendeten API aus?