Nesta página, mostramos como enviar solicitações de chat para o modelo Gemini usando o console do Google Cloud, a API REST e os SDKs compatíveis.
Para saber como adicionar imagens e outras mídias à sua solicitação, consulte Compreensão de imagem.
Para acessar uma lista de idiomas compatíveis com o Gemini, consulte Suporte a idiomas.
Para conferir os modelos de IA generativa e as APIs disponíveis na Vertex AI, acesse "Grupo de modelos" no console do Google Cloud.
Se você está procurando uma maneira de usar o Gemini diretamente no seu dispositivo móvel e e apps da Web, consulte os SDKs da Vertex AI para Firebase para apps para Android, Swift, da Web e Flutter.
Para testar e iterar em comandos de chat, recomendamos o uso do console do Google Cloud. Para enviar solicitações de maneira programática ao modelo, é possível usar a API REST, o SDK da Vertex AI para Python ou uma das outras bibliotecas e SDKs compatíveis mostrados nas guias a seguir.
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
C#
Antes de testar este exemplo, siga as instruções de configuração do C# na Vertex AI guia de início rápido. Para mais informações, consulte a documentação de referência da Vertex AI C# .
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
StreamGenerateContent
.
public virtual PredictionServiceClient.StreamGenerateContentStream StreamGenerateContent(GenerateContentRequest request)
Para uma resposta que não seja de streaming, use o método GenerateContentAsync
.
public virtual Task<GenerateContentResponse> GenerateContentAsync(GenerateContentRequest request)
Para mais informações sobre como o servidor pode transmitir respostas, consulte RPCs de streaming.
Código de amostra
Node.js
Antes de testar esta amostra, siga as instruções de configuração do Node.js no Guia de início rápido da IA generativa usando o SDK do Node.js. Para mais informações, consulte a documentação de referência do SDK do Node.js 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
.
const streamingResp = await generativeModel.generateContentStream(request);
Para uma resposta que não seja de streaming, use o método generateContent
.
const streamingResp = await generativeModel.generateContent(request);
Código de amostra
Java
Antes de testar esta amostra, siga as instruções de configuração do Java 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 Java 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
.
public ResponseStream<GenerateContentResponse> generateContentStream(Content content)
Para uma resposta que não seja de streaming, use o método generateContent
.
public GenerateContentResponse generateContent(Content content)
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
Depois de configurou seu ambiente use REST para testar uma solicitação de texto. O exemplo a seguir envia uma solicitação ao publisher endpoint do modelo.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
GENERATE_RESPONSE_METHOD
: o tipo de resposta que você quer que o modelo gere. Escolha um método que gere como você quer que a resposta do modelo seja retornada:streamGenerateContent
: a resposta é transmitida conforme é gerada para reduzir a percepção de latência para o público humano.generateContent
: a resposta será retornada depois de ser totalmente gerada.
LOCATION
: a região para processar a solicitação. As opções disponíveis incluem:Clicar para abrir uma lista parcial das regiões disponíveis
us-central1
us-west4
northamerica-northeast1
us-east4
us-west1
asia-northeast3
asia-southeast1
asia-northeast1
PROJECT_ID
: o ID do projeto.MODEL_ID
: o ID do modelo multimodal que você quer usar. Algumas opções incluem:gemini-1.0-pro-002
gemini-1.0-pro-vision-001
gemini-1.5-pro-001
gemini-1.5-flash
TEXT1
As instruções de texto a serem incluídas em o primeiro comando da conversa de várias interações. Por exemplo,What are all the colors in a rainbow?
TEXT2
: as instruções de texto a serem incluídas no segundo comando. Por exemplo,Why does it appear when it rains?
TEMPERATURE
: a temperatura é usada para amostragem durante a geração da resposta, que ocorre quandotopP
etopK
são aplicados. A temperatura controla o grau de aleatoriedade na seleção do token. Temperaturas mais baixas são boas para solicitações que exigem uma resposta menos aberta ou criativa, enquanto temperaturas mais altas podem levar a resultados mais diversos ou criativos. Uma temperatura de0
significa que os tokens de maior probabilidade são sempre selecionados. Nesse caso, as respostas para uma determinada solicitação são, na maioria das vezes, deterministas, mas uma pequena variação ainda é possível.Se o modelo retornar uma resposta muito genérica, muito curta ou se o modelo fornecer uma resposta alternativa, tente aumentar a temperatura.
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo chamado request.json
.
Execute o comando a seguir no terminal para criar ou substituir
esse arquivo no diretório atual:
cat > request.json << 'EOF' { "contents": [ { "role": "user", "parts": { "text": "TEXT1" } }, { "role": "model", "parts": { "text": "What a great question!" } }, { "role": "user", "parts": { "text": "TEXT2" } } ], "generation_config": { "temperature": TEMPERATURE } } EOF
Depois execute o comando a seguir para enviar a solicitação REST:
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/MODEL_ID:GENERATE_RESPONSE_METHOD"
PowerShell
Salve o corpo da solicitação em um arquivo chamado request.json
.
Execute o comando a seguir no terminal para criar ou substituir
esse arquivo no diretório atual:
@' { "contents": [ { "role": "user", "parts": { "text": "TEXT1" } }, { "role": "model", "parts": { "text": "What a great question!" } }, { "role": "user", "parts": { "text": "TEXT2" } } ], "generation_config": { "temperature": TEMPERATURE } } '@ | Out-File -FilePath request.json -Encoding utf8
Depois execute o comando a seguir para enviar a solicitação REST:
$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/MODEL_ID:GENERATE_RESPONSE_METHOD" | Select-Object -Expand Content
Você receberá uma resposta JSON semelhante a seguinte.
Observe o seguinte no URL deste exemplo:- Use o
generateContent
para solicitar que a resposta seja retornada depois de ser totalmente gerada. Para reduzir a percepção de latência ao público humano, transmita a resposta à medida que geradas usando ostreamGenerateContent
. - O ID do modelo multimodal está localizado no final do URL, antes do método
Por exemplo,
gemini-1.5-flash
ougemini-1.0-pro-vision
). Este exemplo pode oferecer suporte a outras modelos de classificação.
Console
Para usar o Vertex AI Studio a fim de testar um prompt de chat no console do Google Cloud, faça o seguinte:
- Na seção "Vertex AI" do console do Google Cloud, acesse a página do Vertex AI Studio.
- Em Iniciar uma conversa, clique em Chat de texto.
Opcional: configure o modelo e os parâmetros:
- Modelo: selecione Gemini Pro.
- Região: selecione a região que você quer usar.
Temperatura: use o controle deslizante ou a caixa de texto para inserir um valor para a temperatura.
A temperatura é usada para amostragem durante a geração da resposta, que ocorre quandotopP
etopK
são aplicados. A temperatura controla o grau de aleatoriedade na seleção do token. Temperaturas mais baixas são boas para solicitações que exigem uma resposta menos aberta ou criativa, enquanto temperaturas mais altas podem levar a resultados mais diversos ou criativos. Uma temperatura de0
significa que os tokens de maior probabilidade são sempre selecionados. Nesse caso, as respostas para uma determinada solicitação são, na maioria das vezes, deterministas, mas uma pequena variação ainda é possível.Se o modelo retornar uma resposta muito genérica, muito curta ou se o modelo fornecer uma resposta alternativa, tente aumentar a temperatura.
Limite de token de saída: use o controle deslizante ou a caixa de texto para inserir um valor para o limite de saída máximo.
Número máximo de tokens que podem ser gerados na resposta. Um token tem cerca de quatro caracteres. 100 tokens correspondem a cerca de 60 a 80 palavras.Especifique um valor mais baixo para respostas mais curtas e um valor mais alto para respostas potencialmente mais longas.
- Adicionar sequência de paradas: opcional. Insira uma sequência de paradas, que é uma série de caracteres que inclui espaços. Se o modelo encontrar uma sequência de paradas, a geração de resposta será interrompida. A sequência de paradas não é incluída na resposta, e você pode adicionar até cinco sequências de paradas.
- Opcional: para configurar parâmetros avançados, clique em Avançado e
faça a configuração da seguinte maneira:
Clique para abrir as configurações avançadas
Top-K: use o controle deslizante ou a caixa de texto para inserir um valor para "top-K".
O top-k muda a forma como o modelo seleciona tokens para saída. Um top-K de1
significa que o próximo token selecionado é o mais provável entre todos os tokens no vocabulário do modelo (também chamado de decodificação gananciosa), enquanto um top-K de3
significa que o próximo token está selecionado entre os três tokens mais prováveis usando a temperatura.Para cada etapa da seleção de tokens, são amostrados os tokens top-K com as maiores probabilidades. Em seguida, os tokens são filtrados com base no valor de top-P com o token final selecionado por meio da amostragem de temperatura.
Especifique um valor mais baixo para respostas menos aleatórias e um valor mais alto para respostas mais aleatórias.
- Top-P: use o controle deslizante ou a caixa de texto para inserir um valor para essa parte.
Os tokens são selecionados do mais provável para o menos até que a soma das probabilidades seja igual ao valor do top-P. Para ter menos resultados de variáveis,
defina top-P como
0
. - Ativar embasamento: adicione uma fonte de embasamento e um caminho para personalizar esse recurso.
- Digite o comando de texto no painel Prompt. O modelo usa as mensagens anteriores como contexto para novas respostas.
- Opcional: para exibir o número de tokens de texto, clique em Ver tokens. É possível conferir os tokens ou IDs de token do comando de texto.
- Para ver os tokens no comando de texto destacados com cores diferentes marcando o limite de cada ID de token, clique em ID do token para texto. Tokens de mídia não são aceitos.
- Para acessar os IDs de token, clique em ID do token.
Para fechar o painel da ferramenta tokenizadora, clique em X ou clique fora do painel.
- Clique em Enviar.
- Opcional: para salvar a solicitação em Minhas solicitações, clique em Salvar.
- Opcional: para receber o código Python ou um comando curl para seu prompt, clique em Ver código.
- Opcional: para limpar todas as mensagens anteriores, clique em Limpar conversa
É possível usar instruções do sistema para orientar o comportamento do modelo com base em um uma necessidade ou um caso de uso específico. Por exemplo, é possível definir uma persona ou um papel chatbot que responde a solicitações de atendimento ao cliente. Para mais informações, consulte as exemplos de código de instruções do sistema (link em inglês).
A seguir
Saiba como enviar solicitações de comandos multimodais:
Saiba mais sobre as práticas recomendadas de IA responsável e os filtros de segurança da Vertex AI.