الإجابة عن الأسئلة استنادًا إلى محادثات Chat باستخدام تطبيق Gemini AI Chat

يوضّح هذا الدليل التوجيهي/التعليمي كيفية إنشاء تطبيق محادثات في Google Chat يجيب عن الأسئلة استنادًا إلى المحادثات في مساحات Chat باستخدام الذكاء الاصطناعي التوليدي المستند إلى Vertex AI مع Gemini. يستخدم تطبيق محادثات Chat واجهة برمجة التطبيقات Google Workspace Events API بالإضافة إلى Pub/Sub للتعرّف على الأسئلة المنشورة في مساحات Chat والإجابة عنها في الوقت الفعلي، حتى إذا لم تتم الإشارة إليه.

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

في ما يلي طريقة عمل تطبيق محادثات في مساحة مخصّصة لتقديم الدعم وتسهيل عملية انضمام الموظفين الجدد:

  • تؤدي الإشارة إلى تطبيق "مساعد المعرفة المستند إلى الذكاء الاصطناعي" إلى إضافته إلى مساحة.
    الشكل 1. يضيف "تشارلي" تطبيق محادثات مساعد الذكاء الاصطناعي إلى مساحة Chat.
  • تطرح "دانا" سؤالاً.
    الشكل 2. تسأل "دانا" عمّا إذا كانت الشركة تقدّم تدريبًا على التحدّث أمام الجمهور.
  • يجيب تطبيق محادثات الذكاء الاصطناعي على السؤال.
    الشكل 3. يطلب تطبيق محادثات مساعد الذكاء الاصطناعي من Vertex AI مع Gemini الإجابة عن سؤال "دانا" استنادًا إلى سجلّ المحادثات في مساحة Chat، ثم يشارك الإجابة.

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

الأهداف

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

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

يوضّح المخطّط التالي بنية موارد Google Workspace وGoogle Cloud التي يستخدمها تطبيق محادثات مساعد الذكاء الاصطناعي.

مخطط هندسي لتطبيق محادثات مساعد الذكاء الاصطناعي

يعمل تطبيق محادثات المستند إلى الذكاء الاصطناعي على النحو التالي:

  • يضيف أحد المستخدمين تطبيق "مساعد المعرفة المستند إلى الذكاء الاصطناعي" في Chat إلى مساحة في Chat:

    1. يطلب تطبيق محادثات من المستخدم الذي أضافه إلى مساحة Chat ضبط المصادقة والتفويض.

    2. يسترد تطبيق محادثات رسائل المساحة من خلال استدعاء الطريقة spaces.messages.list في Chat API، ثم يخزّن الرسائل المستردة في قاعدة بيانات Firestore.

    3. يستدعي تطبيق محادثات الطريقة subscriptions.create في Google Workspace Events API لبدء الاستماع إلى الأحداث، مثل الرسائل في المساحة. نقطة نهاية الإشعارات الخاصة بالاشتراك هي موضوع Pub/Sub يستخدم Eventarc لإعادة توجيه الحدث إلى تطبيق محادثات.

    4. ينشر تطبيق محادثات رسالة تعريفية في المساحة.

  • ينشر مستخدم رسالة في مساحة Chat:

    1. يتلقّى تطبيق محادثات الرسالة في الوقت الفعلي من موضوع Pub/Sub.

    2. يضيف تطبيق محادثات الرسالة إلى قاعدة بيانات Firestore.

      إذا عدّل المستخدم الرسالة أو حذفها لاحقًا، يتلقّى تطبيق محادثات الحدث المعدَّل أو المحذوف في الوقت الفعلي، ثم يعدّل الرسالة أو يحذفها في قاعدة بيانات Firestore.

    3. يرسل تطبيق محادثات الرسالة إلى Vertex AI مع Gemini:

      1. يطلب الطلب من Vertex AI مع Gemini التحقّق مما إذا كانت الرسالة تتضمّن سؤالاً. إذا كان الأمر كذلك، يجيب Gemini على السؤال استنادًا إلى سجلّ الرسائل في مساحة Chat المحفوظ في Firestore، ثم يرسل تطبيق Google Chat الرسالة إلى مساحة Chat. إذا لم يكن كذلك، لا تردّ على الرسالة.

      2. إذا أجاب Vertex AI with Gemini عن السؤال، ينشر تطبيق محادثات الإجابة من خلال استدعاء الطريقة spaces.messages.create في Chat API باستخدام مصادقة التطبيق.

        إذا لم يتمكّن Vertex AI مع Gemini من الإجابة عن السؤال، سينشر تطبيق محادثات رسالة تفيد بأنّه لم يتمكّن من العثور على إجابة عن هذا السؤال في سجلّ مساحة Chat.

  • يتلقّى تطبيق محادثات إشعارًا بشأن مراحل النشاط من Google Workspace Events API يفيد بأنّ اشتراك مساحة Chat سينتهي قريبًا:

    1. يرسل تطبيق محادثات طلبًا لتجديد الاشتراك من خلال استدعاء الطريقة subscriptions.patch في Google Workspace Events API.
  • تمت إزالة تطبيق محادثات من مساحة Chat:

    1. يحذف تطبيق محادثات الاشتراك من خلال استدعاء الطريقة subscriptions.delete في Google Workspace Events API.

    2. يحذف تطبيق محادثات بيانات مساحة Chat من Firestore.

مراجعة المنتجات التي يستخدمها تطبيق محادثات الذكاء الاصطناعي

