写点什么

技术速递|使用 Semantic Kernel 解锁 .NET 中 GitHub 模型的强大功能

  • 2024-12-07
    北京
  • 本文字数:2371 字

    阅读完需:约 8 分钟

大小:663.86K时长:03:46
技术速递|使用 Semantic Kernel 解锁 .NET 中 GitHub 模型的强大功能

本文将探索如何使用 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-github-models)扩展了其工具包,这是一套行业领先的人工智能模型,旨在使超过 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.2dotnet 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 initdotnet user-secrets set "GH_PAT" "< PAT >"
复制代码


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


  • 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-github-models

  • 带有 Semantic Kernel 集成的 GitHub 存储库

https://github.com/elbruno/GithubModelsAndSemanticKernel


祝您编码愉快!


更多精彩内容请点击下载

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

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

《SAP on Microsoft Cloud》

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

2024-12-07 18:006135

评论

发布
暂无评论
发现更多内容

京东JD商品sku信息API返回值解读:数据驱动的商品属性研究

技术冰糖葫芦

API boy API 接口 API 文档

INFINI Labs 产品更新 | Console 1.24.0 操作日志审计功能发布

极限实验室

console Gateway 极限科技 产品更新发布

“她”来了,陪伴赛道巨变!为GPT-4o加上你的一个数字分身

京东科技开发者

软件适应性定义以及作用简单讲解-行云管家

行云管家

软件 行云管家 软件适应性

门保真度达99.9%,英特尔展示领先自旋量子比特器件性能

E科讯

解锁高效创新:IPD策略如何重塑产品开发流程

不在线第一只蜗牛

大数据 产品开发

暗水印——空域:音频水印(看不见我吧 啦啦啦~)

京东科技开发者

Python异常处理:基础到进阶的实用指南

我再BUG界嘎嘎乱杀

Python 编程语言 软件开发 异常处理

英特尔推进面向未来节点的技术创新,在2025年后巩固制程领先性

E科讯

Flink的状态原语详述

木南曌

实时计算

老去在温暖的空间中,老去在智能的光芒里

脑极体

AI

DevOps 进阶实践课,连续 4 期,看看有你想听的吗?

阿里云云效

阿里云 DevOps 云原生

Oracle到PostgreSQL的不停机数据库迁移!

NineData

oracle postgresql NineData 无停机迁移 异常告警

软件测试学习笔记丨黑盒测试方法论-场景法

测试人

软件测试

京东秒送售后系统退款业务重构心得| 京东零售技术团队

京东科技开发者

通过MVEL表达式和Apache Chain职责链模式解耦MQ消息处理节点的实践应用

京东科技开发者

低成本、高稳定性 | 满帮集团 Eureka 和 ZooKeeper 的上云实践

阿里巴巴云原生

阿里云 微服务 云原生 nacos

从内存泄露聊聊python内存管理

我再BUG界嘎嘎乱杀

Python 编程语言 内存管理 开发语言

技术速递|使用 Semantic Kernel 解锁 .NET 中 GitHub 模型的强大功能_微软_微软中国MSDN_InfoQ精选文章