autogen/dotnet/samples/AutoGen.Gemini.Sample/Image_Chat_With_Vertex_Gemini.cs
Xiaoyun Zhang 9ba14ee15b
Fix dotnet test and reformat dotnet code (#3603)
* fix test

* install aspire workload

* format

* fix build error

* fix format

* format
2024-10-02 14:42:27 -04:00

46 lines
1.4 KiB
C#

// 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<TextMessage>();
#endregion Verify_Reply
}
}