A família de modelos do Gemini inclui modelos que funcionam com solicitações de comando multimodais. O termo multimodal indica que é possível usar mais de uma modalidade, ou tipo de entrada, em um comando. Os modelos que não são multimodais aceitam solicitações apenas com texto. As modalidades podem incluir texto, áudio, vídeo e muito mais.
Há várias maneiras de implementar soluções multimodais usando a API Gemini, incluindo os SDKs para Python, Node.js, Java e Go, o console do Google Cloud e a API REST. Os exemplos de código mais adiante neste documento demonstram como criar soluções multimodais usando essas opções.
Os modelos multimodais do Gemini são:
- Gemini 1.5 Flash
- Gemini 1.5 Pro
- Gemini 1.0 Pro Vision
A tabela a seguir indica com quais modalidades cada API multimodal do Gemini trabalha em uma solicitação de solicitação.
Modelo | Texto | Código | Imagens | Áudio | Vídeo | Vídeo/áudio | |
---|---|---|---|---|---|---|---|
Gemini 1.5 Flash | |||||||
Gemini 1.5 Pro | |||||||
Gemini 1.0 Pro Vision | |||||||
Gemini 1.0 Pro |
Para usar um modelo multimodal no console do Google Cloud, selecione o card de modelo no Model Garden:
- Acessar o card de modelo em Flash do Gemini 1.5
- Acessar o card de modelo do Gemini 1.5 Pro
- Acessar o card de modelo Gemini 1.0 Pro Vision
Para uma lista de idiomas compatíveis com os modelos do Gemini, consulte as informações do modelo Suporte a idiomas. Para saber mais sobre como criar comandos multimodais, consulte Criar comandos multimodais. Se você está procurando uma maneira de usar o Gemini diretamente dos seus apps para dispositivos móveis e da Web, consulte os SDKs da IA do Google para Android, Swift e Web.
Diferenças de modelos multimodais
As diferenças entre os modelos multimodais do Gemini são especificadas nas tabelas a seguir. Use essas informações para decidir qual é o melhor modelo para você.
Texto
Veja a seguir algumas das diferenças na modalidade de texto entre os modelos multimodais do Genmini:
Modelo | Detalhes da modalidade de texto |
---|---|
Gemini 1.5 Flash, Gemini 1.5 Pro |
O tamanho do contexto é de 1 milhão de tokens,o que equivale a aproximadamente um livro de 4.000 páginas. Isso permite que o modelo gere textos longos, como livros, vários PDFs ou manuais do usuário. |
Gemini 1.0 Pro Vision | O número máximo de tokens é 16.384,ou seja, aproximadamente um livro de 128 páginas supondo 250 palavras por página. Esse máximo inclui tokens de entrada e saída. O número máximo de tokens de saída é 2.048. |
Programar
Veja a seguir algumas das diferenças entre os modelos multimodais do Gemini ao trabalhar com código:
Modelo | Detalhes da modalidade de código |
---|---|
Gemini 1.5 Flash, Gemini 1.5 Pro |
O tamanho do contexto é de 1 milhão de tokens, o que permite que o modelo funcione com uma base de código inteira ou com uma base de código inteira do aplicativo. |
Gemini 1.0 Pro Vision | O número máximo de tokens é 16.384,ou seja, aproximadamente um livro de 128 páginas supondo 250 palavras por página. Esse máximo inclui tokens de entrada e saída. O número máximo de tokens de saída é 2.048. |
Imagem
Veja a seguir algumas das diferenças na modalidade de imagem entre os modelos multimodais do Genmini:
Modelo | Detalhes da modalidade de imagem |
---|---|
Gemini 1.5 Flash, Gemini 1.5 Pro |
O número máximo de imagens por comando é de 3.000. |
Gemini 1.0 Pro Vision | O número máximo de imagens por comando é 16. |
Áudio (somente fala)
Veja a seguir algumas das diferenças na modalidade de áudio entre os modelos multimodais do Genmini:
Modelo | Detalhes da modalidade de áudio |
---|---|
Gemini 1.5 Flash, Gemini 1.5 Pro |
O número máximo de horas de áudio por solicitação é de aproximadamente 8,4 horas, ou até 1 milhão de tokens. É possível compreender a fala para resumo, transcrição e tradução de áudio. |
Gemini 1.0 Pro Vision | O áudio não é compatível. |
Video
Veja a seguir algumas das diferenças na modalidade de vídeo entre os modelos multimodais do Genmini:
Modelo | Detalhes da modalidade de vídeo |
---|---|
Gemini 1.5 Flash, Gemini 1.5 Pro |
A duração máxima de um vídeo que inclui áudio é de aproximadamente 50 minutos. A duração máxima para vídeos sem áudio é de uma hora. O máximo de vídeos por solicitação é de 10. O modelo pode usar dados de vídeo e áudio para responder à solicitação. Por exemplo, ela pode resumir um vídeo usando o conteúdo visual e a fala do vídeo. |
Gemini 1.0 Pro Vision | A duração máxima do vídeo é de dois minutos. O número máximo de vídeos por solicitação é 1. O áudio do vídeo é ignorado. |
Veja a seguir algumas das diferenças na modalidade PDF entre os modelos multimodais do Genmini:
Modelo | Detalhes da modalidade em PDF |
---|---|
Gemini 1.5 Flash, Gemini 1.5 Pro |
O número máximo de páginas por solicitação é 300. O tamanho máximo do arquivo PDF é de 30 MB. |
Gemini 1.0 Pro Vision | O número máximo de páginas por solicitação é 16. O tamanho máximo do arquivo PDF é de 30 MB. |
Guia de início rápido
Use os exemplos de código a seguir para começar a usar a API Gemini. Cada exemplo de código demonstra o trabalho com uma modalidade diferente. Alguns exemplos de código neste documento funcionam com todos os modelos multimodais do Gemini, e outros funcionam apenas com o Gemini 1.5 Pro. Cada exemplo de código especifica com quais modelos ela funciona.
Para testar e iterar em comandos multimodais, recomendamos usar o console do Google Cloud. Para enviar um prompt multimodal com imagens de maneira programática para o modelo, use a API REST, o SDK da Vertex AI para Python ou uma das outras bibliotecas e SDKs compatíveis mostrados nas guias a seguir:
Imagem única
O exemplo de código em cada uma das guias a seguir mostra uma maneira diferente de identificar o que está em uma imagem. Esta amostra funciona com todos os modelos multimodais do Gemini.
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 gera uma resposta com streaming ou sem streaming. O streaming envolve receber respostas a solicitações à medida que são geradas. Ou seja, assim que o modelo gera tokens de saída, eles são enviados. Uma resposta sem streaming a prompts é enviada somente 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
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 gera uma resposta com streaming ou sem streaming. O streaming envolve receber respostas a prompts à medida que são geradas. Ou seja, assim que o modelo gera tokens de saída, eles são enviados. Uma resposta sem streaming a prompts é enviada somente depois que todos os tokens de saída forem gerados.
Para uma resposta de streaming, use o método
generateContentStream
.
public ResponseStreamgenerateContentStream(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
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 gera uma resposta com streaming ou sem streaming. O streaming envolve receber respostas a prompts à medida que são geradas. Ou seja, assim que o modelo gera tokens de saída, eles são enviados. Uma resposta sem streaming a prompts é enviada somente 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
REST
Use REST para testar um prompt de texto 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:
- 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:
Clique para expandir as 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. As opções são:
gemini-1.0-pro-vision
- ROLE:
o papel em uma conversa associada ao conteúdo. É necessário especificar um papel mesmo em
casos de uso de turno único.
Os valores aceitáveis são os seguintes:
USER
: especifica o conteúdo que é enviado por você.
- TEXT: as instruções de texto a serem incluídas no comando.
- B64_BASE: a codificação Base64 da imagem, do PDF ou do vídeo a ser incluído in-line no comando. Ao incluir mídia in-line, você também precisa especificar MIMETYPE.
- FILE_URI: o URI do Cloud Storage da imagem ou do vídeo a ser incluído no comando. O bucket que armazena o arquivo precisa estar no mesmo projeto do Google Cloud que está enviando a solicitação. Também é necessário especificar MIMETYPE.
- MIME_TYPE:
o tipo de mídia da imagem, PDF ou vídeo especificado nos campos
data
oufileUri
. Os valores aceitáveis são os seguintes:Clique para expandir os tipos MIME.
application/pdf
audio/mpeg
audio/mp3
audio/wav
image/png
image/jpeg
text/plain
video/mov
video/mpeg
video/mp4
video/mpg
video/avi
video/wmv
video/mpegps
video/flv
- SAFETY_CATEGORY:
a categoria de segurança para a qual configurar um limite. Os valores aceitáveis são os seguintes:
Clique para expandir as categorias de segurança
HARM_CATEGORY_SEXUALLY_EXPLICIT
HARM_CATEGORY_HATE_SPEECH
HARM_CATEGORY_HARASSMENT
HARM_CATEGORY_DANGEROUS_CONTENT
- THRESHOLD: o limite de bloqueio de respostas que podem pertencer à categoria de segurança especificada com base na probabilidade. Os valores aceitáveis são os seguintes:
Clique para expandir os limites de bloqueio
BLOCK_NONE
BLOCK_ONLY_HIGH
BLOCK_MEDIUM_AND_ABOVE
(padrão)BLOCK_LOW_AND_ABOVE
BLOCK_LOW_AND_ABOVE
bloqueia mais, eBLOCK_ONLY_HIGH
bloqueia a menor. - TEMPERATURE:
a temperatura é usada para amostragem durante a geração da resposta, que ocorre quando
topP
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.
- TOP_P:
o Top-P muda a forma como o modelo seleciona tokens para saída. Os tokens são selecionados
do mais provável (veja o top-K) para o menos provável até que a soma das probabilidades
seja igual ao valor do top-P. Por exemplo, se os tokens A, B e C tiverem uma probabilidade de
0,3, 0,2 e 0,1 e o valor de top-P for
0.5
, o modelo selecionará A ou B como token seguinte usando temperatura e exclui C como candidato.Especifique um valor mais baixo para respostas menos aleatórias e um valor mais alto para respostas mais aleatórias.
- TOP_K:
o Top-K muda a forma como o modelo seleciona tokens para saída. Um top-K de
1
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.
- MAX_OUTPUT_TOKENS:
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.
- STOP_SEQUENCES:
especifica uma lista de strings que instrui o modelo a parar de gerar texto se uma
das strings for encontrada na resposta. Se uma string aparecer várias vezes na resposta, a resposta truncará quando for encontrada pela primeira vez.
As strings diferenciam maiúsculas de minúsculas.
Por exemplo, se a resposta a seguir for retornada quandostopSequences
não for especificado:
public static string reverse(string myString)
A resposta retornada comstopSequences
definida como["Str", "reverse"]
é:
public static string
Método HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:GENERATE_RESPONSE_METHOD
Corpo JSON da solicitação:
{ "contents": { "role": "ROLE", "parts": [ { "inlineDATA": { "mimeType": "MIME_TYPE", "data": "B64_BASE_IMAGE" } }, { "fileData": { "mimeType": "MIME_TYPE", "fileUri": "FILE_URI" } }, { "text": "TEXT" } ] }, "safety_settings": { "category": "SAFETY_CATEGORY", "threshold": "THRESHOLD" }, "generation_config": { "temperature": TEMPERATURE, "topP": TOP_P, "topK": TOP_K, "candidateCount": 1, "maxOutputTokens": MAX_OUTPUT_TOKENS, "stopSequences": STOP_SEQUENCES, } }
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/MODEL_ID:GENERATE_RESPONSE_METHOD"
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/MODEL_ID:GENERATE_RESPONSE_METHOD" | Select-Object -Expand Content
Você receberá uma resposta JSON semelhante a seguinte.
Exemplo de comando curl
LOCATION="us-central1"
MODEL_ID="gemini-1.0-pro-vision"
PROJECT_ID="test-project"
curl \
-X POST \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
-H "Content-Type: application/json"
https://${LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/publishers/google/models/${MODEL_ID}:${GENERATE_RESPONSE_METHOD} -d \
$'{
"contents": {
"role": "user",
"parts": [
{
"fileData": {
"mimeType": "image/png",
"fileUri": "gs://my-bucket/images/cat.png"
}
},
{
"text": "Describe this picture."
},
]
},
"safety_settings": {
"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
"threshold": "BLOCK_LOW_AND_ABOVE"
},
"generation_config": {
"temperature": 0.4,
"topP": 1,
"topK": 32,
"maxOutputTokens": 2048,
}
}'
PDF único
A guia a seguir mostra como incluir um PDF em uma solicitação de comando usando o SDK do Python. Esta amostra em PDF funciona com todos os modelos multimodais do Gemini.
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 gera uma resposta com streaming ou sem streaming. O streaming envolve receber respostas a solicitações à medida que são geradas. Ou seja, assim que o modelo gera tokens de saída, eles são enviados. Uma resposta sem streaming a prompts é enviada somente 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
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 gera uma resposta com streaming ou sem streaming. O streaming envolve receber respostas a prompts à medida que são geradas. Ou seja, assim que o modelo gera tokens de saída, eles são enviados. Uma resposta sem streaming a prompts é enviada somente depois que todos os tokens de saída forem gerados.
Para uma resposta de streaming, use o método
generateContentStream
.
public ResponseStreamgenerateContentStream(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
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 gera uma resposta com streaming ou sem streaming. O streaming envolve receber respostas a prompts à medida que são geradas. Ou seja, assim que o modelo gera tokens de saída, eles são enviados. Uma resposta sem streaming a prompts é enviada somente 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
C#
Antes de testar essa amostra, siga as instruções de configuração para C# Guia de início rápido da Vertex AI: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Vertex AI para 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.
Vídeo único
Cada uma das guias a seguir mostra uma maneira diferente de incluir um vídeo em uma solicitação de comando. Esses exemplos de PDF funcionam com todos os modelos multimodais do Gemini.
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 gera uma resposta com streaming ou sem streaming. O streaming envolve receber respostas a solicitações à medida que são geradas. Ou seja, assim que o modelo gera tokens de saída, eles são enviados. Uma resposta sem streaming a prompts é enviada somente 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
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 gera uma resposta com streaming ou sem streaming. O streaming envolve receber respostas a prompts à medida que são geradas. Ou seja, assim que o modelo gera tokens de saída, eles são enviados. Uma resposta sem streaming a prompts é enviada somente depois que todos os tokens de saída forem gerados.
Para uma resposta de streaming, use o método
generateContentStream
.
public ResponseStreamgenerateContentStream(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
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 gera uma resposta com streaming ou sem streaming. O streaming envolve receber respostas a prompts à medida que são geradas. Ou seja, assim que o modelo gera tokens de saída, eles são enviados. Uma resposta sem streaming a prompts é enviada somente 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
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 gera uma resposta com streaming ou sem streaming. O streaming envolve receber respostas a prompts à medida que são geradas. Ou seja, assim que o modelo gera tokens de saída, eles são enviados. Uma resposta sem streaming a prompts é enviada somente 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
C#
Antes de testar essa amostra, siga as instruções de configuração para C# Guia de início rápido da Vertex AI: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Vertex AI para 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.
REST
Use REST para testar um prompt de texto 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:
- 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:
Clique para expandir as 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. As opções são:
gemini-1.0-pro-vision
- ROLE:
o papel em uma conversa associada ao conteúdo. É necessário especificar um papel mesmo em
casos de uso de turno único.
Os valores aceitáveis são os seguintes:
USER
: especifica o conteúdo que é enviado por você.
- TEXT: as instruções de texto a serem incluídas no comando.
- B64_BASE: a codificação Base64 da imagem, do PDF ou do vídeo a ser incluído in-line no comando. Ao incluir mídia in-line, você também precisa especificar MIMETYPE.
- FILE_URI: o URI do Cloud Storage da imagem ou do vídeo a ser incluído no comando. O bucket que armazena o arquivo precisa estar no mesmo projeto do Google Cloud que está enviando a solicitação. Também é necessário especificar MIMETYPE.
- MIME_TYPE:
o tipo de mídia da imagem, PDF ou vídeo especificado nos campos
data
oufileUri
. Os valores aceitáveis são os seguintes:Clique para expandir os tipos MIME.
application/pdf
audio/mpeg
audio/mp3
audio/wav
image/png
image/jpeg
text/plain
video/mov
video/mpeg
video/mp4
video/mpg
video/avi
video/wmv
video/mpegps
video/flv
- SAFETY_CATEGORY:
a categoria de segurança para a qual configurar um limite. Os valores aceitáveis são os seguintes:
Clique para expandir as categorias de segurança
HARM_CATEGORY_SEXUALLY_EXPLICIT
HARM_CATEGORY_HATE_SPEECH
HARM_CATEGORY_HARASSMENT
HARM_CATEGORY_DANGEROUS_CONTENT
- THRESHOLD: o limite de bloqueio de respostas que podem pertencer à categoria de segurança especificada com base na probabilidade. Os valores aceitáveis são os seguintes:
Clique para expandir os limites de bloqueio
BLOCK_NONE
BLOCK_ONLY_HIGH
BLOCK_MEDIUM_AND_ABOVE
(padrão)BLOCK_LOW_AND_ABOVE
BLOCK_LOW_AND_ABOVE
bloqueia mais, eBLOCK_ONLY_HIGH
bloqueia a menor. - TEMPERATURE:
a temperatura é usada para amostragem durante a geração da resposta, que ocorre quando
topP
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.
- TOP_P:
o Top-P muda a forma como o modelo seleciona tokens para saída. Os tokens são selecionados
do mais provável (veja o top-K) para o menos provável até que a soma das probabilidades
seja igual ao valor do top-P. Por exemplo, se os tokens A, B e C tiverem uma probabilidade de
0,3, 0,2 e 0,1 e o valor de top-P for
0.5
, o modelo selecionará A ou B como token seguinte usando temperatura e exclui C como candidato.Especifique um valor mais baixo para respostas menos aleatórias e um valor mais alto para respostas mais aleatórias.
- TOP_K:
o Top-K muda a forma como o modelo seleciona tokens para saída. Um top-K de
1
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.
- MAX_OUTPUT_TOKENS:
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.
- STOP_SEQUENCES:
especifica uma lista de strings que instrui o modelo a parar de gerar texto se uma
das strings for encontrada na resposta. Se uma string aparecer várias vezes na resposta, a resposta truncará quando for encontrada pela primeira vez.
As strings diferenciam maiúsculas de minúsculas.
Por exemplo, se a resposta a seguir for retornada quandostopSequences
não for especificado:
public static string reverse(string myString)
A resposta retornada comstopSequences
definida como["Str", "reverse"]
é:
public static string
Método HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:GENERATE_RESPONSE_METHOD
Corpo JSON da solicitação:
{ "contents": { "role": "ROLE", "parts": [ { "inlineDATA": { "mimeType": "MIME_TYPE", "data": "B64_BASE_IMAGE" } }, { "fileData": { "mimeType": "MIME_TYPE", "fileUri": "FILE_URI" } }, { "text": "TEXT" } ] }, "safety_settings": { "category": "SAFETY_CATEGORY", "threshold": "THRESHOLD" }, "generation_config": { "temperature": TEMPERATURE, "topP": TOP_P, "topK": TOP_K, "candidateCount": 1, "maxOutputTokens": MAX_OUTPUT_TOKENS, "stopSequences": STOP_SEQUENCES, } }
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/MODEL_ID:GENERATE_RESPONSE_METHOD"
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/MODEL_ID:GENERATE_RESPONSE_METHOD" | Select-Object -Expand Content
Você receberá uma resposta JSON semelhante a seguinte.
Exemplo de comando curl
LOCATION="us-central1"
MODEL_ID="gemini-1.0-pro-vision"
PROJECT_ID="test-project"
curl \
-X POST \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
-H "Content-Type: application/json"
https://${LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/publishers/google/models/${MODEL_ID}:${GENERATE_RESPONSE_METHOD} -d \
$'{
"contents": {
"role": "user",
"parts": [
{
"fileData": {
"mimeType": "image/png",
"fileUri": "gs://my-bucket/images/cat.png"
}
},
{
"text": "Describe this picture."
},
]
},
"safety_settings": {
"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
"threshold": "BLOCK_LOW_AND_ABOVE"
},
"generation_config": {
"temperature": 0.4,
"topP": 1,
"topK": 32,
"maxOutputTokens": 2048,
}
}'
Console
Para enviar um prompt multimodal usando o 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 Design de comandos (turno único), clique em Abrir.
Configure o modelo e os parâmetros:
- Região: selecione a região que você quer usar.
- Modelo: selecione Gemini Pro Vision.
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: 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 parada: insira uma sequência de parada, que é uma série de caracteres (incluindo espaços) que interrompe a geração de resposta se ela for encontrada pelo modelo. A sequência não é incluída como parte da resposta. Você pode adicionar até cinco sequências de paradas.
- Opcional: para configurar parâmetros avançados, clique em Avançado e faça as configurações da seguinte maneira:
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
. O console do Google Cloud só oferece suporte a streaming, que envolve o recebimento de respostas aos comandos à medida que são gerados. Você já pode inserir uma mensagem na caixa para iniciar uma conversa com o modelo.
O modelo usa as mensagens anteriores como contexto para novas respostas. Para incluir uma imagem, PDF ou vídeo no comando, clique no ícone
.Para saber mais sobre comandos multimodais, consulte Criar comandos multimodais.
- 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
Clique para abrir as configurações avançadas
Áudio único
Confira a seguir como usar um arquivo de áudio para resumir um podcast. Esta amostra funciona apenas com o Gemini 1.5 Pro.
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 gera uma resposta com streaming ou sem streaming. O streaming envolve receber respostas a solicitações à medida que são geradas. Ou seja, assim que o modelo gera tokens de saída, eles são enviados. Uma resposta sem streaming a prompts é enviada somente 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
Exemplos avançados
Os exemplos a seguir são mais complexos do que os anteriores.
Várias imagens
Cada uma das guias a seguir mostra uma maneira diferente de incluir várias imagens em uma solicitação de solicitação. Essas amostras de imagem funcionam com todos os modelos multimodais do Gemini.
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 gera uma resposta com streaming ou sem streaming. O streaming envolve receber respostas a solicitações à medida que são geradas. Ou seja, assim que o modelo gera tokens de saída, eles são enviados. Uma resposta sem streaming a prompts é enviada somente 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
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 gera uma resposta com streaming ou sem streaming. O streaming envolve receber respostas a prompts à medida que são geradas. Ou seja, assim que o modelo gera tokens de saída, eles são enviados. Uma resposta sem streaming a prompts é enviada somente depois que todos os tokens de saída forem gerados.
Para uma resposta de streaming, use o método
generateContentStream
.
public ResponseStreamgenerateContentStream(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
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 gera uma resposta com streaming ou sem streaming. O streaming envolve receber respostas a prompts à medida que são geradas. Ou seja, assim que o modelo gera tokens de saída, eles são enviados. Uma resposta sem streaming a prompts é enviada somente 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
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 gera uma resposta com streaming ou sem streaming. O streaming envolve receber respostas a prompts à medida que são geradas. Ou seja, assim que o modelo gera tokens de saída, eles são enviados. Uma resposta sem streaming a prompts é enviada somente 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
C#
Antes de testar essa amostra, siga as instruções de configuração para C# Guia de início rápido da Vertex AI: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Vertex AI para 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.
REST
Use REST para testar um prompt de texto 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:
- 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:
Clique para expandir as 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. As opções são:
gemini-1.0-pro-vision
- ROLE:
o papel em uma conversa associada ao conteúdo. É necessário especificar um papel mesmo em
casos de uso de turno único.
Os valores aceitáveis são os seguintes:
USER
: especifica o conteúdo que é enviado por você.
- TEXT: as instruções de texto a serem incluídas no comando.
- B64_BASE: a codificação Base64 da imagem, do PDF ou do vídeo a ser incluído in-line no comando. Ao incluir mídia in-line, você também precisa especificar MIMETYPE.
- FILE_URI: o URI do Cloud Storage da imagem ou do vídeo a ser incluído no comando. O bucket que armazena o arquivo precisa estar no mesmo projeto do Google Cloud que está enviando a solicitação. Também é necessário especificar MIMETYPE.
- MIME_TYPE:
o tipo de mídia da imagem, PDF ou vídeo especificado nos campos
data
oufileUri
. Os valores aceitáveis são os seguintes:Clique para expandir os tipos MIME.
application/pdf
audio/mpeg
audio/mp3
audio/wav
image/png
image/jpeg
text/plain
video/mov
video/mpeg
video/mp4
video/mpg
video/avi
video/wmv
video/mpegps
video/flv
- SAFETY_CATEGORY:
a categoria de segurança para a qual configurar um limite. Os valores aceitáveis são os seguintes:
Clique para expandir as categorias de segurança
HARM_CATEGORY_SEXUALLY_EXPLICIT
HARM_CATEGORY_HATE_SPEECH
HARM_CATEGORY_HARASSMENT
HARM_CATEGORY_DANGEROUS_CONTENT
- THRESHOLD: o limite de bloqueio de respostas que podem pertencer à categoria de segurança especificada com base na probabilidade. Os valores aceitáveis são os seguintes:
Clique para expandir os limites de bloqueio
BLOCK_NONE
BLOCK_ONLY_HIGH
BLOCK_MEDIUM_AND_ABOVE
(padrão)BLOCK_LOW_AND_ABOVE
BLOCK_LOW_AND_ABOVE
bloqueia mais, eBLOCK_ONLY_HIGH
bloqueia a menor. - TEMPERATURE:
a temperatura é usada para amostragem durante a geração da resposta, que ocorre quando
topP
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.
- TOP_P:
o Top-P muda a forma como o modelo seleciona tokens para saída. Os tokens são selecionados
do mais provável (veja o top-K) para o menos provável até que a soma das probabilidades
seja igual ao valor do top-P. Por exemplo, se os tokens A, B e C tiverem uma probabilidade de
0,3, 0,2 e 0,1 e o valor de top-P for
0.5
, o modelo selecionará A ou B como token seguinte usando temperatura e exclui C como candidato.Especifique um valor mais baixo para respostas menos aleatórias e um valor mais alto para respostas mais aleatórias.
- TOP_K:
o Top-K muda a forma como o modelo seleciona tokens para saída. Um top-K de
1
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.
- MAX_OUTPUT_TOKENS:
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.
- STOP_SEQUENCES:
especifica uma lista de strings que instrui o modelo a parar de gerar texto se uma
das strings for encontrada na resposta. Se uma string aparecer várias vezes na resposta, a resposta truncará quando for encontrada pela primeira vez.
As strings diferenciam maiúsculas de minúsculas.
Por exemplo, se a resposta a seguir for retornada quandostopSequences
não for especificado:
public static string reverse(string myString)
A resposta retornada comstopSequences
definida como["Str", "reverse"]
é:
public static string
Método HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:GENERATE_RESPONSE_METHOD
Corpo JSON da solicitação:
{ "contents": { "role": "ROLE", "parts": [ { "inlineDATA": { "mimeType": "MIME_TYPE", "data": "B64_BASE_IMAGE" } }, { "fileData": { "mimeType": "MIME_TYPE", "fileUri": "FILE_URI" } }, { "text": "TEXT" } ] }, "safety_settings": { "category": "SAFETY_CATEGORY", "threshold": "THRESHOLD" }, "generation_config": { "temperature": TEMPERATURE, "topP": TOP_P, "topK": TOP_K, "candidateCount": 1, "maxOutputTokens": MAX_OUTPUT_TOKENS, "stopSequences": STOP_SEQUENCES, } }
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/MODEL_ID:GENERATE_RESPONSE_METHOD"
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/MODEL_ID:GENERATE_RESPONSE_METHOD" | Select-Object -Expand Content
Você receberá uma resposta JSON semelhante a seguinte.
Exemplo de comando curl
LOCATION="us-central1"
MODEL_ID="gemini-1.0-pro-vision"
PROJECT_ID="test-project"
curl \
-X POST \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
-H "Content-Type: application/json"
https://${LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/publishers/google/models/${MODEL_ID}:${GENERATE_RESPONSE_METHOD} -d \
$'{
"contents": {
"role": "user",
"parts": [
{
"fileData": {
"mimeType": "image/png",
"fileUri": "gs://my-bucket/images/cat.png"
}
},
{
"text": "Describe this picture."
},
]
},
"safety_settings": {
"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
"threshold": "BLOCK_LOW_AND_ABOVE"
},
"generation_config": {
"temperature": 0.4,
"topP": 1,
"topK": 32,
"maxOutputTokens": 2048,
}
}'
Console
Para enviar um prompt multimodal usando o 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 Design de comandos (turno único), clique em Abrir.
Configure o modelo e os parâmetros:
- Região: selecione a região que você quer usar.
- Modelo: selecione Gemini Pro Vision.
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: 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 parada: insira uma sequência de parada, que é uma série de caracteres (incluindo espaços) que interrompe a geração de resposta se ela for encontrada pelo modelo. A sequência não é incluída como parte da resposta. Você pode adicionar até cinco sequências de paradas.
- Opcional: para configurar parâmetros avançados, clique em Avançado e faça as configurações da seguinte maneira:
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
. O console do Google Cloud só oferece suporte a streaming, que envolve o recebimento de respostas aos comandos à medida que são gerados. Você já pode inserir uma mensagem na caixa para iniciar uma conversa com o modelo.
O modelo usa as mensagens anteriores como contexto para novas respostas. Para incluir uma imagem, PDF ou vídeo no comando, clique no ícone
.Para saber mais sobre comandos multimodais, consulte Criar comandos multimodais.
- 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
Clique para abrir as configurações avançadas
Transcrição de áudio
A seguir, mostramos como usar um arquivo de áudio para transcrever uma entrevista. Esta amostra funciona apenas com o Gemini 1.5 Pro.
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 gera uma resposta com streaming ou sem streaming. O streaming envolve receber respostas a prompts à medida que são geradas. Ou seja, assim que o modelo gera tokens de saída, eles são enviados. Uma resposta sem streaming a prompts é enviada somente 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
C#
Antes de testar essa amostra, siga as instruções de configuração para C# Guia de início rápido da Vertex AI: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Vertex AI para 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.
Vídeo com áudio
Confira a seguir como resumir um arquivo de vídeo com áudio e retornar capítulos com marcações de tempo. Esta amostra funciona apenas com o Gemini 1.5 Pro.
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 gera uma resposta com streaming ou sem streaming. O streaming envolve receber respostas a solicitações à medida que são geradas. Ou seja, assim que o modelo gera tokens de saída, eles são enviados. Uma resposta sem streaming a prompts é enviada somente 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
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 gera uma resposta com streaming ou sem streaming. O streaming envolve receber respostas a prompts à medida que são geradas. Ou seja, assim que o modelo gera tokens de saída, eles são enviados. Uma resposta sem streaming a prompts é enviada somente depois que todos os tokens de saída forem gerados.
Para uma resposta de streaming, use o método
generateContentStream
.
public ResponseStreamgenerateContentStream(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
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 gera uma resposta com streaming ou sem streaming. O streaming envolve receber respostas a prompts à medida que são geradas. Ou seja, assim que o modelo gera tokens de saída, eles são enviados. Uma resposta sem streaming a prompts é enviada somente 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
C#
Antes de testar essa amostra, siga as instruções de configuração para C# Guia de início rápido da Vertex AI: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Vertex AI para 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.
Todas as modalidades
Confira a seguir como processar imagens, vídeo, áudio e texto ao mesmo tempo. Este exemplo funciona com Gemini 1.5 Pro e Gemini 1.5 Flash.
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 gera uma resposta com streaming ou sem streaming. O streaming envolve receber respostas a solicitações à medida que são geradas. Ou seja, assim que o modelo gera tokens de saída, eles são enviados. Uma resposta sem streaming a prompts é enviada somente 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
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 gera uma resposta com streaming ou sem streaming. O streaming envolve receber respostas a prompts à medida que são geradas. Ou seja, assim que o modelo gera tokens de saída, eles são enviados. Uma resposta sem streaming a prompts é enviada somente depois que todos os tokens de saída forem gerados.
Para uma resposta de streaming, use o método
generateContentStream
.
public ResponseStreamgenerateContentStream(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
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 gera uma resposta com streaming ou sem streaming. O streaming envolve receber respostas a prompts à medida que são geradas. Ou seja, assim que o modelo gera tokens de saída, eles são enviados. Uma resposta sem streaming a prompts é enviada somente 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
C#
Antes de testar essa amostra, siga as instruções de configuração para C# Guia de início rápido da Vertex AI: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Vertex AI para 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.
Definir parâmetros do modelo
Os seguintes parâmetros de modelo podem ser definidos em modelos multimodais:
Top-P
O top-p muda a forma como o modelo seleciona tokens para saída. Os tokens são selecionados
do mais provável (veja o top-K) para o menos provável até que a soma das probabilidades
seja igual ao valor do top-P. Por exemplo, se os tokens A, B e C tiverem uma probabilidade de 0,3, 0,2 e 0,1 e o valor de top-P for 0.5
, o modelo selecionará A ou B como token seguinte usando temperatura e exclui C como
candidato.
Especifique um valor mais baixo para respostas menos aleatórias e um valor mais alto para respostas mais aleatórias.
Top-K
O top-k muda a forma como o modelo seleciona tokens para saída. Um top-K de
1
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 de
3
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.
Temperatura
A temperatura é usada para amostragem durante a geração da resposta, que ocorre quando topP
e topK
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 de 0
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.
Valores de parâmetro válidos
Parâmetro | Gemini 1.0 Pro Vision | Gemini 1.5 Pro | Gemini 1.5 Flash |
---|---|---|---|
Top-K | 1 - 40 (padrão 32) | Sem suporte | Sem suporte |
Top-P | 0 - 1.0 (padrão 1.0) | 0 - 1.0 (padrão 0.95) | 0 - 1.0 (padrão 0.95) |
Temperatura | 0 - 1.0 (padrão 0.4) | 0 - 2.0 (padrão 1.0) | 0 - 2.0 (padrão 1.0) |
Requisitos de mídia
Ao usar um arquivo de mídia nas solicitações de solicitação, verifique se ele atende aos seguintes requisitos:
Requisitos de imagem
Os modelos multimodais do Gemini são compatíveis com os seguintes tipos MIME de imagem:
Tipo de Mime da imagem | Gemini 1.5 Flash | Gemini 1.5 Pro | Gemini 1.0 Pro Vision |
---|---|---|---|
PNG - image/png |
|||
JPEG - image/jpeg |
Não há um limite específico para o número de pixels em uma imagem. No entanto, imagens maiores são reduzidas e preenchidas para caber em uma resolução máxima de 3072 x 3072, preservando a proporção original.
No Gemini 1.0 Pro Vision, cada imagem representa 258 tokens.
Para o Gemini 1.5 Flash e Gemini 1.5 Pro:
- Se as duas dimensões de proporção de uma imagem forem menores ou iguais a 384, 258 tokens serão usados.
- Se uma dimensão da proporção de uma imagem for maior que 384, ela será cortada em blocos. O padrão de cada tamanho de bloco é a menor dimensão (largura ou altura) dividida por 1,5. Se necessário, cada bloco é ajustado para não ser menor que 256 nem maior que 768. Cada bloco é redimensionado para 768 x 768 e usa 258 tokens.
O número máximo de imagens que podem estar em uma solicitação de comando é:
- 16 para o Gemini 1.0 Pro Vision
- 3.000 para o Gemini 1.5 Flash e Gemini 1.5 Pro
Requisitos de áudio
Gemini 1.5 Flash e Gemini 1.5 Pro, compatível com os seguintes tipos de áudios MIME. Gemini 1.0 Pro Vision não tem suporte a áudio.
Tipo MIME de áudio | Gemini 1.5 Flash | Gemini 1.5 Pro | Gemini 1.0 Pro Vision |
---|---|---|---|
AAC - audio/aac |
|||
FLAC - audio/flac |
|||
MP3 - audio/mp3 |
|||
MPA - audio/m4a |
|||
MPEG - audio/mpeg |
|||
MPGA - audio/mpga |
|||
MP4 - audio/mp4 |
|||
OPUS - audio/opus |
|||
PCM - audio/pcm |
|||
WAV - audio/wav |
|||
WEBM - audio/webm |
Requisitos de vídeo
As amostras dos vídeos são feitas a 1 fps. Cada frame de vídeo representa 258 tokens.
Para o Gemini 1.5 Flash e Gemini 1.5 Pro, a faixa de áudio é codificada com frames de vídeo. A faixa de áudio também é dividida em entroncamentos de um segundo que representam 32 tokens. O frame de vídeo e os tokens de áudio são intercalados com os respectivos carimbos de data/hora. Os carimbos de data/hora são representados como sete tokens.
Os modelos multimodais do Gemini são compatíveis com os seguintes tipos MIME de vídeo:
Tipo de vídeo MIME | Gemini 1.5 Flash | Gemini 1.5 Pro | Gemini 1.0 Pro Vision |
---|---|---|---|
FLV - video/x-flv |
|||
MOV - video/mov |
|||
MPEG - video/mpeg |
|||
MPEGPS - video/mpegps |
|||
MPG - video/mpg |
|||
MP4 - video/mp4 |
|||
WEBM - video/webm |
|||
WMV - video/wmv |
|||
3GPP - video/3gpp |
Requisitos de PDF
O tipo MIME obrigatório para um PDF é application/pdf
.
Práticas recomendadas
Esta seção inclui práticas recomendadas para diferentes modalidades.
Práticas recomendadas para imagens
Ao usar imagens, siga as práticas recomendadas e informações a seguir para ter os melhores resultados.
- Quando quiser detectar texto em uma imagem, use comandos com uma única imagem para ter resultados melhores do que aqueles com várias imagens.
- Se o comando contiver uma única imagem, coloque a imagem antes do comando de texto.
Se houver várias imagens no comando e você quiser consultá-las posteriormente no comando ou fazer com que o modelo as mencione na resposta do modelo, atribua um índice a cada imagem antes da imagem de dois minutos. Use
a
b
c
ouimage 1
image 2
image 3
para seu índice. Confira a seguir um exemplo de uso de imagens indexadas em um comando:image 1 <piano_recital.jpeg> image 2 <family_dinner.jpeg> image 3 <coffee_shop.jpeg> Write a blogpost about my day using image 1 and image 2. Then, give me ideas for tomorrow based on image 3.
Imagens com resolução mais alta geram resultados melhores.
Inclua alguns exemplos no comando.
Gire as imagens para a orientação correta antes de adicioná-las ao comando.
Evite imagens desfocadas.
Práticas recomendadas para vídeo
Ao usar vídeos, siga as práticas recomendadas e informações abaixo para ter os melhores resultados:
- Use no máximo um vídeo por comando.
- Se o comando contiver um único vídeo, coloque o vídeo antes do comando de texto.
- Se você estiver usando o Gemini 1.0 Pro Vision, o modelo processará os vídeos como frames de imagem não contíguos do vídeo. O áudio não está incluído. Se você notar que falta algum conteúdo do vídeo no modelo, tente encurtar o vídeo para que ele capture uma parte maior do conteúdo.
- Se você estiver usando o Gemini 1.0 Pro Vision, apenas as informações nos primeiros dois minutos serão processadas.
- Se você estiver usando o Gemini 1.0 Pro Vision, nenhuma informação de áudio ou metadados de carimbo de data/hora serão analisados. Por isso, o modelo pode não funcionar bem em casos de uso que exigem entrada de áudio, como legendas de áudio, ou informações relacionadas ao tempo, como velocidade ou ritmo.
- Quando a localização de carimbo de data/hora em um vídeo com áudio for necessária, peça ao modelo para gerar carimbos de data/hora no formato
MM:SS
, em que os dois primeiros dígitos representam minutos e os dois últimos dígitos representam segundos. Use o mesmo formato para perguntas sobre carimbo de data/hora.
Práticas recomendadas para PDF
Ao usar PDFs, siga as práticas recomendadas e informações a seguir para ter os melhores resultados:
- PDFs são tratados como imagens, portanto, uma única página de um PDF é tratada como uma imagem.
- O número de páginas suportadas é limitado ao número de imagens que um modelo aceita. No Gemini 1.0 Pro Vision, o limite é 16. No Gemini 1.5 Pro e Gemini 1.5 Flash, o limite é de 300. Se você tiver um documento longo, considere dividi-lo em vários PDFs para processá-lo.
- Ao usar PDFs como entrada, o custo segue o preço de imagens do Gemini. Por exemplo, se você incluir um documento de duas páginas em uma chamada da API Gemini, será cobrada uma taxa de entrada pelo processamento de duas imagens.
- Se o comando contiver um único PDF, coloque o PDF antes do comando de texto.
- Use PDFs criados com texto renderizado como texto em vez de usar texto em imagens digitalizadas. Esse formato garante que o texto seja legível por máquina para que seja mais fácil editar, pesquisar e manipular o texto em comparação com PDFs de imagens digitalizadas. Isso fornece os resultados ideais ao trabalhar com documentos com muito texto, como contratos.
Para mais dicas de criação de comandos multimodais, consulte Criar comandos multimodais.
Limitações multimodais
Embora os modelos multimodais do Gemini sejam eficientes em muitos casos de usuários multimodais, é importante entender as limitações dos modelos:
- Raciocínio espacial: os modelos não são precisos para localizar texto ou objetos em imagens e PDFs. Talvez eles retornem somente as contagens aproximadas de objetos.
- Usos médicos: os modelos não são adequados para interpretar imagens médicas (por exemplo, raios-X e tomografias computadorizadas) ou fornecer aconselhamento médico.
- Reconhecimento de pessoas: os modelos não são usados para identificar pessoas que não são celebridades em imagens.
- Moderação de conteúdo: os modelos se recusam a fornecer respostas sobre imagens ou vídeos que violam nossas políticas de segurança.
- Precisão: os modelos podem apresentar alucinação artificial ou cometer erros ao interpretar imagens de baixa qualidade, rotacionadas ou de resolução extremamente baixa. Os modelos também podem apresentar alucinação ao interpretar texto escrito à mão em imagens ou documentos PDF.
- Reconhecimento de som sem fala: os modelos compatíveis com áudio podem cometer erros ao reconhecer sons que não são fala.
- Movimento de alta velocidade: devido à taxa de amostragem fixa de 1 frame por segundo (QPS), os modelos podem cometer erros na compreensão do movimento de alta velocidade nos vídeos.
- Carimbos de data/hora somente de áudio: os modelos compatíveis com áudio não podem gerar carimbos de data/hora com precisão para solicitações com arquivos de áudio. Isso inclui carimbos de data/hora de segmentação e localização temporal. Os carimbos de data/hora podem ser gerados com precisão para entrada que inclua um vídeo com áudio.
- Pontuação de transcrição: as transcrições retornadas pelo Gemini 1.5 Flash podem não incluir pontuação.
A seguir
- Comece a criar com os modelos multimodais do Gemini. Novos clientes ganham US $300 em créditos gratuitos do Google Cloud para descobrir o que eles podem fazer com o Gemini.
- Saiba como enviar solicitações de comandos de chat.
- Saiba mais sobre as práticas recomendadas de IA responsável e os filtros de segurança da Vertex AI.