تكوين العاملين متعددي اللغات وإنشاؤهم

باستخدام Copilot Studio، يمكنك إنشاء وكيل يتصل بالعملاء بلغات مختلفة. يمكنك تكوين عوامل متعددة اللغات للكشف تلقائيا عن اللغة المطلوبة استنادا إلى إعدادات متصفح الويب لمستخدم العامل والاستجابة بنفس اللغة، ما يوفر تجربة أكثر تخصيصا وجذابة للعملاء.

عند إنشاء عامل، يمكنك تحديد لغته الأساسية.

بعد إضافة لغات ثانوية إلى وكيل، تكون مسؤولا عن توفير ترجمات للرسائل في الموضوعات التي تقوم بإنشائها. بالنسبة للوكلاء الذين يستخدمون التنسيق التوليدي، تتم ترجمة الرسائل التي تم إنشاؤها تلقائيا.

عندما يبدأ العميل جلسة عمل مع وكيل منشور، يحدد العامل إحدى لغاته لمطابقة اللغة المحددة في العميل أو مستعرض العميل. إذا لم يتمكن العامل من الكشف عن اللغة، أو إذا اكتشف لغة لا يدعمها، فسيتم تعيين العامل افتراضيا إلى لغته الأساسية.

يمكنك تصميم عامل لتغيير اللغة التي يستخدمها أثناء محادثة (راجع تحويل عامل إلى لغة أخرى). يمكنك أيضا إعداد عامل يستخدم التنسيق التوليدي لتبديل اللغات ديناميكيا لمتابعة اللغة المستخدمة في منعطف المحادثة الحالي (راجع إعداد عامل لتبديل اللغة الديناميكية).

لقائمة اللغات المدعومة، انظر دعم اللغات.

ملحوظة

تدعم روبوتات الدردشة الكلاسيكية لغة واحدة فقط. لمزيد من المعلومات حول تحويل روبوت دردشة كلاسيكي إلى وكيل، راجع الترقية إلى منصة Copilot Studio للتأليف الموحد.

إضافة لغات إلى وكيل

  1. انتقل إلى صفحة الإعدادات للعامل، وحدد اللغات.

  2. حدد إضافة لغة.

  3. في لوحة إضافة لغات ، حدد اللغات التي تريد إضافتها إلى العامل، وحدد إضافة.

  4. راجع قائمة اللغات، وأغلق صفحة الإعدادات .

إدارة الترجمة لعامل متعدد اللغات

في Copilot Studio، يمكنك إجراء جميع عمليات تحرير الموضوع والمحتوى باللغة الأساسية للعامل. يشرح هذا القسم كيفية تنزيل السلاسل من وكيلك وترجمتها إلى اللغات الثانوية لوكيلك. بعد تحميل السلاسل المترجمة، يمكنك تبديل اللغة في لوحة الاختبار والتحقق من أن المحادثات في اللغات الثانوية تتدفق أيضا كما هو متوقع.

إعداد المحتوى المترجم

عند تنزيل ملف الترجمة لأول مرة للغة ثانوية، تكون جميع السلاسل باللغة الأساسية للعامل. بعد تنزيل ملف الترجمة، استخدمه مع عملية الترجمة المفضلة لديك.

  1. انتقل إلى صفحة الإعدادات لوكيلك، وحدد اللغات.

  2. في صفحة اللغات ، في قائمة اللغات الثانوية، حدد تحميل للغة التي تريد تحديثها.

  3. في لوحة Update localizations ، حدد إما تنسيق JSON أو ResX لتنزيل ملف الترجمة الحالي لتلك اللغة.

    ملحوظة

    يحتوي الملف الذي تم تنزيله على أحدث محتوى ترجمة للعامل. لتنزيل الإصدارات السابقة من ملف الترجمة، افتح حل العامل.

  4. افتح الملف الذي تم تنزيله واستبدل سلاسل اللغة الأساسية بالنص المترجم المناسب.

  5. ارجع إلى لوحة Update localizations ، وحدد Browse، ثم قم بتحميل الملف المترجم.

  6. أغلق لوحة تحديث الترجمة وصفحة الإعدادات .

تحديث المحتوى المترجم

إذا قمت بتغيير سلاسل اللغة الأساسية، يجب عليك أيضا تحديث المحتوى باللغات الثانوية. تتضمن هذه العملية كلا من المحتوى الجديد والمحتوى المعدل. لا تتم ترجمة التغييرات المتزايدة تلقائيا. يجب تنزيل ملف JSON أو ResX للغة الثانوية، وتحديث السلاسل غير المترجمة باستخدام عملية الترجمة المفضلة لديك.

