Utforska inbyggda plugin-program

Slutförd

Plugin-program är en av kärnkomponenterna i Semantic Kernel SDK. Ett plugin-program definierar uppgiften som kerneln ska utföra när den samverkar med den stora språkmodellen (LLM). Plugin-program kan bestå av inbyggd kod och uppmaningar till LLM. Semantic Kernel SDK erbjuder också några inbyggda plugin-program för vanliga uppgifter som är redo att användas i dina program.

Vad är ett plugin-program?

I Semantic Kernel SDK är ett plugin-program en klass som innehåller funktioner som kan köras av kerneln. En plugin-funktion kan göras från en semantisk prompt eller inbyggd funktionskod. Om du vill använda ett plugin-program lägger du till det i kerneln och anropar sedan önskad funktion med hjälp av InvokeAsync metoden . Kerneln kommer åt plugin-programmet, letar upp och kör funktionen och returnerar sedan resultatet. Låt oss ta en titt på några fördefinierade plugin-program.

Inbyggda plugin-program

Semantic Kernel SDK erbjuder ett extra paket med fördefinierade plugin-program för vanliga uppgifter. Dessa är tillgängliga i paketet Plugins.Core som du kan installera med NuGet: dotnet add package Microsoft.SemanticKernel.Plugins.Core --version 1.2.0-alpha Paketet innehåller följande plugin-program:

  • ConversationSummaryPlugin – Sammanfattar konversation
  • FileIOPlugin – Läser och skriver till filsystemet
  • HttpPlugin – Skickar begäranden till HTTP-slutpunkter
  • MathPlugin - Utför matematiska operationer
  • TextPlugin – Utför textmanipulering
  • TimePlugin – Hämtar tids- och datuminformation
  • WaitPlugin – Pausar körningen under en angiven tid

Om du vill använda ett grundläggande plugin-program kan du lägga till det i kernelverktyget med hjälp av AddFromType metoden . Om du till exempel vill lägga till i kerneln TimePlugin kan du använda följande kod:

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

Den här koden lägger TimePlugin till i kerneln och anropar DayOfWeek sedan funktionen för att hämta den aktuella veckodagen. Utdata är den aktuella veckodagen.

Dessa lättillgängliga plugin-program kan användas för att snabbt lägga till funktioner i projektet. I nästa övning får du lära dig hur ConversationSummaryPlugin du kan använda för att få en sammanfattning av en konversation eller åtgärdsobjekt från ett textblock.