設計有效的語言理解

自然語言理解 (NLU) 是 Copilot Studio Agent 理解使用者查詢、並提供相關且具情境回應的核心。 妥善定義的意圖辨識、實體擷取和後援處理方法,可確保 Agent 提供有效率且自然、並符合商務需求的交談。

使用者向 Agent 輸入的內容稱為語句。 Agent 需要將該語句拆解為意圖和實體,讓 Agent 的回應顯得自然又有效率。

什麼是 Language Understanding?

語言理解 (LU) 是自然語言處理 (NLP) 的子領域,著重於讓機器能夠理解人類語言背後的意義、意圖和情境。

說明語言理解處理程序的圖表。

說明如何將使用者訊息拆解為意圖和實體的圖表。 使用者輸入:「我想預訂下週飛往巴黎的班機。」 這則訊息標記為語句。 「我想預訂機票」這句話被辨識為意圖,「巴黎」和「下週」則被辨識為實體。 系統接著會詢問更多詳細資料,例如出發城市和艙等。 此圖表說明 Agent 如何運用意圖、實體和情境來判斷最佳回應。

語言理解包含:

  • 意圖辨識:找出使用者想要達成的目標 (例如「預訂下週飛往巴黎的班機」對應到預訂機票的意圖)。
  • 實體擷取:擷取日期、地點或名稱等重要詳細資料 (例如「巴黎」為目的地、「下週」為出發日期)。
  • 情境感知:維持交談的連貫性並解決其中的模糊之處 (例如理解代名詞或指涉關係)。
  • 處理模糊情況:運用情境來解決具有多重意義的字詞 (例如「bank」可能是指銀行或河岸)。

Copilot Studio 中的語言理解

Copilot Studio 提供彈性的語言理解模型,並具備多種設定選項。

生成式協調流程

生成式協調流程會使用語言模型,智慧串連主題、動作和知識。 此功能可針對複雜查詢,實現多重意圖辨識、進階實體擷取,以及動態產生計畫。

此方法為預設方法,適用於 Copilot Studio。 這種方法可在單一語句中辨識多個意圖或主題、自動串連動作和知識來源,並產生一致的回應。 這對於處理橫跨多個商務領域的複雜交談特別有幫助。 生成式協調流程有其限制,例如每個主題或動作鏈最多五則訊息,每個協調流程最多 128 個主題或動作,但它提供強大的方式來擴大交談的廣度。

若要進一步了解,請參閱套用生成式協調流程功能。

傳統協調流程

傳遞協調流程使用觸發字詞和確定性主題路由。 如果使用者的語句符合觸發字詞,就會執行對應的主題。 如果沒有相符項目,後援機制會搜尋知識來源,或提示使用者提供進一步說明。

內建 NLU

這個方法過去是預設方法,現在則是後援方法。 Copilot Studio 提供開箱即用的 NLU 模型,支援觸發字詞、預先定義的實體和自訂實體。 此模型可讓 Agent 直接從查詢中識別使用者意圖,並擷取日期、目的地或數量等重要詳細資料。

NLU+

若要提高精確度,請使用 NLU+ 選項。 NLU+ 選項最適合大型企業級應用程式。 這類應用程式通常包含大量主題和實體,並使用大量的訓練樣本。 此外,如果您有啟用語音功能的 Agent,NLU+ 訓練資料還可用來最佳化語音辨識功能。

Azure CLU 整合

若情境更進階,無法使用預設的生成式協調流程,您可以整合 Azure Conversational Language Understanding (CLU)。 CLU 提供更高的自訂彈性、多語言支援,以及複雜的實體擷取功能 (例如多個「from」實體)。 您必須將 CLU 意圖對應到 Copilot Studio 主題,以維持兩者同步。這個選項對於產業專屬詞彙、非英文語言,或需要更高精確度的情境特別有價值。

主要功能與限制

下表比較 Copilot Studio 中的三種語言理解方法。 此表格重點列出各方法的主要功能與限制,協助您根據 Agent 的複雜度、規模和精確度需求選擇合適的模型。

功能和限制 生成式協調流程 內建 NLU 模型 自訂 Azure CLU 模型
主要功能
  • 使用大型語言模型
  • 處理具有多個意圖、主題/動作和知識的複雜語句
  • 自動針對缺少的輸入產生問題
  • 允許在執行期間進行修正
  • 根據主題、動作和知識的輸出,產生一致的答案
  • 使用預先定義實體類型的預設預先訓練模型
  • 使用觸發字詞和自訂實體 (封閉式清單或規則運算式) 進行設定
  • 透過原生模型支援更多語言
  • 可自訂的意圖觸發模型,滿足精確度或產業專屬需求
  • 進階實體擷取 (例如相同類型、靜默擷取)
  • 實體擷取可使用 Copilot Studio 標準 NLU
