共用方式為


設定和建立多語言 Agent

透過使用 Copilot Studio,你可以建立一個能用不同語言與客戶溝通的客服人員。 您可以設定多語言客服人員,根據客服使用者的瀏覽器設定自動偵測所需語言,並以相同語言回應,為客戶提供更個人化且具吸引力的體驗。

建立代理程式時,您可以指定其主要語言。

新增次要語言至 Agent 之後,您應負責為您所建立主題中的訊息提供翻譯。 對於使用生成式協調的代理程式,生成的訊息會自動翻譯。

當客戶與已發佈的 Agent 開始工作階段時,Agent 會選擇其語言之一,以符合客戶用戶端或瀏覽器所指定的語言。 如果代理無法偵測該語言,或偵測到不支援的語言,則會自動回到其主要語言。

您可以設計客服專員以變更其在對話期間使用的語言(請參閱 讓客服專員切換到另一種語言)。 您也可以設定使用 生成式協調 來動態切換語言的代理程式,從而遵循當前對話輪次中使用的語言(請參閱設定代理程式以進行動態語言切換)。

如需支援的語言清單,請參閱語言支援

注意

傳統聊天機器人僅支援一種語言。 欲了解更多將經典聊天機器人轉換為代理的資訊,請參見 Upgrade to Copilot Studio unified authoring

將語言新增至代理程式

  1. 移至代理程式的設定頁面,然後選取語言。

  2. 選擇 新增語言

  3. 新增語言面板中,選取您要新增至客服專員的語言,然後選取新增。

  4. 檢閱語言清單,然後關閉 [設定 ] 頁面。

管理多語言客服專員的本地化

在 Copilot Studio 中,所有主題和內容編輯都使用客服人員的主要語言進行。 本節說明如何從客服專員下載字串並將其翻譯成客服專員的第二語言。 上傳翻譯後的字串後,你可以 在測試面板切換語言 ,並確認次要語言的對話是否也如預期般流暢。

準備在地化內容

當您第一次下載第二語言的當地語系化檔案時,所有字串都是代理程式的主要語言。 下載本地化檔案後,將其用於您首選的本地化過程。

  1. 前往客服專員的設定頁面,然後選取語言。

  2. [語言] 頁面的次要語言清單中,針對您要更新的語言選取 [上傳 ]。

  3. [更新當地語系化 ] 面板中,選取 JSON 或 ResX 格式,以下載該語言的目前當地語系化檔案。

    注意

    下載的檔案包含 Agent 的最新本地化內容。 要下載先前版本的本地化檔案,請 開啟代理的解決方案

  4. 開啟下載的檔案並將主要語言字串替換為適當的翻譯文字。

  5. 返回 更新當地語系化 面板 ,選取 瀏覽,然後上傳翻譯的檔案。

  6. 關閉 更新當地語系化 面板和 設定 頁面。

更新本地化內容

如果你更改了主要語言的字串,也必須更新次要語言的內容。 這個過程既包括新內容,也包括修改內容。 增量變更不會自動轉換。 你必須下載次要語言的 JSON 或 ResX 檔案,並用你偏好的在地化流程更新未翻譯的字串。

以下情境是翻譯內容的典型工作流程。 您之前已將主要語言 (en-US) 翻譯為輔助語言 (fr-FR),並新增和修改了主要語言的內容。 當你下載第二語言的本地化檔案時,任何新增的字串都會在主要語言(en-US)中,而先前翻譯的字串則保留在第二語言(fr-FR)。 不過,如果先前已翻譯的字串,其原始文字在上次上傳當地語系化檔案後有所修改,仍會顯示為上次翻譯成次要語言時的版本。 由於字串 ID 不變,當主語言發生變更後,次級語言字串與主要語言字串可能會不同步。 確保將新本地化檔案與你上次上傳的版本進行比較——以識別主要語言字串的變動——是你本地化過程的一部分。

讓 調適型卡片 的動態內容可供在地化

