Тестирование и отладка с помощью эмулятора

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

Bot Framework Emulator — это классическое приложение, которое позволяет разработчикам ботов тестировать и отлаживать боты локально или удаленно. С помощью эмулятора вы можете общаться с ботом и проверять сообщения, которые он отправляет и получает. Эмулятор отображает сообщения так, как они будут выглядеть в интерфейсе веб-чата, и регистрирует запросы и ответы JSON при обмене сообщениями с ботом. Перед развертыванием бота в облаке запустите его локально и протестируйте с помощью эмулятора. Вы можете протестировать бота с помощью эмулятора, даже если вы еще не создали его с помощью Azure AI Служба Bot или настроили его для запуска в любых каналах.

Примечание.

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

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

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

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

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

Локальный запуск бота

Подключаемого к Bot Framework Emulator бота нужно сперва запустить локально. Это можно сделать с помощью Visual Studio, Visual Studio Code или командной строки. Чтобы запустить бота с помощью командной строки, сделайте следующее:

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

  • Запустите бота, выполнив следующую команду:

    dotnet run
    
  • Скопируйте номер порта в строке перед началом работы приложения. Нажмите клавиши CTRL+C, чтобы завершить работу.

    C# port number

На этом этапе бот должен запуститься локально.

Подключение к боту, работающему на локальном узле

Настройка параметров прокси

При разработке корпоративного прокси-сервера эмулятор будет использовать настроенные переменные HTTP_PROXY среды и HTTPS_PROXYуказать URL-адрес прокси-сервера для запросов HTTP и HTTPs соответственно.

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

Чтобы обойти HTTP_PROXY параметры и HTTPS_PROXY разрешить эмулятору подключаться localhost, на локальном компьютере необходимо определить следующую переменную среды:

NO_PROXY=localhost

Настройка эмулятора для проверки подлинности

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

Использование кода проверки входа

  1. Запустите эмулятор Bot Framework.
  2. В эмуляторе выберите Параметры (значок шестеренки) в левой области.
  3. Включите обход ngrok для локальных адресов.
  4. Включение использования кода проверки входа для OAuthCards.
  5. Выберите Сохранить.

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

Кроме того, вы можете выполнить описанные ниже действия.

Использование маркеров аутентификации

  1. Запустите эмулятор Bot Framework.
  2. В эмуляторе выберите Параметры (значок шестеренки) в левой области.
  3. Введите локальный путь к ngrok. Дополнительные сведения о ngrok см. в ngrok.
  4. Включите run ngrok при запуске эмулятора.
  5. Включите маркеры проверки подлинности версии 1.0.
  6. Выберите Сохранить.

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

Emulator startup window

Чтобы подключиться к боту, работающему локально, выберите "Открыть бот". Добавьте скопированный ранее номер порта в следующий URL-адрес и вставьте полученный URL-адрес в поле "URL-адрес бота":

http://localhost:<port number>/api/messages

Emulator open-a-bot dialog

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

Использование учетных данных бота

Открыв бот, задайте идентификатор приложения Майкрософт и пароль приложения Майкрософт, если бот выполняется с учетными данными. Если вы создали бот с помощью azure AI Служба Bot, учетные данные доступны в Служба приложений бота в разделе Параметры —> Конфигурация. Если вы не знаете значения, их можно удалить из локально запущенного файла конфигурации бота, а затем запустить бот в эмуляторе. Если бот не работает с этими параметрами, вам не нужно запускать эмулятор с параметрами.

При создании приложения поставщика удостоверений AD учитывайте следующее:

  • Если для поддерживаемого типа учетной записи задано однотенантное значение, если вы используете личную подписку вместо учетной записи Майкрософт, эмулятор выдает ошибку: идентификатор приложения Microsoft бота или пароль приложения Майкрософт является неверным.
  • В этом случае поддерживаемые типы учетных записей должны иметь значение Accounts в любом каталоге организации (любой каталог идентификатора Microsoft Entra — Multitenant) и личных учетных записей Майкрософт (например, Xbox).

Дополнительные сведения см. в статье "Создание приложения поставщика удостоверений Идентификатора Майкрософт" и регистрация нового приложения с помощью портал Azure.

Просмотр подробных действий сообщения с помощью инспектора

Отправьте боту сообщение и получите от него ответ. Сообщение можно щелкнуть в окне беседы, чтобы просмотреть необработанные действия JSON с помощью компонента INSPECTOR в правой части окна. При выборе сообщение станет желтым, и объект действия JSON будет отображаться слева от окна чата. Данные JSON включают метаданные ключа, в том числе идентификатор канала, тип действия, идентификатор беседы, текстовое сообщение, URL-адрес конечной точки и т. д. Вы можете проверить действия, отправленные пользователем, и действия бота отвечают.

Emulator message activity JSON

Совет

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

Проверка служб

Примечание.

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

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

Примечание.

Распознавание речи (LUIS) будет прекращен 1 октября 2025 года. Начиная с 1 апреля 2023 года вы не сможете создавать новые ресурсы LUIS. Новая версия распознавания речи теперь доступна как часть языка ИИ Azure.

Распознавание речи (CLU) — это обновленная версия LUIS. Дополнительные сведения о поддержке распознавания речи в пакете SDK Bot Framework см. в разделе "Распознавание естественного языка".

С помощью эмулятора можно также проверить ответы JSON от LUIS и QnA Maker. Для бота с подключенными языковыми службами в окне журнала в нижнем правом углу можно выбрать трассировку. Это новое средство также предоставляет функции для обновления языковых служб непосредственно из эмулятора.

LUIS Inspector

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

QnA Inspector

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

Вход в Azure

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

  1. Выберите файл, а затем войдите в Azure.

    Emulator sign in with Azure

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

    Emulator Azure sign-in success

Отключение сбора данных

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

  1. В эмуляторе выберите Параметры (значок шестеренки) в левой области.

    Emulator settings button

  2. В разделе "Сбор данных" отмените выбор справки по улучшению эмулятора, позволяя нам собирать данные об использовании.

  3. Выберите Сохранить.

Если вы измените свое мнение, вы можете повторно собирать данные позже.

Дополнительные ресурсы

Эмулятор Bot Framework — это решение с открытым исходным кодом. Вы можете принять участие в разработке, отправляя сведения об ошибках и предложения.

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

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

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