يستخدم تطبيق محادثات مساعد المعرفة المستند إلى الذكاء الاصطناعي منتجات Google Workspace وGoogle Cloud التالية:

  • Vertex AI API مع Gemini: منصة ذكاء اصطناعي توليدي مستندة إلى Gemini مساعد المعرفة بالذكاء الاصطناعي يستخدم تطبيق محادثات Vertex AI API مع Gemini للتعرّف على أسئلة الموظفين وفهمها والإجابة عنها.
  • ‫Chat API: هي واجهة برمجة تطبيقات لتطوير تطبيقات Google Chat التي تتلقّى أحداث التفاعل في Chat، مثل الرسائل، وتستجيب لها. يستخدم تطبيق محادثات الذكاء الاصطناعي، وهو مساعد مستند إلى المعرفة، واجهة برمجة تطبيقات Chat لتنفيذ ما يلي:
    • تلقّي أحداث التفاعل التي يرسلها Chat والردّ عليها
    • عرض قائمة بالرسائل المُرسَلة في مساحة
    • نشر ردود على أسئلة المستخدمين في مساحة
    • اضبط السمات التي تحدّد طريقة ظهورها في Chat، مثل الاسم وصورة الأفاتار.
  • واجهة برمجة تطبيقات أحداث Google Workspace: تتيح لك هذه الواجهة الاشتراك في الأحداث وإدارة إشعارات التغيير على مستوى تطبيقات Google Workspace. يستخدم تطبيق محادثات الذكاء الاصطناعي، وهو مساعد معرفي، واجهة برمجة التطبيقات Google Workspace Events API للاستماع إلى الرسائل المنشورة في مساحة Chat، ما يتيح له رصد الأسئلة والإجابة عنها حتى عندما لا تتم الإشارة إليه.
  • ‫Firestore: قاعدة بيانات مستندات بدون خادم يستخدم تطبيق محادثات مساعد الذكاء الاصطناعي المعرفي Firestore لتخزين البيانات حول الرسائل المرسَلة في مساحة Chat.
  • ‫Pub/Sub: ‫Pub/Sub هي خدمة مراسلة غير متزامنة وقابلة للتوسيع تفصل الخدمات التي تنتج الرسائل عن الخدمات التي تعالجها. يستخدم تطبيق محادثات Chat، وهو مساعد معرفي مستند إلى الذكاء الاصطناعي، خدمة Pub/Sub لتلقّي أحداث الاشتراك من مساحات Chat.
  • Eventarc: تتيح لك خدمة Eventarc إنشاء بنى مستندة إلى الأحداث بدون الحاجة إلى تنفيذ البنية الأساسية أو تخصيصها أو صيانتها. يستخدم تطبيق Chat، وهو مساعد معرفي مستند إلى الذكاء الاصطناعي، خدمة Eventarc لتوجيه الأحداث من Pub/Sub إلى مساحة Chat وإلى Cloud Function التي تتلقّى أحداث الاشتراك وتعالجها.
  • Cloud Functions: هي خدمة حوسبة خفيفة الوزن بدون خادم تتيح لك إنشاء وظائف مستقلة ذات غرض واحد يمكنها الاستجابة لأحداث التفاعل والاشتراك في Chat بدون الحاجة إلى إدارة خادم أو بيئة وقت تشغيل. يستخدم تطبيق محادثات، وهو مساعد مستنِد إلى الذكاء الاصطناعي، دالتَين من Cloud Functions باسمَين:
    • app: استضافة نقطة نهاية HTTP التي يرسل إليها Chat أحداث التفاعل، واستخدامها كمنصة حوسبة لتشغيل منطق يعالج هذه الأحداث ويردّ عليها
    • eventsApp: يتلقّى أحداث مساحة Chat ويعالجها، مثل الرسائل الواردة من اشتراك Pub/Sub.
    تستخدم Cloud Functions منتجات Google Cloud التالية لإنشاء موارد الحوسبة واستضافتها:
    • ‫Cloud Build: هي منصة مُدارة بالكامل للتكامل المستمر والتسليم والنشر، وتنفّذ عمليات إنشاء مبرمَجة.
    • ‫Cloud Run: بيئة مُدارة بالكامل لتشغيل التطبيقات ضِمن الحاويات.

إعداد البيئة

يوضّح هذا القسم طريقة التنفيذ لإنشاء مشروع على السحابة الإلكترونية وإعداده لتطبيق محادثات.

إنشاء مشروع على السحابة الإلكترونية على Google Cloud

Google Cloud Console

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

    الانتقال إلى صفحة "إنشاء مشروع"

  2. في حقل اسم المشروع، أدخِل اسمًا وصفيًا لمشروعك.

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

  3. في حقل الموقع الجغرافي، انقر على تصفّح لعرض المواقع الجغرافية المحتملة لمشروعك. بعد ذلك، انقر على اختيار.
  4. انقر على إنشاء. تنتقل وحدة تحكّم Google Cloud إلى صفحة "لوحة البيانات" ويتم إنشاء مشروعك في غضون بضع دقائق.

gcloud CLI

في إحدى بيئات التطوير التالية، يمكنك الوصول إلى واجهة سطر الأوامر (CLI) في Google Cloud (gcloud):

  • Cloud Shell: لتفعيل وحدة طرفية على الإنترنت مع إعداد مسبق لواجهة سطر الأوامر gcloud، فعِّل Cloud Shell.
    تفعيل Cloud Shell
  • Local Shell: لاستخدام بيئة تطوير على الجهاز، عليك تثبيت وإعداد gcloud CLI.
    لإنشاء مشروع على السحابة الإلكترونية، استخدِم الأمر gcloud projects create:
    gcloud projects create PROJECT_ID
    استبدِل PROJECT_ID بضبط رقم تعريف المشروع الذي تريد إنشاءه.

