Skip to Content
DocsErweiterte FunktionenExplizites Caching

Gemini Explizites Caching (cachedContents)

Gemini bietet zwei Arten von Caching:

  • Implizites Caching (automatisch) — Das Modell erkennt und verwendet wiederholte Prompt-Präfixe automatisch wieder, ohne jede Konfiguration. Das ist das Standardverhalten, das unter Prompt-Caching beschrieben wird; Treffer erfolgen nach dem Best-Effort-Prinzip, und jede kleine Änderung am Präfix kann zu einem Fehlschlag führen.
  • Explizites Caching (diese Seite) — Sie erstellen aktiv einen großen Kontextabschnitt als Cache-Objekt, erhalten ein cachedContents/{id}-Handle zurück und referenzieren es in nachfolgenden generateContent-Anfragen. Treffer sind deterministisch: Solange der Cache nicht abgelaufen ist, trifft eine Referenz immer.

Verwenden Sie explizites Caching, wenn Sie einen großen, stabilen Kontext haben, der wiederholt verwendet wird (lange Dokumente, Codebasen, Wissensdatenbanken, feste System-Anweisungen) und steuerbare Trefferquoten sowie vorhersehbare Abrechnung wünschen.

OfoxAI unterstützt Gemini-natives cachedContents für Erstellen / Referenzieren / Abfragen / Löschen, kompatibel mit dem Google GenAI SDK. Die Referenz auf Endpunkt-Ebene finden Sie unter cachedContents API.

Wann explizites Caching verwenden

SzenarioEmpfehlung
Wiederholtes Q&A über einen großen festen Kontext (Dokument-QA, Code-Assistent)✅ Explizites Caching
Sie benötigen garantierte Treffer und können gelegentliche Fehlschläge nicht tolerieren✅ Explizites Caching
Kurze, seltene Anfragen mit wechselnden Präfixen❌ Implizites Caching genügt; kein Cache-Objekt zu verwalten
Der Kontext ändert sich jedes Mal❌ Caching ist sinnlos

Explizites Caching erfordert, dass der gecachte Inhalt einen Mindest-Token-Schwellenwert erreicht (etwa 2.048–4.096 Tokens, modellabhängig). Zu kleiner Inhalt schlägt bei der Erstellung fehl oder bringt keinen Nutzen.

Endpunkte

OfoxAI stellt die vollständigen cachedContents-Endpunkte unter dem Gemini-nativen Protokoll bereit:

POST https://api.ofox.ai/gemini/v1beta/cachedContents # Erstellen GET https://api.ofox.ai/gemini/v1beta/cachedContents/{id} # Abfragen DELETE https://api.ofox.ai/gemini/v1beta/cachedContents/{id} # Löschen

Um einen Cache für die Inhaltsgenerierung zu referenzieren, verwenden Sie den Standard-generateContent-Endpunkt und fügen cachedContent zum Anfrage-Body hinzu:

POST https://api.ofox.ai/gemini/v1beta/models/{model}:generateContent

Authentifizierung

Wie bei anderen Gemini-Endpunkten verwenden Sie den x-goog-api-key-Header:

x-goog-api-key: <Ihr OFOXAI_API_KEY>

Vollständiger Ablauf

Im Folgenden wird ein vollständiger Ablauf gezeigt: Cache erstellen → Cache zur Generierung referenzieren → Cache löschen.

1. Cache erstellen

Legen Sie den großen Kontext, den Sie wiederverwenden möchten, in contents und geben Sie model und ttl (Lebensdauer) an:

create_cache.py
from google import genai from google.genai import types client = genai.Client( api_key="<Ihr OFOXAI_API_KEY>", http_options={"api_version": "v1beta", "base_url": "https://api.ofox.ai/gemini"}, ) # Ein großes Dokument, das wiederholt verwendet wird (muss den Mindest-Token-Schwellenwert erreichen) LONG_DOCUMENT = open("knowledge_base.txt").read() cache = client.caches.create( model="google/gemini-3.1-pro-preview", config=types.CreateCachedContentConfig( contents=[LONG_DOCUMENT], ttl="600s", # Cache lebt 10 Minuten ), ) print(cache.name) # cachedContents/xxxxxxxx — das Handle für spätere Referenzen

Der zurückgegebene name (z. B. cachedContents/xxxxxxxx) ist das Cache-Handle. Speichern Sie es für spätere Referenzen und die Verwaltung.

2. Cache zur Generierung referenzieren

Referenzieren Sie das Cache-Handle über cachedContent in einer generateContent-Anfrage; contents muss nur die neue Frage für diesen Schritt enthalten:

