Semantic Kernel .NET SDK 的 v1.0.0 Beta1 釋出

張善友發表於2023-10-11

介紹

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,那麼它的入門也是非常簡單的:

步驟

  1. 建立 GitHub 儲存庫
  2. 切換到儲存庫本地目錄
  3. 使用 建立專案 dotnet new console
  4. 新增下面列出的一堆包
  5. 獲取RepoUtils 要新增到專案中的資料夾
  6. 獲取一個簡單的程式,該程式取自KernelSyntaxExamples[2]
  7. 刪除周圍的所有垃圾,如下例所示
  8. 你應該能夠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包:

25ec802e2dc40757908d10534fec9a9

您的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);

相關連結:

相關文章