السيناريو التالي نموذجي لسير العمل للمحتوى المترجم. لقد قمت مسبقا بترجمة لغتك الأساسية (en-US) إلى لغة ثانوية (fr-FR)، وقمت بإضافة المحتوى وتعديله باللغة الأساسية. عند تنزيل ملف الترجمة للغة الثانوية، تكون أي سلاسل جديدة باللغة الأساسية (en-US) وتبقى السلاسل التي تمت ترجمتها مسبقا في اللغة الثانوية (fr-FR). ومع ذلك، لا تزال السلاسل المترجمة مسبقا التي تم تعديل نصها الأصلي منذ آخر تحميل لملف الترجمة تظهر كما تمت ترجمتها مؤخرا إلى اللغة الثانوية. نظرا لعدم تغيير معرفات السلسلة، فقد تصبح سلاسل اللغة الثانوية وسلاسل اللغة الأساسية غير متزامنة بعد حدوث تغييرات في اللغة الأساسية. تأكد من أن مقارنة ملف الترجمة الجديد بالإصدار الذي قمت بتحميله مؤخرا - لتحديد تغييرات سلسلة اللغة الأساسية - هو جزء من عملية الترجمة.

إتاحة المحتوى الديناميكي من بطاقات موائمة مفتوحة للترجمة

لا تتضمن ملفات الترجمة سلاسل من نوع مختلط من بطاقات موائمة مفتوحة. إذا كنت بحاجة إلى ترجمة بطاقة موائمة حيث يمكن أن تتضمن السلسلة كلا من النص الثابت والمتغيرات (المحتوى الديناميكي)، فاستخدم الحل البديل التالي. يوضح لك الإجراء كيفية استخدام عقدة تعيين متغير نص لتخزين السلسلة الكاملة مع النص الثابت والمتغيرات في متغير وسيط. ثم ارجع فقط إلى ذلك المتغير المتوسط في بطاقة تكيفية. عند تنزيل ملف ترجمة للعامل الخاص بك، تكون قيمة المتغير الوسيط الخاص بك، مع النص الثابت ومراجع المتغير، متاحة للترجمة كجزء من setVariable إجراء.

لجعل المحتوى الديناميكي للبطاقة الموائمة المفتوحة قابلا للترجمة:

  1. أضف عقدة تعيين قيمة متغيرة قبل البطاقة الموائمة. تنشئ هذه الخطوة تمثيل YAML يمكنك تحديثه باستخدام محرر التعليمات البرمجية لتحويل العقدة إلى عقدة تعيين متغير نص . لا يمكنك إنشاء عقد تعيين متغير نصي مباشرة من لوحة التأليف.

  2. في عقدة Set variable value ، قم بإنشاء متغير جديد ولكن لا تقم بتعيين القيمة بعد.

  3. افتح محرر التعليمات البرمجية لموضوعك.

  4. في محرر التعليمات البرمجية، حدد موقع الجزء الذي يمثل عقدة تعيين قيمة متغيرة واستبدل kind: SetVariable ب kind: SetTextVariable. يحول هذا التغيير عقدة تعيين قيمة متغيرة إلى عقدة متغير نص معينة .

  5. أغلِق محرر التعليمات البرمجية.

  6. حدد الحقل السفلي لعقدة تعيين متغير النص وأدخل السلسلة الكاملة بالنص الثابت والمتغيرات التي تريد إظهارها على البطاقة الموائمة المفتوحة. إدراج متغير بنفس الطريقة التي تدرج بها متغيرا في رسالة.

  7. قم بتحديث بطاقتك الموائمة مع الإشارة إلى هذا المتغير الجديد.

  8. احفظ موضوعك. يمكنك الآن تنزيل ملف الترجمة والتحقق من أنه يتضمن المحتوى الديناميكي بطاقات موائمة مفتوحة.

تعرف على المزيد في توطين محتوى البطاقة التكيفية.

اختبار عامل متعدد اللغات

  1. افتح لوحة الاختبار.

  2. حدد النقاط الثلاث (...) في أعلى لوحة الاختبار، وحدد اللغة التي تريدها. تعيد لوحة الاختبار تحميل نفسها، هذه المرة باستخدام اللغة المحددة. تظل لوحة التأليف باللغة الأساسية ولا يمكنك حفظ التغييرات التي تجريها على موضوع ما حتى تعود إلى اللغة الأساسية.

  3. لاختبار العامل، أدخل رسالة باللغة المحددة.

