Partager via


Utilisation d’images avec un agent

Ce tutoriel vous montre comment utiliser des images avec un agent, ce qui permet à l’agent d’analyser et de répondre au contenu de l’image.

Prerequisites

Pour connaître les prérequis et l’installation des packages NuGet, consultez l’étape Créer et exécuter un agent simple dans ce tutoriel.

Passage d’images à l’agent

Vous pouvez envoyer des images à un agent en créant un ChatMessage qui contient à la fois du texte et des images. L’agent peut ensuite analyser l’image et répondre en conséquence.

Tout d’abord, créez un AIAgent élément capable d’analyser des images.

AIAgent agent = new AzureOpenAIClient(
    new Uri("https://<myresource>.openai.azure.com"),
    new AzureCliCredential())
    .GetChatClient("gpt-4o")
    .CreateAIAgent(
        name: "VisionAgent",
        instructions: "You are a helpful agent that can analyze images");

Ensuite, créez un ChatMessage qui contient à la fois une invite de texte et une URL d’image. Utiliser TextContent pour le texte et UriContent pour l’image.

ChatMessage message = new(ChatRole.User, [
    new TextContent("What do you see in this image?"),
    new UriContent("https://upload.wikimedia.org/wikipedia/commons/thumb/d/dd/Gfp-wisconsin-madison-the-nature-boardwalk.jpg/2560px-Gfp-wisconsin-madison-the-nature-boardwalk.jpg", "image/jpeg")
]);

Exécutez l’agent avec le message. Vous pouvez utiliser la diffusion en continu pour recevoir la réponse à mesure qu’elle est générée.

Console.WriteLine(await agent.RunAsync(message));

Cela affichera l'analyse de l'agent de l'image dans la console.

Passage d’images à l’agent

Vous pouvez envoyer des images à un agent en créant un ChatMessage qui contient à la fois du texte et des images. L’agent peut ensuite analyser l’image et répondre en conséquence.

Tout d’abord, créez un agent capable d’analyser des images.

import asyncio
from agent_framework.azure import AzureOpenAIChatClient
from azure.identity import AzureCliCredential

agent = AzureOpenAIChatClient(credential=AzureCliCredential()).create_agent(
    name="VisionAgent",
    instructions="You are a helpful agent that can analyze images"
)

Ensuite, créez un ChatMessage qui contient à la fois une invite de texte et une URL d’image. Utiliser TextContent pour le texte et UriContent pour l’image.

from agent_framework import ChatMessage, TextContent, UriContent, Role

message = ChatMessage(
    role=Role.USER,
    contents=[
        TextContent(text="What do you see in this image?"),
        UriContent(
            uri="https://upload.wikimedia.org/wikipedia/commons/thumb/d/dd/Gfp-wisconsin-madison-the-nature-boardwalk.jpg/2560px-Gfp-wisconsin-madison-the-nature-boardwalk.jpg",
            media_type="image/jpeg"
        )
    ]
)

Vous pouvez également charger une image à partir de votre système de fichiers local à l’aide DataContentde :

from agent_framework import ChatMessage, TextContent, DataContent, Role

# Load image from local file
with open("path/to/your/image.jpg", "rb") as f:
    image_bytes = f.read()

message = ChatMessage(
    role=Role.USER,
    contents=[
        TextContent(text="What do you see in this image?"),
        DataContent(
            data=image_bytes,
            media_type="image/jpeg"
        )
    ]
)

Exécutez l’agent avec le message. Vous pouvez utiliser la diffusion en continu pour recevoir la réponse à mesure qu’elle est générée.

async def main():
    result = await agent.run(message)
    print(result.text)

asyncio.run(main())

Cela affichera l'analyse de l'agent de l'image dans la console.

Étapes suivantes