منصة خدمة عملاء للتجزئة

قيد التشغيل الفعلي

منصة مستضافة ذاتيًا تدير خدمة عملاء فيسبوك لـ English Home Libya باللهجة الليبية — أسعار من الكتالوج فقط، وتعرّف على المنتجات من الصور، وتسليم للبشر عند الحاجة.

الدور
عمل فردي — البنية المعمارية والتنفيذ والنشر والتشغيل
الفترة
2025 – حتى الآن
التقنيات
TypeScript · Next.js · PostgreSQL · Kysely · Docker Compose · Caddy · Gemini API · Meta Graph API
روابط
مستودع المنصةأداة جمع الكتالوجمحرك المطابقة ثلاثي اللغاتمحرك المطابقة البصرية

المشكلة

بُنيت هذه المنصة وتُشغَّل لصالح English Home Libya، وهو نشاط تجزئة يخدم عملاء في ليبيا. تستقبل صفحته على فيسبوك — بجمهور علني يقارب 61 ألف متابع (عدّاد الصفحة العلني، يوليو 2026) — سيلًا مستمرًا من أسئلة المنتجات باللهجة الليبية، ومعظمها «بكم هذا؟» مع صورة مرفقة. الإجابة تعني معرفة أي منتج من أكثر من 4,700 منتج في الكتالوج (حتى يوليو 2026) يظهر في الصورة، وعدم اختراع سعر أبدًا. وبصفتي أخصائي الأنظمة الرقمية والأتمتة للنشاط، أمضيت عامين أرد على تلك الرسائل بنفسي، ومن هناك جاءت المتطلبات.

النظام

يراسل العملاء الصفحة؛ فتجمّع المنصة دفعات الرسائل المتلاحقة، وتحدد المطلوب، وتتعرف على المنتج (بالكود، أو بالنص بثلاث لغات، أو من صورة)، وتجيب بأسعار تُقرأ من الكتالوج الحي فقط، وتسلّم المحادثة لإنسان فور تحول الطلب إلى شراء أو استرجاع أو شكوى. ولوحة إدارة ثنائية اللغة مصممة أولًا للعربية (RTL) تغطي الوارد والتحليلات والحملات ومراجعة الصور وضوابط الذكاء الاصطناعي.

يغذي هذا الخطّ نظامان فرعيان منشوران كمستودعين مستقلين: أداة جمع كتالوج قابلة للاستئناف جمعت كتالوج صور تجاوز 11 غيغابايت خلال عملية البناء الموثقة، ومحرك مطابقة حتمي ثلاثي اللغات يقرر أي منتج تركي مجموع هو نفسه المنتج المسعّر في الكتالوج العربي/الإنجليزي — المطابقات عالية الثقة فقط تُعتمد تلقائيًا، وكل ما عداها يذهب لمراجعة بشرية. والتعرف من الصور يتبع قاعدة «لا تخمّن أبدًا»: القائمة الفارغة تعيد «لا شيء» لا أقرب منتج سيئ، والتصحيحات البشرية المؤكدة تعلّم المحرك.

قرارات وُلدت من أعطال حقيقية

كل من هذه الضوابط موجود لأن شيئًا ما حدث فعلًا ذات مرة:

من الاستضافة المجانية إلى بنية مملوكة

اعتمدت المنصة في البداية على قاعدة بيانات مستضافة مجانية — إلى أن أوقف المزوّد المشروع وأسقط النظام معه. فنقلت كل شيء إلى خادم VPS واحد مُدار ذاتيًا: Postgres 16 والتطبيق و Caddy عبر Docker Compose، مع نسخ احتياطي ليلي ودليل نشر مكتوب. ويحفظ المستودع تلك الهجرة في أربع عشرة ترحيلة SQL مرتبة.

التحقق والحدود

السلوك المنطقي الصرف مغطى بسكربتات تحقق؛ ومحرك المطابقة البصرية المستخرج يشغّل اختباراته الستة في CI. وما لا أدّعيه: أرقام تشغيل أو إحصاءات زيارات — فالمستودع لا يحتوي قياسات، وهذه الصفحة لا تخترع شيئًا.

معرض الأدلة

بنية المنصة: Caddy أمام تطبيق Next.js وقاعدة Postgres، ونواة التكاملات تربط Webhooks ميتا و Gemini
مخطط — بنية النشر (من المستودع؛ بأسماء نطاقات بديلة).
تدفق الرسائل: webhook ثم تجميع الدفعات ثم أدوات الكتالوج ثم المنقّي ثم حارس التسليم ثم التسليم البشري
مخطط — مسار رسالة العميل عبر ضوابط الأمان (من المستودع).