Explore plugins integrados
Os plugins são um dos principais componentes do SDK do Kernel Semântico. Um plugin define a tarefa para o kernel executar como ele faz interface com o modelo de linguagem grande (LLM). Os plugins podem ser compostos de código nativo e prompts para o LLM. O SDK do Kernel Semântico também oferece alguns plugins internos para tarefas comuns que estão prontas para uso em seus aplicativos.
O que é um plugin?
No SDK do kernel semântico, um plugin é uma classe que contém funções que podem ser executadas pelo kernel. Uma função de plugin pode ser feita a partir de um prompt semântico ou código de função nativa. Para usar um plugin, você o adiciona ao kernel e, em seguida, chama a função desejada usando o InvokeAsync
método. O kernel acessa o plugin, localiza e executa a função e, em seguida, retorna o resultado. Vamos dar uma olhada em alguns plugins predefinidos.
Plugins integrados
O SDK do Kernel Semântico oferece um pacote extra com plugins predefinidos para tarefas comuns. Eles estão disponíveis no pacote que você pode instalar com o Plugins.Core
NuGet: dotnet add package Microsoft.SemanticKernel.Plugins.Core --version 1.2.0-alpha
O pacote inclui os seguintes plugins:
ConversationSummaryPlugin
- Resume conversaFileIOPlugin
- Lê e grava no sistema de arquivosHttpPlugin
- Faz solicitações para pontos de extremidade HTTPMathPlugin
- Executa operações matemáticasTextPlugin
- Realiza manipulação de textoTimePlugin
- Obtém informações de hora e dataWaitPlugin
- Pausa a execução por um determinado período de tempo
Para usar um plug-in principal, você pode adicioná-lo ao seu construtor de kernel usando o AddFromType
método. Por exemplo, para adicionar o TimePlugin
ao seu kernel, você pode usar o seguinte código:
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);
Este código adiciona o TimePlugin
ao kernel e, em seguida, chama a DayOfWeek
função para obter o dia atual da semana. A saída é o dia atual da semana.
Esses plugins prontamente disponíveis podem ser usados para adicionar rapidamente funcionalidade ao seu projeto. No próximo exercício, você aprenderá como o ConversationSummaryPlugin
pode ser usado para obter um resumo de uma conversa ou os itens de ação de um bloco de texto.