Использование ответов на вопросы

ОБЛАСТЬ ПРИМЕНЕНИЯ: ПАКЕТ SDK версии 4

Функция ответа на вопросы в Azure Cognitive Service для языка предоставляет облачную обработку естественного языка (NLP), которая позволяет создавать естественный уровень беседы по данным. Ее можно использовать для поиска в пользовательской базе знаний наиболее подходящего ответа на вопрос.

В этой статье описывается, как использовать функцию ответа на вопросы в боте.

Необходимые компоненты

  • Если у вас нет подписки Azure, создайте бесплатную учетную запись, прежде чем приступить к работе.
  • Ресурс языка в Language Studio с включенной функцией пользовательского ответа на вопросы.
  • Копия примера пользовательского ответа на вопросы в C# или JavaScript.

Об этом примере

Чтобы использовать ответы на вопросы в боте, вам потребуется существующий база знаний. После этого бот сможет использовать базу знаний, чтобы отвечать на вопросы пользователя.

Если вам нужно создать новый база знаний для бота пакета SDK Bot Framework, см. пример ответа на настраиваемый вопрос readME.

C# question answering bot logic flow.

OnMessageActivityAsync вызывается для каждого полученного блока данных, введенных пользователем. При вызове он обращается к параметрам конфигурации из файла appsetting.json примера кода и подключается к база знаний.

Введенные пользователем данные передаются в эту базу знаний, а наиболее точный полученный ответ отображается для пользователя.

Получение параметров подключения база знаний

  1. Откройте языковой ресурс в Language Studio.

  2. Скопируйте следующие сведения в файл конфигурации бота:

    • Имя узла конечной точки языка.
    • Ключ Ocp-Apim-Subscription-Keyконечной точки.
    • Имя проекта, которое выступает в качестве идентификатора база знаний.

Имя узла является частью URL-адреса конечной точки между https:// и /language, например, https://<hostname>/language. Боту требуется имя проекта, URL-адрес узла и ключ конечной точки для подключения к база знаний.

Совет

Если вы не развертываете это для рабочей среды, вы можете оставить идентификатор приложения бота и поля паролей пустыми.

Настройка и вызов клиента база знаний

Создайте клиент база знаний, а затем используйте его для получения ответов из база знаний.

Убедитесь, что пакет NuGet Microsoft.Bot.Builder.AI.QnA установлен для вашего проекта.

В QnABot.cs в методе OnMessageActivityAsync создайте клиент база знаний. Используйте контекст поворота для запроса база знаний.

Bots/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 поддерживает явные отзывы для функции активного обучения.