使用模擬器進行偵錯工具

適用于: SDK v4

Bot Framework Emulator 是桌面應用程式,可讓 bot 開發人員在本機或遠端測試和偵測 bot。 您可以使用模擬器與 bot 聊天,並檢查 bot 傳送和接收的訊息。 模擬器會顯示顯示在網路聊天 UI 中的訊息,並在您與 bot 交換訊息時記錄 JSON 要求和回應。 將您的 bot 部署至雲端之前,請先在本機執行,並使用模擬器進行測試。 即使您還沒有使用 Azure Bot 服務 建立 bot,或將它設定為在任何通道上執行,您也可以使用模擬器來測試您的 bot。

Prerequisites

在本機執行聊天機器人

在將聊天機器人連線至 Bot Framework Emulator 之前,您必須先在本機執行聊天機器人。 您可以使用 Visual Studio 或 Visual Studio Code 來執行聊天機器人,也可以使用命令列。 若要使用命令列來執行聊天機器人,請執行下列動作:

  • 移至命令提示字元,並將目錄變更為聊天機器人的專案目錄。

  • 執行下列命令來啟動聊天機器人:

    dotnet run
    
  • 複製 Application started. Press CTRL+C to shut down. 前一行中的連接埠號碼。

    C# 連接埠號碼

至此,聊天機器人應該正在本機上執行。

連線至執行於本機主機的 Bot

進行 Proxy 設定

當您在公司 proxy 後方進行開發時,模擬器會使用已設定的環境變數 HTTP_PROXYHTTPS_PROXY ,分別指定 HTTP 和 HTTPs 要求的 proxy URL 路由。

如果您要連接到上執行的 bot localhost ,模擬器會先嘗試透過 proxy 路由,再連接到 localhost 。 Proxy 通常會封鎖連線,除非您指定應該略過此連接 localhost

為了略過 HTTP_PROXY 和設定, HTTPS_PROXY 並允許模擬器連接到 localhost ,您必須在本機電腦上定義下列環境變數:

NO_PROXY=localhost

設定模擬器以進行驗證

如果 bot 需要驗證,則顯示登入對話方塊,您必須設定模擬器,如下所示。

使用登入驗證碼

  1. 啟動模擬器。
  2. 在模擬器中,按一下左下方的齒輪圖示,或右上方的 [ 模擬器設定 ] 索引標籤。
  3. 勾選 [使用 Oauthcard 的登入驗證碼] 方塊。
  4. 勾選 [略過本機位址的 ngrok] 方塊。
  5. 按一下 [儲存] 按鈕。

當您按一下 Bot 所顯示的登入按鈕時,將會產生驗證碼。 您將在 [bot 輸入聊天] 方塊中輸入驗證碼以進行驗證。 之後,您就可以執行允許的作業。

或者,您可以執行以下所述的步驟。

使用驗證權杖

  1. 啟動模擬器。
  2. 在模擬器中,按一下左下方的齒輪圖示,或右上方的 [ 模擬器設定 ] 索引標籤。
  3. 勾選 [使用1.0 版驗證權杖] 方塊。
  4. 輸入 ngrok 工具的本機路徑。 如需工具詳細資訊,請參閱 ngrok
  5. 勾選 [在模擬器啟動時執行 ngrok] 方塊。
  6. 按一下 [儲存] 按鈕。

當您按一下 Bot 所顯示的登入按鈕時,系統會要求您輸入認證。 驗證權杖隨即產生。 之後,您就可以執行允許的作業。

模擬器啟動視窗

若要連線到在本機執行的 bot,請選取 [ 開啟 bot]。 將稍早複製的連接埠號碼新增至下列 URL,並在 [Bot URL] 列中貼上更新後的 URL:

http://localhost:埠號碼/api/messages

模擬器開啟-bot 對話方塊

如果您的聊天機器人搭配 Microsoft 帳戶 (MSA) 認證執行,請也輸入這些認證。

使用聊天機器人認證

