É possível adicionar imagens às solicitações da API Gemini Chat Completions para realizar tarefas que envolvem a compreensão do conteúdo das imagens incluídas. A compreensão de imagens é uma das entradas multimodais do Gemini que combinam texto com arquivos de mídia.
Para mais informações sobre o entendimento de imagens com o Gemini e instruções detalhadas para enviar solicitações de API, consulte Enviar um comando multimodal.
Especificações para comandos com imagens
É possível adicionar uma ou várias imagens às suas solicitações do Gemini. O número máximo de imagens por comando para garantir o desempenho dos modelos do Gemini no Google Distributed Cloud (GDC) com isolamento físico é 100.
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 768 x 768, preservando a proporção original. Cada imagem equivale a 258 tokens.
As imagens precisam estar em um dos seguintes tipos MIME de dados de imagem:
- HEIC:
image/heic - HEIF:
image/heif - JPG:
image/jpgouimage/jpeg - PNG:
image/png - WEBP:
image/webp
É possível usar o endpoint Chat Completions na API REST e um cliente HTTP ou os SDKs oficiais da OpenAI para Python. Você pode fornecer a imagem como dados inline para a solicitação de comando como um arquivo codificado em base64 ou fazer upload do arquivo de imagem para um bucket de armazenamento antes de fazer a solicitação de comando.
Saiba mais sobre as práticas recomendadas e limitações para imagens na documentação do Google Cloud .
Para saber mais sobre a OpenAI e o endpoint Chat Completions que o Gemini implementa no Google Distributed Cloud (GDC) isolado, consulte https://platform.openai.com/docs/api-reference/chat.
Entender uma imagem com base em um comando
Os exemplos a seguir mostram uma solicitação da API Gemini Chat Completions para
gerar texto com base em entradas de texto e imagem usando os SDKs oficiais da OpenAI para Python
ou curl.
Python
import openai
client = openai.OpenAI()
model_response = client.chat.completions.create(
model = "MODEL_ID",
messages = [
{
"role": "user",
"content": "What's in this image?"
},
{
"role": "user",
"content": [
{
"type": "image_url",
"image_url": {
# Image URL or base64-encoded data
"url": IMAGE_DATA,
}
}
]
}
]
)
print(model_response)
Substitua:
MODEL_ID: o ID do endpoint do modelo que você quer usar para gerar a resposta.IMAGE_DATA: o caminho para um URL de imagem em um bucket ou seus dados de imagem codificados em base64. Considere os seguintes aspectos, dependendo dos seus dados:- Os dados codificados em base64 precisam ter um prefixo com um esquema de URI de dados, RFC 2397.
Portanto, o formato do campo
urlpara dados codificados em base64 é, por exemplo,"url": f"data:image/jpeg;base64,{base64_image}". - Os URLs de imagem precisam se referir a imagens armazenadas em um bucket de armazenamento do GDC. Portanto, o formato do campo
urlpara URLs de imagens é, por exemplo,"url": "s3://path/to/bucket/image". Para mais informações, consulte Armazenar dados.
- Os dados codificados em base64 precisam ter um prefixo com um esquema de URI de dados, RFC 2397.
Portanto, o formato do campo
curl
curl \
-X POST "https://ENDPOINT:443/v1/projects/PROJECT/locations/PROJECT/chat/completions" \
-H "Content-Type: application/json; charset=utf-8" \
-H "Authorization: Bearer $(gdcloud auth print-identity-token)" \
-d '{
"model_id": "MODEL_ID",
"messages": [
{
"role": "user",
"content": "What's in this image?"
},
{
"role": "user",
"content": [
{
"type": "image_url",
"image_url": {
# Image URL or base64-encoded data
"url": IMAGE_DATA
}
}
]
}
],
"max_tokens": 300
}'
Substitua:
ENDPOINT: o endpoint de API que você usa na sua organização.PROJECT: o ID do projeto.MODEL_ID: o ID do endpoint do modelo que você quer usar para gerar a resposta.IMAGE_DATA: o caminho para um URL de imagem em um bucket ou seus dados de imagem codificados em base64. Considere os seguintes aspectos, dependendo dos seus dados:- Os dados codificados em base64 precisam ter um prefixo com um esquema de URI de dados, RFC 2397.
Portanto, o formato do campo
urlpara dados codificados em base64 é, por exemplo,"url": f"data:image/jpeg;base64,{base64_image}". - Os URLs de imagem precisam se referir a imagens armazenadas em um bucket de armazenamento do GDC. Portanto, o formato do campo
urlpara URLs de imagens é, por exemplo,"url": "s3://path/to/bucket/image". Para mais informações, consulte Armazenar dados.
- Os dados codificados em base64 precisam ter um prefixo com um esquema de URI de dados, RFC 2397.
Portanto, o formato do campo