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


Тестирование базы знаний в QnA Maker

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

Примечание.

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

Интерактивное тестирование на портале QnA Maker

  1. Получите доступ к базе знаний, выбрав ее имя на странице Мои базы знаний.
  2. Чтобы открыть выдвигающуюся панель тестирования, щелкните Тестировать на верхней панели приложения.
  3. Введите запрос в текстовом поле и нажмите клавишу ВВОД.
  4. Ответ наилучшего соответствия из базы знаний возвращается как отклик.

Очистка панели тестирования

Чтобы очистить все введенные тестовые запросы и их результаты из консоли тестирования, выберите Начать сначала в левом верхнем углу панели тестирования.

Закрытие панели тестирования

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

Проверка оценки

Просмотреть результат теста можно на панели Inspect (Контроль).

  1. На открытой выдвигающейся панели тестирования нажмите кнопку Проверка для получения более подробной информации об этом ответе.

    Проверка ответов

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

Исправьте ответы с высокой оценкой

Если ответы с высокой оценкой неверны, выберите правильный ответ из списка и нажмите Сохранить и Обучать.

Исправьте ответы с высокой оценкой

Добавление альтернативных вопросов

Можно добавить альтернативные формы вопроса для данного ответа. Чтобы добавить альтернативные ответы, введите их в текстовое поле и нажмите "Ввод". Для сохранения обновлений выберите Сохранить и Обучать.

Добавление альтернативных вопросов

Добавление нового ответа

Можно добавить новый ответ, если любой из существующих ответов, которые были сопоставлены, неверный или не существует ответа в базе знаний (в КБ нет хорошего совпадения).

Используйте текстовое поле в нижней части списка ответов, чтобы ввести новый ответ, и нажмите клавишу ВВОД, чтобы добавить его.

Для сохранения этого ответа выберите Сохранить и Обучать. Новая пара вопросов и ответов теперь будет добавлена в базу знаний.

Примечание.

Все изменения в базе знаний сохраняются только при нажатии кнопки Сохранить и Обучать.

Тестирование опубликованной базы знаний

Опубликованную версию базы знаний можно проверить на панели тестирования. После публикации базы знаний выберите поле Опубликованная база знаний и отправьте запрос, чтобы получить результаты из нее.

Проверка соответствия опубликованной базе знаний

Пакетный тест с помощью специального средства

Используйте средство пакетного тестирования, если вы хотите:

  • определить наилучший ответ и оценку для набора вопросов;
  • проверить соответствие ожидаемого ответа набору вопросов.

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

Вход на портал QnA Maker

Войдите на портал QnA Maker.

Создание новой базы знаний из файла sample.docx с многоэтапным запросом

  1. Щелкните Create a knowledge base (Создать базу знаний) на панели инструментов.

  2. Пропустите шаг 1, так как ресурс QnA Maker у вас уже есть. Перейдите к шагу 2, чтобы выбрать сведения об существующем ресурсе:

    • Microsoft Entra ID
    • Имя подписки Azure
    • имя службы Azure QnA;
    • язык (английский).
  3. В качестве имени для базы знаний введите значение Multi-turn batch test quickstart.

  4. На шаге 4 настройте параметры, используя значения из приведенной ниже таблицы.

    Параметр Значение
    Enable multi-turn extraction from URLs, .pdf or .docx files (Включить многоэтапное извлечение из URL-адресов, файлов .pdf или .docx) Флажок установлен
    Текст ответа по умолчанию Batch test - default answer not found.
    + Добавить файл Выберите скачанный файл .docx, который указан в списке необходимых компонентов.
    Беседа Выберите значение Professional (Профессиональная)
  5. На шаге 5 щелкните Create your KB (Создать базу знаний).

    Когда процесс создания завершится, портал отобразит доступную для редактирования базу знаний.

