Botat do na ndihmojnë

Botat do na ndihmojnë

Një vit më parë, departamenti ynë i HR-së i dashur na kërkoi: të shkruajmë një chatbot që do të ndihmojë në adaptimin e të rinjve në kompani.

Të sqarojmë se ne nuk zhvillojmë produkte të veta, por ofrojmë një gamë të plotë shërbimesh në zhvillim për klientët. Historia do të flasë për projektin tonë të brendshëm, për të cilin punëdhënësi nuk është një kompani e jashtme, por HR ynë i vet. Dhe detyra kryesore, në kushte të kufizuara të disponueshmërisë së njerëzve, burimeve dhe kohës, është të realizojmë projektin në kohë dhe të lëshojmë produktin.

Së pari, le të përshkruajmë detyrat që do të duhej të zgjidhen.

Zhvilluesit janĂ« kryesisht introvertĂ« dhe nuk i pĂ«lqejnĂ« bisedat, Ă«shtĂ« shumĂ« mĂ« e lehtĂ« tĂ« shkruash pyetjen tĂ«nde nĂ« njĂ« bisedĂ« elektronike. Me botin nuk duhet tĂ« mendosh se kĂ« tĂ« pyesĂ«sh, kujt t’i telefonosh, ku tĂ« shkosh dhe nĂ« pĂ«rgjithĂ«si, ku tĂ« kĂ«rkosh informacion dhe a Ă«shtĂ« ai aktual.

Problemi i dytĂ« Ă«shtĂ« informacioni — ai Ă«shtĂ« shumĂ«, ndodhet nĂ« burime tĂ« ndryshme, dhe jo gjithmonĂ« Ă«shtĂ« i disponueshĂ«m dhe kĂ«rkon vazhdimĂ«si nĂ« plotĂ«sim dhe pĂ«rditĂ«sim.

Në kompani ka pothuajse 500 punonjës, ata ndodhen në zyra të ndryshme, në zona të ndryshme koherente, qytete të Rusisë dhe madje jashtë saj, pyetje zakonisht ka shumë, kështu që një tjetër detyrë është të zvogëlojmë ngarkesën mbi stafin e HR-së lidhur me pyetjet më të zakonshme që bëjnë punonjësit.

Duhej gjithashtu të automatizoheshin proceset: ardhja e të rinjve në kompani, dërgimi i mesazheve menaxherëve dhe mentorëve të të rinjve, dërgimi i përkujtesave automatike për kursit dhe testet që duhet të kalojë të riut për një adaptim të suksesshëm.

Në bazë të kërkesave të biznesit, u formuluan specifikimet teknike.

Boti duhet të punojë mbi Skype (historikisht ka ndodhur që ata përdorin këtë në kompani), prandaj u zgjodh një shërbim në Azure.

Për kufizimet e qasjes, filluam të përdorim mekanizmin e autorizimit nëpërmjet Skype.
Për njohjen e tekstit, përdorëm bibliotekën ParlAI.

Gjithashtu, ne kemi nevojë për një portal web administrativ për konfigurimin, trajnimin, debugging, konfigurimin e shpërndarjeve dhe detyra të tjera.

Botat do na ndihmojnë

Në procesin e punës mbi projektin, u përballëm me një mori problemesh dhe vështirësish.

Për shembull, pati probleme teknike me llogarinë Azure. Microsoft nuk dëshiroi të aktivizonte abonimin tonë për shkak të ndonjë vështirësie teknike brenda shërbimit të tyre. Pothuajse dy muaj nuk mundëm të bënim asgjë lidhur me këtë, mbështetje e Microsoft-it përfundimisht u dorëzua dhe na dërgoi tek partnerët, të cilët e konfiguruan me sukses gjithçka dhe na dhanë llogarinë.

Faza më e vështirë ishte nisja e projektit, kur duhej të zgjidhnim se çfarë do të përdornim, cila do të ishte arkitektura, si dhe ku do të ruheshin të dhënat dhe si do të bashkëvepronin komponentët dhe modulet e sistemit me njëri-tjetrin.

NĂ« rastin tonĂ«, problemet e zakonshme tĂ« fillimit tĂ« çdo projekti u komplikuan edhe mĂ« shumĂ« nga stafi. Specifika e biznesit tonĂ« Ă«shtĂ« se, ndryshe nga projektet komerciale, mbi projektet e brendshme shpesh punojnĂ« zhvillues qĂ« nuk kanĂ« njohuri tĂ« mjaftueshme nĂ« fushat e nevojshme – thjesht u gjetĂ«n aty pĂ«r fatin qĂ« prisnin projektin tjetĂ«r tĂ« madh komercial. ËshtĂ« logjike qĂ« motivimi nĂ« njĂ« situatĂ« tĂ« tillĂ« ishte gjithashtu mjaft i çrregullt. Produktiviteti bie ndjeshĂ«m, ekipi shpesh ka pushime, dhe pĂ«rfundimisht duhet tĂ« bindĂ«sh (tĂ« motivosh) ose tĂ« ndĂ«rroni personin. Kur ndĂ«rron zhvilluesin, duhet tĂ« kryesh trajnime, tĂ« trasferosh njohuri dhe pĂ«rsĂ«ri nĂ« thelb tĂ« fillosh projektin. Çdo zhvillues i ri e shihte arkitekturĂ«n nĂ« mĂ«nyrĂ«n e tij dhe e kritikonte tĂ« kaluarin pĂ«r vendimet e marrĂ« prej tyre dhe kodin e huaj. Fillonte riprogramimi nga e para.

