تخطّ إلى المحتوى
AISI
𝕏
سير عمل / أتمتة

نظام أتمتة لفرز وتصنيف شكاوى المستفيدين وتحليل المشاعر باللغة العربية

سير عمل مؤتمت لاستقبال الشكاوى، تصنيفها موضوعياً، تحليل المشاعر، وتوجيهها للقسم المختص باستخدام n8n و Ollama.

الهدف من مسار العمل

أتمتة عملية خدمة العملاء والدعم الفني للمنظمات من خلال معالجة الشكاوى الواردة وتحديد أولوياتها تلقائياً.

خطوات التشغيل التفصيلية

الخطوات

خطوة

مخطط سير العمل

رسم بياني مُولَّد تلقائيًا

flowchart RL S1["1. استقبال الشكوى عبر Webhook"] S2["2. استخراج النص وتنظيفه"] S3["3. تحليل المشاعر والتصنيف عبر Ollama"] S4["4. تخزين النتائج في PostgreSQL"] S5["5. إرسال تنبيه للقسم المختص عبر..."] S1 --> S2 S2 --> S3 S3 --> S4 S4 --> S5 subgraph Tools["🔧 الأدوات المستخدمة"] T0(("n8n")) T1(("Ollama")) T2(("PostgreSQL")) T3(("Telegram")) end style Tools fill:#fffbeb,stroke:#f59e0b,stroke-width:1px

التفاصيل البرمجية والتهيئة

مقدمة حول سير العمل

سير عمل مؤتمت لاستقبال الشكاوى، تصنيفها موضوعياً، تحليل المشاعر، وتوجيهها للقسم المختص باستخدام n8n و Ollama.

الهدف من سير العمل

أتمتة عملية خدمة العملاء والدعم الفني للمنظمات من خلال معالجة الشكاوى الواردة وتحديد أولوياتها تلقائياً.

الأدوات والتقنيات المستخدمة

تم استخدام الأدوات التالية: n8n و Ollama و PostgreSQL و Telegram

تفاصيل تنفيذ سير العمل

  • مستوى الصعوبة: intermediate
  • الوقت المتوقع للإعداد: 3-4 ساعات
  • محفز التشغيل (Trigger): وصول شكوى جديدة عبر نموذج الاتصال أو البريد الإلكتروني

خطوات العمل (الآلية)

  1. استقبال الشكوى عبر Webhook
  2. استخراج النص وتنظيفه
  3. تحليل المشاعر والتصنيف عبر Ollama
  4. تخزين النتائج في PostgreSQL
  5. إرسال تنبيه للقسم المختص عبر Telegram

وصف مفصل

