Analyser une image avec Grok
La vision par ordinateur avec l’API Grok
Les modèles Grok avec support vision peuvent analyser des images en plus du texte. Vous envoyez une image (par URL ou en base64) accompagnée d’une question, et le modèle décrit, analyse ou extrait des informations visuelles. Cette capacité ouvre des possibilités concrètes : extraction de données depuis des captures d’écran, analyse de graphiques, lecture de documents scannés.
Format d’entrée image
Pour envoyer une image, vous utilisez un tableau de contenus mixtes (texte et image) dans le champ input :
[
{
"type": "input_image",
"image_url": "https://exemple.com/mon-image.jpg"
},
{
"type": "input_text",
"text": "Que voyez-vous sur cette image ?"
}
]
Le type input_image accepte une URL publique vers l’image. Le type input_text contient votre question ou instruction.
Exemple en Python
from openai import OpenAI
import os
client = OpenAI(
api_key=os.getenv("XAI_API_KEY"),
base_url="https://api.x.ai/v1"
)
response = client.responses.create(
model="grok-4",
input=[
{
"type": "input_image",
"image_url": "https://exemple.com/graphique-ventes.png"
},
{
"type": "input_text",
"text": "Analysez ce graphique. Quelle est la tendance principale ?"
}
]
)
print(response.output[0].content[0].text)
Avec le format chat/completions
Si vous utilisez l’endpoint legacy /v1/chat/completions, le format est légèrement différent :
response = client.chat.completions.create(
model="grok-4",
messages=[
{
"role": "user",
"content": [
{
"type": "image_url",
"image_url": {"url": "https://exemple.com/photo.jpg"}
},
{
"type": "text",
"text": "Décrivez cette image en détail."
}
]
}
]
)
Différence de format
| Endpoint | Type image | Type texte |
|---|---|---|
/v1/responses | input_image | input_text |
/v1/chat/completions | image_url | text |
Envoyer une image en base64
Si votre image n’est pas accessible par URL (fichier local, image générée), encodez-la en base64 :
import base64
with open("capture.png", "rb") as f:
image_base64 = base64.b64encode(f.read()).decode("utf-8")
response = client.responses.create(
model="grok-4",
input=[
{
"type": "input_image",
"image_url": f"data:image/png;base64,{image_base64}"
},
{
"type": "input_text",
"text": "Lisez le texte présent dans cette capture d'écran."
}
]
)
Cas d’usage concrets
Extraction de données
Envoyez une photo de facture ou de reçu et demandez au modèle d’extraire les montants, dates et références.
Analyse de graphiques
Soumettez un graphique ou un diagramme et demandez une interprétation des tendances et des données clés.
Assistance au code
Partagez une capture d’écran d’une erreur dans votre IDE et demandez une explication et une solution.
Description d’interface
Envoyez une maquette ou une capture d’écran et demandez au modèle de décrire les éléments d’interface présents.
Modèles compatibles vision
Tous les modèles Grok ne supportent pas la vision. Utilisez grok-4 qui inclut le support des images. Les modèles de type « mini » ou « fast » peuvent avoir un support limité ou absent.
Points clés à retenir
- Utilisez le type
input_imageavec l’endpoint/v1/responsespour envoyer des images - Les images peuvent être envoyées par URL publique ou encodées en base64
- Le modèle
grok-4supporte l’analyse d’images - Combinez image et texte dans un tableau pour poser des questions sur le contenu visuel