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.

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 DefaultAzureCredential())
    .GetChatClient("gpt-4o")
    .AsAIAgent(
        name: "VisionAgent",
        instructions: "You are a helpful agent that can analyze images");

Výstraha

DefaultAzureCredential je vhodný pro vývoj, ale vyžaduje pečlivé zvážení v produkčním prostředí. V produkčním prostředí zvažte použití konkrétních přihlašovacích údajů (např ManagedIdentityCredential. ) k zabránění problémům s latencí, neúmyslnému testování přihlašovacích údajů a potenciálním bezpečnostním rizikům z náhradních mechanismů.

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 Message, 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()).as_agent(
    name="VisionAgent",
    instructions="You are a helpful agent that can analyze images"
)

Dále vytvořte Message, který obsahuje jak textovou výzvu, tak adresu URL obrázku. Použijte Content.from_text() pro text a Content.from_uri() pro obrázek.

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

Image můžete také načíst z místního systému souborů pomocí Content.from_data():

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

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