// Copyright (c) Microsoft Corporation. All rights reserved. // Image_Chat_With_Vertex_Gemini.cs #region Using using AutoGen.Core; #endregion Using using FluentAssertions; namespace AutoGen.Gemini.Sample; public class Image_Chat_With_Vertex_Gemini { public static async Task RunAsync() { #region Create_Gemini_Agent var projectID = Environment.GetEnvironmentVariable("GCP_VERTEX_PROJECT_ID"); if (projectID is null) { Console.WriteLine("Please set GCP_VERTEX_PROJECT_ID environment variable."); return; } var geminiAgent = new GeminiChatAgent( name: "gemini", model: "gemini-1.5-flash-001", location: "us-east4", project: projectID, systemMessage: "You explain image content to user") .RegisterMessageConnector() .RegisterPrintMessage(); #endregion Create_Gemini_Agent #region Send_Image_Request var imagePath = Path.Combine("resource", "images", "background.png"); var image = await File.ReadAllBytesAsync(imagePath); var imageMessage = new ImageMessage(Role.User, BinaryData.FromBytes(image, "image/png")); var reply = await geminiAgent.SendAsync("what's in the image", [imageMessage]); #endregion Send_Image_Request #region Verify_Reply reply.Should().BeOfType(); #endregion Verify_Reply } }