写点什么

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

评论

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

win版NCH Pixillion Plus (图像转换器)v12.30 特别版

iMac小白

NCH Pixillion Plus下载 NCH Pixillion Plus mac

win版 JRiver Media Center(多媒体管理软件) v32.0.47 (x64)激活版

iMac小白

# 强大的开源项目RAG-GPT:5分钟实现LLM大模型应用到你的网站!

Geek_1ef48b

架构治理二:稳定性建设

Bingo

架构 稳定性治理

win版NCH DrawPad Pro(图像编辑) v11.31 特别版

iMac小白

DrawPad Pro下载 DrawPad Pro mac DrawPad Pro激活版 DrawPad Pro破解版

win版ChrisPC VideoTube Downloader Pro(视频下载工具)特别版下载

iMac小白

win版NCH VideoPad Pro (视频编辑工具) v16.15 激活版

iMac小白

移动应用平台是什么?

BeeWorks

win版 Allavsoft Video Downloader Converter(视频下载和格式转换)特别版

iMac小白

Apache StreamPark 毕业前最后一个版本发布

ApacheStreamPark

Apache flink 开源 flink sql 平台 StreamPark

用离职的心态上班,如带薪蹦迪,治好了我的焦虑

码哥字节

职场成长 职场 PUA 上班族

什么是代码审计,代码审计哪里做的比较好

德迅云安全杨德俊

从redis源码讲事件循环

dlzht

redis 开源 源码 异步 事件循环

WorkPlus企业级移动应用平台,实现统一门户千人千面工作台

BeeWorks

win版NCH ClickCharts Pro(轻量级思维导图软件) v9.26 特别版

iMac小白

NCH ClickCharts Pro下载 NCH ClickCharts Pro mac

WorkPlus内网即时通讯,支持国产化信创适配

BeeWorks

通过重新排序改进检索增强生成 (RAG)

Geek_1ef48b

基于51单片机的火灾报警器设计

芯动大师

设计 51单片机 森林火灾预警系统

1688商品详情数据接口:如何通过1688 API实现批量商品数据抓取和分析

tbapi

1688商品数据接口 1688API 1688商品数据采集 1688商品数据接口分析

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