يمكنك أيضا تعيين لغة المستعرض إلى إحدى لغات وكيلك، والانتقال إلى موقع الويب التجريبي الذي تم إنشاؤه مسبقا. يفتح موقع الويب التجريبي باللغة المحددة، ويدردش العامل بتلك اللغة.

تحويل عامل إلى لغة أخرى

عند التأليف، يمكنك تكوين العامل للتبديل إلى لغة أخرى في منتصف المحادثة. يمكن أن يتواجد المنطق في أي موضوع في العامل. ومع ذلك، فإن أفضل ممارسة هي تبديل اللغة مباشرة بعد عقدة السؤال ، ما يضمن أن جميع الرسائل التالية حتى عقدة السؤال التالية هي نفس اللغة.

لتغيير اللغة الحالية للعامل، قم بتعيين User.Languageمتغير النظام إلى إحدى اللغات الثانوية لوكيلك. يغير هذا التحديد اللغة التي يتحدث بها وكيلك على الفور.

إعداد عامل لتبديل اللغة الديناميكية

ملحوظة

تتوفر هذه الميزة فقط للوكلاء الذين تم تمكين التنسيق التوليدي .

يمكنك تكوين عامل للكشف عن اللغة التي يستخدمها العميل والاستجابة بنفس اللغة. باستخدام هذا التكوين، يمكن للعامل تبديل اللغات عدة مرات على مدار محادثة واحدة. يوضح السيناريو التالي كيفية إعداد عامل للتبديل بين الهولندية والإنجليزية. يمكنك توسيعه لأي مجموعة من اللغات التي يدعمها وكيلك.

تحذير

طريقة تبديل اللغة الديناميكية هذه غير متوافقة مع الكشف عن اللغة المستندة إلى المستعرض. بمجرد أن يقوم الموضوع الذي يكتشف لغة المستخدم بشكل ديناميكي بتعيين User.Language المتغير، لن يكون الكشف عن اللغة المستندة إلى المستعرض ساري المفعول لهذا المستخدم، حتى إذا تم إيقاف تشغيل الموضوع أو حذفه لاحقا. إذا كنت ترغب في تجربة أو التحقق من صحة كلا النهجين، فاستخدم عامل اختبار منفصل. بعد اختبار تبديل اللغة الديناميكية، يجب مسح حالة لغة المستخدم المستمرة قبل محاولة اختبار الكشف عن اللغة المستندة إلى المستعرض.

يستخدم هذا السيناريو موضوعاً مع تم تلقي الرسالةمشغل موضوع. يتيح مشغل الموضوع هذا لوكيلك فحص كل رسالة يتلقاها. يستخدم هذا الموضوع مطالبة مخصصة للكشف عن اللغة وشرط لتعيين متغير نظام لغة العامل.

  1. تحقق من تكوين الوكيل الخاص بك لدعم جميع اللغات التي تريدها.

  2. إنشاء موضوع.

  3. استبدل نوع الْمشغل الْافتراضي للموضوع برسالْة يتم تلقيها.

  4. أضف مطالبة إلى موضوعك:

    1. حدد أيقونة إضافة عقدة أسفل عقدة المشغل.

    2. حدد إضافة أداة>محفز جديد.

    3. في محرر الأوامر، أدخل اسماً ممثلاً لأمر الإدخال الخاص بك، مثل "كشف اللغة".

    4. في جزء الإرشادات ، أدخل "تحديد اللغة التي تتم كتابة هذه الرسالة بها: ".

    5. في أسفل جزء الإرشادات ، حدد إضافة محتوى وحدد نص. تظهر نافذة تدعوك إلى إدخال اسم ورسالة نموذجية.

    6. بالنسبة للاسم، أدخل "رسالة". بالنسبة إلى بيانات العينة، أدخل "رسالة من المستخدم"، وحدد إغلاق.

    7. في جزء استجابة النموذج ، قم بتبديل تنسيق الإخراج إلى JSON.

    8. حَدِّد اختبار. يظهر نص الطلب قيمة JSON حرفية، مع خاصية واحدة تحدد اللغة على أنها الإنجليزية.

      لقطة شاشة لمطالبة تم تكوينها للكشف عن لغة الرسالة.

    9. حَدِّد حِفظ. تظهر عقدة Prompt على اللوحة.

  5. تكوين عقدة المطالبة :

    1. بالنسبة للإدخال، حدد متغيرActivity.Text النظام (نص الرسالة الواردة).
    2. بالنسبة إلى Output، قم بإنشاء متغير جديد يسمى DetectedLanguage.
  6. فرع المنطق الخاص بك استنادا إلى اللغة المكتشفة:

    1. إضافة شرط أسفل عقدة المطالبة .

    2. قم بإسناد الشرط الخاص بك إلى المتغير DetectedLanguage.structuredOutput.languageالمخصص ، الذي يحمل اسم اللغة المكتشفة.

    3. أضف فرع شرط لكل لغة تحتاج إلى اكتشافها.

    4. ضمن كل فرع، أضف عقدة تعيين قيمة متغيرة لتعيين User.Language متغير النظام وفقا لذلك. تعرض الصورة التالية موضوعا بشرط التبديل بين الهولندية والإنجليزية.

      لقطة شاشة للموضوع الذي يكتشف ويبدل لغة العامل.

