تطوير تطبيقات الأوامر المخصصة

هام

سيتم إيقاف الأوامر المخصصة في 30 أبريل 2026. اعتبارا من 30 أكتوبر 2023، لا يمكنك إنشاء تطبيقات أوامر مخصصة جديدة في Speech Studio. فيما يتعلق بهذا التغيير، سيتم إيقاف LUIS في 1 أكتوبر 2025. اعتبارا من 1 أبريل 2023، لا يمكنك إنشاء موارد LUIS جديدة.

في هذه المقالة الإرشادية، ستتعلم كيفية تطوير تطبيقات الأوامر المخصصة وتكوينها. تساعدك ميزة الأوامر المخصصة في إنشاء تطبيقات أوامر صوتية غنية تم تحسينها لتجارب التفاعل مع الصوت أولاً. تعد الميزة هي الأنسب لإكمال المهمة أو سيناريوهات الأوامر والتحكم. إنها مناسبة تماما لأجهزة إنترنت الأشياء (IoT) والأجهزة المحيطة وبدون رأس.

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

  • إضافة معلمات إلى الأوامر
  • إضافة تكوينات إلى معلمات الأوامر
  • بناء قواعد التفاعل
  • إنشاء قوالب إنشاء اللغة لاستجابات الكلام
  • استخدام أدوات صوتية مخصصة

إنشاء تطبيق باستخدام أوامر بسيطة

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

  1. في مربع الاسم، أدخل اسم المشروع Smart-Room-Lite (أو اسم آخر من اختيارك).

  2. في قائمة اللغة، حدد الإنجليزية (الولايات المتحدة).

  3. حدد مورد LUIS أو أنشئه.

    Screenshot showing the

تحديث موارد LUIS (اختياري)

يمكنك تحديث مورد التأليف الذي حددته في نافذة مشروع جديد. يمكنك أيضاً تعيين مورد تنبؤ.

يتم استخدام مورد تنبؤ للتعرف عند نشر تطبيق الأوامر المخصصة. لا تحتاج إلى مورد تنبؤ أثناء مراحل التطوير والاختبار.

إضافة أمر TurnOn

في تطبيق الأوامر المخصصة «Smart-Room-Lite» الفارغ الذي أنشأته، أضف أمراً. يعالج الأمر تعبيرا، Turn on the tv. يستجيب بالرسالة Ok, turning the tv on.

  1. أنشئ أمراً جديداً عن طريق تحديد أمر جديد في أعلى الجزء الأيمن. يتم فتح نافذة الأمر New.
  2. بالنسبة للحقل الاسم، قم بتوفير القيمة TurnOn.
  3. حدد إنشاء.

يسرد الجزء الأوسط خصائص الأمر.

يوضح الجدول التالي خصائص تكوين الأمر. لمزيد من المعلومات، راجع مفاهيم وتعريفات الأوامر المخصصة.

التكوين ‏‏الوصف
أمثلة على الجمل أمثلة على التعبيرات التي يمكن للمستخدم أن يقولها لتشغيل هذا الأمر.
المعلمات المعلومات المطلوبة لإكمال الأمر.
قواعد الإنجاز الإجراءات التي يجب اتخاذها لتنفيذ الأمر. أمثلة: الاستجابة للمستخدم أو الاتصال بخدمة ويب.
قواعد التفاعل قواعد أخرى للتعامل مع مواقف أكثر تحديداً أو تعقيداً.

Screenshot showing where to create a command.

إضافة أمثلة على الجمل

في قسم أمثلة على الجمل، يمكنك تقديم مثال لما يمكن للمستخدم قوله.

  1. في الجزء الأوسط، حدد أمثلة على الجمل.

  2. في الجزء الموجود على اليسار، أضف أمثلة:

    Turn on the tv
    
  3. في أعلى الجزء، حدد حفظ.

ليس لديك معلمات حتى الآن، لذلك يمكنك الانتقال إلى قسم قواعد الإكمال.

إضافة قاعدة إكمال

بعد ذلك، يحتاج الأمر إلى قاعدة إكمال. تخبر هذه القاعدة المستخدم بأنه يتم اتخاذ إجراء تنفيذ.