use_cache.py
response = client.models.generate_content( model="google/gemini-3.1-pro-preview", contents="Fassen Sie auf Basis des obigen Dokuments drei Kernpunkte zusammen", config=types.GenerateContentConfig( cached_content=cache.name, # Cache referenzieren ), ) print(response.text) # Cache-Treffer: Der gecachte Anteil wird zum niedrigeren „Read"-Tarif berechnet print(response.usage_metadata.cached_content_token_count)

Bei einem Treffer zeigt usageMetadata.cachedContentTokenCount in der Antwort, wie viele Tokens aus dem Cache stammen. Derselbe Cache kann beliebig oft referenziert werden, jedes Mal ein deterministischer Treffer, bis er abläuft.

3. Abfragen und Löschen

Cache-Metadaten abfragen oder bei Bedarf proaktiv löschen (ohne auf den Ablauf der TTL zu warten):

manage_cache.py
# Abfragen info = client.caches.get(name=cache.name) print(info.expire_time) # Löschen client.caches.delete(name=cache.name)

Abfragen / Löschen erfordern kein erneutes Übergeben von model. OfoxAI lokalisiert den Cache allein anhand des Handles.

Lebenszyklus und TTL

Geben Sie bei der Erstellung über ttl eine Lebensdauer an, als Sekunden-String mit s-Endung (z. B. "600s").

ParameterWert
Minimale / Standard-TTL600s (10 Minuten)
Maximale TTL3600s (1 Stunde)
  • Innerhalb der TTL kann der Cache wiederholt mit deterministischen Treffern referenziert werden.
  • Nach Ablauf der TTL wird der Cache automatisch ungültig, und eine erneute Referenzierung führt zu einem Fehler (der Cache existiert nicht mehr).
  • Sie können den Cache jederzeit per delete vorzeitig freigeben.

Das Referenzieren eines abgelaufenen oder gelöschten Caches schlägt fehl. Behandeln Sie den Fall „Cache ungültig” clientseitig (Fehler abfangen und Cache neu erstellen oder auf eine normale Anfrage zurückfallen).

Abrechnung

Explizites Caching wird transparent pro Token in drei Teilen abgerechnet:

PhaseFormelHinweis
Cache erstellentotalTokenCount × cache_write TarifWird zum „Cache-Write”-Tarif berechnet; totalTokenCount stammt aus den usageMetadata der Erstellungsantwort — also die Anzahl der gecachten Tokens
Referenz-TreffercachedContentTokenCount × cache_read TarifDer gecachte Anteil wird zum „Cache-Read”-Tarif berechnet, etwa 0,10x des Standard-Eingabepreises, deutlich günstiger als das erneute Senden von allem
Neue Inhalte pro ReferenzNeuer Prompt / neue Ausgabe pro Schritt zum StandardtarifD. h. jede neue Frage, die Sie stellen, und die neue Antwort des Modells

Das Wirtschaftsmodell: Bei der Erstellung zahlen Sie einmalig eine „Write”-Gebühr, danach wird der gecachte Inhalt bei jeder Referenz zum niedrigeren „Read”-Tarif berechnet, wodurch die Kosten für „das erneute Senden des gesamten Kontexts zum vollen Preis” entfallen. Je mehr Referenzen, desto mehr sparen Sie. Die cache_write / cache_read-Einzelpreise der einzelnen Modelle sind im Modellkatalog  und in Ihrer Konsolen-Nutzungsstatistik maßgeblich.

Verbesserung bei OfoxAI: Deterministisches Routing

OfoxAI verteilt die Last über mehrere GCP-Regionen / Vertex-Projekte. Explizite Caches sind region-scoped (regionsgebunden): Ein in einem GCP-Projekt erstellter Cache muss in genau diesem Projekt referenziert werden, andernfalls gibt es ein 404.

OfoxAI handhabt dies automatisch: Bei der Erstellung wird die Upstream-Instanz erfasst, an die der Cache gebunden ist, anschließend wird diese Instanz anhand des Cache-Handles nachgeschlagen und Referenzen werden hart auf denselben Upstream gesperrt. Unabhängig davon, ob Ihre Referenzanfrage eine Benutzerkennung enthält oder wie die Last verteilt wird, werden Referenzen präzise zu dem Projekt geroutet, das den Cache erstellt hat, mit null Drift. Sie müssen sich nicht um die zugrunde liegende Regionsverteilung kümmern.

Die Cache-Zugehörigkeit ist geschützt: Ein Cache-Handle kann nur von dem API Key (und demselben Eigentümer) referenziert / abgefragt / gelöscht werden, der es erstellt hat; kontoübergreifender Zugriff wird abgelehnt (403).

Explizites vs. implizites Caching

DimensionImplizit (automatisch)Explizit (cachedContents)
AuslöserErkennt wiederholte Präfixe automatischCache-Objekt aktiv erstellen und referenzieren
Treffer-DeterminismusBest-Effort, eine kleine Präfix-Änderung kann zu einem Fehlschlag führenDeterministisch, trifft immer, solange nicht abgelaufen
VerwaltungKeineHandle erstellen / referenzieren / löschen
Geeignet fürKurze Inhalte mit gelegentlich wiederholten PräfixenGroßer, stabiler, wiederholt verwendeter Kontext
AbrechnungRead-Tarif-Rabatt bei TrefferWrite-Gebühr bei Erstellung + Read-Tarif-Rabatt bei Referenz

Beide lassen sich kombinieren. Lassen Sie bei alltäglichen Anfragen einfach das implizite Caching automatisch greifen; für Kontext, den Sie definitiv wiederholt wiederverwenden, sperren Sie Treffer mit explizitem Caching fest. Details zum impliziten Caching finden Sie unter Prompt-Caching.

Verwandte Dokumente

Last updated on