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


Использование дальнейших подсказок для создания диалога с несколькими шагами

Используйте дальнейшие подсказки и контекст для управления диалогами с несколькими шагами при переключении бота с одного вопроса на другой.

Чтобы увидеть, как работает диалог с несколькими шагами, просмотрите следующее демонстрационное видео:

Многоэтапная беседа в QnA Maker

Примечание.

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

Что такое многоэтапная беседа?

На некоторые вопросы невозможно ответить сразу. При проектировании бесед с клиентским приложением (чат-ботом) следует учитывать, что пользователь может задать вопрос, который необходимо отфильтровать или уточнить, чтобы определить правильный ответ. Вы включите в поток все возможные вопросы, предоставив пользователю дальнейшие подсказки.

Когда пользователь задает вопрос, QnA Maker возвращает ответ и любые возможные дальнейшие подсказки. Этот ответ позволяет представить дальнейшие вопросы как варианты выбора.

Внимание

Многоэтапные подсказки не извлекаются из документов с часто задаваемыми вопросами. Если требуется многоэтапное извлечение, удалите вопросительные знаки, обозначающие пары QnA, как часто задаваемые вопросы.

Пример многоэтапной беседы с чат-ботом

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

Многоэтапная беседа с подсказками для пользователя

На предыдущем рисунке пользователь начал диалог, указав Моя учетная запись. В базе знаний есть три связанные пары "вопрос/ответ". Чтобы уточнить ответ, пользователь выбирает один из трех вариантов из базы знаний. Вопрос (1) содержит три дальнейших подсказки, которые отображаются в чат-боте в виде трех вариантов (2).

Когда пользователь выбирает вариант (3), отображается следующий список уточняющих вариантов (4). Так продолжается до тех пор (5), пока пользователь не определит правильный, окончательный ответ (6).

Использование диалога с несколькими шагами в боте

После публикации базы знаний можно нажать кнопку "Создать бота", чтобы развернуть бот QnA Maker в Azure AI Служба Bot. Подсказки будут отображаться в клиентах чата, которые включены для бота.

Создание многоэтапной беседы из структуры документа

Когда вы создаете базу знаний, в разделе Заполнение базы знаний отображается флажок Включить извлечение диалога с несколькими шагами из URL-адресов, файлов PDF или DOCX.

Флажок для включения извлечения диалога с несколькими шагами

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

Структура диалога с несколькими шагами может быть получена только из URL-адресов, файлов PD или DOCX. Пример структуры см. в PDF-файле руководства пользователя Microsoft Surface.

Снимок экрана: пример структуры в руководстве пользователя.

Создание собственного документа для диалога с несколькими шагами

При создании документа для диалога с несколькими шагами учитывайте следующие рекомендации:

  • Используйте заголовки и подзаголовки для обозначения иерархии. Например, родительский QnA можно обозначить как заголовок уровня 1, а QnA, который следует использовать в качестве подсказки, — как заголовок уровня 2. Используйте заголовок меньшего размера для обозначения последующей иерархии. Не используйте стиль, цвет или какой-либо другой механизм для обозначения структуры документа, поскольку QnA Maker не будет извлекать из таких документов подсказки для диалога с несколькими шагами.

  • Первый символ заголовка должен быть прописным.

  • Не завершайте заголовок вопросительным знаком ("?").

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

Добавление файлов в базу знаний многоэтапной беседы

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

  1. В QnA Maker выберите существующую базу знаний, которая была создана с установленным флажком Включить извлечение диалога с несколькими шагами из URL-адресов, файлов PDF или DOCX.
  2. Перейдите на страницу Параметры, выберите файл или URL-адрес для добавления.
  3. Сохраните и обучите базу знаний.

Внимание

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

Создание базы знаний с подсказками для многоэтапной беседы с помощью API Create

Можно создать вариант базы знаний с подсказками для многоэтапной беседы с помощью API Create QnA Maker. Подсказки добавляются в массив prompts свойства context.

Отображение вопросов и ответов с контекстом

Сократите отображаемые пары "вопрос/ответ" только теми, у которых имеются контекстные беседы.

Выберите Параметры просмотра, а затем — Показать контекст. Отобразится список пар "вопрос/ответ", которые содержат дальнейшие подсказки.

Фильтрация пар

Контекст многоэтапной беседы представлен в первом столбце.

Снимок экрана: выделенный раздел