Kështu vazhdoi për rreth gjashtë muaj. Ne thjesht po qëndronim në vend, po rifillnim kodin dhe nuk po shkruanim asgjë të re.

Po ashtu, në projektet e brendshme zakonisht nuk ka pothuajse asnjë dokumentacion, dhe ishte e vështirë të kuptoje se çfarë duhej të bëje në çdo moment dhe cilat ishin përparësitë aktuale. Duhej të krijonim një ekip të përhershëm, të organizonim proceset, të bënim planifikim dhe vlerësim për të paktën tri muaj. Por si ta bënim këtë kur projektin nuk ishte komerciale, dhe kjo do të thoshte se orët e njeriut duhej të investoheshin minimalisht, dhe që rezultati të ishte jo më keq se për një klient të jashtëm?

Ne kemi identifikuar një grup burimesh që morën pjesë në zhvillimin e projektit, janë të njohur me të dhe duan të punojnë mbi të. Kemi përgatitur një orar të angazhimit të njerëzve në projekte. Kemi kryer një vlerësim dhe miratim të punëve, dhe i kemi futur këto punë në "ndarjet" midis projekteve kryesore. Pas 4 muajsh, ne morëm një prototip funksional të aplikacionit.

Tani le të flasim më në detaje për funksionalitetin e bot-it, arkitekturën dhe zgjidhjet teknike.

NjĂ« nga kĂ«rkesat kryesore tĂ« HR-sĂ« ishte njohja e tekstit tĂ« shkruar nga pĂ«rdoruesi pĂ«r tĂ« dhĂ«nĂ« njĂ« pĂ«rgjigje tĂ« saktĂ« nĂ« pyetje. PĂ«rdoruesit mund tĂ« shkruajnĂ« – dua tĂ« shkoj nĂ« pushim, dua pushim ose do tĂ« shkoja nĂ« pushim, dhe ai do ta kuptonte dhe do t’i pĂ«rgjigjej nĂ« pĂ«rputhje me kĂ«tĂ«. Ose ndonjĂ«herĂ«, nĂ«se njĂ« punonjĂ«s ka probleme me karrigen, ai mund tĂ« shkruajĂ« – "karrigia Ă«shtĂ« thyer" ose "Karrigia ime ka njĂ« çarje" ose "Back i karriges mĂ« ka rĂ«nĂ«", dhe me trajnimin e duhur, boti do tĂ« njohĂ« kĂ«to kĂ«rkesa. Cilesia e njohjes sĂ« tekstit natyrisht varet nga trajnimi i bot-it, pĂ«r tĂ« cilin do tĂ« flasim mĂ« vonĂ«.

Kërkesa tjetër dhe një pjesë e funksionalitetit është sistemi i dialogëve të bot-it. Kemi zhvilluar një sistem, në të cilin boti mund të zhvillojë një dialog dhe të kuptojë kontekstin e pyetjes aktuale. Ai mund t'i bëjë pyetje sqaruese në përgjigje të pyetjeve tuaja dhe të vazhdojë bisedën, nëse e kemi trajnuar bot-in të bëjë këtë. Skype mbështet pika të thjeshta menusë për të sugjeruar përdoruesve mundësi të mundshme për të vazhduar dialogët. Po ashtu, nëse kemi zhvilluar një bisedë, por papritmas vendosim të bëjmë një pyetje jashtë temës, boti do ta kuptojë këtë gjithashtu.

Boti ofron mundësinë për të dërguar artefakte të ndryshme përdoruesit, bazuar në të dhënat e tij personale. Për shembull, mbi lokacionin e tij. Supozoni se nëse dikush dëshiron të gjejë një tualet, ai do të tregojë një hartë të zyrës, e cila e çon atë në tualet. Dhe harta do të zgjidhet në varësi të zyrës ku ndodhet punonjësi i kompanisë.

Një nga detyrat më të rëndësishme është mbrojtja e informacionit personal të përdoruesve. Ne nuk mund të lejojmë çdo person të ketë qasje në të dhënat e ndjeshme me të cilat operon boti ynë. Kërkesa për autorizim për një bot të tillë është një pjesë e pandarë e tij. Boti kërkon nga përdoruesi të kalojë autorizimin para se të mund të bisedojë me të. Kjo ndodh gjatë kontaktit të parë të punonjësit me botin. Vetë autorizimi e drejton përdoruesin në faqen përkatëse, ku përdoruesi merr një token, të cilin më vonë e vendos në mesazhin e Skype. Nëse autorizimi kalon me sukses, atëherë mund të fillohet komunikimi me botin.

