使用 Azure AI 服務與自然語言處理 (NLP) 來擴充機器人交談
注意
QnA Maker 服務即將於 2025 年 3 月 31 日淘汰。 較新版的問題和解答功能現在隨附於 Azure AI 語言。 如需瞭解語言服務內的問題解答功能,請參閱問題解答。 從 2022 年 10 月 1 日開始,您將無法建立新的 QnA Maker 資源。 如需將現有 QnA Maker 知識庫移轉至問題解答的相關資訊,請參閱移轉指南。
Azure AI 服務提供兩種自然語言處理服務:Language Understanding 和 QnA Maker,這兩者各有不同用途。 了解使用每項服務的時機及彼此之間如何互補。
自然語言處理 (NLP) 允許用戶端應用程式 (例如聊天機器人) 使用自然語言來與使用者一同工作。 使用者可輸入句子或片語。 使用者的文字可能會有錯誤的文法、拼字和標點符號。 Azure AI 服務 無論如何都能逐步處理使用者的句子,並傳回聊天機器人所需的資訊來協助使用者。
具有 NLP 的 Azure AI 服務
Language Understanding (LUIS) 和 QnA Maker 均提供 NLP。 用戶端應用程式會提交自然語言文字。 此服務會取得文字、加以處理,並傳回結果。
使用每個服務的時機
Language Understanding (LUIS) 和 QnA Maker 可解決不同的問題。 LUIS 會判斷使用者文字的意圖 (稱為表達),而 QnA Maker 會判斷使用者文字的答案 (稱為查詢)。
為了挑選正確的服務,您必須了解來自用戶端應用程式的使用者文字,以及用戶端應用程式需要從 Azure AI 服務取得的資訊。
如果您的聊天機器人收到文字 How do I get to the Human Resources building on the Seattle North campus?
,請使用以下圖表來了解每項服務如何處理文字。
服務 | 用戶端應用程式判斷 |
---|---|
LUIS | 判斷使用者對文字的意向 - 服務不會傳回問題的答案。 例如,此文字會分類為符合 FindLocation 意圖。 |
QnA Maker | 從自訂知識庫傳回問題的答案。 例如,此文字會判斷為具有 Get on the #9 bus and get off at Franklin street 靜態文字答案的問題。 |
何時使用 LUIS?
當您需要知道聊天機器人在處理過程中使用該語句的意圖時,請使用 LUIS。 使用範例文字 How do I get to the Human Resources building on the Seattle North campus?
繼續,當您知道使用者的意向是尋找位置之後,就可以將有關表達的詳細資料 (利用實體提取出來) 傳遞到另一個服務 (例如運輸伺服器) 來取得答案。
您不需要合併 LUIS 和 QnA Maker 來判斷意圖。
如果聊天機器人需要根據意向和實體 (使用 LUIS) 來處理文字,以及尋找特定的靜態文字答案 (使用 QnA Maker),您可能要針對此表達合併這兩個服務。
何時使用 QnA Maker?
當您有答案的靜態知識庫時,請使用 QnA Maker。 此知識庫是依據需求所自訂的,且您已使用 PDF 和 URL 等文件建置完成。
使用範例表達 How do I get to the Human Resources building on the Seattle North campus?
繼續,將文字當作查詢傳送至已發佈的 QnA Maker 服務,並獲得最佳答案。
您不需要合併 LUIS 和 QnA Maker 來判斷問題的答案。
如果聊天機器人需要根據意向和實體 (使用 LUIS) 來處理文字,以及尋找答案 (使用 QnA Maker),您可能要針對此表達合併這兩個服務。
當知識庫未完成時使用這兩個服務
如果您正在建置 QnA Maker 知識庫,但知道主體網域正在變更 (例如及時資訊),您就能合併 LUIS 和 QnA Maker 服務。 這可讓您使用知識庫中的資訊,但也可以使用 LUIS 來判斷使用者的意向。 一旦用戶端應用程式具有意向,就可以要求來自另一個來源的相關資訊。
您的用戶端應用程式需要監視 LUIS 和 QnA Maker 回應來獲取分數。 如果 QnA Maker 的分數低於某個任意閾值,請使用從 LUIS 傳回的意圖和實體資訊,將資訊傳遞至協力廠商服務。
使用範例文字 How do I get to the Human Resources building on the Seattle North campus?
繼續,假設 QnA Maker 傳回低信賴分數。 使用從 LUIS、FindLocation
與任何擷取的實體 (例如 Human Resources building
與 Seattle North campus
) 傳回的意圖,將此資訊傳送至對應或搜尋服務,以取得其他答案。
您可以向使用者呈現此協力廠商答案以進行驗證。 當您取得使用者的核准之後,就可以回到 QnA Maker 來新增資訊,以拓展您的知識。
當聊天機器人需要更多資訊時使用這兩個服務
如果聊天機器人所需的資訊超過任一個服務所提供的資訊,若要繼續進行決策樹,請使用這兩個服務,並在用戶端應用程式中處理這兩個回應。
使用 Bot Framework 分派 CLI 工具來協助建置使用這兩項服務的程序。 此工具會建置意圖的熱門 LUIS 應用程式,以在 LUIS 和 QnA Maker 之間分派為子應用程式。 深入了解如何整合 LUIS、QnA Maker 與 Bot Framework。
以 C# 或 Node.js,使用 Bot Builder 範例分派 NLP 來實作此類型的聊天機器人。
最佳作法
針對每個服務實作最佳做法:
另請參閱
- Language Understanding (LUIS)
- QnA Maker
- Dispatch CLI \(英文\)
- Bot Framework 範例
- Azure AI Bot Service
- Azure Bot 模擬器
- Bot Framework 網路聊天