Использование QnA Maker для ответов на вопросы

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

Примечание.

Azure AI QnA Maker будет прекращен 31 марта 2025 г. С 1 октября 2022 г. вы не сможете создавать новые ресурсы или базы знаний QnA Maker. Новая версия вопроса и возможности ответа теперь доступна как часть языка искусственного интеллекта Azure.

Пользовательский ответ на вопросы, компонент языка искусственного интеллекта Azure, — это обновленная версия службы QnA Maker. Дополнительные сведения о поддержке вопросов и ответов в пакете SDK Bot Framework см. в разделе "Распознавание естественного языка".

QnA Maker создает слой вопросов и ответов для диалога на основе ваших данных. Это позволяет вашему роботу отправить вопрос в QnA Maker и получить ответ без необходимости анализировать и интерпретировать цель вопроса.

Одна из основных сложностей при создании собственной службы QnA Maker — заполнить ее начальным набором вопросов и ответов. Во одних случаях вопросы и ответы уже существуют в таком содержимом, как разделы с вопросами и ответами или другая документация. В других случаях вы можете настроить ответы на вопросы в более естественном разговорном стиле.

В этой статье описывается использование существующего база знаний QnA Maker из бота.

Для новых ботов рекомендуется использовать функцию ответа на вопросы в Azure Cognitive Service для языка. Дополнительные сведения см. в разделе "Использование ответов на вопросы".

Примечание.

Пакеты SDK для JavaScript, C# и Python для Bot Framework по-прежнему будут поддерживаться, однако пакет SDK java отменяется с окончательной долгосрочной поддержкой, заканчивающейся в ноябре 2023 года. В этом репозитории будут выполняться только критически важные исправления безопасности и ошибок.

Существующие боты, созданные с помощью пакета SDK для Java, будут продолжать функционировать.

Для создания нового бота рекомендуется использовать Power Virtual Agent и ознакомиться с выбором подходящего решения чат-бота.

Дополнительные сведения см. в статье "Будущее создания бота".

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

  • Учетная запись QnA Maker и существующая база знаний QnA Maker.
  • Знания о основах бота и QnA Maker.
  • Копия примера QnA Maker (простой) в C# (archived), JavaScript (archived),Java (archived), Java (archived) или Python (archived).

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

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

Для разработки новых ботов рекомендуется использовать Power Virtual Agent. Если вам нужно создать новую база знаний для бота пакета SDK Bot Framework, ознакомьтесь со следующими статьями по службам ИИ Azure:

C# QnABot logic flow

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

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

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

Совет

Документация по QnA Maker содержит инструкции по созданию, обучению и публикации база знаний.

  1. На сайте QnA Maker выберите свою базу знаний.
  2. Откройте база знаний откройте вкладку SETTINGS. Запишите значение, отображаемое для имени службы. Это значение используется для поиска нужной базы знаний в интерфейсе портала QnA Maker. Оно не используется для подключения приложения бота к этой база знаний.
  3. Прокрутите вниз, чтобы найти сведения о развертывании и записать следующие значения из примера HTTP-запроса Postman:
    • POST/knowledgebases/<knowledge-base-id>/generateAnswer
    • Узел: <url-адрес узла>
    • Авторизация: EndpointKey <your-endpoint-key>

URL-адрес узла будет начинаться с https:// и заканчиваться /qnamaker, например https://<hostname>.azure.net/qnamaker. Боту требуется идентификатор база знаний, URL-адрес узла и ключ конечной точки для подключения к база знаний QnA Maker.

Обновление файла параметров

Сначала добавьте сведения, необходимые для доступа к база знаний, включая имя узла, ключ конечной точки и идентификатор база знаний (kbId) в файл параметров. Это значения, сохраненные на вкладке SETTINGS база знаний в QnA Maker.

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

Примечание.

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

Настройка экземпляра QnA Maker

Для начала мы создадим объект для доступа к базе знаний QnA Maker.

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

В QnABot.cs в методе OnMessageActivityAsync создайте экземпляр QnAMaker. Класс QnABot также содержит имена сведений о подключении, сохраненных в appsettings.json выше. Если вы выбрали разные имена для сведений о подключении база знаний в файле параметров, обязательно обновите имена здесь, чтобы отразить выбранное имя.

Bots/QnABot.cs

C# (архивировано)

Вызов QnA Maker из кода бота

Когда боту требуется ответ от QnAMaker, вызовите GetAnswersAsync метод из кода бота, чтобы получить соответствующий ответ на основе текущего контекста. Если вы обращаетесь к собственному база знаний, измените ответы ниже, чтобы предоставить полезные инструкции для пользователей.

Bots/QnABot.cs

C# (архивировано)

Тестирование бота

Выполните этот пример на локальном компьютере. Если это еще не сделано, установите эмулятор Bot Framework. Дополнительные инструкции см. в примерах README (C# (archived),JavaScript (archived), Java (archived), Java (archived) или Python (archived)).

Запустите эмулятор, подключитесь к боту и отправьте сообщения боту. Ответы на ваши вопросы будут отличаться в зависимости от информации, база знаний.

Test sample bot.

Дополнительные сведения

Пример QnA Maker с несколькими поворотами (пример C# с несколькими поворотами (архивированный), пример javaScript с несколькими поворотами (архивированный), пример Java (архивированный), пример Python с несколькими поворотами (архивированный)) показывает, как использовать диалоговое окно QnA Maker для поддержки последующих запросов и активных функций обучения QnA Maker.

  • QnA Maker поддерживает дополнительные (многоэтапные) подсказки. Если база знаний QnA Maker требует дополнительных сведений от пользователя, QnA Maker отправляет сведения о контексте, которые можно использовать для запроса пользователя. Эти сведения затем используются для дополнительных обращений к службе QnA Maker. Поддержка этой функции добавлена в пакет SDK для Bot Framework версии 4.6.

    Чтобы создать такую базу знаний, воспользуйтесь статьей Use follow-up prompts to create multiple turns of a conversation (Использование дальнейших подсказок для создания диалога с несколькими шагами) из документации по QnA Maker.

  • QnA Maker также поддерживает предложения для активного обучения, позволяя усовершенствовать базу знаний со временем. Диалог QnA Maker поддерживает явные отзывы для функции активного обучения.

    Сведения о том, как включить эту функцию в базе знаний, см. в документации QnA Maker по предложениям для активного обучения.

Следующие шаги

QnA Maker можно объединить с другими службами ИИ Azure, чтобы сделать бот еще более мощным. Bot Framework Orchestrator предоставляет способ объединения QnA с Распознавание речи (LUIS) в боте.