Бот бізге көмектеседі

Бот бізге көмектеседі

Бір жыл бұрын біздің сүйікті кадрлар бөлімі жаңадан келгендердің компанияға бейімделуіне көмектесетін чат-бот жазуымызды сұрады.

Біз өз өнімдерімізді жасамайтынымызды ескертейік, бірақ біз клиенттерге әзірлеу қызметтерінің толық спектрін ұсынамыз. Әңгіме біздің ішкі жобамыз туралы болмақ, ол үшін тапсырыс беруші үшінші тарап компаниясы емес, біздің жеке HR. Ал адамдардың, ресурстардың, уақыттың шектеулілігін ескерсек, жобаны мерзімінде аяқтап, өнімді шығару басты міндет.

Алдымен, шешуге тура келген мәселелерді сипаттайық.

Әзірлеушілер негізінен интроверт адамдар және сөйлескенді ұнатпайды; электрондық пошта чатында сұрағыңызды жазу әлдеқайда оңай. Ботпен кімнен сұрау керек, кімге қоңырау шалу керек, қайда бару керек және жалпы ақпаратты қайдан іздеу керек және оның өзектілігі туралы ойлаудың қажеті жоқ.

Екінші мәселе - ақпарат - бұл өте көп, ол әртүрлі көздерде, ол әрқашан қол жетімді емес және үнемі толықтыруды және жаңартуды қажет етеді.

Компанияда 500-ге жуық қызметкер бар, олар әртүрлі кеңселерде, уақыт белдеуінде, Ресейдің қалаларында және тіпті шетелде орналасқан, әдетте көптеген сұрақтар туындайды, сондықтан тағы бір міндет - ең жиі қойылатын сұрақтарға байланысты HR қызметкерлеріне жүктемені азайту. қызметкерлер арқылы.

Сондай-ақ келесі процестерді автоматтандыру қажет болды: компанияға жаңадан келгендердің қосылуы, жаңадан келгендердің менеджерлері мен тәлімгерлеріне хабарламалар жіберу, жаңадан келген адам сәтті бейімделу үшін өтуі керек курстар мен сынақтар туралы автоматты ескертулер жіберу.

Техникалық талаптар бизнес талаптары негізінде қалыптастырылды.

Бот Skype негізінде жұмыс істеуі керек (тарихи түрде олар оны компанияда пайдаланады), сондықтан Azura сервисі таңдалды.

Оған қол жеткізуді шектеу үшін біз Skype арқылы авторизациялау механизмін пайдалана бастадық.
Мәтінді тану үшін ParlAI кітапханасы пайдаланылды

Әкімшілік веб-портал конфигурациялау, оқыту, жөндеу, жіберулерді орнату және басқа тапсырмалар үшін де қажет.

Бот бізге көмектеседі

Жобамен жұмыс істеу барысында біз бірқатар мәселелер мен қиындықтарға тап болдық.

Мысалы, Azure тіркелгісімен техникалық ақаулар болды. Microsoft өз қызметіндегі кейбір техникалық қиындықтарға байланысты жазылымды белсендіргісі келмеді. Екі айға жуық уақыт бойы біз бұл туралы ештеңе істей алмадық; Microsoft қолдауы ақыры қолдарын созып, бізді серіктестерге жіберді, олар барлығын сәтті орнатып, бізге тіркелгі берді.

Ең қиын кезең жобаның басталуы болды, ол кезде біз нені қолданатынымызды, архитектурасы қандай болатынын, деректерді қалай және қайда сақтау керектігін, жүйенің құрамдас бөліктері мен модульдері бір-бірімен қалай әрекеттесетінін таңдау керек болды.

Біздің жағдайда кез келген жобаны бастаудың қарапайым проблемалары кадр мәселесімен одан әрі күрделене түсті. Біздің бизнестің ерекшелігі сол, коммерциялық жобалардан айырмашылығы, ішкі жобалармен көбінесе қажетті салаларда жеткілікті білімі жоқ әзірлеушілер айналысады - олар жай ғана тағдырдың қалауымен келесі орынды күтумен аяқталды. үлкен тамаша коммерциялық жоба. Мұндай жағдайда мотивациямен жұмыс өте қиын болғаны қисынды. Өнімділік төмендейді, команда жиі бос жүреді, нәтижесінде адамды көндіру (мотивациялау) немесе өзгерту керек. Әзірлеушілерді ауыстырған кезде сізге оқыту, білім беру және жобаны қайта бастау керек. Әрбір жаңа әзірлеуші ​​архитектураны өзінше көрді және алдыңғыларды қабылдаған шешімдері мен басқа адамдардың коды үшін ұрысты. Қайта жазу нөлден басталды.