На предыдущем рисунке 1 обозначает полужирный текст в столбце, который обозначает текущий вопрос. Родительский вопрос — это верхний элемент в строке. Все приведенные ниже вопросы являются связанными парами "вопрос/ответ". Эти элементы доступны для выбора, поэтому можно сразу же переходить к другим элементам контекста.

Добавление существующей пары "вопрос/ответ" в качестве дальнейшей подсказки

Исходный вопрос, Моя учетная запись, содержит дальнейшие подсказки, такие как Учетные записи и вход в систему.

Ответы и дальнейшие подсказки

Добавьте дальнейшую подсказку к существующей паре "вопрос-ответ", которая не связана. Поскольку вопрос не связан с какой-либо парой "вопрос-ответ", необходимо изменить настройки текущего представления.

  1. Чтобы связать существующую пару "вопрос-ответ" в качестве дальнейшей подсказки, выберите строку пары "вопрос-ответ". В руководстве по Surface выполните поиск по слову Выйти, чтобы сократить список.

  2. В строке для Выход в столбце Ответ выберите команду Добавить дальнейшую подсказку.

  3. В полях во всплывающем окне Дальнейшая подсказка введите следующие значения.

    Поле значение
    Отображаемый текст Введите Отключить устройство. Это пользовательский текст, отображаемый в дальнейшей подсказке.
    Только контекст Установите этот флажок. Ответ возвращается только в том случае, если вопрос задает контекст.
    Ссылка на ответ Введите Использовать экран входа, чтобы найти существующую пару "вопрос-ответ".
  4. Возвращается одно совпадение. Выберите этот ответ в качестве дальнейшей подсказки и нажмите кнопку Сохранить.

    Страница

  5. После добавления дальнейшей подсказки выберите Сохранить и обучить в области навигации вверху.

Редактирование отображаемого текста

После создания дальнейшей подсказки и ввода существующей пары "вопрос-ответ" в качестве ссылки на ответ можно ввести новый отображаемый текст. Этот текст не заменяет существующий вопрос и не добавляет новый альтернативный вопрос. Он указывается отдельно от этих значений.

  1. Чтобы изменить отображаемый текст, найдите и выберите вопрос в поле Контекст.

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

  3. Выберите отображаемый текст, который нужно изменить, и нажмите кнопку Изменить.

    Команда

  4. Во всплывающем окне Дальнейшая подсказка измените существующий отображаемый текст.

  5. Завершив редактирование отображаемого текста, нажмите кнопку Сохранить.

  6. На панели навигации вверху нажмите Сохраните и обучить.

Добавление новой пары "вопрос-ответ" в качестве дальнейшей подсказки

При добавлении новой пары "вопрос-ответ" в базу знаний каждая пара должна быть связана с существующим вопросом в качестве дальнейшей подсказки.

  1. На панели инструментов базы знаний найдите и выберите существующую пару "вопрос-ответ" для вопроса Учетные записи и вход в систему.

  2. В столбце Ответ для этого вопроса выберите команду Добавить дальнейшую подсказку.

  3. В разделе Дальнейшая подсказка (предварительная версия) создайте новую дальнейшую подсказку, введя следующие значения.

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

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

  4. Нажмите Создать, а затем — Сохранить.

    В результате будет создана новая пара "вопрос-ответ", а выбранный вопрос будет связан в качестве дальнейшей подсказки. В столбце Контекст для обоих вопросов указывается связь с дельнейшей подсказкой.

  5. Выберите Параметры просмотра, а затем — Показать контекст (предварительная версия).

    Связь нового вопроса.

    Создание новой дальнейшей подсказки

    В качестве одного из вариантов для родительского вопроса указан новый вопрос.

    Снимок экрана: в столбце

  6. После добавления дальнейшей подсказки выберите Сохранить и обучить в области навигации вверху.

Просмотр многоэтапной беседы во время тестирования дальнейших подсказок

При тестировании вопроса с дальнейшими подсказками в области Тестирование ответ включает дальнейшие подсказки.

Ответ включает дальнейшие подсказки

Запрос JSON для возврата начального ответа и дальнейших подсказок

Используйте пустой объект context, чтобы запросить ответ на вопрос пользователя и включить в него дальнейшие подсказки.

{
  "question": "accounts and signing in",
  "top": 10,
  "userId": "Default",
  "isTest": false,
  "context": {}
}

Ответ JSON для возврата начального ответа и дальнейших подсказок

В предыдущем разделе был запрошен ответ и все дальнейшие подсказки для вопроса Учетные записи и вход в систему. Ответ содержит сведения о запросе, расположенные по answers[0].contextадресу, и текст, отображаемый пользователю.