本地化檔案不包含 調適型卡片 的混合型字串。 如果您需要將自適應卡片本地化,而字串可以同時包含靜態文字和變數(動態內容),請使用下列因應措施。 此程序示範如何使用「 設定文字變數 」節點,將完整字串與靜態文字及變數儲存在中間變數中。 然後,您只會在自適應卡片中參考該中繼變數。 當您下載 Agent 的在地化檔案時,您的中繼變數的值 (包含靜態文字與變數參考) 可作為 setVariable 動作的一部分進行在地化。

若要讓自適應卡片的動態內容可本地化:

  1. 在您的適應型卡片之前新增 設定變數值 節點。 此步驟會建立 YAML 表示法,您可以使用程式碼編輯器將節點轉換為 [ 設定文字變數 ] 節點來更新該表示法。 您無法直接從編寫畫布建立 [設定文字變數 ] 節點。

  2. [設定變數值 ] 節點中,建立新變數,但尚未設定值。

  3. 開啟與您主題相關的程式碼編輯器

  4. 在程式碼編輯器中,找出代表「 設定變數值 」節點的部分,然後取代 kind: SetVariablekind: SetTextVariable。 此變更會將您的「 設定變數值 」節點轉換為「 設定文字變數 」節點。

  5. 關閉程式碼編輯器。

  6. 選取 [ 設定文字變數 ] 節點的底部欄位,然後輸入完整字串,其中包含您要在最適化卡片上顯示的靜態文字和變數。 插入變數的方式和在訊息中插入變 一樣。

  7. 使用對此新變數的參考更新您的調適型卡片。

  8. 儲存您的主題。 你現在可以下載本地化檔案,並驗證它是否包含了你的 調適型卡片 的動態內容。

「本地化自適應卡片」內容中了解更多。

測試多語言代理程式

  1. 開啟測試面板。

  2. 選擇測試面板頂端的三個點(...),並選擇你想要的語言。 測試面板會自行重新載入,這次使用選取的語言。 編寫畫布會保留為主要語言,在切換回主要語言之前,您無法儲存對主題所做的變更。

  3. 若要測試代理程式,請以所選語言輸入訊息。

您也可以將瀏覽器語言設定為客服專員的語言之一,然後前往 預先建置的示範網站。 示範網站會以指定的語言開啟,客服專員會以該語言進行聊天。

讓客服專員切換到另一種語言

編寫時,您可以將代理程式設定為在交談中切換到另一種語言。 邏輯可以位於代理程式中的任何主題中。 但是,最佳做法是在問題節點之後立即切換語言,這可確保下一個問題節點之前的所有後續訊息都採用相同的語言。

若要變更客服專員的目前語言,請將 User.Language系統變數 設定為客服專員的其中一種次要語言。 此選擇會立即變更您的 Agent 所使用的語言。

設定動態語言切換的代理程式

注意

此功能僅適用於啟用了生成式協調流程的代理程式。

您可以設定客服專員來偵測客戶使用的語言,並以相同的語言回應。 透過此設定,客服專員可以在單一交談過程中多次切換語言。 下列案例顯示如何設定客服專員以在荷蘭語和英語之間切換。 您可以將其擴充為客服專員支援的語言的任意組合。

警告

這種動態語言切換方法與瀏覽器語言偵測不相容。 一旦動態偵測使用者語言的主題設定變 User.Language 數,瀏覽器語言偵測就不再對該使用者生效,即使該主題後來被關閉或刪除。 如果你想嘗試或驗證兩種方法,請使用不同的測試代理。 在測試動態語言切換後,必須先 清除持久化的使用者語言狀態 ,才能嘗試測試瀏覽器語言偵測。