Botat do na ndihmojnë

Autorizimi kalon pĂ«rmes Skype — portali i shĂ«rbimit tĂ« autorizimit, rrjetit korporativ dhe LDAP. SidoqoftĂ«, autorizimi varet nga tĂ« dhĂ«nat aktuale tĂ« pĂ«rdoruesit nĂ« rrjetin korporativ.

Gjatë zhvillimit të botit, kuptuam se na nevojitej një sistem, i integruar në funksionalitetin e portalit, që mund të ndihmojë HR-në në debugimin e shpejtë të botit. Ne shtuam një faqe të tillë në portal, ku HR-të mund të shohin gabimet e regjistruara nga përdoruesit gjatë punës me botin dhe t'i zgjidhin ato përmes ri-trajnimit ose t'i lënë për zhvilluesit.

Mundësia për të trajnuar botin drejtpërdrejt në portal nuk ishte parashikuar që nga fillimi. Gjatë zhvillimit ne kuptuam se trajnimi i botit është detyra më e zakonshme që do të kryejnë punonjësit e departamentit të HR gjatë punës me të, dhe dërgimi i skedarëve me tekst te zhvilluesit për stërvitje të mëtejshme të botit është krejtësisht e papranueshme. Kjo merr shumë kohë dhe shkakton shumë gabime dhe probleme.

Botat do na ndihmojnë

Ne shkruam një UI në portal për trajnimin e miqësor të botit. Ai lejon HR-në të shohë trajnimin aktual të botit, ta ri-trajnojë atë dhe të bëjë korrigjime në trajnimin aktual. Trajnimi paraqitet në një strukturë të pemës, në të cilën nodet, pra, degët janë vazhdim i dialogut me botin. Mund të krijoni pyetje dhe përgjigje të thjeshta, apo biseda më komplekse, gjithçka varet nga HR dhe nevojat e tyre.

Pak fjalë mbi arkitekturën e zgjidhjes.

Botat do na ndihmojnë

Arkitektura e zgjidhjes është modulare. Ajo përfshin shërbime që përgjigjen për detyra të ndryshme, që do të thotë:
‱ ShĂ«rbimi Skype bot nĂ« Azure — merr dhe pĂ«rpunon kĂ«rkesat e pĂ«rdoruesve. Ky Ă«shtĂ« njĂ« shĂ«rbim mjaft i thjeshtĂ«, i cili e pranon fillimisht kĂ«rkesĂ«n dhe kryen pĂ«rpunimin e saj fillestar.
‱ Portali admin — shĂ«rbimi qĂ« ofron njĂ« ndĂ«rfaqe web pĂ«r konfigurimin e portalit dhe pĂ«r vetĂ« botin. Boti gjithmonĂ« i qaset fillimisht portalit, dhe portali pastaj vendos se çfarĂ« tĂ« bĂ«jĂ« me kĂ«rkesĂ«n mĂ« pas.
‱ ShĂ«rbimi i autorizimit — ofron mekanizma autentikimi pĂ«r botin dhe pĂ«r portalin admin. Autorizimi ndodh sipas protokollit Oauth2. NĂ« rast tĂ« autorizimit pozitiv, shĂ«rbimi kryen autorizimin nĂ« rrjetin korporativ sipas tĂ« dhĂ«nave tĂ« vlefshme tĂ« pĂ«rdoruesit, nĂ« mĂ«nyrĂ« qĂ« sistemi tĂ« mund tĂ« kontrollojĂ« gabimet e lidhura me mospĂ«rputhjet nĂ« tĂ« dhĂ«na.
‱ Moduli AI pĂ«r njohjen e tekstit, i shkruar nĂ« Python dhe qĂ« pĂ«rdor framework-un ParlAI pĂ«r njohjen e vetĂ« tekstit. Ky Ă«shtĂ« njĂ« rrjet nervor, tĂ« paktĂ«n nĂ« realizimin aktual. Ne pĂ«rdorim algoritmin tfDiff pĂ«r tĂ« kuptuar pyetjet. Moduli ofron njĂ« API pĂ«r komunikim me tĂ« dhe pĂ«r trajnimin.

Në përfundim, dua të them se kjo është përvoja jonë e parë në krijimin e një chat boti, dhe ne u përpoqëm ta bëjmë sistemin sa më të thjeshtë, por njëkohësisht funksional, me minimumin e përpjekjeve për të. Mendoj se kemi arritur të krijojmë një produkt mjaft interesant. Me sistemin tonë të të mësuarit, regjistrimit të gabimeve, dërgimit të njoftimeve, gjithashtu mund të integrohet me çdo aplikacion tjetër mesazhi.

Burimi: habr.com

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster