Comprendre les images

Vous pouvez ajouter des images aux requêtes de l'API Gemini Chat Completions pour effectuer des tâches qui impliquent de comprendre le contenu des images incluses. La compréhension des images est l'une des entrées multimodales de Gemini qui combinent du texte avec des fichiers multimédias.

Pour en savoir plus sur la compréhension des images avec Gemini et obtenir des instructions détaillées sur l'envoi de requêtes d'API, consultez Envoyer une requête multimodale.

Spécifications pour les requêtes avec images

Vous pouvez ajouter une ou plusieurs images à vos requêtes Gemini. Le nombre maximal d'images par requête pour garantir les performances des modèles Gemini dans Google Distributed Cloud (GDC) sous air gap est de 100.

Il n'y a pas de limite spécifique au nombre de pixels dans une image. Cependant, les images plus volumineuses sont réduites et remplies pour correspondre à une résolution maximale de 768 x 768, tout en préservant leur format d'origine. Chaque image équivaut à 258 jetons.

Les images doivent correspondre à l'un des types MIME de données d'image suivants :

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

Vous pouvez utiliser le point de terminaison Chat Completions dans l'API REST et utiliser un client HTTP ou les SDK officiels d'OpenAI pour Python. Vous pouvez fournir l'image en tant que données intégrées à la requête d'invite sous la forme d'un fichier encodé en base64 ou importer le fichier image dans un bucket de stockage avant d'envoyer la requête d'invite.

En savoir plus sur les bonnes pratiques et les limites concernant les images dans la documentation Google Cloud

Pour en savoir plus sur OpenAI et le point de terminaison Chat Completions que Gemini implémente dans Google Distributed Cloud (GDC) air-gapped, consultez https://platform.openai.com/docs/api-reference/chat.

Comprendre une image à partir d'une requête

Les exemples suivants montrent une requête de l'API Gemini Chat Completions pour générer du texte à partir d'une entrée texte et image à l'aide des SDK officiels d'OpenAI pour 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)

Remplacez les éléments suivants :

  • MODEL_ID : ID du point de terminaison du modèle avec lequel vous souhaitez générer la réponse.
  • IMAGE_DATA : chemin d'accès à l'URL d'une image dans un bucket ou à vos données d'image encodées en base64. Tenez compte des aspects suivants en fonction de vos données :

    • Les données encodées en base64 doivent être précédées d'un schéma d'URI de données, RFC 2397. Par conséquent, le format du champ url pour les données encodées en base64 est, par exemple, "url": f"data:image/jpeg;base64,{base64_image}".
    • Les URL des images doivent faire référence à des images stockées dans un bucket de stockage GDC. Par conséquent, le format du champ url pour les URL d'images est, par exemple, "url": "s3://path/to/bucket/image". Pour en savoir plus, consultez Stocker des données.

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

Remplacez les éléments suivants :

  • ENDPOINT : point de terminaison de l'API que vous utilisez pour votre organisation.
  • PROJECT : ID de votre projet.
  • MODEL_ID : ID du point de terminaison du modèle avec lequel vous souhaitez générer la réponse.
  • IMAGE_DATA : chemin d'accès à l'URL d'une image dans un bucket ou à vos données d'image encodées en base64. Tenez compte des aspects suivants en fonction de vos données :

    • Les données encodées en base64 doivent être précédées d'un schéma d'URI de données, RFC 2397. Par conséquent, le format du champ url pour les données encodées en base64 est, par exemple, "url": f"data:image/jpeg;base64,{base64_image}".
    • Les URL des images doivent faire référence à des images stockées dans un bucket de stockage GDC. Par conséquent, le format du champ url pour les URL d'images est, par exemple, "url": "s3://path/to/bucket/image". Pour en savoir plus, consultez Stocker des données.

Étapes suivantes