لمزيد من المعلومات حول القواعد وقواعد الإكمال، راجع مفاهيم الأوامر المخصصة والتعريفات.

  1. حدد قاعدة الإكمال الافتراضية تم. ثم قم بتحريرها كما يلي:

    الإعدادات القيمة المقترحة ‏‏الوصف‬
    الاسم ConfirmationResponse اسم يصف الغرض من القاعدة
    الظروف بلا الشروط التي تحدد متى يمكن تشغيل القاعدة
    إجراءات إرسال استجابة الكلام>محرر بسيط>Ok, turning the tv on الإجراء الذي يجب اتخاذه عندما يكون شرط القاعدة صحيحاً

    Screenshot showing where to create a speech response.

  2. حدد حفظ لحفظ الإجراء.

  3. مرة أخرى في قسم قواعد الإكمال، حدد حفظ لحفظ جميع التغييرات.

    إشعار

    لا يلزم عليك استخدام قاعدة الإكمال الافتراضية التي تأتي مع الأمر. يمكنك حذف قاعدة الإكمال الافتراضية وإضافة القاعدة الخاصة بك.

إضافة أمر «SetTemperature»

الآن أضف أمراً آخر، SetTemperature. يأخذ هذا الأمر تعبيرا واحدا، ، Set the temperature to 40 degreesويستجيب بالرسالة Ok, setting temperature to 40 degrees.

لإنشاء الأمر الجديد، اتبع الخطوات التي استخدمتها للأمر TurnOn، ولكن استخدم مثال الجملة Set the temperature to 40 degrees.

ثم قم بتحرير قواعد الإكمال الحالية تم كما يلي:

الإعدادات القيمة المقترحة
الاسم ConfirmationResponse
الظروف بلا
إجراءات إرسال استجابة> الكلام محرر> بسيط التباين الأول>Ok, setting temperature to 40 degrees

حدد حفظ لحفظ كل التغييرات التي أجريت على الأمر.

إضافة أمر SetAlarm

إنشاء أمر SetAlarm جديد. استخدم مثال الجملة Set an alarm for 9 am tomorrow. ثم قم بتحرير قواعد الإكمال الحالية تم كما يلي:

الإعدادات القيمة المقترحة
الاسم ConfirmationResponse
الظروف بلا
إجراءات إرسال استجابة> الكلام محرر> بسيط التباين الأول>Ok, setting an alarm for 9 am tomorrow

حدد حفظ لحفظ كل التغييرات التي أجريت على الأمر.

عليك تجربة ذلك

اختبر سلوك التطبيق باستخدام جزء الاختبار:

  1. في الزاوية العلوية اليسرى من الجزء، حدد أيقونة تدريب.
  2. عند انتهاء التدريب، حدد اختبار.

جرب أمثلة النطق التالية باستخدام الصوت أو النص:

  • تكتب: تعيين درجة الحرارة إلى 40 درجة
  • الاستجابة المتوقعة: موافق، تعيين درجة الحرارة إلى 40 درجة
  • تكتب: قم بتشغيل التلفزيون
  • الاستجابة المتوقعة: موافق، تشغيل التلفزيون
  • تكتب: تعيين التنبيه الساعة 9 صباحاً غداً
  • الاستجابة المتوقعة: موافق، قم بتعيين التنبيه الساعة 9 صباحاً غداً

Screenshot showing the test in a web-chat interface.

تلميح

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

إضافة معلمات إلى الأوامر

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

تكوين معلمات لأمر TurnOn

