إنشاء تطبيق Dialogflow CX في Google Chat يفهم اللغة الطبيعية ويستجيب لها

توضّح هذه الصفحة كيفية إنشاء تطبيق Google Chat يمكنه فهم اللغة الطبيعية والردّ بها باستخدام Dialogflow. يستخدم هذا الدليل Dialogflow CX، الذي يتضمّن عملية تكامل مباشرة مع Google Chat. يمكنك أيضًا استخدام Dialogflow ES لإنشاء تطبيق Dialogflow ES Google Chat باتّباع دليل ‫Dialogflow ES Google Chat.

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

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

  • حجز رحلات جوية
  • تحديد مواعيد مع الأطباء
  • طلب توصيل الطعام
  • الإجابة عن أسئلة حول كتالوج منتجات البيع بالتجزئة، مثل ما إذا كانت السلع متوفرة بألوان أخرى
  • صفحة اختيار وكيل Dialogflow المُعدّ مسبقًا
    الشكل 1. اختيار وكيل مُعدّ مسبقًا لتطبيق Chat في Dialogflow
  • اختبار الوكيل في Dialogflow CX
    الشكل 2. اختبار الوكيل في Dialogflow CX للتأكّد من أنّ منطق الوكيل وإعداداته تعمل على النحو المطلوب يعرض الرسم البياني مجموعة متسلسلة من الصفحات الموضوعية التي تتعلّق بخطوات معيّنة في المحادثة، مثل تحديد موقع استلام سيارة مستأجرة والموقع الجغرافي لإرجاع السلع، ويضبط المنطق الذي يربط بينها. يتم اختبار المحادثة في محاكي.
  • ضبط تطبيق Chat في Dialogflow
    الشكل 3. ضبط تطبيق Chat لمعالجة الردود باستخدام وكيل Dialogflow CX في صفحة إعدادات Chat API في Google Cloud Console
  • اختبار تطبيق Chat في Dialogflow CX
    الشكل 4. إجراء محادثة حول حجز سيارة مستأجرة باستخدام تطبيق Dialogflow Chat في Google Chat

الأهداف

  • إعداد البيئة
  • إنشاء وكيل Dialogflow CX ونشره
  • إنشاء تطبيق Chat ونشره باستخدام وكيل Dialogflow CX
  • اختبِر تطبيق Chat.

المتطلبات الأساسية

الهندسة المعمارية

يوضّح المخطّط التالي بنية تطبيق Chat تم إنشاؤه باستخدام Dialogflow:

بنية تطبيق Chat تم تنفيذه باستخدام Dialogflow

في الرسم البياني السابق، يتضمّن تفاعل المستخدم مع تطبيق Chat من Dialogflow تدفق المعلومات التالي:

  1. يرسل أحد المستخدمين رسالة في Chat إلى تطبيق Chat، إما في رسالة مباشرة أو في مساحة Chat.
  2. يتلقّى وكيل Dialogflow الافتراضي، الذي يستضيفه Google Cloud، الرسالة ويعالجها لإنشاء ردّ.
  3. يمكنك اختياريًا استخدام خطاف ويب في Dialogflow، ما يتيح لوكيل Dialogflow التفاعل مع خدمات خارجية تابعة لجهات خارجية، مثل نظام إدارة المشاريع أو أداة إصدار التذاكر.
  4. يرسل وكيل Dialogflow ردًا إلى خدمة تطبيق Chat في Chat.
  5. يتم تسليم الردّ إلى مساحة Chat.

إعداد البيئة

قبل استخدام واجهات Google APIs، عليك تفعيلها في مشروع على Google Cloud. يمكنك تفعيل واجهة برمجة تطبيق واحدة أو أكثر في مشروع واحد على Google Cloud.
  1. في Google Cloud Console، فعِّل Google Chat API وDialogflow API.

    تفعيل واجهات برمجة التطبيقات

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

  3. تأكَّد من تفعيل واجهات برمجة التطبيقات الصحيحة، ثم انقر على تفعيل.

إنشاء وكيل Dialogflow CX

