Freigeben über


Verwenden von Bildern mit einem Agenten

In diesem Lernprogramm erfahren Sie, wie Sie Bilder mit einem Agent verwenden, sodass der Agent Bildinhalte analysieren und darauf reagieren kann.

Übergeben von Bildern an den Agent

Sie können Bilder an einen Agenten senden, indem Sie einen ChatMessage erstellen, der sowohl Text- als auch Bildinhalte enthält. Der Agent kann das Bild dann analysieren und entsprechend reagieren.

Erstellen Sie zunächst eine AIAgent , die Bilder analysieren kann.

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

Warnung

DefaultAzureCredential ist praktisch für die Entwicklung, erfordert aber sorgfältige Überlegungen in der Produktion. Berücksichtigen Sie in der Produktion die Verwendung bestimmter Anmeldeinformationen (z. B. ManagedIdentityCredential), um Latenzprobleme, unbeabsichtigte Abfragen von Anmeldeinformationen und potenzielle Sicherheitsrisiken durch Ausweichmechanismen zu vermeiden.

Erstellen Sie als Nächstes ein ChatMessage, das sowohl eine Texteingabeaufforderung als auch eine Bild-URL enthält. Verwenden Sie TextContent für den Text und UriContent für das Bild.

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

Führen Sie den Agent mit der Nachricht aus. Sie können Streaming verwenden, um die Antwort zu empfangen, während sie generiert wird.

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

Dadurch wird die Analyse des Agenten für das Bild in die Konsole ausgegeben.

Übergeben von Bildern an den Agent

Sie können Bilder an einen Agenten senden, indem Sie einen Message erstellen, der sowohl Text- als auch Bildinhalte enthält. Der Agent kann das Bild dann analysieren und entsprechend reagieren.

Erstellen Sie zunächst einen Agent, der Bilder analysieren kann.

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

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

Erstellen Sie als Nächstes ein Message, das sowohl eine Texteingabeaufforderung als auch eine Bild-URL enthält. Verwenden Sie Content.from_text() für den Text und Content.from_uri() für das Bild.

from agent_framework import Message, Content

message = Message(
    role="user",
    contents=[
        Content.from_text(text="What do you see in this image?"),
        Content.from_uri(
            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"
        )
    ]
)

Sie können auch ein Bild aus Ihrem lokalen Dateisystem laden, indem Sie Content.from_data() verwenden:

from agent_framework import Message, Content

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

message = Message(
    role="user",
    contents=[
        Content.from_text(text="What do you see in this image?"),
        Content.from_data(
            data=image_bytes,
            media_type="image/jpeg"
        )
    ]
)

Führen Sie den Agent mit der Nachricht aus. Sie können Streaming verwenden, um die Antwort zu empfangen, während sie generiert wird.

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

asyncio.run(main())

Dadurch wird die Analyse des Agenten für das Bild in die Konsole ausgegeben.

Nächste Schritte