1. نظرة عامة
تاريخ آخر تعديل: 2023-08-07
ما ستنشئه
في هذا الدرس التطبيقي حول الترميز، ستنشئ وكيلًا افتراضيًا بسيطًا وتنشره وتضبط إعداداته في Dialogflow CX لمساعدة الغوّاصين المسافرين في الحجوزات الجماعية والرحلات البحرية الخاصة. سيستخدم الوكيل الافتراضي الذكاء الاصطناعي التوليدي وأحدث النماذج اللغوية الكبيرة (LLM) التوليدية من Google لإنشاء ردود الوكيل الافتراضي.
ما ستتعلمه
- كيفية تفعيل واجهات برمجة التطبيقات ذات الصلة
- كيفية تعبئة Dialogflow تلقائيًا لقيم مَعلمات نموذج الصفحة من مَعلمات الغرض
- كيفية ضبط معالجات الأحداث في Dialogflow
- كيفية تفعيل ميزة "الرجوع إلى الذكاء الاصطناعي التوليدي" في معالِجات أحداث "عدم التطابق" المستخدَمة في التدفقات وأثناء ملء المَعلمات
- كيفية ضبط طلب نصي خاص بك للتعامل مع المواقف الحوارية الأساسية وتلك الخاصة بالوكيل
- كيفية كتابة أوصاف جيدة للغرض والمَعلمات من أجل إنشاء معالجات لإعادة الطلب للمَعلمات المطلوبة (بالإضافة إلى عمليات إعادة الطلب التي يحدّدها المستخدم)
- كيفية اختبار وكيلك ومحاكاة أسئلة العملاء التي تؤدي إلى تشغيل الردّ الاحتياطي التوليدي
المتطلبات
- مشروع Google Cloud
- متصفّح مثل Chrome
2. الإعداد
قبل أن تتمكّن من البدء في استخدام ميزة الردّ الاحتياطي التوليدي في Dialogflow CX، عليك تفعيل واجهة برمجة تطبيقات Dialogflow.
تفعيل Dialogflow API باستخدام Cloud Console
- افتح Google Cloud Console في المتصفّح.
- في Google Cloud Console، انتقِل إلى مكتبة واجهات برمجة التطبيقات لتصفُّح واجهات برمجة التطبيقات والخدمات التي يمكن تفعيلها.
- باستخدام شريط البحث في أعلى صفحة "مكتبة واجهات برمجة التطبيقات"، ابحث عن
Dialogflow API، ثم انقر على الخدمة الناتجة. - انقر على الزر تفعيل لتفعيل Dialogflow API في مشروعك على Google Cloud.
استخدام gcloud CLI (طريقة بديلة)
بدلاً من ذلك، يمكن تفعيل واجهة برمجة التطبيقات باستخدام أمر gcloud التالي:
gcloud services enable dialogflow.googleapis.com
إذا تم تفعيل واجهة برمجة التطبيقات بنجاح، من المفترض أن تظهر لك رسالة مشابهة لما يلي:
Operation "operations/..." finished successfully.
الحصول على الرمز
لن تنشئ الوكيل الافتراضي من البداية، بل سنزوّدك بوكيل عليك استعادته من وحدة تحكّم Dialogflow CX ثم تحسينه.
لتنزيل رمز المصدر، اتّبِع الخطوات التالية:
- افتح علامة تبويب متصفّح جديدة، وانتقِل إلى مستودع البرامج واستنسِخه من سطر الأوامر.
- تم تصدير الوكيل الأوّلي كحزمة JSON. فكّ ضغط الملف، وافحص إعدادات البرنامج، وألقِ نظرة على تعريف المسار
Liveaboards.json، ثم تصفّح صفحات المسار والنوايا والكيانات.
3- إنشاء وكيل جديد
فتح وحدة تحكّم Dialogflow
ستستخدم وحدة تحكّم Dialogflow CX مع مشروعك على السحابة الإلكترونية لتنفيذ الخطوات المتبقية في هذا الدرس العملي.
- في المتصفّح، انتقِل إلى وحدة تحكّم Dialogflow CX.
- اختَر مشروع Google Cloud الذي تريد استخدامه، أو أنشِئ مشروعًا جديدًا لاستخدامه.
- ستظهر لك قائمة بالوكلاء في وحدة تحكّم Dialogflow CX.
إذا كانت هذه المرة الأولى التي تستخدم فيها Dialogflow CX، يمكنك الرجوع إلى مستندات Dialogflow CX للحصول على مزيد من المعلومات حول إعداد مشروعك وإعداداتك حسب احتياجاتك.
إنشاء وكيل جديد في Dialogflow CX
- لاستعادة الوكيل الذي تم تنزيله من مستودع GitHub، عليك إنشاء وكيل جديد. من وحدة تحكّم Dialogflow CX، انقر على إنشاء وكيل جديد في أعلى يسار الصفحة.