وكيل Dialogflow CX هو وكيل افتراضي يتعامل مع المحادثات المتزامنة مع المستخدمين النهائيين. وهي وحدة لفهم اللغة الطبيعية، تستطيع فهم الفروق الدقيقة في اللغة البشرية. يحوّل Dialogflow نص المستخدم النهائي أثناء المحادثة إلى بيانات منظَّمة يمكن لتطبيقاتك وخدماتك فهمها. تصميم وإنشاء وكيل Dialogflow للتعامل مع أنواع المحادثات المطلوبة لنظامك

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

في ما يلي كيفية إنشاء وكيل Dialogflow CX:

  1. في وحدة تحكّم Dialogflow CX، افتح وحدة تحكّم Dialogflow CX. انقر على القائمة > Dialogflow CX.

    الانتقال إلى وحدة تحكّم Dialogflow CX

  2. اختَر مشروعًا على Google Cloud. للعثور على مشروعك، قد تحتاج إلى النقر على الكل ثم البحث عنه.

  3. يمكنك الآن اختيار وكيل مُعدّ مسبقًا أو إنشاء وكيل خاص بك. إذا كنت تفضّل استكشاف تفاصيل تخصيص الوكيل في وقت لاحق، اختَر أحد الوكلاء المبرمَجين مسبقًا، الذين يساعدون أيضًا في التعرّف على الإجراءات التي يمكن للوكلاء تنفيذها.

    لاختيار وكيل مُعدّ مسبقًا، اتّبِع الخطوات التالية:

    1. انقر على استخدام وكلاء مسبقَي الإنشاء.
    2. اختَر وكيلًا مُعدًّا مسبقًا. في هذا الدليل، اختَر السفر: استئجار سيارة.

      يتم تصنيف الوكلاء على أنّهم مبتدئون أو متوسطو الخبرة أو متقدّمون استنادًا إلى عدد الميزات التي يستخدمها الوكيل ومدى تطوّر منطق المحادثة لديه. قد يتطلّب اختيار وكيل بمستوى متوسط أو متقدّم إجراء تخصيصات وإعدادات خاصة بالوكيل، بما في ذلك تفعيل الميزات وواجهات برمجة التطبيقات في Google Cloud Console.

    3. انقر على الاستيراد كوكيل.

    لإنشاء وكيلك الخاص، اتّبِع الخطوات التالية:

    1. انقر على إنشاء وكيل.
    2. انقر على إنشاء تلقائي لإنشاء وكيل مستودع بيانات أو انقر على إنشاء وكيلك الخاص لإنشاء أنواع أخرى من الوكلاء.

    للحصول على شرح تفصيلي لعملية إنشاء الوكيل، يُرجى الاطّلاع على إنشاء وكيل Dialogflow CX.

  4. ضبط الإعدادات الأساسية للوكيل:

    1. في الاسم المعروض، أدخِل اسمًا معروضًا.
    2. اختَر الموقع الجغرافي المفضّل. إذا أردت تغيير إعدادات الموقع الجغرافي المتقدّمة، انقر على تعديل.
    3. اختَر المنطقة الزمنية المفضَّلة.
    4. اختَر اللغة التلقائية للوكيل. لا يمكنك تغيير اللغة التلقائية لوكيل بعد إنشائه.
  5. انقر على إنشاء. يبدأ Dialogflow CX في إنشاء الوكيل، ثم يعرض مسار بدء الوكيل التلقائي.

  6. يمكنك تخصيص الوكيل إذا أردت. للحصول على شرح تفصيلي حول عملية تخصيص الوكيل، يُرجى الاطّلاع على إنشاء وكيل Dialogflow CX.

  7. كأفضل ممارسة، اختبِر الوكيل باتّباع الخطوات التالية:

    1. انقر على اختبار الوكيل.
    2. انقر على اختبار الوكيل في البيئة.
    3. في "البيئة"، اختَر مسودة.
    4. في Flow، اختَر Default Start Flow.
    5. في "الصفحة"، انقر على صفحة البدء.
    6. في خانة إدخال المحتوى التحدّث إلى وكيل، اكتب Hello واضغط على Enter. يردّ الوكيل بتقديم نفسه.
    7. أكمِل الاختبار من خلال إجراء محادثة الاختبار التجريبي.
  8. تم إنشاء وكيل Dialogflow CX. ارجع إلى وحدة تحكّم Dialogflow CX. انقر على القائمة > Dialogflow CX.

    الانتقال إلى وحدة تحكّم Dialogflow CX

  9. ضِمن الوكلاء، انقر على > نسخ الاسم. احفظ هذا الاسم، لأنّك ستستخدمه عند إعداد تطبيق Chat.

