Поделиться через


Используйте метод ответов на вопросы для их решения

ПРИМЕНИМО К: пакет SDK версии 4

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

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

Предпосылки

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

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

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

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

Логический поток бота для ответа на вопросы в C#.

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 создайте клиент базы знаний. Используйте контекст поворота для запроса базы знаний.

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