Explore plugins integrados

Concluído

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 conversa
  • FileIOPlugin - Lê e grava no sistema de arquivos
  • HttpPlugin - Faz solicitações para pontos de extremidade HTTP
  • MathPlugin - Executa operações matemáticas
  • TextPlugin - Realiza manipulação de texto
  • TimePlugin - Obtém informações de hora e data
  • WaitPlugin - 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.