Отладка с помощью эмулятораDebug with the Emulator

применимо к: Пакет SDK v4APPLIES TO: SDK v4

Эмулятор Bot Framework — это классическое приложение, которое позволяет разработчикам локально или удаленно тестировать и отлаживать боты.The Bot Framework Emulator is a desktop application that allows bot developers to test and debug their bots, either locally or remotely. С помощью эмулятора вы можете общаться с программой-роботом и проверять сообщения, которые отправляет и получает Bot.Using the Emulator, you can chat with your bot and inspect the messages that your bot sends and receives. Эмулятор отображает сообщения в том виде, в котором они отображались в пользовательском интерфейсе веб-чата, и записывает запросы и ответы JSON при обмене сообщениями с помощью программы Bot.The Emulator displays messages as they would appear in a web chat UI and logs JSON requests and responses as you exchange messages with your bot. Перед развертыванием программы Bot в облаке запустите ее локально и протестируйте с помощью эмулятора.Before you deploy your bot to the cloud, run it locally and test it using the Emulator. Вы можете проверить программу-робота с помощью эмулятора, даже если вы еще не создали ее с помощью службы Azure Bot или не настроили ее для запуска на всех каналах.You can test your bot using the Emulator even if you have not yet created it with Azure Bot Service or configured it to run on any channels.

Предварительные требованияPrerequisites

Локальный запуск ботаRun a bot locally

Подключаемого к Bot Framework Emulator бота нужно сперва запустить локально.Before connecting your bot to the Bot Framework Emulator, you need to run your bot locally. Это можно сделать с помощью Visual Studio, Visual Studio Code или командной строки.You can use Visual Studio or Visual Studio Code to run your bot, or use command line. Чтобы запустить бота с помощью командной строки, сделайте следующее:To run a bot using command line, do the following:

  • В командной строке измените каталог на каталог проекта ботов.Go to the command prompt and change directory to your bot project directory.

  • Запустите бота, выполнив следующую команду:Start the bot by running the following command:

    dotnet run
    
  • Скопируйте номер порта в строке перед текстом Application started. Press CTRL+C to shut down.Copy the port number in the line before Application started. Press CTRL+C to shut down.

    Номер порта — C#

На этом этапе бот должен запуститься локально.At this point, your bot should be running locally.

Подключение к боту, работающему на локальном узлеConnect to a bot running on localhost

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

При разработке за корпоративным прокси-сервером эмулятор будет использовать настроенные переменные среды HTTP_PROXY и HTTPS_PROXY , указывающие маршрут URL-адреса прокси-сервера для запросов HTTP и HTTPS соответственно.When you are developing behind a corporate proxy, the Emulator will use the configured environment variables HTTP_PROXY and HTTPS_PROXY, which specify the proxy URL route for HTTP and HTTPs requests respectively.

При подключении к программе-роботу, работающей на localhost , эмулятор сначала попытается выполнить маршрутизацию через прокси, прежде чем подключиться к localhost .If you are connecting to a bot running on localhost, the Emulator will first try to route through the proxy before connecting to localhost. Как правило, прокси-сервер блокирует подключение, если не указано, что его следует обходить localhost .Typically, the proxy will block the connection unless you specify that it should be bypassed for localhost.

Чтобы обойти HTTP_PROXY HTTPS_PROXY Параметры и и разрешить эмулятору подключаться к localhost , на локальном компьютере необходимо определить следующую переменную среды:In order to bypass the HTTP_PROXY and HTTPS_PROXY settings and allow the Emulator to connect to localhost, on your local machine you must define the following environment variable :

NO_PROXY=localhost

Настройка эмулятора для проверки подлинностиConfigure the Emulator for authentication

Если для Bot требуется проверка подлинности, то при отображении диалогового окна входа необходимо настроить эмулятор, как показано ниже.If a bot requires authentication, displaying a login dialog, you must configure the Emulator as shown below.

Использование кода проверки входа в системуUsing sign-in verification code

  1. Запустите эмулятор Bot Framework.Start the Emulator.
  2. В эмуляторе щелкните значок шестеренки в левом нижнем углу или вкладку Параметры эмулятора в правом верхнем углу.In the Emulator, click the gear icon in the bottom left, or the Emulator Settings tab in the upper right.
  3. Установите флажок Use a sign-in verification code for OAuthCards (Использовать код проверки входа в систему для OAuthCards)Check the box by Use a sign-in verification code for OAuthCards.
  4. Установите флажок Bypass ngrok for local address (Обходить ngrok для локального адреса).Check the box by Bypass ngrok for local address
  5. Нажмите кнопку Сохранить.Click the Save button.

