使用模擬器測試及偵錯

適用於: SDK v4

Bot Framework 模擬器是桌面應用程式,可讓 Bot 開發人員在本機或遠端測試 Bot 並進行偵錯。 使用此模擬器時,您能與您的 Bot 聊天,並檢查您的 Bot 所傳送及接收的訊息。 Bot Framework Emulator 會顯示在 Web 聊天 UI 中出現的相同訊息,並在您與聊天機器人交換訊息時記錄 JSON 要求和回應。 將您的聊天機器人部署至雲端之前,請先在本機使用 Bot Framework Emulator 加以測試。 即使您尚未 使用 Azure AI Bot Service 建立 Bot,或將其設定為在任何通道上執行,您仍可使用模擬器來測試 Bot。

注意

Bot Framework JavaScript、C# 和 Python SDK 將會繼續受到支援,不過,Java SDK 即將淘汰,最終長期支援將於 2023 年 11 月結束。

使用 Java SDK 建置的現有 Bot 將繼續運作。

針對新的 Bot 建置,請考慮使用 Power Virtual Agents ,並閱讀 選擇正確的聊天機器人解決方案

如需詳細資訊,請參閱 Bot 建置的未來。

必要條件

在本機執行 Bot

將 Bot 連線到 Bot Framework 模擬器之前,您必須在本機執行 Bot。 您可以使用 Visual Studio 或 Visual Studio Code 來執行 Bot,或使用命令行。 若要使用命令列執行 Bot,請執行下列動作:

  • 移至命令提示字元,並將目錄變更為 Bot 項目目錄。

  • 執行下列命令以啟動 Bot:

    dotnet run
    
  • 在應用程式啟動之前 ,複製行中的埠號碼。按 CTRL+C 關閉。

    C# 埠號碼

此時,您的 Bot 應該會在本機執行。

連線 至在localhost上執行的 Bot

設定 Proxy 設定

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

如果您要連線到上執行的 localhostBot,模擬器會先嘗試透過 Proxy 路由,然後再連線到 localhost。 一般而言,除非您指定應該略過 localhost連線,否則 Proxy 會封鎖連線。

若要略過 HTTP_PROXYHTTPS_PROXY 設定並允許模擬器連線到 localhost,您必須在本機電腦上定義下列環境變數:

NO_PROXY=localhost

設定模擬器以進行驗證

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

使用登入驗證碼

  1. 啟動模擬器。
  2. 在模擬器中,選取左窗格中 設定(齒輪圖示)。
  3. 啟用 本機位址的略過 ngrok。
  4. 啟用 [使用 OAuthCards 的登入驗證碼]。
  5. 選取 [儲存]。

當您選取 Bot 顯示的登入按鈕時,會產生驗證碼。 您將在 Bot 輸入聊天方塊中輸入程式碼,以進行驗證。 之後,您可以執行允許的作業。

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

使用驗證令牌

  1. 啟動模擬器。
  2. 在模擬器中,選取左窗格中 設定 (齒輪圖示)。
  3. 輸入 ngrok 的本機路徑。 如需 ngrok 的詳細資訊,請參閱 ngrok
  4. 在模擬器啟動時啟用執行 ngrok。
  5. 啟用 使用 1.0 版驗證令牌
  6. 選取 [儲存]。

當您選取 Bot 顯示的登入按鈕時,系統會要求您輸入認證。 會產生驗證令牌。 之後,您可以執行允許的作業。

模擬器啟動視窗

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

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

模擬器 open-a-bot 對話框

如果您的 Bot 是以 Microsoft 帳戶 (MSA) 認證執行,也請輸入這些認證。

使用 Bot 認證

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

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

  • 當支援的帳戶類型設定為單一租使用者時,如果您使用個人訂用帳戶而非 Microsoft 帳戶,模擬器會發出錯誤: Bot 的 Microsoft 應用程式識別碼或 Microsoft 應用程式密碼不正確。
  • 在此情況下,支援的帳戶類型必須設定為任何組織目錄中的帳戶(任何 Microsoft Entra ID 目錄 - 多租使用者)和個人 Microsoft 帳戶(例如 Xbox)。

如需詳細資訊,請參閱建立 Microsoft Entra ID 識別提供者應用程式和使用 Azure 入口網站 註冊新的應用程式。

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

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

模擬器訊息活動 JSON

提示

您可以將檢查中間件新增至 Bot,以偵錯連線至通道的 Bot 狀態變更。

檢查服務

注意

Azure AI QnA Maker 將於 2025 年 3 月 31 日淘汰。 從 2022 年 10 月起,您將無法建立新的 QnA Maker 資源或知識庫。 較新版的問題和解答功能現在隨附於 Azure AI 語言。

自定義問題解答是 Azure AI 語言的一項功能,是 QnA Maker 服務的更新版本。 如需 Bot Framework SDK 中問答支援的詳細資訊,請參閱 自然語言理解

注意

Language Understanding (LUIS) 將於 2025 年 10 月 1 日淘汰。 從 2023 年 4 月 1 日起,您將無法建立新的 LUIS 資源。 新版的語言理解現在已提供作為 Azure AI 語言的一部分。

對話式語言理解(CLU)是 Azure AI 語言的一項功能,是 LUIS 的更新版本。 如需 Bot Framework SDK 中語言理解支援的詳細資訊,請參閱 自然語言理解

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

LUIS 偵測器

使用連線的 LUIS 服務,追蹤連結會 指定 Luis Trace。 選取時,會顯示 LUIS 服務的原始回應,其中包含意圖和實體,以及其指定的分數。 您可以重新指派使用者語句的意圖。

QnA 偵測器

使用連線的 QnA Maker 服務,記錄會顯示 QnA 追蹤。 選取時,您可以預覽與該活動相關聯的問答組,以及信賴分數。 在此處,您可以新增答案的替代問題用語。

登入 Azure

您可以使用模擬器登入您的 Azure 帳戶。 這可協助您新增和管理 Bot 相依的服務。 若要登入:

  1. 選取 [ 檔案],然後 選取 [使用 Azure 登入]。

    使用 Azure 登入模擬器

  2. 在 [ 歡迎使用 ] 畫面上,選取 [使用您的 Azure 帳戶登入]。 您可以選擇性地讓模擬器在模擬器應用程式重新啟動時持續登入。

    模擬器 Azure 登入成功

停用數據收集

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

  1. 在模擬器中,選取左窗格中 設定 (齒輪圖示)。

    模擬器設定按鈕

  2. 在 [數據收集] 下,取消選取 [協助改善模擬器],方法是允許我們收集使用量數據

  3. 選取 [儲存]。

如果您改變心意,您可以稍後重新建立數據收集。

其他資源

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

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

後續步驟

使用檢查中間件對連線至通道的 Bot 進行偵錯。