تفعيل الفوترة لمشروع على السحابة الإلكترونية

Google Cloud Console

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

    الانتقال إلى "الفوترة لمشاريعي"

  2. في اختيار مؤسسة، اختَر المؤسسة المرتبطة بمشروعك على Google Cloud.
  3. في صف المشروع، افتح قائمة الإجراءات ()، وانقر على تغيير الفوترة، ثم اختَر حساب فوترة Cloud.
  4. انقر على ضبط الحساب.

gcloud CLI

  1. لعرض قائمة بحسابات الفوترة المتاحة، نفِّذ الأمر التالي:
    gcloud billing accounts list
  2. ربط حساب فوترة بمشروع على Google Cloud:
    gcloud billing projects link PROJECT_ID --billing-account=BILLING_ACCOUNT_ID

    غيِّر القيم في السلسلة على الشكل التالي:

    • PROJECT_ID هو رقم تعريف المشروع الخاص بالمشروع على السحابة الإلكترونية الذي تريد تفعيل الفوترة فيه.
    • BILLING_ACCOUNT_ID هو معرّف حساب الفوترة الذي سيتم ربطه بمشروع على السحابة الإلكترونية.

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

Google Cloud Console

  1. في Google Cloud Console، فعِّل Google Chat API وVertex AI API وCloud Functions API وFirestore API وCloud Build API وPub/Sub API وGoogle Workspace Events API وEventarc API وCloud Run Admin API.

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

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

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

gcloud CLI

  1. إذا لزم الأمر، اضبط مشروع Cloud الحالي على المشروع الذي أنشأته:

    gcloud config set project PROJECT_ID

    استبدِل PROJECT_ID برقم تعريف المشروع لمشروع على السحابة الإلكترونية الذي أنشأته.

  2. فعِّل واجهات برمجة التطبيقات التالية: Google Chat API وVertex AI API وCloud Functions API وFirestore API وCloud Build API وPub/Sub API وGoogle Workspace Events API وEventarc API وCloud Run Admin API:

    gcloud services enable chat.googleapis.com \
    aiplatform.googleapis.com \
    cloudfunctions.googleapis.com \
    firestore.googleapis.com \
    cloudbuild.googleapis.com \
    pubsub.googleapis.com \
    workspaceevents.googleapis.com \
    eventarc.googleapis.com \
    run.googleapis.com

إعداد المصادقة والتفويض

تتيح المصادقة والتفويض لتطبيق محادثات الوصول إلى الموارد في Google Workspace وGoogle Cloud.

في هذا الدليل التعليمي، ستنشر تطبيق Google Chat داخليًا، لذا لا بأس من استخدام معلومات العنصر النائب. قبل نشر تطبيق Google Chat خارجيًا، استبدِل المعلومات النائبة بمعلومات حقيقية في شاشة طلب الموافقة.

  1. في وحدة تحكّم Google Cloud، انتقِل إلى "القائمة" > Google Auth platform > العلامة التجارية.

    الانتقال إلى "هوية العلامة التجارية"

  2. إذا سبق لك إعداد Google Auth platform، يمكنك إعداد إعدادات "شاشة طلب الموافقة المتعلّقة ببروتوكول OAuth" التالية في العلامة التجارية والجمهور والوصول إلى البيانات. إذا ظهرت لك الرسالة Google Auth platform لم يتم ضبطه بعد، انقر على البدء:

    1. ضمن معلومات التطبيق، في اسم التطبيق، اكتب AI knowledge assistant.
    2. في حقل البريد الإلكتروني لدعم المستخدمين، اختَر عنوان بريدك الإلكتروني أو مجموعة Google مناسبة.
    3. انقر على التالي.
    4. ضمن الجمهور، اختَر داخلي. إذا لم تتمكّن من اختيار داخلي، اختَر خارجي.
    5. انقر على التالي.
    6. ضمن معلومات الاتصال، أدخِل عنوان بريد إلكتروني يمكنك تلقّي إشعارات فيه بشأن أي تغييرات تطرأ على مشروعك.
    7. انقر على التالي.
    8. ضمن إنهاء، راجِع سياسة بيانات المستخدمين في خدمات Google API، ثم ضَع علامة في المربّع أوافق على "سياسة بيانات المستخدمين في خدمات Google API" إذا كنت موافقًا.
    9. انقر على متابعة.
    10. انقر على إنشاء.
    11. إذا اخترت خارجي لنوع المستخدم، أضِف مستخدمين اختباريين:
      1. انقر على الجمهور.
      2. ضمن المستخدمون التجريبيون، انقر على إضافة مستخدمين.
      3. أدخِل عنوان بريدك الإلكتروني وأي مستخدمين آخرين معتمَدين للاختبار، ثم انقر على حفظ.
  3. انقر على إذن الوصول إلى البيانات > إضافة نطاقات أو إزالتها. يظهر لوحة تتضمّن قائمة بنطاقات كل واجهة برمجة تطبيقات فعّلتها في مشروعك على Google Cloud.

    1. ضمن إضافة النطاقات يدويًا، الصِق النطاق التالي:

      • https://www.googleapis.com/auth/chat.messages
    2. انقر على إضافة إلى الجدول.

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

    4. بعد اختيار النطاقات التي يتطلّبها تطبيقك، انقر على حفظ في صفحة الوصول إلى البيانات.

