Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
ПРИМЕНИМО К: пакет SDK версии 4
Функция ответа на вопросы в Azure Cognitive Service for Language предоставляет облачную обработку естественного языка (NLP), которая позволяет создать естественный разговорный слой поверх ваших данных. Ее можно использовать для поиска в пользовательской базе знаний наиболее подходящего ответа на вопрос.
В этой статье описывается, как использовать функцию ответа на вопросы в боте.
Предпосылки
- Если у вас нет подписки Azure, создайте бесплатную учетную запись, прежде чем приступить к работе.
- Ресурс языка в Language Studio с включенной функцией пользовательского ответа на вопросы.
- Копия примера пользовательского ответа на вопросы в C# или JavaScript.
Об этом примере
Чтобы использовать ответы на вопросы в боте, вам нужна существующая база знаний. Затем бот может использовать базу знаний для ответа на вопросы пользователя.
Если вам нужно создать новую базу знаний для бота пакета SDK Bot Framework, ознакомьтесь с readME для примера ответов на настраиваемые вопросы.
OnMessageActivityAsync вызывается для каждого полученного блока данных, введенных пользователем. При вызове он обращается к параметрам конфигурации из файлаappsetting.json примера кода и подключается к базе знаний.
Входные данные пользователя отправляются в базу знаний, а наиболее подходящий ответ отображается пользователю.
Получите параметры подключения базы знаний
Откройте языковой ресурс в Language Studio.
Скопируйте следующие сведения в файл конфигурации бота:
- Имя хоста конечной точки языка.
- Ключ
Ocp-Apim-Subscription-Key, который является вашим ключом конечной точки. - Имя проекта, которое выступает в качестве идентификатора базы знаний.
Имя узла — это часть URL-адреса конечной точки между https:// и /language, например, https://<hostname>/language. Боту требуется имя проекта, URL-адрес узла и ключ конечной точки для подключения к базе знаний.
Подсказка
Если вы не развертываете это для рабочей среды, вы можете оставить идентификатор приложения бота и поля паролей пустыми.
Настройка и вызов клиента базы знаний
Создайте клиент базы знаний, а затем используйте его для получения ответов из базы знаний.
Убедитесь, что для проекта установлен пакет NuGet Microsoft.Bot.Builder.AI.QnA .
В QnABot.cs в методе OnMessageActivityAsync создайте клиент базы знаний. Используйте контекст поворота для запроса базы знаний.
Боты/CustomQABot.cs
using var httpClient = _httpClientFactory.CreateClient();
var customQuestionAnswering = CreateCustomQuestionAnsweringClient(httpClient);
// Call Custom Question Answering service to get a response.
_logger.LogInformation("Calling Custom Question Answering");
var options = new QnAMakerOptions { Top = 1, EnablePreciseAnswer = _enablePreciseAnswer };
var response = await customQuestionAnswering.GetAnswersAsync(turnContext, options);
Тестирование бота
Выполните этот пример на локальном компьютере. Если это еще не сделано, установите эмулятор Bot Framework. Дополнительные инструкции см. в примерах README (C# или JavaScript).
Запустите эмулятор, подключитесь к боту и отправьте сообщения боту. Ответы на ваши вопросы будут различаться в зависимости от информации в вашей базе знаний.
Дополнительные сведения
В примере Настраиваемое решение ответов на вопросы, все функции (C# или JavaScript) показано, как использовать диалог QnA Maker для поддержки запросов на дальнейшие действия базы знаний и активных функций обучения.
- Механизм ответов на вопросы поддерживает последующие подсказки, также известные как многоходовые подсказки. Если база знаний требует дополнительных сведений от пользователя, служба отправляет сведения о контексте, которые можно использовать для запроса пользователя. Эта информация также используется для выполнения любых последующих звонков в службу.
- Ответы на вопросы также поддерживают активные предложения по обучению, позволяя базе знаний улучшаться с течением времени. Диалоговое окно QnA Maker поддерживает явные отзывы о активной функции обучения.