Sdílet prostřednictvím


Použití obrázků s agentem

V tomto kurzu se dozvíte, jak používat obrázky s agentem, což agentu umožňuje analyzovat a reagovat na obsah obrázku.

Požadavky

Informace o požadavcích a instalaci balíčků NuGet naleznete v kroku Vytvoření a spuštění jednoduchého agenta v tomto kurzu.

Přenos obrázků agentovi

Obrázky můžete poslat agentu tak, že vytvoříte ChatMessage, který zahrnuje jak textový, tak obrazový obsah. Agent pak může obrázek analyzovat a odpovídajícím způsobem reagovat.

Nejprve vytvořte AIAgent, který dokáže analyzovat obrázky.

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

Dále vytvořte ChatMessage, který obsahuje jak textovou výzvu, tak adresu URL obrázku. Použijte TextContent pro text a UriContent pro obrázek.

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

Spusťte agenta s následující zprávou. Můžete použít streamování k přijímání odpovědi, jakmile je generována.

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

Tím se do konzoly vytiskne analýza obrazu agenta.

Přenos obrázků agentovi

Obrázky můžete poslat agentu tak, že vytvoříte ChatMessage, který zahrnuje jak textový, tak obrazový obsah. Agent pak může obrázek analyzovat a odpovídajícím způsobem reagovat.

Nejprve vytvořte agenta, který dokáže analyzovat obrázky.

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

Dále vytvořte ChatMessage, který obsahuje jak textovou výzvu, tak adresu URL obrázku. Použijte TextContent pro text a UriContent pro obrázek.

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

Image můžete také načíst z místního systému souborů pomocí 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"
        )
    ]
)

Spusťte agenta s následující zprávou. Můžete použít streamování k přijímání odpovědi, jakmile je generována.

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

asyncio.run(main())

Tím se do konzoly vytiskne analýza obrazu agenta.

Další kroky