Compartir a través de


Uso de imágenes con un agente

En este tutorial se muestra cómo usar imágenes con un agente, lo que permite al agente analizar y responder al contenido de la imagen.

Pasar imágenes al agente

Puede enviar imágenes a un agente mediante la creación de un ChatMessage que incluya contenido de texto e imagen. A continuación, el agente puede analizar la imagen y responder en consecuencia.

En primer lugar, cree un AIAgent que pueda analizar imágenes.

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

Advertencia

DefaultAzureCredential es conveniente para el desarrollo, pero requiere una consideración cuidadosa en producción. En producción, considere usar una credencial específica (por ejemplo, ManagedIdentityCredential) para evitar problemas de latencia, sondeos de credenciales no deseados y posibles riesgos de seguridad de los mecanismos de respaldo.

A continuación, cree un ChatMessage que contenga un mensaje de texto y una dirección URL de imagen. Use TextContent para el texto y UriContent para la imagen.

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

Ejecuta el agente con el mensaje. Puede usar streaming para recibir la respuesta a medida que se genera.

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

Esto imprimirá el análisis del agente de la imagen en la consola.

Pasar imágenes al agente

Puede enviar imágenes a un agente mediante la creación de un Message que incluya contenido de texto e imagen. A continuación, el agente puede analizar la imagen y responder en consecuencia.

En primer lugar, cree un agente que pueda analizar imágenes.

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

A continuación, cree un Message que contenga un mensaje de texto y una dirección URL de imagen. Use Content.from_text() para el texto y Content.from_uri() para la imagen.

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

También puede cargar una imagen desde el sistema de archivos local mediante 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"
        )
    ]
)

Ejecuta el agente con el mensaje. Puede usar streaming para recibir la respuesta a medida que se genera.

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

asyncio.run(main())

Esto imprimirá el análisis del agente de la imagen en la consola.

Pasos siguientes