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

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

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

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

نظرة عامة

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

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

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

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

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

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

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

يستخدم مشروع وكيل المستندات لغة Python 3 و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 Gemini API وPython مكان ظهور الشعر يمكنك إضافة هذه المتغيّرات إلى ملف $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 install لتنزيله. التبعيات المطلوبة وتهيئة المشروع. أنت بحاجة إلى برنامج التحكم في المصدر git لاسترداد بيانات رمز مصدر المشروع. مستخدم خارجي لتنزيل رمز المشروع وإعداده:

  1. استنسِخ مستودع git باستخدام الأمر التالي.
    git clone https://github.com/google/generative-ai-docs
    
  2. يمكنك اختياريًا ضبط مستودع git المحلي للاستفادة من عمليات الدفع المتنافرة. لذا لا تكون لديك سوى ملفات مشروع وكيل المستندات.
    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. انتقِل إلى دليل المحتوى الخاص بالمحتوى الذي تريد من وكيل الذكاء الاصطناعي (AI) أن ينفّذه. بحث.
    cd docs-agent/content/
    
  2. استنسِخ مستندات Flutter في دليل docs-agent/content/.
    git clone --recurse-submodules https://github.com/flutter/website.git
    

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

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

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

مقدار النص الذي يمكن لمتجه تضمين النص أن يمثله بشكل فعال محدودة. يحدد هذا المشروع النص الممثل في الخط المتجه بـ 3000 حرف أو أقل، ويعني ذلك تقسيم المحتوى إلى أجزاء عدد الأحرف المسموح به يصف هذا القسم كيفية استخدام نص برمجي تم توفيره مع مشروع وكيل المستندات لتقسيم ملفات 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. قاعدة بيانات متجه لتخزين متجهات تضمين النص. تتناول هذه التعليمات كيفية استخدام النص البرمجي لوكلاء المستندات من أجل تعبئة قاعدة بيانات متجهة بتقسيم المحتوى.

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

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

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

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

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

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

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

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

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

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

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

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

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

خيارات الاستخدام

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

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

مراجع إضافية

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

تطبيقات الإنتاج

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