إنشاء بحث في المحتوى المستنِد إلى الذكاء الاصطناعي (AI) باستخدام وكيل "مستندات Google"

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

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

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

نظرة عامة

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

مخطّط عملي لوكيل "مستندات Google" الشكل 1. مخطّط عملي لتطبيق مشروع "موظّف دعم المستندات"

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

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

إعداد المشروع

سترشدك هذه التعليمات إلى كيفية إعداد مشروع "مساعد مستندات Google" بغرض تطويره واختباره. تتضمّن الخطوات العامة تثبيت بعض البرامج المشترَطة ، وضبط بعض متغيّرات البيئة، واستنساخ المشروع من مستودع الرمز المبرمَج ، وتشغيل عملية تثبيت الإعدادات. يستخدم مشروع الرموز البرمجية Python Poetry لإدارة الحِزم و بيئة وقت تشغيل Python.

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

يستخدم مشروع "مساعد مستندات Google" الإصدار 3 من لغة Python وPython Poetry لإدارة الحِزم و تشغيل التطبيق. تعليمات التثبيت التالية مخصّصة لجهاز مضيف Linux.

لتثبيت البرنامج المطلوب:

  1. ثبِّت Python 3 وحزمة بيئة venv الافتراضية لـ Python.
    sudo apt update
    sudo apt install git pip python3-venv
    
  2. ثبِّت Python Poetry لإدارة التبعيات والتعبئة لملف المشروع.
    curl -sSL https://install.python-poetry.org | python3 -
    

يمكنك استخدام Python Poetry لإضافة المزيد من مكتبات Python في حال توسيع نطاق المشروع.

ضبط متغيّرات البيئة

اضبط بعض متغيّرات البيئة المطلوبة للسماح بتشغيل رمز "مساعد مستندات Google" المشروع، بما في ذلك مفتاح Google Gemini API وإعدادات Python Poetry. قد تحتاج إلى إضافة هذه المتغيّرات إلى ملف $HOME/.bashrc إذا كنت تستخدم نظام التشغيل Linux، لجعلها الإعدادات التلقائية لجلسات الترميز.

لضبط متغيّرات البيئة:

  1. احصل على مفتاح Google Gemini API وانسخ سلسلة المفتاح.
  2. اضبط مفتاح واجهة برمجة التطبيقات كمتغيّر بيئة. على مضيفي Linux، استخدِم الأمر التالي.
    export API_KEY=<YOUR_API_KEY_HERE>
    
  3. يمكنك حلّ مشكلة معروفة في Python Poetry من خلال ضبط المَعلمة PYTHON_KEYRING_BACKEND. على مضيفي Linux، استخدِم الأمر التالي.
    export PYTHON_KEYRING_BACKEND=keyring.backends.null.Keyring
    

استنساخ المشروع وضبطه

نزِّل رمز المشروع واستخدِم الأمر الخاص بتثبيت Poetry لتنزيل التبعيات المطلوبة وضبط المشروع. تحتاج إلى استخدام برنامج التحكّم في المصدر git لاسترداد رمز المصدر للمشروع. external لتحميل رمز المشروع وضبطه:

  1. استنسِخ مستودع git باستخدام الأمر التالي.
    git clone https://github.com/google/generative-ai-docs
    
  2. يمكنك اختياريًا ضبط مستودع git المحلي لاستخدام ميزة "الفحص الخفيف"، لكي لا تتوفّر لديك سوى ملفات مشروع "مساعد مستندات Google".
    cd generative-ai-docs/
    git sparse-checkout init --cone
    git sparse-checkout set examples/gemini/python/docs-agent/
    
  3. انتقِل إلى الدليل الجذري للمشروع docs-agent.
    cd examples/gemini/python/docs-agent/
    
  4. شغِّل الأمر Poetry install لتنزيل التبعيات وضبط المشروع:
    poetry install
    

تحضير المحتوى