إنشاء بيانات اعتماد معرّف عميل OAuth

  1. في وحدة تحكّم Google Cloud، انتقِل إلى القائمة > واجهات برمجة التطبيقات والخدمات > بيانات الاعتماد.

    الانتقال إلى "بيانات الاعتماد"

  2. انقر على إنشاء بيانات اعتماد > معرِّف عميل OAuth.

  3. انقر على نوع التطبيق > تطبيق الويب.

  4. في حقل الاسم، اكتب اسمًا لبيانات الاعتماد. ولا يظهر هذا الاسم إلا في Google Cloud Console.

  5. ضمن معرّفات الموارد المنتظمة (URI) المعتمَدة لإعادة التوجيه، انقر على إضافة معرّف موارد منتظم (URI).

  6. في معرّفات الموارد المنتظمة 1، اكتب ما يلي:

    https://REGION-PROJECT_ID.cloudfunctions.net/app/oauth2
    

    غيِّر القيم في السلسلة على الشكل التالي:

    • REGION: منطقة Cloud Function، مثل us-central1 في وقت لاحق، عند إنشاء وظيفتَي Cloud Functions، يجب ضبط المنطقة على هذه القيمة.
    • PROJECT_ID: رقم تعريف المشروع لمشروع على السحابة الإلكترونية الذي أنشأته
  7. انقر على إنشاء.

  8. من نافذة تم إنشاء عميل OAuth، انقر على تنزيل JSON.

  9. احفظ الملف الذي تم تنزيله باسم credentials.json. لاحقًا، عند إنشاء وظيفتَي Cloud Functions، عليك تضمين ملف credentials.json في كل عملية نشر.

  10. انقر على موافق.

إنشاء موضوع Pub/Sub

يعمل موضوع Pub/Sub مع Google Workspace Events API للاشتراك في الأحداث في مساحة Chat، مثل الرسائل، وإرسال إشعارات إلى تطبيق محادثات في الوقت الفعلي.

في ما يلي كيفية إنشاء موضوع Pub/Sub:

Google Cloud Console

  1. في Google Cloud Console، انتقِل إلى القائمة > Pub/Sub.

    الانتقال إلى Pub/Sub

  2. انقر على إنشاء موضوع.

  3. في رقم تعريف الموضوع، اكتب events-api.

  4. ألغِ تحديد إضافة اشتراك تلقائي.

  5. ضِمن التشفير، اختَر مفتاح تشفير تديره Google.

  6. انقر على إنشاء. يظهر موضوع Pub/Sub.

  7. لكي يعمل موضوع Pub/Sub وGoogle Workspace Events API معًا، يجب منح مستخدم Chat IAM إذن النشر في موضوع Pub/Sub باتّباع الخطوات التالية:

    1. في لوحة events-api، ضِمن الأذونات، انقر على إضافة عنصر أساسي.

    2. ضمن إضافة مسؤولين، في المسؤولون الجدد، اكتب chat-api-push@system.gserviceaccount.com.

    3. ضمن إسناد الأدوار، في اختيار دور، اختَر Pub/Sub > ناشر Pub/Sub.

    4. انقر على حفظ.

gcloud CLI

  1. أنشئ موضوعًا على Pub/Sub باستخدام معرّف الموضوع events-api:

    gcloud pubsub topics create events-api
  2. امنح مستخدم Chat IAM الإذن بالنشر في موضوع Pub/Sub:

    gcloud pubsub topics add-iam-policy-binding events-api \
    --member='serviceAccount:chat-api-push@system.gserviceaccount.com' \
    --role='roles/pubsub.publisher'

إنشاء قاعدة بيانات Firestore

تحتفظ قاعدة بيانات Firestore بالبيانات وتسترجعها من مساحات Chat، مثل الرسائل. لا تحدّد نموذج البيانات، الذي يتم ضبطه ضمنيًا في الرمز النموذجي من خلال الملفَين model/message.js وservices/firestore-service.js.

تستخدم قاعدة بيانات تطبيق محادثات مساعد الذكاء الاصطناعي نموذج بيانات NoSQL يستند إلى المستندات المنظَّمة في مجموعات. لمزيد من المعلومات، يُرجى الاطّلاع على نموذج بيانات Firestore.

يوضّح المخطّط التالي نظرة عامة على نموذج بيانات تطبيق Chat المستند إلى الذكاء الاصطناعي:

نموذج بيانات قاعدة بيانات Firestore

يحتوي الجذر على مجموعتَين:

  1. spaces، حيث يمثّل كل مستند مساحة Chat تمت إضافة تطبيق محادثات إليها. يتم تمثيل كل رسالة بمستند في المجموعة الفرعية messages.

  2. users، حيث يمثّل كل مستند مستخدمًا أضاف تطبيق محادثات إلى مساحة Chat.

عرض تعريفات المجموعات والمستندات والحقول

spaces

مساحة Chat تتضمّن تطبيق محادثات "مساعد المعرفة المستند إلى الذكاء الاصطناعي".

الحقول
Document IDString
المعرّف الفريد لمساحة معيّنة. جزء من اسم مورد المساحة في Chat API.
messagesSubcollection of Documents (messages)
الرسائل المُرسَلة في مساحة Chat يتوافق مع Document ID message في Firebase.
spaceNameString
الاسم الفريد للمساحة في Chat API يتوافق مع اسم مورد المساحة في Chat API.

