与 Google Gemini 集成:使用内置的 .NET SDK
🚀 简介
谷歌 Gemini 以其卓越的人工智能性能而闻名,是人工智能领域的先驱。然而,缺乏专用的 .NET SDK 对 .NET 开发人员来说是一个挑战。本文将深入探讨如何通过专门为谷歌 Gemini 定制的 .NET SDK 来弥补这一空白。
🌟 动力
在 .NET 开发领域,由于缺乏 Google Gemini 的官方 SDK,与 API 交互时会遇到一些障碍。为了克服这一难题,我着手开发一个定制的 SDK,旨在满足 Google Gemini 的独特需求和功能。
这项计划的初衷是为了提升使用 Google Gemini 的 .NET 开发人员的开发体验。该 SDK 通过封装 Gemini API 的复杂细节并提供更符合 .NET 习惯的接口,旨在简化利用机器学习功能进行内容生成的过程。
📦 如何下载?
首先,安装 DotnetGeminiSDK NuGet 包。在 NuGet 包管理器控制台中运行以下命令:
Install-Package DotnetGeminiSDK
或者,如果您更喜欢使用 .NET CLI:
dotnet add package DotnetGeminiSDK
🔧 如何使用?
要使用 Gemini SDK,请使用 GeminiServiceExtensions 将 Gemini 客户端添加到您的服务集合中:
using DotnetGeminiSDK;
using Microsoft.Extensions.DependencyInjection;
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddGeminiClient(config =>
{
config.ApiKey = "YOUR_GOOGLE_GEMINI_API_KEY";
config.ImageBaseUrl = "CURRENTLY_IMAGE_BASE_URL";
config.TextBaseUrl = "CURRENTLY_IMAGE_BASE_URL";
});
}
}
当您集成 Gemini 客户端时,您可以将其无缝注入到您的代码中以立即使用。
using DotnetGeminiSDK.Client.Interfaces;
using Microsoft.Extensions.DependencyInjection;
public class YourClass
{
private readonly IGeminiClient _geminiClient;
public YourClass(IGeminiClient geminiClient)
{
_geminiClient = geminiClient;
}
public async Task Example()
{
var response = await _geminiClient.TextPrompt("Text for processing");
// Process the response as needed
}
}
🗝️现有功能
为了演示 SDK 的用法,我将实现一个简单的 API,包含两个端点,以展示其多功能性。
为了使用 SDK,我创建了一个测试 API,并将 GeminiClient 放入构造函数中,以便通过依赖注入来接收它。您无需再次注入,调用时services.AddGeminiClient()它已经为您注入了。
📝 文本提示
对于文本提示,我们有两种选择:发送单条消息或批量发送多条消息。此外,我们还可以定义 GenerationConfig 和 SafetySettings 的选项。
在这个简单的示例中,我们将构建一个简单的 API,接收文本输入并使用该TextPrompt方法来调用 Gemini。
如您所见,它非常简单,但您可以通过向方法发送可选参数(例如 ` GenerationConfigand` 和 ` )来对其进行自定义SafetySetting。
现在我们来测试一下
成功!
如您所见,我们有完整的 Gemini 响应,您可以根据需要使用它。
🏞️ 图片提示
此方法需要发送三个参数:要处理的文本、图像(位于 `<image>`base64或 `<image>`中byte[])以及图像的 MimeType(使用 SDK 枚举)ImageMimeType,请记住 Google 接受的格式为:
Jpg
Jpeg
Png
Webp
Heic
Heif
为了验证图像描述功能,我们在 API 中实现了一个专用接口。您可以通过此接口提交图像以及描述性文本,Google Gemini 将分析图像并提供描述。
如上图所示,我需要将图片以 base64 格式、其 MIME 类型以及消息发送给 Gemini。因此,让我们选择一张Jpeg图片进行测试。
让我们用这张可爱的柴犬照片来检验一下效果如何。
测试结果
正如我们在下图中所看到的,我们请 Gemini 告诉我们图中这是什么品种的狗,他回答说是柴犬。
成功!
✅ 结论
本文演示了如何以简单快捷的方式使用 Gemini。需要注意的是,该 SDK 尚处于实验阶段,可能存在一些问题或缺少某些功能,但完全可用。您可以随意探索、尝试并利用此 SDK 提供的各项功能,并根据您的具体需求进行调整。
感谢阅读!