При нажатии кнопки входа в боте будет создан код проверки.When you click the login button displayed by the bot, a validation code will be generated. Чтобы пройти аутентификацию, введите этот код в поле чата бота.You wil enter the code in the bot input chat box for the authentication to take place. После этого можно выполнять разрешенные операции.After that you can perform the allowed operations.

Кроме того, вы можете выполнить описанные ниже действия.Alternatively, you can perform the steps described below.

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

  1. Запустите эмулятор Bot Framework.Start the Emulator.
  2. В эмуляторе щелкните значок шестеренки в левом нижнем углу или вкладку Параметры эмулятора в правом верхнем углу.In the Emulator, click the gear icon in the bottom left, or the Emulator Settings tab in the upper right.
  3. Установите флажок Use version1.0 authentication tokens (Использовать маркеры аутентификации версии 1.0).Check the box by Use version1.0 authentication tokens.
  4. Введите локальный путь к средству ngrok.Enter the local path to the ngrok tool. См. дополнительные сведения о ngrok.For more the tool information, see ngrok.
  5. Установите флажок Run ngrok when the Emulator starts up (Запустить ngrok при запуске эмулятора).Check the box by Run ngrok when the Emulator starts up.
  6. Нажмите кнопку Сохранить.Click the Save button.

Когда вы нажмете кнопку входа в боте, вам будет предложено ввести свои учетные данные.When you click the login button displayed by the bot, you will be asked to enter your credentials. Будет создан маркер аутентификации.An authentication token is generated. После этого можно выполнять разрешенные операции.After that you can perform the allowed operations.

Окно запуска эмулятора

Чтобы подключиться к запущенному локально боту, щелкните Открыть бота.To connect to a bot running locally and click Open bot. Добавьте скопированный ранее номер порта в следующий URL-адрес и вставьте полученный URL-адрес в поле "URL-адрес бота":Add the port number your copied earlier into the following URL and paste the updated URL in the Bot URL bar:

http://localhost:номер_порта/api/messageshttp://localhost:port number/api/messages

Диалоговое окно эмулятора Open-a-Bot

Если бот выполняется с учетными данными учетной записи Майкрософт (MSA), введите эти учетные данные.If your bot is running with Microsoft Account (MSA) credentials, enter these credentials too.

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

Открыв бот, задайте идентификатор приложения Майкрософт и пароль приложения Майкрософт, если бот выполняется с учетными данными.When you open the bot, set the Microsoft App ID and Microsoft App password if your bot is running with credentials. Если вы создали бот с помощью службы Azure Bot, учетные данные доступны в Службе приложений бота в разделе Параметры -> Конфигурация.If you created your bot with the Azure Bot Service, the credentials are available on the bot's App Service, under the Settings -> Configuration section. Если вы не знаете значения, можно удалить их из файла конфигурации локально запущенного бота, а затем запустить бот в эмуляторе.If you do not know the values, you can remove those from the locally running bot's configuration file, then run the bot in the Emulator. Если программа-робот не работает с этими параметрами, вам не нужно запускать эмулятор с параметрами.If the bot isn't running with these settings, you don't need to run the Emulator with the settings either.

При создании приложения поставщика удостоверений AD учитывайте следующее:When creating an AD identity provider application, remember the following:

  • Если для поддерживаемых типов учетных записей задано значение "один клиент", то при использовании личной подписки вместо учетная запись Майкрософт эмулятор выдаст ошибку: идентификатор приложения-робота или пароль Microsoft App не указаны правильно.When the supported account types is set to single tenant, if you use a personal subscription instead of a Microsoft account, the Emulator would issue the error: The bot's Microsoft App ID or Microsoft App Password is incorrect..
  • В этом случае для поддерживаемых типов учетных записей нужно указать Учетные записи в любом каталоге организации (любой каталог Azure AD — мультитенантный) и персональные учетные записи Майкрософт (например, Xbox) .In this case, the supported account types must be set to Accounts in any organizational directory (Any Azure AD directory - Multitenant) and personal Microsoft accounts (e.g. Xbox).

Дополнительные сведения см. в статьях Создание приложения поставщика удостоверений Azure AD и Регистрация нового приложения с помощью портал Azure.For more information, see Create an Azure AD identity provider application and Register a new application using the Azure portal.

Просмотр действий с сообщениями с помощью инспектораView detailed Message Activity with the Inspector

Отправьте боту сообщение и получите от него ответ.Send a message to your bot and the bot should respond back. Сообщение можно щелкнуть в окне беседы, чтобы просмотреть необработанные действия JSON с помощью компонента для проверки в правой части окна.You can click on the message bubble within the conversation window and inspect the raw JSON activity using the INSPECTOR feature to the right side of the window. При выборе сообщение станет желтым, и объект действия JSON будет отображаться слева от окна чата.When selected, the message bubble will turn yellow and the activity JSON object will be displayed to the left of the chat window. Данные JSON включают метаданные ключа, в том числе идентификатор канала, тип действия, идентификатор беседы, текстовое сообщение, URL-адрес конечной точки и т. д.The JSON information includes key metadata, including the channel ID, activity type, conversation ID, the text message, endpoint URL, and so on. Можно проверить действия, отправленные пользователем, а также действия, с помощью которых бот отвечает.You can inspect activities sent from the user, as well as activities the bot responds with.