إنشاء تطبيق Chat وربطه بوكيل Dialogflow

بعد إنشاء وكيل Dialogflow CX، اتّبِع الخطوات التالية لتحويله إلى تطبيق Chat:

  1. في Google Cloud Console، انتقِل إلى Google Chat API. ابحث عن "Google Chat API" وانقر على Google Chat API، ثم انقر على إدارة.

    الانتقال إلى Chat API

  2. انقر على الإعداد وأعِدّ تطبيق Chat باتّباع الخطوات التالية:

    1. في حقل اسم التطبيق، أدخِل Dialogflow App.
    2. في عنوان URL للأفاتار، أدخِل https://developers.google.com/workspace/chat/images/quickstart-app-avatar.png.
    3. في الوصف، أدخِل Responds to real human conversation.
    4. ضمن الوظائف، اختَر الانضمام إلى المساحات والمحادثات الجماعية.
    5. ضِمن إعدادات الاتصال، انقر على Dialogflow.
    6. ضِمن إعدادات Dialogflow، اختَر Dialogflow CX.
    7. في اسم مورد الوكيل أو البيئة، الصِق اسم وكيل Dialogflow CX الذي نسخته في نهاية إنشاء وكيل Dialogflow CX.
    8. إتاحة تطبيق Chat لمستخدمين ومجموعات محدّدة في نطاقك وإدخال عنوان بريدك الإلكتروني
    9. ضمن السجلات، اختَر تسجيل الأخطاء في خدمة "التسجيل".
  3. انقر على حفظ.

تطبيق Chat جاهز لتلقّي الرسائل والردّ عليها.

اختبار تطبيق Chat

اختبِر تطبيق Chat في Dialogflow CX من خلال مراسلته في Google Chat.

  1. افتح Google Chat باستخدام حساب Google Workspace الذي قدّمته عند إضافة نفسك كمختبِر موثوق به.

    الانتقال إلى Google Chat

  2. انقر على محادثة جديدة.
  3. في حقل إضافة مستخدم واحد أو أكثر، اكتب اسم تطبيق Chat.
  4. اختَر تطبيق Chat من النتائج. سيتم فتح رسالة مباشرة.

  5. في الرسالة المباشرة الجديدة مع التطبيق، اكتب Hello واضغط على enter.

    سيردّ تطبيق Chat من Dialogflow بالتعريف عن نفسه.

  6. أكمِل الاختبار من خلال إجراء محادثة الاختبار التجريبي.

مثال على محادثة اختبارية

لاختبار تطبيق Chat في Dialogflow CX، سواء في وحدة تحكّم Dialogflow CX أو في Google Chat، عليك إجراء المحادثة التالية. تساعدك هذه الشروحات في فهم الطريقة التي يفسّر بها وكيل Dialogflow CX اللغة الطبيعية للمستخدم وينتج ردًا بلغة طبيعية في كل خطوة من المحادثة. تستند محادثة النموذج هذه إلى الوكيل المُعدّ مسبقًا الذي يُطلق عليه اسم السفر: استئجار سيارة.

مربّع حوار الشرح
المستخدم النهائي: مرحبًا
الوكيل: مرحبًا أنا وكيل تأجير سيارات افتراضي. يمكنني مساعدتك في بدء حجز جديد لاستئجار سيارة. كيف يمكنني مساعدتك اليوم؟
  1. يتم استدعاء مسار نية الترحيب التلقائية في مسار البدء التلقائي.
  2. الردّ على معالج الحالة هذا ("مرحبًا! أنا...") إلى قائمة انتظار الردود.
  3. يرسل الوكيل قائمة الردود إلى المستخدم النهائي.