- انقر على الخيار إنشاء وكيلك الخاص.

- أكمِل النموذج بإعدادات الوكيل أدناه، ثم انقر على إنشاء لإنشاء الوكيل.
- اختَر الاسم المعروض:
Divebooker - اختَر الموقع الجغرافي:
us-central1 - اختَر المنطقة الزمنية المفضَّلة
- اختَر
en - Englishكلغة تلقائية
- سيفتح Dialogflow الوكيل تلقائيًا. لم ننتهِ بعد!
استعادة وكيل Divebooker
- ارجع إلى صفحة قائمة الوكلاء، وحدِّد الوكيل الذي أنشأته للتو. انقر على الخيار
ثم على الزر استعادة. - انقر على خيار تحميل، ثمّ اسحب ملف ZIP الذي سبق أن نزّلته من مستودع GitHub وأفلِته أو اختَره.
- انقر على الزر استعادة لاستيراد الوكيل الذي قدّمناه لك.

أحسنت! لقد انتهيت من إنشاء الوكيل الافتراضي لحجز رحلات الغوص، وهو جاهز لمساعدة عملائك. في القسم التالي، ستختبر هذه الميزة وستعرف مدى فعاليتها في الإجابة عن أسئلة المستخدمين والمساعدة في طلبات الحجز.
4. اختبار الوكيل
توفّر خدمة Dialogflow محاكيًا مدمجًا للتحدّث مع وكلائك ورصد الأخطاء. في كلّ دورة، يمكنك التأكّد من صحة القيم الخاصة بالغرض الذي تمّ تنشيطه، وردّ الوكيل، والصفحة النشطة، ومَعلمات الجلسة.
سنجرّب بعض السيناريوهات وسنبحث في كل سيناريو عن السبب الذي يدفع الوكيل إلى تقديم ردّ معيّن. لنبدأ بالخيار الأول.
النية غير المحدّدة
- في وحدة تحكّم Dialogflow ومن داخل برنامجك الآلي، انقر على اختبار البرنامج الآلي لفتح "المحاكي".

- اكتب تحية للوكيل، مثل
Hello، واطرح سؤالكwhat is a liveaboard?. لا يتطابق السؤال مع أي نوايا، ويتم عرض طلب عام مثل "عذرًا، لستُ متأكدًا من كيفية المساعدة". يمكنك التأكّد من أنّه تم استدعاء الحدث المضمّن sys.no-match-default من خلال فحص الرد الأصلي في "المحاكي".

انتقِل للأسفل إلى نهاية استجابة JSON تقريبًا. يُرجى العِلم أنّه عند البحث عن غرض مطابق، يجد Dialogflow أنّ هذا الغرض هو NO_MATCH ويُطلق حدثًا غير مطابق.

- انتقِل إلى علامة التبويب إنشاء وافتح صفحة البدء في مسار رحلات بحرية.

يتضمّن كل مسار تلقائيًا معالجات أحداث للحدثَين المضمّنَين no-match وno-input. يتم إنشاء معالجات الأحداث هذه تلقائيًا عند إنشاء تدفق، ولا يمكن حذفها.
- انقر على معالج الأحداث sys.no-match-default وانتقِل للأسفل إلى قسم ردود البرنامج الآلي. تقدّم خدمة Dialogflow قائمة بالردود البديلة، ولكن يمكنك أيضًا تحديد أنواع مختلفة من رسائل الردود لتزويد المستخدم النهائي بأكثر من مجرد ردود نصية.

لننتقل الآن إلى المسار السعيد.
المسار الخالي من المشاكل
في الحالة الثانية، تظاهر بأنّك غوّاص يريد حجز رحلة بحرية للغوص لمجموعة من 12 شخصًا إلى جزر غالاباغوس في تموز (يوليو) من العام المقبل.
- في لوحة "المحاكي"، انقر على رمز إعادة الضبط لبدء محادثة جديدة مع الوكيل.


- أخبِر وكيل السفر بأنّك تريد حجز رحلة مستأجرة إلى جزر غالاباغوس وقدِّم له تفاصيل سفرك. لا يلزم استخدام الطلبات نفسها تمامًا الواردة أدناه، بل يمكنك تجربة طلبات أخرى.

- افتح صفحة البدء وانقر على مسار head.send.group.request. انتقِل للأسفل إلى قسم الانتقال الذي يحدّد لـ Dialogflow الصفحة التي يجب الانتقال إليها عند مطابقة هذه النية.

- أغلِق تعريف المسار ووسِّع صفحة جمع المزيد من المعلومات. لاحظ تنفيذ الإدخال وقائمة المَعلمات.