Действия с сообщениями эмулятора

Совет

Вы можете отлаживать изменения состояния в подключенном к каналу боте, добавив в него проверяющее ПО промежуточного слоя.You can debug state changes in a bot connected to a channel by adding Inspection Middleware to the bot.

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

С помощью эмулятора v4 можно также проверить ответы JSON из LUIS и QnA.With the v4 Emulator you can also inspect the JSON responses from LUIS and QnA. Для бота с подключенными языковыми службами в окне журнала в нижнем правом углу можно выбрать трассировку.Using a bot with a connected language service, you can select trace in the LOG window to the bottom right. Это новое средство также предоставляет функции для обновления языковых служб непосредственно из эмулятора.This new tool also provides features to update your language services directly from the Emulator.

Инспектор LUIS

Если подключена служба LUIS, вы заметите, что в ссылке трассировки указана трассировка Luis.With a connected LUIS service, you'll notice that the trace link specifies Luis Trace. Выбрав ее, вы увидите необработанный ответ от службы LUIS, включающий намерения, сущности и соответствующие оценки.When selected, you'll see the raw response from your LUIS service, which includes intents, entities along with their specified scores. Также имеется возможность переназначить намерения для фраз пользователей.You also have the option to re-assign intents for your user utterances.

Инспектор QnA

Если подключена служба QnA, журнал отобразит трассировку QnA. Выбрав ее, можно выполнить предварительный просмотр пары "вопрос-ответ", связанной с этим действием, наряду с оценкой достоверности.With a connected QnA service, the log will display QnA Trace, and when selected you can preview the question and answer pair associated with that activity, along with a confidence score. Здесь можно добавить выражения альтернативных вопросов для ответа.From here, you can add alternative question phrasing for an answer.

Вход в AzureLogin to Azure

Для входа в учетную запись Azure можно использовать Эмулятор.You can use Emulator to login in to your Azure account. Это особенно полезно для добавления служб, от которых зависит ваш бот, и управления ими.This is particularly helpful for you to add and manage services your bot depends on. Войдите в Azure, сделав следующее:Log into Azure by following these steps:

  1. Щелкните файл — > войти с помощью Azure.Click on File -> Sign in with Azure

    Вход в эмулятор с помощью Azure

  2. На экране приветствия щелкните Вход с помощью учетной записи Azure.On the welcome screen click on Sign in with your Azure account. При необходимости эмулятор может быть в курсе перезапуска приложений эмулятора.You can optionally have Emulator keep you signed in across Emulator application restarts.

    Успешный вход в эмулятор Azure

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

Если вы решите, что Эмулятор не должен далее собирать данные об использовании, сбор данных можно отключить следующим образом.If you decide that you no longer want to allow the Emulator to collect usage data, you can easily disable data collection by following these steps:

  1. Перейдите на страницу параметров Эмулятора, нажав кнопку параметров (с изображением шестеренки) на панели навигации слева.Navigate to the Emulator's settings page by clicking on the Settings button (gear icon) in the nav bar on the left side.

    Кнопка параметров эмулятора

  2. Снимите флажок Help improve the Emulator by allowing us to collect usage data (Помогите нам улучшить эмулятор, разрешив собирать данные об использовании) в разделе Data Collection (Сбор данных).Uncheck the checkbox labeled Help improve the Emulator by allowing us to collect usage data under the Data Collection section.

    Параметры эмулятора, сбор данных

  3. Нажмите кнопку "Сохранить".Click the "Save" button.

    Параметры эмулятора, кнопка "Сохранить"

Если вы передумаете, его можно снова включить, установив флажок.If you change your mind, you can always enable it by re-checking the checkbox.

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

Эмулятор Bot Framework — это решение с открытым исходным кодом.The Bot Framework Emulator is open source. Вы можете принять участие в разработке, отправляя сведения об ошибках и предложения.You can contribute to the development and submit bugs and suggestions.

Подробные сведения см. в статье об устранении общих проблем и других статья об устранении неполадок в этом разделе.For troubleshooting, see troubleshoot general problems and the other troubleshooting articles in that section.

Дальнейшие действияNext steps

Воспользуйтесь проверяющим ПО промежуточного слоя для отладки подключенного к каналу бота.Use inspection middleware to debug a bot connected to a channel.