المتسوق الخفي من CityMobile

تحية! اسمي Narek Markosyan وأنا مطور خلفية في Citimobil. أريد أن أخبركم عن روبوت Telegram المغلق "متسوق الغموض" .

فاتحة


لا أحد يرتدي نظارة وردية في CityMobile ، نحن ندرك جيدًا أن خدمتنا ليست مثالية ، لذلك نحن نعمل دائمًا على تحسينها. قد ترتبط مشكلات العميل بالتطبيق ، مع حساب السعر ، ولكن في أغلب الأحيان مع برنامج التشغيل.

نحن نحب السائقين لدينا ونحاول جعل عملهم أكثر إمتاعًا وربحية ، ولكن نظرًا لوجود سائق لا ضمير له ، يمكننا أن نفقد العديد من العملاء ، وبالتالي حرمان السائقين الذين يقومون بعملهم بأمانة.

لهذا السبب ، قررنا تطوير أداة للاستجابة السريعة للشكاوى المتعلقة بالسائقين.

لماذا نحتاج إلى روبوت


بالتأكيد يتم النظر في جميع شكاوى عملائنا من قبل موظفي قسم الدعم ، لكن لا يمكننا الاعتماد بشكل كامل على الإحصاءات الواردة من العملاء لعدة أسباب:

  • ليس كل العملاء يتركون ملاحظاتهم إذا حدث خطأ ما ؛
  • لا يمكننا دائمًا التأكد من موضوعية العملاء ؛
  • لا نريد ولا يمكننا أن نحصل على العملاء مجموعة من الأسئلة التوضيحية للحصول على الصورة كاملة.

ماذا تفعل؟ اطلب من زملائنا المساعدة!

  • على الأرجح لن ينسى الموظفون الإبلاغ عن مشكلة ؛
  • الموظفين أكثر موضوعية . ليس حتى النهاية ، ولكن لا يزال :)
  • يمكنك الذهاب إلى زميل ومعرفة كل التفاصيل اللازمة.

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

كيف يعمل الروبوت؟


صورة

المتسوق الخفي بسيط للغاية. يتكون من معالجين فقط:

يأخذ المعالج الأول من رحلات واجهة برمجة التطبيقات التي أكملت مؤخرًا أو في حالة "قيد النقل" ، ويرسل سؤال الرحلة الأولى إلى الدردشة.

يقوم المعالج الثاني بالوصول إلى Telegram API والتقاط الرسائل غير المقروءة ، ويمر كل رسالة بدوره ويرسل استجابة إلى الدردشة.

بالطبع ، كان من الممكن جعل خادمنا يرسل الرسائل تلقائيًا إلى روبوت الرحلة ولم ترد ردود المستخدمين من Telegram على دفعات ، ولكن في وقت الإرسال ، ولكن بعد المناقشات ، قررنا أن نجعل الآلية الموضحة أعلاه. كانت هناك عدة أسباب لهذا:

  • مع هذا التطبيق ، يتم إغلاق الخدمة بالكامل للطلبات الواردة على جميع المنافذ ، وبالتالي لا يمكننا أن نخاف من محاولات القرصنة أو هجمات DDOS ؛
  • إذا جاءت العديد من الرسائل من المستخدمين في نفس الوقت ، فلن تقصفنا Telegram بالطلبات ؛
  • إذا أصبح الروبوت باهتًا ، فلن يؤثر على خادمنا الرئيسي ولن يؤثر على العمليات التجارية.

اخترنا الخلية كقاعدة للبوت. ستكون أي قاعدة بيانات مناسبة لنا ، حتى noSQL ، لكننا اخترنا MySQL لتسهيل إدارة التحليلات على البيانات اللازمة.

بالنسبة للغة ، اخترنا هنا بين PHP و GoLang. توقفنا في PHP ، لأن "لماذا لا". من خلال التطبيق الذي لدينا ، لن نستخدم المزايا الرئيسية لـ Go ، ولكننا سنعقد التطوير الإضافي - وليس كل مطورينا يكتبون على Go. إذا كانت لديك فكرة عما سيكون أفضل من PHP في تنفيذ Go هذا ، فسيسعدني أن أقرأ في التعليقات.

تحسينات


لم تكن هناك العديد من التحسينات منذ الإصدار الأول. بعد الإطلاق الرسمي ، بدأنا في جمع التعليقات ونتيجة لذلك وجدنا مشكلتين فقط.

المشكلة الأولى هي الذاكرة القصيرة . في أول تطبيق ، بدأ الروبوت في سؤال الموظف بعد 5 دقائق من الرحلة. اتضح أنه خلال هذا الوقت تمكن الراكب من نسيان بعض التفاصيل ، على سبيل المثال ، رقم تسجيل السيارة. بعد التحسين ، بدأ الروبوت في المسح بعد دقيقة واحدة من وصول الراكب إلى السيارة. سأل الروبوت أسئلة ، والإجابة عليها معروفة بالفعل (نظافة السيارة ، ما إذا كانت السيارة تحتوي على الأرقام الصحيحة ، وما إلى ذلك). بعد الرحلة ، عاد الروبوت مع حزمة أخرى من الأسئلة ، الإجابات التي تصبح واضحة فقط خلال الرحلة.

المشكلة الثانية هي أن كل شيء على ما يرام دائما تقريبا معنا . بغض النظر عن مدى قد يبدو غريبا ، ولكن من وجهة نظر الروبوت ، أصبح هذا مشكلة. تعبت زملائنا بعد كل رحلة 10 مرات للإجابة "كل شيء على ما يرام". لقد حللنا هذه المشكلة من خلال تجميع الأسئلة: قمنا بدمج جميع الأسئلة التي طُرحت خلال الرحلة وكل الأسئلة التي طرحت بعد ذلك في سؤالين متطابقين: "هل كل شيء على ما يرام؟" مع مجموعة مختلفة من الإجابات.

صورة

في المستقبل القريب ، نخطط لزيادة عدد العملاء الموثوق بهم وبالتالي جعل الروبوت أكثر كفاءة. للقيام بذلك ، ستحتاج إلى إعادة الترخيص وإضافة المراقبة إلى الأحداث الحرجة. إذا كانت هناك تغييرات مثيرة للاهتمام ، سأكتب مقالة منفصلة عنها ...

Source: https://habr.com/ru/post/ar484728/


All Articles