يمكنك تحديد نموذج لكل صفحة في Dialogflow CX، وهو عبارة عن قائمة بالمعلمات التي يجب جمعها من المستخدم النهائي للصفحة. يُرجى العِلم أنّ المساعد لم يطلب وجهة السفر لأنّنا أدرجناها كجزء من الإدخال الأوّلي، كما أنّ الوجهة هي أيضًا مَعلمة للنية. عندما تصبح الصفحة نشطة في البداية وخلال فترة نشاطها، يتم تلقائيًا ضبط أي مَعلمة نموذج لها الاسم نفسه كاسم مَعلمة الغرض على قيمة مَعلمة الجلسة ويتم تخطّي الطلب المقابل.
- انتقِل إلى علامة التبويب إدارة وانقر على الغرض head.send group request ضمن القسم الأغراض. اطّلِع على عبارات التدريب المقدَّمة لهذا الغرض والأجزاء المشروحة من عبارات التدريب.

- لنفترض أنّ عبارة التدريب هي "أريد تنظيم رحلة إلى كوستاريكا لـ 15 غوّاصًا". تمت إضافة التعليق التوضيحي destination إلى "كوستاريكا"، وnumber-of-guests إلى "15". عند إضافة تعليقات توضيحية إلى أجزاء من عبارة التدريب، يتعرّف Dialogflow على أنّ هذه الأجزاء هي مجرد أمثلة على القيم الفعلية التي سيقدّمها المستخدمون النهائيون في وقت التشغيل. لهذا السبب، بالنسبة إلى الإدخال الأوّلي "هل تقدّمون رحلات مستأجرة إلى جزر غالاباغوس؟" استخرجت خدمة Dialogflow مَعلمة الوجهة من "جزر غالاباغوس".
بعد ذلك، سنرى ما يحدث إذا لم نقدّم للوكيل إدخالاً صالحًا عند الطلب منه ملء مَعلمة نموذج.
الإدخال غير صالح
- في لوحة "المحاكي"، انقر على رمز إعادة الضبط لبدء محادثة جديدة مع الوكيل.
- عبِّر عن نيتك في إجراء حجز جماعي، ولكن لا تخبر الوكيل هذه المرة عن المكان الذي تريد الذهاب إليه، وعندما يُطلب منك تحديد وجهة، أجب بقيمة عشوائية لا تشمل كوستاريكا أو غالاباغوس أو المكسيك.

- في علامة التبويب إدارة، انقر على أنواع الكيانات ضمن قسم الموارد. لاحظ علامتَي التبويب التاليتَين: ضمن علامة التبويب "النظام"، يمكنك العثور على عناصر النظام التي يستخدمها برنامجك الآلي حاليًا. تقدّم علامة التبويب مخصّص قائمة بالكيانات المخصّصة التي تم إنشاؤها لمطابقة البيانات الخاصة بهذا الوكيل.

- انقر على عنصر الوجهة لمعرفة القيم التي يتطابق معها العنصر. "أوروبا" ليست إحدى الإدخالات وليست مرادفًا أيضًا.
- في مخطط سير العمل، وسِّع صفحة جمع المزيد من المعلومات التي تحتوي على مَعلمات النموذج. انقر على المَعلمة الوجهة.
- في لوحة المَعلمات، انتقِل للأسفل إلى قسم معالجات أحداث إعادة الطلب، ثمّ انقر على معالج الأحداث الإعداد التلقائي لعدم التطابق.
تم تصميم معالج الأحداث على مستوى المَعلمات هذا خصيصًا للتعامل مع إدخالات المستخدمين النهائيين غير الصالحة أثناء ملء النماذج. بما أنّ "أوروبا" هي قيمة إدخال غير متوقّعة، تم استدعاء حدث sys.no-match-default، وتم استدعاء معالج إعادة الطلب المقابل المحدّد لهذا الحدث. يعرض القسم ردّ الوكيل رسالتَين بديلتَين لإعادة الطلب.

