Skip to Content

Cached Contents

Gérez des caches de contexte explicites (cachedContents) via le protocole natif Gemini : mettez activement en cache un large contexte sous forme d’objet, référencez-le entre les requêtes pour des hits déterministes et un coût réduit. OfoxAI est compatible avec le Google GenAI SDK.

Pour les cas d’usage, la différence avec le cache implicite et les bonnes pratiques, voir le guide Cache explicite Gemini. Cette page est la référence d’API au niveau des endpoints.

Endpoints

POST https://api.ofox.ai/gemini/v1beta/cachedContents # Créer GET https://api.ofox.ai/gemini/v1beta/cachedContents/{id} # Consulter DELETE https://api.ofox.ai/gemini/v1beta/cachedContents/{id} # Supprimer

Pour référencer un cache lors de la génération, utilisez l’endpoint generateContent standard avec un champ cachedContent dans le corps :

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

Authentification

Utilisez le header x-goog-api-key :

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

Champs de la ressource

Principaux champs de la ressource CachedContent :

ChampTypeDescription
namestring (lecture seule)Handle du cache, de la forme cachedContents/{id}, retourné à la création
modelstring (requis, immuable)Modèle auquel le cache est lié, par ex. models/gemini-3.1-pro-preview
contentsarrayContenu à mettre en cache (même structure que le contents de generateContent)
systemInstructionobjectInstruction system à mettre en cache (optionnel)
toolsarrayDéfinitions d’outils à mettre en cache (optionnel)
ttlstringDurée de vie, chaîne de secondes (par ex. "600s") ; mutuellement exclusif avec expireTime
expireTimestringHorodatage d’expiration (RFC 3339) ; mutuellement exclusif avec ttl
displayNamestring (immuable)Nom personnalisé (optionnel)
usageMetadata.totalTokenCountintegerNombre de tokens mis en cache (utilisé pour la facturation)

Plage de TTL prise en charge : minimum / par défaut 600s (10 minutes), maximum 3600s (1 heure).

Créer un cache

create.py
from google import genai from google.genai import types client = genai.Client( api_key="<votre OFOXAI_API_KEY>", http_options={"api_version": "v1beta", "base_url": "https://api.ofox.ai/gemini"}, ) cache = client.caches.create( model="google/gemini-3.1-pro-preview", config=types.CreateCachedContentConfig( contents=[open("knowledge_base.txt").read()], system_instruction="Tu réponds strictement d'après le document fourni.", ttl="600s", display_name="kb-v1", ), ) print(cache.name) # cachedContents/xxxxxxxx print(cache.usage_metadata.total_token_count)

Réponse

{ "name": "cachedContents/xxxxxxxx", "model": "google/gemini-3.1-pro-preview", "createTime": "2026-06-26T08:00:00Z", "updateTime": "2026-06-26T08:00:00Z", "expireTime": "2026-06-26T08:10:00Z", "displayName": "kb-v1", "usageMetadata": { "totalTokenCount": 14407 } }

Consulter / Supprimer

La consultation et la suppression ne nécessitent pas model ; OfoxAI localise l’amont à partir du handle du cache.

manage.py
# Consulter une entrée info = client.caches.get(name=cache.name) print(info.expire_time) # Supprimer client.caches.delete(name=cache.name)

Référencer un cache pour générer

Ajoutez un champ cachedContent au corps de generateContent pour référencer le cache ; contents ne porte que la nouvelle question de ce tour :

use.py
response = client.models.generate_content( model="google/gemini-3.1-pro-preview", contents="D'après le document ci-dessus, résume trois points clés", config=types.GenerateContentConfig(cached_content=cache.name), ) print(response.text) print(response.usage_metadata.cached_content_token_count) # tokens de cache touchés

En cas de hit, la réponse usageMetadata.cachedContentTokenCount indique le nombre de tokens issus du cache.

Facturation

ÉtapeFormule
Création du cachetotalTokenCount × tarif cache_write
Hit sur référencecachedContentTokenCount × tarif cache_read (environ 0,10x du prix d’entrée standard)
Nouveau contenu par référenceNouveau prompt / sortie du tour facturé au tarif standard

Les tarifs unitaires cache_write / cache_read de chaque modèle figurent dans le catalogue de modèles .

OfoxAI répartit la charge entre plusieurs projets GCP, et les caches explicites sont region-scoped. OfoxAI verrouille automatiquement (hard-lock) les références sur l’amont qui a créé le cache, sans aucune dérive ; un handle de cache ne peut être référencé / consulté / supprimé que par l’API Key qui l’a créé (tout accès inter-comptes renvoie 403). Voir guide Cache explicite · Routage déterministe.

Documentation associée

Last updated on