{
    "answers": [
        {
            "questions": [
                "Accounts and signing in"
            ],
            "answer": "**Accounts and signing in**\n\nWhen you set up your Surface, an account is set up for you. You can create additional accounts later for family and friends, so each person using your Surface can set it up just the way he or she likes. For more info, see All about accounts on Surface.com. \n\nThere are several ways to sign in to your Surface Pro 4: ",
            "score": 100.0,
            "id": 15,
            "source": "product-manual.pdf",
            "metadata": [],
            "context": {
                "isContextOnly": true,
                "prompts": [
                    {
                        "displayOrder": 0,
                        "qnaId": 16,
                        "qna": null,
                        "displayText": "Use the sign-in screen"
                    }
                ]
            }
        },
        {
            "questions": [
                "Sign out"
            ],
            "answer": "**Sign out**\n\nHere's how to sign out: \n\n  Go to Start, and right-click your name. Then select Sign out. ",
            "score": 38.01,
            "id": 18,
            "source": "product-manual.pdf",
            "metadata": [],
            "context": {
                "isContextOnly": true,
                "prompts": [
                    {
                        "displayOrder": 0,
                        "qnaId": 16,
                        "qna": null,
                        "displayText": "Turn off the device"
                    }
                ]
            }
        },
        {
            "questions": [
                "Use the sign-in screen"
            ],
            "answer": "**Use the sign-in screen**\n\n1.  \n\nTurn on or wake your Surface by pressing the power button. \n\n2.  \n\nSwipe up on the screen or tap a key on the keyboard. \n\n3.  \n\nIf you see your account name and account picture, enter your password and select the right arrow or press Enter on your keyboard. \n\n4.  \n\nIf you see a different account name, select your own account from the list at the left. Then enter your password and select the right arrow or press Enter on your keyboard. ",
            "score": 27.53,
            "id": 16,
            "source": "product-manual.pdf",
            "metadata": [],
            "context": {
                "isContextOnly": true,
                "prompts": []
            }
        }
    ]
}

Массив prompts предоставляет текст в свойстве displayText и значении qnaId. Эти ответы можно отобразить как следующие отображаемые варианты в ходе беседы, а затем отправить выбранные qnaId обратно в QnA Maker в следующем запросе.

Запрос JSON для возврата ответа, отличного от начального, и дальнейших подсказок

Заполните объект context, включив в него предыдущий контекст.

В следующем запросе JSON текущим вопросом является Использовать Windows Hello для входа, а предыдущий вопрос — Учетные записи и вход в систему.

{
  "question": "Use Windows Hello to sign in",
  "top": 10,
  "userId": "Default",
  "isTest": false,
  "qnaId": 17,
  "context": {
    "previousQnAId": 15,
    "previousUserQuery": "accounts and signing in"
  }
}

Ответ JSON для возврата ответа, отличного от начального, и дальнейших подсказок

Ответ JSON GenerateAnswer JSON включает дальнейшие подсказки в свойстве context первого элемента объекта answers:

