1. نظرة عامة
تاريخ آخر تعديل: 07/08/2023
ما الذي ستنشئه
في هذا الدرس التطبيقي حول الترميز، ستعمل على إنشاء وكيل افتراضي بسيط في Dialogflow CX ونشره وإعداده لمساعدة الغواصين المسافرين من خلال الحجوزات الجماعية والمواثيق الخاصة. سيستخدم الوكيل الافتراضي الذكاء الاصطناعي التوليدي وأحدث النماذج اللغوية الكبيرة (LLM) التوليدية من Google لإنشاء ردود موظفي الدعم الافتراضية.
المعلومات التي ستطّلع عليها
- كيفية تفعيل واجهات برمجة التطبيقات ذات الصلة
- كيف يملأ Dialogflow قيم مَعلمات نموذج الصفحة تلقائيًا من مَعلمات intent.
- كيفية ضبط معالِجات الأحداث في Dialogflow
- كيفية تفعيل الإجراء الاحتياطي التوليدي على معالِجات الأحداث غير المطابقة المستخدَمة في التدفقات وأثناء ملء المَعلمات
- طريقة إعداد الطلب النصي الخاص بك للتعامل مع المواقف الحوارية الأساسية وخاصة بالوكيل
- كيفية كتابة أوصاف جيّدة للمعلَمات ونية الشراء لإنشاء معالجات إعادة طلب للمعلَمات المطلوبة (بالإضافة إلى طلبات من تحديد المستخدم)
- طريقة اختبار الوكيل ومحاكاة أسئلة العملاء التي تؤدي إلى تنفيذ الإجراء الاحتياطي التوليدي
المتطلبات
- مشروع على Google Cloud
- متصفّح مثل Chrome
2. بدء الإعداد
قبل بدء استخدام الميزة الاحتياطية التوليدية في Dialogflow CX، يجب تفعيل واجهة برمجة التطبيقات Dialogflow.
تفعيل واجهة برمجة تطبيقات Dialogflow باستخدام Cloud Console
- افتح وحدة تحكُّم Google Cloud في المتصفّح.
- في Google Cloud Console، انتقِل إلى مكتبة واجهة برمجة التطبيقات لتصفّح واجهات برمجة التطبيقات والخدمات التي يمكن تفعيلها.
- باستخدام شريط البحث أعلى صفحة "مكتبة واجهة برمجة التطبيقات"، ابحث عن
Dialogflow API
، ثم انقر على الخدمة الناتجة. - انقر على الزرّ تفعيل لتفعيل واجهة برمجة تطبيقات Dialogflow في مشروعك على Google Cloud.
استخدام واجهة سطر الأوامر gcloud (نص بديل)
بدلاً من ذلك، يمكن تفعيل واجهة برمجة التطبيقات باستخدام الأمر gcloud التالي:
gcloud services enable dialogflow.googleapis.com
إذا تم تفعيل واجهة برمجة التطبيقات بنجاح، من المفترض أن تظهر لك رسالة مشابهة لما يلي:
Operation "operations/..." finished successfully.
الحصول على الرمز
لن تنشئ الوكيل الافتراضي من البداية، بل سنقدّم لك وكيلاً عليك استعادته من وحدة تحكم Dialogflow CX ثم تحسينه.
لتنزيل رمز المصدر:
- افتح علامة تبويب متصفِّح جديدة، وانتقِل إلى مستودع الوكلاء، واستنساخها من سطر أوامر.
- تم تصدير الوكيل الأولي كحزمة JSON. يُرجى فك ضغط الملف وفحص إعدادات الوكيل والاطّلاع على تعريف مسار
Liveaboards.json
وتصفُّح صفحات التدفق والأهداف والكيانات في النهاية.
3- إنشاء وكيل جديد
فتح وحدة تحكّم Dialogflow
ستستخدم وحدة تحكّم Dialogflow CX إلى جانب مشروعك على Google Cloud لتنفيذ الخطوات المتبقية في هذا الدرس التطبيقي حول الترميز.
- في المتصفّح، انتقِل إلى وحدة تحكُّم 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 ويطرح حدثًا غير متطابق.
- بدِّل إلى علامة التبويب إنشاء وافتح الصفحة الرئيسية لمسار لوحات المباشرة.
يحتوي كل مسار تلقائيًا على معالِجات أحداث للأحداث المضمَّنة التي لا تطابق ولا تحتوي على إدخالات. يتم إنشاء معالِجات الأحداث هذه تلقائيًا عند إنشاء تدفق، ولا يمكن حذفها.
- انقر على معالِج الحدث sys.no-match-default وانتقِل للأسفل إلى قسم AgentResponse (ردود الوكيل). توفّر منصة Dialogflow قائمة بالردود البديلة، ولكن يمكنك أيضًا تحديد أنواع مختلفة من رسائل الرد لتزويد المستخدم النهائي بمعلومات أكثر من الردود النصية فقط.
لننتقل إلى المسار الصحيح الآن!
المسار الصحيح
في هذه الحالة الثانية، تظاهر بأنك غواص يريد حجز رحلة غوص لمجموعة من 12 شخصًا إلى جزر غالاباغوس العام المقبل في يوليو.
- في لوحة المحاكي، انقر على الرمز إعادة ضبط لبدء محادثة جديدة مع الوكيل.
- أخبر الوكيل الذي تريد حجز تأجير فيه إلى جزر غالاباغوس وقدم تفاصيل سفرك. لست بحاجة إلى استخدام الطلبات نفسها أدناه، بل جرِّبها بنفسك.
- افتح الصفحة الرئيسية وانقر على المسار head.send.group.request. انتقِل للأسفل إلى قسم النقل الذي يطلب من Dialogflow الانتقال إلى الصفحة عند مطابقة هذا الغرض.
- أغلِق تعريف المسار ووسِّع الصفحة جمع معلومات إضافية. لاحظ تنفيذ الإدخال وقائمة المعلمات.
في كل صفحة في Dialogflow CX، يمكنك تحديد نموذج، وهو قائمة بالمَعلمات التي يجب جمعها من المستخدم النهائي للصفحة. يُرجى العِلم أنّ الوكيل لم يطلب الوصول إلى وجهة السفر لأنّنا أرسلناها كجزء من الإدخال الأوّلي، وأنّ destination هي أيضًا مَعلمة intent. عندما تصبح الصفحة نشطة في البداية وخلال فترة نشاطها، يتم تلقائيًا ضبط أي مَعلمة نموذج تحمل الاسم نفسه كمَعلمة intent على قيمة مَعلمة الجلسة، ويتم تخطّي الطلب المقابل.
- بدِّل إلى علامة التبويب إدارة وانقر على هدف head.send ضمن قسم Intents. انظر إلى عبارات التدريب المقدمة لهذا الغرض والأجزاء التي تتضمن تعليقات توضيحية من عبارات التدريب.
- ضع في اعتبارك عبارة التدريب "أحتاج إلى تنظيم رحلة إلى كوستاريكا لـ 15 غواصًا". "كوستاريكا" تتم إضافة الوجهة و"15" إليهما مع عدد الضيوف. عند إضافة تعليقات توضيحية إلى أجزاء من عبارة تدريبية، تدرك منصة Dialogflow أنّ هذه الأجزاء هي مجرد أمثلة للقيم الفعلية التي سيوفّرها المستخدمون النهائيون في وقت التشغيل. وهذا هو سبب الإدخال الأولي "هل توفرون مواثيق لجزر غالاباغوس؟" استخرج Dialogflow المَعلمة الوجهة من "جزر غالاباغوس".
سنلقي نظرة بعد ذلك على ما سيحدث في حال عدم تزويد الوكيل بإدخال صالح عندما يُطلب منك ملء مَعلمة نموذج.
إدخال غير صالح
- في لوحة المحاكي، انقر على الرمز إعادة ضبط لبدء محادثة جديدة مع الوكيل.
- يُرجى التعبير عن نيتك إجراء حجز جماعي، ويُرجى عدم إعلام الوكيل بالمكان الذي تريد الذهاب إليه وعندما يُطلب منك الرد على وجهة مع تقديم قيمة عشوائية، وهي ليست كوستاريكا أو غالاباغوس أو المكسيك.
- في علامة التبويب إدارة، انقر على أنواع الكيانات ضمن قسم الموارد. لاحظ علامتَي تبويب: ضمن علامة التبويب "النظام"، يمكنك العثور على كيانات النظام التي يستخدمها الوكيل حاليًا. تقدِّم علامة التبويب مخصّص قائمة بالعناصر المخصّصة التي تمّ إنشاؤها لمطابقة البيانات الخاصّة بهذا الوكيل.
- انقر على كيان الوجهة لمعرفة القيم التي يتطابق معها الكيان. "أوروبا" ليس أحد الإدخالات وليس مرادفًا أيضًا.
- في مخطط التدفق، وسِّع صفحة جمع معلومات إضافية التي تحتوي على مَعلمات النموذج. انقر على المَعلمة destination.
- في لوحة المَعلمات، انتقِل للأسفل إلى قسم معالِجات أحداث إعادة طلب الوصول، ثم انقر على معالِج الأحداث التلقائية لعدم المطابقة.
يهدف معالِج الأحداث على مستوى المَعلمة تحديدًا إلى معالجة البيانات غير الصالحة التي يُدخلها المستخدمون النهائيون أثناء ملء النموذج. لأنّ "أوروبا" عبارة عن إدخال غير متوقع، وتم استدعاء حدث sys.no-match-default، وتم استدعاء معالج طلب إعادة الطلب المقابل الذي تم تحديده لهذا الحدث. يعرض القسم يقول موظّف الدعم رسالتَين بديلتَين لإعادة الطلب.
أحسنت. تمثّل حالات الاختبار هذه سيناريوهات شائعة يُتوقّع من موظّف الدعم التعامل معها بشكلٍ مناسب. في كثير من الأحيان، يطرح المستخدمون أسئلة لا تستطيع برامج التتبّع الإجابة عنها أو يقدّمون طلبات لا تستطيع برامج التتبّع تلبيتها. من الصعب جدًا تصميم ذيل طويل، ما يعني أنّ المسارات قديمة سيتبعها معظم المستخدمين. فكّر في كل الأشياء التي يمكن أن تحدث بشكل خاطئ في المحادثة وجميع المسارات غير المتوقعة أو غير المتوافقة التي قد يتخذها المستخدمون.
تعني التطورات في ميزة التعرف التلقائي على الكلام (ASR) أننا نعرف دائمًا بالضبط ما يقوله المستخدمون. ومع ذلك، لا يزال تحديد ما يقصده المستخدمون يمثل تحديًا. لا يمكن فهم الكلام بمعزل عن غيرها في كثير من الأحيان؛ لا يمكن فهمها إلا في السياق. في القسم التالي من هذا الدرس التطبيقي حول الترميز، سنتعرّف على كيفية الاستفادة من أحدث النماذج اللغوية الكبيرة (LLM) من Google في إعادة الحوار نحو مساره الصحيح.
5- تفعيل الإجراء الاحتياطي التوليدي
ما هي الميزة الاحتياطية التوليدية؟
الميزة الاحتياطية التوليدية هي إحدى ميزات Dialogflow CX التي تستخدم النماذج اللغوية الكبيرة (LLM) من Google لإنشاء ردود للموظّفين الافتراضيين.
ما هي فوائد ذلك؟
بين حالات الاستخدام الرئيسية، هناك عدد من طلبات المستخدمين الشائعة إلى حد ما مثل تكرار ما قاله موظف الدعم في حال لم يفهمه، يتم الضغط مع الاستمرار على السطر عندما يطلب المستخدم ذلك وتلخيص المحادثة. في الاختبار الأول الذي أجريناه، لم يجيب الوكيل عن السؤال "ما المقصود بلوحة مباشرة؟" لأننا لم ننشئ هدفًا وصممنا التدفق للتعامل مع هذه الأنواع من الأسئلة العامة المتعلقة بالغوص العميق وألواح الطاقة الحية.
حتى مع وجود نوايا قوية، لا يزال هناك مجال للخطأ. وقد يخرج المستخدمون عن النص البرمجي من خلال البقاء في الوضع الصامت (خطأ "لم يتم إدخال أي إدخال) أو قول أمر غير متوقع (خطأ "عدم تطابق البيانات"). في حين أن منع حدوث الأخطاء أفضل من معالجة الأخطاء بعد حدوثها، لا يمكن تجنب الأخطاء تمامًا. طلبات عامة مثل "عذرًا، لست متأكدًا من كيفية تقديم المساعدة" أو الحلول المشابهة ذات الحد الأدنى القابل للتطبيق غالبًا ما لا تكون جيدة بما يكفي. يجب استلهام رسائل الأخطاء من المبدأ التعاوني الذي يعتمد على افتراض أنّ هناك نقصًا في التعاون بين المشاركين في المحادثة.
في القسم التالي، سنلقي نظرة على كيفية ضبط الميزة الاحتياطية التوليدية لزيادة تغطية الأهداف وتبسيط عملية معالجة الأخطاء من أجل تقديم تجربة أفضل للعملاء.
تفعيل الإجراء الاحتياطي التوليدي لحدث عدم التطابق في المسار بالكامل
يمكنك تفعيل الإجراء الاحتياطي التوليدي على معالِجات الأحداث غير المطابقة المستخدَمة في التدفقات أو الصفحات أو أثناء ملء المَعلمات. عند تفعيل الإجراء الاحتياطي التوليدي لحدث لا يتطابق مع أي حدث، ستحاول Dialogflow إنشاء رد يتم إنشاؤه للمستخدم عند تشغيله. في حال لم ينجح إنشاء الردّ، سيتم إصدار الردّ المعتاد الموصوف إلى موظّف الدعم.
يمكنك تفعيل الإجراء الاحتياطي التوليدي في الوكيل على معالِجات الأحداث غير المطابقة، والتي يمكن استخدامها في تنفيذ التدفق أو الصفحة أو المَعلمة.
سنبدأ بتفعيل الإجراء الاحتياطي التوليدي للحدث التلقائي غير المطابق الذي يخص Liveaboards بالكامل.
- وسِّع الصفحة الرئيسية للمسار.
- انقر على sys.no-match-default ضمن معالجات الأحداث.
- ضع علامة في المربّع تفعيل الإجراء الاحتياطي التوليدي ضمن ردود موظفي الدعم، ثم انقر على حفظ.
تفعيل الإجراء الاحتياطي التوليدي على أحداث محدّدة غير مطابقة
نريد الآن تفعيل الإجراء الاحتياطي التوليدي للتعامل مع البيانات غير الصالحة عندما يطلب الوكيل عدد الركاب:
- افتح صفحة جمع معلومات إضافية التي تحتوي على مَعلمات النموذج. انقر على المعلمة number-of-guests.
- انتقِل إلى معالِج الأحداث بلا مطابقة المستهدفة (انتقِل للأسفل إلى قسم معالِجات أحداث إعادة طلب الوصول، ثم انقر على معالِج الأحداث الإعداد التلقائي لعدم المطابقة).
- ضع علامة في المربّع تفعيل الإجراء الاحتياطي التوليدي ضمن ردود موظفي الدعم.
- وأخيرًا، انقر على حفظ.
- كرِّر الآن الخطوات الدقيقة لتفعيل الإجراء الاحتياطي التوليدي للوجهة وعنوان البريد الإلكتروني
أحسنت. لقد فعّلت الإجراء الاحتياطي التوليدي للتعامل مع الأهداف غير المتوقّعة وقيم المَعلمات غير الصالحة. سنتعرّف تاليًا على كيفية ضبط الميزة الاحتياطية التوليدية من خلال طلب نصي يقدّم تعليمات إلى النموذج اللغوي الكبير حول كيفية الردّ.
6- ضبط الإجراء الاحتياطي التوليدي
تنقل الميزة الاحتياطية التوليدية طلبًا إلى نموذج لغوي كبير لإنتاج الاستجابة التي يتم إنشاؤها. يكون الطلب على شكل طلب نصي يتضمّن مزيجًا من اللغة الطبيعية والمعلومات حول الحالة الحالية للموظف والمحادثة. يمكن إعداد الميزة بعدة طرق:
- يمكنك اختيار طلب محدّد (محدّد مسبقًا) ليتم استخدامه لإنشاء الردود.
- حدِّد طلبًا مخصّصًا.
اختيار طلب محدّد مسبقًا
- في وحدة تحكّم Dialogflow CX، انقر على إعدادات الوكيل (Agent Settings).
- انتقِل إلى علامة التبويب ML، ثم إلى علامة التبويب الفرعية ML.
تظهر هذه الميزة في العلبة التي تحتوي على نموذجَي طلب، هما النموذج التلقائي (غير المرئي) والنموذج المثال الذي يرشدك في كتابة طلباتك الخاصة.
- اختَر النموذج Example ثم انقر على الزر تعديل في الجانب الأيسر من القائمة المنسدلة لفحصه.
من خلال الطلب المحدَّد مسبقًا، يمكن للوكيل الافتراضي التعامل مع المواقف الحوارية الأساسية. على سبيل المثال:
- رحِّب بالمستخدم وودعه.
- كرِّر ما قاله الوكيل في حال لم يفهمه المستخدم.
- الضغط مع الاستمرار على الخط عندما يطلبه المستخدم
- لخص المحادثة.
لنحاول تحديد مطالبة نصية معيّنة لوكيل 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:
- اختَر حفظ كنموذج جديد لتخزين الطلب الجديد كنموذج جديد (اختَر اسم نموذج جديدًا) وانقر على حفظ في أسفل يسار اللوحة.
- لجعل الطلب الذي تم إنشاؤه حديثًا هو الطلب النشط، عليك أيضًا حفظ الإعدادات.
عند كتابة مطالبة نصية، كن واضحًا ومختصرًا وإرشاديًا. إنّ طريقة كتابة الطلب إلى النموذج اللغوي الكبير قد تؤثّر بشكل كبير في جودة ردّ النموذج اللغوي الكبير. يتم تدريب النماذج اللغوية الكبيرة على اتّباع التعليمات، وبالتالي كلما كان طلبك يشبه تعليمات دقيقة، من المرجّح أن تحصل على نتائج أفضل. يمكنك صياغة طلب بناءً على النتائج التي تحصل عليها، ثم التكرار لتحسينه.
لصياغة طلبات فعّالة، اتّبِع أفضل الممارسات التالية:
- قدِّم وصفًا واضحًا وموجزًا للمهمة التي تريد أن ينفّذها النموذج اللغوي الكبير. لا أكثر ولا أقل. اجعل القصة كاملة وقصيرة.
- بالإضافة إلى ذلك، يجب أن تكون المطالبة محددة ومحددة جيدًا، وتتجنب اللغة الغامضة أو الغامضة.
- قسِّم المهام المعقّدة إلى أجزاء أصغر يسهل التعامل معها. من خلال تقسيم المهمة إلى خطوات أصغر، يمكنك مساعدة النموذج في التركيز على شيء واحد في كل مرة وتقليل احتمالية حدوث أخطاء أو ارتباك.
- لتحسين جودة الردود، عليك إضافة أمثلة في طلبك. يتعلّم "النموذج اللغوي الكبير" (LLM) من السياق من الأمثلة حول كيفية الردّ.
عند إنشاء مطالبة، بالإضافة إلى وصف اللغة الطبيعية لنوع السياق الذي يجب إنشاؤه، يمكن أيضًا استخدام العناصر النائبة التالية:
$conversation
المحادثة بين الوكيل والمستخدم، باستثناء العبارة الأخيرة للمستخدم. يمكنك تعديل بادئات الانعطاف (على سبيل المثال: "إنسان"، "AI" أو "أنت" أو "الوكيل") في الطلب النصي$last-user-utterance
العبارة الأخيرة التي يقولها المستخدم$flow-description
وصف التدفق للتدفق النشط$route-descriptions
أوصاف الأغراض من الأهداف النشطة.
الآن بعد أن أصبح لدينا مطالبة نصية أولية، فإن المهمة التالية هي التأكد من وجود أوصاف جيدة للتدفق والنوايا.
8. إضافة أوصاف للتدفق والنية
إضافة وصف التدفق
- لإضافة وصف إلى مسار لوحات Liveboard، يمكنك الوصول إلى إعدادات التدفق من خلال تمرير مؤشر الماوس فوق التدفق في قسم التدفقات.
- انقر على زر الخيارات.
- اختَر إعدادات التدفق وأضِف الوصف التالي (أو وصفًا مشابهًا):
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 ضيفًا". يتوافق تمامًا مع القيود التي وضعناها على عدد النزلاء. لفرض ذلك بشكل أكبر، يكون "عدد الضيوف" عبارة عن كيان تعبير مُخصَّص يطابق الأرقام المضمّنة في النطاق من 4 إلى 15 فقط.
- وتستمر المحادثة لأن المستخدم في النهاية لا يزال حريصًا على الحصول على عرض لـ 15 غواصًا. يحدث هذا بشكل متكرر أثناء المحادثات الطبيعية، ونغير رأينا كثيرًا. لاحِظ كيف يكون الوكيل متعاونًا ويوجّه المستخدم بلطف نحو المسار الناجح.
يتضمن تصميم المحادثة كتابة نص برمجي لنصف من الحوار، على أمل أن يكون قويًا بما يكفي بحيث يمكن لأي شخص التدخل والتمثيل للنصف الآخر. عند التصميم الأقل تكرارًا أو استخدامًا، يحتاج المطورون إلى التركيز على ما يمكن أن يقوله المستخدم في كل خطوة في مربع الحوار لتحديد المسارات والمعالجات والمعلمات. ولهذا السبب، أضفنا الميزة الاحتياطية التوليدية إلى Dialogflow CX: للسماح للمطوّرين بالتركيز على مبادئ تصميم المحادثات والتركيز بشكل أقل على تفاصيل التنفيذ من أجل توفير تجارب محادثة فعّالة للمستخدمين.
لنُجري اختبارًا آخر، ولكن نتحدى برنامج التتبُّع مرة أخرى باستخدام مكان غير مُدرَج في قائمة الوجهات المتاحة مثل جُزر المالديف. ثم سنلقي نظرة سريعة على ما يحدث وراء الكواليس.
يُرجى العِلم أنّه بما أنّنا فعَّلنا أيضًا الإجراء الاحتياطي التوليدي على حدث no-match
للمَعلمة destination، يتم إرسال طلب إلى نموذج لغوي كبير لإنشاء الردّ الذي تم إنشاؤه. ويتم تجاهل الردود العادية الموصوفة (وفقًا لما يقوله الوكيل).
ستساعدك مربعات النص أدناه في فهم أفضل لكيفية مساعدة العناصر النائبة في تشكيل الطلب المرسل إلى النموذج اللغوي الكبير.
هذا هو الطلب النصي المخصَّص الذي ضبطناه في 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 country
Hateful place
Medical assistance
- انقر على حفظ.
- انقر على رمز إعادة الضبط وأعِد اختبار السيناريو الأخير. وبدلاً من توفير وجهة جميلة للغوص في جميع أنحاء العالم، يمكنك استخدام إحدى العبارات المحظورة.
يتم التحقّق من الطلب والردّ الذي تم إنشاؤه وفقًا لقائمة العبارات المحظورة. إنّ العبارات المحظورة هي عبارات محظورة يستخدم الذكاء الاصطناعي التوليدي. إذا تضمّن الإدخال عبارات محظورة أو عبارات تُعتبر غير آمنة، لن تنجح عملية الإنشاء، وسيتم إصدار الاستجابة المعتادة (وفقًا لما ذكره الوكيل ضِمن طريقة التنفيذ نفسها) بدلاً من ذلك.
أشياء رائعة! تناولنا مجموعة من المواقف الحوارية التي يمكن فيها للردود التوليدية أن تُحدث فرقًا كبيرًا. يمكنك مواصلة الاختبار.
10. تهانينا
أحسنت في إكمال الدرس التطبيقي حول الترميز. حان وقت الاسترخاء.
لقد أنشأت بنجاح وكيلاً افتراضيًا وفعّلت الإجراء الاحتياطي التوليدي على معالِجات أحداث "no-match
" المستخدَمة في التدفقات وأثناء تعبئة المَعلمات.
يمكن للميزة الاحتياطية التوليدية بالإضافة إلى الوصف الجيد للتدفق والنية تقديم ردود محدّدة وتعاونية لموظّف الدعم، بدلاً من الطلبات العامة، مثل "عذرًا، لست متأكدًا من كيفية تقديم المساعدة". أو "عذرًا، لقد أدخلت خيارًا غير صالح". يمكن أن تؤدي طلبات الخطأ التي تنشئها النماذج اللغوية الكبيرة إلى توجيه المستخدمين برفق نحو المسارات الناجحة أو إعادة تحديد توقعاتهم بشأن ما هو ممكن وغير ممكن.
يمكنك اختبار المواقف الحوارية الأخرى واستكشاف الوظائف الأخرى المتاحة المتعلّقة بتطبيق Dialogflow CX والذكاء الاصطناعي التوليدي.
تنظيف
يمكنك تنفيذ المهام التالية لتجنُّب تحمُّل أي رسوم من حسابك على Google Cloud مقابل الموارد المستخدَمة في هذا الدرس التطبيقي حول الترميز:
- انتقِل إلى وحدة تحكّم Dialogflow CX واحذف جميع برامج الوكلاء التي أنشأتها.
- في وحدة التحكّم في Google Cloud، انتقِل إلى صفحة "واجهات برمجة التطبيقات والخدمات" وأوقِف واجهة برمجة تطبيقات Dialogflow.
قراءة إضافية
يمكنك مواصلة التعرّف على الذكاء الاصطناعي الحواري والذكاء الاصطناعي التوليدي من خلال الأدلة والمراجع التالية:
- مستندات حول Dialogflow CX
- مستندات عن الإجراء الاحتياطي التوليدي
- الذكاء الاصطناعي التوليدي في Google Cloud
- مقدّمة عن نموذج PaLM
الترخيص
هذا العمل مرخّص بموجب رخصة المشاع الإبداعي 2.0 مع نسب العمل إلى مؤلف عام.