Noções básicas sobre imagens

É 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/jpg ou image/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 url para 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 url para URLs de imagens é, por exemplo, "url": "s3://path/to/bucket/image". Para mais informações, consulte Armazenar dados.

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 url para 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 url para URLs de imagens é, por exemplo, "url": "s3://path/to/bucket/image". Para mais informações, consulte Armazenar dados.

A seguir