Use a API Inference para gerar solicitações do 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.
Para mais informações gerais, consulte:
Modelos com suporte:
Modelo | Versão |
---|---|
Flash 1.5 do Gemini (pré-lançamento) | gemini-1.5-flash-preview-0514 |
Gemini 1.5 Pro (Pré-lançamento) | gemini-1.5-pro-preview-0514 |
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 |
Limitações:
Se você fornecer muitas imagens, a latência poderá ser alta.
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": [{ ... }], "generation_config": { ... }, "safety_settings": { ... } ... }'
Python
gemini_model = GenerativeModel(MODEL_ID) generation_config = GenerationConfig(...) model_response = gemini_model.generate_content([...], generation_config, safety_settings={...})
De 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": [{ ... }], "generation_config": { ... }, "safety_settings": { ... } ... }'
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
O corpo da solicitação contém dados com os seguintes parâmetros:
Parâmetros | |
---|---|
|
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: O usuário forneceu instruções do sistema para o modelo. Observação: somente |
|
Opcional. Consulte API de chamada de função. |
|
Opcional. Consulte API de 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. |
Conteúdo
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. |
Parte
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. |
|
Opcional: Dados armazenados em um arquivo. |
|
Opcional: Ele contém uma string que representa o campo Consulte API de chamada de função. |
|
Opcional: A saída resultante de uma Consulte API de chamada de função. |
|
Opcional: Metadados do vídeo. 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 | |
---|---|
|
Tipo MIME IANA dos dados. |
|
Bytes brutos. |
FileData
Dados baseados em URI.
Parâmetros | |
---|---|
mime_type |
Tipo MIME IANA dos dados. |
file_uri |
string O URI do Cloud Storage para o arquivo que armazena os dados |
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 a API de chamada de função para mais detalhes sobre o parâmetro. |
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 dano. |
|
Opcional: O limite do bloqueio de danos. |
|
Opcional: O número máximo de termos influentes que mais contribuem para as pontuações de segurança, o que pode causar possíveis bloqueios. |
|
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 CRM 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 |
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: Controla a aleatoriedade das previsões. |
|
Opcional: Se especificado, a amostragem de núcleos é usada. |
|
Opcional: se especificado, a amostragem top-k é usada. |
|
Opcional: Número de candidatos a serem gerados. |
|
Opcional: int O número máximo de tokens de saída a serem gerados por mensagem. |
|
Opcional: Sequências de paradas. |
|
Opcional: Penalidades positivas. |
|
Opcional: Penalidades de frequência. |
|
Opcional: Tipo MIME da resposta de saída do texto candidato gerado. Tipo MIME compatível:
Este é um recurso em fase de pré-lançamento. |
Examples
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.
- 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
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.
- 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 dados
- MIME_TYPE: o tipo MIME TIANA 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" }, { "file_data": {"file_uri": "FILE_URI", "MIME_TYPE"} }, { "file_data": {"file_uri": "FILE_URI", "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
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.
- 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
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.
- 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
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.