ابدأ بتحرير الأمر الموجود TurnOn لتشغيل أجهزة متعددة وإيقاف تشغيلها.

  1. الآن بعد أن يعالج الأمر كلا من السيناريوهات قيد التشغيل وإيقاف التشغيل، أعد تسمية الأمر باسم TurnOnOff.

    1. في الجزء الموجود على اليمين حدد الأمر TurnOn. ثم، بجوار أمر New الموجود في أعلى الجزء، حدد زر «تحرير».

    2. في نافذة الأمر «Rename»، قم بتغيير الاسم إلى TurnOnOff.

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

    1. في الجزء الأوسط، حدد إضافة. من القائمة المنسدلة، حدد المعلمة.

    2. في الجزء الموجود على اليسار، في قسم المعلمات، في مربع الاسم، أضف OnOff.

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

    4. حدد تحديث.

      Screenshot that shows the 'Add response for a required parameter' section with the 'Simple editor' tab selected.

    5. تكوين خصائص المعلمة باستخدام الجدول التالي. للحصول على معلومات حول جميع خصائص التكوين للأمر، راجع مفاهيم وتعريفات الأوامر المخصصة.

      التكوين القيمة المقترحة ‏‏الوصف‬
      الاسم OnOff اسم وصفي للمعلمة
      مطلوب المحدد خانة اختيار تشير إلى ما إذا كانت قيمة هذه المعلمة مطلوبة قبل انتهاء الأمر.
      الاستجابة للمعلمة المطلوبة محرر بسيط>On or Off? مطالبة تطالب بقيمة هذه المعلمة عندما لا تكون معروفة.
      النوع السلسلة‬ نوع المعلمة، مثل رقم أو سلسلة أو وقت أو تاريخ أو جغرافيا.
      التكوين قبول قيم إدخال معرفة مسبقا من كتالوج داخلي بالنسبة للسلاسل، يحد هذا الإعداد من المدخلات إلى مجموعة من القيم المحتملة.
      قيم إدخال معرفة مسبقًا on, off مجموعة من القيم المحتملة وأسمائها المستعارة.
    6. لإضافة قيم إدخال معرفة مسبقاً، حدد إضافة إدخال معرف مسبقاً. في نافذة عنصر جديد، اكتب الاسم كما هو موضح في الجدول السابق. في هذه الحالة، لا تستخدم الأسماء المستعارة، لذا يمكنك ترك هذا الحقل فارغاً.

      Screenshot showing how to create a parameter.

    7. حدد حفظ لحفظ كافة تكوينات المعلمة.

إضافة معلمة SubjectDevice

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

    الإعدادات القيمة المقترحة
    الاسم SubjectDevice
    مطلوب المحدد
    الاستجابة للمعلمة المطلوبة محرر بسيط>Which device do you want to control?
    النوع السلسلة‬
    التكوين قبول قيم إدخال معرفة مسبقا من كتالوج داخلي
    قيم إدخال معرفة مسبقًا tv, fan
    أسماء مستعارة (tv) television, telly
  2. حدد حفظ.

تعديل أمثلة على الجمل

بالنسبة للأوامر التي تستخدم المعلمات، من المفيد إضافة أمثلة على الجمل التي تغطي جميع المجموعات الممكنة. على سبيل المثال:

  • معلومات المعلمة الكاملة: turn {OnOff} the {SubjectDevice}
  • معلومات المعلمة الجزئية: turn it {OnOff}
  • لا توجد معلومات عن المعلمة: turn something

تسمح الأمثلة على الجمل التي تستخدم درجات متفاوتة من المعلومات لتطبيق "الأوامر المخصصة" بحل كلٍّ من دقة لقطة واحدة ودرجات دقة متعددة الأدوار باستخدام معلومات جزئية.

مع وضع هذه المعلومات في الاعتبار، قم بتحرير الأمثلة على الجمل لاستخدام هذه المعلمات المقترحة:

turn {OnOff} the {SubjectDevice}
{SubjectDevice} {OnOff}
turn it {OnOff}
turn something {OnOff}
turn something

حدد حفظ.

تلميح

في محرر أمثلة الجمل، استخدم أقواساً متعرجة للإشارة إلى معلماتك. على سبيل المثال، turn {OnOff} the {SubjectDevice} استخدم علامة تبويب للإكمال التلقائي مدعومة بمعلمات تم إنشاؤها مسبقًا.

تعديل قواعد الإكمال لتضمين المعلمات

