O objeto de cache de contexto usado no seu código inclui as seguintes propriedades:
name
: o nome do recurso de cache de contexto. O formato éprojects/PROJECT_NUMBER/locations/LOCATION/cachedContents/CACHE_ID
. Ao criar um cache de contexto, o nome do recurso aparece na resposta. O número do projeto é um identificador exclusivo dele. O ID do cache é um ID para seu cache. Ao especificar um cache de contexto no seu código, use o nome completo do recurso. Confira a seguir um exemplo que mostra como especificar um nome de recurso de conteúdo em cache em um corpo de solicitação:"cached_content": "projects/123456789012/locations/us-central1/123456789012345678"
model
: o nome do recurso do modelo usado para criar o cache. O formato éprojects/PROJECT_NUMBER/locations/LOCATION/publishers/PUBLISHER_NAME/models/MODEL_ID
.createTime
: umaTimestamp
que especifica o horário de criação do cache de contexto.updateTime
: umaTimestamp
que especifica o horário da atualização mais recente de um cache de contexto. Depois que um cache de contexto é criado e antes de ser atualizado, os valores decreateTime
eupdateTime
são iguais.expireTime
: umaTimestamp
que especifica quando um cache de contexto expira. OexpireTime
padrão é de 60 minutos após ocreateTime
. É possível atualizar o cache com um novo prazo de validade. Para mais informações, consulte Atualizar o cache de contexto. Depois que um cache expira, ele é marcado para exclusão, e não é possível presumir que ele possa ser usado ou atualizado. Se você precisar usar um cache de contexto que expirou, recrie-o com um prazo de validade adequado.
Restrições de uso do cache de contexto
Os seguintes recursos podem ser especificados ao criar um cache de contexto. Não especifique esses dados novamente na solicitação:
A propriedade
GenerativeModel.system_instructions
. Ela é usada para especificar instruções ao modelo antes que ele receba comandos de um usuário. Para mais informações, consulte Instruções do sistema.A propriedade
GenerativeModel.tool_config
. A propriedadetool_config
é usada para especificar ferramentas usadas pelo modelo do Gemini, como uma ferramenta usada pelo recurso chamada de função.A propriedade
GenerativeModel.tools
. A propriedadeGenerativeModel.tools
é usada para especificar funções e criar um aplicativo de chamada de função. Para mais informações, consulte Chamada de função.
Usar uma amostra de cache de contexto
Veja a seguir como usar um cache de contexto. Ao usar um cache de contexto, não é possível especificar as seguintes propriedades:
GenerativeModel.system_instructions
GenerativeModel.tool_config
GenerativeModel.tools
Python
Instalar
pip install --upgrade google-genai
Para saber mais, consulte a documentação de referência do SDK.
Defina variáveis de ambiente para usar o SDK de IA generativa com a 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
Go
Saiba como instalar ou atualizar o Go.
Para saber mais, consulte a documentação de referência do SDK.
Defina variáveis de ambiente para usar o SDK de IA generativa com a 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
É possível usar REST para usar 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.
- MIME_TYPE: 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/publishers/google/models/gemini-2.0-flash-001: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/publishers/google/models/gemini-2.0-flash-001: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/publishers/google/models/gemini-2.0-flash-001:generateContent" | Select-Object -Expand Content
Você receberá uma resposta JSON semelhante a seguinte.
Exemplo de comando curl
LOCATION="us-central1"
MODEL_ID="gemini-2.0-flash-001"
PROJECT_ID="test-project"
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}: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"
}
],
}'
- Saiba como atualizar o prazo de validade de um cache de contexto.
- Saiba como criar um novo cache de contexto.
- Saiba como receber informações sobre todos os caches de contexto associados a um Google Cloud projeto.
- Saiba como excluir um cache de contexto.