AICon上海|与字节、阿里、腾讯等企业共同探索Agent 时代的落地应用 了解详情
写点什么

技术速递|使用 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:006087

评论

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

TiDB 在 Cisco Webex 架构中的部署和应用

TiDB 社区干货传送门

骏彩竞猜分布式解决方案之路

TiDB 社区干货传送门

安装 & 部署

TiDB 运维基础操作脑图

TiDB 社区干货传送门

TiDB 元信息管理方式

TiDB 社区干货传送门

TiDB 底层架构

TiDB 如何在 LVS FULL NAT 模式下显示客户端真实 IP

TiDB 社区干货传送门

实践案例

大事务的处理方式对比

TiDB 社区干货传送门

实践案例

dm-V1.0.5使用汇总

TiDB 社区干货传送门

管理与运维

记一次简单的Oracle离线数据迁移至TiDB过程

TiDB 社区干货传送门

TiCDC 4.0.15 初体验

TiDB 社区干货传送门

实践案例

传统行业数据架构发展变化

TiDB 社区干货传送门

数据库架构选型

JOIN 查询的执行计划 比较

TiDB 社区干货传送门

性能调优 TiDB 底层架构

使用SPM固定执行计划

TiDB 社区干货传送门

TiDB Binlog 支持 Oracle 目标库功能用户手册

TiDB 社区干货传送门

迁移

ticdc没报错,tso却不变的奇怪现象

TiDB 社区干货传送门

TiDB 悲观事务模式和Mysql的表象区别

TiDB 社区干货传送门

探索TiDB Lightning源码来解决发现的bug

TiDB 社区干货传送门

TiDB 底层架构

TiDB在个推的落地实践 | 解决热点难题,提升性能超千倍

TiDB 社区干货传送门

性能调优

TiSpark On Kubernetes实践

TiDB 社区干货传送门

实践案例

高并发请求下 TiDB 集群的业务无损升级

TiDB 社区干货传送门

TiDB 如何获取集群创建时间

TiDB 社区干货传送门

实践案例 TiDB 底层架构

TiDB体系结构

TiDB 社区干货传送门

TiDB 底层架构

一言难尽的Prometheus监控实践

TiDB 社区干货传送门

实践案例

数据库调优之硬件

TiDB 社区干货传送门

性能调优

记一次TiDB的临时救场

TiDB 社区干货传送门

实践案例

在CentOS7上进行TiDB/PD/TIKV编译分享

TiDB 社区干货传送门

实践案例 安装 & 部署

DR Auto-Sync 搭建和计划内切换操作手册

TiDB 社区干货传送门

【白皮书】TiDelta,一款简单易用的 TiDB 性能对比 Web 工具。

TiDB 社区干货传送门

悲观锁模式下 TiDB 与其他数据库在 RC 及 RR 隔离级别的行为对比

TiDB 社区干货传送门

TiSpark数据写入过程解析(源码解析)

TiDB 社区干货传送门

TiDB 底层架构

【考试指南】TiDB 5.0认证指南之PCTA PCTP

TiDB 社区干货传送门

TiDB 底层架构

用 Gravity 实现 MongoDB 到 TiDB 的数据复制

TiDB 社区干货传送门

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