تعديل قاعدة الإكمال الحالية ConfirmationResponse.

  1. في قسم الشروط، حدد إضافة شرط.

  2. في نافذة شرط جديد، في القائمة النوع، حدد المعلمات المطلوبة. في القائمة التالية، حدد كلاً من OnOff وSubjectDevice.

  3. حدد إنشاء.

  4. في قسم الإجراءات، قم بتحرير إجراء إرسال استجابة الكلام عن طريق تمرير الماوس فوقه وتحديد زر «تحرير». هذه المرة، استخدم المعلمتين OnOff وSubjectDevice اللتين تم إنشاؤهما حديثاً:

    Ok, turning the {SubjectDevice} {OnOff}
    
  5. حدد حفظ.

جرب التغييرات عن طريق تحديد أيقونة تدريب في أعلى الجزء على اليسار.

عند انتهاء التدريب، حدد اختبار. تظهر نافذة اختبار التطبيق الخاص بك. جرب التفاعلات التالية:

  • الإدخال: إيقاف تشغيل التلفزيون
  • الإخراج: موافق، إيقاف تشغيل التلفزيون
  • الإدخال: إيقاف تشغيل التلفزيون
  • الإخراج: موافق، إيقاف تشغيل التلفزيون
  • الإدخال: إيقاف تشغيله
  • الإخراج: ما الجهاز الذي تريد التحكم فيه؟
  • الإدخال: التلفزيون
  • الإخراج: موافق، إيقاف تشغيل التلفزيون

تكوين معلمات لأمر SetTemperature

قم بتعديل الأمر SetTemperature لتمكينه من تعيين درجة الحرارة حسب توجيه المستخدم.

أولاً، أضف معلمة TemperatureValue. استخدم التكوين التالي:

التكوين القيمة المقترحة
الاسم TemperatureValue
مطلوب المحدد
الاستجابة للمعلمة المطلوبة محرر بسيط>What temperature would you like?
النوع Number

قم بتحرير أمثلة الألفاظ لاستخدام القيم التالية.

set the temperature to {TemperatureValue} degrees
change the temperature to {TemperatureValue}
set the temperature
change the temperature

حرر قواعد الإكمال الموجودة. استخدم التكوين التالي.

التكوين القيمة المقترحة
الظروف المعلمة المطلوبة>TemperatureValue
إجراءات إرسال استجابة الكلام>Ok, setting temperature to {TemperatureValue} degrees

تكوين معلمات لأمر SetAlarm

إضافة معلمة تسمى DateTime. استخدم التكوين التالي.

الإعدادات القيمة المقترحة
الاسم DateTime
مطلوب المحدد
الاستجابة للمعلمة المطلوبة محرر بسيط>For what time?
النوع الوقت/التاريخ
الإعدادات الافتراضية للتاريخ إذا كان التاريخ مفقوداً، فاستخدم اليوم.
الإعدادات الافتراضية للوقت إذا كان الوقت مفقوداً، فاستخدم بداية اليوم.

إشعار

تستخدم هذه المقالة في الغالب أنواع معلمات String وNumber وDateTime. للحصول على قائمة بجميع أنواع المعلمات المدعومة وخصائصها، راجع مفاهيم وتعريفات الأوامر المخصصة.

حرر الأمثلة على الألفاظ. استخدم القيم التالية.

set an alarm for {DateTime}
set alarm {DateTime}
alarm for {DateTime}

حرر قواعد الإكمال الموجودة. استخدم التكوين التالي.

الإعدادات القيمة المقترحة
إجراءات إرسال استجابة الكلام>Ok, alarm set for {DateTime}

اختبر الأوامر الثلاثة معاً باستخدام التعبيرات المتعلقة بالأوامر المختلفة. (يمكنك التبديل بين الأوامر المختلفة.)

  • الإدخال: تعيين تنبيه
  • الإخراج: لأي وقت؟
  • الإدخال: تشغيل التلفزيون
  • الإخراج: موافق، تشغيل التلفزيون
  • الإدخال: تعيين تنبيه
  • الإخراج: لأي وقت؟
  • الإدخال: 5 مساء
  • الإخراج: موافق، تم تعيين المنبه ل 2020-05-01 17:00:00

إضافة تكوينات إلى معلمات الأوامر