المستخدم النهائي: أريد استئجار سيارة.
الموظّف: أين تريد استلام المركبة؟
  1. يتم مطابقة مسار الغرض car_rental.reservation_create في صفحة البدء.
  2. تنتقل الجلسة إلى صفحة موقع الاستلام.
  3. لم يتم إكمال نموذج صفحة موقع الاستلام، لذا يستخدم الوكيل المَعلمة pickup_location لتوجيه سؤال إلى المستخدم ("أين تريد استلام..."). التي تتم إضافتها إلى قائمة انتظار الردود.
  4. يرسل الوكيل قائمة الردود إلى المستخدم النهائي.
المستخدم النهائي: لاس فيغاس
الوكيل: حسنًا، سيتم استلام الطلب في لاس فيغاس.
الموظف: هل يختلف موقع تسليم الطلب عن موقع استلامه؟
  1. تعبئ بيانات المستخدم النهائي المَعلمة pickup_location التي طلبها الوكيل في دورة المحادثة السابقة.
  2. يتم مطابقة مسار الغرض car_rental.return_different_location في مسار البدء التلقائي.
  3. يتم تقييم مسار إكمال النموذج في صفحة موقع الاستلام واستدعاؤه. ويتضمّن هذا الردّ عملية تنفيذ ("حسنًا، سيتم توصيل طلبك...")، ويتم إضافته إلى قائمة انتظار الردود مع الإشارة إلى مَعلماته التي تم تحليلها إلى قيم فعلية قدّمها المستخدم النهائي.
  4. تنتقل الجلسة إلى صفحة تأكيد الموقع الجغرافي.
  5. تحتوي صفحة تأكيد الموقع الجغرافي على حقل إدخال ("هل يختلف موقع التسليم...")، التي تتم إضافتها إلى قائمة انتظار الردود.
  6. يرسل الوكيل قائمة الردود إلى المستخدم النهائي.
المستخدم النهائي: نعم. سأعيد السيارة في لوس أنجلوس.
الوكيل: حسنًا، ستكون نقطة التسليم في لوس أنجلوس.
الموظف: في أي تاريخ ووقت تريد استلام المركبة؟
  1. يتم مطابقة مسار الغرض car_rental.return_different_location في مسار البدء التلقائي.
  2. تنتقل الجلسة إلى صفحة موقع الاستلام.
  3. تعبئة إدخال المستخدم النهائي للمَعلمة drop_off_location التي طلبها الوكيل في دورة المحادثة السابقة
  4. يتم تقييم مسار إكمال النموذج في صفحة موقع التوقف واستدعاؤه. يتضمّن هذا الردّ إجراءً تنفيذيًا ("حسنًا، مكان التسليم هو...")، تتم إضافته إلى قائمة انتظار الردود.
  5. سيتم الانتقال إلى صفحة مدة الاستئجار.
  6. تحتوي صفحة مدة الاستئجار على قيم نموذج غير مكتملة، لذا تطلب من المستخدم إدخال المعلَمة pickup_date_time ("ما هو التاريخ والوقت المناسبان لاستلام..."). التي تتم إضافتها إلى قائمة انتظار الردود.
  7. يرسل الوكيل قائمة الردود إلى المستخدم النهائي.
المستخدم النهائي: أريد استلام السيارة في 5 آذار (مارس) عند الظهر.
الموظف: ما هو التاريخ والوقت المناسبان لك لتسليم المركبة؟
  1. تعبئة إدخال المستخدم النهائي للمعلمة pickup_date_time التي طلبها الوكيل في دورة المحادثة السابقة
  2. تحتوي صفحة مدة الاستئجار على قيمة نموذج أخرى غير متوفّرة، لذا تطلب من المستخدم إدخال المَعلمة drop_off_date_time ("ما هو التاريخ والوقت اللذان تريد فيهما تسليم السيارة؟"). التي تتم إضافتها إلى قائمة انتظار الردود.
  3. يرسل الوكيل قائمة الردود إلى المستخدم النهائي.
المستخدم النهائي: 15 مارس في منتصف النهار
الموظف: للتأكيد:

ستستلم المركبة في لاس فيغاس ‫2024-03-05 الساعة 12:00:00 وستعيدها في لوس أنجلوس ‫2024-03-15 الساعة 12:00:00

