Skip to Content

Cached Contents

Gerencie caches de contexto explícitos (cachedContents) via protocolo nativo do Gemini: armazene ativamente um grande contexto como um objeto e o referencie entre requisições para acertos determinísticos e menor custo. O OfoxAI é compatível com o Google GenAI SDK.

Para casos de uso, a diferença em relação ao cache implícito e boas práticas, veja o guia de Cache explícito do Gemini. Esta página é a referência da API no nível de endpoint.

Endpoints

POST https://api.ofox.ai/gemini/v1beta/cachedContents # Criar GET https://api.ofox.ai/gemini/v1beta/cachedContents/{id} # Consultar DELETE https://api.ofox.ai/gemini/v1beta/cachedContents/{id} # Excluir

Para referenciar um cache na geração de conteúdo, use o endpoint padrão generateContent com o campo cachedContent no corpo:

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

Autenticação

Use o header x-goog-api-key:

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

Campos do recurso

Principais campos do recurso CachedContent:

CampoTipoDescrição
namestring (somente leitura)Handle do cache, no formato cachedContents/{id}, retornado na criação
modelstring (obrigatório, imutável)Modelo ao qual o cache está vinculado, como models/gemini-3.1-pro-preview
contentsarrayConteúdo a armazenar em cache (mesma estrutura do contents do generateContent)
systemInstructionobjectInstrução de system a armazenar em cache (opcional)
toolsarrayDefinições de ferramentas a armazenar em cache (opcional)
ttlstringTempo de vida, string de segundos (como "600s"); mutuamente exclusivo com expireTime
expireTimestringMomento de expiração (RFC 3339); mutuamente exclusivo com ttl
displayNamestring (imutável)Nome personalizado (opcional)
usageMetadata.totalTokenCountintegerNúmero de tokens em cache (usado no faturamento)

Faixa de TTL suportada: mínimo / padrão 600s (10 minutos), máximo 3600s (1 hora).

Criar um cache

create.py
from google import genai from google.genai import types client = genai.Client( api_key="<Sua 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="Você é um assistente que responde estritamente com base no documento fornecido.", ttl="600s", display_name="kb-v1", ), ) print(cache.name) # cachedContents/xxxxxxxx print(cache.usage_metadata.total_token_count)

Resposta

{ "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 } }

Consultar / Excluir

Consultar e excluir não exigem passar model; o OfoxAI localiza o upstream pelo handle do cache.

manage.py
# Consultar um item info = client.caches.get(name=cache.name) print(info.expire_time) # Excluir client.caches.delete(name=cache.name)

Referenciar um cache para gerar

Adicione o campo cachedContent ao corpo do generateContent para referenciar o cache; contents carrega apenas a nova pergunta desta vez:

use.py
response = client.models.generate_content( model="google/gemini-3.1-pro-preview", contents="Com base no documento acima, resuma três pontos principais", config=types.GenerateContentConfig(cached_content=cache.name), ) print(response.text) print(response.usage_metadata.cached_content_token_count) # tokens de cache acertados

No acerto, o usageMetadata.cachedContentTokenCount da resposta mostra quantos tokens vieram do cache.

Faturamento

EtapaFórmula
Criar cachetotalTokenCount × tarifa de cache_write
Acerto na referênciacachedContentTokenCount × tarifa de cache_read (cerca de 0,10x do preço de entrada padrão)
Novo conteúdo por referênciaNovo prompt / saída desta vez cobrado pelas tarifas padrão

Os preços unitários de cache_write / cache_read de cada modelo estão no catálogo de modelos .

O OfoxAI faz balanceamento de carga entre vários projetos GCP, e os caches explícitos são region-scoped (vinculados à região). O OfoxAI trava (hard-lock) automaticamente as referências de volta ao upstream que criou o cache, com zero drift; um handle de cache só pode ser referenciado / consultado / excluído pela API Key que o criou (acesso entre contas retorna 403). Veja o guia de Cache explícito · Roteamento determinístico.

Documentos relacionados

Last updated on