في هذا القسم، يمكنك معرفة المزيد حول تكوين المعلمة المتقدمة، بما في ذلك:

  • كيف يمكن أن تنتمي قيم المعلمات إلى مجموعة تم تعريفها خارج تطبيق الأوامر المخصصة.
  • كيفية إضافة عبارات التحقق من الصحة على قيم المعلمة.

تكوين معلمة ككيان كتالوج خارجي

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

إعادة استخدام المعلمة SubjectDevice من الأمر TurnOnOff. التكوين الحالي لهذه المعلمة هو قبول الإدخالات المعرفة مسبقاً من الكتالوج الداخلي. يشير هذا التكوين إلى قائمة ثابتة من الأجهزة في تكوين المعلمة. انقل هذا المحتوى إلى مصدر بيانات خارجي يمكن تحديثه بشكل مستقل.

لنقل المحتوى، ابدأ بإضافة نقطة نهاية ويب جديدة. في الجزء الموجود على اليسار، انتقل إلى قسم نقاط نهاية الويب. إضافة عنوان URL جديد لنقطة نهاية الويب. استخدم التكوين التالي.

الإعدادات القيمة المقترحة
الاسم getDevices
عنوان URL <Your endpoint of getDevices.json>
الطريقة الحصول

بعد ذلك، قم بتكوين نقطة نهاية ويب واستضافتها التي ترجع ملف JSON الذي يسرد الأجهزة التي يمكن التحكم فيها. يجب أن ترجع نقطة نهاية الويب ملف JSON منسقا مثل هذا المثال:

{
    "fan" : [],
    "refrigerator" : [
        "fridge"
    ],
    "lights" : [
        "bulb",
        "bulbs",
        "light",
        "light bulb"
    ],
    "tv" : [
        "telly",
        "television"
        ]
}

بعد ذلك، انتقل إلى صفحة إعدادات معلمة SubjectDevice. قم بإعداد الخصائص التالية.

الإعدادات القيمة المقترحة
التكوين قبول الإدخالات المعرفة مسبقاً من الكتالوج الخارجي
نقطة نهاية الكتالوج getDevices
الطريقة الحصول

ثم حدد حفظ.

هام

لن ترى خياراً لتكوين معلمة لقبول الإدخالات من كتالوج خارجي ما لم تكن لديك نقطة نهاية ويب معينة في قسم نقطة نهاية الويب في الجزء الموجود على اليمين.

جرِّب ذلك عن طريق تحديد تدريب. بعد انتهاء التدريب، حدد اختبار، وجرب بعض التفاعلات.

  • الإدخال: تشغيل
  • الإخراج: ما الجهاز الذي تريد التحكم فيه؟
  • الإدخال: الأضواء
  • الإخراج: موافق، تشغيل الأضواء

إشعار

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

إضافة التحقق من الصحة إلى المعلمات

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

اختبر عمليات التحقق من الصحة باستخدام الأمر SetTemperature. استخدم الخطوات التالية لإضافة التحقق من صحة المعلمة Temperature.

  1. في الجزء الموجود على اليمين، حدد الأمر SetTemperature.

  2. في الجزء الأوسط، حدد درجة الحرارة.

  3. في الجزء الموجود على اليسار، حدد إضافة التحقق من الصحة.

  4. في نافذة تحقق جديد من الصحة، قم بتكوين التحقق من الصحة كما هو موضح في الجدول التالي. وبعد ذلك، حدد إنشاء.

    تكوين المعلمة القيمة المقترحة ‏‏الوصف
    الحد الأدنى للقيمة 60 بالنسبة إلى معلمات Number، الحد الأدنى للقيمة التي يمكن أن تفترضها هذه المعلمة
    الحد الأقصى للقيمة 80 بالنسبة إلى معلمات Number، الحد الأقصى للقيمة التي يمكن أن تفترضها هذه المعلمة
    الاستجابة للفشل محرر بسيط>التباين الأول>Sorry, I can only set temperature between 60 and 80 degrees. What temperature do you want? مطالبة لطلب قيمة جديدة إذا فشل التحقق من الصحة

    Screenshot showing how to add a range validation.