هل هذا صحيح؟
  1. تعبئ بيانات المستخدمين مَعلمة drop_off_date_time التي طلبها الوكيل في خطوة المحادثة السابقة.
  2. تنتقل الجلسة إلى صفحة تأكيد مدة الاستئجار.
  3. تحتوي صفحة تأكيد مدة الاستئجار على حقل إدخال ("للتأكيد...")، التي تتم إضافتها إلى قائمة انتظار الردود.
  4. يرسل الوكيل قائمة الردود إلى المستخدم النهائي.
المستخدم النهائي: نعم، شكرًا لك.
موظف الدعم: ممتاز. لنختر الآن مركبة.
الموظف: هل تريد مركبة اقتصادية أم فاخرة؟
  1. تتم مطابقة مسار الغرض small_talk.confirmation.yes في صفحة تأكيد مدة الاستئجار.
  2. يؤكّد الوكيل خيار المستخدم من خلال رسالة ("حسنًا. لنختر الآن...")، التي تتم إضافتها إلى قائمة انتظار الردود.
  3. تنتقل الجلسة إلى صفحة إزالة الغموض عن المركبة.
  4. لم يتم إكمال نموذج صفحة تحديد نوع المركبة، لذا يستخدم الوكيل المَعلمة vehicle_type لتوجيه سؤال إلى المستخدم ("هل تريد سيارة اقتصادية أو فاخرة..."). التي تتم إضافتها إلى قائمة انتظار الردود.
  5. يرسل الوكيل قائمة الردود إلى المستخدم النهائي.
المستخدم النهائي: أريد الشحن بتكلفة منخفضة.
الموظف: هل تريد سيارة Cymbal أو شاحنة Cymbal؟
  1. تتم مطابقة مسار الغرض $session.params.vehicle_type="economy_vehicle".
  2. سيتم الانتقال إلى صفحة خيارات الاقتصاد.
  3. تحتوي صفحة خيارات الاقتصاد على قسم لتنفيذ الطلبات ("هل تريد...")، التي تتم إضافتها إلى قائمة انتظار الردود.
  4. يرسل الوكيل قائمة الردود إلى المستخدم النهائي.
المستخدم النهائي: Cymbal Truck
الوكيل: تبلغ تكلفة شاحنة Cymbal‏ 50.33 دولار أمريكي في اليوم. تتسع لأربعة أشخاص وتتضمّن راديو AM/FM. هل تريد الانتقال إلى صفحة الدفع؟
المستخدم النهائي: نعم، من فضلك.
  1. تتم مطابقة مسار الهدف $session.params.vehicle_type="Cymbal Truck" ويتم ملء المَعلمة vehicle_model.
  2. تنتقل الجلسة إلى صفحة تأكيد شاحنة Cymbal.
  3. تحتوي صفحة تأكيد شاحنة Cymbal على معلومات حول إكمال عملية الشراء ("تبلغ تكلفة استئجار شاحنة Cymbal 50.33 دولار أمريكي في اليوم..."). التي تتم إضافتها إلى قائمة انتظار الردود.
  4. يرسل الوكيل قائمة الردود إلى المستخدم النهائي.
  5. تتطابق استجابة المستخدم مع المسار small_talk.confirmation.yes.
الموظف: ما هو نوع البطاقة التي ستستخدمها؟
المستخدم النهائي: Altostrat
الموظف: يُرجى إدخال رقم البطاقة.
المستخدم النهائي: 1234 1234 1234 1234
الموظف: ما هو الاسم المكتوب على البطاقة؟
المستخدم النهائي: "شارلي"
موظّف الدعم: ما هو عنوان شارع إرسال الفواتير؟
المستخدم النهائي: 1800 Amphibious Blvd. Mountain View, CA
الموظف: ما هو الرمز البريدي للفوترة؟
المستخدم النهائي: 94045
الموظف: سيتم استلام السيارة من نوع Cymbal Car في لاس فيغاس في 2024-03-05 الساعة 12:00:00 وتسليمها في 2024-03-15 الساعة 12:00:00. سيكون المبلغ الإجمالي لهذه الرحلة ‎175.38 دولار أمريكي.
الوكيل: شكرًا لك على استئجار السيارة من خلالنا، ونتمنّى لك يومًا رائعًا.
  1. يتم الانتقال إلى صفحة الدفع.
  2. لم يتم إكمال نموذج الدفع، لذا يطلب الوكيل من المستخدم إدخال المَعلمات card_type وcard_number وbilling_name وbilling_street_address وbilling_zip_code ("ما هو نوع البطاقة التي..."). التي تتم إضافتها بالتسلسل إلى قائمة انتظار الردود وإرسالها عندما يرد المستخدم. تحدّد ردود المستخدم قيمة كل مَعلمة.
  3. تنتقل الجلسة إلى صفحة تأكيد الاستئجار.
  4. تحتوي صفحة تأكيد الاستلام على معلومات حول استلام الطلب (مثل "حسنًا، سيتم استلام الطلب في..."). التي تتم إضافتها إلى قائمة انتظار الردود.
  5. يرسل الوكيل قائمة الردود إلى المستخدم النهائي.
  6. سيتم الانتقال إلى صفحة إنهاء الجلسة.

