Ботът ще ни помогне

Ботът ще ни помогне

Преди година нашият любим отдел по човешки ресурси ни помоли да напишем чат бот, който да помогне при адаптирането на новодошлите в компанията.

Нека направим уговорка, че ние не разработваме собствени продукти, но предоставяме на клиентите пълна гама от услуги за разработка. Историята ще бъде за нашия вътрешен проект, за който клиентът не е трета компания, а нашият собствен HR. И основната задача, предвид ограничената наличност на хора, ресурси и време, е да завършим проекта навреме и да пуснем продукта.

Първо, нека опишем проблемите, които трябваше да бъдат решени.

Разработчиците са предимно интровертни хора и не обичат да говорят; много по-лесно е да напишете въпроса си в имейл чат. С бот не е нужно да мислите кого да попитате, на кого да се обадите, къде да отидете и като цяло къде да търсите информация и дали е подходяща.

Вторият проблем е информацията – има я много, има я в различни източници, не винаги е налична и се нуждае от постоянно допълване и актуализиране.

Компанията има почти 500 служители, те се намират в различни офиси, часови зони, градове на Русия и дори в чужбина, обикновено има много въпроси, така че друга задача е да се намали тежестта върху персонала по човешки ресурси, свързана с най-често задаваните въпроси от служители.

Също така беше необходимо да се автоматизират процесите на: присъединяване на новодошли към компанията, изпращане на съобщения до мениджъри и ментори на новодошли, изпращане на автоматични напомняния за курсове и тестове, които новодошлият трябва да премине за успешна адаптация.

Техническите изисквания бяха формирани въз основа на бизнес изискванията.

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

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

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

Ботът ще ни помогне

При работата по проекта се сблъскахме с редица проблеми и трудности.

Например имаше технически проблеми с акаунт в Azure. Microsoft не искаше да активира нашия абонамент поради някои технически затруднения в тяхната услуга. Почти два месеца не можахме да направим нищо по въпроса; поддръжката на Microsoft в крайна сметка вдигна ръце и ни изпрати при партньори, които успешно настроиха всичко и ни дадоха акаунт.

Най-трудният етап беше стартът на проекта, когато трябва да изберете какво ще използваме, каква ще бъде архитектурата, как и къде да съхраняваме данните и как компонентите и модулите на системата ще взаимодействат помежду си.

В нашия случай по същество обикновените проблеми при стартирането на всеки проект бяха допълнително усложнени от персонала. Спецификата на нашия бизнес е такава, че за разлика от комерсиалните, по вътрешните проекти често работят разработчици, които нямат достатъчно познания в необходимите области - те просто по волята на съдбата са се озовали на пейката в очакване на следващия голям страхотен търговски проект. Логично е, че нещата бяха много трудни и с мотивацията в такава ситуация. Производителността пада ниско, екипът често бездейства и в резултат на това трябва да убеждавате (мотивирате) или променяте човека. Когато сменяте разработчиците, трябва да проведете обучение, да прехвърлите знания и по същество да започнете проекта отново. Всеки нов разработчик виждаше архитектурата по свой собствен начин и се караше на предишните за решенията, които взеха, и кода на други хора. Пренаписването започна от нулата.

Това продължи около шест месеца. Просто отбелязвахме време, преработвахме кода и не пишехме нищо ново.

Освен това по вътрешните проекти като правило почти няма документация и беше трудно да се разбере какво трябва да се направи във всеки един момент и какви са текущите приоритети. Беше необходимо да се създаде постоянен екип, да се установят процеси и да се проведе планиране и оценка за поне три месеца. Но как да направите това, когато проектът не е комерсиален, което означава, че трябва да инвестирате минимум човекочасове и в същото време да получите резултата не по-лош, отколкото за външен клиент?

Идентифицирахме набор от ресурси, които са участвали в разработването на проекта, запознати са с него и искат да работят по него. Изготвихме график за наемане на хора по проекти. Ние оценихме и координирахме работата и вместихме тези работи в „дупките“ между основните проекти. След 4 месеца получихме работещ прототип на приложението.

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

