Använda bilder med en agent

Den här guiden visar hur du använder bilder med en agent, för att agenten kan analysera och svara på bildinnehåll.

Förutsättningar

Förutsättningar och installation av NuGet-paket finns i steget Skapa och kör en enkel agent i den här självstudien.

Skicka avbildningar till agenten

Du kan skicka bilder till en agent genom att skapa en ChatMessage som innehåller både text- och bildinnehåll. Agenten kan sedan analysera bilden och svara därefter.

Skapa först en AIAgent som kan analysera bilder.

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");

Skapa sedan en ChatMessage som innehåller både en textprompt och en bild-URL. Använd TextContent för texten och UriContent för bilden.

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")
]);

Kör agenten med meddelandet. Du kan använda direktuppspelning för att ta emot svaret när det genereras.

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

Detta skriver ut agentens analys av avbildningen till konsolen.

Skicka avbildningar till agenten

Du kan skicka bilder till en agent genom att skapa en ChatMessage som innehåller både text- och bildinnehåll. Agenten kan sedan analysera bilden och svara därefter.

Skapa först en agent som kan analysera bilder.

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"
)

Skapa sedan en ChatMessage som innehåller både en textprompt och en bild-URL. Använd TextContent för texten och UriContent för bilden.

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"
        )
    ]
)

Du kan också läsa in en avbildning från ditt lokala filsystem med hjälp av DataContent:

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"
        )
    ]
)

Kör agenten med meddelandet. Du kan använda direktuppspelning för att ta emot svaret när det genereras.

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

asyncio.run(main())

Detta skriver ut agentens analys av avbildningen till konsolen.

Nästa steg