Cargando

El almacenamiento en caché de prompts en acción

Lección 488 min

El almacenamiento en caché de prompts es una potente función de optimización que hace que las solicitudes sean más económicas y rápidas cuando envías repetidamente el mismo contenido a Claude. La solicitud inicial escribe en la caché, y las solicitudes posteriores pueden leer de ella. La caché dura 5 minutos y es extremadamente útil ya que muchas aplicaciones envían repetidamente los mismos esquemas de herramientas, indicaciones del sistema o historiales de mensajes.

Claude escribe el trabajo realizado en el prompt "Por favor resume esto" en la caché, y luego lo lee en la solicitud de seguimiento.

Cómo funciona el almacenamiento en caché de prompts

Cuando marcas contenido para almacenar en caché, Claude lo procesa una vez y guarda el resultado. Las solicitudes posteriores que incluyan exactamente el mismo contenido pueden omitir el paso de procesamiento y leer directamente de la caché. Esto solo funciona si el contenido almacenado en caché es idéntico; incluso el cambio de un solo carácter invalida la caché.

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

  • Esquemas de herramientas
  • Indicación del sistema
  • Historial de mensajes

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

Para almacenar en caché los esquemas de herramientas, necesitas agregar un campo cache_control a la última herramienta de tu lista. Esta es la forma correcta de hacerlo sin modificar tus esquemas de herramientas originales:

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 último esquema de herramienta antes de agregar el campo de control de caché. Esto evita modificar accidentalmente tus definiciones de herramientas originales, lo que podría causar problemas si reordenas las herramientas más adelante.

Almacenamiento en caché de la indicación del sistema

Para las indicaciones del sistema, necesitas estructurar el parámetro system como una lista con un bloque de texto que incluya el campo de control de caché:

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

Cómo entender el comportamiento de la caché

Cuando realizas tu primera solicitud con contenido que se puede almacenar en caché, verás cache_creation_input_tokens en el campo de uso. Esto muestra cuántos tokens escribió Claude en la caché. En solicitudes posteriores con contenido idéntico, verás cache_read_input_tokens en su lugar.

Si tienes tanto contenido almacenado en caché como contenido nuevo en la misma solicitud, es posible que veas tanto lecturas como escrituras de caché. Por ejemplo, si mantienes los mismos esquemas de herramientas pero cambias la indicación del sistema, leerás las herramientas desde la caché mientras escribes la nueva indicación del sistema en la caché. Solo obtienes esa lectura parcial cuando las herramientas por sí solas alcanzan la longitud mínima, porque un punto de interrupción de caché cuyo contenido hasta ese punto está por debajo del mínimo no escribe nada.

Invalidación de la caché

La caché es extremadamente sensible a los cambios. Modificar incluso un solo carácter en la descripción de tu esquema de herramienta, indicación del sistema o cualquier contenido almacenado en caché invalidará esa entrada de caché. Cuando esto sucede, Claude trata el contenido como completamente nuevo y crea una entrada de caché nueva.

Esta sensibilidad significa que debes ser cuidadoso respecto a lo que almacenas en caché. Los esquemas de herramientas y las indicaciones del sistema que permanecen estables a lo largo de muchas solicitudes son candidatos ideales. El contenido dinámico que cambia con frecuencia no se beneficiará del almacenamiento en caché.

Implementación práctica

En la práctica, querrás integrar el almacenamiento en caché en tus funciones de chat de forma predeterminada. La mayoría de las aplicaciones usan los mismos esquemas de herramientas e indicaciones del sistema en múltiples solicitudes, lo que las hace perfectas para el almacenamiento en caché. Los beneficios de rendimiento y costo son significativos cuando realizas muchas solicitudes con contenido similar.

Recuerda que el almacenamiento en caché es más valioso cuando envías repetidamente el mismo contenido. Dado que esto ocurre con mucha frecuencia en aplicaciones reales, especialmente con esquemas de herramientas e indicaciones del sistema, implementar el almacenamiento en caché desde el principio de tu proceso de desarrollo dará buenos frutos a medida que tu aplicación escale.