أحسنت. تمثّل حالات الاختبار هذه سيناريوهات شائعة يُتوقّع أن يتعامل معها الوكيل بشكل مناسب. في كثير من الأحيان، يطرح المستخدمون أسئلة لا تستطيع روبوتات الدردشة الإجابة عنها أو يقدّمون طلبات لا يمكن لروبوتات الدردشة تنفيذها. من الصعب جدًا التصميم وفقًا لمبدأ الذيل الطويل، أي التصميم بما يتناسب مع المسارات غير الشائعة التي يتّبعها معظم المستخدمين. فكِّر في جميع المشاكل التي يمكن أن تحدث في محادثة وجميع المسارات غير المتوقعة أو غير المتوافقة التي قد يسلكها المستخدمون.
بفضل التطورات في مجال التعرّف التلقائي على الكلام (ASR)، أصبحنا نعرف دائمًا تقريبًا ما قاله المستخدمون بالضبط. ومع ذلك، لا يزال تحديد ما قصده المستخدمون يمثّل تحديًا. في كثير من الأحيان، لا يمكن فهم الجُمل بشكل منفصل، بل يجب فهمها في سياقها. في القسم التالي من هذا الدرس التطبيقي حول الترميز، سنتعرّف على كيفية مساعدة أحدث النماذج اللغوية الكبيرة (LLM) التوليدية من Google في إعادة الحوار إلى مساره الصحيح والمضي قدمًا في المحادثة.
5- تفعيل ميزة "الردّ الاحتياطي من الذكاء الاصطناعي التوليدي"
ما هي ميزة "الردّ الاحتياطي التوليدي"؟
ميزة "الردّ التلقائي التوليدي" هي إحدى ميزات Dialogflow CX التي تستخدم النماذج اللغوية الكبيرة (LLM) من Google لإنشاء ردود الوكيل الافتراضي.
كيف تساعد هذه الميزة؟
بين حالات الاستخدام الرئيسية، هناك عدد من طلبات المستخدمين الشائعة إلى حد ما، مثل تكرار ما قاله الوكيل في حال لم يفهم المستخدم، وإبقاء الخط مفتوحًا عندما يطلب المستخدم ذلك، وتلخيص المحادثة. في الاختبار الأول الذي أجريناه، لم يتمكّن البرنامج من الإجابة عن السؤال "ما هي رحلة الإقامة على متن قارب؟" لأنّنا لم نحدّد نية لهذا السؤال ولم نصمّم مسارًا للتعامل مع هذا النوع من الأسئلة العامة المتعلقة بالغوص ورحلات الإقامة على متن قارب.
حتى مع توفّر نوايا قوية، يظل هناك مجال للخطأ. قد يخرج المستخدمون عن النص من خلال عدم قول أي شيء (خطأ "لم يتم إدخال أي بيانات") أو قول شيء غير متوقع (خطأ "لا تطابق"). على الرغم من أنّ تجنُّب حدوث الأخطاء أفضل من التعامل معها بعد حدوثها، لا يمكن تجنُّب الأخطاء تمامًا. غالبًا ما تكون الردود العامة مثل "عفوًا، لستُ متأكدًا من كيفية المساعدة" أو الحلول المشابهة البسيطة غير كافية. يجب أن تكون رسائل الخطأ مستوحاة من مبدأ التعاون الذي ينص على أنّ التواصل الفعّال يعتمد على افتراض وجود تعاون بين المشاركين في المحادثة.
في القسم التالي، سنتناول كيفية ضبط ميزة "الرجوع إلى الذكاء الاصطناعي التوليدي" لزيادة تغطية القصد وتسهيل معالجة الأخطاء من أجل تقديم تجربة أفضل للعملاء.
تفعيل الردّ الاحتياطي التوليدي لحدث عدم التطابق في التدفق بأكمله
يمكنك تفعيل ميزة "الردّ الاحتياطي التوليدي" في معالِجات أحداث عدم التطابق المستخدَمة في التدفقات أو الصفحات أو أثناء ملء المَعلمات. عند تفعيل الردّ الاحتياطي التوليدي لحدث عدم التطابق، سيحاول Dialogflow إنشاء ردّ توليدي يتم إرجاعه إلى المستخدم كلما تم تفعيل هذا الحدث. في حال تعذُّر إنشاء الردّ، سيتم إصدار الردّ العادي المحدد للوكيل بدلاً من ذلك.
يمكنك تفعيل ميزة "الردّ الاحتياطي التوليدي" في برنامجك على معالِجات أحداث عدم التطابق، والتي يمكن استخدامها في تنفيذ الطلبات في التدفق أو الصفحة أو المَعلمة.
سنبدأ في تفعيل ميزة "الردّ الاحتياطي التوليدي" لحدث no-match-default في مسار Liveaboards بالكامل.
- وسِّع صفحة البدء في التقييم المتواصل.
- انقر على sys.no-match-default ضِمن معالجات الأحداث.
- ضَع علامة في المربّع بجانب تفعيل الردّ الاحتياطي التوليدي ضمن ردود الوكيل، ثم انقر على حفظ


تفعيل الردّ الاحتياطي التوليدي على أحداث معيّنة لا تتضمّن تطابقًا
نريد الآن تفعيل ميزة "الردّ التوليدي الاحتياطي" للتعامل مع المدخلات غير الصالحة عندما يطلب الوكيل عدد الركاب:
- افتح صفحة جمع المزيد من المعلومات التي تحتوي على مَعلمات النموذج. انقر على المَعلمة number-of-guests.
- انتقِل إلى معالج حدث عدم التطابق المستهدَف (مرِّر للأسفل إلى قسم معالجات أحداث إعادة الطلب، ثم انقر على معالج حدث عدم التطابق التلقائي).

- ضَع علامة في المربّع بجانب تفعيل الردّ الاحتياطي التوليدي ضمن ردود الوكيل.

