Udostępnij przez


Używanie obrazów z agentem

W tym samouczku pokazano, jak używać obrazów z agentem, co pozwala agentowi analizować zawartość obrazów i na nią reagować.

Wymagania wstępne

Aby uzyskać wymagania wstępne i zainstalować pakiety NuGet, zobacz krok Tworzenie i uruchamianie prostego agenta w tym samouczku.

Przekazywanie obrazów do agenta

Obrazy można wysyłać do agenta, tworząc obiekt ChatMessage zawierający zarówno zawartość tekstową, jak i obrazową. Agent może następnie przeanalizować obraz i odpowiednio odpowiedzieć.

Najpierw utwórz obiekt AIAgent , który umożliwia analizowanie obrazów.

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

Następnie utwórz obiekt ChatMessage zawierający zarówno monit tekstowy, jak i adres URL obrazu. Użyj TextContent dla tekstu i UriContent obrazu.

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

Uruchom agenta z wiadomością. Możesz użyć przesyłania strumieniowego, aby odebrać odpowiedź w trakcie jej generowania.

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

Spowoduje to wyświetlenie analizy obrazu agenta w konsoli.

Przekazywanie obrazów do agenta

Obrazy można wysyłać do agenta, tworząc obiekt ChatMessage zawierający zarówno zawartość tekstową, jak i obrazową. Agent może następnie przeanalizować obraz i odpowiednio odpowiedzieć.

Najpierw utwórz agenta, który może analizować obrazy.

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

Następnie utwórz obiekt ChatMessage zawierający zarówno monit tekstowy, jak i adres URL obrazu. Użyj TextContent dla tekstu i UriContent obrazu.

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

Obraz można również załadować z lokalnego systemu plików przy użyciu polecenia 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"
        )
    ]
)

Uruchom agenta z wiadomością. Możesz użyć przesyłania strumieniowego, aby odebrać odpowiedź w trakcie jej generowania.

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

asyncio.run(main())

Spowoduje to wyświetlenie analizy obrazu agenta w konsoli.

Dalsze kroki