Бұл шамамен алты айға созылды. Біз жай ғана уақытты белгіледік, кодты қайта өңдеп, жаңа ештеңе жазбадық.

Сондай-ақ, ішкі жобаларда, әдетте, құжаттама жоқтың қасы, әр уақытта не істеу керектігін және қазіргі басымдықтар қандай екенін түсіну қиын болды. Тұрақты команда құру, процестерді орнату, кем дегенде үш ай бойы жоспарлау мен бағалауды жүргізу қажет болды. Бірақ жоба коммерциялық емес болса, мұны қалай жасауға болады, яғни сізге ең аз адам-сағат жұмсау керек және сонымен бірге сыртқы тапсырыс берушіден жаман нәтиже алу керек пе?

Біз жобаны әзірлеуге қатысқан, онымен таныс және онымен жұмыс істегісі келетін ресурстар пулын анықтадық. Біз адамдарды жобалар бойынша жұмысқа орналастыру кестесін жасадық. Біз жұмысты бағалап, үйлестірдік және бұл жұмыстарды негізгі жобалар арасындағы «тесіктерге» орналастырдық. 4 айдан кейін біз қосымшаның жұмыс прототипін алдық.

Енді боттың функционалдығы, архитектурасы және техникалық шешімдері туралы толығырақ сөйлесейік.

HR негізгі талаптарының бірі сұраққа дұрыс жауап беру үшін пайдаланушы жазған мәтінді тану болды. Сіз оған жаза аласыз - мен демалысқа кеткім келеді, мен демалысқа кеткім келеді немесе демалысқа кеткім келеді, ол түсінеді және тиісінше жауап береді. Немесе кенеттен қызметкердің креслосы сынып қалады және ол «орындық сынды» немесе «менің орындығым жарылып кетті» немесе «орындықтың арқасы құлап кетті» деп жазғысы келеді; тиісті дайындықпен бот мұндай сұрауларды таниды. Мәтінді тану сапасының өзі боттың дайындығына байланысты, ол туралы кейінірек айтатын боламыз.

Функционалдықтың келесі талабы және бөлігі - боттың диалогтық жүйесі. Бот диалог жүргізіп, ағымдағы мәселенің мәнмәтінін түсіне алатын жүйе әзірленді. Сұрағыңызға жауап ретінде ол кез келген нақтылау сұрақтарын қойып, егер біз ботты осыған үйреткен болсақ, әңгімені жалғастыруы мүмкін. Skype пайдаланушыларға сөйлесуді жалғастыру опциялары туралы хабарлау үшін қарапайым мәзір опцияларын қолдайды. Сондай-ақ, егер біз диалог жүргізіп жатқан болсақ, бірақ кенеттен тақырыптан тыс сұрақ қоюды шешсек, бот мұны да түсінеді.

Бот пайдаланушыға оның жеке деректері негізінде әртүрлі артефактілерді жіберуге мүмкіндік береді. Мысалы, оның орналасқан жерінде. Егер адам дәретхана тапқысы келсе, оған дәретханаға апаратын кеңсе картасы көрсетіледі делік. Ал карта қызметкердің қай компания кеңсесінде орналасқанына байланысты таңдалады.

Ең маңызды міндеттердің бірі - пайдаланушылардың жеке ақпаратын қорғау. Біз әрбір адамға біздің бот жұмыс істейтін құпия деректерге қол жеткізуге рұқсат бере алмаймыз. Мұндай бот үшін авторизация қажеттілігі оның ажырамас бөлігі болып табылады. Бот пайдаланушыдан онымен диалог жүргізбес бұрын аутентификациясын сұрайды. Бұл қызметкер ботпен бірінші рет байланысқан кезде орын алады. Авторизацияның өзі пайдаланушыны тиісті бетке қайта бағыттайды, онда пайдаланушы таңбалауышты алады, содан кейін ол Skype хабарламасына кірістіреді. Авторизация сәтті болса, сіз ботпен байланысуды бастай аласыз.

