Usar generateContent
ou streamGenerateContent
para gerar conteúdo com
o Gemini.
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.
Crie uma conta do Google Cloud para começar
Para começar a usar a API Vertex AI para Gemini, crie uma conta do Google Cloud.
Depois de criar sua conta, use este documento para analisar o corpo da solicitação do modelo Gemini, os parâmetros do modelo, o corpo da resposta e alguns exemplos de solicitações.
Quando estiver tudo pronto, consulte o guia de início rápido da API Vertex AI para Gemini para saber como enviar uma solicitação à API Vertex AI Gemini usando o SDK da linguagem de programação ou a API REST.
Modelos compatíveis
Modelo | Versão |
---|---|
Gemini 1.5 Flash | gemini-1.5-flash-001 gemini-1.5-flash-002 |
Gemini 1.5 Pro | gemini-1.5-pro-001 gemini-1.5-pro-002 |
Gemini 1.0 Pro Vision | gemini-1.0-pro-001 gemini-1.0-pro-vision-001 |
Gemini 1.0 Pro | gemini-1.0-pro gemini-1.0-pro-001 gemini-1.0-pro-002 |
Exemplo de sintaxe
Sintaxe para gerar uma resposta de modelo.
Não streaming
curl
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ https://${LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/publishers/google/models/${MODEL_ID}:generateContent \ -d '{ "contents": [{ ... }], "generationConfig": { ... }, "safetySettings": { ... } ... }'
Python
gemini_model = GenerativeModel(MODEL_ID) generation_config = GenerationConfig(...) model_response = gemini_model.generate_content([...], generation_config, safety_settings={...})
Streaming
curl
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ https://${LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/publishers/google/models/${MODEL_ID}:streamGenerateContent \ -d '{ "contents": [{ ... }], "generationConfig": { ... }, "safetySettings": { ... } ... }'
Python
gemini_model = GenerativeModel(MODEL_ID) model_response = gemini_model.generate_content([...], generation_config, safety_settings={...}, stream=True)
Lista de parâmetros
Confira exemplos para detalhes de implementação.
Corpo da solicitação
{ "cachedContent": string, "contents": [ { "role": string, "parts": [ { // Union field data can be only one of the following: "text": string, "inlineData": { "mimeType": string, "data": string }, "fileData": { "mimeType": string, "fileUri": string }, // End of list of possible types for union field data. "videoMetadata": { "startOffset": { "seconds": integer, "nanos": integer }, "endOffset": { "seconds": integer, "nanos": integer } } } ] } ], "systemInstruction": { "role": string, "parts": [ { "text": string } ] }, "tools": [ { "functionDeclarations": [ { "name": string, "description": string, "parameters": { object (OpenAPI Object Schema) } } ] } ], "safetySettings": [ { "category": enum (HarmCategory), "threshold": enum (HarmBlockThreshold) } ], "generationConfig": { "temperature": number, "topP": number, "topK": number, "candidateCount": integer, "maxOutputTokens": integer, "presencePenalty": float, "frequencyPenalty": float, "stopSequences": [ string ], "responseMimeType": string, "responseSchema": schema, "seed": integer, "responseLogprobs": boolean, "logprobs": integer, "audioTimestamp": boolean }, "labels": { string: string } }
O corpo da solicitação contém dados com os seguintes parâmetros:
Parâmetros | |
---|---|
|
Opcional: O conteúdo armazenado em cache É possível usar conteúdo armazenado em cache em solicitações que tenham conteúdo repetido. |
|
Obrigatório: O conteúdo da conversa atual com o modelo. Para consultas de turno único, esta é uma instância única. Para consultas com várias interações, esse é um campo repetido que contém o histórico da conversa e a solicitação mais recente. |
|
Opcional: Disponível para Instruções para o modelo gerar um desempenho melhor. Por exemplo, "Responda da forma mais concisa possível" ou "Não use termos técnicos na resposta". As strings O campo |
|
Opcional. Uma parte do código que permite ao sistema interagir com sistemas externos para realizar uma ação ou conjunto de ações fora do conhecimento e do escopo do modelo. Consulte Chamada de função. |
|
Opcional. Consulte Chamada de função. |
|
Opcional: Configurações conforme a solicitação para bloquear conteúdo não seguro. Aplicado em |
|
Opcional: Configurações de geração. |
|
Opcional: Metadados que podem ser adicionados à chamada de API no formato de pares de chave-valor. |
contents
O tipo de dados estruturados de base que contém várias partes de uma mensagem.
Essa classe consiste em duas properties principais: role
e parts
. A propriedade role
indica o indivíduo que produz o conteúdo, enquanto a propriedade parts
contém vários elementos, cada um representando um segmento de dados em
uma mensagem.
Parâmetros | |
---|---|
|
Opcional: A identidade da entidade que cria a mensagem. Os valores a seguir são compatíveis:
O valor Para conversas que não têm vários turnos, esse campo pode ser deixado em branco ou sem definição. |
|
Uma lista de partes ordenadas que compõem uma única mensagem. Partes diferentes podem ter tipos MIME IANA distintos. Para ver os limites das entradas, como o número máximo de tokens ou o número de imagens, consulte as especificações do modelo na página Modelos do Google. Para calcular o número de tokens na solicitação, consulte Receber contagem de tokens. |
parts
Um tipo de dados que contém mídia que faz parte de uma mensagem Content
de várias partes.
Parâmetros | |
---|---|
|
Opcional: Um comando de texto ou snippet de código. |
|
Opcional: Dados inline em bytes brutos. Para |
|
Opcional: Dados armazenados em um arquivo. |
|
Opcional: Ele contém uma string que representa o campo Consulte Chamada de função. |
|
Opcional: A saída resultante de uma Consulte Chamada de função. |
|
Opcional: Para entrada de vídeo, o deslocamento inicial e final do vídeo no formato Duração. Por exemplo, para especificar um clipe de 10 segundos a partir de 1:00, defina Os metadados só devem ser especificados enquanto os dados do vídeo estiverem apresentados em |
blob
blob de conteúdo Se possível, envie como texto em vez de bytes brutos.
Parâmetros | |
---|---|
|
data ou fileUri . Os valores aceitáveis são os seguintes:
Clique para expandir os tipos MIME.
Para Para o Gemini 1.5 Pro e o Gemini 1.5 Flash, a duração máxima de um arquivo de áudio é de 8,4 horas e a duração máxima de um arquivo de vídeo (sem áudio) é de uma hora. Para mais informações, consulte Requisitos de mídia do Gemini 1.5 Pro. Os arquivos de texto precisam ser codificados em UTF-8. O conteúdo do arquivo de texto é contabilizado no limite de tokens. Não há limite para a resolução da imagem. |
|
A codificação Base64 da imagem, PDF ou do vídeo a ser incluído inline no comando. Ao incluir mídia inline, você também precisa especificar a mídia
tipo ( Limite de tamanho: 20 MB. |
CachedContent
Usado para atualizar quando um cache de contexto expira. É necessário especificar ttl
ou expireTime
quando você atualiza CachedContent
, mas não é possível especificar ambos. Para mais informações, consulte
Use o armazenamento em cache de contexto.
Parâmetros | |
---|---|
|
Usado para especificar o número de segundos e nanossegundos após a criação ou atualização de um cache de contexto que o cache de contexto é ativado antes de expirar. |
|
Um carimbo de data/hora que especifica quando um cache de contexto expira. |
TTL
O time to live (ou duração), depois que um cache de contexto é criado ou atualizado antes de expirar.
Parâmetros | |
---|---|
|
O componente de segundos da duração antes de um cache de contexto expirar após ser criado. O valor padrão é de 3.600 segundos. |
|
Opcional: O componente em nanossegundos da duração antes de um cache de contexto expirar depois de ser criado. |
FileData
Dados de URI ou URL da Web.
Parâmetros | |
---|---|
|
Tipo MIME IANA dos dados. |
|
O URI ou URL do arquivo a ser incluído no comando. Os valores aceitáveis são os seguintes:
Ao especificar um Para Para |
functionCall
Um functionCall
previsto retornado do modelo que contém uma string que representa o functionDeclaration.name
e um objeto JSON estruturado contendo os parâmetros e os valores deles.
Parâmetros | |
---|---|
|
O nome da função a ser chamada. |
|
Os parâmetros e valores da função no formato de objeto JSON. Consulte Chamada de função para ver detalhes dos parâmetros. |
functionResponse
A saída resultante de um FunctionCall
que contém uma string que representa o
FunctionDeclaration.name
. Também contém um objeto JSON estruturado com a
saída da função e o usa como contexto para o modelo. Ela precisa conter o
resultado de uma FunctionCall
feita com base na previsão do modelo.
Parâmetros | |
---|---|
|
O nome da função a ser chamada. |
|
A resposta da função no formato de objeto JSON. |
videoMetadata
Metadados que descrevem o conteúdo do vídeo de entrada.
Parâmetros | |
---|---|
|
Opcional: O deslocamento inicial do vídeo. |
|
Opcional: O deslocamento final do vídeo. |
safetySetting
Configurações de segurança.
Parâmetros | |
---|---|
|
Opcional:
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
|
|
Opcional: O limite de bloqueio de respostas que podem pertencer à categoria de segurança especificada com base na probabilidade.
|
|
Opcional: Especifique se o limite é usado para pontuação de probabilidade ou gravidade. Se não for especificado, o limite será usado para a pontuação de probabilidade. |
harmCategory
Categorias de danos que bloqueiam conteúdo.
Parâmetros | |
---|---|
|
A categoria de danos não foi especificada. |
|
A categoria de danos é discurso de ódio. |
|
A categoria de danos é um conteúdo perigoso. |
|
A categoria de dano é assédio. |
|
A categoria de dano é conteúdo sexualmente explícito. |
harmBlockThreshold
Níveis de limites de probabilidade usados para bloquear uma resposta.
Parâmetros | |
---|---|
|
Limite de bloqueio de danos não especificado. |
|
Bloquear o limite inferior e superior (ou seja, bloquear mais). |
|
Bloquear limite médio e superior. |
|
Bloquear apenas o limite superior (ou seja, bloquear menos). |
|
Bloquear nenhum |
|
Desativa a segurança se todas as categorias estiverem DESATIVADAS |
harmBlockMethod
Um limite de probabilidade que bloqueia uma resposta com base em uma combinação de probabilidade e gravidade.
Parâmetros | |
---|---|
|
O método do bloco de danos não foi especificado. |
|
O método do bloqueio de danos usa pontuações de probabilidade e gravidade. |
|
O método do bloqueio de danos usa a pontuação de probabilidade. |
generationConfig
Configurações usadas ao gerar o comando.
Parâmetros | |
---|---|
|
Opcional:
A temperatura é usada para amostragem durante a geração da resposta, que ocorre quando Se o modelo retornar uma resposta muito genérica, muito curta ou se o modelo fornecer uma resposta alternativa, tente aumentar a temperatura.
|
|
Opcional: Se especificado, a amostragem de núcleos é usada. O Top-P muda a forma como o modelo seleciona tokens para saída. Os tokens são selecionados do mais provável (confira 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 Especifique um valor mais baixo para respostas menos aleatórias e um valor mais alto para respostas mais aleatórias.
|
|
Opcional: o Top-P muda a forma como o modelo seleciona tokens para saída. O valor 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. Intervalo: Compatível apenas com Padrão para |
|
Opcional: O número de variações de resposta a serem retornadas. Para cada solicitação, você paga pelos tokens de saída de todos os candidatos, mas são cobrados apenas uma vez pelos tokens de entrada. Especificar vários candidatos é um recurso em fase de pré-lançamento que funciona com
|
|
Opcional: int 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. |
|
Opcional:
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.
Máximo de cinco itens na lista. |
|
Opcional: Penalidades positivas. Valores positivos penalizam tokens que já aparecem no texto gerado, aumentando a probabilidade de gerar conteúdo mais diversificado. O valor máximo de Compatível apenas com |
|
Opcional: Valores positivos penalizam tokens que aparecem repetidamente no texto gerado, diminuindo a probabilidade de repetir conteúdo. O valor máximo para Compatível apenas com |
|
Opcional: Disponível para os seguintes modelos:
O tipo MIME da resposta de saída do texto candidato gerado. Os seguintes tipos MIME são compatíveis:
Especifique o tipo de resposta adequado para evitar comportamentos não intencionais. Por
exemplo, se você precisar de uma resposta formatada em JSON, especifique
|
|
Opcional: esquema O esquema que gerou o texto candidato precisa seguir. Para mais informações, consulte Controlar a saída gerada. É necessário especificar o parâmetro Disponível para os seguintes modelos:
|
|
Opcional: Quando a semente é fixada em um valor específico, o modelo se esforça para fornecer a mesma resposta para solicitações repetidas. A saída determinista não é garantida. Além disso, mudar as configurações do modelo ou do parâmetro, como a temperatura, pode causar variações na resposta, mesmo quando você usa o mesmo valor de semente. Por padrão, um valor de semente aleatório é usado. Este é um recurso em fase de pré-lançamento. Disponível para os seguintes modelos:
|
|
Opcional: Se verdadeiro, retorna as probabilidades de registro dos tokens que foram escolhidos
pelo modelo em cada etapa. Por padrão, esse parâmetro é definido como
Disponível para os seguintes modelos:
Este é um recurso em fase de pré-lançamento. |
|
Opcional:
Retorna as probabilidades de registro dos principais tokens candidatos em cada etapa
de geração. Os tokens escolhidos e as probabilidades de registro do modelo são sempre retornados em
cada etapa, o que pode não aparecer na lista de principais candidatos. Especifique o
número de candidatos a serem retornados usando um valor inteiro no intervalo de
É necessário ativar Este é um recurso em fase de pré-lançamento. |
|
Opcional: Disponível para os seguintes modelos:
Permite o entendimento de carimbos de data/hora para arquivos somente de áudio. Este é um recurso em fase de pré-lançamento. |
Corpo da resposta
{ "candidates": [ { "modelVersion": string, "content": { "parts": [ { "text": string } ] }, "finishReason": enum (FinishReason), "safetyRatings": [ { "category": enum (HarmCategory), "probability": enum (HarmProbability), "blocked": boolean } ], "citationMetadata": { "citations": [ { "startIndex": integer, "endIndex": integer, "uri": string, "title": string, "license": string, "publicationDate": { "year": integer, "month": integer, "day": integer } } ] }, "avgLogprobs": double, "logprobsResult": { "topCandidates": [ { "candidates": [ { "token": string, "logProbability": float } ] } ], "chosenCandidates": [ { "token": string, "logProbability": float } ] } } ], "usageMetadata": { "promptTokenCount": integer, "candidatesTokenCount": integer, "totalTokenCount": integer } }
Elemento de resposta | Descrição |
---|---|
modelVersion |
O modelo e a versão usados para a geração. Exemplo:
gemini-1.5-flash-002 . |
text |
O texto gerado. |
finishReason |
É o motivo pelo qual o modelo parou de gerar tokens. Se estiver vazio, o modelo não parou de gerar os tokens. Como a resposta usa o comando para contexto, não é possível alterar o comportamento de como o modelo para de gerar tokens.
|
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
|
probability |
Os níveis de probabilidade de danos no conteúdo.
|
blocked |
Uma sinalização booleana associada a um atributo de segurança que indica se a entrada ou a saída do modelo foi bloqueada. |
startIndex |
Um número inteiro que especifica onde começa uma citação em content .
|
endIndex |
Um número inteiro que especifica onde uma citação termina em content .
|
url |
O URL de uma fonte de citação. Exemplos de uma fonte de URL podem ser um site de notícias ou um repositório do GitHub. |
title |
O título de uma fonte de citação. Alguns exemplos de títulos de fontes são os de artigos de notícias ou livros. |
license |
A licença associada a uma citação. |
publicationDate |
A data em que uma citação foi publicada. Os formatos válidos são YYYY , YYYY-MM e YYYY-MM-DD .
|
avgLogprobs |
Probabilidade média de registro do candidato. |
token |
Os modelos de IA generativa dividem os dados de texto em tokens para processamento, que podem ser caracteres, palavras ou frases. |
logProbability |
Um valor de probabilidade de registro que indica a confiança do modelo para um token específico. |
promptTokenCount |
Número de tokens na solicitação. |
candidatesTokenCount |
Número de tokens nas respostas. |
totalTokenCount |
Número de tokens na solicitação e nas respostas. |
Exemplos
Resposta de texto sem streaming
Gere uma resposta de modelo sem streaming com base em uma entrada de texto.
REST
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.MODEL_ID
: o ID do modelo que você quer usar (por exemplo,gemini-1.5-flash-002
). Veja a lista de modelos compatíveis.TEXT
: as instruções de texto a serem incluídas no comando.
Método HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:generateContent
Corpo JSON da solicitação:
{ "contents": [{ "role": "user", "parts": [{ "text": "TEXT" }] }] }
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:generateContent"
PowerShell
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:generateContent" | Select-Object -Expand Content
Python
NodeJS
Java
Go
C#
REST (OpenAI)
É possível chamar a API Inference usando a biblioteca OpenAI. Para mais informações, consulte Chamar modelos da Vertex AI usando a biblioteca OpenAI.
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.
- MODEL_ID: o nome do modelo a ser usado.
Método HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/endpoints/openapi/chat/completions
Corpo JSON da solicitação:
{ "model": "google/MODEL_ID", "messages": [{ "role": "user", "content": "Write a story about a magic backpack." }] }
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/endpoints/openapi/chat/completions"
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/endpoints/openapi/chat/completions" | Select-Object -Expand Content
Python (OpenAI)
É possível chamar a API Inference usando a biblioteca OpenAI. Para mais informações, consulte Chamar modelos da Vertex AI usando a biblioteca OpenAI.
Resposta multimodal que não é de streaming
Gere uma resposta de modelo sem streaming com base em uma entrada multimodal, como texto e imagem.
REST
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.MODEL_ID
: o ID do modelo que você quer usar (por exemplo,gemini-1.5-flash-002
). Veja a lista de modelos compatíveis.TEXT
: as instruções de texto a serem incluídas no comando.FILE_URI
: O URI do Cloud Storage para o arquivo que armazena os dadosMIME_TYPE
: o tipo MIME IANA dos dados.
Método HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:generateContent
Corpo JSON da solicitação:
{ "contents": [{ "role": "user", "parts": [ { "text": "TEXT" }, { "fileData": { "fileUri": "FILE_URI", "mimeType": "MIME_TYPE" } } ] }] }
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:generateContent"
PowerShell
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:generateContent" | Select-Object -Expand Content
Python
NodeJS
Java
Go
C#
REST (OpenAI)
É possível chamar a API Inference usando a biblioteca OpenAI. Para mais informações, consulte Chamar modelos da Vertex AI usando a biblioteca OpenAI.
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.
- MODEL_ID: o nome do modelo a ser usado.
Método HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/endpoints/openapi/chat/completions
Corpo JSON da solicitação:
{ "model": "google/MODEL_ID", "messages": [{ "role": "user", "content": [ { "type": "text", "text": "Describe the following image:" }, { "type": "image_url", "image_url": { "url": "gs://generativeai-downloads/images/character.jpg" } } ] }] }
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/endpoints/openapi/chat/completions"
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/endpoints/openapi/chat/completions" | Select-Object -Expand Content
Python (OpenAI)
É possível chamar a API Inference usando a biblioteca OpenAI. Para mais informações, consulte Chamar modelos da Vertex AI usando a biblioteca OpenAI.
Resposta de texto de streaming
Gerar uma resposta de modelo de streaming com base em uma entrada de texto.
REST
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.MODEL_ID
: o ID do modelo que você quer usar (por exemplo,gemini-1.5-flash-002
). Veja a lista de modelos compatíveis.TEXT
: as instruções de texto a serem incluídas no comando.
Método HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:streamGenerateContent
Corpo JSON da solicitação:
{ "contents": [{ "role": "user", "parts": [{ "text": "TEXT" }] }] }
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:streamGenerateContent"
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:streamGenerateContent" | Select-Object -Expand Content
Python
NodeJS
Java
Go
REST (OpenAI)
É possível chamar a API Inference usando a biblioteca OpenAI. Para mais informações, consulte Chamar modelos da Vertex AI usando a biblioteca OpenAI.
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.
- MODEL_ID: o nome do modelo a ser usado.
Método HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/endpoints/openapi/chat/completions
Corpo JSON da solicitação:
{ "model": "google/MODEL_ID", "stream": true, "messages": [{ "role": "user", "content": "Write a story about a magic backpack." }] }
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/endpoints/openapi/chat/completions"
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/endpoints/openapi/chat/completions" | Select-Object -Expand Content
Python (OpenAI)
É possível chamar a API Inference usando a biblioteca OpenAI. Para mais informações, consulte Chamar modelos da Vertex AI usando a biblioteca OpenAI.
Resposta multimodal de streaming
Gere uma resposta de modelo de streaming com base em uma entrada multimodal, como texto e imagem.
REST
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.MODEL_ID
: o ID do modelo que você quer usar (por exemplo,gemini-1.5-flash-002
). Veja a lista de modelos compatíveis.TEXT
: as instruções de texto a serem incluídas no comando.FILE_URI1
: O URI do Cloud Storage para o arquivo que armazena os dadosMIME_TYPE1
: o tipo MIME IANA dos dados.FILE_URI2
: O URI do Cloud Storage para o arquivo que armazena os dadosMIME_TYPE2
: o tipo MIME IANA dos dados.
Método HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:streamGenerateContent
Corpo JSON da solicitação:
{ "contents": [{ "role": "user", "parts": [ { "text": "TEXT" }, { "fileData": { "fileUri": "FILE_URI1", "mimeType": "MIME_TYPE1" } }, { "fileData": { "fileUri": "FILE_URI2", "mimeType": "MIME_TYPE2" } } ] }] }
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:streamGenerateContent"
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:streamGenerateContent" | Select-Object -Expand Content
Python
NodeJS
Java
Go
REST (OpenAI)
É possível chamar a API Inference usando a biblioteca OpenAI. Para mais informações, consulte Chamar modelos da Vertex AI usando a biblioteca OpenAI.
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.
- MODEL_ID: o nome do modelo a ser usado.
Método HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/endpoints/openapi/chat/completions
Corpo JSON da solicitação:
{ "model": "google/MODEL_ID", "stream": true, "messages": [{ "role": "user", "content": [ { "type": "text", "text": "Describe the following image:" }, { "type": "image_url", "image_url": { "url": "gs://generativeai-downloads/images/character.jpg" } } ] }] }
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/endpoints/openapi/chat/completions"
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/endpoints/openapi/chat/completions" | Select-Object -Expand Content
Python (OpenAI)
É possível chamar a API Inference usando a biblioteca OpenAI. Para mais informações, consulte Chamar modelos da Vertex AI usando a biblioteca OpenAI.
Versões do modelo
Para usar a versão atualizada automaticamente,
especifique o nome do modelo sem o número da versão à direita, por exemplo, gemini-1.5-flash
em vez de gemini-1.5-flash-001
.
Para mais informações, consulte Versões e ciclo de vida do modelo Gemini.
A seguir
- Saiba mais sobre a API Gemini.
- Saiba mais sobre chamadas de funções.
- Saiba mais sobre respostas de embasamento para modelos do Gemini.