Eksplorowanie wbudowanych wtyczek
Wtyczki są jednym z podstawowych składników zestawu SDK jądra semantycznego. Wtyczka definiuje zadanie jądra do wykonania w miarę interfejsu z dużym modelem językowym (LLM). Wtyczki mogą składać się z kodu natywnego i monitów do usługi LLM. Zestaw SDK jądra semantycznego oferuje również kilka wbudowanych wtyczek dla typowych zadań, które są gotowe do użycia w aplikacjach.
Co to jest wtyczka?
W zestawie SDK jądra semantycznego wtyczka jest klasą zawierającą funkcje, które mogą być uruchamiane przez jądro. Funkcję wtyczki można utworzyć z semantycznego monitu lub kodu funkcji natywnej. Aby użyć wtyczki, należy dodać ją do jądra, a następnie wywołać żądaną funkcję przy użyciu InvokeAsync
metody . Jądro uzyskuje dostęp do wtyczki, lokalizuje i uruchamia funkcję, a następnie zwraca wynik. Przyjrzyjmy się niektórym wstępnie zdefiniowanym wtyczkom.
Wbudowane wtyczki
Zestaw SDK jądra semantycznego oferuje dodatkowy pakiet ze wstępnie zdefiniowanymi wtyczkami do typowych zadań. Są one dostępne w pakiecie Plugins.Core
, który można zainstalować za pomocą pakietu NuGet: dotnet add package Microsoft.SemanticKernel.Plugins.Core --version 1.2.0-alpha
Pakiet zawiera następujące wtyczki:
ConversationSummaryPlugin
- Podsumowuje konwersacjęFileIOPlugin
- Odczytuje i zapisuje w systemie plikówHttpPlugin
- Wysyła żądania do punktów końcowych HTTPMathPlugin
- Wykonuje operacje matematyczneTextPlugin
- Wykonuje manipulowanie tekstemTimePlugin
— Pobiera informacje o godzinie i dacieWaitPlugin
- Wstrzymuje wykonywanie przez określony czas
Aby użyć podstawowej wtyczki, możesz dodać ją do konstruktora AddFromType
jądra przy użyciu metody . Aby na przykład dodać element TimePlugin
do jądra, możesz użyć następującego kodu:
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);
Ten kod dodaje element TimePlugin
do jądra, a następnie wywołuje DayOfWeek
funkcję , aby uzyskać bieżący dzień tygodnia. Dane wyjściowe to bieżący dzień tygodnia.
Te łatwo dostępne wtyczki mogą służyć do szybkiego dodawania funkcji do projektu. W następnym ćwiczeniu dowiesz się, jak ConversationSummaryPlugin
można użyć elementu w celu uzyskania podsumowania konwersacji lub elementów akcji z bloku tekstu.