写点什么

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

评论

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

什么是IPv6?和IPv4相比,IPv6具有哪些优势和特点?

防火墙后吃泡面

百度智能云「智能集锦」自动生成短剧解说,三步实现专业级素材生产

Baidu AICLOUD

视频云 智能剪辑

设备点检 设备维护经验总结(4)

万里无云万里天

工业 设备维护 工厂运维 设备点检

企业怎么挑合适的数据集成工具?

谷云科技RestCloud

Apache 数据同步 ETL 数据集成工具 informatica

京东商品详情API数据解析(附代码)

tbapi

京东API 京东商品详情API 京东数据采集 京东数据分析

Jenkins 可观测最佳实践

观测云

CI/CD

基于仓颉编程语言的四则运算解释器开发秘籍

华为云开发者联盟

CodeArts 仓颉 华为开发者空间

API管理进入新阶段:iPaaS如何统一接口治理与运维?

谷云科技RestCloud

数据治理 数据传输 API治理 API管理 ipaas

淘宝闪购实时分析黑科技:StarRocks + Paimon撑起秋天第一波奶茶自由

StarRocks

阿里巴巴 StarRocks 物化视图 paimon 实时湖仓架构

AI赋能汽车产业跃迁,2025百度云智大会 AI+汽车专题论坛成功举办

科技热闻

火山引擎数智平台发布 Data Agent"一客一策"与 AI 数据湖"算子广场"

极客天地

qData 数据中台【开源版】发布 1.0.5 版本,全面提升规则治理、非结构化数据处理与部署体验

千桐科技

qData 开源数据中台 Java数据中台 千数平台 数据治理平台

代码可读性与命名艺术:空间布局与命名的核心原则

qife122

代码可读性 命名约定

CSS 特异性控制:层叠层 vs. BEM vs. 工具类

qife122

CSS 样式管理

有了 AI 写代码,还缺什么?资深工程师:28 寸专业编程显示器 + Cursor 告别代码疲劳

鸽芷咕

显示器 明基RD320U 编码体验

黑龙江等保测评公司选择关键维度:服务能力与适配性

等保测评

刷新记录:TapData Oracle 日志同步性能达 80K TPS,重塑实时同步新标准

tapdata

Tapdata 实时数据同步 Oracle日志解析 Oracle实时同步 Oracle数据同步工具

HyperMesh几何修复、清理和简化

智造软件

CAE软件 Hypermesh hyperworks

AI Compass前沿速览:Nano Banana玩法教学、AgentScope、Hunyuan-MT-7B、HunyuanWorld-Voyager、AudioStory

汀丶人工智能

AI算子广场,大幅降低多模态数据处理门槛

北京中暄互动广告传媒有限公司

设备点检 设备维护经验总结(5)

万里无云万里天

工业 设备维护 工厂运维 设备点检

Data Agent 再升级:一客一策,营销服务的理想型来了!

北京中暄互动广告传媒有限公司

Java小程序调用物流接口服务:快递鸟API集成指南

快递鸟

AI Agent重构SOC:下一代智能安全运营平台的能力跃迁

日志易

AI SOC 日志易 安全运营中心

智能推荐新纪元:快手生成式技术对系统边界的消融与重建

老周聊架构

AICon

厌倦了日复一日?不如从升级鸿蒙5.1,换个手机主题开始!

最新动态

在AI技术唾手可得的时代,挖掘新需求成为核心竞争力——某知名教育游戏辅助工具需求洞察

qife122

需求分析 功能优化

袋鼠云产品功能更新一探究竟|实时开发,效率再升级!

袋鼠云数栈

数据治理 数据产品 数据智能 数字孪生 空间智能

当Playwright遇见MCP,AI智能体实现自主化UI回归测试

测试人

软件测试

mybatis中<if>条件判断带数字的字符串失效问题

刘大猫

人工智能 算法 智慧城市 光电科学 材料科学

构建基于 Spring Boot 的 GaussDB 数据访问应用:数据的增删改查

华为云开发者联盟

springboot Gauss DB 华为开发者空间

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