Бот бізге көмектеседі

Авторизация Skype арқылы жүзеге асырылады - авторизациялау қызметі, корпоративтік желі және LDAP. Осылайша, авторизация корпоративтік желідегі ағымдағы пайдаланушы деректеріне байланысты.

Ботты әзірлеу барысында біз HR-ге ботты тез түзетуге көмектесетін портал функционалдығына енгізілген жүйенің бір түрі қажет екенін түсіндік. Біз портал бетін қостық, онда HR ботпен жұмыс істеу кезінде пайдаланушылар жазған қателерді көре алады және оларды қайта оқыту арқылы шеше алады немесе әзірлеушілерге қалдырады.

Порталда тікелей ботты үйрету мүмкіндігі басынан бері қосылмаған. Әзірлеу процесінде біз ботты оқыту онымен жұмыс істеу кезінде HR бөлімі қызметкерлері орындайтын ең кең таралған тапсырма екенін түсіндік, ал ботты қосымша оқыту үшін әзірлеушілерге мәтіндік файлдарды жіберу мүлдем мүмкін емес. Бұл тым көп уақытты жейді және тым көп қателер мен мәселелерді тудырады.

Бот бізге көмектеседі

Біз порталда ботқа ыңғайлы оқыту үшін UI жаздық. Бұл HR-ге боттың ағымдағы жаттығуларын көруге, оны әрі қарай оқытуға және ағымдағы тренингке түзетулер енгізуге мүмкіндік береді. Тренинг түйіндер, яғни тармақтар ботпен диалогтың жалғасы болып табылатын ағаш құрылымымен ұсынылған. Сіз қарапайым сұрақтар мен жауаптар жасай аласыз немесе салмақты диалогтар жасай аласыз, мұның бәрі HR және олардың қажеттіліктеріне байланысты.

Шешім архитектурасы туралы бірнеше сөз.

Бот бізге көмектеседі

Шешім архитектурасы модульдік. Ол әртүрлі тапсырмаларға жауап беретін қызметтерді қамтиды, атап айтқанда:
• Azure жүйесіндегі Skype бот қызметі – пайдаланушы сұрауларын қабылдайды және өңдейді. Бұл сұранысты бірінші болып қабылдап, оны бастапқы өңдеуді жүзеге асыратын өте қарапайым қызмет.
• Әкімші порталы – порталды орнату және боттың өзі үшін веб-интерфейсті қамтамасыз ететін қызмет. Бот әрқашан бірінші кезекте порталға хабарласады және портал сұраумен кейін не істеу керектігін шешеді.
• Авторизация қызметі – бот пен әкімші порталы үшін аутентификация механизмдерін қамтамасыз етеді. Авторизация Oauth2 протоколы арқылы жүзеге асырылады. Оң авторизациямен қызмет корпоративтік желіде жарамды пайдаланушы деректеріне сәйкес авторизацияны орындайды, осылайша жүйе синхрондалмаған деректермен байланысты қателерді басқара алады.
• Python тілінде жазылған және мәтінді тану үшін ParlAI құрылымын пайдаланатын AI мәтінді тану модулі. Бұл нейрондық желі, кем дегенде оның қазіргі іске асырылуында. Сұрақтарды түсіну үшін tfDiff алгоритмін қолданамыз. Модуль онымен байланысу және оқу үшін API ұсынады.

Қорытындылай келе, бұл біздің чат-бот құрудағы алғашқы тәжірибеміз екенін айтқым келеді және біз жүйені мүмкіндігінше қарапайым, бірақ сонымен бірге жұмыс істейтін, ондағы ең аз еңбек шығындарымен жасауға тырыстық. Менің ойымша, бізде өте қызықты өнім бар. Өзінің оқыту жүйесімен, қателерді тіркеумен, хабарландыруды жіберумен оны кез келген басқа мессенджермен біріктіруге болады.

Ақпарат көзі: www.habr.com

пікір қалдыру