Изучение встроенных подключаемых модулей
Подключаемые модули являются одним из основных компонентов пакета 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
— выполняет запросы к конечным точкам HTTPMathPlugin
— выполняет математические операции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
можно использовать для получения сводки беседы или элементов действия из блока текста.