发布于 2026-01-06 2 阅读
0

与 Google Gemini 集成:使用内置的 .NET SDK

与 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";
        });
    }
}


Enter fullscreen mode Exit fullscreen mode

当您集成 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
    }
}


Enter fullscreen mode Exit fullscreen mode

🗝️现有功能

为了演示 SDK 的用法,我将实现一个简单的 API,包含两个端点,以展示其多功能性。

为了使用 SDK,我创建了一个测试 API,并将 GeminiClient 放入构造函数中,以便通过依赖注入来接收它。您无需再次注入,调用时services.AddGeminiClient()它已经为您注入了。

Gemini依赖注入

📝 文本提示

对于文本提示,我们有两种选择:发送单条消息或批量发送多条消息。此外,我们还可以定义 GenerationConfig 和 SafetySettings 的选项。

在这个简单的示例中,我们将构建一个简单的 API,接收文本输入并使用该TextPrompt方法来调用 Gemini。

双子座文本

如您所见,它非常简单,但您可以通过向方法发送可选参数(例如 ` GenerationConfigand` 和 ` )来对其进行自定义SafetySetting

现在我们来测试一下

提示请求

成功!

如您所见,我们有完整的 Gemini 响应,您可以根据需要使用它。

🏞️ 图片提示

此方法需要发送三个参数:要处理的文本、图像(位于 `<image>`base64或 `<image>`中byte[])以及图像的 MimeType(使用 SDK 枚举)ImageMimeType,请记住 Google 接受的格式为:

Jpg
Jpeg
Png
Webp
Heic
Heif
Enter fullscreen mode Exit fullscreen mode

为了验证图像描述功能,我们在 API 中实现了一个专用接口。您可以通过此接口提交图像以及描述性文本,Google Gemini 将分析图像并提供描述。

API

如上图所示,我需要将图片以 base64 格式、其 MIME 类型以及消息发送给 Gemini。因此,让我们选择一张Jpeg图片进行测试。

让我们用这张可爱的柴犬照片来检验一下效果如何。

柴犬

测试结果

正如我们在下图中所看到的,我们请 Gemini 告诉我们图中这是什么品种的狗,他回答说是柴犬。

有用!!

成功!

✅ 结论

本文演示了如何以简单快捷的方式使用 Gemini。需要注意的是,该 SDK 尚处于实验阶段,可能存在一些问题或缺少某些功能,但完全可用。您可以随意探索、尝试并利用此 SDK 提供的各项功能,并根据您的具体需求进行调整。

感谢阅读!

GitHub SDK链接:

DotnetGeminiSDK 代码库

文章来源:https://dev.to/gsilvamartin/integrating-with-google-gemini-using-a-built-net-sdk-cn8