Almacenamiento en caché de contexto

En un flujo de trabajo de IA típico, puedes pasar los mismos tokens de entrada una y otra vez a un modelo. Con la función de almacenamiento en caché de contexto de la API de Gemini, puedes pasar parte del contenido al modelo una vez, almacenar en caché los tokens de entrada y, luego, consultar los tokens almacenados en caché para solicitudes posteriores. En ciertos volúmenes, el uso de tokens almacenados en caché es un costo menor (y puede ser una latencia menor) que pasar el mismo corpus de tokens de forma repetida.

Cuando almacenas en caché un conjunto de tokens, puedes elegir cuánto tiempo quieres que exista la caché antes de que los tokens se borren automáticamente. Esta duración del almacenamiento en caché se denomina el tiempo de actividad (TTL). El costo del almacenamiento en caché depende del tamaño del token de entrada y del tiempo que desees que los tokens persistan.

El almacenamiento en caché de contexto admite Gemini 1.5 Pro y Gemini 1.5 Flash.

Cuándo usar el almacenamiento en caché de contexto

El almacenamiento en caché de contexto es particularmente adecuado para situaciones en las que las solicitudes más cortas hacen referencia repetidamente a un contexto inicial sustancial. Considera usar el almacenamiento en caché de contexto para casos de uso como los siguientes:

  • Chatbots con instrucciones del sistema detalladas
  • Análisis repetitivo de archivos de video largos
  • Consultas recurrentes en conjuntos de documentos de gran tamaño
  • Análisis frecuente del repositorio de código o corrección de errores

Cómo el almacenamiento en caché reduce los costos

El almacenamiento en caché de contexto es una función pagada diseñada para reducir los costos operativos generales. La facturación se basa en los siguientes factores:

  1. Recuento de tokens de caché: Es la cantidad de tokens de entrada almacenados en caché que se facturan a una tarifa reducida cuando se incluyen en mensajes posteriores.
  2. Duración del almacenamiento: La cantidad de tiempo que se almacenan los tokens almacenados en caché (TTL) y se factura por hora. No hay límites mínimos o máximos en el TTL.
  3. Otros factores: Se aplican otros cargos, por ejemplo, por los tokens de entrada y los tokens de salida que no se almacenaron en caché.

Para obtener información actualizada sobre los precios, consulta la página de precios de la API de Gemini. Si deseas obtener información para contar tokens, consulta la Guía de tokens.

Cómo usar el almacenamiento en caché de contexto

En esta sección, se da por sentado que instalaste un SDK de Gemini y configuraste una clave de API, como se muestra en la quickstart.

Consideraciones adicionales

Ten en cuenta las siguientes consideraciones cuando uses el almacenamiento en caché de contexto:

  • El recuento mínimo de tokens de entrada para el almacenamiento en caché de contexto es 32,768 y el máximo es el mismo que el máximo para el modelo determinado. (para obtener más información sobre el recuento de tokens, consulta la guía de tokens).
  • Puedes configurar el tiempo de actividad (TTL) para tu caché, como se muestra en el código de ejemplo. Si no está configurado, el TTL predeterminado es de 1 hora.
  • El modelo no hace ninguna distinción entre los tokens almacenados en caché y los tokens de entrada regulares. El contenido almacenado en caché es solo un prefijo de la instrucción.
  • El servicio de almacenamiento en caché proporciona una operación de eliminación para quitar contenido de la caché de forma manual. Para obtener más detalles, consulta la documentación del SDK que prefieras.
  • En el nivel pagado, no hay límites especiales de frecuencia ni de uso en el almacenamiento en caché de contexto. Se aplican los límites de frecuencia estándar de GenerateContent, y los límites de tokens incluyen los tokens almacenados en caché. En el nivel sin costo, hay un límite de almacenamiento de 1 millón de tokens para Gemini 1.5 Flash, y el almacenamiento en caché no está disponible para Gemini 1.5 Pro.
  • No es posible recuperar ni ver el contenido almacenado en caché, pero puedes recuperar los metadatos (name, display_name, model, y los tiempos de creación, actualización y vencimiento).
  • Es posible establecer un nuevo ttl o expire_time. No se admite cambiar nada más sobre el contenido almacenado en caché.
  • La cantidad de tokens almacenados en caché se muestra en usage_metadata desde las operaciones create, get y list del servicio de caché, y también en GenerateContent cuando se usa la caché.