多語言客服專員以不同的語言與客戶溝通,同時將所有內容保留在單一客服專員中。 在許多情況下,他們會根據客服專員使用者的網頁瀏覽器設定自動偵測所需的語言,並以相同的語言回應,為客戶提供更個人化和引人入勝的體驗。
建立代理程式時,您可以指定其主要語言。
新增次要語言至 Agent 之後,您應負責為您所建立主題中的訊息提供翻譯。 對於使用生成式協調的代理程式,生成的訊息會自動翻譯。
當客戶與已發佈的 Agent 開始工作階段時,Agent 會選擇其語言之一,以符合客戶用戶端或瀏覽器所指定的語言。 如果代理程式無法偵測到用戶端或瀏覽器語言,或偵測到的語言不是您為代理程式指定的語言之一,則代理程式會預設為其主要語言。
您可以設計客服專員以變更其在對話期間使用的語言(請參閱 讓客服專員切換到另一種語言)。 您也可以設定使用 生成式協調 來動態切換語言的代理程式,從而遵循當前對話輪次中使用的語言(請參閱設定代理程式以進行動態語言切換)。
如需支援的語言清單,請參閱語言支援。
注意
傳統聊天機器人僅支援一種語言。 如需有關將傳統聊天機器人轉換為 Agent 的詳細資訊,請參閱升級至 Copilot Studio 整合製作。
將語言新增至代理程式
移至代理程式的設定頁面,然後選取語言。
選取 [ 新增語言]。
在新增語言面板中,選取您要新增至客服專員的語言,然後選取新增。
檢閱語言清單,然後關閉 [設定 ] 頁面。
管理多語言客服專員的本地化
在 Copilot Studio 中,您可以使用客服專員的主要語言執行所有主題和內容編輯。 本節說明如何從客服專員下載字串並將其翻譯成客服專員的第二語言。 上傳翻譯後的字串後,您可以在 測試面板中切換語言 ,並確認第二語言的對話也如預期般進行。
準備在地化內容
當您第一次下載第二語言的當地語系化檔案時,所有字串都是代理程式的主要語言。 下載本地化檔案後,將其用於您首選的本地化過程。
前往客服專員的設定頁面,然後選取語言。
在 [語言] 頁面的次要語言清單中,針對您要更新的語言選取 [上傳 ]。
在 [更新當地語系化 ] 面板中,選取 JSON 或 ResX 格式,以下載該語言的目前當地語系化檔案。
注意
下載的檔案包含 Agent 的最新本地化內容。 如果您需要下載舊版的當地語系化檔案,請 開啟代理程式的解決方案。
開啟下載的檔案並將主要語言字串替換為適當的翻譯文字。
返回 更新當地語系化 面板 ,選取 瀏覽,然後上傳翻譯的檔案。
關閉 更新當地語系化 面板和 設定 頁面。
更新本地化內容
如果您變更主要語言字串,也必須更新次要語言的內容。 這個過程既包括新內容,也包括修改內容。 增量變更不會自動轉換。 您必須下載輔助語言 JSON 或 ResX 文件,並使用您首選的本地化過程更新未翻譯的字串。
以下情境是翻譯內容的典型工作流程。 您之前已將主要語言 (en-US) 翻譯為輔助語言 (fr-FR),並新增和修改了主要語言的內容。 當您下載第二語言的當地語系化檔案時,所有新內容都會以第一語言 (en-US) 進行。 然而,修改後的內容仍以第二語言出現。 由於修改後的內容使用相同的 ID,因此您必須將新檔案與先前上傳的檔案進行比較。
讓自適應卡片中的動態內容支持本地化
本地化檔案不包含來自Adaptive Cards的混合類型字串。 如果您需要將自適應卡片本地化,而字串可以同時包含靜態文字和變數(動態內容),請使用下列因應措施。 此程序示範如何使用「 設定文字變數 」節點,將完整字串與靜態文字及變數儲存在中間變數中。 然後,您只會在自適應卡片中參考該中繼變數。 當您下載 Agent 的在地化檔案時,您的中繼變數的值 (包含靜態文字與變數參考) 可作為 setVariable 動作的一部分進行在地化。
若要讓自適應卡片的動態內容可本地化:
在您的適應型卡片之前新增 設定變數值 節點。 此步驟會建立 YAML 表示法,您可以使用程式碼編輯器將節點轉換為 [ 設定文字變數 ] 節點來更新該表示法。 您無法直接從編寫畫布建立 [設定文字變數 ] 節點。
在 [設定變數值 ] 節點中,建立新變數,但尚未設定值。
開啟與您主題相關的程式碼編輯器。
在程式碼編輯器中,找出代表「 設定變數值 」節點的部分,然後取代
kind: SetVariable為kind: SetTextVariable。 此變更會將您的「 設定變數值 」節點轉換為「 設定文字變數 」節點。關閉程式碼編輯器。
選取 [ 設定文字變數 ] 節點的底部欄位,然後輸入完整字串,其中包含您要在最適化卡片上顯示的靜態文字和變數。 插入變數的方式與在 訊息中插入變數的方式相同。
使用對此新變數的參考更新您的調適型卡片。
儲存您的主題。 您現在可以下載當地語系化檔案,並確認它包含最適化卡片的動態內容。
測試多語言代理程式
開啟測試面板。
選擇測試面板頂端的三個點(...),並選擇你想要的語言。 測試面板會自行重新載入,這次使用選取的語言。 編寫畫布會保留為主要語言,在切換回主要語言之前,您無法儲存對主題所做的變更。
若要測試代理程式,請以所選語言輸入訊息。
您也可以將瀏覽器語言設定為客服專員的語言之一,然後前往 預先建置的示範網站。 示範網站會以指定的語言開啟,客服專員會以該語言進行聊天。
讓客服專員切換到另一種語言
編寫時,您可以將代理程式設定為在交談中切換到另一種語言。 邏輯可以位於代理程式中的任何主題中。 但是,最佳做法是在問題節點之後立即切換語言,這可確保下一個問題節點之前的所有後續訊息都採用相同的語言。
若要變更客服專員的目前語言,請將 User.Language系統變數 設定為客服專員的其中一種次要語言。 此選擇會立即變更您的 Agent 所使用的語言。
設定動態語言切換的代理程式
注意
此功能僅適用於啟用了生成式協調流程的代理程式。
您可以設定客服專員來偵測客戶使用的語言,並以相同的語言回應。 透過此設定,客服專員可以在單一交談過程中多次切換語言。 下列案例顯示如何設定客服專員以在荷蘭語和英語之間切換。 您可以將其擴充為客服專員支援的語言的任意組合。
此案例使用具有 [收到訊息]主題觸發器的主題。 此主題觸發程式可讓您的客服專員檢查其收到的每則訊息。 本主題使用自訂提示來偵測語言,並使用條件來設定客服專員語言系統變數。
建立主題。
將主題的預設 觸發類型 取代為 當收到訊息時。
將提示新增至您的主題:
選取 [觸發器] 節點下方的 [
新增節點] 圖示。選取 [新增工具>][新增提示]。
在提示編輯器中,輸入提示的代表名稱,例如「偵測語言」。
在 「指示」 窗格中,輸入「判斷此訊息的編寫語言:」。
在 [指示] 窗格底部,選取 [新增內容],然後選取 [文字]。 隨即出現一個視窗,邀請您輸入名稱和範例訊息。
針對 Name (名稱),輸入 “Message”。針對 [範例資料],輸入「來自使用者的訊息」,然後選取 [關閉]。
在 [模型回應] 窗格中,將 [輸出格式] 切換為 JSON。
選取 [測試]。 您的提示會顯示 JSON 常值,其中單一屬性可將語言識別為英文。
選取 [儲存]。 提示 節點會出現在畫布上。
設定 提示 節點:
根據偵測到的語言進行邏輯分支:
在 提示 節點下方新增條件。
以自訂變數為基礎,該變數
DetectedLanguage.structuredOutput.language會保留偵測到的語言名稱。為您需要偵測的每種語言新增條件分支。
在每個分支下,加入「 設定變數值 」節點,以相應地設定
User.Language系統變數。 下圖顯示主題,其條件是在荷蘭文和英文之間切換。
疑難排解多語言代理程式
本節提供了解意外多語言客服專員行為的提示。
未設定語言的多語言 Agent 行為
如果使用者將其瀏覽器設定為您未為代理程式設定的語言,則代理程式會回復到其主要語言。
您可以在 建立代理程式時指定代理程式的主要語言。 建立後您無法變更主要語言,但如果有多個區域可用,則可以變更客服專員主要語言的 區域 。
缺少翻譯的多語言 Agent 行為
如果您以主要語言將訊息新增至客服專員,但未上傳新訊息的 翻譯 ,則客服專員會以其主要語言顯示未翻譯的變更。 對 Agent 進行變更後,請務必確保翻譯是最新的。
本地化檔案不包含來自Adaptive Cards的混合類型字串。 如果您需要本地化可在字串中同時包括靜態文字和變數(動態內容)的調適性卡片,則必須使用解決方法。 了解如何在將其用於調適型卡片之前,將混合型字串儲存至文字變數。
發佈多語言 Agent 時出錯
當您嘗試發佈多語言代理程式時,如果您看到「機器人驗證失敗」錯誤訊息,其中包含原始回應錯誤碼 Entity.Definition.'closedListItem'時,若以下任一情況發生,通常會遇到此錯誤:
-
Synonyms其中一個元素並不是獨特的。 -
Synonyms元素之一與DisplayName元素具有相同的值。
同一實體的所有 Synonyms 必須是唯一的,並且具有與DisplayName 元素不同的名稱。
若要更正錯誤,請檢閱第二語言的 JSON 或 ResX 檔案,並識別可能出現此條件的情況。