다음을 통해 공유


에이전트와 함께 이미지 사용

이 자습서에서는 에이전트와 함께 이미지를 사용하여 에이전트가 이미지 콘텐츠를 분석하고 응답할 수 있도록 하는 방법을 보여 줍니다.

필수 조건

필수 구성 요소 및 NuGet 패키지 설치는 이 자습서의 간단한 에이전트 만들기 및 실행 단계를 참조하세요.

에이전트에 이미지 전달

텍스트 및 이미지 콘텐츠를 모두 포함하는 이미지를 만들어 ChatMessage 에이전트에 이미지를 보낼 수 있습니다. 그러면 에이전트가 이미지를 분석하고 그에 따라 응답할 수 있습니다.

먼저 이미지를 분석할 수 있는 AIAgent를 만듭니다.

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

다음으로 텍스트 프롬프트와 이미지 URL이 모두 포함된 ChatMessage을 만듭니다. 텍스트에는 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));

그러면 에이전트의 이미지 분석이 콘솔에 출력됩니다.

에이전트에 이미지 전달

텍스트 및 이미지 콘텐츠를 모두 포함하는 이미지를 만들어 ChatMessage 에이전트에 이미지를 보낼 수 있습니다. 그러면 에이전트가 이미지를 분석하고 그에 따라 응답할 수 있습니다.

먼저 이미지를 분석할 수 있는 에이전트를 만듭니다.

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

다음으로 텍스트 프롬프트와 이미지 URL이 모두 포함된 ChatMessage을 만듭니다. 텍스트에는 TextContent 태그를, 이미지에는 UriContent 태그를 사용하십시오.

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

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

메시지와 함께 에이전트를 실행합니다. 스트리밍을 사용하여 생성될 때 응답을 받을 수 있습니다.

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

asyncio.run(main())

그러면 에이전트의 이미지 분석이 콘솔에 출력됩니다.

다음 단계