É possível usar o armazenamento em cache de contexto nos seus modelos do Gemini ajustados para melhorar o desempenho e reduzir os custos de comandos que incluem grandes quantidades de contexto. Ao armazenar em cache o contexto usado com frequência, você evita o reenvio de grandes quantidades de dados a cada solicitação para o modelo refinado.
As operações de gerenciamento (Read, Update, Delete) do cache de contexto para modelos ajustados do Gemini permanecem consistentes com os modelos de base. Apenas a criação e a inferência de conteúdo em cache exigem um ajuste específico, detalhado nas seções a seguir.
Pré-requisitos
Ajustar um modelo do Gemini:você precisa de um modelo do Gemini ajustado e implantado com base em um modelo de base compatível. Consulte a Visão geral do cache de contexto. Para mais detalhes sobre como ajustar um modelo do Gemini, consulte Ajustar um modelo do Gemini. Para acessar o endpoint do modelo ajustado implantado, consulte Implantar um modelo ajustado.
Verifique se você tem as seguintes informações:
- O ID e a versão do modelo do Gemini ajustado
- O nome do recurso de endpoint para o modelo ajustado implantado.
Versões compatíveis
Os modelos do Gemini ajustados são compatíveis com o armazenamento em cache implícito nas seguintes versões:
- Gemini 3.1 Pro
- Gemini 3.1 Flash-Lite
- Gemini 3 Pro
- Gemini 3 Flash
- Gemini 2.5 Pro
- Gemini 2.5 Flash
- Gemini 2.5 Flash-Lite
O armazenamento em cache explícito é compatível com as seguintes versões:
- Gemini 3.1 Pro
- Gemini 3.1 Flash-Lite
- Gemini 3 Pro
- Gemini 3 Flash
- Gemini 2.5 Pro
- Gemini 2.5 Flash
- Gemini 2.5 Flash-Lite
- Gemini 2.0 Flash (observação: não disponível em
gemini-2.0-flash-live-preview-04-09) - Gemini 2.0 Flash-Lite
Criar um cache de contexto para um modelo ajustado
O procedimento para criar um cache de contexto para um modelo refinado segue as etapas descritas em Criar um cache de contexto. Consulte a documentação vinculada para o processo geral. Este guia se concentra na diferença de criar um cache de contexto para modelos Gemini ajustados.
Em vez de usar o modelo de base na forma de projects/{PROJECT}/locations/{LOCATION}/publishers/google/models/{MODEL}, use o modelo ajustado na forma de projects/{PROJECT}/locations/{LOCATION}/models/{MODEL}@{VERSION}.
Os exemplos a seguir mostram como criar um cache de contexto com um modelo do Gemini ajustado.
REST
É possível usar o REST para criar um cache de contexto usando a API Agent Platform para enviar uma solicitação POST ao endpoint do modelo do publisher. O exemplo a seguir mostra como criar um cache de contexto usando um arquivo armazenado em uma instância do Cloud Storage do Cloud Storage.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: o ID do projeto.
- LOCATION: a região para processar a solicitação e onde o conteúdo em cache é armazenado. Para conferir uma lista de regiões aceitas, consulte Regiões disponíveis.
- MODEL_ID: o ID do modelo do Gemini ajustado.
- MODEL_VERSION: a versão do modelo do Gemini ajustado.
- CACHE_DISPLAY_NAME: um nome de exibição significativo para descrever e ajudar a identificar cada cache de contexto.
- MIME_TYPE: o tipo MIME do conteúdo a ser armazenado em cache.
- CONTENT_TO_CACHE_URI: o URI do Cloud Storage do conteúdo a ser armazenado em cache.
Método HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/cachedContents
Corpo JSON da solicitação:
{
"model": "projects/PROJECT_ID/locations/LOCATION/models/MODEL_ID@MODEL_VERSION",
"displayName": "CACHE_DISPLAY_NAME",
"contents": [{
"role": "user",
"parts": [{
"fileData": {
"mimeType": "MIME_TYPE",
"fileUri": "CONTENT_TO_CACHE_URI"
}
}]
}]
}
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando abaixo:
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
Salve o corpo da solicitação em um arquivo com
o nome request.json e execute o comando abaixo:
$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
Você vai receber uma resposta JSON semelhante a esta:
Exemplo de comando curl
LOCATION="us-central1"
MODEL_ID="model-id"
PROJECT_ID="test-project"
MODEL_VERSION=1
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}/cachedContents -d \
'{
"model":"projects/${PROJECT_ID}/locations/${LOCATION}/models/${MODEL_ID}@${MODEL_VERSION}",
"contents": [
{
"role": "user",
"parts": [
{
"fileData": {
"mimeType": "${MIME_TYPE}",
"fileUri": "${CACHED_CONTENT_URI}"
}
}
]
}
]
}'
Usar um cache de contexto para um modelo ajustado
O procedimento para usar um cache de contexto em um modelo refinado segue as etapas descritas em Usar um cache de contexto. Consulte a documentação vinculada para o processo geral. Este guia se concentra na diferença de usar o cache de contexto para modelos do Gemini ajustados.
Em vez de enviar a solicitação para o endpoint do modelo de base na forma de projects/{PROJECT}/locations/{LOCATION}/publishers/google/models/{MODEL}, envie para o endpoint do modelo ajustado implantado na forma de projects/{PROJECT}/locations/{LOCATION}/endpoints/{ENDPOINT_ID}.
O exemplo de código a seguir mostra como usar um cache de contexto com um modelo do Gemini ajustado.
Ao usar um cache de contexto, não é possível especificar as seguintes propriedades:
GenerativeModel.system_instructionsGenerativeModel.tool_configGenerativeModel.tools
REST
É possível usar REST para especificar um cache de contexto com um prompt usando a API Agent Platform para enviar uma solicitação POST ao endpoint do modelo do publisher.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: o ID do projeto.
- LOCATION: a região onde a solicitação para criar o cache de contexto foi processado.
- ENDPOINT_ID: o endpoint em que o modelo ajustado é implantado.
- PROMPT_TEXT: o comando de texto a ser enviado ao modelo.
Método HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/endpoints/ENDPOINT_ID:generateContent
Corpo JSON da solicitação:
{
"cachedContent": "projects/PROJECT_NUMBER/locations/LOCATION/cachedContents/CACHE_ID",
"contents": [
{"role":"user","parts":[{"text":"PROMPT_TEXT"}]}
],
"generationConfig": {
"maxOutputTokens": 8192,
"temperature": 1,
"topP": 0.95,
},
"safetySettings": [
{
"category": "HARM_CATEGORY_HATE_SPEECH",
"threshold": "BLOCK_MEDIUM_AND_ABOVE"
},
{
"category": "HARM_CATEGORY_DANGEROUS_CONTENT",
"threshold": "BLOCK_MEDIUM_AND_ABOVE"
},
{
"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
"threshold": "BLOCK_MEDIUM_AND_ABOVE"
},
{
"category": "HARM_CATEGORY_HARASSMENT",
"threshold": "BLOCK_MEDIUM_AND_ABOVE"
}
],
}
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando abaixo:
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/endpoints/ENDPOINT_ID:generateContent"
PowerShell
Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:
$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/endpoints/ENDPOINT_ID:generateContent" | Select-Object -Expand Content
Você receberá uma resposta JSON semelhante a seguinte.
Exemplo de comando curl
LOCATION="us-central1"
PROJECT_ID="test-project"
ENDPOINT_ID=987654321
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}/endpoints/${ENDPOINT_ID}:generateContent" -d \
'{
"cachedContent": "projects/${PROJECT_NUMBER}/locations/${LOCATION}/cachedContents/${CACHE_ID}",
"contents": [
{"role":"user","parts":[{"text":"What are the benefits of exercise?"}]}
],
"generationConfig": {
"maxOutputTokens": 8192,
"temperature": 1,
"topP": 0.95,
},
"safetySettings": [
{
"category": "HARM_CATEGORY_HATE_SPEECH",
"threshold": "BLOCK_MEDIUM_AND_ABOVE"
},
{
"category": "HARM_CATEGORY_DANGEROUS_CONTENT",
"threshold": "BLOCK_MEDIUM_AND_ABOVE"
},
{
"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
"threshold": "BLOCK_MEDIUM_AND_ABOVE"
},
{
"category": "HARM_CATEGORY_HARASSMENT",
"threshold": "BLOCK_MEDIUM_AND_ABOVE"
}
],
}'