استعادة الكشف عن اللغة المعتمد على المتصفح

عندما يقوم عامل تم تكوينه لتبديل اللغة الديناميكية بتعيين User.Language متغير النظام، تستمر اللغة المحددة كتجاوز لمستخدم العامل. يتم تحديد اللغة المفضلة للمستخدم بترتيب الأولوية التالي:

  1. تم تعيين تفضيلات اللغة بشكل صريح من قبل المستخدم واستمرت كتجاوز لهذا المستخدم (أولوية قصوى).
  2. رسالة واردة من المستخدم بلغة تطابق إحدى اللغات المعتمدة للعامل (Activity.Locale).
  3. اللغة الأساسية للوكيل (كخيار احتياطي).

لمسح اللغة المستمرة بعد اختبار تبديل اللغة الديناميكية:

  • إرسال /debug clearstate إلى الوكيل. يقوم هذا الأمر بمسح تخطي اللغة من حالة المستخدم.

استكشاف أخطاء عامل متعدد اللغات وإصلاحها

يوفر هذا القسم تلميحات لمساعدتك على فهم سلوك الوكيل متعدد اللغات غير المتوقع.

سلوك العامل متعدد اللغات للغات التي لم يتم تكوينها

إذا كان المستخدم يقوم بتكوين متصفحه للغة لم تقم بتكوينها للعامل، يعود العامل إلى لغته الأساسية.

يمكنك تحديد اللغة الأساسية لعامل عند إنشاء العامل. لا يمكنك تغيير اللغة الأساسية بعد الإنشاء ولكن يمكنك تغيير المنطقة للغة الأساسية للعامل، إذا توفرت أكثر من منطقة واحدة.

سلوك الوكيل متعدد اللغات للترجمات المفقودة

إذا قمت بإضافة رسائل إلى عامل بلغته الأساسية ولكن لم تقم بتحميل ترجمات الرسائل الجديدة، يعرض العامل التغييرات غير المترجمة بلغته الأساسية. تأكد دائماً من أن الترجمات محدثة بعد إجراء تغييرات على وكيل.

لا تتضمن ملفات الْترجمة سلاسل مكتوبة مختلطة مِنْ الْبطاقات الْموائمة. إذا كنت بحاجة إلى ترجمة بطاقات موائمة مفتوحة حيث يمكن أن تتضمن السلسلة نصا ثابتا ومتغيرات (محتوى ديناميكي)، فيجب عليك استخدام حل بديل. تعرف على كيفية تخزين سلسلة ذات تركيبة متنوعة في متغير نصي قبل استخدامها في بطاقة تكيفية.

أخطاء عند نشر عامل متعدد اللغات

عند محاولة نشر عامل متعدد اللغات، قد ترى رسالة الخطأ "فشل التحقق من صحة الروبوت" مع رمز خطأ الاستجابة الخام، SynonymsNotUnique. يعني هذا الخطأ أن ملف الترجمة يحتوي إما على مرادفات مكررة أو مرادف يطابق DisplayName قيمة. عادة ما تواجه هذا الْخطأ عندما تحتوي عقدة Entity.Definition.'closedListItem' على مكان حدوث أي مِنْ الْسيناريوهات الْتالْية:

  • Synonyms أحد العناصر ليس فريدا.
  • Synonyms أحد العناصر له نفس قيمة DisplayName العنصر.

يجب أن يكون الكل Synonyms لنفس الكيان فريدا وأن يكون له اسم مختلف عن DisplayName العنصر .

لتصحيح الخطأ، راجع ملف JSON أو ResX للغة الثانوية، وحدد أي مثيلات قد يكون فيها هذا الشرط موجودا.