Поделиться через


Использование изображений с агентом

В этом руководстве показано, как использовать изображения с агентом, позволяя агенту анализировать и реагировать на содержимое изображения.

Передача изображений агенту

Вы можете отправить изображения агенту, создав ChatMessage, который включает как текст, так и изображение. Затем агент может проанализировать изображение и ответить соответствующим образом.

Сначала создайте объект AIAgent , который может анализировать изображения.

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

Предупреждение

DefaultAzureCredential удобно для разработки, но требует тщательного рассмотрения в рабочей среде. В рабочей среде рекомендуется использовать определенные учетные данные (например, ManagedIdentityCredential), чтобы избежать проблем с задержкой, непреднамеренной проверки данных аутентификации и потенциальных рисков безопасности из-за резервных механизмов.

Затем создайте ChatMessage, который содержит обо текстовую подсказку и URL-адрес изображения. Используется TextContent для текста и UriContent изображения.

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

Запустите агент с сообщением. Потоковую передачу можно использовать для получения ответа по мере его создания.

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

Это выведет анализ изображения агентом в консоль.

Передача изображений агенту

Вы можете отправить изображения агенту, создав Message, который включает как текст, так и изображение. Затем агент может проанализировать изображение и ответить соответствующим образом.

Сначала создайте агент, который может анализировать изображения.

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

Затем создайте Message, который содержит обо текстовую подсказку и URL-адрес изображения. Используется Content.from_text() для текста и Content.from_uri() изображения.

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

Вы также можете загрузить образ из локальной файловой системы с помощью 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"
        )
    ]
)

Запустите агент с сообщением. Потоковую передачу можно использовать для получения ответа по мере его создания.

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

asyncio.run(main())

Это выведет анализ изображения агентом в консоль.

Дальнейшие шаги