مقدمة حول أتمتة تصنيف الشكاوىتواجه المنظمات والمؤسسات الخدمية تحدياً يومياً يتمثل في استقبال مئات الشكاوى والاستفسارات من المستفيدين والعملاء. تتنوع هذه الشكاوى بين مشكلات فنية، استفسارات مالية، واقتراحات تطويرية. في بيئة العمل التقليدية، يتطلب فرز هذه الشكاوى وتصنيفها وتوجيهها للقسم المعني وقتاً طويلاً وجهداً بشرياً كبيراً، مما يؤدي إلى تباطؤ الاستجابة وتدني رضا المتعاملين. يهدف هذا المستند إلى توفير دليل شامل لبناء نظام أتمتة كامل وقوي يستقبل الشكاوى، ويحلل مشاعر أصحابها (سلبية، إيجابية، محايدة)، ويصنفها موضوعياً، ثم يوجهها للقسم المختص مع تنبيه فوري، كل ذلك بالاعتماد على أدوات مفتوحة المصدر بالكامل لضمان أمان البيانات وخصوصيتها. متطلبات النظام والبنية التحتيةلبناء هذا النظام وتشغيله محلياً أو على خادم خاص بالمؤسسة، سنحتاج إلى الأدوات التالية: Docker و Docker Compose: لإدارة وتشغيل الحاويات البرمجية بشكل معزول وسهل التثبيت. n8n: محرك الأتمتة الرئيسي الذي يربط بين جميع المكونات ويوجه البيانات من مرحلة الاستقبال إلى الإرسال النهائي. Ollama: منصة تشغيل نماذج لغوية كبرى (LLM) محلياً، حيث سنستخدم نموذج Qwen 2.5 لتميزه الفائق في فهم وتوليد اللغة العربية. PostgreSQL: قاعدة بيانات علائقية لتخزين سجلات الشكاوى، أوقات الاستقبال، نتائج التحليل، وحالات المتابعة. بوابة إشعارات (Telegram Bot API): كوسيلة فورية لإعلام الموظفين بالشكاوى ذات الأولوية العالية. خطوات التثبيت والإعداد1. تشغيل البيئة باستخدام Docker Composeنقوم بإنشاء ملف docker-compose.yml يضم خِدْمات n8n و Ollama و PostgreSQL في شبكة واحدة مشتركة لسهولة التواصل بينها دون الحاجة للمرور عبر الإنترنت العام. بعد إعداد الملف، نشغل الحاويات عبر الأمر docker-compose up -d.2. إعداد قاعدة البياناتنتصل بقاعدة بيانات PostgreSQL وننشئ جدولاً مخصصاً باسم tickets يتضمن حقولاً للمعرف الفريد، اسم المستفيد، البريد الإلكتروني، نص الشكوى، المشاعر المحللة، القسم الموجه إليه الشكوى، تاريخ الاستقبال، وحالة الشكوى (جديدة، قيد المعالجة، مغلقة).3. تهيئة نموذج Ollamaنقوم بتحميل نموذج Qwen 2.5 المخصص للمحادثات عبر تشغيل الأمر ollama run qwen2.5 في حاوية Ollama. نختبر النموذج للتأكد من فهمه للهجات العربية المختلفة واللغة العربية الفصحى. تفاصيل سير العمل (Workflow Steps) في n8nيبدأ سير العمل بعقدة Webhook تستقبل البيانات من نموذج الاتصال في موقع المنظمة. بمجرد وصول طلب POST يحتوي على بيانات الشكوى, يتم تمريرها إلى عقدة معالجة النصوص لتنظيف النص من الأحرف الغريبة والمسافات الزائدة. بعد ذلك، يتم استدعاء عقدة Ollama Chat Node مع صياغة موجهة (Prompt) باللغة العربية تطلب من النموذج تحليل النص وتحديد مشاعر الكاتب بدقة، وتصنيف الشكوى إلى أحد الأقسام التالية: (الدعم الفني، الحسابات والمبيعات، الإدارة والشكاوى العامة). نطلب من النموذج إرجاع النتيجة بصيغة JSON محددة لسهولة قراءتها برمجياً. تلتقط n8n مخرجات Ollama، وتقوم بعقدة شرطية (IF Node) بفحص مشاعر الشكوى وقسمها، وتخزن السجل كاملاً في PostgreSQL. أخيراً، إذا كانت المشاعر ‘سلبية جداً’، يتم إرسال تنبيه عاجل مع ملخص الشكوى عبر بوت Telegram إلى مدير القسم المعني لاتخاذ إجراء سريع. الأخطاء الشائعة وحلولها الفنيةأثناء تشغيل هذا النظام، قد تواجهك بعض التحديات: بطء استجابة النموذج اللغوي: يحدث هذا غالباً بسبب نقص موارد الذاكرة العشوائية (RAM) أو عدم استخدام بطاقة رسوميات (GPU) مخصصة. الحل يكمن في استخدام نماذج أصغر حجماً مثل Qwen 2.5 3B أو تشغيل النظام على خادم مزود ببطاقة رسوميات متوافقة مع CUDA. أخطاء تصنيف المشاعر للهجات العامية: قد تجد النماذج صعوبة في تفسير بعض الكلمات العامية المحلية. لعلاج ذلك، يجب إثراء الـ System Prompt بأمثلة حية من اللهجات الدارجة لتوضيح المعنى والأسلوب للنموذج (Few-shot prompting). فشل معالجة JSON المرتجع: أحياناً يضيف النموذج نصوصاً تفسيرية قبل أو بعد كود JSON. لحل هذه المشكلة، نقوم بضبط المعلمة format: “json” في طلب Ollama، أو استخدام عقد تعبيرات منتظمة (Regex) في n8n لاستخراج كود JSON فقط.