Ќе ни помогне ботот

Ќе ни помогне ботот

Пред една година, нашиот сакан оддел за човечки ресурси побара од нас да напишеме бот за разговор што ќе помогне во адаптацијата на новодојденците во компанијата.

Да направиме резервација дека не развиваме сопствени производи, туку на клиентите им обезбедуваме целосен опсег на развојни услуги. Приказната ќе биде за нашиот внатрешен проект, за кој клиентот не е трета компанија, туку наш сопствен човечки ресурси. А главната задача, со оглед на ограничената достапност на луѓе, ресурси и време, е да се заврши проектот на време и да се ослободи производот.

Прво, да ги опишеме проблемите што требаше да се решат.

Програмерите се главно интровертни луѓе и не сакаат да зборуваат; многу е полесно да го напишете вашето прашање во разговор преку е-пошта. Со бот, не треба да размислувате кого да прашате, кого да се јавите, каде да одите и воопшто, каде да барате информации и дали се релевантни.

Вториот проблем се информациите - ги има многу, ги има во различни извори, не е секогаш достапна и има потреба од постојано дополнување и ажурирање.

Компанијата има скоро 500 вработени, тие се наоѓаат во различни канцеларии, временски зони, градови во Русија, па дури и во странство, обично има многу прашања, па друга задача е да се намали товарот на персоналот за човечки ресурси поврзан со најчестите прашања. од страна на вработените.

Исто така, неопходно беше да се автоматизираат процесите на: приклучување на новодојденците во компанијата, испраќање пораки до менаџерите и менторите на новодојденците, испраќање автоматски потсетници за курсевите и тестовите што треба да ги помине новодојденец за успешна адаптација.

Техничките барања беа формирани врз основа на деловните барања.

Ботот мора да работи на база на Skype (историски го користат во компанијата), па затоа е избрана услугата на Azura.

За да го ограничиме пристапот до него, почнавме да го користиме механизмот за овластување преку Skype.
За препознавање текст се користеше библиотеката ParlAI

Потребен е и административен веб-портал за конфигурација, обука, дебагирање, поставување пораки и други задачи.

Ќе ни помогне ботот

Додека работевме на проектот наидовме на голем број проблеми и тешкотии.

На пример, имаше технички проблеми со сметката на Azure. Мајкрософт не сакаше да ја активира нашата претплата поради некои технички тешкотии во нивната услуга. Речиси два месеци не можевме да сториме ништо за тоа; поддршката на Microsoft на крајот ги подигна рацете и не испрати кај партнерите, кои успешно поставија сè и ни дадоа сметка.

Најтешката фаза беше почетокот на проектот, кога треба да изберете што ќе користиме, каква ќе биде архитектурата, како и каде да се складираат податоците и како компонентите и модулите на системот ќе комуницираат едни со други.

Во нашиот случај, суштински обичните проблеми за започнување на кој било проект беа дополнително комплицирани со персоналот. Спецификите на нашиот бизнис се такви што, за разлика од комерцијалните, на внатрешните проекти често работат програмери кои немаат доволно знаење во бараните области - тие едноставно, по волја на судбината, завршија на клупата чекајќи го следниот голем кул комерцијален проект. Логично е дека работите беа и многу тешки со мотивација во таква ситуација. Продуктивноста паѓа на ниско ниво, тимот често е неактивен, и како резултат на тоа мора да ја убедите (мотивирате) или промените личноста. Кога менувате програмери, треба да спроведете обука, да пренесете знаење и во суштина да го започнете проектот повторно. Секој нов програмер ја гледаше архитектурата на свој начин и ги искара претходните за одлуките што ги донеле и туѓиот код. Препишувањето започна од нула.

Ова траеше околу шест месеци. Само означувавме време, го рефакториравме кодот и не пишувавме ништо ново.

Исто така, за внатрешните проекти, по правило, речиси и да нема документација и беше тешко да се разбере што треба да се направи во секој момент од времето и кои се моменталните приоритети. Беше неопходно да се создаде постојан тим, да се воспостават процеси и да се спроведе планирање и евалуација најмалку три месеци. Но, како да го направите ова кога проектот не е комерцијален, што значи дека треба да инвестирате минимум работни часови, а во исто време да го добиете резултатот не полош отколку за надворешен клиент?

Идентификувавме базен на ресурси кои учествуваа во развојот на проектот, се запознаени со него и сакаат да работат на него. Направивме распоред за вработување на луѓе на проекти. Ја проценивме и координиравме работата и ги вклопивме овие дела во „дупките“ помеѓу главните проекти. По 4 месеци добивме работен прототип на апликацијата.

Сега да разговараме подетално за функционалноста, архитектурата и техничките решенија на ботот.

