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} # SupprimerPour 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}:generateContentAuthentification
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 :
Plage de TTL prise en charge : minimum / par défaut 600s (10 minutes), maximum 3600s (1 heure).
Créer un cache
Python
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.8-flash",
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.8-flash",
"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.
Python
# 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 :
Python
response = client.models.generate_content(
model="google/gemini-3.8-flash",
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ésEn cas de hit, la réponse usageMetadata.cachedContentTokenCount indique le nombre de tokens issus du cache.
Facturation
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.