// Copyright (c) Microsoft. All rights reserved. // This sample shows how to use Image Multi-Modality with an AI agent. using Azure.AI.OpenAI; using Azure.Identity; using Microsoft.Extensions.AI; using OpenAI.Chat; using ChatMessage = Microsoft.Extensions.AI.ChatMessage; var endpoint = Environment.GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT") ?? throw new InvalidOperationException("AZURE_OPENAI_ENDPOINT is not set."); var deploymentName = System.Environment.GetEnvironmentVariable("AZURE_OPENAI_DEPLOYMENT_NAME") ?? "gpt-4o"; // WARNING: DefaultAzureCredential is convenient for development but requires careful consideration in production. // In production, consider using a specific credential (e.g., ManagedIdentityCredential) to avoid // latency issues, unintended credential probing, and potential security risks from fallback mechanisms. var agent = new AzureOpenAIClient(new Uri(endpoint), new DefaultAzureCredential()) .GetChatClient(deploymentName) .AsAIAgent( name: "VisionAgent", instructions: "You are a helpful agent that can analyze images"); 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") ]); var session = await agent.CreateSessionAsync(); await foreach (var update in agent.RunStreamingAsync(message, session)) { Console.WriteLine(update); }