作者:Bruno Capuano - Cloud Advocate

探索如何使用 Microsoft 的智能应用程序 Semantic Kernel 将 GitHub 的 AI 模型(如 GPT、Llama 和 Phi)集成到您的 .NET 应用程序中。

使用 Semantic Kernel 解锁 .NET 中 GitHub 模型的强大功能

人工智能的世界继续快速发展,GitHub 通过在 GitHub 市场上推出一套流行的大型语言模型(LLM),如 GPT、Llama 和 Phi,加入了这场竞争。这些模型可以帮助开发人员轻松构建强大的人工智能驱动应用程序。在本文中,我们将探讨 .NET 程序员如何利用这些模型并使用 Semantic Kernel 将它们集成到他们的应用程序中。

GitHub 模型简介

GitHub 通过推出 GitHub 模型(https://github.blog/news-insights/product-news/introducing-gi...)扩展了其工具包,这是一套行业领先的人工智能模型,旨在使超过1亿开发人员成为人工智能工程师。这些模型(如 Llama 3.1、GPT-4o 和 Phi-3.5)对于涉及自然语言处理 (NLP) 的任务特别有用。在 GitHub 市场中,它们为开发人员提供了一个内置的 Playground,让他们可以在 GitHub 中免费测试不同的提示和模型参数。

对于 .NET 开发人员来说,这些模型为创建能够理解和生成人类语言甚至代码的智能应用程序提供了新的可能性,从而更容易简化各种任务和流程。

Semantic Kernel:简要概述

Semantic Kernel (https://github.com/microsoft/semantic-kernel) 是Microsoft 推出的一款轻量级可扩展框架,允许开发人员创建利用 LLM 和其他云服务(如 Azure AI Search)的复杂 AI 应用程序。它可轻松集成到您的 .NET 应用程序中,从而能够整合自然语言理解和生成功能。

借助 Semantic Kernel,您可以定义工作流程、对 LLM 的输出进行推理,并将模型链接在一起以创建更复杂的 AI 驱动体验。它充当大型语言模型和应用程序逻辑之间的桥梁。

将 GitHub 模型与 Semantic Kernel 结合使用

举一个实际的例子,让我们探索如何使用 Semantic Kernel 将 GitHub 模型集成到 C# 应用程序中。有一个 GitHub 存储库(https://github.com/elbruno/GithubModelsAndSemanticKernel)提供了如何实现此集成的工作示例。

以下是快速入门的分步指南:

步骤 1:安装必要的 NuGet 包

首先,确保您的 C# 项目中有所需的 NuGet 包:

dotnet add package Microsoft.SemanticKernel --version 1.18.2
dotnet add package Microsoft.Extensions.Configuration.UserSecrets --version 9.0.0-rc.1.24431.7

Semantic Kernel 包允许您通过 API 与 GitHub 模型进行交互。Microsoft 配置用户密钥用于存储和检索所需的 GitHub 令牌。

第 2 步:使用 GitHub Personal Access Token 设置项目密钥

生成一个新的 GitHub Personal Access Token(https://github.com/settings/tokens)。导航到 C# 项目的根目录并运行以下命令来添加令牌。

dotnet user-secrets init
dotnet user-secrets set "GH_PAT" "< PAT >"

在存储库控制台示例应用程序(https://devblogs.microsoft.com/dotnet/github-ai-models-dotnet...)中,这些代码用于检索:

  • GitHub 模型,模型名称
  • GitHub 模型,模型端点
  • GitHub 个人访问令牌

var config = new ConfigurationBuilder().AddUserSecrets<Program>().Build();
var modelId = "Phi-3.5-mini-instruct";
var uri = "https://models.inference.ai.azure.com";
var githubPAT = config["GH_PAT"];

以下是如何使用密钥设置 modelId 和 uri 以及 GitHub PAT 的示例:

步骤 3:配置 Semantic Kernel 客户端以使用 GitHub 模型

接下来,设置语 Semantic Kernel 与 GitHub 模型 API 集成:


// 创建客户端
var client = new OpenAIClient(new ApiKeyCredential(githubPAT), new OpenAIClientOptions { Endpoint = new Uri(uri) });

// 创建聊天完成服务
var builder = Kernel.CreateBuilder();
builder.AddOpenAIChatCompletion(modelId, client);

// 获得聊天完成服务
Kernel kernel = builder.Build();
var chat = kernel.GetRequiredService<IChatCompletionService>();

步骤 4:运行应用程序

现在,定义您希望 GitHub 模型执行的任务。示例控制台应用程序是在控制台中运行的标准问答聊天:

var history = new ChatHistory();
history.AddSystemMessage("You are a useful chatbot. If you don't know an answer, say 'I don't know!'. Always reply in a funny way. Use emojis if possible.");

while (true)
{
    Console.Write("Q: ");
    var userQ = Console.ReadLine();
    if (string.IsNullOrEmpty(userQ))
    {
        break;
    }
    history.AddUserMessage(userQ);

    var sb = new StringBuilder();
    var result = chat.GetStreamingChatMessageContentsAsync(history);
    Console.Write("AI: ");
    await foreach (var item in result)
    {
        sb.Append(item);
        Console.Write(item.Content);
    }
    Console.WriteLine();

    history.AddAssistantMessage(sb.ToString());
}

可选:存储库已准备好使用 Codespaces 运行示例项目。聊天演示应用程序应如下所示:

总结

使用 Semantic Kernel 将 GitHub 模型集成到您的 .NET 应用程序中,为构建 AI 驱动的应用程序开辟了令人兴奋的可能性。借助 Semantic Kernel 等工具,您可以简化开发流程并创建更智能的应用程序。

如果您想深入了解此主题,请查看以下资源:

GitHub 模型简介
https://github.blog/news-insights/product-news/introducing-gi...

带有 Semantic Kernel 集成的 GitHub 存储库
https://github.com/elbruno/GithubModelsAndSemanticKernel

资料推荐

智能 GitHub Copilot 副驾驶® 提示和技巧

Azure OpenAI 生成式人工智能白皮书

利用 AI 和 DevOps 重新定义开发人员体验

SAP on Microsoft Cloud

祝您编码愉快!


微软技术栈
418 声望994 粉丝

微软技术生态官方平台。予力众生,成就不凡!微软致力于用技术改变世界,助力企业实现数字化转型。