Eksplorowanie wbudowanych wtyczek

Ukończone

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ów
  • HttpPlugin - Wysyła żądania do punktów końcowych HTTP
  • MathPlugin - Wykonuje operacje matematyczne
  • TextPlugin - Wykonuje manipulowanie tekstem
  • TimePlugin — Pobiera informacje o godzinie i dacie
  • WaitPlugin - 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.