جرب ذلك عن طريق تحديد أيقونة تدريب في أعلى الجزء على اليسار. بعد انتهاء التدريب، حدد اختبار. جرب بعض التفاعلات:

  • الإدخال: تعيين درجة الحرارة إلى 72 درجة
  • الإخراج: موافق، تعيين درجة الحرارة إلى 72 درجة
  • الإدخال: تعيين درجة الحرارة إلى 45 درجة
  • الإخراج: عذرا، يمكنني تعيين درجة الحرارة بين 60 درجة و80 درجة فقط
  • الإدخال: اجعلها 72 درجة بدلاً من ذلك
  • الإخراج: موافق، تعيين درجة الحرارة إلى 72 درجة

إضافة قواعد التفاعل

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

  • تأكيد الأوامر
  • إضافة تصحيح من خطوة واحدة إلى الأوامر

لمزيد من المعلومات حول قواعد التفاعل، راجع مفاهيم الأوامر المخصصة والتعريفات.

إضافة تأكيدات إلى أمر

لإضافة تأكيد، يمكنك استخدام الأمر SetTemperature. لتحقيق التأكيد، قم بإنشاء قواعد التفاعل باستخدام الخطوات التالية:

  1. في الجزء الموجود على اليمين، حدد الأمر SetTemperature.

  2. في الجزء الأوسط، أضف قواعد التفاعل عن طريق تحديد إضافة. ثم حدد قواعد التفاعل>تأكيد الأمر.

    يضيف هذا الإجراء ثلاث قواعد تفاعل. تطلب القواعد من المستخدم تأكيد تاريخ التنبيه ووقته. وتتوقع تأكيداً (نعم أو لا) للدور التالي.

    1. تعديل قاعدة تأكيد تفاعل الأمر باستخدام التكوين التالي:

      1. تغيير الاسم لتأكيد درجة الحرارة.
      2. الشرط تم تعيين كافة المعلمات المطلوبة بالفعل.
      3. إضافة إجراء جديد: اكتب>إرسال استجابة الكلام>هل تريد بالتأكيد تعيين درجة الحرارة كدرجات {TemperatureValue}؟
      4. في قسم التوقعات، اترك القيمة الافتراضية الخاصة بـ توقع التأكيد من المستخدم.

      Screenshot showing how to create the required parameter response.

    2. قم بتعديل قاعدة التفاعل نجح التأكيد لمعالجة تأكيد ناجح (قال المستخدم «نعم»).

      1. غيَّر الاسم إلى نجحت درجة حرارة التأكيد.
      2. اترك الشرط الحالي كان التأكيد ناجحاً.
      3. أضف شرطاً جديداً: اكتب>المعلمات المطلوبة>TemperatureValue.
      4. اترك القيمة الافتراضية حالة ما بعد التنفيذ على تنفيذ قواعد الإكمال.
    3. قم بتعديل قاعدة التفاعل رفض التأكيد لمعالجة السيناريوهات عند رفض التأكيد (قال المستخدم «لا»).

      1. غيِّر الاسم إلى تم رفض درجة حرارة التأكيد.
      2. اترك الشرط الحالي تم رفض التأكيد.
      3. أضف شرطاً جديداً: اكتب>المعلمات المطلوبة>TemperatureValue.
      4. أضف إجراءً جديداً: اكتب>إرسال استجابة الكلام>لا توجد مشكلة. ما درجة الحرارة بعد ذلك؟.
      5. قم بتغيير القيمة الافتراضية حالة ما بعد التنفيذ إلى انتظار إدخال المستخدم.

هام

في هذه المقالة، يمكنك استخدام إمكانية التأكيد المضمنة. يمكنك أيضاً إضافة قواعد التفاعل يدوياً واحدة تلو الأخرى.

قم بتجربة التغييرات عن طريق تحديد تدريب. عند انتهاء التدريب، حدد اختبار.

  • الإدخال: تعيين درجة الحرارة إلى 80 درجة
  • الإخراج: هل تريد بالتأكيد تعيين درجة الحرارة على أنها 80 درجة؟
  • الإدخال: لا
  • الإخراج: لا توجد مشكلة. ما درجة الحرارة في ذلك؟
  • الإدخال: 72 درجة
  • الإخراج: هل تريد بالتأكيد تعيين درجة الحرارة على أنها 72 درجة؟
  • الإدخال: نعم
  • الإخراج: موافق، تعيين درجة الحرارة إلى 72 درجة

