Pode usar APIs REST ou o SDK Python para fazer referência a conteúdo armazenado numa cache de contexto numa aplicação de IA generativa. Antes de poder ser usado, tem de criar a cache de contexto.
O objeto de cache de contexto que usa no seu código inclui as seguintes propriedades:
name
- O nome do recurso da cache de contexto. O formato éprojects/PROJECT_NUMBER/locations/LOCATION/cachedContents/CACHE_ID
. Quando cria uma cache de contexto, pode encontrar o respetivo nome do recurso na resposta. O número do projeto é um identificador exclusivo do seu projeto. O ID da cache é um ID para a sua cache. Quando especifica uma cache de contexto no seu código, tem de usar o nome completo do recurso da cache de contexto. Segue-se um exemplo que mostra como especificar um nome de recurso de conteúdo em cache num corpo do pedido:"cached_content": "projects/123456789012/locations/us-central1/123456789012345678"
model
- O nome do recurso do modelo usado para criar a cache. O formato éprojects/PROJECT_NUMBER/locations/LOCATION/publishers/PUBLISHER_NAME/models/MODEL_ID
.createTime
- UmTimestamp
que especifica a hora de criação da cache de contexto.updateTime
- UmTimestamp
que especifica a hora de atualização mais recente de uma cache de contexto. Depois de criar uma cache de contexto e antes de a atualizar, o respetivocreateTime
eupdateTime
são iguais.expireTime
- UmTimestamp
que especifica quando uma cache de contexto expira. O valor predefinidoexpireTime
é 60 minutos após acreateTime
. Pode atualizar a cache com um novo tempo de validade. Para mais informações, consulte o artigo Atualize a cache de contexto. Depois de um cache expirar, é marcado para eliminação e não deve assumir que pode ser usado ou atualizado. Se precisar de usar uma cache de contexto que expirou, tem de a recriar com um tempo de expiração adequado.
Restrições de utilização da cache de contexto
As seguintes funcionalidades podem ser especificadas quando cria uma cache de contexto. Não deve especificá-los novamente na sua solicitação:
A propriedade
GenerativeModel.system_instructions
. Esta propriedade é usada para especificar instruções ao modelo antes de o modelo receber instruções de um utilizador. Para mais informações, consulte as Instruções do sistema.A propriedade
GenerativeModel.tool_config
. A propriedadetool_config
é usada para especificar as ferramentas usadas pelo modelo Gemini, como uma ferramenta usada pela funcionalidade chamada de função.A propriedade
GenerativeModel.tools
. A propriedadeGenerativeModel.tools
é usada para especificar funções para criar uma aplicação de chamadas de funções. Para mais informações, consulte Chamada de funções.
Use um exemplo de cache de contexto
O exemplo seguinte mostra como usar uma cache de contexto. Quando usa uma cache de contexto, não pode especificar as seguintes propriedades:
GenerativeModel.system_instructions
GenerativeModel.tool_config
GenerativeModel.tools
Python
Instalação
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 gen com o 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=global 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 gen com o 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=global export GOOGLE_GENAI_USE_VERTEXAI=True
Java
Saiba como instalar ou atualizar o Java.
Para saber mais, consulte a documentação de referência do SDK.
Defina variáveis de ambiente para usar o SDK de IA gen com o 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=global export GOOGLE_GENAI_USE_VERTEXAI=True
Node.js
Instalação
npm install @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 gen com o 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=global export GOOGLE_GENAI_USE_VERTEXAI=True
REST
Pode usar o REST para usar uma cache de contexto com um comando usando a API Vertex AI para enviar um pedido POST para o ponto final do modelo do publicador.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o seu ID do projeto.
- LOCATION: a região onde o pedido para criar a cache de contexto foi processado.
- MIME_TYPE: o comando de texto a enviar para o 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 do pedido:
{ "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 o seu pedido, escolha uma destas opções:
curl
Guarde o corpo do pedido num ficheiro com o nome request.json
,
e execute o seguinte 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/publishers/google/models/gemini-2.0-flash-001:generateContent"
PowerShell
Guarde o corpo do pedido num ficheiro com o nome request.json
,
e execute o seguinte 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/publishers/google/models/gemini-2.0-flash-001:generateContent" | Select-Object -Expand Content
Deve receber uma resposta JSON semelhante à seguinte.
Comando curl de exemplo
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 tempo de expiração de uma cache de contexto.
- Saiba como criar uma nova cache de contexto.
- Saiba como obter informações sobre todas as caches de contexto associadas a um Google Cloud projeto.
- Saiba como eliminar uma cache de contexto.