semantic kernel using google gemini chat competion in C#

We can easily implement Gemini Google Chat completion in Semantic Kernel using C#. 

First we need to create a new dotnet project

dotnet new console 

Next we will add the packages from the command line 

dotnet add package Microsoft.SemanticKernel

dotnet add package Microsoft.Extensions.Logging

dotnet add package Microsoft.Extensions.Logging.Console

dotnet add package Microsoft.SemanticKernel.Connectors.Google --prerelease

And finally this code here 


// Import packages
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using Microsoft.SemanticKernel;
using Microsoft.SemanticKernel.ChatCompletion;
using Microsoft.SemanticKernel.Connectors.OpenAI;
using Microsoft.SemanticKernel;
using Microsoft.SemanticKernel.Connectors.Google;

var modelId = "gemini-2.5-flash-lite";
var serviceId = "service-id";
var apiKey = "";

// Create a kernel with Azure OpenAI chat completion
var builder = Kernel.CreateBuilder().AddGoogleAIGeminiChatCompletion(modelId: modelId, serviceId: serviceId, apiVersion: GoogleAIVersion.V1,apiKey: apiKey, httpClient: new HttpClient() );

// Add enterprise components
builder.Services.AddLogging(services => services.AddConsole().SetMinimumLevel(LogLevel.Trace));

// Build the kernel
Kernel kernel = builder.Build();
var chatCompletionService = kernel.GetRequiredService<IChatCompletionService>();

// Enable planning
OpenAIPromptExecutionSettings openAIPromptExecutionSettings = new() 
{
    FunctionChoiceBehavior = FunctionChoiceBehavior.Auto()
};

ChatHistory history = [];
history.AddUserMessage("Hello, how are you?");

var response = chatCompletionService.GetStreamingChatMessageContentsAsync(
    chatHistory: history,
    kernel: kernel
);

await foreach (var chunk in response)
{
    Console.Write(chunk);
}

And if you do a dotnet run






Comments

Popular posts from this blog

vllm : Failed to infer device type

NodeJS: Error: spawn EINVAL in window for node version 20.20 and 18.20

android studio kotlin source is null error