介紹
Semantic Kernel (SK) 是一個開源的將大型語言模型(LLM)與流行的程式語言相結合的SDK,Microsoft將Semantic Kernel(簡稱SK)稱為輕量級SDK,結合了OpenAI,Azure OpenAI和Hugging Face等AI LLM的整合。它使開發人員能夠透過編排 AI 元件並將其與現有程式碼整合來建立 AI 應用。SDK 提供對 Java、Python 和 C# 的支援。它提供了用於新增記憶體和AI服務的聯結器,為應用程式建立模擬的“大腦”。語義核心支援來自不同提供商的外掛,為開發人員提供自己的 API,並簡化 AI 服務的整合,使開發人員能夠利用最新的 AI 進步並構建複雜和智慧的管道。
Semantic Kernel的.NET SDK 的 v1.0.0 Beta1 已經發布。此更新包括對 SDK 的多項更改和改進。一些關鍵更改包括將包和類從“技能”重新命名為“外掛”,新增對多個AI模型的支援,重構規劃器和記憶體配置,以及引入新的結果型別(PromptTemplateConfig
和FunctionResult
KernelResult)
。
如果你需要的是從0.24 版本升級到v1.0.0 Beta1 ,執行以下操作:
更新 NuGet 包
若要更新 NuGet 包,需要進行以下更改:
- 更新Meta package 以包含Semantic kernel的核心功能。
- 重新命名多個包以匹配新的命名約定。
- 某些功能已提取到單獨的包中。
有關特定軟體包名稱更改的更多詳細資訊,請參閱提供的文章:介紹 Semantic kernel .NET SDK 的 v1.0.0 Beta1[1]。
更新您的程式碼
若要更新程式碼,需要進行以下更改:
- 將方法
ImportAIPluginAsync
重新命名ImportPlugin
為並更新外掛匯入方法和計劃器。 - 從
Kernel.Core
中提取語義函式。 - 重構規劃器、記憶體配置和函式擴充套件。
- 將 GRPC 匯入方法從
ImportXXXPlugins
重新命名為ImportXXXFunctions
。 - 將Planner 包合併到單個包中。
- 執行各種重新命名操作以與新的“外掛”命名約定保持一致。
有關具體的程式碼更改和說明,請參閱提供的文件:介紹 Semantic kernel .NET SDK 的 v1.0.0 Beta[1]。
這些更新旨在改進Semantic kernel SDK 的整體組織和功能。請確保仔細按照說明進行操作,以避免在更新過程中出現任何問題。
如果你還沒有用上Semantic kernel,那麼它的入門也是非常簡單的:
步驟
- 建立 GitHub 儲存庫
- 切換到儲存庫本地目錄
- 使用 建立專案
dotnet new console
- 新增下面列出的一堆包
- 獲取
RepoUtils
要新增到專案中的資料夾 - 獲取一個簡單的程式,該程式取自KernelSyntaxExamples
[2]
- 刪除周圍的所有垃圾,如下例所示
- 你應該能夠
dotnet run
必需的 Nuget 包
% dotnet add package Microsoft.SemanticKernel --version 1.0.0-beta1
% dotnet add package Microsoft.Extensions.Configuration
% dotnet add package Microsoft.Extensions.Logging
% dotnet add package Microsoft.Extensions.Configuration.UserSecrets
% dotnet add package Microsoft.Extensions.Logging.Console
上面增加的這些是最核心的包,我們甚至都沒有連線到任何大語言模型, 需要新增大模型,向量資料庫以及外掛等,需要另外按需新增對應的nuget包:
您的Program.cs
using System;
using System.Threading.Tasks;
using Microsoft.SemanticKernel.Plugins.Core;
using RepoUtils;
Console.WriteLine("======== Functions ========");
// Load native plugin
var text = new TextPlugin();
// Use function without kernel
var result = text.Uppercase("Ai4c research institute!");
Console.WriteLine(result);
相關連結:
- [1]介紹 Semantic kernel .NET SDK 的 v1.0.0 Beta: https://devblogs.microsoft.com/semantic-kernel/introducing-the-v1-0-0-beta1-for-the-net-semantic-kernel-sdk/
- [2]KernelSyntaxExamples: https://github.com/microsoft/semantic-kernel/tree/main/dotnet/samples/KernelSyntaxExamples