messages

الرسائل المُرسَلة في مساحة Chat

الحقول
Document IDString
المعرّف الفريد لرسالة معيّنة.
nameString
الاسم الفريد لرسالة في Chat API. يتوافق مع اسم مورد الرسالة في Chat API.
textString
نص الرسالة
timeString (Timestamp format)
الوقت الذي تم فيه إنشاء الرسالة.

users

المستخدمون الذين أضافوا تطبيق "مساعد الذكاء الاصطناعي" في Chat إلى مساحة Chat

الحقول
Document IDString
المعرّف الفريد لمستخدم معيّن.
accessTokenString
رمز الدخول الذي تم منحه أثناء تفويض المستخدم في OAuth 2.0 والذي يُستخدَم لطلب واجهات برمجة التطبيقات في Google Workspace
refreshTokenString
الرمز المميز لإعادة التحميل الذي تم منحه أثناء تفويض المستخدم في OAuth 2.0.

في ما يلي كيفية إنشاء قاعدة بيانات Firestore:

Google Cloud Console

  1. في وحدة تحكّم Google Cloud، انتقِل إلى القائمة > Firestore.

    الانتقال إلى Firestore

  2. انقر على إنشاء قاعدة بيانات.

  3. من اختيار وضع Firestore، انقر على الوضع الأصلي.

  4. انقر على متابعة.

  5. اضبط قاعدة البيانات على النحو التالي:

    1. في تسمية قاعدة البيانات، اترك معرّف قاعدة البيانات على النحو التالي: (default).

    2. ضمن نوع الموقع الجغرافي، اختَر المنطقة.

    3. في المنطقة، حدِّد منطقة لقاعدة البيانات، مثل us-central1. للحصول على أفضل أداء، اختَر الموقع الجغرافي نفسه أو موقعًا جغرافيًا قريبًا من الموقع الجغرافي الذي تستخدمه "وظائف السحابة الإلكترونية" في تطبيق Chat.

  6. انقر على إنشاء قاعدة بيانات.

gcloud CLI

  • أنشئ قاعدة بيانات Firestore في "الوضع الأصلي" باتّباع الخطوات التالية:

    gcloud firestore databases create \
    --location=LOCATION \
    --type=firestore-native

    استبدِل LOCATION باسم منطقة Firestore، مثل us-central1. للحصول على أفضل أداء، اختَر الموقع الجغرافي نفسه أو موقعًا جغرافيًا قريبًا من الموقع الجغرافي الذي تستخدمه Cloud Functions في تطبيق Chat.

إنشاء تطبيق محادثات ونشره

بعد إنشاء مشروعك على Google Cloud وإعداده، يمكنك إنشاء تطبيق محادثات ونشره. في هذا القسم، عليك تنفيذ ما يلي:

  1. أنشئ دالتَين من دوال Cloud ونشِّرهما. أحدهما للردّ على أحداث التفاعل في Chat والآخر للردّ على أحداث Pub/Sub.
  2. إنشاء تطبيق محادثات ونشره في صفحة إعدادات Google Chat API

إنشاء دوال Cloud ونشرها

في هذا القسم، ستنشئ دالتَين من Cloud Functions وتنشرهما بالاسمَين التاليَين:

  • app: يستضيف ويشغّل رمز تطبيق Chat الذي يستجيب للأحداث الواردة من Chat كطلبات HTTP.
  • eventsApp: يتلقّى أحداث مساحة Chat ويعالجها، مثل الرسائل الواردة من Pub/Sub.

تشكّل هذه الدوال في Cloud Functions معًا منطق تطبيق Chat الذي يقدّم المساعدة المستندة إلى الذكاء الاصطناعي.

قبل إنشاء دوال Cloud Functions، يمكنك تخصيص بعض الوقت لمراجعة الرمز النموذجي المستضاف على GitHub والتعرّف عليه.

عرض على GitHub

إنشاء app وتفعيله