- وأخيرًا، انقر على حفظ.
- كرِّر الآن الخطوات نفسها لتفعيل ميزة "الرجوع إلى الردّ الآلي" لكلّ من الوجهة وعنوان البريد الإلكتروني.
أحسنت. لقد فعّلت ميزة "الردّ الاحتياطي التوليدي" للتعامل مع النوايا غير المتوقّعة وقيم المَعلمات غير الصالحة. بعد ذلك، سنلقي نظرة على كيفية ضبط ميزة الردّ الاحتياطي التوليدي باستخدام طلب نصي يوجّه النموذج اللغوي الكبير إلى كيفية الردّ.
6. ضبط الإجراء الاحتياطي التوليدي
تنقل ميزة الردّ الاحتياطي التوليدي طلبًا إلى نموذج لغوي كبير لإنتاج الردّ الذي تم إنشاؤه. يتخذ الطلب شكل طلب نصي يجمع بين اللغة الطبيعية ومعلومات حول الحالة الحالية للوكيل والمحادثة. يمكن ضبط الميزة بعدة طرق:
- اختَر طلبًا محدّدًا (تم تحديده مسبقًا) لاستخدامه في إنشاء الرد.
- حدِّد طلبًا مخصّصًا.
اختيار طلب سبق تحديده
- في وحدة تحكّم Dialogflow CX، انقر على إعدادات الوكيل.

- انتقِل إلى علامة التبويب تعلُّم الآلة، ثم إلى علامة التبويب الفرعية الذكاء الاصطناعي التوليدي.

تتضمّن هذه الميزة نموذجَين جاهزَين، وهما نموذج النموذج التلقائي (غير مرئي) ونموذج المثال الذي يرشدك إلى كيفية كتابة نماذجك الخاصة.
- اختَر نموذج المثال وانقر على الزر تعديل على يسار القائمة المنسدلة لفحصه.
باستخدام الطلب المحدّد مسبقًا، يمكن للوكيل الافتراضي التعامل مع المواقف الأساسية للمحادثات. على سبيل المثال:
- الترحيب بالمستخدم وتوديعه
- كرِّر ما قاله الوكيل في حال لم يفهم المستخدم.
- الانتظار على الخط عندما يطلب المستخدم ذلك
- تلخيص المحادثة
لنحاول تحديد طلب نصي خاص لوكيل Divebooker.
7. تحديد الطلب الخاص بك
- انسخ الطلب أدناه والصقه في منطقة طلب نصي
You are a friendly agent that likes helping traveling divers.
You are under development and you can only help
$flow-description
At the moment you can't help customers with land-based diving and courses. You cannot recommend local dive shops and diving resorts.
Currently you can $route-descriptions
The conversation between the human and you so far was:
${conversation USER:"Human:" AGENT:"AI"}
Then the human asked:
$last-user-utterance
You say:
- انقر على حفظ كنموذج جديد لتخزين الطلب الجديد كنموذج جديد (اختَر اسمًا جديدًا للنموذج) ثم انقر على حفظ في أسفل يسار اللوحة.

- لتفعيل الطلب الذي تم إنشاؤه حديثًا، عليك أيضًا حفظ الإعدادات.

عند كتابة طلب نصي خاص بك، احرص على أن يكون واضحًا وموجزًا وتوجيهيًا. يمكن أن تؤثر طريقة صياغة الطلب الموجّه إلى النموذج اللغوي الكبير بشكل كبير في جودة الرد الذي ينشئه النموذج. تم تدريب النماذج اللغوية الكبيرة على اتّباع التعليمات، وبالتالي كلّما كان طلبك يشبه تعليمات دقيقة، زادت احتمالية حصولك على نتائج أفضل. صياغة طلب، ثم تكرار العملية لتحسينه استنادًا إلى النتائج التي تحصل عليها
لصياغة طلبات فعّالة، اتّبِع أفضل الممارسات التالية:
- قدِّم وصفًا واضحًا وموجزًا للمهمة التي تريد أن ينفّذها النموذج اللغوي الكبير، لا أكثر ولا أقل. احرِص على أن يكون الوصف كاملاً وموجزًا.
- بالإضافة إلى ذلك، يجب أن يكون الطلب محدّدًا وواضحًا، مع تجنُّب اللغة الغامضة أو المبهمة.
- قسِّم المهام المعقّدة إلى أجزاء أصغر وأكثر قابلية للإدارة. من خلال تقسيم المهمة إلى خطوات أصغر، يمكنك مساعدة النموذج في التركيز على أمر واحد في كل مرة وتقليل احتمال حدوث أخطاء أو التباس.
- لتحسين جودة الردود، أضِف أمثلة في طلبك. يتعلّم النموذج اللغوي الكبير من الأمثلة الواردة في السياق كيفية الردّ.
عند إنشاء طلب، بالإضافة إلى وصف باللغة الطبيعية لنوع السياق الذي يجب إنشاؤه، يمكن أيضًا استخدام العناصر النائبة التالية:
$conversationالمحادثة بين الموظف والمستخدم، باستثناء آخر عبارة نطق بها المستخدم يمكنك تعديل بادئات المنعطفات (مثلاً: "إنسان" أو "ذكاء اصطناعي" أو "أنت" أو "وكيل") في طلب النص$last-user-utteranceآخر عبارة نطقها المستخدم.$flow-descriptionوصف التدفق النشط.$route-descriptionsأوصاف النوايا النشطة
بعد أن أصبح لدينا طلب نصي أولي، تتمثل المهمة التالية في التأكّد من أنّ التدفقات والنوايا تتضمّن أوصافًا جيدة.
8. إضافة أوصاف المسار والغرض
إضافة وصف المسار
- لإضافة وصف إلى مسار رحلات بحرية، يمكنك الوصول إلى إعدادات المسار من خلال تمرير مؤشر الماوس فوق المسار في قسم المسارات.