تنفيذ عمليات التصحيح في أمر

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

في الجزء الأيمن، حدد الأمر SetAlarm. ثم أضف المعلمة الجديدة AlarmTone.

  • الاسم>AlarmTone
  • النوع>سلسلة
  • القيمة الافتراضية>Chimes
  • تكوين>قبول قيم الإدخال المعرفة مسبقاً من الكتالوج الداخلي
  • قيم الإدخال المعرفة مسبقاً>Chimes، وJingle وEcho (هذه القيم هي إدخالات فردية معرفة مسبقاً.)

بعد ذلك، قم بتحديث الاستجابة لمعلمة DateTime إلى جاهز لتعيين التنبيه بالنغمة، مثل {AlarmTone}. بالنسبة لأي وقت؟. بعد ذلك، قم بتعديل قاعدة الإكمال كما يلي:

  1. حدد قاعدة الإكمال الموجودة ConfirmationResponse.
  2. في الجزء الموجود على اليسار، مرر مؤشر الماوس فوق الإجراء الموجود، وحدد تحرير.
  3. قم بتحديث استجابة الكلام إلى OK, alarm set for {DateTime}. The alarm tone is {AlarmTone}.

هام

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

تنفيذ تصحيح عند انتهاء الأمر

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

استخدم الخطوات التالية لتكوين تصحيح من خطوة واحدة:

  1. في الأمر SetAlarm، أضف قاعدة تفاعل من النوع تحديث الأمر السابق لتحديث التنبيه الذي تم تعيينه مسبقاً. أعد تسمية قاعدة التفاعل باسم تحديث التنبيه السابق.
  2. اترك الشرط الافتراضي: يجب تحديث الأمر السابق.
  3. أضف شرطاً جديداً: اكتب>المعلومة المطلوبة>DateTime.
  4. أضف إجراءً جديداً: اكتب>إرسال استجابة الكلام>محرر بسيط>تحديث وقت التنبيه السابق إلى {DateTime}.
  5. اترك القيمة الافتراضية حالة ما بعد التنفيذ على اكتمال الأمر.

قم بتجربة التغييرات عن طريق تحديد تدريب. انتظر حتى ينتهي التدريب، ثم حدد اختبار.

  • الإدخال: تعيين تنبيه.
  • الإخراج: جاهز لتعيين التنبيه باستخدام النغمة كـ «Chimes». لأي وقت؟
  • الإدخال: قم بتعيين التنبيه بالنغمة على أنها Jingle للساعة 9 صباحاً غداً.
  • الإخراج: موافق، تم تعيين المنبه ل 2020-05-21 09:00:00. نغمة التنبيه هي Jingle.
  • الإدخال: لا، 8 صباحاً.
  • الإخراج: تحديث وقت التنبيه السابق إلى 29-05-2020 الساعة 08:00.

إشعار

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

إضافة قوالب إنشاء اللغة لاستجابات الكلام

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

  • قوالب إنشاء اللغة.
  • التعبيرات التكيفية.

تستند قوالب الأوامر المخصصة إلى قوالب LG الخاصة بـ Bot Framework. نظرا لأن ميزة الأوامر المخصصة تنشئ قالب LG جديداً عند الحاجة (لاستجابات الكلام في المعلمات أو الإجراءات)، فليس عليك تحديد اسم قالب LG.

لذلك، لا تحتاج إلى تعريف القالب الخاص بك مثل هذا:

   # CompletionAction
   - Ok, turning {OnOff} the {SubjectDevice}
   - Done, turning {OnOff} the {SubjectDevice}
   - Proceeding to turn {OnOff} {SubjectDevice}

بدلاً من ذلك، يمكنك تحديد نص القالب بدون الاسم، مثل هذا:

Screenshot showing a template editor example.

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