Google Cloud Console

  1. نزِّل الرمز من GitHub كملف مضغوط.

    تنزيل ملف ZIP

  2. استخرِج ملف ZIP الذي تم تنزيله.

    يحتوي المجلد الذي تم استخراجه على مستودع نماذج Google Workspace بالكامل.

  3. في المجلد الذي تم استخراجه، انتقِل إلى الدليل add-ons-samples-main/node/chat/ai-knowledge-assistant.

  4. في الدليل add-ons-samples/node/chat/ai-knowledge-assistant، أضِف الملف credentials.json الذي نزّلته عند إنشاء بيانات اعتماد معرّف عميل OAuth للمصادقة والترخيص.

  5. اضغط محتويات المجلد ai-knowledge-assistant في ملف zip.

    يجب أن يحتوي ملف ZIP على الملفات والمجلدات التالية:

    • .gcloudignore
    • .gitignore
    • README.md
    • deploy.sh
    • env.js
    • events_index.js
    • http_index.js
    • index.js
    • credentials.json
    • package-lock.json
    • package.json
    • controllers/
    • model/
    • services/
    • test/
  6. في "وحدة تحكّم Google Cloud"، انتقِل إلى القائمة > Cloud Functions.

    الانتقال إلى Cloud Functions

    تأكَّد من اختيار مشروع Google Cloud لتطبيق محادثات.

  7. انقر على إنشاء دالة.

  8. في صفحة إنشاء دالة، اضبط الدالة على النحو التالي:

    1. في البيئة، اختَر دالة Cloud Run.
    2. في اسم الدالة، اكتب app.
    3. في المنطقة، اختَر منطقة، مثل us-central1. يجب أن تتطابق هذه المنطقة مع المنطقة التي حدّدتها في معرّف الموارد المنتظم (URI) المسموح بإعادة التوجيه إليه عند إنشاء بيانات اعتماد معرّف عميل OAuth للمصادقة والتفويض.
    4. في نوع المشغّل، اختَر HTTPS.
    5. ضمن المصادقة، اختَر السماح بعمليات الاستدعاء غير المصادَق عليها.
    6. انقر على التالي.
  9. في وقت التشغيل، اختَر Node.js 20.

  10. في نقطة الدخول، احذف النص التلقائي وأدخِل app.

  11. في رمز المصدر، اختَر تحميل ملف مضغوط.

  12. في حزمة الوجهة، أنشئ حزمة أو اختَر حزمة:

    1. انقروا على تصفّح.
    2. اختَر مجموعة.
    3. انقر على اختيار.

    تحمّل Google Cloud ملف ZIP إلى هذه الحزمة وتستخرج الملفات المكوّنة له. بعد ذلك، تنسخ Cloud Functions ملفات المكوّنات إلى Cloud Function.

  13. في ملف ZIP، حمِّل ملف ZIP الذي نزّلته من GitHub واستخرجته وأعدت ضغطه:

    1. انقروا على تصفّح.
    2. انتقِل إلى ملف ZIP واختَره.
    3. انقر على فتح.
  14. انقر على نشر.

    تفتح صفحة تفاصيل Cloud Functions، وتظهر الدالة مع مؤشّرَي تقدّم، أحدهما للإنشاء والآخر للخدمة. عندما يختفي مؤشرا التقدّم ويتم استبدالهما بعلامة اختيار، تكون الدالة قد تم نشرها وأصبحت جاهزة.

  15. عدِّل عينة الرمز البرمجي لضبط الثوابت:

    1. في صفحة تفاصيل Cloud Function، انقر على تعديل.
    2. انقر على التالي.
    3. في رمز المصدر، اختَر المحرّر المضمّن.
    4. في المحرِّر المضمّن، افتح ملف env.js وعدِّله:
      1. اضبط قيمة project على رقم تعريف مشروعك على السحابة الإلكترونية.
      2. اضبط قيمة location على المنطقة الخاصة بـ Cloud Function، مثل us-central1.
  16. انقر على نشر.

gcloud CLI

  1. استنسِخ الرمز من GitHub:

    git clone https://github.com/googleworkspace/add-ons-samples.git
  2. انتقِل إلى الدليل الذي يتضمّن الرمز الخاص بتطبيق محادثات مساعد المعرفة المستند إلى الذكاء الاصطناعي:

    cd add-ons-samples/node/chat/ai-knowledge-assistant
  3. في الدليل add-ons-samples/node/chat/ai-knowledge-assistant، أضِف الملف credentials.json الذي نزّلته عند إنشاء بيانات اعتماد معرّف عميل OAuth للمصادقة والترخيص.

  4. عدِّل الملف env.js لضبط متغيّرات البيئة:

    1. اضبط قيمة project على معرّف مشروعك على السحابة الإلكترونية.
    2. اضبط قيمة location على المنطقة الخاصة بـ Cloud Function، مثل us-central1.
  5. نشر Cloud Function على Google Cloud:

    gcloud functions deploy app \
    --gen2 \
    --region=REGION \
    --runtime=nodejs20 \
    --source=. \
    --entry-point=app \
    --trigger-http \
    --allow-unauthenticated

    استبدِل REGION بقيمة المنطقة الخاصة بـ Cloud Function لتتطابق مع المنطقة المحدّدة في الملف env.js، مثل us-central1.

إنشاء eventsApp وتفعيله

Google Cloud Console

  1. في "وحدة تحكّم Google Cloud"، انتقِل إلى القائمة > Cloud Functions.

    الانتقال إلى Cloud Functions

    تأكَّد من اختيار مشروع Google Cloud لتطبيق محادثات.

  2. انقر على إنشاء دالة.

  3. في صفحة إنشاء دالة، اضبط الدالة على النحو التالي:

    1. في البيئة، اختَر دالة Cloud Run.
    2. في اسم الدالة، اكتب eventsApp.
    3. في المنطقة، اختَر منطقة، مثل us-central1. يجب أن تتطابق هذه المنطقة مع المنطقة التي حدّدتها في معرّف الموارد المنتظم (URI) لإعادة التوجيه المصرّح به عند إنشاء بيانات اعتماد معرّف عميل OAuth للمصادقة والتفويض.
    4. في نوع العامل المشغِّل، اختَر Cloud Pub/Sub.
    5. في موضوع Cloud Pub/Sub، اختَر اسم موضوع Pub/Sub الذي أنشأته، والذي يكون بالتنسيق projects/PROJECT/topics/events-api حيث PROJECT هو رقم تعريف مشروعك على السحابة الإلكترونية.
    6. إذا ظهرت لك رسالة تبدأ بـ Service account(s) might not have enough permissions to deploy the function with the selected trigger.، انقر على منح جميع الأذونات.
    7. انقر على التالي.
  4. في وقت التشغيل، اختَر Node.js 20.

  5. في نقطة الدخول، احذف النص التلقائي وأدخِل eventsApp.

  6. في رمز المصدر، اختَر ملف Zip من Cloud Storage.

  7. في موقع التخزين في السحابة الإلكترونية، انقر على تصفّح.

  8. اختَر الحزمة التي حمّلت إليها ملف ZIP عند إنشاء app Cloud Function.

  9. انقر على ملف ZIP الذي حمّلته.

  10. انقر على اختيار.

  11. انقر على نشر.

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

  12. عدِّل عينة الرمز البرمجي لضبط الثوابت:

    1. في صفحة تفاصيل Cloud Function، انقر على تعديل.
    2. انقر على التالي.
    3. في رمز المصدر، اختَر المحرّر المضمّن.
    4. في المحرِّر المضمّن، افتح ملف env.js وعدِّله:
      1. اضبط قيمة project على رقم تعريف مشروعك على السحابة الإلكترونية.
      2. اضبط قيمة location على المنطقة الخاصة بـ Cloud Function، مثل us-central1.
  13. انقر على نشر.