限制
  • 每個主題/動作鏈最多五則訊息
  • 觸發的主題和動作上限為 128 個
  • 每個查詢僅辨識單一意圖
  • 無法擴充
  • 對相同類型的多個實體進行填槽時需要去除混淆
  • 每個查詢僅辨識單一意圖
  • 以 Azure 為基礎的設定,須支付額外費用
  • 受限於 Azure 服務限制
  • 必須謹慎同步 Azure CLU 意圖與 Copilot Studio 主題。

若要進一步了解,請參閱自然語言理解 (NLU) 總覽。

主題結構與後援

主題已從僵化的、以意圖為基礎的路徑,轉變為更具彈性、以協調流程為優先的方法。 主題現在不再只依賴預先定義的觸發程序和路徑,而是做為模組化指示,供 Agent 在協調交談時呼叫。 生成式協調流程會動態解讀使用者輸入以處理大部分路由,而主題則在需要精確度時提供結構化的後援。

較傳統的結構化主題設計可讓交談顯得自然又有效率。 主題可以是由使用者語句觸發的進入點,也可以是由重新導向或系統事件呼叫的可重複使用子主題。 去除混淆主題有助於避免在觸發多個主題時發生混淆,而後援主題和交談增強主題則在 Agent 無法確信找到相符意圖時提供安全網。 您也可以疊加生成式回應,以從外部知識來源擷取內容,確保使用者幾乎都能獲得回應。

若要進一步了解,請參閱遵循主題製作最佳做法。

當地語系化和語言

Copilot Studio Agent 所使用的語言,是由系統變數的值決定:System.User.Language。

此變數是 Agent 中所有語言相關行為的中央控制點。 您可以手動、以程式設計方式設定其值,或自動偵測。

如何運作?

  • 以使用者的語言搜尋知識:Copilot Studio 會使用 System.User.Language 的值,以指定語言搜尋知識來源。 這種做法表示,即使使用者以某語言提問,Agent 仍會將搜尋查詢翻譯成 System.User.Language 中設定的語言 (自動翻譯搜尋查詢)。

  • 以使用者的語言回應:Agent 會以 System.User.Language 指定的語言產生答案,不論問題或原始文件所用的語言為何 (自動翻譯產生的答案)。

  • 手動覆寫:您可以手動設定 System.User.Language 的值,強制 Agent 以特定語言運作。 此功能適用於測試,或必須明確控制語言的情境。 若要進一步了解,請參閱設定和建立多語言 Agent。

自動偵測口說語言

您可以設定 Copilot Studio,自動偵測使用者的口說或書寫語言,並據以設定 System.User.Language 變數。 此功能可提供無縫的多語言體驗,使用者不需要指定其語言偏好設定。

自動偵測的運作方式

  • 以觸發程序為基礎的偵測:Bot 收到訊息時,會由觸發程序啟動語言偵測流程。
  • 設定系統變數:Bot 會將偵測到的語言指派給 System.User.Language。
  • 動態回應:Agent 會以偵測到的語言繼續交談,並據以搜尋知識和產生回應。

福利

  • 個人化體驗:使用者可以用偏好的語言進行互動,不需要手動設定。
  • 一致的體驗:所有回應和知識擷取都會與偵測到或設定的語言一致。
  • 可擴充的解決方案:以最少的設定支援全球部署。

提示

如需示範如何讓 Copilot Studio Agent 自動偵測使用者的口說語言,並切換為製作者核准的其中一種 Agent 語言的範例解決方案,請參閱自動偵測生成式回應的語言。

在地化最佳做法

  • 設定支援的語言:為您的 Agent 定義主要和次要語言。 使用在地化檔案 (JSON 或 ResX),為提示、訊息和主題提供翻譯。
  • 測試多語言情境:模擬不同語言的使用者互動,確保轉換順暢且回應正確。
  • 使用自動翻譯:針對知識搜尋和答案產生,可依賴 Copilot Studio 的內建翻譯功能,但針對重要或細膩的內容,請提供自訂翻譯。
  • 監控並改善:使用分析追蹤語言使用情況,並隨時間改善在地化涵蓋範圍。

Copilot Studio Agent 的語言處理方法:

  • 每種語言使用個別的 Agent。
  • 使用單一多語言 Agent,並搭配預先撰寫的翻譯。
  • 使用即時多語言 Agent,在使用者和 Agent 之間運用翻譯服務。

合適的方法取決於使用情境、分離考量、規模、更新頻率,以及可用資源。

已識別的技術挑戰

常見的挑戰包括確保 Azure CLU 和 Copilot Studio 主題保持同步、處理模糊的語句,以及擴大多語言部署規模。 及早識別這些障礙,可讓您規劃緩解策略,例如後援設定、大量測試觸發字詞,或以中繼為基礎的翻譯服務。

語言理解的目標,是確保每個 Agent 都能準確解讀使用者查詢、適應多元的語言和情境,並妥善處理非預期的狀況。 此目標為建置可靠、吸引人且有效率的 Copilot Studio 交談奠定穩固的基礎。