إرسال رسائل البطاقات من Dialogflow

يمكن أن يردّ Dialogflow برسائل نصية أو بطاقات. للردّ برسالة بطاقة، حدِّدها على أنّها حمولة مخصّصة في التنفيذ.

يوضّح ملف JSON التالي كيفية إرسال رسالة بطاقة كحِمل مخصّص في عملية التنفيذ:

json

{ "hostAppDataAction": { "chatDataAction": { "createMessageAction": {
  "message": { "cardsV2": [{
    "cardId": "createCardMessage",
    "card": {
      "header": {
        "title": "A card message!",
        "subtitle": "Sent from Dialogflow",
        "imageUrl": "https://developers.google.com/chat/images/chat-product-icon.png",
        "imageType": "CIRCLE"
      },
      "sections": [{ "widgets": [{ "buttonList": { "buttons": [{
        "text": "Read the docs!",
        "onClick": { "openLink": {
          "url": "https://developers.google.com/workspace/chat"
        }}
      }]}}]}]
    }
  }]}
}}}}

الحدود والاعتبارات

  • عند استخدام تطبيقات Google Chat مع Dialogflow، تخضع عناصر أحداث Chat للقيود والاعتبارات التالية:
    • أحداث "صفحة التطبيق الرئيسية": لا تتوفّر بعد إمكانية استخدام أحداث APP_HOME.
    • إدخال طلب البحث في Dialogflow: يعتمد النص الذي يتم إرساله كإدخال لطلب البحث إلى وكيل Dialogflow على نوع الحدث:
      • MESSAGE: قيمة الحقل argumentText من رسالة محادثة.
      • APP_COMMAND: السلسلة "APP_COMMAND_PAYLOAD"
      • ADDED_TO_SPACE: السلسلة "ADDED_TO_SPACE_PAYLOAD"
      • REMOVED_FROM_SPACE: السلسلة "REMOVED_FROM_SPACE_PAYLOAD"
      • CARD_CLICKED: السلسلة "BUTTON_CLICKED_PAYLOAD"
      • WIDGET_UPDATED: السلسلة "WIDGET_UPDATED_PAYLOAD" (تُستخدَم لإكمال البيانات تلقائيًا).
    • حِمل الحدث الكامل: يتم إرسال حِمل JSON الكامل لحدث التفاعل مع المحادثة إلى Dialogflow ضمن الحقل WebhookRequest.payload. يمكنك الوصول إلى هذه البيانات في Webhook الخاص بخدمة Dialogflow. لمزيد من المعلومات، يُرجى الاطّلاع على مستندات طلبات Webhook في Dialogflow CX.
  • ملاحظات مهمة حول الرد على الأوامر و تلقّي البيانات من البطاقات أو مربّعات الحوار:
  • لا تتوفّر معاينات الروابط.
  • إذا ردّ وكيل Dialogflow برسالة واحدة فقط، يتم إرسال الرسالة إلى Google Chat بشكل متزامن. إذا ردّ وكيل Dialogflow بعدة رسائل، يتم إرسال جميع الرسائل إلى Chat بشكل غير متزامن من خلال استدعاء الطريقة create في المورد spaces.messages في Chat API مرة واحدة لكل رسالة.
  • عند استخدام عملية الدمج بين Dialogflow CX وChat، يجب إعداد وكيل Dialogflow وتطبيق Chat في مشروع Google Cloud نفسه. إذا كنت بحاجة إلى إعداد Dialogflow وChat في مشاريع مختلفة على Cloud، يمكنك إعداد خادم وسيط لتسهيل عملية الربط. لمعرفة كيفية إجراء ذلك، يُرجى الاطّلاع على مثال على دمج Chat مع Dialogflow CX على GitHub.