gcloud CLI

  1. في gcloud CLI، إذا لم تكن في الدليل الذي يحتوي على الرمز البرمجي لتطبيق محادثات المساعدة المستندة إلى الذكاء الاصطناعي هذا الذي سبق لك استنساخه من GitHub، انتقِل إليه:

    cd add-ons-samples/node/chat/ai-knowledge-assistant
  2. في الدليل add-ons-samples/node/chat/ai-knowledge-assistant، أضِف الملف credentials.json الذي نزّلته عند إنشاء بيانات اعتماد معرّف عميل OAuth للمصادقة والترخيص.

  3. عدِّل الملف env.js لضبط متغيّرات البيئة:

    1. اضبط قيمة project على معرّف مشروعك على السحابة الإلكترونية.
    2. اضبط قيمة location على المنطقة الخاصة بـ Cloud Function، مثل us-central1.
  4. نشر Cloud Function على Google Cloud:

    gcloud functions deploy eventsApp \
    --gen2 \
    --region=REGION \
    --runtime=nodejs20 \
    --source=. \
    --entry-point=eventsApp \
    --trigger-topic=events-api

    استبدِل REGION بقيمة المنطقة الخاصة بـ Cloud Function لتتطابق مع المنطقة المحدّدة في الملف env.js، مثل us-central1.

نسخ عنوان URL الخاص بمشغّل app Cloud Function

عليك لصق عنوان URL الخاص بمشغّل app Cloud Functions في القسم التالي عند ضبط تطبيق محادثات في Google Cloud Console.

Google Cloud Console

  1. في "وحدة تحكّم Google Cloud"، انتقِل إلى القائمة > Cloud Functions.

    الانتقال إلى Cloud Functions

  2. في عمود الاسم ضمن قائمة دوال Cloud، انقر على app.

  3. انقر على المشغّل.

  4. انسخ عنوان URL.

gcloud CLI

  1. يجب وصف دالة app Cloud:

    gcloud functions describe app
  2. انسخ السمة url.

ضبط تطبيق محادثات في Google Cloud Console

يوضّح هذا القسم كيفية ضبط Chat API في Google Cloud Console باستخدام معلومات حول تطبيق محادثاتك، بما في ذلك اسم تطبيق محادثاتك وعنوان URL المشغِّل لوظيفة Cloud الخاصة بتطبيق محادثاتك التي يرسل إليها أحداث التفاعل في Chat.

  1. في Google Cloud Console، انقر على القائمة > واجهات برمجة التطبيقات والخدمات > واجهات برمجة التطبيقات والخدمات المفعَّلة > Google Chat API > الإعدادات.

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

  2. في حقل اسم التطبيق، اكتب AI knowledge assistant.

  3. في عنوان URL للأفاتار، اكتب https://fonts.gstatic.com/s/i/short-term/release/googlesymbols/live_help/default/24px.svg.

  4. في حقل الوصف، اكتب Answers questions with AI.

  5. انقر على مفتاح التبديل تفعيل الميزات التفاعلية لتفعيله.

  6. ضمن الوظائف، اختَر الانضمام إلى المساحات والمحادثات الجماعية.

  7. ضمن إعدادات الاتصال، اختَر عنوان URL لنقطة نهاية HTTP.

  8. انسخ البريد الإلكتروني لحساب الخدمة. تحتاج إلى هذا البريد الإلكتروني عند منح الإذن للإضافة بتنفيذ وظيفتك.

  9. ضمن عوامل التفعيل، اختَر استخدام عنوان URL مشترك لنقطة نهاية HTTP لجميع عوامل التفعيل.

  10. في عنوان URL لنقطة نهاية HTTP، الصِق عنوان URL لمشغّل app Cloud Function بالتنسيق https://REGION-PROJECT_ID.cloudfunctions.net/app حيث REGION هي منطقة Cloud Function، مثل us-central1 وPROJECT_ID هو رقم تعريف المشروع لمشروع على السحابة الإلكترونية الذي أنشأته.

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

  12. اختياريًا، ضمن السجلات، اختَر تسجيل الأخطاء في خدمة Logging.

  13. انقر على حفظ. ستظهر رسالة "تم حفظ الإعدادات".

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

اختبار تطبيق محادثات

اختبِر تطبيق محادثات المستند إلى الذكاء الاصطناعي في مساحة Chat تتضمّن رسائل من خلال طرح أسئلة يمكن لتطبيق محادثات المستند إلى الذكاء الاصطناعي الإجابة عنها.

