Docs
Prompt Cache
Prompt Cache
Economize até 90% em prompts com prefixos repetidos.
O Prompt Cache evita que o modelo reprocesse partes idênticas do prompt a cada requisição. Quando o mesmo prefixo aparece em múltiplas chamadas, apenas os tokens novos são cobrados.
Como funciona
Requisição 1: [system prompt 500 tokens] + [mensagem 50 tokens] → cobra 550 tokens
Requisição 2: [system prompt 500 tokens] + [mensagem 60 tokens] → cobra ~60 tokens (prefixo em cache)
Requisição 3: [system prompt 500 tokens] + [mensagem 45 tokens] → cobra ~45 tokens (prefixo em cache)
O cache é especialmente útil para:
- System prompts grandes (instruções, personas, regras de negócio)
- Documentos longos passados como contexto
- Few-shot examples repetidos em múltiplas chamadas
Provedores com suporte
| Provedor | Cache automático |
|---|---|
| Anthropic (Claude) | ✅ Sim |
| OpenAI | ✅ Sim (automático no GPT-4o) |
| Google (Gemini) | ✅ Sim |
| Meta / Mistral / DeepSeek | ❌ Não |
Uso com Anthropic (Claude)
Para ativar o cache no Claude, marque as partes do prompt com cache_control:
from openai import OpenAI
client = OpenAI(
base_url="https://proxy.ignustec.com.br/v1",
api_key="sk_ic_xxxxxxxxxxxxxxxxxxxx",
)
SYSTEM_PROMPT = """
Você é um especialista jurídico brasileiro com 20 anos de experiência...
[prompt muito longo com 2000+ tokens]
"""
# Primeira requisição — cria o cache
response = client.chat.completions.create(
model="claude-sonnet-4",
messages=[
{
"role": "system",
"content": [
{
"type": "text",
"text": SYSTEM_PROMPT,
"cache_control": {"type": "ephemeral"},
}
],
},
{"role": "user", "content": "Pergunta 1..."},
],
)
# Segunda requisição — usa o cache (muito mais barato)
response2 = client.chat.completions.create(
model="claude-sonnet-4",
messages=[
{
"role": "system",
"content": [
{
"type": "text",
"text": SYSTEM_PROMPT,
"cache_control": {"type": "ephemeral"},
}
],
},
{"role": "user", "content": "Pergunta 2..."},
],
)Uso com OpenAI
O GPT-4o aplica cache automaticamente para prompts com mais de 1.024 tokens de prefixo comum. Não é necessária nenhuma configuração adicional.
# O cache é aplicado automaticamente pelo Ignus Code
response = client.chat.completions.create(
model="gpt-4o",
messages=[
{"role": "system", "content": "...system prompt longo..."},
{"role": "user", "content": "Pergunta do usuário"},
],
)
# Verifique tokens em cache no campo usage
print(response.usage.prompt_tokens_details)
# {'cached_tokens': 1024, 'audio_tokens': 0}Verificar o uso do cache
A resposta inclui informações de cache no campo usage:
{
"usage": {
"prompt_tokens": 1100,
"completion_tokens": 85,
"total_tokens": 1185,
"prompt_tokens_details": {
"cached_tokens": 1024
}
}
}O cache tem validade de 5 minutos para a maioria dos provedores. Para uso eficiente, mantenha o prefixo idêntico entre requisições e envie-as com frequência.