يشرح برنامج تعليمي مفصل كيفية بناء خط أنابيب للاستجابة المعززة بالاسترجاع (RAG) متعدد الوسائط باستخدام Python، قادر على البحث والاستدلال في كل من النصوص والصور المستخرجة من مستندات معقدة. يستهدف المبدأ ملفات PDF التي تجمع بين النصوص والجداول والرسوم البيانية، وهي تنسيقات يواجه فيها نظام RAG التقليدي صعوبة إذا اعتمد على النص وحده.
تعمل تقنية RAG على استرجاع مقاطع من مستند وإرسالها إلى نموذج لغوي قبل أن يقوم بصياغة إجابته. عند تطبيقها على النص وحده، تعطي هذه العملية نتائج جيدة. ومع ذلك، فإن التقسيم الذي يعتمد فقط على النص يدمر تنسيق الجداول ويستبعد الصور، مما يجعل النظام يستجيب بناءً على رؤية غير مكتملة للمستند. على العكس من ذلك، يعالج خط الأنابيب الموصوف الصور ككائنات قابلة للاستعلام تمامًا مثل النص.
يعتمد التنفيذ على LangChain، ومكتبة unstructured، وواجهة برمجة تطبيقات OpenAI. يصف البرنامج التعليمي أربع خطوات: تحليل المستند، وتلخيص الصور، وتخزين المجموعة، واستعلام النظام. حزمة poppler-utils، وهي تبعية نظامية، ضرورية لـ unstructured لاستخراج الصور من ملفات PDF.
فصل النص والصور
تقوم دالة partition_pdf() في unstructured بقراءة المستند وتصنيف كل عنصر حسب النوع: فقرات، وجداول، وصور مضمنة. يتم حفظ الصور في مجلد مخصص، بينما يتم تجميع كتل النص في أجزاء لا تتجاوز 4000 حرف، بناءً على العناوين. ثم تقوم حلقة بفصل الأجزاء النصية عن مسارات الوصول إلى الصور.
لا تستطيع قاعدة متجهية تقليدية فهرسة الصورة مباشرة. لذلك، يتم إرسال كل صورة إلى GPT-4o، مع التعليمات «Describe this image in detail for use in a search system»، للحصول على وصف مفصل يعمل كبديل قابل للاستعلام. يشير البرنامج التعليمي إلى وجود تكلفة في هذه المرحلة: كل صورة تؤدي إلى استدعاء لواجهة برمجة التطبيقات. بالنسبة للمستندات التي تحتوي على الكثير من الشعارات أو الرموز، يقترح تصفية الصور الأصغر حجمًا قبل هذه المعالجة.
تخزين ذو مستويين
يعتمد الهيكل على MultiVectorRetriever، الذي يدير مساحتي تخزين. الأولى، قاعدة متجهية Chroma، تحتوي على أجزاء النص وأوصاف الصور، المحولة إلى متجهات باستخدام نموذج التضمين text-embedding-3-small. الثانية، مخزن وثائق في الذاكرة، يحتفظ بالمحتوى الخام. يرتبط كل إدخال بنظيره بواسطة معرف فريد. بمجرد إجراء البحث على الأوصاف، يستعيد النظام جزء النص أو ملف الصورة الأصلي.
عند الاستعلام، يتم تحويل السؤال نفسه إلى متجهات ومقارنته بالعناصر المفهرسة. يتم إرسال أجزاء النص كما هي، بينما يتم فتح الصور المسترجعة ثم ترميزها إلى base64، وهو تنسيق نصي يسمح بإرفاقها بالاستعلام. يتم إرسال المجموعة إلى GPT-4o، الذي ينتج ردًا يعتمد على كلا النوعين من المحتوى. يوضح البرنامج التعليمي المنهجية من خلال السؤال «What does the revenue chart show for Q3?»، والذي يمكن استخدامه كما هو كمثال.
مسارات التطوير
يذكر المؤلف عدة امتدادات محتملة: إضافة خطوة إعادة ترتيب (re-ranking) لتحسين دقة البحث، أو حفظ قاعدة بيانات Chroma على القرص للاستخدام في الإنتاج، أو استكشاف نماذج الرؤية واللغة مثل ColPali، التي تدمج صفحات المستندات مباشرة كصور وبالتالي تتجاوز خطوة التحليل.





