منصة خدمة عملاء للتجزئة
قيد التشغيل الفعليمنصة مستضافة ذاتيًا تدير خدمة عملاء فيسبوك لـ English Home Libya باللهجة الليبية — أسعار من الكتالوج فقط، وتعرّف على المنتجات من الصور، وتسليم للبشر عند الحاجة.
المشكلة
بُنيت هذه المنصة وتُشغَّل لصالح English Home Libya، وهو نشاط تجزئة يخدم عملاء في ليبيا. تستقبل صفحته على فيسبوك — بجمهور علني يقارب 61 ألف متابع (عدّاد الصفحة العلني، يوليو 2026) — سيلًا مستمرًا من أسئلة المنتجات باللهجة الليبية، ومعظمها «بكم هذا؟» مع صورة مرفقة. الإجابة تعني معرفة أي منتج من أكثر من 4,700 منتج في الكتالوج (حتى يوليو 2026) يظهر في الصورة، وعدم اختراع سعر أبدًا. وبصفتي أخصائي الأنظمة الرقمية والأتمتة للنشاط، أمضيت عامين أرد على تلك الرسائل بنفسي، ومن هناك جاءت المتطلبات.
النظام
يراسل العملاء الصفحة؛ فتجمّع المنصة دفعات الرسائل المتلاحقة، وتحدد المطلوب، وتتعرف على المنتج (بالكود، أو بالنص بثلاث لغات، أو من صورة)، وتجيب بأسعار تُقرأ من الكتالوج الحي فقط، وتسلّم المحادثة لإنسان فور تحول الطلب إلى شراء أو استرجاع أو شكوى. ولوحة إدارة ثنائية اللغة مصممة أولًا للعربية (RTL) تغطي الوارد والتحليلات والحملات ومراجعة الصور وضوابط الذكاء الاصطناعي.
يغذي هذا الخطّ نظامان فرعيان منشوران كمستودعين مستقلين: أداة جمع كتالوج قابلة للاستئناف جمعت كتالوج صور تجاوز 11 غيغابايت خلال عملية البناء الموثقة، ومحرك مطابقة حتمي ثلاثي اللغات يقرر أي منتج تركي مجموع هو نفسه المنتج المسعّر في الكتالوج العربي/الإنجليزي — المطابقات عالية الثقة فقط تُعتمد تلقائيًا، وكل ما عداها يذهب لمراجعة بشرية. والتعرف من الصور يتبع قاعدة «لا تخمّن أبدًا»: القائمة الفارغة تعيد «لا شيء» لا أقرب منتج سيئ، والتصحيحات البشرية المؤكدة تعلّم المحرك.
قرارات وُلدت من أعطال حقيقية
كل من هذه الضوابط موجود لأن شيئًا ما حدث فعلًا ذات مرة:
- تجميع الدفعات — العملاء يرسلون خمس رسائل قصيرة لا رسالة واحدة؛ نافذة خمس ثوانٍ تمنع خمسة ردود منفصلة.
- حارس التجاوز — استجابة النموذج البطيئة لا يمكنها الكتابة فوق حالة محادثة أحدث.
- إعادة الفحص عند الإرسال — إذا تولى إنسان المحادثة أثناء التوليد، يُسقَط رد الذكاء الاصطناعي ولا يُرسل.
- منقّي المخرجات — صيغ الأدوات البرمجية لا تتسرب أبدًا إلى رسالة عميل.
- تسليم صادق — لا تُعلَّم رسالة كمُسلَّمة إلا بعد تأكيد الواجهة البرمجية.
من الاستضافة المجانية إلى بنية مملوكة
اعتمدت المنصة في البداية على قاعدة بيانات مستضافة مجانية — إلى أن أوقف المزوّد المشروع وأسقط النظام معه. فنقلت كل شيء إلى خادم VPS واحد مُدار ذاتيًا: Postgres 16 والتطبيق و Caddy عبر Docker Compose، مع نسخ احتياطي ليلي ودليل نشر مكتوب. ويحفظ المستودع تلك الهجرة في أربع عشرة ترحيلة SQL مرتبة.
التحقق والحدود
السلوك المنطقي الصرف مغطى بسكربتات تحقق؛ ومحرك المطابقة البصرية المستخرج يشغّل اختباراته الستة في CI. وما لا أدّعيه: أرقام تشغيل أو إحصاءات زيارات — فالمستودع لا يحتوي قياسات، وهذه الصفحة لا تخترع شيئًا.