É preciso criar um cache de contexto antes de usá-lo. O cache de contexto que você create contém uma grande quantidade de dados que você pode usar em várias solicitações para um modelo do Gemini. O conteúdo em cache é armazenado na região em que você faz o para criar o cache.
O conteúdo em cache pode ser qualquer um dos tipos MIME compatíveis com o multimodal do Gemini. e modelos de ML. Por exemplo, é possível armazenar em cache uma grande quantidade de texto, áudio ou vídeo. Você podem especificar mais de um arquivo para armazenar em cache. Para mais informações, consulte os seguintes requisitos de mídia:
Você especifica o conteúdo a ser armazenado em cache usando um blob, texto ou um caminho para um arquivo armazenadas em um bucket do Cloud Storage. Se o tamanho do conteúdo armazenado em cache for maior que 10 MB, especifique-o usando o URI de um arquivo armazenadas em um bucket do Cloud Storage.
O conteúdo armazenado em cache tem uma vida útil finita. O prazo de validade padrão de um contexto
que é criado depois de 60 minutos. Se você quiser um prazo de validade diferente,
é possível especificar um prazo de validade diferente usando ttl
ou expire_time
.
propriedade quando você cria um cache de contexto. Também é possível atualizar a data de validade
tempo para um cache de contexto não expirado. Para mais informações sobre como especificar
ttl
e expire_time
, consulte
Atualize o prazo de validade.
Depois que um cache de contexto expira, ele não está mais disponível. Se você quiser referenciar o conteúdo em um cache de contexto expirado em solicitações de solicitações futuras será preciso recriar o cache de contexto.
Limites do cache de contexto
O conteúdo armazenado em cache precisa seguir os seguintes limites:
Limites de armazenamento em cache contextual | |
---|---|
Tamanho mínimo de um cache |
32.769 tokens |
Tamanho máximo de conteúdo que pode ser armazenado em cache usando um blob ou texto |
10 MB |
Tempo mínimo antes de um cache expirar após ser criado |
1 minuto |
O tempo máximo para que um cache expire após ser criado |
Não há uma duração máxima de cache |
Exemplo de criação de cache de contexto
Os exemplos a seguir mostram como criar um cache de contexto.
Python
Para saber como instalar o SDK da Vertex AI para Python, consulte Instalar o SDK da Vertex AI para Python. Saiba mais na documentação de referência da API SDK da Vertex AI para Python.
Respostas com e sem streaming
Escolha se o modelo vai gerar respostas de streaming ou sem streaming. Para respostas de streaming, você recebe cada resposta assim que o token de saída for gerado. Para respostas que não são de streaming, você recebe todas as respostas depois que todos os tokens de saída forem gerados.
Para uma resposta de streaming, use o parâmetro stream
em
generate_content
.
response = model.generate_content(contents=[...], stream = True)
Para uma resposta que não seja de streaming, remova o parâmetro ou defina-o como False
.
Código de amostra
Go
Antes de testar esta amostra, siga as instruções de configuração do Go no Guia de início rápido da Vertex AI. Para mais informações, consulte a documentação de referência do SDK da Vertex AI para Go para Gemini.
Para autenticar na Vertex AI, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Respostas com e sem streaming
Escolha se o modelo vai gerar respostas de streaming ou sem streaming. Para respostas de streaming, você recebe cada resposta assim que o token de saída for gerado. Para respostas que não são de streaming, você recebe todas as respostas depois que todos os tokens de saída forem gerados.
Para uma resposta de streaming, use o método
GenerateContentStream
.
iter := model.GenerateContentStream(ctx, genai.Text("Tell me a story about a lumberjack and his giant ox. Keep it very short."))
Para uma resposta que não seja de streaming, use o método GenerateContent
.
resp, err := model.GenerateContent(ctx, genai.Text("What is the average size of a swallow?"))
Código de amostra
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.
- 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/v1beta1/projects/PROJECT_ID/locations/LOCATION/cachedContents
Corpo JSON da solicitação:
{ "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 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/v1beta1/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/v1beta1/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="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/v1beta1/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}"
}
}
]
}
]
}'
A seguir
- Saiba como usar um cache de contexto.
- Saiba como atualizar o prazo de validade de um cache de contexto.