أتمتة استخراج وتلخيص البيانات المالية من تقارير PDF وإنشاء رسوم بيانية
نظام متكامل لقراءة ملفات PDF المالية، استخراج الأرقام الرئيسية وتلخيصها بالذكاء الاصطناعي مع رسم بياني تلقائي.
الهدف من مسار العمل
تحويل التقارير المالية الطويلة وغير المهيكلة إلى ملخصات ورسوم بيانية سهلة القراءة لمديري الشركات وصناع القرار.
خطوات التشغيل التفصيلية
الخطوات
مخطط سير العمل
رسم بياني مُولَّد تلقائيًا
التفاصيل البرمجية والتهيئة
مقدمة حول التحليل المالي المؤتمتيمثل تحليل التقارير المالية السنوية عبئاً كبيراً على المحللين الماليين والمديرين التنفيذيين، إذ غالباً ما تتجاوز هذه التقارير مئات الصفحات المليئة بالجداول المعقدة والنصوص الطويلة. يستغرق البحث اليدوي عن مؤشرات الأداء الرئيسية مثل الإيرادات الصافية، هوامش الربح، التدفقات النقدية، والديون وقتاً طويلاً. يقدم هذا المستند دليلاً تفصيلياً لبناء سير عمل ذكي ومؤتمت يستخرج البيانات المالية الرئيسية من ملفات PDF المرفوعة حديثاً، ويحللها ويقوم بتلخيصها باللغة العربية الفصحى، ثم يولد رسومات بيانية توضيحية باستخدام سكربت Python محلي، ويرسل التقرير المدمج مباشرة للمسؤولين. المكونات الأساسية للنظاملبناء خط إنتاج التقارير المالية المؤتمت، نحتاج إلى توفير الأدوات والبيئات البرمجية التالية: n8n Enterprise أو Community Edition: لتنسيق التدفق ومراقبة التخزين السحابي. Google Drive API: لمراقبة مجلدات رفع الملفات وتنزيلها تلقائياً. Ollama (مع نموذج Llama 3.1): لمعالجة النصوص المستخرجة، وفهم السياق المالي وتلخيص البنود المطلوبة. بيئة تشغيل Python: مجهزة بمكتبات معالجة البيانات والرسم البياني مثل pandas و matplotlib و pdfplumber. خادم SMTP: لإرسال الإيميلات والتقارير المرفقة بنجاح. خطوات الإعداد والتهيئة1. تكوين الاتصال بـ Google Driveنقوم بإنشاء مشروع على Google Cloud Platform وتفعيل Google Drive API وتوليد مفاتيح الوصول (OAuth2). في n8n، ننشئ اتصالاً جديداً ونربطه بالمجلد المخصص لرفع التقارير المالية.2. إعداد بيئة Python المحليةنثبت بيئة Python وحزمها الأساسية. نكتب سكربت بسيطاً باسم generate_charts.py يستقبل مصفوفة البيانات المالية المستخرجة كوسيط سطر أوامر، ويقوم بإنشاء رسم بياني شريطي يقارن الإيرادات وصافي الأرباح على مدى السنوات الثلاث الأخيرة، ثم يحفظ الرسم كصورة PNG عالية الجودة.3. ضبط وتجهيز مطالبات Ollamaنكتب مطالبة مالية صارمة باللغة العربية تطلب من نموذج Llama 3.1 التركيز فقط على الجداول المالية واستخراج الأرقام الفعلية دون أي تأويل أو تقدير غير حقيقي، وصياغة المخرجات في جدول منظم باللغة العربية مع ملخص للأداء العام. شرح مراحل سير العمل الفنييبدأ التدفق عندما تكتشف عقدة Google Drive Trigger رفع ملف PDF جديد في المجلد المحدد. يتم تنزيل الملف بشكل مؤقت، وتقوم عقدة Read Binary File بتمرير محتواه إلى عقدة مخصصة تقوم بتجزئة الملف وقراءة نصوصه وصفحاته المالية (عادة الصفحات الأولى أو الملحق المالي). يتم إرسال النص المستخرج إلى Ollama الذي يحلل الجداول والقيم، ويستخلص الأرقام الرئيسية (الإيرادات، الأرباح، المصاريف، الأصول، الخصوم) لآخر ثلاث سنوات. تمرر n8n هذه الأرقام المستخرجة إلى عقدة Execute Command التي تشغل سكربت Python وتمرر له القيم. يقوم السكربت بتوليد الرسم البياني وحفظه في مجلد مؤقت. أخيراً، تقوم عقدة Send Email بدمج ملخص Ollama النصي والصورة المولدة في رسالة بريد إلكتروني منسقة بصيغة HTML وإرسالها للمدير المالي والشركاء. الأخطاء الشائعة والتعامل معهامن أبرز المشكلات التي قد تواجه المطورين في هذا التدفق: ملفات PDF الممسوحة ضوئياً (Scanned PDFs): لا يمكن استخراج النص منها مباشرة بالطرق العادية. يتطلب هذا إدراج مرحلة معالجة ضوئية (OCR) باستخدام مكتبة مثل Tesseract قبل تمرير النص للنموذج. هلوسة الأرقام المالية: قد يخطئ النموذج اللغوي أحياناً في قراءة الأرقام الطويلة أو يخلط بين السنوات. للحد من ذلك، يجب استخدام استراتيجية RAG أو فرز الجداول المالية بشكل دقيق يدوياً قبل إرسالها لـ Ollama، وتدريب النموذج على نمط الاستخراج الصارم. مشاكل تشغيل سكربت Python: قد تفشل الحاويات في تشغيل Python لعدم توفر الحزم في الحاوية الافتراضية لـ n8n. يفضل بناء حاوية Custom n8n تحتوي على Python والمكتبات المطلوبة مثبتة مسبقاً.