في ما يلي بعض الطرق لاختبار مساعد الذكاء الاصطناعي: تطبيق محادثات:

  • أضِف تطبيق محادثات مساعد الذكاء الاصطناعي إلى مساحة Chat حالية واطرح أسئلة ذات صلة بهذه المساحة.
  • أنشئ مساحة Chat وانشر بضع رسائل لاستخدامها كمصدر بيانات. يمكنك الحصول على الرسائل من Gemini باستخدام طلب مثل Answer 20 common onboarding questions employees ask their teams. أو يمكنك لصق بضع فقرات من دليل نظرة عامة حول "التطوير باستخدام Chat" ثم طرح أسئلة حولها.

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

  1. افتح Google Chat.

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

  2. إنشاء مساحة Chat:

    1. انقر على محادثة جديدة > إنشاء مساحة.

    2. في اسم المساحة، اكتب Testing AI knowledge assistant app.

    3. ضمن ما الغرض من هذه المساحة؟، اختَر التعاون.

    4. ضمن إعدادات الوصول، اختَر المستخدمين الذين يمكنهم الوصول إلى المساحة.

    5. انقر على إنشاء.

  3. أضِف الرسائل لاستخدامها كمصدر بيانات:

    1. في متصفّح الويب، انتقِل إلى دليل نظرة عامة حول التطوير باستخدام Chat.

    2. انسخ محتوى الدليل والصقه في مساحة Chat التي أنشأتها.

  4. أضِف تطبيق محادثات الذكاء الاصطناعي المساعد:

    1. في شريط إنشاء الرسائل، اكتب @AI knowledge assistant، ثم اختَر تطبيق محادثات AI knowledge assistant من قائمة الاقتراحات التي تظهر، واضغط على enter.

    2. ستظهر رسالة تسألك عمّا إذا كنت تريد إضافة تطبيق محادثات مساعد الذكاء الاصطناعي إلى المساحة. انقر على الإضافة إلى المساحة.

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

      1. انقر على ضبط.
      2. ستُفتح نافذة متصفّح أو علامة تبويب جديدة تطلب منك اختيار حساب Google. اختَر الحساب الذي تريد إجراء الاختبار عليه.
      3. راجِع الأذونات التي يطلبها تطبيق محادثات، وهو مساعد معرفي مستند إلى الذكاء الاصطناعي. لمنحها، انقر على السماح.
      4. ستظهر رسالة You may close this page now.. أغلِق نافذة المتصفّح أو علامة التبويب وارجع إلى مساحة Chat.
  5. طرح سؤال:

    1. في شريط إنشاء الرسائل، اكتب سؤالاً، مثل What are Google Chat apps?

    2. الإجابات التي يقدّمها تطبيق محادثات Chat، وهو مساعد مستند إلى الذكاء الاصطناعي

الاعتبارات وخيارات البنية البديلة والخطوات التالية

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

‫Firestore أو Cloud Storage أو طلب List Messages في Chat API

يوصي هذا الدليل التعليمي بتخزين بيانات مساحة Chat، مثل الرسائل، في قاعدة بيانات Firestore لأنّ ذلك يحسّن الأداء مقارنةً باستدعاء طريقة list على المورد Message باستخدام Chat API في كل مرة يجيب فيها تطبيق محادثات عن سؤال. بالإضافة إلى ذلك، يمكن أن يؤدي تكرار طلب list messages إلى تجاوز تطبيق محادثات لحدود حصة واجهة برمجة التطبيقات.

ومع ذلك، إذا أصبح سجلّ محادثات إحدى مساحات Chat طويلاً جدًا، قد يصبح استخدام Firestore مكلفًا.

‫Cloud Storage هي بديل عن Firestore. تحصل كل مساحة يكون فيها تطبيق محادثات، وهو مساعد مستند إلى الذكاء الاصطناعي، نشطًا على عنصر خاص بها، وكل عنصر هو ملف نصي يحتوي على جميع الرسائل في المساحة. تتميّز هذه الطريقة بأنّه يمكن إدخال محتوى ملف نصي كامل إلى Vertex AI مع Gemini في وقت واحد، ولكن من عيوبها أنّها تتطلّب جهدًا أكبر لتعديل سجلّ المحادثات لأنّه لا يمكنك إضافة محتوى إلى عنصر في Cloud Storage، بل يمكنك استبداله فقط. لا يكون هذا الأسلوب منطقيًا إذا كنت تعدّل سجلّ الرسائل بانتظام، ولكنّه سيكون خيارًا جيدًا إذا كنت تعدّل سجلّ الرسائل بشكل مجمّع بشكل دوري، مثلاً مرة واحدة في الأسبوع.

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

عندما يعرض تطبيق محادثات أو بطاقة في Google Chat خطأً، تعرض واجهة Chat رسالة تفيد بأنّه "حدث خطأ". أو "تعذّر علينا معالجة طلبك". في بعض الأحيان، لا تعرض واجهة مستخدم Chat أي رسالة خطأ، ولكن ينتج تطبيق محادثات Chat أو البطاقة نتيجة غير متوقّعة، مثلاً، قد لا تظهر رسالة البطاقة.

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

تَنظيم

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

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

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

  2. في قائمة المشاريع، اختَر المشروع الذي تريد حذفه، ثم انقر على حذف .
  3. في مربّع الحوار، اكتب رقم تعريف المشروع، ثم انقر على إيقاف لحذف المشروع.