Изучение встроенных подключаемых модулей

Завершено

Подключаемые модули являются одним из основных компонентов пакета SDK для семантического ядра. Подключаемый модуль определяет задачу для ядра, который будет выполняться в интерфейсе с большой языковой моделью (LLM). Подключаемые модули могут состоять из машинного кода и запрашивать LLM. Пакет SDK для семантического ядра также предлагает некоторые встроенные подключаемые модули для распространенных задач, готовых к использованию в приложениях.

Что такое подключаемый модуль?

В пакете SDK для семантического ядра подключаемый модуль — это класс, содержащий функции, которые могут выполняться ядром. Функцию подключаемого модуля можно сделать из семантического запроса или кода машинной функции. Чтобы использовать подключаемый модуль, добавьте его в ядро, а затем вызовите нужную функцию с помощью InvokeAsync метода. Ядро обращается к подключаемого модуля, находит и запускает функцию, а затем возвращает результат. Давайте рассмотрим некоторые предопределенные подключаемые модули.

Встроенные подключаемые модули

Пакет SDK для семантического ядра предоставляет дополнительный пакет с предопределенными подключаемыми модулями для распространенных задач. Они доступны в пакете Plugins.Core , который можно установить с помощью NuGet: dotnet add package Microsoft.SemanticKernel.Plugins.Core --version 1.2.0-alpha пакет включает следующие подключаемые модули:

  • ConversationSummaryPlugin — сводка беседы
  • FileIOPlugin — чтение и запись в файловую систему
  • HttpPlugin — выполняет запросы к конечным точкам HTTP
  • MathPlugin — выполняет математические операции
  • TextPlugin — выполняет обработку текста
  • TimePlugin — Возвращает сведения о времени и дате
  • WaitPlugin — приостанавливает выполнение за указанный период времени.

Чтобы использовать основной подключаемый модуль, его можно добавить в построителе ядра с помощью AddFromType метода. Например, чтобы добавить его в TimePlugin ядро, можно использовать следующий код:

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

Этот код добавляется TimePlugin в ядро, а затем вызывает DayOfWeek функцию, чтобы получить текущий день недели. Выходные данные — текущий день недели.

Эти легко доступные подключаемые модули можно использовать для быстрого добавления функциональных возможностей в проект. В следующем упражнении вы узнаете, как ConversationSummaryPlugin можно использовать для получения сводки беседы или элементов действия из блока текста.