Едно от основните изисквания на HR беше да разпознава текста, написан от потребителя, за да отговори правилно на въпроса. Можете да му пишете - искам да отида на почивка, искам да отида на почивка или бих искал да отида на почивка и той ще разбере и ще отговори по съответния начин. Или внезапно столът на служител се счупи и той иска да напише „столът е счупен“ или „Столът ми е спукан“ или „Облегалката на стола падна“; с подходящо обучение ботът ще разпознае такива заявки. Качеството на самото разпознаване на текст зависи от обучението на бота, за което ще говорим по-късно.

Следващото изискване и част от функционалността е диалоговата система на бота. Разработена е система, в която ботът може да води диалог и да разбира контекста на текущия проблем. В отговор на вашия въпрос той може да зададе всякакви уточняващи въпроси и да продължи разговора, ако сме обучили бота да прави това. Skype поддържа прости опции на менюто, за да подкани потребителите относно опциите за продължаване на разговорите. Освен това, ако водихме диалог, но изведнъж решихме да зададем въпрос извън темата, ботът също ще разбере това.

Ботът дава възможност да се изпращат различни артефакти на потребителя въз основа на неговите лични данни. Например на неговото местоположение. Да предположим, че ако човек иска да намери тоалетна, тогава ще му бъде показана карта на офиса, която ще го отведе до тоалетната. А картата ще бъде избрана в зависимост от това в кой офис на компанията се намира служителят.

Една от най-важните задачи е защитата на личната информация на потребителите. Не можем да позволим на всеки човек да има достъп до чувствителните данни, с които работи нашият бот. Необходимостта от оторизация за такъв бот е неразделна част от него. Ботът моли потребителя да се удостовери, преди да може да води диалог с него. Това се случва първия път, когато служител се свърже с бота. Самата авторизация пренасочва потребителя към съответната страница, където потребителят получава токен, който след това вмъква в Skype съобщение. Ако упълномощаването е успешно, можете да започнете да общувате с бота.

Ботът ще ни помогне

Оторизацията става през Skype - услуга за портална авторизация, корпоративна мрежа и LDAP. По този начин оторизацията зависи от текущите потребителски данни в корпоративната мрежа.

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

Възможността за обучение на бот директно в портала не беше включена от самото начало. По време на процеса на разработка разбрахме, че обучението на бота е най-честата задача, която служителите на HR отдел ще изпълняват, когато работят с него, и изпращането на текстови файлове на разработчиците за допълнително обучение на бота е напълно неприемливо. Това отнема твърде много време и създава твърде много грешки и проблеми.

Ботът ще ни помогне

Написахме потребителски интерфейс на портала за удобно обучение на бота. Това позволява на HR да види текущото обучение на бота, да го обучи допълнително и да направи корекции в текущото обучение. Обучението е представено от дървовидна структура, в която възлите, тоест клоните, са продължение на диалога с бота. Можете да създавате прости въпроси и отговори или можете да създавате тежки диалози, всичко зависи от HR и техните нужди.

Няколко думи за архитектурата на решението.

Ботът ще ни помогне

Архитектурата на решението е модулна. Той включва служби, отговарящи за различни задачи, а именно:
• Skype бот услуга на Azure - приема и обработва потребителски заявки. Това е доста проста услуга, която първа получава заявка и извършва нейната първоначална обработка.
• Администраторски портал - услуга, която предоставя уеб интерфейс за настройка на портала и за самия бот. Ботът винаги се свързва първо с портала и порталът решава какво да прави по-нататък със заявката.
• Услуга за авторизация - предоставя механизми за удостоверяване за бота и за административния портал. Упълномощаването става чрез протокола Oauth2. При положителна авторизация услугата извършва авторизация в корпоративната мрежа според валидни потребителски данни, така че системата да може да контролира грешки, свързани с несинхронизирани данни.
• AI модул за разпознаване на текст, написан на Python и използващ рамката ParlAI за самото разпознаване на текст. Това е невронна мрежа, поне в сегашната си реализация. Използваме алгоритъма tfDiff, за да разберем въпросите. Модулът предоставя API за комуникация с него и обучение.

В заключение искам да кажа, че това е първият ни опит в създаването на чат бот и се опитахме да направим системата възможно най-проста, но в същото време функционална, с минимални разходи за труд върху нея. Мисля, че имаме много интересен продукт. Със собствена система за обучение, регистриране на грешки, изпращане на известия, той може да бъде интегриран с всеки друг месинджър.

Източник: www.habr.com

Добавяне на нов коментар