تحديد المشاكل وحلّها

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

  • سجلات إضافات Google Workspace: سجلات طلبات البحث للحصول على معلومات مفصّلة حول سلوك تطبيق Chat، بما في ذلك تفاعلاته مع Chat يُرجى الاطّلاع على سجلّات طلب البحث عن إضافات Google Workspace.

  • أخطاء تطبيق Google Chat: للاطّلاع على رسائل الخطأ العامة في تطبيق Chat وطرق حلّها، يُرجى الرجوع إلى مقالة تحديد مشاكل تطبيق Chat وحلّها.

  • تسجيل البيانات في Dialogflow CX Cloud: تأكَّد من تفعيل Cloud Logging في إعدادات وكيلك على Dialogflow لتسجيل بيانات التنفيذ التفصيلية، بما في ذلك الأخطاء من الوكيل وتفاعلات Webhook. تعرَّف على كيفية تفعيل هذا الخيار وضبطه في مستندات إعدادات وكيل Dialogflow CX. يمكن الاطّلاع على هذه السجلّات في "مستكشف السجلّات" في Google Cloud Console.

  • سجلّ المحادثات في Dialogflow CX: يمكنك مراجعة التفاعلات السابقة لفهم مسار المحادثة وتحديد مواضع حدوث المشاكل. راجِع سجلّ المحادثات.

  • تحديد المشاكل وحلّها في Dialogflow بشكل عام: إذا واجهت مشاكل أوسع نطاقًا في Dialogflow، يمكنك الرجوع إلى دليل تحديد المشاكل وحلّها في Dialogflow CX.

تَنظيم

لتجنُّب تحمّل رسوم في حسابك على Google Cloud مقابل الموارد المستخدَمة في هذا البرنامج التعليمي، ننصحك بحذف مشروع على السحابة الإلكترونية.

  1. في Google Cloud Console، انتقِل إلى صفحة إدارة الموارد. انقر على القائمة > إدارة الهوية وإمكانية الوصول والمشرف > إدارة الموارد.

    الانتقال إلى "إدارة الموارد"

  2. في قائمة المشاريع، اختَر المشروع الذي تريد حذفه، ثم انقر على حذف .
  3. في مربّع الحوار، اكتب رقم تعريف المشروع، ثم انقر على إيقاف لحذف المشروع.
  • يستخدم ‫Dialogflow CX نهج آلة الحالة في تصميم وكيل Dialogflow، ما يمنحك تحكّمًا واضحًا وصريحًا في المحادثة، ويوفّر تجربة أفضل للمستخدم النهائي، ويحسّن سير عمل التطوير. عند إنشاء تطبيق دردشة على Dialogflow، ننصحك باستخدام Dialogflow CX.
    • لمزيد من المعلومات حول إنشاء الوكلاء وضبطهم، راجِع وكلاء Dialogflow CX.
    • للحصول على شرح تفصيلي يوضّح كيفية إنشاء الوكلاء وإعدادهم، يُرجى الاطّلاع على إنشاء وكيل Dialogflow CX.
    • درس تطبيقي حول الترميز: للحصول على مثال حول كيفية إنشاء وكيل متجر بيانات في Dialogflow CX، يمكنك الاطّلاع على تطبيق Chat الخاص بقاعدة المعلومات من الدرس التطبيقي حول الترميز إنشاء تطبيقات لـ Google Chat باستخدام Gemini.
    • درس تطبيقي حول الترميز: للحصول على مثال حول كيفية إنشاء وكيل حواري في Dialogflow CX، يمكنك الاطّلاع على تطبيق Chat الخاص بالملاحظات من الدرس التطبيقي حول الترميز إنشاء تطبيقات لـ Google Chat باستخدام Gemini.
  • ‫Dialogflow ES هي طريقة أخرى لاستخدام Dialogflow مع تطبيق Chat.

تطبيقات Chat التي ليست إضافات: إنشاء تطبيق Google Chat في Dialogflow CX

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

