Упражнение. Использование встроенных подключаемых модулей
В этом упражнении вы добавите существующий подключаемый модуль в проект семантического ядра и узнаете, как использовать первый подключаемый модуль для выполнения задачи. Приступим.
Подготовка среды разработки
Для этих упражнений начальный проект доступен для использования. Чтобы настроить начальный проект, выполните следующие действия.
Внимание
Для выполнения этих действий необходимо установить Visual Studio Code и платформа .NET Framework 8.0. Также может потребоваться установить расширение пакета разработки для Visual Studio Code C#.
Откройте Visual Studio Code.
В разделе "Пуск Visual Studio Code" выберите "Клонировать репозиторий Git".
В строке URL-адреса введите
https://github.com/MicrosoftLearning/MSLearn-Develop-AI-Agents-with-Azure-OpenAI-and-Semantic-Kernel-SDK.git
В проводник создайте новую папку в расположении, которое легко найти и запомнить, например папку в рабочем столе.
Нажмите кнопку "Выбрать в качестве назначения репозитория".
Чтобы успешно клонировать проект, необходимо войти в GitHub.
Откройте проект в Visual Studio Code.
В обозревателе щелкните правой кнопкой мыши папку M02-create-plugins-for-semantic-kernel/M02-Project и щелкните " Открыть в интегрированном терминале".
Разверните папку M02-create-plugins-for-semantic-kernel/M02-Project .
Должен появиться файл Program.cs.
Откройте файл Program.cs и обновите следующие переменные с именем развертывания Azure OpenAI Services, ключом API, конечной точкой.
string yourDeploymentName = ""; string yourEndpoint = ""; string yourKey = "";
Теперь вы готовы начать упражнение. Удачи!
Получение намерения пользователя
В интегрированном терминале добавьте подключаемые модули семантического ядра. Основной пакет в проекте, выполнив следующую команду:
dotnet add package Microsoft.SemanticKernel.Plugins.Core --version 1.2.0-alpha
Примечание.
В настоящее время пакет является предварительной версией. Возможно, потребуется проверить последнюю версию. https://www.nuget.org/packages/Microsoft.SemanticKernel.Plugins.Core/1.2.0-alpha
Добавьте следующий код в файл Program.cs:
builder.Plugins.AddFromType<ConversationSummaryPlugin>(); var kernel = builder.Build(); string input = @"I'm a vegan in search of new recipes. I love spicy food! Can you give me a list of breakfast recipes that are vegan friendly?"; var result = await kernel.InvokeAsync( "ConversationSummaryPlugin", "GetConversationActionItems", new() {{ "input", input }}); Console.WriteLine(result);
В этом коде
Core.Plugins
импортируетсяConversationSummaryPlugin
из пакета. Создайте построитель ядра и добавьте подключаемый модуль в построитель. ПоддерживаетConversationSummaryPlugin
несколько действий:GetConversationActionItems
,SummarizeConversation
иGetConversationTopics
.Вы создаете строку с примером беседы, а затем вызываете подключаемый модуль с именем функции и передаете строку беседы. Подключаемый модуль возвращает сводку беседы.
Примечание.
Так как подключаемый модуль по-прежнему находится в предварительной версии, может потребоваться добавить предупреждение, используя
#pragma warning disable SKEXP0050
в верхней части файла.Запустите код, введя
dotnet run
в терминал.Вы увидите ответ, аналогичный следующему выводу:
{ "actionItems": [ { "owner": "", "actionItem": "Provide a list of vegan-friendly spicy breakfast recipes", "dueDate": "", "status": "Open", "notes": "" } ] }
Обратите внимание, что подключаемый модуль смог определить упрощенное намерение из входной строки.
Этот пример — это только начало работы с пакетом SDK для семантического ядра. В следующем уроке вы узнаете больше способов настройки подключаемых модулей и выполнения функций.
Внимание
Не удаляйте написанный вами код, вам потребуется выполнить следующие упражнения.