Едно од главните барања на HR беше да го препознае текстот напишан од корисникот за правилно да одговори на прашањето. Можете да му пишете - сакам да одам на одмор, сакам да одам на одмор или би сакал да одам на одмор, а тој ќе разбере и ќе одговори соодветно. Или наеднаш му се скрши столот на вработениот и тој сака да напише „столот е скршен“ или „Мојот стол е напукнат“ или „Задниот дел од столот падна“; со соодветна обука, ботот ќе ги препознае таквите барања. Квалитетот на самото препознавање на текст зависи од обуката на ботот, за што ќе зборуваме подоцна.

Следниот услов и дел од функционалноста е системот за дијалог на бот. Беше развиен систем во кој ботот може да води дијалог и да го разбере контекстот на актуелното прашање. Како одговор на вашето прашање, тој може да постави какви било прашања за појаснување и да го продолжи разговорот доколку сме го обучиле ботот да го прави тоа. Skype поддржува едноставни опции од менито за да ги поттикне корисниците за опциите за продолжување на разговорите. Исто така, ако водевме дијалог, но одеднаш решивме да поставиме прашање надвор од темата, и ботот ќе го разбере ова.

Ботот овозможува испраќање различни артефакти до корисникот врз основа на неговите лични податоци. На пример, на неговата локација. Да претпоставиме дека ако некое лице сака да најде тоалет, тогаш ќе му биде покажана канцелариска карта што го води до тоалетот. И картичката ќе биде избрана во зависност од тоа во која канцеларија на компанијата се наоѓа вработениот.

Една од најважните задачи е заштита на личните податоци на корисниците. Не можеме да дозволиме секој човек да има пристап до чувствителните податоци со кои работи нашиот бот. Потребата од овластување за ваков бот е негов составен дел. Ботот бара од корисникот да се автентицира пред да може да води каков било дијалог со него. Ова се случува првиот пат кога вработен ќе контактира со ботот. Самата овластување го пренасочува корисникот на соодветната страница, каде што корисникот добива токен, кој потоа го вметнува во порака на Skype. Ако овластувањето е успешно, можете да започнете да комуницирате со ботот.

Ќе ни помогне ботот

Овластувањето се одвива преку Skype - сервис за овластување портал, корпоративна мрежа и LDAP. Така, овластувањето зависи од тековните кориснички податоци на корпоративната мрежа.

Во процесот на развивање на ботот, сфативме дека ни треба некој вид систем вграден во функционалноста на порталот кој би можел да им помогне на HR брзо да го дебагира ботот. Додадовме страница на порталот каде HR може да ги види грешките снимени од корисниците при работа со ботот и да ги реши со преквалификација или да ги остави на програмерите.

Можноста за обука на бот директно на порталот не беше вклучена од самиот почеток. Во текот на процесот на развој, сфативме дека обучувањето на ботот е најчестата задача што ќе ја извршуваат вработените во одделот за човечки ресурси при работа со него, а испраќањето текстуални датотеки до програмерите за дополнителна обука на ботот е целосно неприфатливо. Ова одзема премногу време и создава премногу грешки и проблеми.

Ќе ни помогне ботот

Напишавме UI на порталот за User-friendly обука на ботот. Тоа им овозможува на HR да ја видат тековната обука на ботот, дополнително да го обучуваат и да направат прилагодувања на тековната обука. Обуката е претставена со структура на дрво во која јазлите, односно гранките се продолжение на дијалогот со ботот. Можете да креирате едноставни прашања и одговори, или можете да креирате тешки дијалози, сето тоа зависи од човечките ресурси и нивните потреби.

Неколку зборови за архитектурата на решенијата.

Ќе ни помогне ботот

Архитектурата на решението е модуларна. Вклучува услуги одговорни за различни задачи, имено:
• Skype бот услуга на Azure - прифаќа и обработува барања на корисниците. Ова е прилично едноставна услуга која е прва што добива барање и ја врши својата почетна обработка.
• Административен портал - услуга која обезбедува веб-интерфејс за поставување на порталот и за самиот бот. Ботот секогаш прв контактира со порталот, а порталот одлучува што понатаму со барањето.
• Услуга за авторизација - обезбедува механизми за автентикација за ботот и за административниот портал. Овластувањето се случува преку протоколот Oauth2. Со позитивно овластување, услугата врши авторизација во корпоративната мрежа според валидни кориснички податоци, така што системот може да ги контролира грешките поврзани со податоците кои не се синхронизирани.
• AI Модул за препознавање текст, напишан во Python и со користење на рамката ParlAI за самото препознавање на текст. Ова е невронска мрежа, барем во нејзината сегашна имплементација. Ние го користиме алгоритмот tfDiff за да ги разбереме прашањата. Модулот обезбедува API за комуникација со него и учење.

Како заклучок, сакам да кажам дека ова е наше прво искуство во креирање на чет бот и се обидовме да го направиме системот што е можно поедноставен, но во исто време и функционален, со минимални трошоци за работна сила на него. Мислам дека имаме многу интересен производ. Со сопствен систем за обука, евиденција на грешки, испраќање известувања, може да се интегрира и со кој било друг гласник.

Извор: www.habr.com

Додадете коментар