cache_control
-Blocks implementieren:
cache_control
-Parameter zwischengespeichert. Dies ermöglicht die Wiederverwendung dieses großen Textes über mehrere API-Aufrufe hinweg, ohne ihn jedes Mal neu zu verarbeiten. Wenn Sie nur die Benutzernachricht ändern, können Sie verschiedene Fragen zum Buch stellen, während Sie den zwischengespeicherten Inhalt nutzen, was zu schnelleren Antworten und verbesserter Effizienz führt.
Wie Prompt-Caching funktioniert
Wenn Sie eine Anfrage mit aktiviertem Prompt-Caching senden:- Das System prüft, ob ein Prompt-Präfix bis zu einem bestimmten Cache-Breakpoint bereits aus einer kürzlichen Abfrage zwischengespeichert ist.
- Falls gefunden, verwendet es die zwischengespeicherte Version, wodurch Verarbeitungszeit und Kosten reduziert werden.
- Andernfalls verarbeitet es den vollständigen Prompt und speichert den Präfix zwischen, sobald die Antwort beginnt.
- Prompts mit vielen Beispielen
- Große Mengen an Kontext oder Hintergrundinformationen
- Repetitive Aufgaben mit konsistenten Anweisungen
- Lange mehrteilige Gespräche
tools
, system
und messages
(in dieser Reihenfolge) bis einschließlich des mit cache_control
bezeichneten Blocks.Preisgestaltung
Prompt-Caching führt eine neue Preisstruktur ein. Die folgende Tabelle zeigt den Preis pro Million Token für jedes unterstützte Modell:Model | Base Input Tokens | 5m Cache Writes | 1h Cache Writes | Cache Hits & Refreshes | Output Tokens |
---|---|---|---|---|---|
Claude Opus 4.1 | $15 / MTok | $18.75 / MTok | $30 / MTok | $1.50 / MTok | $75 / MTok |
Claude Opus 4 | $15 / MTok | $18.75 / MTok | $30 / MTok | $1.50 / MTok | $75 / MTok |
Claude Sonnet 4 | $3 / MTok | $3.75 / MTok | $6 / MTok | $0.30 / MTok | $15 / MTok |
Claude Sonnet 3.7 | $3 / MTok | $3.75 / MTok | $6 / MTok | $0.30 / MTok | $15 / MTok |
Claude Sonnet 3.5 (deprecated) | $3 / MTok | $3.75 / MTok | $6 / MTok | $0.30 / MTok | $15 / MTok |
Claude Haiku 3.5 | $0.80 / MTok | $1 / MTok | $1.6 / MTok | $0.08 / MTok | $4 / MTok |
Claude Opus 3 (deprecated) | $15 / MTok | $18.75 / MTok | $30 / MTok | $1.50 / MTok | $75 / MTok |
Claude Haiku 3 | $0.25 / MTok | $0.30 / MTok | $0.50 / MTok | $0.03 / MTok | $1.25 / MTok |
- 5-Minuten-Cache-Schreibtoken kosten das 1,25-fache des Basis-Eingabetoken-Preises
- 1-Stunden-Cache-Schreibtoken kosten das 2-fache des Basis-Eingabetoken-Preises
- Cache-Lesetoken kosten das 0,1-fache des Basis-Eingabetoken-Preises
Wie man Prompt-Caching implementiert
Unterstützte Modelle
Prompt-Caching wird derzeit unterstützt auf:- Claude Opus 4.1
- Claude Opus 4
- Claude Sonnet 4
- Claude Sonnet 3.7
- Claude Sonnet 3.5 (veraltet)
- Claude Haiku 3.5
- Claude Haiku 3
- Claude Opus 3 (veraltet)
Strukturierung Ihres Prompts
Platzieren Sie statischen Inhalt (Tool-Definitionen, Systemanweisungen, Kontext, Beispiele) am Anfang Ihres Prompts. Markieren Sie das Ende des wiederverwendbaren Inhalts für das Caching mit demcache_control
-Parameter.
Cache-Präfixe werden in der folgenden Reihenfolge erstellt: tools
, system
, dann messages
. Diese Reihenfolge bildet eine Hierarchie, in der jede Ebene auf den vorherigen aufbaut.
Wie die automatische Präfix-Überprüfung funktioniert
Sie können nur einen Cache-Breakpoint am Ende Ihres statischen Inhalts verwenden, und das System findet automatisch den längsten übereinstimmenden Präfix. So funktioniert es:- Wenn Sie einen
cache_control
-Breakpoint hinzufügen, überprüft das System automatisch Cache-Treffer an allen vorherigen Inhaltsblock-Grenzen (bis zu etwa 20 Blöcke vor Ihrem expliziten Breakpoint) - Wenn eine dieser vorherigen Positionen mit zwischengespeichertem Inhalt aus früheren Anfragen übereinstimmt, verwendet das System den längsten übereinstimmenden Präfix
- Das bedeutet, Sie benötigen nicht mehrere Breakpoints nur um Caching zu ermöglichen - einer am Ende ist ausreichend
Wann mehrere Breakpoints verwendet werden sollten
Sie können bis zu 4 Cache-Breakpoints definieren, wenn Sie möchten:- Verschiedene Abschnitte zwischenspeichern, die sich mit unterschiedlichen Häufigkeiten ändern (z.B. Tools ändern sich selten, aber Kontext wird täglich aktualisiert)
- Mehr Kontrolle darüber haben, was genau zwischengespeichert wird
- Caching für Inhalte sicherstellen, die mehr als 20 Blöcke vor Ihrem finalen Breakpoint liegen
Cache-Einschränkungen
Die minimale zwischenspeicherbare Prompt-Länge beträgt:- 1024 Token für Claude Opus 4.1, Claude Opus 4, Claude Sonnet 4, Claude Sonnet 3.7, Claude Sonnet 3.5 (veraltet) und Claude Opus 3 (veraltet)
- 2048 Token für Claude Haiku 3.5 und Claude Haiku 3
cache_control
markiert sind. Alle Anfragen zum Zwischenspeichern von weniger als dieser Anzahl von Token werden ohne Caching verarbeitet. Um zu sehen, ob ein Prompt zwischengespeichert wurde, siehe die Antwort-Nutzungs-Felder.
Für gleichzeitige Anfragen beachten Sie, dass ein Cache-Eintrag erst verfügbar wird, nachdem die erste Antwort beginnt. Wenn Sie Cache-Treffer für parallele Anfragen benötigen, warten Sie auf die erste Antwort, bevor Sie nachfolgende Anfragen senden.
Derzeit ist “ephemeral” der einzige unterstützte Cache-Typ, der standardmäßig eine 5-Minuten-Lebensdauer hat.
Verstehen der Cache-Breakpoint-Kosten
Cache-Breakpoints selbst fügen keine Kosten hinzu. Sie werden nur belastet für:- Cache-Schreibvorgänge: Wenn neuer Inhalt in den Cache geschrieben wird (25% mehr als Basis-Eingabetoken für 5-Minuten-TTL)
- Cache-Lesevorgänge: Wenn zwischengespeicherter Inhalt verwendet wird (10% des Basis-Eingabetoken-Preises)
- Reguläre Eingabetoken: Für jeden nicht zwischengespeicherten Inhalt
cache_control
-Breakpoints erhöht Ihre Kosten nicht - Sie zahlen immer noch den gleichen Betrag basierend darauf, welcher Inhalt tatsächlich zwischengespeichert und gelesen wird. Die Breakpoints geben Ihnen einfach Kontrolle darüber, welche Abschnitte unabhängig zwischengespeichert werden können.
Was zwischengespeichert werden kann
Die meisten Blöcke in der Anfrage können mitcache_control
für das Caching bestimmt werden. Dies umfasst:
- Tools: Tool-Definitionen im
tools
-Array - Systemnachrichten: Inhaltsblöcke im
system
-Array - Textnachrichten: Inhaltsblöcke im
messages.content
-Array, sowohl für Benutzer- als auch Assistenten-Turns - Bilder & Dokumente: Inhaltsblöcke im
messages.content
-Array, in Benutzer-Turns - Tool-Verwendung und Tool-Ergebnisse: Inhaltsblöcke im
messages.content
-Array, sowohl in Benutzer- als auch Assistenten-Turns
cache_control
markiert werden, um Caching für diesen Teil der Anfrage zu ermöglichen.
Was nicht zwischengespeichert werden kann
Während die meisten Anfrageblöcke zwischengespeichert werden können, gibt es einige Ausnahmen:-
Thinking-Blöcke können nicht direkt mit
cache_control
zwischengespeichert werden. Thinking-Blöcke KÖNNEN jedoch zusammen mit anderem Inhalt zwischengespeichert werden, wenn sie in vorherigen Assistenten-Turns erscheinen. Wenn sie auf diese Weise zwischengespeichert werden, zählen sie als Eingabetoken, wenn sie aus dem Cache gelesen werden. - Sub-Inhaltsblöcke (wie Zitate) selbst können nicht direkt zwischengespeichert werden. Speichern Sie stattdessen den übergeordneten Block zwischen. Im Fall von Zitaten können die übergeordneten Dokumentinhaltsblöcke, die als Quellmaterial für Zitate dienen, zwischengespeichert werden. Dies ermöglicht es Ihnen, Prompt-Caching mit Zitaten effektiv zu verwenden, indem Sie die Dokumente zwischenspeichern, auf die Zitate verweisen werden.
- Leere Textblöcke können nicht zwischengespeichert werden.
Was den Cache ungültig macht
Änderungen am zwischengespeicherten Inhalt können einen Teil oder den gesamten Cache ungültig machen. Wie in Strukturierung Ihres Prompts beschrieben, folgt der Cache der Hierarchie:tools
→ system
→ messages
. Änderungen auf jeder Ebene machen diese Ebene und alle nachfolgenden Ebenen ungültig.
Die folgende Tabelle zeigt, welche Teile des Caches durch verschiedene Arten von Änderungen ungültig gemacht werden. ✘ zeigt an, dass der Cache ungültig gemacht wird, während ✓ anzeigt, dass der Cache gültig bleibt.
Was sich ändert | Tools-Cache | System-Cache | Messages-Cache | Auswirkung |
---|---|---|---|---|
Tool-Definitionen | ✘ | ✘ | ✘ | Das Ändern von Tool-Definitionen (Namen, Beschreibungen, Parameter) macht den gesamten Cache ungültig |
Web-Suche-Umschalter | ✓ | ✘ | ✘ | Das Aktivieren/Deaktivieren der Web-Suche ändert den System-Prompt |
Zitate-Umschalter | ✓ | ✘ | ✘ | Das Aktivieren/Deaktivieren von Zitaten ändert den System-Prompt |
Tool-Auswahl | ✓ | ✓ | ✘ | Änderungen am tool_choice -Parameter betreffen nur Message-Blöcke |
Bilder | ✓ | ✓ | ✘ | Das Hinzufügen/Entfernen von Bildern irgendwo im Prompt betrifft Message-Blöcke |
Thinking-Parameter | ✓ | ✓ | ✘ | Änderungen an erweiterten Thinking-Einstellungen (aktivieren/deaktivieren, Budget) betreffen Message-Blöcke |
Nicht-Tool-Ergebnisse, die an erweiterte Thinking-Anfragen übergeben werden | ✓ | ✓ | ✘ | Wenn Nicht-Tool-Ergebnisse in Anfragen übergeben werden, während erweitertes Thinking aktiviert ist, werden alle zuvor zwischengespeicherten Thinking-Blöcke aus dem Kontext entfernt, und alle Nachrichten im Kontext, die diesen Thinking-Blöcken folgen, werden aus dem Cache entfernt. Für weitere Details siehe Caching mit Thinking-Blöcken. |
Verfolgung der Cache-Leistung
Überwachen Sie die Cache-Leistung mit diesen API-Antwortfeldern, innerhalb vonusage
in der Antwort (oder message_start
-Event bei Streaming):
cache_creation_input_tokens
: Anzahl der Token, die in den Cache geschrieben wurden, als ein neuer Eintrag erstellt wurde.cache_read_input_tokens
: Anzahl der Token, die aus dem Cache für diese Anfrage abgerufen wurden.input_tokens
: Anzahl der Eingabetoken, die nicht aus dem Cache gelesen oder zum Erstellen eines Caches verwendet wurden.
Best Practices für effektives Caching
Um die Prompt-Caching-Leistung zu optimieren:- Speichern Sie stabilen, wiederverwendbaren Inhalt wie Systemanweisungen, Hintergrundinformationen, große Kontexte oder häufige Tool-Definitionen zwischen.
- Platzieren Sie zwischengespeicherten Inhalt am Anfang des Prompts für beste Leistung.
- Verwenden Sie Cache-Breakpoints strategisch, um verschiedene zwischenspeicherbare Präfix-Abschnitte zu trennen.
- Analysieren Sie regelmäßig Cache-Trefferquoten und passen Sie Ihre Strategie nach Bedarf an.
Optimierung für verschiedene Anwendungsfälle
Passen Sie Ihre Prompt-Caching-Strategie an Ihr Szenario an:- Konversationsagenten: Reduzieren Sie Kosten und Latenz für erweiterte Gespräche, insbesondere solche mit langen Anweisungen oder hochgeladenen Dokumenten.
- Coding-Assistenten: Verbessern Sie Autocomplete und Codebase-Q&A, indem Sie relevante Abschnitte oder eine zusammengefasste Version der Codebase im Prompt behalten.
- Verarbeitung großer Dokumente: Integrieren Sie vollständige langformatige Materialien einschließlich Bilder in Ihren Prompt, ohne die Antwortlatenz zu erhöhen.
- Detaillierte Anweisungssätze: Teilen Sie umfangreiche Listen von Anweisungen, Verfahren und Beispielen, um Claudes Antworten zu verfeinern. Entwickler fügen oft ein oder zwei Beispiele in den Prompt ein, aber mit Prompt-Caching können Sie noch bessere Leistung erzielen, indem Sie 20+ vielfältige Beispiele hochwertiger Antworten einschließen.
- Agentische Tool-Verwendung: Verbessern Sie die Leistung für Szenarien mit mehreren Tool-Aufrufen und iterativen Code-Änderungen, bei denen jeder Schritt typischerweise einen neuen API-Aufruf erfordert.
- Sprechen Sie mit Büchern, Papieren, Dokumentation, Podcast-Transkripten und anderen langformatigen Inhalten: Erwecken Sie jede Wissensbasis zum Leben, indem Sie das gesamte Dokument/die gesamten Dokumente in den Prompt einbetten und Benutzern ermöglichen, Fragen dazu zu stellen.
Fehlerbehebung häufiger Probleme
Bei unerwartetem Verhalten:- Stellen Sie sicher, dass zwischengespeicherte Abschnitte identisch sind und mit cache_control an denselben Stellen über Aufrufe hinweg markiert sind
- Überprüfen Sie, dass Aufrufe innerhalb der Cache-Lebensdauer (standardmäßig 5 Minuten) gemacht werden
- Verifizieren Sie, dass
tool_choice
und Bildverwendung zwischen Aufrufen konsistent bleiben - Validieren Sie, dass Sie mindestens die Mindestanzahl von Token zwischenspeichern
- Das System überprüft automatisch Cache-Treffer an vorherigen Inhaltsblock-Grenzen (bis zu ~20 Blöcke vor Ihrem Breakpoint). Für Prompts mit mehr als 20 Inhaltsblöcken benötigen Sie möglicherweise zusätzliche
cache_control
-Parameter früher im Prompt, um sicherzustellen, dass der gesamte Inhalt zwischengespeichert werden kann
tool_choice
oder das Vorhandensein/Fehlen von Bildern irgendwo im Prompt machen den Cache ungültig und erfordern die Erstellung eines neuen Cache-Eintrags. Für weitere Details zur Cache-Invalidierung siehe Was den Cache ungültig macht.Caching mit Thinking-Blöcken
Bei der Verwendung von erweitertem Thinking mit Prompt-Caching haben Thinking-Blöcke ein spezielles Verhalten: Automatisches Caching zusammen mit anderem Inhalt: Während Thinking-Blöcke nicht explizit mitcache_control
markiert werden können, werden sie als Teil des Anfrageinhalts zwischengespeichert, wenn Sie nachfolgende API-Aufrufe mit Tool-Ergebnissen machen. Dies geschieht häufig während der Tool-Verwendung, wenn Sie Thinking-Blöcke zurückgeben, um das Gespräch fortzusetzen.
Eingabetoken-Zählung: Wenn Thinking-Blöcke aus dem Cache gelesen werden, zählen sie als Eingabetoken in Ihren Nutzungsmetriken. Dies ist wichtig für Kostenberechnung und Token-Budgetierung.
Cache-Invalidierungsmuster:
- Cache bleibt gültig, wenn nur Tool-Ergebnisse als Benutzernachrichten bereitgestellt werden
- Cache wird ungültig gemacht, wenn Nicht-Tool-Ergebnis-Benutzerinhalt hinzugefügt wird, wodurch alle vorherigen Thinking-Blöcke entfernt werden
- Dieses Caching-Verhalten tritt auch ohne explizite
cache_control
-Markierungen auf
Cache-Speicherung und -Freigabe
- Organisationsisolation: Caches sind zwischen Organisationen isoliert. Verschiedene Organisationen teilen niemals Caches, auch wenn sie identische Prompts verwenden.
- Exakte Übereinstimmung: Cache-Treffer erfordern 100% identische Prompt-Segmente, einschließlich aller Texte und Bilder bis einschließlich des mit Cache-Control markierten Blocks.
- Ausgabetoken-Generierung: Prompt-Caching hat keine Auswirkung auf die Ausgabetoken-Generierung. Die Antwort, die Sie erhalten, ist identisch mit dem, was Sie erhalten würden, wenn Prompt-Caching nicht verwendet würde.
1-Stunden-Cache-Dauer
Wenn Sie feststellen, dass 5 Minuten zu kurz sind, bietet Anthropic auch eine 1-Stunden-Cache-Dauer an. Um den erweiterten Cache zu verwenden, fügen Siettl
in die cache_control
-Definition wie folgt ein:
cache_creation_input_tokens
-Feld der Summe der Werte im cache_creation
-Objekt entspricht.
Wann der 1-Stunden-Cache verwendet werden sollte
Wenn Sie Prompts haben, die in regelmäßigen Abständen verwendet werden (d.h. System-Prompts, die häufiger als alle 5 Minuten verwendet werden), verwenden Sie weiterhin den 5-Minuten-Cache, da dieser ohne zusätzliche Kosten weiter aktualisiert wird. Der 1-Stunden-Cache wird am besten in den folgenden Szenarien verwendet:- Wenn Sie Prompts haben, die wahrscheinlich weniger häufig als alle 5 Minuten, aber häufiger als jede Stunde verwendet werden. Zum Beispiel, wenn ein agentischer Seiten-Agent länger als 5 Minuten dauert oder wenn Sie ein langes Chat-Gespräch mit einem Benutzer speichern und Sie generell erwarten, dass dieser Benutzer möglicherweise nicht in den nächsten 5 Minuten antwortet.
- Wenn Latenz wichtig ist und Ihre Folge-Prompts möglicherweise über 5 Minuten hinaus gesendet werden.
- Wenn Sie Ihre Rate-Limit-Nutzung verbessern möchten, da Cache-Treffer nicht von Ihrem Rate-Limit abgezogen werden.
Mischen verschiedener TTLs
Sie können sowohl 1-Stunden- als auch 5-Minuten-Cache-Kontrollen in derselben Anfrage verwenden, aber mit einer wichtigen Einschränkung: Cache-Einträge mit längerer TTL müssen vor kürzeren TTLs erscheinen (d.h. ein 1-Stunden-Cache-Eintrag muss vor allen 5-Minuten-Cache-Einträgen erscheinen). Beim Mischen von TTLs bestimmen wir drei Abrechnungspositionen in Ihrem Prompt:- Position
A
: Die Token-Anzahl beim höchsten Cache-Treffer (oder 0, wenn keine Treffer). - Position
B
: Die Token-Anzahl beim höchsten 1-Stunden-cache_control
-Block nachA
(oder gleichA
, wenn keine existieren). - Position
C
: Die Token-Anzahl beim letztencache_control
-Block.
B
und/oder C
größer als A
sind, werden sie notwendigerweise Cache-Fehlschläge sein, weil A
der höchste Cache-Treffer ist.- Cache-Lesetoken für
A
. - 1-Stunden-Cache-Schreibtoken für
(B - A)
. - 5-Minuten-Cache-Schreibtoken für
(C - B)
.
Prompt-Caching-Beispiele
Um Ihnen den Einstieg in Prompt-Caching zu erleichtern, haben wir ein Prompt-Caching-Kochbuch mit detaillierten Beispielen und Best Practices vorbereitet. Unten haben wir mehrere Code-Snippets eingefügt, die verschiedene Prompt-Caching-Muster zeigen. Diese Beispiele demonstrieren, wie Sie Caching in verschiedenen Szenarien implementieren und helfen Ihnen, die praktischen Anwendungen dieser Funktion zu verstehen:Beispiel für großen Kontext-Cache
Beispiel für großen Kontext-Cache
input_tokens
: Anzahl der Token nur in der Benutzernachrichtcache_creation_input_tokens
: Anzahl der Token in der gesamten Systemnachricht, einschließlich des Rechtsdokumentscache_read_input_tokens
: 0 (kein Cache-Treffer bei der ersten Anfrage)
input_tokens
: Anzahl der Token nur in der Benutzernachrichtcache_creation_input_tokens
: 0 (keine neue Cache-Erstellung)cache_read_input_tokens
: Anzahl der Token in der gesamten zwischengespeicherten Systemnachricht
Zwischenspeichern von Tool-Definitionen
Zwischenspeichern von Tool-Definitionen
cache_control
-Parameter wird auf das finale Tool (get_time
) platziert, um alle Tools als Teil des statischen Präfixes zu bezeichnen.Das bedeutet, dass alle Tool-Definitionen, einschließlich get_weather
und aller anderen vor get_time
definierten Tools, als ein einziger Präfix zwischengespeichert werden.Dieser Ansatz ist nützlich, wenn Sie einen konsistenten Satz von Tools haben, die Sie über mehrere Anfragen hinweg wiederverwenden möchten, ohne sie jedes Mal neu zu verarbeiten.Für die erste Anfrage:input_tokens
: Anzahl der Token in der Benutzernachrichtcache_creation_input_tokens
: Anzahl der Token in allen Tool-Definitionen und System-Promptcache_read_input_tokens
: 0 (kein Cache-Treffer bei der ersten Anfrage)
input_tokens
: Anzahl der Token in der Benutzernachrichtcache_creation_input_tokens
: 0 (keine neue Cache-Erstellung)cache_read_input_tokens
: Anzahl der Token in allen zwischengespeicherten Tool-Definitionen und System-Prompt
Fortsetzen eines mehrteiligen Gesprächs
Fortsetzen eines mehrteiligen Gesprächs
cache_control
, damit das Gespräch inkrementell zwischengespeichert werden kann. Das System wird automatisch den längsten zuvor zwischengespeicherten Präfix für Folgenachrichten nachschlagen und verwenden. Das heißt, Blöcke, die zuvor mit einem cache_control
-Block markiert waren, werden später nicht mit diesem markiert, aber sie werden immer noch als Cache-Treffer (und auch als Cache-Aktualisierung!) betrachtet, wenn sie innerhalb von 5 Minuten getroffen werden.Zusätzlich beachten Sie, dass der cache_control
-Parameter auf die Systemnachricht platziert wird. Dies soll sicherstellen, dass wenn dies aus dem Cache entfernt wird (nachdem es mehr als 5 Minuten nicht verwendet wurde), es bei der nächsten Anfrage wieder zum Cache hinzugefügt wird.Dieser Ansatz ist nützlich für die Aufrechterhaltung des Kontexts in laufenden Gesprächen, ohne wiederholt dieselben Informationen zu verarbeiten.Wenn dies richtig eingerichtet ist, sollten Sie das Folgende in der Nutzungsantwort jeder Anfrage sehen:input_tokens
: Anzahl der Token in der neuen Benutzernachricht (wird minimal sein)cache_creation_input_tokens
: Anzahl der Token in den neuen Assistenten- und Benutzer-Turnscache_read_input_tokens
: Anzahl der Token im Gespräch bis zum vorherigen Turn
Alles zusammenfügen: Mehrere Cache-Breakpoints
Alles zusammenfügen: Mehrere Cache-Breakpoints
-
Tools-Cache (Cache-Breakpoint 1): Der
cache_control
-Parameter auf der letzten Tool-Definition speichert alle Tool-Definitionen zwischen. - Wiederverwendbare Anweisungen-Cache (Cache-Breakpoint 2): Die statischen Anweisungen im System-Prompt werden separat zwischengespeichert. Diese Anweisungen ändern sich selten zwischen Anfragen.
- RAG-Kontext-Cache (Cache-Breakpoint 3): Die Wissensbasis-Dokumente werden unabhängig zwischengespeichert, wodurch Sie die RAG-Dokumente aktualisieren können, ohne den Tools- oder Anweisungen-Cache ungültig zu machen.
-
Gesprächsverlauf-Cache (Cache-Breakpoint 4): Die Antwort des Assistenten ist mit
cache_control
markiert, um inkrementelles Caching des Gesprächs während seines Fortschreitens zu ermöglichen.
- Wenn Sie nur die finale Benutzernachricht aktualisieren, werden alle vier Cache-Segmente wiederverwendet
- Wenn Sie die RAG-Dokumente aktualisieren, aber dieselben Tools und Anweisungen beibehalten, werden die ersten beiden Cache-Segmente wiederverwendet
- Wenn Sie das Gespräch ändern, aber dieselben Tools, Anweisungen und Dokumente beibehalten, werden die ersten drei Segmente wiederverwendet
- Jeder Cache-Breakpoint kann unabhängig ungültig gemacht werden, basierend darauf, was sich in Ihrer Anwendung ändert
input_tokens
: Token in der finalen Benutzernachrichtcache_creation_input_tokens
: Token in allen zwischengespeicherten Segmenten (Tools + Anweisungen + RAG-Dokumente + Gesprächsverlauf)cache_read_input_tokens
: 0 (keine Cache-Treffer)
input_tokens
: Token nur in der neuen Benutzernachrichtcache_creation_input_tokens
: Alle neuen Token, die zum Gesprächsverlauf hinzugefügt wurdencache_read_input_tokens
: Alle zuvor zwischengespeicherten Token (Tools + Anweisungen + RAG-Dokumente + vorheriges Gespräch)
- RAG-Anwendungen mit großen Dokumentkontexten
- Agentensysteme, die mehrere Tools verwenden
- Langanhaltende Gespräche, die Kontext beibehalten müssen
- Anwendungen, die verschiedene Teile des Prompts unabhängig optimieren müssen
FAQ
Benötige ich mehrere Cache-Breakpoints oder ist einer am Ende ausreichend?
Benötige ich mehrere Cache-Breakpoints oder ist einer am Ende ausreichend?
- Sie mehr als 20 Inhaltsblöcke vor Ihrem gewünschten Cache-Punkt haben
- Sie Abschnitte zwischenspeichern möchten, die sich mit unterschiedlichen Häufigkeiten unabhängig aktualisieren
- Sie explizite Kontrolle darüber benötigen, was für Kostenoptimierung zwischengespeichert wird
Fügen Cache-Breakpoints zusätzliche Kosten hinzu?
Fügen Cache-Breakpoints zusätzliche Kosten hinzu?
- Das Schreiben von Inhalt in den Cache (25% mehr als Basis-Eingabetoken für 5-Minuten-TTL)
- Das Lesen aus dem Cache (10% des Basis-Eingabetoken-Preises)
- Reguläre Eingabetoken für nicht zwischengespeicherten Inhalt
Was ist die Cache-Lebensdauer?
Was ist die Cache-Lebensdauer?
Wie viele Cache-Breakpoints kann ich verwenden?
Wie viele Cache-Breakpoints kann ich verwenden?
cache_control
-Parametern) in Ihrem Prompt definieren.Ist Prompt-Caching für alle Modelle verfügbar?
Ist Prompt-Caching für alle Modelle verfügbar?
Wie funktioniert Prompt-Caching mit erweitertem Thinking?
Wie funktioniert Prompt-Caching mit erweitertem Thinking?
Wie aktiviere ich Prompt-Caching?
Wie aktiviere ich Prompt-Caching?
cache_control
-Breakpoint in Ihre API-Anfrage ein.Kann ich Prompt-Caching mit anderen API-Funktionen verwenden?
Kann ich Prompt-Caching mit anderen API-Funktionen verwenden?
Wie beeinflusst Prompt-Caching die Preisgestaltung?
Wie beeinflusst Prompt-Caching die Preisgestaltung?
Kann ich den Cache manuell löschen?
Kann ich den Cache manuell löschen?
Wie kann ich die Effektivität meiner Caching-Strategie verfolgen?
Wie kann ich die Effektivität meiner Caching-Strategie verfolgen?
cache_creation_input_tokens
und cache_read_input_tokens
in der API-Antwort überwachen.Was kann den Cache brechen?
Was kann den Cache brechen?
Wie handhabt Prompt-Caching Datenschutz und Datentrennung?
Wie handhabt Prompt-Caching Datenschutz und Datentrennung?
- Cache-Schlüssel werden mit einem kryptographischen Hash der Prompts bis zum Cache-Control-Punkt generiert. Das bedeutet, nur Anfragen mit identischen Prompts können auf einen spezifischen Cache zugreifen.
- Caches sind organisationsspezifisch. Benutzer innerhalb derselben Organisation können auf denselben Cache zugreifen, wenn sie identische Prompts verwenden, aber Caches werden nicht zwischen verschiedenen Organisationen geteilt, auch nicht für identische Prompts.
- Der Caching-Mechanismus ist darauf ausgelegt, die Integrität und den Datenschutz jedes einzigartigen Gesprächs oder Kontexts zu wahren.
-
Es ist sicher,
cache_control
überall in Ihren Prompts zu verwenden. Für Kosteneffizienz ist es besser, hochvariable Teile (z.B. beliebige Benutzereingaben) vom Caching auszuschließen.
Kann ich Prompt-Caching mit der Batches API verwenden?
Kann ich Prompt-Caching mit der Batches API verwenden?
- Sammeln Sie eine Reihe von Message-Anfragen, die einen gemeinsamen Präfix haben.
- Senden Sie eine Batch-Anfrage mit nur einer einzigen Anfrage, die diesen gemeinsamen Präfix und einen 1-Stunden-Cache-Block hat. Dies wird in den 1-Stunden-Cache geschrieben.
- Sobald dies abgeschlossen ist, reichen Sie die restlichen Anfragen ein. Sie müssen den Job überwachen, um zu wissen, wann er abgeschlossen ist.
Warum sehe ich den Fehler `AttributeError: 'Beta' object has no attribute 'prompt_caching'` in Python?
Warum sehe ich den Fehler `AttributeError: 'Beta' object has no attribute 'prompt_caching'` in Python?
Warum sehe ich 'TypeError: Cannot read properties of undefined (reading 'messages')'?
Warum sehe ich 'TypeError: Cannot read properties of undefined (reading 'messages')'?