此案例使用具有 [收到訊息]主題觸發器的主題。 此主題觸發程式可讓您的客服專員檢查其收到的每則訊息。 本主題使用自訂提示來偵測語言,並使用條件來設定客服專員語言系統變數。

  1. 確認你的代理程式是否已設定支援所有你想要的語言

  2. 建立主題

  3. 將主題的預設 觸發類型 取代為 當收到訊息時

  4. 將提示新增至您的主題:

    1. 選取 [觸發器] 節點下方的 [新增節點] 圖示

    2. 選取 [新增工具>][新增提示]。

    3. 在提示編輯器中,輸入提示的代表名稱,例如「偵測語言」。

    4. 「指示」 窗格中,輸入「判斷此訊息的編寫語言:」。

    5. [指示] 窗格底部,選取 [新增內容],然後選取 [文字]。 隨即出現一個視窗,邀請您輸入名稱和範例訊息。

    6. 針對 Name (名稱),輸入 “Message”。針對 [範例資料],輸入「來自使用者的訊息」,然後選取 [關閉]。

    7. [模型回應] 窗格中,將 [輸出格式] 切換為 JSON。

    8. 選取 [測試]。 您的提示會顯示 JSON 常值,其中單一屬性可將語言識別為英文。

      設定為偵測訊息語言的提示螢幕擷取畫面。

    9. 選取 [儲存]。 提示 節點會出現在畫布上。

  5. 設定 提示 節點:

    1. 對於 「輸入」,選取 系統變數Activity.Text (傳入訊息的文字)。
    2. 針對 [輸出]建立名為 的新變數DetectedLanguage
  6. 根據偵測到的語言進行邏輯分支:

    1. 提示 節點下方新增條件

    2. 以自訂變數為基礎,該變數 DetectedLanguage.structuredOutput.language會保留偵測到的語言名稱。

    3. 為您需要偵測的每種語言新增條件分支。

    4. 在每個分支下,加入「 設定變數值 」節點,以相應地設定 User.Language 系統變數。 下圖顯示主題,其條件是在荷蘭文和英文之間切換。

      偵測和切換代理語言的主題螢幕擷取畫面。

恢復瀏覽器語言偵測

當具有動態語言切換功能的代理程式設定User.Language系統變數時,所選擇的語言將作為代理使用者的覆寫並持續有效。 使用者偏好的語言依優先順序決定:

  1. 語言偏好由使用者明確設定,並以最高優先權的覆蓋方式持續存在。
  2. 使用者以與代理支援語言之一相符的語言收到的訊息(Activity.Locale)。
  3. 代理人的主要語言(備用語言)。

在測試動態語言切換後,要清除持久化語言:

  • 寄給 /debug clearstate 經紀人。 此指令將會清除使用者狀態中的語言覆寫設定。

疑難排解多語言代理程式

本節提供建議,幫助你理解意外的多語言代理人行為。

未設定語言的多語言 Agent 行為

如果使用者將其瀏覽器設定為您未為代理程式設定的語言,則代理程式會回復到其主要語言。

您可以在 建立代理程式時指定代理程式的主要語言。 建立後您無法變更主要語言,但如果有多個區域可用,則可以變更客服專員主要語言的 區域

缺少翻譯的多語言 Agent 行為

如果你用代理的主要語言新增消息,但沒有上傳新消息的翻譯,代理將以其主要語言顯示這些未翻譯的新消息。 對 Agent 進行變更後,請務必確保翻譯是最新的。

本地化檔案不包含 調適型卡片 的混合型別字串。 在本地化 調適型卡片 時,如果需要字串同時包含靜態文字與變數(動態內容),就必須使用變通方法。 了解如何在將其用於調適型卡片之前,將混合型字串儲存至文字變數

發佈多語言 Agent 時出錯

當你嘗試發佈多語言代理時,可能會看到「機器人驗證失敗」錯誤訊息,並附帶原始回應錯誤代碼。 SynonymsNotUnique 這個錯誤表示你的本地化檔案包含重複的同義詞,或是與某 DisplayName 個值相符的同義詞。 當節點包含Entity.Definition.'closedListItem'時,若以下任一情況發生,通常會遇到此錯誤:

  • 其中一種 Synonyms 元素並不獨特。
  • Synonyms 元素之一與 DisplayName 元素具有相同的值。

同一實體的全部 Synonyms 必須是唯一且名稱與元素 DisplayName 不同。

若要更正錯誤,請檢閱第二語言的 JSON 或 ResX 檔案,並識別可能出現此條件的情況。