當您開啟聊天機器人時,請設定 Microsoft 應用程式識別碼Microsoft 應用程式密碼 (如果您的聊天機器人使用這些認證來執行)。 如果您使用 Azure Bot Service 建立了聊天機器人,則可於聊天機器人的 App Service 上 (在 [設定] -> [組態] 區段底下) 取得這些認證。 如果您不知道這些值,則可以從本機執行的聊天機器人組態檔中移除這些值,然後在模擬器中執行聊天機器人。 如果 bot 未以這些設定執行,您就不需要使用這些設定來執行模擬器。

建立 AD 識別提供者應用程式時,請記住下列事項:

  • 當支援的帳戶類型設定為單一租使用者時,如果您使用個人訂用帳戶,而不是 Microsoft 帳戶,則模擬器會發出錯誤: bot 的 Microsoft 應用程式識別碼或 Microsoft 應用程式密碼不正確。
  • 若發生這種情況,支援的帳戶類型必須設為「任何組織目錄中的帳戶 (任何 Azure AD 目錄 - 多租用戶) 和個人 Microsoft 帳戶 (例如 Xbox)」 。

如需詳細資訊,請參閱 建立 Azure AD 身分識別提供者應用程式 ,以及 使用 Azure 入口網站註冊新的應用程式

使用偵測器檢視詳細訊息活動

傳送訊息給聊天機器人,而聊天機器人應該會有所回應。 您可以按一下對話視窗內的訊息泡泡,並使用視窗右側的 偵測器 功能檢查原始 JSON 活動。 訊息泡泡經選取後會變成黃色,且活動 JSON 物件將會顯示在聊天視窗左側。 此 JSON 資訊包含主要中繼資料,包括通道識別碼、活動類型、交談識別碼、文字訊息,端點 URL 等。 您可以檢查使用者所傳送的活動,以及 Bot 所回應的活動。

模擬器訊息活動

提示

您可以藉由在聊天機器人中新增檢查中介軟體,來對連線至通道的聊天機器人進行狀態變更的偵錯。

檢查服務

使用 v4 模擬器時,您也可以檢查來自 LUIS 和 QnA 的 JSON 回應。 使用已連接語言服務的 Bot 時,您可以在右下方選取 [記錄] 視窗中的 [追蹤] 。 這種新工具也提供直接從模擬器更新語言服務的功能。

LUIS 偵測器

在已連接 LUIS 服務的情況下,您會發現追蹤連結指定了 Luis 追蹤。 加以選取後,您會看到 LUIS 服務的原始回應,其中包含意圖、實體及其指定的分數。 您也可以選擇重新指派使用者語句的意圖。

QnA 偵測器

在已連接 QnA 服務的情況下,記錄將會顯示 QnA 追蹤,若加以選取,您將可預覽與該活動相關聯的問答組和信賴分數。 在此處,您可以新增答案的替代問題用語。

登入 Azure

您可以使用模擬器來登入您的 Azure 帳戶。 這特別適合用來讓您新增及管理 Bot 所依賴的服務。 遵循下列步驟來登入 Azure:

  1. 按一下 [檔案-> 使用 Azure 登入]

    使用 Azure 的模擬器登入

  2. 在 [歡迎使用] 畫面上,按一下 [使用您的 Azure 帳戶登入]。 您可以選擇性地讓模擬器保持登入跨模擬器應用程式重新開機。

    模擬器 Azure 登入成功

停用資料收集

如果您決定不再允許模擬器收集使用資料,您可以依照下列步驟來輕鬆地停用資料收集:

  1. 按一下左側瀏覽列中的 [設定] 按鈕 (齒輪圖示),瀏覽至模擬器的 [設定] 頁面。

    模擬器設定按鈕

  2. 在 [資料收集] 區段底下,取消選取標示 [允許我們收集使用資料,以協助改善模擬器] 的核取方塊。

    模擬器設定,資料收集

  3. 按一下 [儲存] 按鈕。

    模擬器設定,儲存按鈕

如果您改變心意,一律可以藉由重新選取核取方塊來將其啟用。

其他資源

Bot Framework 模擬器是開放原始碼。 您可以參與開發,並提交 Bug 和建議

如需進行疑難排解,請參閱針對一般問題疑難排解以及該區段中的其他疑難排解文章。

後續步驟

使用檢查中介軟體來對連線至通道的聊天機器人進行偵錯。