- انقر على زر الخيارات
. - اختَر إعدادات سير العمل وأضِف الوصف التالي (أو وصفًا مشابهًا):
search, find and book liveaboards.

- انقر على حفظ.
إضافة وصف النية
- لنضِف الآن وصفًا جيدًا إلى الغرض head.send.group.request. انتقِل إلى علامة التبويب إدارة، واختَر النوايا ضمن قسم المراجع، ثم اختَر نية head.send.group.request.
- أضِف الوصف التالي:
assist users with group or full charter reservations. Initially collect travel details including departure period, destination, number of guests (min 4 max 15 people), contact details. The destination must be one of the following in the Pacific: Costa Rica, Mexico, Galapagos Islands
يُرجى العِلم أنّ الوصف يتضمّن معلومات مهمة، مثل الحدّ الأدنى والأقصى لعدد الركاب المسموح به على متن القارب. يُرجى الانتباه إلى هذه النقطة.
- انقر على حفظ.
وبذلك تكون قد أنهيت عملك! لقد فعّلت ميزة "الردّ الاحتياطي التوليدي" في معالجات أحداث عدم التطابق لكلّ من تنفيذ الحوار وتنفيذ المَعلمات. لقد حدّدت أيضًا طلبًا نصيًا خاصًا بك ترسله ميزة "الردّ الاحتياطي التوليدي" إلى نموذج لغوي كبير لإنتاج ردود توليدية.
في القسم التالي، ستعيد اختبار الوكيل لمعرفة كيف يمكنه الإجابة عن الأسئلة الصعبة نفسها التي طرحتها سابقًا.
9- إعادة اختبار الوكيل
بعد إعداد ميزة "الردّ الاحتياطي التوليدي" وتفعيلها في الوكيل الافتراضي، يمكنك طرح أسئلة صعبة مماثلة ومعرفة كيفية التعامل مع الردود.
انقر على اختبار الوكيل لفتح المحاكي مرة أخرى.

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

هل تلقّيت ردًا مفيدًا بدلاً من طلب إعادة صياغة عام؟ رائع! بعد تقديم وصف واضح وموجز للمهام التي تريد أن ينفّذها الوكيل (في طلب النص وفي وصف المسار)، سيصبح الروبوت أكثر ذكاءً بكثير عندما يتعلق الأمر بالإجابة عن الأسئلة التفصيلية بدون إنشاء نوايا محددة. سيقدّر العميل أنّ الموظف يمكنه تقديم ردّ أكثر إفادةً بدلاً من ردّ لا يمكن اتّخاذ أي إجراء بشأنه.
لا تتردد في تحدّي المساعد الآلي، واسأله عمّا إذا كان بإمكانه مساعدتك في العثور على دورة تدريبية للغوص لأنّك لست غواصًا معتمدًا بعد.

صحيح، لم نصمّم الوكيل في الوقت الحالي للمساعدة في دورات الغوص. كيف يعرف موظّف الدعم ذلك؟ في طلب النص، حدّدنا بوضوح ما يمكن لموظف الدعم المساعدة فيه وما لا يمكنه. لا يمكنك حاليًا مساعدة العملاء في ما يتعلّق بالغوص والدروس التدريبية على الأرض. لا يمكنك اقتراح متاجر محلية لبيع معدات الغوص ومنتجعات للغوص"
أعِد الآن اختبار السيناريو السعيد وأضِف المزيد من التفاصيل إلى المحادثة. لنطّلع على التغييرات التي طرأت على التجربة.


