設計知識 Bot

適用于: SDK v4

您可以設計幾乎涵蓋任何主題的知識 Bot。 不論知識 Bot 的設計使用案例為何,其基本目標一律相同:尋找並傳回使用者透過搜尋資料主體所要求的資訊。

例如,一個知識 Bot 可能會回答有關「此會議中有哪些 Bot 事件?」、「下一個 Reggae show 的時機?」或「神秘 Tame Impala?另一個可能會回答 IT 相關問題,例如「如何?更新我的作業系統?」或「我要在哪裡重設密碼?」。 然而,另一個可能回答有關連絡人的問題,例如「神秘是 John Doe? 或 」Jane Doe 的電子郵件地址是什麼?

本文涵蓋您可以新增至 Bot 的一些 AI 功能,例如讓使用者搜尋資訊、詢問問題或與資訊互動。 Bot Framework SDK 支援哪些 Azure AI 服務,請參閱 自然語言理解

提示

Azure AI 服務包含不斷演進的技術。 本文說明較新的和較舊的功能。

關於信賴分數

某些功能可讓 Bot 從知識庫或語言模型傳回信息,以符合使用者問題或查詢。

例如,如果使用者向音樂知識 Bot 詢問有關 「impala」 的資訊(而不是樂隊的完整名稱 「Tame Impala」),Bot 可以回應最有可能與該輸入相關的資訊。 同樣地,語言理解功能可以使用語言模型,從使用者輸入擷取可能 意圖 。 例如,如果使用者要求旅行社 Bot「預訂房間三天」,Bot 可能會擷取「保留房間」意圖,然後收集詳細資料。

搜尋和意圖辨識都會傳回信賴分數,這表示引擎具有特定結果正確信賴等級。 使用信賴分數來排序結果,或根據答案的整體信賴度,以不同的方式回應。

注意

當您將不同的服務或功能類型組合在一起時,請測試每個工具的輸入,以判斷每個模型的臨界值分數。 服務和功能會使用不同的評分準則,因此跨這些工具產生的分數無法直接比較。 例如,QnA Maker 服務使用信賴範圍 0 到 100,而問答功能則使用 0.0 到 1.0 的範圍。

  • 如果信賴度很高,您的 Bot 可能會回應「以下是最符合您搜尋的事件」或「我可以協助您保留會議室」,並提供最上層答案或開始詢問後續問題。
  • 如果信賴度很低,您的 Bot 可能會回應「Hmm...」,您是否正在尋找任何這些事件?或「我可以協助您處理下列事項」,並提供可能答案或選項的清單。

篩選主題

您可以設計知識 Bot 來協助使用者縮小搜尋範圍並精簡搜尋。 在交談中,Bot 可以詢問厘清問題、呈現選項,以及驗證結果,以基本搜尋無法的方式。

例如,事件 Bot 可以藉由詢問一系列問題,找出使用者感興趣的事件種類。 請考慮下列交換:

  1. 使用者,「事件」。
  2. Bot,「您對此有何興趣? 音樂,喜劇,電影...。
  3. 使用者「音樂」。
  4. Bot,「您感興趣的音樂類型為何? 任何,搖滾/流行,嘻哈/說唱,...。
  5. 使用者,「Rock/Pop」。
  6. Bot,「您想要看到搖滾/流行哪一天? 星期五、星期六、星期日、任何」。
  7. 使用者,「星期六」。
  8. Bot,「以下是星期六的搖滾/流行節目:」,其中已找到的節目清單。

藉由在每一個步驟中處理使用者的輸入,並呈現相關選項,Bot 會將使用者引導至他們正在搜尋的資訊。 Bot 傳遞該資訊之後,也可以提供未來尋找類似資訊的更有效率方式的指引。

順便說一句,您也可以只輸入 「Rock friday」 或依名稱搜尋活動。

如需相關 Azure 服務的相關資訊,請參閱 自然語言理解 概念文章中的 搜尋

回答問題

您可以設計知識 Bot 來回答常見問題。 支援問答功能的服務通常可讓您或 Bot:

  • 管理和定型知識庫。
  • 將資訊匯入知識庫,例如從資料檔案或網頁。
  • 猜猜哪一個答案最能對應到使用者的問題。
  • 詢問使用者後續問題,以協助找出他們正在尋找的答案。

如需相關 Azure 服務的相關資訊,請參閱 自然語言理解 概念一文中的 問題和解答

解譯意圖

某些知識 Bot 需要自然語言處理 (NLP) 功能,以便分析使用者的訊息,以判斷使用者的意圖和其他重要資訊。

例如,在音樂播放 Bot 中,使用者可能會訊息「播放 Reggae」、「播放 Bob Marley」或「播放一個愛」。 您可以定型語言模型,將每則訊息對應至意圖 「playMusic」,而不需使用每個演出者、內容類型和歌曲名稱進行定型。

您的語言模型可能無法理解要播放的專案、 實體 、是內容類型、演出者或歌曲。 不過,您的 Bot 可以使用這項資訊搜尋該實體,然後從該處繼續進行。

如需相關 Azure 服務的相關資訊,請參閱 自然語言理解概念文章中的 語言理解

整合多個功能

每個 NLP 功能都是其本身的強大工具。 不過,您的 Bot 可以結合這些功能和其他功能,為使用者提供更流暢且自然的體驗。 使用信賴分數來判斷哪一個功能最能對應至使用者的訊息,並在最不明確的相符專案時詢問後續問題。

例如,這類 Bot 可以讓使用者:

  • 尋找他們有興趣參加的節目。
  • 取得演出者、場地和活動的相關資訊。
  • 購買票證或註冊未來事件的通知。

如需相關 Azure 服務的相關資訊,請參閱 自然語言理解 概念一文中的 多個功能

探索範例

Bot Framework 範例 存放庫有幾個範例 Bot 示範語言理解功能:

範例 範例名稱 描述
11 QnA Maker (簡單) 使用 QnA Maker 回答一系列 單回合 交談的問題。
13 核心 Bot 使用 LUIS 解譯使用者的意圖。
14 具有分派的 NLP 使用 Orchestrator 將使用者訊息分派至 LUIS 或 QnA Maker。
49 QnA Maker (進階) 在 QnA Maker 中使用多回合和主動式學習功能回答問題。

注意

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 中語言理解支援的詳細資訊,請參閱 自然語言理解

適用于 .NET 的 Azure SDK 和 適用于 Python 的 Azure SDK 存放庫也有一些範例:

功能 範例讀我檔案
問題解答 C# Python
對話式語言理解,協調流程工作流程 C# Python