組み込みのプラグインを調べる

完了

プラグインは、Semantic Kernel SDK のコア コンポーネントの 1 つです。 プラグインは、カーネルが大規模言語モデル (LLM) とやり取りする際に、カーネルが実行するタスクを定義します。 プラグインは、ネイティブ コードと LLM に対するプロンプトで構成できます。 Semantic Kernel SDK には、アプリケーション内ですぐに使用できる一般的なタスク用の組み込みプラグインもいくつか用意されています。

プラグインとは

Semantic Kernel SDK では、プラグインはカーネルによって実行できる関数を含むクラスです。 プラグイン関数は、セマンティック プロンプトまたはネイティブ関数コードから作成できます。 プラグインを使うには、それをカーネルに追加してから、InvokeAsync メソッドを使って目的の関数を呼び出します。 カーネルはプラグインにアクセスし、関数を見つけて実行した後、結果を返します。 いくつかの定義済みのプラグインを見てみましょう。

組み込みプラグイン

セマンティック カーネル SDK には、一般的なタスク用の定義済みプラグインを含む追加パッケージが用意されています。 これらは、NuGet でインストールできる Plugins.Core パッケージで入手できます: dotnet add package Microsoft.SemanticKernel.Plugins.Core --version 1.2.0-alpha。このパッケージには次のプラグインが含まれます。

  • ConversationSummaryPlugin - 会話の要約
  • FileIOPlugin - ファイルシステムの読み取りと書き込み
  • HttpPlugin - HTTP エンドポイントへの要求の実行
  • MathPlugin - 数学演算の実行
  • TextPlugin - テキスト操作の実行
  • TimePlugin - 時刻と日付の情報の取得
  • WaitPlugin - 一定時間実行を停止

コア プラグインを使用するには、AddFromType メソッドを使用してカーネル ビルダーにそれを追加します。 たとえば、TimePlugin をカーネルに追加するには、次のコードを使用します。

using Microsoft.SemanticKernel;
using Microsoft.SemanticKernel.Plugins.Core;
    
var builder = Kernel.CreateBuilder();
builder.AddAzureOpenAIChatCompletion(
    "your-deployment-name",
    "your-endpoint",
    "your-api-key",
    "deployment-model");
builder.Plugins.AddFromType<TimePlugin>();
var kernel = builder.Build();
var currentDay = await kernel.InvokeAsync("TimePlugin", "DayOfWeek");
Console.WriteLine(currentDay);

このコードは、TimePlugin をカーネルに追加した後、DayOfWeek 関数を呼び出して今日の曜日を取得します。 出力は今日の曜日です。

これらのすぐに利用できるプラグインを使うことで、プロジェクトに機能をすばやく追加することができます。 次の演習では、ConversationSummaryPlugin を使用して、会話の要約やテキスト ブロックのアクション項目を取得する方法を学習します。