Comprendere le immagini

Puoi aggiungere immagini alle richieste dell'API Gemini Chat Completions per eseguire attività che comportano la comprensione dei contenuti delle immagini incluse. La comprensione delle immagini è uno degli input multimodali di Gemini che combinano testo e file multimediali.

Per ulteriori informazioni sulla comprensione delle immagini con Gemini e istruzioni passo passo per l'invio di richieste API, consulta Inviare un prompt multimodale.

Specifiche per i prompt con immagini

Puoi aggiungere una o più immagini alle tue richieste a Gemini. Il numero massimo di immagini per prompt per garantire le prestazioni dei modelli Gemini in Google Distributed Cloud (GDC) air-gapped è 100.

Non esiste un limite specifico al numero di pixel in un'immagine. Tuttavia, le immagini più grandi vengono ridimensionate e riempite per adattarsi a una risoluzione massima di 768 x 768 mantenendo le proporzioni originali. Ogni immagine equivale a 258 token.

Le immagini devono essere in uno dei seguenti tipi MIME di dati immagine:

  • HEIC: image/heic
  • HEIF: image/heif
  • JPG: image/jpg o image/jpeg
  • PNG: image/png
  • WEBP: image/webp

Puoi utilizzare l'endpoint Completamento chat nell'API REST e utilizzare un client HTTP o gli SDK ufficiali di OpenAI per Python. Puoi fornire l'immagine come dati incorporati nella richiesta del prompt come file codificato in base64 o caricare il file immagine in un bucket di archiviazione prima di effettuare la richiesta del prompt.

Scopri di più sulle best practice e sulle limitazioni per le immagini nella documentazione di Google Cloud .

Per saperne di più su OpenAI e sull'endpoint Chat Completions che Gemini implementa in Google Distributed Cloud (GDC) air-gapped, consulta https://platform.openai.com/docs/api-reference/chat.

Comprendere un'immagine da un prompt

Gli esempi seguenti mostrano una richiesta dell'API Gemini Chat Completions per generare testo da input di testo e immagini utilizzando gli SDK ufficiali di OpenAI per Python o 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)

Sostituisci quanto segue:

  • MODEL_ID: l'ID endpoint del modello da cui vuoi generare la risposta.
  • IMAGE_DATA: il percorso di un URL immagine in un bucket o i dati dell'immagine codificati in base64. A seconda dei tuoi dati, considera i seguenti aspetti:

    • I dati con codifica Base64 devono avere come prefisso uno schema URI dati, RFC 2397. Pertanto, il formato del campo url per i dati con codifica base64 è, ad esempio, "url": f"data:image/jpeg;base64,{base64_image}".
    • Gli URL delle immagini devono fare riferimento a immagini archiviate in un bucket di archiviazione GDC. Pertanto, il formato del campo url per gli URL delle immagini è, ad esempio, "url": "s3://path/to/bucket/image". Per maggiori informazioni, vedi Memorizzare i dati.

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
    }'

Sostituisci quanto segue:

  • ENDPOINT: l'endpoint API che utilizzi per la tua organizzazione.
  • PROJECT: il tuo ID progetto.
  • MODEL_ID: l'ID endpoint del modello da cui vuoi generare la risposta.
  • IMAGE_DATA: il percorso di un URL immagine in un bucket o i dati dell'immagine codificati in base64. A seconda dei tuoi dati, considera i seguenti aspetti:

    • I dati con codifica Base64 devono avere come prefisso uno schema URI dati, RFC 2397. Pertanto, il formato del campo url per i dati con codifica base64 è, ad esempio, "url": f"data:image/jpeg;base64,{base64_image}".
    • Gli URL delle immagini devono fare riferimento a immagini archiviate in un bucket di archiviazione GDC. Pertanto, il formato del campo url per gli URL delle immagini è, ad esempio, "url": "s3://path/to/bucket/image". Per maggiori informazioni, vedi Memorizzare i dati.

Passaggi successivi