من خلال الاستفادة من قوالب LG، يمكنك أيضا تحديد استجابات الكلام المعقدة للأوامر باستخدام التعبيرات التكيفية. لمزيد من المعلومات، راجع تنسيق قوالب LG.

بشكل افتراضي، تدعم ميزة «الأوامر المخصصة» جميع القدرات، مع الاختلافات الثانوية التالية:

  • في قوالب LG، يتم تمثيل الكيانات كـ ${entityName}. لا تستخدم ميزة «الأوامر المخصصة» الكيانات. ولكن يمكنك استخدام المعلمات كمتغيرات مع التمثيل ${parameterName} أو التمثيل {parameterName}.
  • لا تدعم ميزة «الأوامر المخصصة» تكوين القالب وتوسيعه، لأنك لا تقوم أبداً بتحرير ملف ‎.lg مباشرة. يمكنك تحرير استجابات القوالب التي تم إنشاؤها تلقائياً فقط.
  • لا تدعم ميزة «الأوامر المخصصة» الوظائف المخصصة التي تقوم LG بإدخالها. يتم دعم الوظائف المعرفة مسبقاً.
  • لا تدعم ميزة الأوامر المخصصة الخيارات، مثل strict وreplaceNull وlineBreakStyle.

إضافة استجابات القالب إلى أمر TurnOnOff

قم بتعديل الأمر TurnOnOff لإضافة معلمة جديدة. استخدم التكوين التالي.

الإعدادات القيمة المقترحة
الاسم SubjectContext
مطلوب غير محدد
النوع السلسلة‬
القيمة الافتراضية all
التكوين قبول قيم الإدخال المعرفة مسبقاً من الكتالوج الداخلي
قيم إدخال معرفة مسبقًا room، ، bathroomall

تعديل قاعدة إكمال

قم بتحرير قسم الإجراءات من قاعدة الإكمال الحالية ConfirmationResponse. في نافذة تحرير الإجراء، قم بالتبديل إلى محرر القالب. ثم استبدل النص بالمثال التالي.

- IF: @{SubjectContext == "all" && SubjectDevice == "lights"}
    - Ok, turning all the lights {OnOff}
- ELSEIF: @{SubjectDevice == "lights"}
    - Ok, turning {OnOff} the {SubjectContext} {SubjectDevice}
- ELSE:
    - Ok, turning the {SubjectDevice} {OnOff}
    - Done, turning {OnOff} the {SubjectDevice}

قم بتدريب واختبار التطبيق الخاص بك باستخدام الإدخال والإخراج التاليين. لاحظ تباين الاستجابات. يتم إنشاء التباين بواسطة بدائل متعددة لقيمة القالب، وأيضاً باستخدام التعبيرات التكيفية.

  • الإدخال: تشغيل التلفزيون
  • الإخراج: موافق، تشغيل التلفزيون
  • الإدخال: تشغيل التلفزيون
  • الإخراج: تم، تم تشغيل التلفزيون
  • الإدخال: إيقاف تشغيل الأضواء
  • الإخراج: موافق، إيقاف تشغيل جميع الأضواء
  • الإدخال: إيقاف تشغيل أضواء الغرفة
  • الإخراج: موافق، إيقاف تشغيل أضواء الغرفة

استخدام صوت مخصص

طريقة أخرى لتخصيص استجابات الأوامر المخصصة هي تحديد صوت المخرجات. استخدم الخطوات التالية لتبديل الصوت الافتراضي إلى صوت مخصص:

  1. في تطبيق «الأوامر المخصصة»، في الجزء الموجود على اليمين، حدد الإعدادات.
  2. في الجزء الأوسط، حدد Custom voice.
  3. في الجدول، حدد «أداة تخصيص الصوت» أو «الصوت العام».
  4. حدد حفظ.

Screenshot showing sample sentences and parameters.

إشعار

بالنسبة للأصوات العامة، تتوفر الأنواع العصبية لمناطق محددة فقط. لمزيد من المعلومات، راجع المناطق المعتمدة لخدمة الكلام.

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

الآن يستجيب التطبيق في الصوت المحدد، بدلا من الصوت الافتراضي.

الخطوات التالية