Сохранение, обучение и публикация базы знаний

  1. Щелкните Save and Train (Сохранить и обучить) на панели инструментов, чтобы сохранить базу знаний.

  2. Щелкните Publish (Опубликовать) на панели инструментов, а затем снова щелкните Publish (Опубликовать), чтобы опубликовать базу знаний. Публикация делает базу знаний доступной для запросов по URL-адресу общедоступной конечной точки. Когда публикация завершится, сохраните сведения об URL-адресе узла и ключе конечной точки, которые отображаются на странице Publish (Публикация).

    Необходимые данные Пример
    Узел публикации https://YOUR-RESOURCE-NAME.azurewebsites.net
    Ключ публикации XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX (строка длиной 32 символа, которая отображается после Endpoint)
    ИД приложения xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx (строка длиной 36 символов, которая отображается в составе POST)

Создание файла пакетного теста с идентификаторами вопросов

Чтобы использовать средство пакетного тестирования, создайте в текстовом редакторе файл с именем batch-test-data-1.tsv. Этот файл должен быть в формате UTF-8 и содержать следующие столбцы, разделенные знаками табуляции.

Поля входного файла с разделением знаками табуляции Примечания. Пример
Идентификатор базы знаний Идентификатор базы знаний, представленный на странице публикации. Вы можете тестировать сразу несколько баз знаний в одной службе, используя один файл с несколькими идентификаторами базы знаний. xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx (строка длиной 36 символов, которая отображается в составе POST)
Вопрос Текст вопроса, который будет вводить пользователь. Не более 1000 символов How do I sign out?
Теги метаданных необязательно topic:powerkey:value использует формат
Наилучший вариант необязательно 25
Идентификатор ожидаемого ответа необязательно 13

Для этой базы знаний добавьте в файл три строки с двумя обязательными столбцами. Первый столбец содержит идентификатор базы знаний, а второй — следующий список вопросов:

Столбец 2: вопросы
Use Windows Hello to sign in
Charge your Surface Pro 4
Get to know Windows 10

Эти вопросы точно дублируют фразы из базы знаний и должны возвращать оценки достоверности 100.

Затем добавьте еще три строки с аналогичными вопросами в немного другой формулировке, используя тот же идентификатор базы знаний:

Столбец 2: вопросы
What is Windows Hello?
How do I charge the laptop?
What features are in Windows 10?

Внимание

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

Файл пакетного теста, открытый в программе Excel, должен выглядеть как на следующем рисунке. Идентификатор базы знаний здесь заменен для безопасности строкой xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx. Для вашего пакетного теста здесь должен быть реальный идентификатор базы знаний.

Первая версия входного файла .tsv для пакетного теста

Выполните тестирование с пакетным файлом

Запустите программу пакетного тестирования, выполнив следующую команду CLI в командной строке.

Замените значения YOUR-RESOURCE-NAME и ENDPOINT-KEY реальными значениями имени службы и ключа конечной точки. Их вы можете найти на странице Settings (Параметры) портала QnA Maker.

batchtesting.exe batch-test-data-1.tsv https://YOUR-RESOURCE-NAME.azurewebsites.net ENDPOINT-KEY out.tsv

Выполняемый тест создаст файл out.tsv:

Первая версия выходного файла .tsv пакетного теста

Идентификатор базы знаний здесь заменен для безопасности строкой xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx. В результатах вашего пакетного теста этот столбец содержит реальный идентификатор базы знаний.

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

Тестирование с необязательными полями

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

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

Например, если у вас есть журнал чата и вы хотите определить, как соотносятся строки текста из этого журнала и поля метаданных, создайте файл теста и укажите поля метаданных для каждой строки. Запустите тест и проверьте, какие строки соответствуют метаданным. Как правило, совпадения будут положительными, но обязательно проверьте и ложноположительные результаты. Ложноположительным результатом называется строка, которая обозначена как соответствующая метаданным, но содержит текст, который не должен им соответствовать.

Использование необязательных полей во входном файле пакетного теста

Следующая схема поможет вам понять, как найти значения полей для необязательных данных.

Номер столбца Необязательный столбец Расположение данных
3 metadata Экспорт существующих база знаний для существующих key:value пар.
4 популярное Мы рекомендуем использовать значение по умолчанию 25.
5 Идентификатор набора вопросов и ответов Экспортируйте существующую базу знаний, чтобы получить значения идентификаторов. Также обратите внимание на идентификаторы, которые возвращаются в выходном файле.

