Pirms gada mÅ«su mīļotÄ personÄla nodaļa lÅ«dza mums uzrakstÄ«t tÄrzÄÅ”anas robotu, kas palÄ«dzÄtu jaunpienÄcÄjiem adaptÄties uzÅÄmumÄ.
IzdarÄ«sim atrunu, ka paÅ”i neizstrÄdÄjam savus produktus, bet sniedzam klientiem pilnu izstrÄdes pakalpojumu klÄstu. StÄsts bÅ«s par mÅ«su iekÅ”Äjo projektu, kura pasÅ«tÄ«tÄjs nav treÅ”Äs puses uzÅÄmums, bet gan mÅ«su paÅ”u HR. Un galvenais uzdevums, Åemot vÄrÄ cilvÄku, resursu un laika ierobežoto pieejamÄ«bu, ir pabeigt projektu laikÄ un izlaist produktu.
Vispirms aprakstÄ«sim problÄmas, kas bija jÄatrisina.
IzstrÄdÄtÄji pÄrsvarÄ ir intraverti cilvÄki un viÅiem nepatÄ«k runÄt; jautÄjumu ir daudz vieglÄk uzrakstÄ«t e-pasta tÄrzÄÅ”anÄ. Izmantojot botu, jums nav jÄdomÄ, kam jautÄt, kam zvanÄ«t, kur doties un vispÄr, kur meklÄt informÄciju un vai tÄ ir aktuÄla.
Otra problÄma ir informÄcija ā tÄs ir ļoti daudz, tÄ ir dažÄdos avotos, tÄ ne vienmÄr ir pieejama un nepiecieÅ”ama nepÄrtraukta papildinÄÅ”ana un atjauninÄÅ”ana.
UzÅÄmumÄ strÄdÄ gandrÄ«z 500 darbinieku, tie atrodas dažÄdos birojos, laika zonÄs, Krievijas pilsÄtÄs un pat ÄrzemÄs, parasti ir daudz jautÄjumu, tÄpÄc vÄl viens uzdevums ir samazinÄt personÄla personÄla slodzi, kas saistÄ«ta ar biežÄk uzdotajiem jautÄjumiem. darbinieki.
TÄpat bija nepiecieÅ”ams automatizÄt procesus: jaunpienÄcÄju pievienoÅ”anÄs uzÅÄmumam, ziÅojumu nosÅ«tÄ«Å”ana jaunpienÄcÄju vadÄ«tÄjiem un mentoriem, automÄtisku atgÄdinÄjumu nosÅ«tÄ«Å”ana par kursiem un pÄrbaudÄ«jumiem, kas jaunpienÄcÄjam ir jÄnokÄrto veiksmÄ«gai adaptÄcijai.
TehniskÄs prasÄ«bas tika veidotas, pamatojoties uz biznesa prasÄ«bÄm.
Botam jÄdarbojas uz Skype bÄzes (vÄsturiski viÅi to izmanto uzÅÄmumÄ), tÄpÄc tika izvÄlÄts pakalpojums Azura.
Lai ierobežotu piekļuvi tai, mÄs sÄkÄm izmantot autorizÄcijas mehÄnismu, izmantojot Skype.
Teksta atpazÄ«Å”anai tika izmantota ParlAI bibliotÄka
AdministratÄ«vais tÄ«mekļa portÄls ir nepiecieÅ”ams arÄ« konfigurÄÅ”anai, apmÄcÄ«bai, atkļūdoÅ”anai, pasta sÅ«tÄ«jumu iestatÄ«Å”anai un citiem uzdevumiem.
StrÄdÄjot pie projekta, mÄs saskÄrÄmies ar vairÄkÄm problÄmÄm un grÅ«tÄ«bÄm.
PiemÄram, bija tehniskas problÄmas ar Azure kontu. Microsoft nevÄlÄjÄs aktivizÄt mÅ«su abonementu dažu tehnisku grÅ«tÄ«bu dÄļ savÄ pakalpojumÄ. GandrÄ«z divus mÄneÅ”us mÄs neko nevarÄjÄm izdarÄ«t; Microsoft atbalsts galu galÄ atmeta rokas un nosÅ«tÄ«ja mÅ«s pie partneriem, kuri veiksmÄ«gi visu iestatÄ«ja un iedeva mums kontu.
SarežģītÄkais posms bija projekta sÄkums, kad jÄizvÄlas, ko izmantosim, kÄda bÅ«s arhitektÅ«ra, kÄ un kur uzglabÄt datus un kÄ sistÄmas komponenti un moduļi mijiedarbosies savÄ starpÄ.
MÅ«su gadÄ«jumÄ bÅ«tÄ«bÄ parastÄs jebkura projekta uzsÄkÅ”anas problÄmas vÄl vairÄk sarežģīja personÄla komplektÄÅ”ana. MÅ«su biznesa specifika ir tÄda, ka, atŔķirÄ«bÄ no komerciÄlajiem, pie iekÅ”Äjiem projektiem nereti strÄdÄ izstrÄdÄtÄji, kuriem nav pietiekamu zinÄÅ”anu vajadzÄ«gajÄs jomÄs - viÅi vienkÄrÅ”i likteÅa gribas dÄļ nokļuva uz soliÅa, gaidot nÄkamo. liels forÅ”s komercprojekts. LoÄ£iski, ka arÄ« ar motivÄciju Å”ÄdÄ situÄcijÄ gÄja ļoti grÅ«ti. ProduktivitÄte krÄ«tas zemu, komanda bieži vien ir dÄ«kÄ, un rezultÄtÄ nÄkas pierunÄt (motivÄt) vai mainÄ«t cilvÄku. Mainot izstrÄdÄtÄjus, ir jÄveic apmÄcÄ«ba, jÄnodod zinÄÅ”anas un pÄc bÅ«tÄ«bas jÄsÄk projekts no jauna. Katrs jaunais izstrÄdÄtÄjs arhitektÅ«ru redzÄja savÄ veidÄ un lamÄja iepriekÅ”Äjos par pieÅemtajiem lÄmumiem un citu cilvÄku kodu. PÄrrakstÄ«Å”ana sÄkÄs no nulles.
Tas turpinÄjÄs apmÄram seÅ”us mÄneÅ”us. MÄs tikai atzÄ«mÄjÄm laiku, pÄrveidojÄm kodu un nerakstÄ«jÄm neko jaunu.
ArÄ« iekÅ”Äjos projektos, kÄ likums, gandrÄ«z nav dokumentÄcijas, un bija grÅ«ti saprast, kas katrÄ brÄ«dÄ« ir jÄdara un kÄdas ir paÅ”reizÄjÄs prioritÄtes. Bija nepiecieÅ”ams izveidot pastÄvÄ«gu komandu, izveidot procesus, veikt plÄnoÅ”anu un izvÄrtÄÅ”anu vismaz trÄ«s mÄneÅ”us. Bet kÄ to izdarÄ«t, ja projekts nav komerciÄls, kas nozÄ«mÄ, ka jÄiegulda minimÄlas cilvÄkstundas un tajÄ paÅ”Ä laikÄ jÄsaÅem rezultÄts ne sliktÄks kÄ ÄrÄjam klientam?
Esam apzinÄjuÅ”i resursu kopumu, kas piedalÄ«jÄs projekta izstrÄdÄ, pÄrzina to un vÄlas pie tÄ strÄdÄt. MÄs sastÄdÄ«jÄm grafiku cilvÄku nodarbinÄÅ”anai projektos. MÄs novÄrtÄjÄm un koordinÄjÄm darbus, un iekļÄvÄm Å”os darbus "bedrÄs" starp galvenajiem projektiem. PÄc 4 mÄneÅ”iem saÅÄmÄm strÄdÄjoÅ”u aplikÄcijas prototipu.
Tagad parunÄsim sÄ«kÄk par bota funkcionalitÄti, arhitektÅ«ru un tehniskajiem risinÄjumiem.
Viena no galvenajÄm HR prasÄ«bÄm bija atpazÄ«t lietotÄja rakstÄ«to tekstu, lai pareizi atbildÄtu uz jautÄjumu. JÅ«s varat viÅam rakstÄ«t - es gribu doties atvaļinÄjumÄ, es gribu doties atvaļinÄjumÄ vai gribÄtu doties atvaļinÄjumÄ, un viÅÅ” sapratÄ«s un attiecÄ«gi atbildÄs. Vai arÄ« pÄkÅ”Åi kÄdam darbiniekam salÅ«zt krÄsls un viÅÅ” vÄlas uzrakstÄ«t ākrÄsls ir salauztsā vai āMans krÄsls ir saplaisÄjisā vai āKrÄsla atzveltne ir nokritusiā; ar atbilstoÅ”u apmÄcÄ«bu robots atpazÄ«s Å”Ädus pieprasÄ«jumus. Pati teksta atpazÄ«Å”anas kvalitÄte ir atkarÄ«ga no bota apmÄcÄ«bas, par ko mÄs runÄsim vÄlÄk.
NÄkamÄ prasÄ«ba un funkcionalitÄtes daļa ir robotprogrammatÅ«ras dialoga sistÄma. Tika izstrÄdÄta sistÄma, kurÄ robots var vadÄ«t dialogu un izprast paÅ”reizÄjÄs problÄmas kontekstu. Atbildot uz jÅ«su jautÄjumu, viÅÅ” var uzdot precizÄjoÅ”us jautÄjumus un turpinÄt sarunu, ja esam apmÄcÄ«juÅ”i robotu to darÄ«t. Skype atbalsta vienkÄrÅ”as izvÄlnes opcijas, lai informÄtu lietotÄjus par sarunu turpinÄÅ”anas iespÄjÄm. TurklÄt, ja mums bija dialogs, bet pÄkÅ”Åi nolÄmÄm uzdot jautÄjumu Ärpus tÄmas, arÄ« robots to sapratÄ«s.
Bots ļauj nosÅ«tÄ«t lietotÄjam dažÄdus artefaktus, pamatojoties uz viÅa personas datiem. PiemÄram, viÅa atraÅ”anÄs vietÄ. PieÅemsim, ja cilvÄks vÄlÄtos atrast tualeti, tad viÅam tiktu parÄdÄ«ta biroja karte, kas viÅu ved uz tualeti. Un karte tiks izvÄlÄta atkarÄ«bÄ no tÄ, kurÄ uzÅÄmuma birojÄ darbinieks atrodas.
Viens no svarÄ«gÄkajiem uzdevumiem ir aizsargÄt lietotÄju personisko informÄciju. MÄs nevaram ļaut katrai personai piekļūt sensitÄ«viem datiem, kurus izmanto mÅ«su robots. NepiecieÅ”amÄ«ba pÄc autorizÄcijas Å”Ädai robotprogrammai ir tÄs neatÅemama sastÄvdaļa. Bots lÅ«dz lietotÄjam autentificÄties, pirms viÅÅ” var sÄkt ar viÅu dialogu. Tas notiek pirmo reizi, kad darbinieks sazinÄs ar robotprogrammatÅ«ru. Pati autorizÄcija novirza lietotÄju uz atbilstoÅ”o lapu, kur lietotÄjs saÅem marÄ·ieri, kuru pÄc tam ievieto Skype ziÅojumÄ. Ja autorizÄcija ir veiksmÄ«ga, varat sÄkt sazinÄties ar robotu.
AutorizÄcija notiek caur Skype ā portÄla autorizÄcijas servisu, korporatÄ«vo tÄ«klu un LDAP. TÄdÄjÄdi autorizÄcija ir atkarÄ«ga no paÅ”reizÄjiem lietotÄja datiem korporatÄ«vajÄ tÄ«klÄ.
Bota izstrÄdes procesÄ mÄs sapratÄm, ka mums ir vajadzÄ«ga kÄda veida sistÄma, kas iebÅ«vÄta portÄla funkcionalitÄtÄ, kas varÄtu palÄ«dzÄt HR Ätri atkļūdot robotu. MÄs esam pievienojuÅ”i portÄla lapu, kurÄ HR var redzÄt kļūdas, ko lietotÄji reÄ£istrÄjuÅ”i, strÄdÄjot ar robotprogrammatÅ«ru, un atrisinÄt tÄs, izmantojot pÄrkvalifikÄciju, vai atstÄt tÄs izstrÄdÄtÄjiem.
IespÄja apmÄcÄ«t botu tieÅ”i portÄlÄ nebija iekļauta jau no paÅ”a sÄkuma. IzstrÄdes procesÄ sapratÄm, ka bota apmÄcÄ«ba ir visizplatÄ«tÄkais uzdevums, ko personÄla nodaļas darbinieki veiks, strÄdÄjot ar to, un teksta failu sÅ«tÄ«Å”ana izstrÄdÄtÄjiem bota papildu apmÄcÄ«bai ir pilnÄ«gi nepieÅemama. Tas patÄrÄ pÄrÄk daudz laika un rada pÄrÄk daudz kļūdu un problÄmu.
MÄs portÄlÄ uzrakstÄ«jÄm lietotÄja interfeisu robotprogrammatÅ«ras lietotÄjam draudzÄ«gai apmÄcÄ«bai. Tas ļauj HR redzÄt bota paÅ”reizÄjo apmÄcÄ«bu, turpinÄt to apmÄcÄ«t un pielÄgot paÅ”reizÄjo apmÄcÄ«bu. ApmÄcÄ«bu attÄlo koka struktÅ«ra, kurÄ mezgli, tas ir, zari, ir dialoga ar robotprogrammatÅ«ras turpinÄjums. JÅ«s varat izveidot vienkÄrÅ”us jautÄjumus un atbildes, vai arÄ« jÅ«s varat izveidot svarÄ«gus dialogus, tas viss ir atkarÄ«gs no HR un viÅu vajadzÄ«bÄm.
Daži vÄrdi par risinÄjuma arhitektÅ«ru.
RisinÄjuma arhitektÅ«ra ir modulÄra. Tas ietver pakalpojumus, kas atbild par dažÄdiem uzdevumiem, proti:
ā¢ Skype robotprogrammatÅ«ras pakalpojums Azure ā pieÅem un apstrÄdÄ lietotÄju pieprasÄ«jumus. Å is ir diezgan vienkÄrÅ”s pakalpojums, kas pirmais saÅem pieprasÄ«jumu un veic tÄ sÄkotnÄjo apstrÄdi.
ā¢ AdministrÄÅ”anas portÄls ā pakalpojums, kas nodroÅ”ina tÄ«mekļa saskarni portÄla iestatÄ«Å”anai un paÅ”am robotam. Bots vienmÄr vispirms sazinÄs ar portÄlu, un portÄls izlemj, kÄ rÄ«koties tÄlÄk ar pieprasÄ«jumu.
ā¢ AutorizÄcijas pakalpojums ā nodroÅ”ina autentifikÄcijas mehÄnismus robotam un administratora portÄlam. AutorizÄcija notiek, izmantojot Oauth2 protokolu. Ar pozitÄ«vu autorizÄciju pakalpojums veic autorizÄciju korporatÄ«vajÄ tÄ«klÄ atbilstoÅ”i derÄ«giem lietotÄja datiem, lai sistÄma varÄtu kontrolÄt kļūdas, kas saistÄ«tas ar nesinhronizÄtiem datiem.
ā¢ AI teksta atpazÄ«Å”anas modulis, kas rakstÄ«ts Python un izmanto ParlAI ietvaru paÅ”ai teksta atpazÄ«Å”anai. Å is ir neironu tÄ«kls, vismaz tÄ paÅ”reizÄjÄ Ä«stenoÅ”anÄ. MÄs izmantojam tfDiff algoritmu, lai saprastu jautÄjumus. Modulis nodroÅ”ina API saziÅai ar to un mÄcÄ«bÄm.
NobeigumÄ vÄlos teikt, ka Ŕī ir mÅ«su pirmÄ pieredze tÄrzÄÅ”anas robota izveidÄ, un mÄs centÄmies izveidot sistÄmu pÄc iespÄjas vienkÄrÅ”Äku, bet tajÄ paÅ”Ä laikÄ funkcionÄlu, ar minimÄlÄm darbaspÄka izmaksÄm. Es domÄju, ka mums ir ļoti interesants produkts. Ar savu apmÄcÄ«bu sistÄmu, kļūdu reÄ£istrÄÅ”anu, paziÅojumu sÅ«tÄ«Å”anu, to var integrÄt arÄ« ar jebkuru citu kurjeru.
Avots: www.habr.com