El contenido almacenado en caché puede ser cualquiera de los tipos de MIME compatibles con los modelos multimodales de Gemini. Por ejemplo, puedes almacenar en caché una gran cantidad de texto, audio o video. Puedes especificar más de un archivo para almacenar en caché. Para obtener más información, consulta los siguientes requisitos de contenido multimedia:
Especificas el contenido que se almacenará en caché con un blob, texto o una ruta de acceso a un archivo que se almacena en un bucket de Cloud Storage. Si el tamaño del contenido que almacenas en caché es superior a 10 MB, debes especificarlo con el URI de un archivo almacenado en un bucket de Cloud Storage.
El contenido almacenado en caché tiene una vida útil finita. El tiempo de vencimiento predeterminado de una caché de contexto es de 60 minutos después de su creación. Si deseas un tiempo de vencimiento diferente, puedes especificarlo con la propiedad ttl
o expire_time
cuando crees una caché de contexto. También puedes actualizar la fecha de vencimiento de una caché de contexto sin vencer. Para obtener información sobre cómo especificar ttl
y expire_time
, consulta Actualiza el tiempo de vencimiento.
Una vez que vence una caché de contexto, ya no está disponible. Si quieres hacer referencia al contenido de una caché de contexto vencida en solicitudes de instrucciones futuras, debes volver a crear la caché de contexto.
Límites
El contenido que almacenes en caché debe cumplir con los límites que se muestran en la siguiente tabla:
Límites de almacenamiento en caché de contexto | |
---|---|
Tamaño mínimo de una caché |
32,769 tokens |
Es el tamaño máximo de contenido que puedes almacenar en caché con un BLOB o texto. |
10 MB |
Es el tiempo mínimo antes de que venza una caché después de su creación. |
1 minuto |
Es el tiempo máximo antes de que venza una caché después de su creación. |
No hay una duración máxima de la caché. |
Compatibilidad con la ubicación
La caché de contexto no es compatible con la región de Sídney, Australia (australia-southeast1
).
Compatibilidad con claves de encriptación
La caché de contexto no admite claves de encriptación administradas por el cliente (CMEK).
Compatibilidad con la transparencia de acceso
La caché de contexto admite la Transparencia de acceso.
Ejemplo de creación de caché de contexto
En los siguientes ejemplos, se muestra cómo crear una caché de contexto.
Gen AI SDK for Python
Instalar
pip install --upgrade google-genai
Establece variables de entorno para usar el SDK de Gen AI con Vertex AI:
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=us-central1 export GOOGLE_GENAI_USE_VERTEXAI=True
REST
Puedes usar REST para crear una caché de contexto mediante la API de Vertex AI para enviar una solicitud POST al extremo del modelo del publicador. En el siguiente ejemplo, se muestra cómo crear una caché de contexto con un archivo almacenado en un bucket de Cloud Storage.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: El ID del proyecto.
- LOCATION: Es la región para procesar la solicitud y en la que se almacena el contenido almacenado en caché. Para obtener una lista de las regiones compatibles, consulta Regiones disponibles.
- CACHE_DISPLAY_NAME: Es un nombre visible significativo que describe y te ayuda a identificar cada caché de contexto.
- MIME_TYPE: Es el tipo de MIME del contenido que se almacenará en caché.
- CONTENT_TO_CACHE_URI: Es el URI de Cloud Storage del contenido que se almacenará en caché.
Método HTTP y URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/cachedContents
Cuerpo JSON de la solicitud:
{ "model": "projects/PROJECT_ID/locations/LOCATION/publishers/google/models/gemini-1.5-pro-002", "displayName": "CACHE_DISPLAY_NAME", "contents": [{ "role": "user", "parts": [{ "fileData": { "mimeType": "MIME_TYPE", "fileUri": "CONTENT_TO_CACHE_URI" } }] }, { "role": "model", "parts": [{ "text": "This is sample text to demonstrate explicit caching." }] }] }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/cachedContents"
PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/cachedContents" | Select-Object -Expand Content
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
Ejemplo del comando curl
LOCATION="us-central1"
MODEL_ID="gemini-1.5-pro-002"
PROJECT_ID="test-project"
MIME_TYPE="video/mp4"
CACHED_CONTENT_URI="gs://path-to-bucket/video-file-name.mp4"
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://${LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/publishers/google/models/${MODEL_ID}/cachedContents -d \
'{
"model":"projects/${PROJECT_ID}/locations/${LOCATION}/publishers/google/models/${MODEL_ID}",
"contents": [
{
"role": "user",
"parts": [
{
"fileData": {
"mimeType": "${MIME_TYPE}",
"fileUri": "${CACHED_CONTENT_URI}"
}
}
]
}
]
}'
¿Qué sigue?
- Obtén más información sobre cómo usar una caché de contexto.
- Obtén más información sobre cómo actualizar la fecha de vencimiento de una caché de contexto.