Caché de prompts
Prompt Caching permite almacenar en caché los prefijos de prompt reutilizados, reduciendo el consumo de tokens y la latencia de respuesta.
Funcionamiento
Cuando su solicitud contiene un system prompt largo y reutilizado o información de contexto:
- Primera solicitud — Se procesan todos los tokens y se almacena en caché el prefijo del prompt
- Solicitudes posteriores — Cuando hay acierto de caché, los tokens de la parte cacheada no se cobran nuevamente
- Expiración del caché — El caché tiene un TTL (generalmente 5-10 minutos); después de expirar, se requiere un nuevo almacenamiento en caché
Soporte de caché
Los recursos de modelos de OfoxAI son proporcionados por proveedores oficiales de nube como AWS Bedrock, Azure OpenAI, Google Cloud, Alibaba Cloud y Volcengine. Los modelos que soportan Prompt Caching en estos proveedores de nube también son soportados por OfoxAI.
| Proveedor de nube | Modelos representativos | Mecanismo de caché |
|---|---|---|
| AWS Bedrock | Serie Claude | Prompt Caching nativo |
| Azure OpenAI | Serie GPT-4o | Caché automático |
| Google Cloud | Serie Gemini | Context Caching |
| Alibaba Cloud | Serie Qwen | Caché de plataforma |
| Volcengine | Serie Doubao | Caché de plataforma |
El soporte de caché específico de cada modelo está sujeto a la documentación oficial de cada proveedor de nube. OfoxAI transmite los parámetros de caché de forma transparente, sin necesidad de configuración adicional.
Modo de uso
Protocolo OpenAI
El Prompt Caching de los modelos OpenAI es automático — se activa automáticamente cuando se detectan prefijos de prompt repetidos:
# El system prompt largo se almacena en caché automáticamente
SYSTEM_PROMPT = """Eres el asistente de soporte técnico de OfoxAI.
A continuación se muestra la información del producto que necesitas conocer:
- OfoxAI es un LLM Gateway que soporta más de 100 modelos
- Soporta los tres protocolos OpenAI / Anthropic / Gemini
- ...
(más conocimiento del producto omitido)
"""
# Primera solicitud: almacena el system prompt en caché
response1 = client.chat.completions.create(
model="openai/gpt-4o",
messages=[
{"role": "system", "content": SYSTEM_PROMPT},
{"role": "user", "content": "¿Qué modelos soporta OfoxAI?"}
]
)
# Segunda solicitud: acierto de caché, más rápido y económico
response2 = client.chat.completions.create(
model="openai/gpt-4o",
messages=[
{"role": "system", "content": SYSTEM_PROMPT}, # Acierto de caché
{"role": "user", "content": "¿Cómo configurar Claude Code?"}
]
)Protocolo Anthropic
Los modelos Anthropic soportan control de caché explícito:
import anthropic
client = anthropic.Anthropic(
base_url="https://api.ofox.ai/anthropic",
api_key="<su OFOXAI_API_KEY>"
)
response = client.messages.create(
model="anthropic/claude-sonnet-4.5",
max_tokens=1024,
system=[{
"type": "text",
"text": "Eres un asistente profesional. A continuación la documentación del producto...",
"cache_control": {"type": "ephemeral"} # Activar caché explícitamente
}],
messages=[{"role": "user", "content": "Resume las características del producto"}]
)
# Ver el estado de acierto de caché
print(f"Tokens de escritura en caché: {response.usage.cache_creation_input_tokens}")
print(f"Tokens de acierto de caché: {response.usage.cache_read_input_tokens}")Ahorro de costos
Tras un acierto de caché, los tokens de la parte cacheada se cobran a un precio reducido. El porcentaje de ahorro varía según el modelo:
- Serie Anthropic Claude — Un acierto de caché puede ahorrar aproximadamente un 90% en costos de entrada
- Serie OpenAI GPT — Un acierto de caché puede ahorrar aproximadamente un 50% en costos de entrada
- Serie Google Gemini — Un acierto de caché puede ahorrar aproximadamente un 50-75% en costos de entrada
El porcentaje real de ahorro depende de la tasa de acierto de caché y las políticas de facturación de cada proveedor de nube. Consulte las estadísticas de uso en la consola de OfoxAI para más detalles.
Mejores prácticas
- Coloque el texto largo al principio — El system prompt y el contenido de la base de conocimientos que no cambia deben ir al inicio de los messages
- Mantenga el prefijo consistente — Solo los prefijos exactamente iguales pueden acertar el caché
- Diseñe la estructura del prompt adecuadamente — Separe las partes fijas de las partes variables
# Buen diseño: contenido fijo al principio, contenido variable al final
messages = [
{"role": "system", "content": LONG_STATIC_PROMPT}, # Cacheable
{"role": "user", "content": dynamic_question} # Parte variable
]
# Mal diseño: contenido variable intercalado en el contenido fijo
messages = [
{"role": "system", "content": f"Today is {date}. {LONG_PROMPT}"} # Diferente cada día, no cacheable
]Los aciertos de caché se pueden consultar en el campo usage de la respuesta API, así como en las estadísticas de uso de la consola de OfoxAI.