الهدف الأساسي - كان الهدف من المشروع تطوير تطبيق ذكي يُعرف بـ PDFPal، وهو روبوت محادثة يعتمد على الذكاء الاصطناعي للإجابة عن الأسئلة المتعلقة بمحتوى ملفات PDF بناءً على استفسارات المستخدمين.
1. إعداد البيئة البرمجية (Environment Setup) - تم استخدام مكتبات متنوعة مثل Streamlit لتطوير واجهة المستخدم وPyPDF2 لاستخراج النصوص من ملفات PDF. - الاعتماد على مكتبة LangChain لتقسيم النصوص وتحليلها، بالإضافة إلى FAISS لبناء قاعدة بيانات للبحث.
2. تحميل وتحليل ملفات PDF - أُضيفت ميزة لرفع ملفات PDF عبر واجهة Streamlit. - تم استخراج النصوص من كل صفحة باستخدام مكتبة PyPDF2 وتجميعها في سلسلة نصوص متواصلة.
3. هندسة النصوص (Text Engineering) - تقسيم النصوص إلى مقاطع باستخدام مكتبة CharacterTextSplitter لضمان معالجة النصوص بشكل فعال. - حجم كل مقطع: 1000 حرف والتداخل بين المقاطع (overlap) 200 حرف.
4. بناء قاعدة المعرفة (Knowledge Base) - تحويل النصوص المقسمة إلى تمثيلات عددية (Embeddings) باستخدام نموذج OllamaEmbeddings. - تخزين هذه التمثيلات في قاعدة بيانات FAISS للبحث الفوري.
5. تصميم روبوت المحادثة - أُضيف حقل إدخال يتيح للمستخدم طرح الأسئلة المتعلقة بمحتوى ملف PDF. - البحث عن المقاطع ذات الصلة بالاستفسار من قاعدة المعرفة باستخدام Similarity Search. - الإجابة عن الأسئلة باستخدام سلسلة تحليل تعتمد على نموذج OllamaLLM.
6. التدريب على النموذج وتحسين الأداء - تم دمج نموذج llama3 للرد على الأسئلة بلغة طبيعية ودقيقة. - استخدام load_qa_chain لتحليل النصوص ذات الصلة وتقديم إجابة مركزة.
التحديات - معالجة الملفات الكبيرة: التعامل مع ملفات PDF ضخمة كان يتطلب تقسيم النصوص بعناية لتحقيق التوازن بين الدقة والأداء. - دقة الإجابات: ضمان أن تكون الإجابات مركزة وتلبي احتياجات المستخدم.
النتائج والتوصيات - PDFPal يوفر واجهة سهلة الاستخدام للإجابة على الأسئلة حول محتوى ملفات PDF.
يمكن تحسين الأداء مستقبلاً عن طريق: - تحسين البحث في النصوص باستخدام نماذج أحدث وأكثر قوة. - تمكين المستخدم من تحميل ملفات بصيغ إضافية إلى جانب PDF.
يمكنك الإطلاع على المشروع من هنا: https://mostaql.com/portfolio/2591880-pdfpal-ai-chatbot-for-pdf-content