{
    "answers": [
        {
            "questions": [
                "Use Windows Hello to sign in"
            ],
            "answer": "**Use Windows Hello to sign in**\n\nSince Surface Pro 4 has an infrared (IR) camera, you can set up Windows Hello to sign in just by looking at the screen. \n\nIf you have the Surface Pro 4 Type Cover with Fingerprint ID (sold separately), you can set up your Surface sign you in with a touch. \n\nFor more info, see What is Windows Hello? on Windows.com. ",
            "score": 100.0,
            "id": 17,
            "source": "product-manual.pdf",
            "metadata": [],
            "context": {
                "isContextOnly": true,
                "prompts": []
            }
        },
        {
            "questions": [
                "Meet Surface Pro 4"
            ],
            "answer": "**Meet Surface Pro 4**\n\nGet acquainted with the features built in to your Surface Pro 4. \n\nHere's a quick overview of Surface Pro 4 features: \n\n\n\n\n\n\n\nPower button \n\n\n\n\n\nPress the power button to turn your Surface Pro 4 on. You can also use the power button to put it to sleep and wake it when you're ready to start working again. \n\n\n\n\n\n\n\nTouchscreen \n\n\n\n\n\nUse the 12.3" display, with its 3:2 aspect ratio and 2736 x 1824 resolution, to watch HD movies, browse the web, and use your favorite apps. \n\nThe new Surface G5 touch processor provides up to twice the touch accuracy of Surface Pro 3 and lets you use your fingers to select items, zoom in, and move things around. For more info, see Surface touchscreen on Surface.com. \n\n\n\n\n\n\n\nSurface Pen \n\n\n\n\n\nEnjoy a natural writing experience with a pen that feels like an actual pen. Use Surface Pen to launch Cortana in Windows or open OneNote and quickly jot down notes or take screenshots. \n\nSee Using Surface Pen (Surface Pro 4 version) on Surface.com for more info. \n\n\n\n\n\n\n\nKickstand \n\n\n\n\n\nFlip out the kickstand and work or play comfortably at your desk, on the couch, or while giving a hands-free presentation. \n\n\n\n\n\n\n\nWi-Fi and Bluetooth® \n\n\n\n\n\nSurface Pro 4 supports standard Wi-Fi protocols (802.11a/b/g/n/ac) and Bluetooth 4.0. Connect to a wireless network and use Bluetooth devices like mice, printers, and headsets. \n\nFor more info, see Add a Bluetooth device and Connect Surface to a wireless network on Surface.com. \n\n\n\n\n\n\n\nCameras \n\n\n\n\n\nSurface Pro 4 has two cameras for taking photos and recording video: an 8-megapixel rear-facing camera with autofocus and a 5-megapixel, high-resolution, front-facing camera. Both cameras record video in 1080p, with a 16:9 aspect ratio. Privacy lights are located on the right side of both cameras. \n\nSurface Pro 4 also has an infrared (IR) face-detection camera so you can sign in to Windows without typing a password. For more info, see Windows Hello on Surface.com. \n\nFor more camera info, see Take photos and videos with Surface and Using autofocus on Surface 3, Surface Pro 4, and Surface Book on Surface.com. \n\n\n\n\n\n\n\nMicrophones \n\n\n\n\n\nSurface Pro 4 has both a front and a back microphone. Use the front microphone for calls and recordings. Its noise-canceling feature is optimized for use with Skype and Cortana. \n\n\n\n\n\n\n\nStereo speakers \n\n\n\n\n\nStereo front speakers provide an immersive music and movie playback experience. To learn more, see Surface sound, volume, and audio accessories on Surface.com. \n\n\n\n\n",
            "score": 21.92,
            "id": 3,
            "source": "product-manual.pdf",
            "metadata": [],
            "context": {
                "isContextOnly": true,
                "prompts": [
                    {
                        "displayOrder": 0,
                        "qnaId": 4,
                        "qna": null,
                        "displayText": "Ports and connectors"
                    }
                ]
            }
        },
        {
            "questions": [
                "Use the sign-in screen"
            ],
            "answer": "**Use the sign-in screen**\n\n1.  \n\nTurn on or wake your Surface by pressing the power button. \n\n2.  \n\nSwipe up on the screen or tap a key on the keyboard. \n\n3.  \n\nIf you see your account name and account picture, enter your password and select the right arrow or press Enter on your keyboard. \n\n4.  \n\nIf you see a different account name, select your own account from the list at the left. Then enter your password and select the right arrow or press Enter on your keyboard. ",
            "score": 19.04,
            "id": 16,
            "source": "product-manual.pdf",
            "metadata": [],
            "context": {
                "isContextOnly": true,
                "prompts": []
            }
        }
    ]
}

Запрос к базе знаний с помощью идентификатора QnA Maker

Если вы создаете пользовательское приложение, то в ответе на первоначальный вопрос возвращаются все дальнейшие подсказки и связанные с ней qnaId. Теперь, когда у вас есть идентификатор, вы можете передать его в текст запроса дальнейшей подсказки. Если текст запроса содержит qnaId и объект контекста (который содержит предыдущие свойства QnA Maker), то GenerateAnswer вернет точный вопрос по идентификатору, а не будет использовать алгоритм ранжирования для поиска ответа по тексту вопроса.

Порядок отображения реализуется API Update

Отображаемый текст и порядок отображения, возвращаемые в ответе JSON, можно отредактировать с помощью API Update.

Добавление и удаление подсказок для многоэтапной беседы с помощью API Update

Добавить или удалить подсказки для многоэтапной беседы можно с помощью API Update QnA Maker. Запросы добавляются в массив promptsToAdd свойства context и массив promptsToDelete.

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

QnA Maker поддерживает управление версиями путем включения шагов многоэтапной беседы в экспортированный файл.

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