Você pode usar o armazenamento em cache de contexto para seus modelos do Gemini ajustados para melhorar a performance 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 com cada solicitação para o modelo ajustado.
As operações de gerenciamento (Read
, Update
, Delete
) do cache de contexto para o Gemini ajustado permanecem consistentes com os modelos básicos. Somente a criação e a inferência de conteúdo em cache exigem ajustes específicos, que são detalhados a seguir.
Modelos compatíveis
O armazenamento em cache de contexto é compatível com modelos ajustados com base no seguinte modelo básico:
gemini-2.0-flash-001
Pré-requisitos
Ajuste fino de um modelo do Gemini:é necessário implantar um modelo do Gemini ajustado com base em um modelo base compatível (consulte Modelos compatíveis). Para saber como ajustar um modelo do Gemini, consulte Ajustar um modelo do Gemini. Para conferir o endpoint do modelo ajustado implantado, consulte Implantar um modelo ajustado.
Confira se você tem as seguintes informações:
- O ID e a versão do modelo Gemini ajustado
- O nome do recurso de endpoint do modelo ajustado implantado
Criar um cache de contexto para um modelo ajustado
O modelo de base compatível está listado em Modelos compatíveis.
O procedimento para criar um cache de contexto para um modelo ajustado segue em grande parte as etapas descritas em Criar um cache de contexto. Consulte a documentação vinculada para conferir o processo geral. Este guia se concentra na diferença entre a criação de cache de contexto para modelos Gemini ajustados.
Em vez de usar o modelo base em projects/{PROJECT}/locations/{LOCATION}/publishers/google/models/{MODEL}
, use o modelo ajustado em projects/{PROJECT}/locations/{LOCATION}/models/{MODEL}@{VERSION}
.
Os exemplos a seguir mostram como criar um cache de contexto com um modelo Gemini ajustado.
REST
É possível usar o REST para criar um cache de contexto usando a API Vertex AI para enviar uma POST para o 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 ajustada.
- 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" } }] }, { "role": "model", "parts": [{ "text": "This is sample text to demonstrate explicit caching." }] }] }
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 a seguir:
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 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/cachedContents" | Select-Object -Expand Content
Você 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 para um modelo ajustado segue em grande parte as etapas descritas em Usar um cache de contexto. Consulte a documentação vinculada para conferir o processo geral. Este guia se concentra na diferença entre o uso do cache de contexto para modelos ajustados do Gemini.
Em vez de enviar a solicitação ao endpoint do modelo básico na forma de projects/{PROJECT}/locations/{LOCATION}/publishers/google/models/{MODEL}
, envie-a ao 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_instructions
GenerativeModel.tool_config
GenerativeModel.tools
REST
É possível usar o REST para especificar um cache de contexto com um comando usando a API Vertex AI para enviar uma solicitação POST ao endpoint do modelo do editor.
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.
- MIME_TYPE: o comando de texto a ser enviado para o 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 a seguir:
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"
}
],
}'