i️ 注意:这个项目处于早期测试阶段,就像人工智能一样,将迅速发展。我们邀请你加入我们,共同开发语义内核!请使用 GitHub 讨论、打开 GitHub 问题、向我们发送 PR 来做出贡献。
语义内核 (SK) 是一个轻量级 SDK,可实现 AI 大型语言模型 (LLM) 与传统编程语言的集成。SK可扩展编程模型结合了自然语言语义函数、传统代码原生函数和基于嵌入的内存,通过AI释放了新的潜力并为应用程序增加价值。
SK 支持提示模板、函数链、矢量化内存和开箱即用的智能规划功能。
Semantic Kernel 旨在支持和封装来自最新 AI 研究的多种设计模式,以便开发人员可以为他们的应用程序注入复杂的技能,如提示链接、递归推理、总结、零/少镜头学习、上下文记忆、长期记忆、嵌入、语义索引、规划和访问外部知识存储以及你自己的数据。
通过加入 SK 社区,你可以更快地构建 AI 优先的应用程序,并提前了解 SDK 的构建方式。SK已经作为开源发布,以便更多开创性的开发人员可以加入我们,共同打造计算史上这一里程碑式时刻的未来。
如果你想快速了解语义内核如何与你的应用程序集成,请从克隆存储库开始:
git clone https://github.com/microsoft/semantic-kernel.git
并尝试以下示例:
简单的聊天摘要 | 使用即用型技能,并将这些技能轻松应用到你的应用中。 |
图书创作者 | 使用规划器解构复杂的目标,并在应用中设想使用规划器。 |
身份验证和 API | 使用基本连接器模式进行身份验证并连接到 API,并设想将外部数据集成到应用的 LLM AI 中。 |
要获得更多实践概述,你还可以运行入门笔记本,查看语法,创建语义函数,使用内存,并查看内核的工作原理。
请注意:
下面是如何从 C# 控制台应用使用语义内核的快速示例。
创建一个面向 .NET 6 或更高版本的新项目,并添加 nuget 包:
Microsoft.SemanticKernel
dotnet add package Microsoft.SemanticKernel --prerelease
有关最新版本和更多说明,请参阅 nuget.org。
将以下代码复制并粘贴到项目中,并手持 Azure OpenAI 密钥(可在此处创建一个)。
using Microsoft.SemanticKernel;
using Microsoft.SemanticKernel.KernelExtensions;
var kernel = Kernel.Builder.Build();
// For Azure Open AI service endpoint and keys please see
// https://learn.microsoft.com/azure/cognitive-services/openai/quickstart?pivots=rest-api
kernel.Config.AddAzureOpenAICompletionBackend(
"davinci-backend", // Alias used by the kernel
"text-davinci-003", // Azure OpenAI *Deployment ID*
"https://contoso.openai.azure.com/", // Azure OpenAI *Endpoint*
"...your Azure OpenAI Key..." // Azure OpenAI *Key*
);
string skPrompt = @"
{{$input}}
Give me the TLDR in 5 words.
";
string textToSummarize = @"
1) A robot may not injure a human being or, through inaction,
allow a human being to come to harm.
2) A robot must obey orders given it by human beings except where
such orders would conflict with the First Law.
3) A robot must protect its own existence as long as such protection
does not conflict with the First or Second Law.
";
var tldrFunction = kernel.CreateSemanticFunction(skPrompt);
var summary = await kernel.RunAsync(textToSummarize, tldrFunction);
Console.WriteLine(summary);
// Output => Protect humans, follow orders, survive.
我们欢迎你对SK社区的贡献和建议!最简单的参与方法之一是参与 GitHub 存储库中的讨论。欢迎错误报告和修复!
对于新功能、组件或扩展,请在发送 PR 之前提出问题并与我们讨论。这是为了避免被拒绝,因为我们可能将核心带到不同的方向,但也要考虑对更大生态系统的影响。
要了解更多信息并开始使用,请执行以下操作:
Python 开发人员:语义内核即将登陆 Python!查看正在进行的工作并在 python-preview 分支中做出贡献。该项目采用了微软开源行为准则。有关更多信息,请参阅行为准则常见问题解答或联系 opencode@microsoft.com 提出任何其他问题或意见。
版权所有 (c) 微软公司。保留所有权利。
根据 MIT 许可证获得许可。