عندما يطابق Dialogflow غرضًا أو يحاول جمع مَعلمة وفقًا لتصميم التدفق، سيعرض عمليات التنفيذ المحدّدة في وقت التصميم. عندما يخرج المستخدم عن النص ويطلب ملخّصًا لتفاصيل السفر أو يعرض تقديم رقم هاتفه، يتم تفعيل ميزة "الردّ الاحتياطي التوليدي".
أحسنت. لقد أعدت اختبار السيناريو الإيجابي، وآمل أن تكون قد أجريت محادثة سلسة وطبيعية مع المساعد الآلي أقرب ما يمكن إلى التجربة التي ستخوضها مع موظف دعم يقدّم خدمة مباشرة.
في بعض الأحيان، قد تحدث أخطاء في المحادثة. لنجرِّب اختبارًا مختلفًا، هذه المرة عندما يُطلب منك تحديد عدد الضيوف، قُل رقمًا أكبر من 15.


في ما يلي بعض النقاط التي يجب توضيحها:
- لماذا لا يُعدّ الرقم 20 رقمًا صالحًا؟ لأنّنا وضعنا حدًا لعدد الضيوف المسموح به كجزء من وصف الغرض: "يجمع الوكيل معلومات مثل فترة المغادرة والوجهة وعدد الضيوف ***(الحدّ الأدنى 4 أشخاص والحدّ الأقصى 15 شخصًا)**** وتفاصيل الاتصال*" . إنّ الردّ التوليدي الذي قدّمه نموذج اللغة الكبير "عذرًا، يمكننا المساعدة في حجوزات المجموعات التي تضم ما يصل إلى 15 ضيفًا فقط" يتوافق تمامًا مع القيود التي فرضناها على عدد الضيوف. لفرض ذلك بشكل أكبر، فإنّ عدد الضيوف هو كيان تعبير عادي مخصّص لا يتطابق إلا مع الأرقام المدرَجة في النطاق من 4 إلى 15.
- تستمر المحادثة لأنّ المستخدم يظلّ حريصًا في النهاية على الحصول على عرض لـ 15 غواصًا. يحدث ذلك كثيرًا أثناء المحادثات العادية، فنحن نغيّر رأينا بشكل متكرر. لاحظ كيف يتعاون الوكيل ويوجّه المستخدم بلطف نحو المسار الصحيح.
يتضمّن تصميم المحادثة كتابة نصف الحوار، على أمل أن يكون قويًا بما يكفي ليتمكّن أي شخص من المشاركة وتمثيل النصف الآخر. عند تصميم التطبيقات التي تستهدف الطلبات النادرة، على المطوّرين التركيز على ما يمكن أن يقوله المستخدم في كل خطوة من خطوات الحوار لتحديد المسارات والمعالجات والمَعلمات. لهذا السبب، أضفنا ميزة "الرجوع إلى الردّ التلقائي" المستند إلى الذكاء الاصطناعي التوليدي إلى Dialogflow CX، وذلك لنسمح للمطوّرين بالتركيز على مبادئ تصميم المحادثات والاهتمام بشكل أقل بتفاصيل التنفيذ من أجل تقديم تجارب محادثات فعّالة للمستخدمين.
لنُجرِ اختبارًا آخر، وسنتحداه هذه المرة بمكان غير مدرَج في قائمة الوجهات المتاحة، مثل جزر المالديف. بعد ذلك، سنلقي نظرة سريعة على ما يحدث وراء الكواليس.

