Développer une application de conversation basée sur la vision
Tip
Pour plus d’informations, consultez l’onglet Texte et images !
Pour développer une application cliente qui s’engage dans des conversations basées sur la vision avec un modèle modal, vous pouvez utiliser les mêmes techniques de base que celles utilisées pour les conversations textuelles. Vous avez besoin d’une connexion au point de terminaison où le modèle est déployé et vous utilisez ce point de terminaison pour envoyer des invites qui se composent de messages au modèle et traiter les réponses.
La principale différence est que les invites pour une conversation basée sur la vision incluent des messages utilisateur en plusieurs parties qui contiennent à la fois un élément de contenu texte et un élément de contenu d’image .
Envoyer une invite basée sur une image à l’aide de l’API Réponses
Pour inclure une image dans une invite à l’aide de l’API Réponses , spécifiez une URL pour un fichier image web, ou chargez une image locale et encodez ses données au format Base64 et envoyez une URL au format data:image/jpeg;base64,{image_data} (en remplaçant « jpeg » par « png » pr d’autres formats appropriés).
L’exemple Python suivant montre comment envoyer une image dans une invite à l’aide de l’API Réponses :
# Read the image data from a local file
image_path = Path("dragon-fruit.jpeg")
image_format = "jpeg"
with open(image_path, "rb") as image_file:
image_data = base64.b64encode(image_file.read()).decode("utf-8")
data_url = f"data:image/{image_format};base64,{image_data}" # You can also use a web URL
# Send the image data in a prompt to the model
response = client.responses.create(
model="gpt-4.1",
input=[
{"role": "developer", "content": "You are an AI assistant for chefs planning recipes."},
{"role": "user", "content": [
{ "type": "input_text", "text": "What desserts could I make with this?"},
{ "type": "input_image", "image_url": data_url}
] }
]
)
print(response.output_text)
Envoyer une invite basée sur une image à l’aide de l’API ChatCompletions
Lorsque vous utilisez le point de terminaison Azure OpenAI pour envoyer des invites à des modèles qui ne prennent pas en charge l’API Réponses , vous pouvez utiliser l’API CatCompletions ; Comme ça:
# Read the image data from a local file
image_path = Path("orange.jpeg")
image_format = "jpeg"
with open(image_path, "rb") as image_file:
image_data = base64.b64encode(image_file.read()).decode("utf-8")
data_url = f"data:image/{image_format};base64,{image_data}" # You can also use a web URL
# Send the image data in a prompt to the model
response = client.chat.completions.create(
model="Phi-4-multimodal-instruct",
messages=[
{"role": "system", "content": "You are an AI assistant for chefs planning recipes."},
{ "role": "user", "content": [
{ "type": "text", "text": "What can I make with this fruit?"},
{ "type": "image_url", "image_url": {"url": data_url}}
] }
]
)
print(response.choices[0].message.content)