سوف يساعدنا الروبوت

سوف يساعدنا الروبوت

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

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

أولاً، دعونا نصف المشكلات التي يجب حلها.

المطورون هم في الغالب أشخاص انطوائيون ولا يحبون التحدث؛ فمن الأسهل بكثير كتابة سؤالك في محادثة عبر البريد الإلكتروني. باستخدام الروبوت، لا يتعين عليك التفكير في من تسأل، ومن تتصل، وأين تذهب، وبشكل عام، أين تبحث عن المعلومات وما إذا كانت ذات صلة.

المشكلة الثانية هي المعلومات - فهي كثيرة، وهي موجودة في مصادر مختلفة، وليست متاحة دائمًا وتحتاج إلى إضافة وتحديث مستمر.

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

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

تم تشكيل المتطلبات الفنية بناءً على متطلبات العمل.

يجب أن يعمل الروبوت على أساس Skype (تاريخيا، يستخدمونه في الشركة)، لذلك تم اختيار الخدمة على Azura.

لتقييد الوصول إليه، بدأنا في استخدام آلية التفويض عبر Skype.
تم استخدام مكتبة ParlAI للتعرف على النص

مطلوب أيضًا وجود بوابة ويب إدارية للتكوين والتدريب وتصحيح الأخطاء وإعداد المراسلات والمهام الأخرى.

سوف يساعدنا الروبوت

أثناء العمل في المشروع واجهنا عدد من المشاكل والصعوبات.

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

كانت أصعب مرحلة هي بداية المشروع، عندما تحتاج إلى اختيار ما سنستخدمه، وما هي البنية التي ستكون عليها، وكيف وأين سيتم تخزين البيانات، وكيف ستتفاعل مكونات ووحدات النظام مع بعضها البعض.

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

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

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

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

الآن دعونا نتحدث بمزيد من التفاصيل حول وظائف الروبوت وبنيته وحلوله التقنية.

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

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

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

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

سوف يساعدنا الروبوت

يتم التخويل من خلال Skype - خدمة تخويل البوابة الإلكترونية وشبكة الشركة وLDAP. وبالتالي، يعتمد الترخيص على بيانات المستخدم الحالية على شبكة الشركة.

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

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

سوف يساعدنا الروبوت

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

بضع كلمات حول بنية الحل.

سوف يساعدنا الروبوت

بنية الحل معيارية. وتشمل الخدمات المسؤولة عن المهام المختلفة وهي:
• خدمة Skype bot على Azure - تقبل طلبات المستخدم وتعالجها. هذه خدمة بسيطة إلى حد ما وهي أول من يتلقى طلبًا ويقوم بمعالجته الأولية.
• بوابة الإدارة - خدمة توفر واجهة ويب لإعداد البوابة الإلكترونية والروبوت نفسه. يتصل الروبوت دائمًا بالبوابة أولاً، وتقرر البوابة ما يجب فعله بعد ذلك مع الطلب.
• خدمة التفويض - توفر آليات المصادقة للروبوت وبوابة الإدارة. يحدث التفويض عبر بروتوكول Oauth2. من خلال التفويض الإيجابي، تقوم الخدمة بإجراء التفويض في شبكة الشركة وفقًا لبيانات المستخدم الصالحة، بحيث يمكن للنظام التحكم في الأخطاء المرتبطة بالبيانات غير المتزامنة.
• وحدة التعرف على النص بتقنية الذكاء الاصطناعي، مكتوبة بلغة بايثون وتستخدم إطار عمل ParlAI للتعرف على النص نفسه. هذه شبكة عصبية، على الأقل في تطبيقها الحالي. نستخدم خوارزمية tfDiff لفهم الأسئلة. توفر الوحدة واجهة برمجة التطبيقات (API) للتواصل معها والتعلم.

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

المصدر: www.habr.com

إضافة تعليق