Добавление метаданных в базу знаний

  1. На портале QnA на странице Edit (Правка) добавьте метаданные topic:power к следующим вопросам.

    Ответы на вопросы
    Charge your Surface Pro 4
    Check the battery level

    Две пары "вопрос — ответ" с указанными метаданными.

    Совет

    Чтобы получить метаданные и идентификаторы QnA для каждого набора, экспортируйте базу знаний. Перейдите на страницу Settings (Параметры), а затем щелкните Export (Экспортировать), чтобы получить файл .xls. Найдите этот скачанный файл и откройте его в Excel для просмотра метаданных и идентификатора.

  2. Выберите действие Save and train (Сохранить и обучить), а затем откройте страницу Publish (Публикация) и нажмите кнопку Publish (Опубликовать). После этих действий изменения станут доступными для пакетного теста. Скачайте базу знаний на странице Settings (Параметры).

    В скачанном файле метаданные имеют правильный формат и правильные идентификаторы набора вопросов и ответов. Эти поля применяются в следующем разделе

    Экспортированная база знаний с метаданными

Создание второго пакетного теста

Существуют два основных сценария пакетного тестирования:

  • Обработка файлов журнала чата позволяет найти наилучший ответ на вопрос, который ранее не встречался. Чаще всего это нужно при обработке файла журнала с запросами, например с вопросами пользователей боту в чате. Создайте файл пакетного теста, содержащий только обязательные столбцы. Этот тест возвращает самый подходящий ответ для каждого вопроса. Но самый подходящий ответ не всегда будет правильным. После завершения этого теста перейдите к проверочному тесту.
  • Проверочный тест проверяет ожидаемые ответы. Этот тест предполагает проверку всех вопросов и соответствующих ожидаемых ответов в пакетном тесте. Обычно для этого нужно выполнить некоторую работу вручную.

В следующей процедуре предполагается, что мы обрабатываем журналы разговора

  1. Создайте новый файл пакетного теста и включите в него необязательные данные batch-test-data-2.tsv. Добавьте шесть строк из исходного входного файла пакетного теста, а затем добавьте метаданные, наилучший ответ и идентификатор пары "вопрос — ответ" для каждой строки.

    Чтобы имитировать автоматическую проверку нового текста из журналов разговора на соответствие с базой знаний, для метаданных в каждом столбце задайте одно и то же значение topic:power.

    Вторая версия входного файла .tsv для пакетного теста

  2. Запустите тест еще раз, изменив имена входного и выходного файлов, чтобы указать, что это второй тест.

    Вторая версия выходного файла .tsv для пакетного теста

Результаты тестирования и автоматизированная система тестирования

Этот выходной файл теста можно анализировать в автоматизированном конвейере непрерывного тестирования.

Выходные данные в нашем примере следует понимать следующим образом: каждая строка фильтруется по метаданным, которые не соответствуют метаданным в базе знаний, поэтому для каждой несовпадающей строки возвращается ответ по умолчанию, информирующий о том, что в базе знаний не найдено хорошего совпадения. Для совпадающих строк возвращается идентификатор и оценка пар "вопрос — ответ".

Все строки здесь отмечены как неправильные, так как все они не соответствует ожидаемому идентификатору ответа.

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

  • метаданные
  • идентификатор QnA
  • score

Была ли полезной фильтрация по метаданным для тестирования? Да и нет. Тестовая система должна создавать тестовые файлы для каждой пары метаданных, а также тест без пар метаданных.

Очистка ресурсов

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

Если вы не собираетесь использовать эту базу знаний, удалите все связанные с ней ресурсы, выполнив следующие действия.

  1. На портале QnA Maker щелкните My Knowledge bases (Мои базы знаний) в меню сверху.
  2. В списке баз знаний щелкните значок Delete (Удалить) в строке той базы знаний, которую вы создали для этого краткого руководства.

Справочная документация по этому средству включает:

  • пример командной строки средства;
  • формат входных и выходных файлов TSV.

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