Cargando

Almacenamiento en caché de prompts en acción

Lección 457 min

El almacenamiento en caché de prompts es una potente función de optimización que hace que tus solicitudes de API sean más rápidas y económicas cuando envías repetidamente el mismo contenido a Claude. Exploremos cómo implementarlo de manera efectiva en tus aplicaciones.

Cómo funciona el almacenamiento en caché de prompts

Cuando habilitas el almacenamiento en caché de prompts, la primera solicitud escribe contenido en una caché con una vida útil predeterminada de 5 minutos, y cada vez que se usa el contenido en caché, esa ventana se renueva sin costo adicional. Si necesitas una ventana más larga, puedes optar por una duración de caché de 1 hora por un costo adicional. Las solicitudes posteriores leen de esta caché en lugar de procesar el mismo contenido nuevamente. Esto es particularmente valioso cuando envías:

  • Indicaciones del sistema grandes (como una indicación de asistente de codificación de 6K tokens)
  • Esquemas de herramientas complejos (alrededor de 1.7K tokens para múltiples herramientas)
  • Contenido de mensajes repetido

La idea clave es que el almacenamiento en caché solo ayuda si envías repetidamente contenido idéntico, pero en muchas aplicaciones, esto ocurre con extrema frecuencia.

Configuración del almacenamiento en caché de esquemas de herramientas

Para almacenar en caché tus esquemas de herramientas, debes agregar un campo de control de caché a la última herramienta de tu lista. Aquí está la forma correcta de hacerlo sin modificar tus definiciones originales de herramientas:

python
if tools:
    tools_clone = tools.copy()
    last_tool = tools_clone[-1].copy()
    last_tool["cache_control"] = {"type": "ephemeral"}
    tools_clone[-1] = last_tool
    params["tools"] = tools_clone

Este enfoque crea copias tanto de la lista de herramientas como del esquema de la última herramienta antes de agregar el campo de control de caché. Aunque podrías modificar directamente tools[-1]["cache_control"], el enfoque de copiado evita problemas si más adelante reordenas tus herramientas.

Almacenamiento en caché de la indicación del sistema

Para las indicaciones del sistema, debes estructurarlas como un bloque de texto con control de caché:

python
if system:
    params["system"] = [
        {
            "type": "text",
            "text": system,
            "cache_control": {"type": "ephemeral"}
        }
    ]

Esto convierte tu indicación del sistema de una simple cadena de texto a un formato estructurado que admite el almacenamiento en caché.

Comprendiendo el comportamiento de la caché

Cuando ejecutas solicitudes con el almacenamiento en caché habilitado, verás diferentes patrones de uso en la respuesta:

  • Primera solicitud: cache_creation_input_tokens=1772 - Claude escribe en la caché
  • Solicitudes posteriores: cache_read_input_tokens=1772 - Claude lee de la caché
  • Contenido modificado: Aparecen nuevos tokens de creación de caché

La caché es extremadamente sensible: cambiar incluso un solo carácter en tus herramientas o indicación del sistema invalida toda la caché para ese componente.

Orden de la caché y puntos de interrupción

Puedes establecer múltiples puntos de interrupción de caché en una sola solicitud. El orden importa:

  1. Herramientas (si se proporcionan)
  2. Indicación del sistema (si se proporciona)
  3. Mensajes

Si cambias tu indicación del sistema pero mantienes las mismas herramientas, verás una lectura parcial de caché (para las herramientas) y una escritura de caché (para la nueva indicación del sistema). Este almacenamiento en caché granular significa que solo pagas por procesar las partes que realmente cambiaron.

Consideraciones prácticas

El almacenamiento en caché de prompts es más efectivo cuando tienes:

  • Esquemas de herramientas consistentes entre solicitudes
  • Indicaciones del sistema estables
  • Aplicaciones que realizan múltiples solicitudes con contexto similar

Recuerda que la caché predeterminada dura 5 minutos (renovada con cada uso), con una opción de 1 hora disponible por un costo adicional, por lo que está diseñada para aplicaciones con un uso relativamente frecuente de la API en lugar de almacenamiento a largo plazo.