تم تصميم مشروع "مساعد مستندات Google" للعمل مع المحتوى النصي، ويتضمن أدوات خاصة للعمل مع المواقع الإلكترونية التي تستخدم Markdown كتنسيق المصدر. إذا كنت تعمل على محتوى موقع إلكتروني، عليك الحفاظ على (أو تكرار) بنية الدليل للموقع الإلكتروني الذي يتم عرضه لتتمكّن مهمة معالجة المحتوى من ربط هذا المحتوى وإنشاء روابط إليه.

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

لإعداد المحتوى للمعالجة:

  1. أنشئ دليلاً للمحتوى الذي تريد أن يبحث عنه موظّف الدعم الذكي.
    mkdir docs-agent/content/
    
  2. انسخ المحتوى إلى الدليل docs-agent/content/. إذا كان المحتوى موقعًا إلكترونيًا، يجب الحفاظ على (أو تكرار) بنية الدليل في الموقع الإلكتروني الذي يتم عرضه.
  3. وننصحك بتنظيف المحتوى أو تعديله حسب الحاجة لإزالة المعلومات غير المتاحة للجميع أو المعلومات الأخرى التي لا تريد تضمينها في عمليات البحث.

استخدام مستندات Flutter للاختبار

إذا كنت بحاجة إلى مجموعة من المحتوى لاختبار "مساعد مستندات Google"، يمكنك استخدام مستندات المطوّرين الخاصة بمنصّة Flutter للاختبار.

للحصول على مستندات مطوّري Flutter:

  1. انتقِل إلى دليل المحتوى الذي تريد أن يبحث عنه موظّف الذكاء الاصطناعي.
    cd docs-agent/content/
    
  2. انسخ مستندات Flutter إلى الدليل docs-agent/content/.
    git clone --recurse-submodules https://github.com/flutter/website.git
    

معالجة المحتوى

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

تقسيم محتوى النص

إنّ كمية النص التي يمكن أن يمثّلها متجه تضمين النص بشكل فعّال محدودة. يحدّ هذا المشروع من النص المعروض في متّجه إلى 3, 000 حرف أو أقل، ما يعني أنّه عليك تقسيم المحتوى إلى أجزاء تقلّ عن هذا الحدّ الأقصى لعدد الأحرف. يصف هذا القسم كيفية استخدام نص برمجي متوفر مع مشروع مساعد "مستندات Google" لتقسيم ملفات Markdown إلى أجزاء نصية أصغر. للحصول على نصائح حول العمل مع تنسيقات المحتوى الأخرى، يُرجى الاطّلاع على مقالة التعامل مع التنسيقات الأخرى.

لتقسيم محتوى بتنسيق Markdown:

  1. اضبط مَعلمات الإدخال لنص معالجة البيانات من خلال تعديل ملف docs-agent/config.yaml. يستهدف هذا المثال مجموعة فرعية من مستندات Flutter:
    input:
    - path: "content/website/src/ui"
      url_prefix: "https://docs.flutter.dev/ui"
  2. احفظ التغييرات في ملف الإعدادات هذا.
  3. انتقِل إلى دليل مشروع docs-agent:
    cd docs-agent/
    
  4. يمكنك تقسيم محتوى مصدر Markdown من خلال تنفيذ الأمر agent chunk:
    agent chunk
    

يعالج النص البرمجي محتوى الإدخال وينشئ ملفات نصية للإخراج في دليل docs-agent/data، مع تقسيم النص استنادًا إلى العناوين والعناوين الفرعية والفقرات المرتبطة. قد تستغرق المعالجة بعض الوقت استنادًا إلى حجم المحتوى.

إنشاء متجهات تضمين النصوص

بعد تقسيم المحتوى إلى أجزاء ذات مغزى بحجم مناسب، يمكنك تعبئة قاعدة بيانات المتجهات بمحتوى باستخدام دالة تضمين النص. يستخدم مشروع "مساعد "مستندات Google" قاعدة بيانات Chroma لمتجهات لتخزين متجهات تضمين النصوص. تتناول هذه التعليمات كيفية استخدام النص البرمجي لمسؤولي "مستندات Google" لتعبئة قاعدة بيانات متجهات بالمحتوى المُقسَّم.