يُرجى العِلم أنّه بما أنّنا فعّلنا أيضًا ميزة "الردّ الاحتياطي التوليدي" في حدث no-match للمَعلمة الوجهة، يتم إرسال طلب إلى نموذج لغوي كبير لإنشاء الردّ التوليدي. يتم تجاهل الردود العادية المحدّدة مسبقًا (ضمن "ردّ الوكيل").
ستساعدك مربّعات النص أدناه في فهم أفضل لكيفية مساهمة العناصر النائبة في تحديد شكل الطلب المُرسَل إلى النموذج اللغوي الكبير.
هذا هو طلب النص المخصّص الذي أعددناه في Dialogflow مع تمييز العناصر النائبة بالخط العريض:
You are a friendly agent that likes helping traveling divers.
You are under development and you can only help
$flow-description
At the moment you can't help customers with land-based diving and courses. You cannot recommend local dive shops and diving resorts.
Currently you can $route-descriptions
The conversation between the human and you so far was:
${conversation USER:"Human:" AGENT:"AI"}
Then the human asked:
$last-user-utterance
You say:
في مربع النص أدناه، أدرجتُ الإدخال الذي تلقّاه النموذج اللغوي الكبير والناتج الذي يتضمّن الردّ الذي تم إنشاؤه والذي سيتم إبلاغه للمستخدم:
llm_input: You are a friendly agent that likes helping traveling divers. You are under development and you can only help search, find and book liveaboards. At the moment you can't help customers with land-based diving and courses. You cannot recommend local dive shops and diving resorts. Currently you can assist users who are looking for a group reservation or a full charter. Initially collect travel details including departure period, destination, number of guests (min 4 max 15 people), contact details. The destination must be one of the following in the Pacific: Costa Rica, Mexico, Galapagos Islands. The conversation between the human and you so far was: Human: Hi, my name's Alessia AI Hi Alessia, what can I help you with today? Human: Can you help me find a nice boat for myself and my family? AI To assist you with that I need to collect the details of your travel and then we'll get back to you with an offer shortly. Where would you like to go? We can organize a charter in Costa Rica, Galapagos Islands and several locations around Mexico Then the human asked: The kids want to go to the Maldives llm_output: You say: I'm sorry Alessia, we can only help you with liveaboards in Costa Rica, Galapagos Islands and several locations around Mexico.
على غرار الاختبار الذي تم إجراؤه سابقًا، يتم إنشاء الرد الذي يتم إرساله إلى المستخدم بواسطة النموذج، ويعتمد على المعلومات التي قدّمناها كجزء من وصف الهدف: "يجب أن تكون الوجهة إحدى الوجهات التالية في المحيط الهادئ: كوستاريكا أو المكسيك أو جزر غالاباغوس".
تعديل قائمة العبارات المحظورة
يمكن ضبط ميزة "الردّ الاحتياطي التوليدي" بعدة طرق:
- اختَر طلبًا محدّدًا (تم تحديده مسبقًا) لاستخدامه في إنشاء الرد.
- حدِّد طلبًا مخصّصًا.
- تغيير قائمة العبارات المحظورة
لقد تناولنا حتى الآن الطريقتين الأوليين. لنستكشف الخيار الثالث.
- في إعدادات الوكيل، انتقِل إلى علامة التبويب تعلُّم الآلة، ثم إلى علامة التبويب الفرعية الذكاء الاصطناعي التوليدي.
- في قسم العبارات المحظورة، أضِف الجُمل التالية إلى القائمة:
Dangerous countryHateful placeMedical assistance- انقر على حفظ.
- انقر على رمز إعادة الضبط وأعِد اختبار السيناريو الأخير. بدلاً من تقديم وجهة غوص جميلة حول العالم، أدخِل إحدى العبارات المحظورة.

يتم التحقّق من الطلب والردّ الذي تم إنشاؤه مقارنةً بقائمة العبارات المحظورة. العبارات المحظورة هي عبارات محظورة على الذكاء الاصطناعي التوليدي. إذا كانت المدخلات تتضمّن عبارات محظورة أو عبارات غير آمنة، لن تنجح عملية الإنشاء، وسيتم بدلاً من ذلك إصدار الردّ العادي المحدّد (ضمن "ردّ الوكيل" في عملية التنفيذ نفسها).
أحسنت! لقد تناولنا مجموعة من المواقف الحوارية التي يمكن أن تحدث فيها الإجابات المولَّدة فرقًا كبيرًا. يمكنك مواصلة الاختبار.
10. تهانينا
تهانينا على إكمال الدرس التطبيقي حول الترميز. حان وقت الاسترخاء!

لقد أنشأت وكيلاً افتراضيًا بنجاح وفعّلت الردّ الاحتياطي التوليدي في معالجات أحداث no-match المستخدَمة في التدفقات وأثناء ملء المَعلمات.
يمكن أن توفّر ميزة "الردّ الاحتياطي التوليدي"، إلى جانب الأوصاف الجيدة للتدفقات والنوايا، ردودًا محدّدة وتعاونية من الوكيل بدلاً من الطلبات العامة، مثل "عذرًا، لست متأكدًا من كيفية المساعدة" أو "عذرًا، لقد أدخلت خيارًا غير صالح". يمكن أن توجّه طلبات الخطأ التي تنشئها النماذج اللغوية الكبيرة المستخدمين بلطف نحو المسارات الناجحة أو تعيد ضبط توقعاتهم بشأن ما هو ممكن وما هو غير ممكن.
يمكنك تجربة حالات محادثة أخرى واستكشاف الوظائف الأخرى المتاحة ذات الصلة بـ Dialogflow CX والذكاء الاصطناعي التوليدي.
تنظيف
يمكنك إجراء عملية التنظيف التالية لتجنُّب تحمّل رسوم في حسابك على Google Cloud مقابل الموارد المستخدَمة في هذا الدرس التطبيقي حول الترميز:
- انتقِل إلى وحدة تحكّم Dialogflow CX واحذف جميع الوكلاء الذين أنشأتهم.
- في Google Cloud Console، انتقِل إلى صفحة "واجهات برمجة التطبيقات والخدمات" (APIs and Services) وأوقِف Dialogflow API.
Further reading
يمكنك مواصلة التعرّف على الذكاء الاصطناعي الحواري والذكاء الاصطناعي التوليدي من خلال الأدلة والمراجع التالية:
- مستندات Dialogflow CX
- مستندات الردّ الاحتياطي التوليدي
- الذكاء الاصطناعي التوليدي في Google Cloud
- مقدّمة عن PaLM
الترخيص
يخضع هذا العمل لترخيص المشاع الإبداعي مع نسب العمل إلى مؤلفه 2.0 Generic License.