ضبط تطبيق Chat على Dialogflow CX ليس إضافة

عند ضبط إعدادات Google Chat API في Google Cloud Console، اتّبِع الخطوات التالية:

  1. أزِل العلامة من المربّع إنشاء تطبيق Chat هذا كإضافة على Google Workspace. سيظهر مربّع حوار يطلب منك التأكيد. في مربّع الحوار، انقر على إيقاف.
  2. أكمِل إعدادات الضبط المتبقية في Dialogflow CX وانقر على حفظ.

إرسال رسائل بطاقات من تطبيق Chat في Dialogflow CX ليس إضافة

في تطبيق Chat ليس إضافة، حدِّد cardsV2 عنصرًا من المستوى الأعلى في حمولة البيانات المخصّصة في Dialogflow عند تنفيذ الطلب:

json

{
  "cardsV2": [{
    "cardId": "createCardMessage",
    "card": {
      "header": {
        "title": "A card message!",
        "subtitle": "Sent from Dialogflow",
        "imageUrl": "https://developers.google.com/chat/images/chat-product-icon.png",
        "imageType": "CIRCLE"
      },
      "sections": [
        {
          "widgets": [
            {
              "buttonList": {
                "buttons": [
                  {
                    "text": "Read the docs!",
                    "onClick": {
                      "openLink": {
                        "url": "https://developers.google.com/workspace/chat"
                      }
                    }
                  }
                ]
              }
            }
          ]
        }
      ]
    }
  }]
}

القيود والاعتبارات الخاصة بتطبيقات الدردشة في Dialogflow CX التي ليست إضافات

  • تتضمّن أحداث التفاعل في المحادثة ما يلي من إمكانات الدعم والاعتبارات:
    • تتوفّر أنواع أحداث التفاعل التالية:
      • MESSAGE
      • ADDED_TO_SPACE
      • CARD_CLICKED
    • بالنسبة إلى أحداث MESSAGE أو ADDED_TO_SPACE، يتطابق إدخال طلب البحث الذي يتم إرساله إلى وكيل Dialogflow مع قيمة الحقل argumentText في رسالة محادثة. إذا كانت الرسالة تتضمّن أمرًا يبدأ بشرطة مائلة، سيتم استخدام قيمة الحقل text بدلاً من ذلك.
    • بالنسبة إلى أحداث CARD_CLICKED، يتم تنسيق إدخال طلب البحث الذي يتم إرساله إلى وكيل Dialogflow على النحو CARD_CLICKED.functionName، حيث يتوافق functionName مع قيمة الحقل function في عنصر الإجراء المرفق بعنصر البطاقة التفاعلية (مثل زر).
    • يتم إرسال حمولة JSON الكاملة لكل حدث تفاعل في Chat إلى Dialogflow كحمولة مخصّصة في مَعلمة طلب البحث، ويمكن الوصول إليها باستخدام خطاف ويب في Dialogflow من خلال طلب قيمة الحقل WebhookRequest.payload.
  • اعتبارات بشأن الرد على الأوامر التي تبدأ بشرطة مائلة و تلقّي البيانات من البطاقات أو مربّعات الحوار في تطبيقات Chat التي ليست إضافات:
    • عندما تتلقّى تطبيقات Dialogflow Chat التي ليست إضافات رسالة تتضمّن أمرًا يبدأ بشرطة مائلة، يحتوي إدخال الاستعلام على قيمة الحقل text فقط. يبدأ الحقل text باسم الأمر الذي يبدأ بشرطة مائلة (على سبيل المثال، /command)، ويمكنك استخدامه لإعداد هدف وكيل Dialogflow من أجل رصد أمر يبدأ بشرطة مائلة.
    • لعرض مربّع حوار من وكيل Dialogflow في تطبيق Chat ليس إضافة، يجب الردّ بحمولة بيانات JSON مخصّصة واحدة تتضمّن رسالة تحتوي على DIALOGردّ على الإجراء.
    • لمعالجة البيانات التي تم إدخالها من البطاقات في تطبيق Chat ليس إضافة، يمكن لوكيل Dialogflow رصد الطلبات التي تبدأ بالنص CARD_CLICKED والرد بحمولة JSON مخصّصة واحدة تحتوي على الإجراء المناسب.