لإنشاء نماذج إدراج نص وملء قاعدة بيانات المتجهات:

  1. انتقِل إلى دليل مشروع docs-agent:
    cd docs-agent/
    
  2. يمكنك ملء قاعدة بيانات المتجهات بمحتوى باستخدام agent populate الأمر:
    agent populate
    

يستخدم هذا النص البرمجي Google Gemini API لإنشاء تضمين النصوص المتجهة، ثم يحفظ الإخراج في قاعدة بيانات المتجهات. قد تستغرق المعالجة بعض الوقت حسب حجم المحتوى.

معالجة التنسيقات الأخرى

تم تصميم مشروع "مساعد "مستندات Google" للعمل مع محتوى الموقع الإلكتروني بتنسيق Markdown. أنشأ مؤلفو المشروع بعض النصوص البرمجية لإنشاء أنواع أخرى من المحتوى بتنسيق Markdown، بما في ذلك "مستندات Google" وتنسيق Portable Document Format (PDF) وGmail. لمزيد من المعلومات عن استخدام هذه المحوِّلات، يُرجى الاطّلاع على ملف docs-agent/apps_script directory في مستودع الرموز البرمجية.

تحويل تنسيقات المحتوى الأخرى

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

إنّ الرمز الرئيسي الذي تحتاج إلى إنشائه لتتوافق مع تنسيقات المحتوى الأخرى هو رمز برمجي لفاصل مثل رمز برمجي files_to_plain_text.py. احرص على إنشاء نص أو برنامج ينتج ناتجًا مشابهًا لهذا النص. تذكَّر أنّ النص النهائي يجب أن يتضمّن الحد الأدنى من التنسيق والمحتوى الملحق. إذا كنت تستخدم تنسيقات محتوى مثل HTML أو JSON، احرص على إزالة أكبر قدر ممكن من التنسيقات غير المعلوماتية (العلامات والنصوص البرمجية وCSS) حتى لا تؤدي إلى تشويه قيم عمليات تضمين النص التي تنشئها منها.

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

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

عند الانتهاء من تعبئة قاعدة بيانات المتجهات، يصبح المشروع جاهزًا للاختبار. يقدّم المشروع وظيفة تغليف تتيح لك تشغيل المشروع على الجهاز.

لتشغيل واجهة الويب للمشروع واختبارها:

  1. انتقِل إلى دليل مشروع docs-agent:
    cd docs-agent/
    
  2. شغِّل النص البرمجي لبدء تطبيق الويب:
    agent chatbot
    
  3. باستخدام متصفّح الويب، انتقِل إلى عنوان URL المعروض في ناتج نص التشغيل واختَبر التطبيق.
    * Running on http://your-hostname-here:5000
    

خيارات التنفيذ

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

يتضمّن "مساعد "مستندات Google" خيارات ضبط لاستخدام ميزة Semantic Retrieval API أو نموذج AQA Gemini أو كليهما. لمزيد من المعلومات، يُرجى الاطّلاع على مستند Readme الخاص بوكيل "مستندات Google".

مراجع إضافية

لمزيد من المعلومات عن مشروع "مساعد مستندات Google"، يُرجى الاطّلاع على مستودع الرموز البرمجية. إذا كنت بحاجة إلى مساعدة في إنشاء التطبيق أو كنت تبحث عن مطوّرين متعاونين، يمكنك الاطّلاع على خادم Discord الخاص بمنتدى "مطوّرو تطبيقات Google".

تطبيقات الإصدار العلني

إذا كنت تخطّط لنشر "مساعد مستندات Google" لجمهور كبير، يُرجى العِلم أنّ استخدامك ل Google Gemini API قد يخضع لقيود على معدّل الإرسال وغيرها من قيود الاستخدام. إذا كنت تفكر في إنشاء تطبيق متاح للجميع باستخدام واجهة برمجة التطبيقات Gemini API، مثل مساعد Docs، يمكنك الاطّلاع على خدمات Google Cloud Vertex AI لزيادة قابلية التطبيق للتوسع والموثوقية.