最近微软的众多产品线都采用 GPT-4 加持,从 Microsoft 365 等商业产品到“新必应”搜索引擎,再到低代码/无代码 Power Platform 等面向开发的产品,包括软件开发组件 Power Apps。
非常重要的一点是这些产品都是使用 .NET 构建的,这些项目可以快速的使用 LLM 加持,我们写程序的同学肯定都会想,微软是怎么做的?微软在3月17日发布了一篇博客文章:[Hello, Semantic Kernel!],在这篇文章中微软已经开源了一个内部孵化项目,Github 的仓库,该项目可以帮助开发人员快速轻松地将尖端的 AI 模型集成到他们的应用程序中。这使您能够在应用中构建新体验,从而为用户带来无与伦比的工作效率,例如总结冗长的聊天交流,标记通过 Microsoft Graph 添加到待办事项列表中的重要“下一步”,或者计划一个完整的假期,而不仅仅是预订飞机上的座位。
张善友
深圳友浩达 CTO &首席架构师,微软最有价值专家,微软 SWAT 专家,超过20年的软件研发经验,曾在腾讯工作12年,.NET 基金会成员,.NET 云原生顾问和解决方案专家,运营微信公众号“dotnet跨平台”和“分布式应用运行时”
语义内核(SK)是一种创新的轻量级软件开发工具包(SDK),旨在将 AI 大型语言模型(LLM)与传统编程语言集成。借助 SK,开发人员可以轻松地为其应用程序注入复杂的技能,例如提示链接、摘要、递归推理、基于嵌入的内存等。SK 支持提示模板、函数链、矢量化内存和开箱即用的智能规划功能。
SK 旨在支持和封装来自最新 AI 研究的多种设计模式,以便开发人员可以为他们的应用程序注入复杂的技能,如提示链接、递归推理、总结、zero/few-shot 学习、上下文记忆、长期记忆、嵌入、语义索引、 规划,以及访问外部知识库和您自己的数据。
SK 最初的目标是 C# 开发人员,但也为数据科学家的最爱的 Python 提供了预览支持,而微软也根据从社区反馈中学到的内容,正在考虑支持其他语言,包括自己的 TypeScript。
微软将 SK 的主要优势列为:
快速集成:SK 旨在嵌入任何类型的应用程序中,使您可以轻松测试和运行 LLM AI。
扩展:借助 SK,您可以连接外部数据源和服务,使其应用程序能够将自然语言处理与实时信息结合使用。
更好的提示:SK 的模板化提示可让您使用有用的抽象和机制快速设计语义函数,以释放 LLM AI 的潜力。
新奇但熟悉:传统编程语言代码始终可供您作为一流的合作伙伴,帮助您快速完成工程设计,可以两全其美。
为了帮助开发人员入门,微软提供了一个免费的 LinkedIn 学习课程。它的描述是:“AI 的未来终于来了,它改变了软件开发人员的游戏规则。”探索语义内核 (SK) 的可能性,这是 AI 驱动的开发的新面孔,封装在轻量级、易于使用的多层软件开发工具包中。使用 SK 快速启动和运行,SK 是 Microsoft AI 生态系统的最新成员,使开发人员能够轻松地将 LLM AI 功能集成到他们的应用程序中。
除了 LinkedIn 学习课程之外,Microsoft 还解释了开发人员如何克隆存储库并尝试以下示例:
简单的聊天摘要:使用现成的技能,并轻松地将这些技能应用到你的应用中。
图书创作者:使用规划师解构复杂的目标,并在应用中设想使用规划师。
身份验证和 API:使用基本连接器模式进行身份验证并连接到 API,并设想将外部数据集成到应用的 LLM AI 中。
Github 仓库问答:使用嵌入和内存来存储最近的数据,并允许您对其进行查询。
在运行示例和笔记本之前,您可能需要满足一些软件要求:
Azure Functions 核心工具,用于将内核作为本地 API 运行,这是 Web 应用所需的。
需要 OpenAI API 密钥或 Azure OpenAI 服务密钥才能开始使用。
用于安装 Web 应用的依赖项的 Yarn。
SK 支持 .NET Standard 2.1,建议使用 .NET 6+。但是,仓库中的某些示例需要 .NET 7 和 VS Code Polyglot 扩展才能运行笔记本。
下面是如何从 C# 控制台应用使用语义内核的快速示例,这里我们使用 VS Code Polyglot 来做。
相关链接:
[1] Power Apps:https://powerapps.microsoft.com/zh-cn/
[2] Hello, Semantic Kernel!:https://devblogs.microsoft.com/semantic-kernel/hello-world/
[3] Github 的仓库:https://github.com/microsoft/semantic-kernel
[4] 提示模板:https://github.com/microsoft/semantic-kernel/blob/main/docs/PROMPT_TEMPLATE_LANGUAGE.md
[5] 矢量化内存:https://github.com/microsoft/semantic-kernel/blob/main/docs/EMBEDDINGS.md
[6] 智能规划:https://github.com/microsoft/semantic-kernel/blob/main/docs/PLANNER.md
[7] 技能:https://github.com/microsoft/semantic-kernel/blob/main/docs/SKILLS.md
[8] 嵌入:https://github.com/microsoft/semantic-kernel/blob/main/docs/EMBEDDINGS.md
[9] 支持其他语言:https://aka.ms/sk/python
[10] LinkedIn 学习课程:https://www.linkedin.com/learning/introducing-semantic-kernel-building-ai-based-apps/introducing-semantic-kernel
[11] 简单的聊天摘要:https://github.com/microsoft/semantic-kernel/blob/main/samples/apps/chat-summary-webapp-react/README.md
[12] 图书创作者:https://github.com/microsoft/semantic-kernel/blob/main/samples/apps/book-creator-webapp-react/README.md
[13] 身份验证和 API:https://github.com/microsoft/semantic-kernel/blob/main/samples/apps/auth-api-webapp-react/README.md
[14] Github 仓库问答:https://github.com/microsoft/semantic-kernel/blob/main/samples/apps/github-qna-webapp-react/README.md
[15] Azure Functions 核心工具:https://learn.microsoft.com/azure/azure-functions/functions-run-local
[16] OpenAI API:https://openai.com/api/
[17] Azure OpenAI 服务密钥:https://learn.microsoft.com/azure/cognitive-services/openai/quickstart?pivots=rest-api
[18] Yarn:https://yarnpkg.com/getting-started/install
[19] .NET 7:https://dotnet.microsoft.com/download
[20] Polyglot 扩展:https://www.cnblogs.com/shanyou/p/17247652.html