1. قبل البدء
في ما يلي بعض النقاط التي يجب أخذها في الاعتبار قبل مواصلة هذا الدرس التطبيقي حول الترميز.
المتطلبات الأساسية
- فهم أساسي للّغات الآلية للترجمة
- فهم أساسي لأنظمة RAG
ما ستتعرّف عليه
- كيفية إنشاء محرك بحث بجودة Google يمكنه الإجابة عن أسئلتك من البيانات التي تحمّلها
- كيفية إنشاء Vertex AI Datastore
- طريقة إنشاء برامج وكيل Vertex AI
- كيفية الاستفادة من CloudRun لنشر التطبيق
المتطلبات
- حساب على Google Cloud
- مشروع على Google Cloud
- بيئة تطوير متكاملة تتضمّن وحدة طرفية
مقدمة
"بحث Google" هو أداة فعّالة تستخدِم فهرسًا ضخمًا لصفحات الويب والمحتوى الآخر من أجل تقديم نتائج ذات صلة بطلبات بحث المستخدمين. ويُتاح ذلك من خلال تقنية تُعرف باسم "الإنشاء المعزّز لاسترداد المعلومات" (RAG)، وهي تقنية رئيسية في الذكاء الاصطناعي الحديث.
تعمل تقنية RAG من خلال استرداد مقاطع ذات صلة أولاً من مجموعة مستندات. ويتم ذلك باستخدام مجموعة متنوعة من الطرق، مثل مطابقة الكلمات الرئيسية والتشابه الدلالي وتعلُّم الآلة. بعد استرجاع المقاطع ذات الصلة، يتم استخدامها لإنشاء ملخّص أو إجابة عن طلب بحث المستخدم.
الفائدة الرئيسية من RAG هي أنها تسمح للنماذج اللغوية بتجنب الهلوسة. الوهم هو مصطلح يُستخدَم لوصف إنشاء نص لا يستند إلى الدليل الوارد في مجموعة النصوص. ويمكن أن يحدث ذلك عندما لا تتمكّن نماذج اللغة من التمييز بين المعلومات ذات الصلة وغير ذات الصلة.
تساعد طريقة RAG في تجنب الهلوسة من خلال التأكد من أن النص الذي تم إنشاؤه يستند دائمًا إلى دليل من مجموعة الوثيقة. ما يجعله مصدر معلومات أكثر موثوقية
تقنية RAG هي تقنية قوية تُستخدم في مجموعة متنوعة من التطبيقات، بما في ذلك محركات البحث وروبوتات الدردشة وأنظمة الإجابة على الأسئلة. ومن المرجّح أن تلعب دورًا متزايدًا في مجال الذكاء الاصطناعي في السنوات القادمة.
في ما يلي بعض الأمثلة على كيفية استخدام مقياس RAG في الممارسة:
- تستخدِم العديد من أنظمة البحث نموذج RAG لإنشاء نتائج بحث ذات صلة بطلب بحث المستخدم.
- تستخدِم برامج الدردشة الآلية مقياس RAG لإنشاء ردود على أسئلة المستخدمين تكون مفيدة وتفاعلية.
- تستخدِم أنظمة الإجابة عن الأسئلة مقياس RAG لإنشاء إجابات دقيقة وشاملة عن أسئلة المستخدمين.
أسلوب RAG هو أسلوب متعدد الاستخدامات يمكن استخدامه لإنشاء نص في مجموعة متنوعة من النطاقات والتطبيقات. إنّها أداة قوية تساعد في تعزيز الذكاء الاصطناعي وتزويده بالمعلومات.
في هذا الدليل التعليمي حول الرموز البرمجية، سننشئ نظامًا للتقييم حسب الفئات العمرية يمكنه المساعدة في الإجابة عن أسئلتك باستخدام مجموعة النصوص المقدَّمة التي حمّلتها بنفسك. تساعدك منصة RAG الجاهزة للاستخدام، والتي تُعرف باسم "أداة إنشاء محركات البحث/المساعِدين الذكيين" في Vertex AI، على تسريع إنشاء أنظمة RAG، وبالتالي تجنُّب الجهد اليدوي المبذول في جمع المستندات وتحليلها وتقسيمها وإنشاء البيانات المضمّنة وتوسيع نطاق طلبات البحث واسترداد المرشحين وترتيبهم. على الرغم من أنّ نظام RAG المُعدّ مسبقًا يساعدك في البدء بسرعة، توفّر Google Cloud أيضًا واجهات برمجة تطبيقات منفصلة لكل عملية لإنشاء أنظمة RAG ذاتية الصنع تساعد في ضبط أنظمة RAG لتلبية متطلبات نشاطك التجاري.
التطبيق الذي ستصممه
بحلول نهاية هذا الدليل التعليمي، سيكون لديك نظام RAG فعّال يمكنه المساعدة في الإجابة عن أسئلتك باستخدام معلومات وقائعية مستندة إلى مراجع صحيحة.
سيكون لديك أيضًا فهم أفضل لكيفية استخدام واجهات برمجة تطبيقات Vertex AI Search لإنشاء بنية RAG هذه على Google Cloud. بالإضافة إلى ذلك، ستتعرّف أيضًا على كيفية نشر تطبيق بنية RAG هذا (مع الواجهة الأمامية والخلفية) على CloudRun، وهي منصة لا تستخدِم الخادم لنشر التطبيقات كمحاويات على Google Cloud.
آلية عمل التطبيق
- تحميل بياناتك: يمكن للمستخدمين تحميل مجموعة البيانات الخاصة بهم، أي ملف PDF كإدخال.
- طرح طلبات بحث في شريط البحث: يمكن للمستخدمين طرح أسئلة في شريط البحث استنادًا إلى مجموعة البيانات التي تم تحميلها.
- استرداد الإجابات: يمكن للمستخدمين استرداد نتائج البحث/النتائج المُقترَحة والتحقّق من صحة الإجابة التي يتم استردادها استنادًا إلى مدى صلة طلب البحث.
2. إعداد البيئة
- في Google Cloud Console، ضمن صفحة أداة اختيار المشاريع، اختَر مشروعًا على Google Cloud أو أنشئه.
- تأكَّد من تفعيل الفوترة لمشروعك على Google Cloud. تعرَّف على كيفية التحقّق مما إذا كانت الفوترة مفعَّلة في مشروع.
- ستستخدم Cloud Shell، وهي بيئة سطر أوامر تعمل في Google Cloud. للوصول إليه، انقر على "تفعيل Cloud Shell" في أعلى وحدة تحكّم Google Cloud.
- بعد الاتصال بخدمة Cloud Shell، تأكَّد من أنّك سبق أن تم مصادقة حسابك وأنّه تم ضبط المشروع على معرّف مشروعك باستخدام الأمر التالي:
gcloud auth list
- شغّل الأمر التالي في Cloud Shell للتأكد من معرفة الأمر gcloud بمشروعك.
gcloud config list project
- إذا لم يتم ضبط مشروعك، استخدِم الأمر التالي لضبطه:
gcloud config set project <YOUR_PROJECT_ID>
- تأكَّد من تفعيل واجهات برمجة التطبيقات التالية:
- Cloud Run
- Vertex AI
- تخزين في السحابة الإلكترونية
بدلاً من استخدام الأمر gcloud، يمكنك الانتقال إلى وحدة التحكّم باستخدام هذا الرابط. يمكنك الرجوع إلى المستندات لمعرفة أوامر gcloud وكيفية استخدامها.
3- الخطوة 1: إنشاء حزمة على Google Cloud Platform
- انتقِل إلى وحدة التحكّم واكتب Cloud Storage في شريط البحث.
- اختَر Cloud Storage من النتائج المقترَحة.
- انقر فوق "Create Bucket" (إنشاء حزمة)
- أدخِل اسمًا فريدًا على مستوى العالم للحزمة.
- انقر على "متابعة".
- في "نوع الموقع الجغرافي"، اختَر "مناطق متعدّدة".
- في القائمة المنسدلة، احرص على اختيار الخيار
us (multiple regions in United States)
.
- انقر على "إنشاء حزمة".
- بعد إنشاء الحزمة، حمِّل
alphabet-metadata.json
من المستودع.
4. الخطوة 2: إنشاء قاعدة بيانات Vertex AI
- في شريط البحث في صفحة وحدة التحكّم، اكتب "أداة إنشاء موظّفي الدعم من Vertex AI".
- اختَر المنتج الأول، "Agent Builder".
- في صفحة "أداة إنشاء موظّفي الدعم"، انقر على "مستودعات البيانات" كما هو موضّح في شريط التنقّل على يمين الصفحة.
- انقر على "إنشاء مخزن بيانات"
- اختيار Cloud Storage كمستودع للبيانات
- انقر على "اختيار" أسفل رمز Cloud Storage.
- في علامة التبويب أسفل خيار "المجلد"، انقر على الزر "تصفّح".
- اختَر الحزمة التي أنشأتها في الخطوة 1.
- في الخيارات أدناه، احرص على اختيار "المستندات غير المنظَّمة المرتبطة (JSONL مع بيانات وصفية)"
- انقر على متابعة
- في صفحة "الإعداد"، اختَر "عالمي" كموقع لتخزين البيانات.
- إدخال اسم قابل للتعريف لمخزن البيانات
- انقر على "إنشاء".
الملفّ الشخصي على Brownie:
- فوق الزر "إنشاء" مباشرةً، يظهر خيار معالجة المستندات.
- يمكنك تجربة برامج تحليل مختلفة، مثل برامج التحليل الرقمي أو تحليل الصور أو تحليل التنسيق.
- يمكنك أيضًا تفعيل ميزة تقسيم الملفات إلى أجزاء متقدّمة وتحديد حدود حجم الأجزاء المخصّصة.
5- الخطوة 3: إنشاء وكيل
- بمجرد إنشاء تخزين البيانات، انقر على التطبيق في شريط التنقل على اليمين واختر "التطبيقات"
- انقر على الزر "إنشاء تطبيق".
- اختَر نوع التطبيق "بحث" (يمكنك أيضًا إنشاء موظّفي دعم أو برامج محادثة أو اقتراحات أو غير ذلك).
- تأكَّد من اختيار "عام" ضمن "المحتوى". يمكنك أيضًا اختيار "الوسائط" أو "الاقتراحات" استنادًا إلى مخزن البيانات ونوع البيانات والأنظمة التي تريد إنشاءها.
- تأكَّد من تفعيل كلّ من ميزتَي Enterprise Edition وAdvanced LLM.
- إدخال اسم التطبيق
- تقديم اسم شركتك
- تأكَّد من اختيار المنطقة لتكون "عالمي".
- انقر على "متابعة" .
- في الشاشة التالية، اختَر مستودع البيانات الذي أنشأته في الخطوة 2.
- انقر على "إنشاء".
6- الخطوة 4: استخدام Docker مع تطبيقك
- فتح وحدة التحكّم في Google Cloud
- يمكنك استنساخ المستودع <sample_repository_link> باستخدام الأمر التالي:
git clone https://github.com/kkrishnan90/vertex-ai-search-agent-builder-demo
- غيِّر الدليل وانتقِل إلى المستودع المنسوخ باستخدام الأمر التالي
cd vertex-ai-search-agent-builder-demo
- بنية المجلد
- الخلفية: سيحتوي هذا القسم على تنفيذ واجهة برمجة تطبيقات مستندة إلى Python، ما سيساعد في إنشاء نقاط نهاية RESTful لكي تتفاعل معها الواجهة الأمامية.
- الواجهة الأمامية: سيحتوي هذا القسم على تطبيق مستند إلى React وسيعرض واجهة المستخدم. وسيتضمّن ذلك أيضًا طلبات البيانات اللازمة على مستوى التطبيق إلى الخلفية من خلال نقاط نهاية rest.
- ملف Dockerfile: سيحتوي هذا الملف على جميع الأوامر ذات الصلة لإنشاء حاوية docker
- في جذر دليل المستودع، نفِّذ الأمر التالي الذي سيساعد في إنشاء صورة docker (ملاحظة: تأكَّد من استخدام العلامة
- - platform
عند إنشاء حاويات docker في أجهزة Macbook التي تستخدم شرائح Apple Silicon مثل M1 وM2 وما إلى ذلك. هذه العلامة غير ضرورية إذا كنت تُنشئ باستخدام جهاز Windows أو إذا كانت بنية وحدة المعالجة المركزية مستندة إلى Intel).
docker build --platform linux/amd64 -t your-image-name .
- بعد نجاح إنشاء حاوية Docker، نفِّذ الأمر التالي لتسمية الحاوية بالعلامات الصحيحة لضمان تقديم إصدار من صورتك. تذكَّر أنّه يمكن أن يكون هناك إصدارات متعدّدة من التطبيق، وبالتالي إصدارات متعدّدة كعلامات في حاويات Docker. من الجيد أن يتم استخدام أحدث إصدار ثابت دائمًا، وذلك من وجهة نظر ممارسي DevOps.
docker tag your-image-name REGION-docker.pkg.dev/PROJECT-ID/REPOSITORY-NAME/IMAGE-NAME:TAG
- بعد نجاح وضع علامة على صورة حاوية Docker، لنرسل الصورة الآن إلى Google Artifact Registry (GAR). GAR هي منصة مُدارة بالكامل من Google للمساعدة في إدارة حاويات Docker والتحكّم في إصداراتها. شغّل الأمر التالي الذي سيؤدي إلى نقل الحاوية التي تم وضع علامة عليها أعلاه إلى GAR. لمزيد من المعلومات، يُرجى الرجوع إلى الرابط التالي [ https://cloud.google.com/artifact-registry/docs/docker/pushing-and-pulling]
docker push REGION-docker.pkg.dev/PROJECT-ID/REPOSITORY-NAME/IMAGE-NAME:TAG
7- الخطوة 5: نشر تطبيقك على Cloud Run
- تصغير نافذة الوحدة الطرفية في شريط البحث في وحدة تحكّم Google Cloud، ابحث عن Cloud Run.
- انقر على منتج Cloud Run المقترح
- انقر على "إنشاء خدمة".
- في الصفحة التالية، تأكَّد من اختيار "نشر إصدار واحد من صورة حاوية حالية".
- أدناه، انقر على "تحديد"
- سيظهر لك الآن شريط تنقّل على يسار الصفحة.
- تأكَّد من اختيار Artifact Registry كعلامة التبويب.
- تأكَّد من اختيار المشروع بشكل صحيح.
- انقر على السهم لتوسيع ملف الأركان المتداخلة في رابط صورة الحاوية المنشورة.
- اختَر علامة الحاوية ووسِّعها (اختَر دائمًا أحدث العلامات المنشورة - مع أحدث العلامات الصحيحة، أي الإصدار 1 والإصدار 2 وما إلى ذلك).
- انقر على صورة الحاوية التي تظهر أسفل اسم علامة الحاوية.
- في منطقة "الضبط"
- أدخِل اسم خدمة لتطبيقك على Cloud Run (سيكون هذا الاسم جزءًا من عنوان URL عند نشر التطبيق على Cloud Run).
- اختَر المنطقة المناسبة (في هذه الحالة us-central1 أو أي منطقة أخرى من اختيارك).
- ضمن المصادقة
- تأكَّد من اختيار "السماح بطلبات التفعيل غير المعتمَدة".
- ضمن تخصيص وحدة المعالجة المركزية (CPU) وتحديد الأسعار
- اختَر "تخصيص وحدة المعالجة المركزية (CPU) فقط أثناء معالجة الطلب".
- عدِّل "توسيع نطاق الخدمة تلقائيًا" إلى 1 (لأغراض الإنتاج، ننصحك بتشغيل الحد الأدنى من النُسخ للتعامل مع عدد الزيارات اليومية، ويمكنك أيضًا تركه على 0 أي صفر).
- اضبط "التحكّم في الإدخال" على "الكل" للسماح للزيارات من الإنترنت بالوصول إلى تطبيقك.
- انقر على "إنشاء".
- سيؤدي ذلك إلى نشر مثيل Cloud Run ويستغرق توفير الجهاز نفسه بضع دقائق.
- بعد نشر التطبيق، ستتمكّن من الاطّلاع على عنوان URL المتاح للجميع والذي يمكنك من خلاله الوصول إلى تطبيق الويب.
8. آلية العمل
- بعد الانتقال إلى الصفحة الرئيسية للتطبيق، انقر على الزر "تحميل مستند".
- تحميل ملف PDF
- بعد اكتمال عملية التحميل
- انقر على شريط البحث في أعلى صفحة الويب.
- ابدأ البحث عن طلبات بحث ذات صلة بالمستند الذي حمّلته.
- بعد كتابة طلب البحث والنقر على "بحث"، من المفترض أن تظهر جميع الإجابات ذات الصلة من المستند الذي حمّلته للتو.
- يمكنك إجراء بعض التغييرات من خلال الاطّلاع على رمز الخلفية وإضافة المزيد من الإعدادات على النحو التالي:
- إضافة مقتطفات
- إضافة شرائح استخراج البيانات
- إضافة إجابات
- ضبط أهم k نتيجة لمساعدة النموذج اللغوي الكبير (LLM) في تلخيص الإجابة (مثل "نظرة عامة على الذكاء الاصطناعي" على "بحث Google")
- وكإضافة، يمكنك أيضًا إضافة علامات البيانات الوصفية أثناء تحميل المستند. سيساعد ذلك في إنشاء واجهات وفئات قابلة للفلترة.
9. تَنظيم
لتجنُّب تحصيل رسوم من حسابك على Google Cloud مقابل الموارد المستخدَمة في هذا الدليل التعليمي، اتّبِع الخطوات التالية:
- في وحدة تحكّم Google Cloud، انتقِل إلى صفحة إدارة الموارد.
- في قائمة المشاريع، اختَر المشروع الذي تريد حذفه، ثم انقر على حذف.
- في مربّع الحوار، اكتب رقم تعريف المشروع، ثم انقر على إيقاف التشغيل لحذف المشروع.
- بدلاً من ذلك، يمكنك الانتقال إلى Cloud Run في وحدة التحكّم، واختيار الخدمة التي تم نشرها للتو وحذفها.
10. تهانينا
تهانينا! لقد نجحت في إنشاء نظام RAG سريع وجاهز للاستخدام باستخدام النماذج المتطوّرة التي توفّرها Google ولتقديم نتائج بجودة Google لطلبات البحث. هذا الدليل التعليمي مخصّص لأغراض توضيحية فقط، ويجب إعداد المزيد من إجراءات الأمان والحدود الدنيا لحالات الاستخدام في مرحلة الإنتاج. يمكنك العثور على رابط المستودع الكامل هنا. من خلال الاستفادة من Google Cloud وببضع خطوات فقط، يمكننا إنشاء نظام RAG شامل يمكنه تقديم نتائج بجودة Google في غضون بضع دقائق. مع تطور الذكاء الاصطناعي التوليدي والنماذج اللغوية الكبيرة، يساعدنا أيضًا إنشاء أنظمة RAG هذه في تجنُّب مخاطر عرض معلومات غير صحيحة أو غير مُستشهد بها.
على الرغم من أنّ هذه ليست سوى نقطة بداية، يمكننا استخدام واجهات برمجة تطبيقات DIY RAG القابلة للتخصيص بالكامل والتي توفّر لك المزيد من الشفافية والفعالية والكفاءة للتعامل مع كل جزء من عملية المعالجة بفعالية.