Bot do të na ndihmojë

Bot do të na ndihmojë

Një vit më parë, departamenti ynë i dashur i burimeve njerëzore na kërkoi të shkruanim një chat bot që do të ndihmonte me përshtatjen e të ardhurve në kompani.

Le të bëjmë një rezervë që ne nuk zhvillojmë produktet tona, por u ofrojmë klientëve një gamë të plotë shërbimesh zhvillimi. Historia do të jetë për projektin tonë të brendshëm, për të cilin klienti nuk është një kompani e palës së tretë, por HR-ja jonë. Dhe detyra kryesore, duke pasur parasysh disponueshmërinë e kufizuar të njerëzve, burimeve dhe kohës, është të përfundoni projektin në kohë dhe të lëshoni produktin.

Së pari, le të përshkruajmë problemet që duheshin zgjidhur.

Zhvilluesit janë kryesisht njerëz introvertë dhe nuk u pëlqen të flasin; është shumë më e lehtë të shkruani pyetjen tuaj në një bisedë me email. Me një bot, nuk duhet të mendoni se kë të pyesni, kë të telefononi, ku të shkoni dhe në përgjithësi, ku të kërkoni informacione dhe nëse janë të rëndësishme.

Problemi i dytë është informacioni - ka shumë, është në burime të ndryshme, nuk është gjithmonë i disponueshëm dhe ka nevojë për shtim dhe përditësim të vazhdueshëm.

Kompania ka pothuajse 500 punonjës, ata janë të vendosur në zyra të ndryshme, zona kohore, qytete të Rusisë dhe madje edhe jashtë vendit, zakonisht ka shumë pyetje, kështu që një detyrë tjetër është zvogëlimi i barrës për personelin e burimeve njerëzore që lidhet me pyetjet më të shpeshta të bëra. nga punonjësit.

Ishte gjithashtu e nevojshme të automatizoheshin proceset e: hyrjes së të sapoardhurve në kompani, dërgimi i mesazheve menaxherëve dhe mentorëve të të ardhurve, dërgimi i kujtimeve automatike për kurset dhe testet që duhet të kalojë një i sapoardhur për përshtatje të suksesshme.

Kërkesat teknike u formuan në bazë të kërkesave të biznesit.

Bot duhet të funksionojë në bazë të Skype (historikisht, ata e përdorin atë në kompani), kështu që u zgjodh shërbimi në Azura.

Për të kufizuar aksesin në të, filluam të përdorim mekanizmin e autorizimit përmes Skype.
Biblioteka ParlAI u përdor për njohjen e tekstit

Kërkohet gjithashtu një portal në internet administrativ për konfigurimin, trajnimin, korrigjimin, vendosjen e postimeve dhe detyra të tjera.

Bot do të na ndihmojë

Gjatë punës për projektin, kemi hasur në një sërë problemesh dhe vështirësish.

Për shembull, kishte probleme teknike me një llogari Azure. Microsoft nuk donte të aktivizonte abonimin tonë për shkak të disa vështirësive teknike brenda shërbimit të tyre. Për gati dy muaj nuk mund të bënim asgjë për këtë; mbështetja e Microsoft-it përfundimisht ngriti duart dhe na dërgoi te partnerët, të cilët konfiguruan me sukses gjithçka dhe na dhanë një llogari.

Faza më e vështirë ishte fillimi i projektit, kur ju duhet të zgjidhni se çfarë do të përdorim, cila do të jetë arkitektura, si dhe ku të ruhen të dhënat dhe si do të ndërveprojnë komponentët dhe modulet e sistemit me njëri-tjetrin.

Në rastin tonë, problemet në thelb të zakonshme të fillimit të ndonjë projekti u ndërlikuan më tej nga stafi. Specifikat e biznesit tonë janë të tilla që, ndryshe nga ato komerciale, projektet e brendshme shpesh punohen nga zhvillues që nuk kanë njohuri të mjaftueshme në fushat e kërkuara - ata thjesht, me vullnetin e fatit, përfunduan në stol duke pritur për tjetrin. projekt i madh komercial i lezetshëm. Është logjike që gjërat ishin shumë të vështira edhe me motivim në një situatë të tillë. Produktiviteti bie i ulët, ekipi është shpesh i papunë, dhe si rezultat ju duhet të bindni (motivoni) ose ndryshoni personin. Kur ndryshoni zhvilluesit, duhet të kryeni trajnime, të transferoni njohuri dhe në thelb të filloni përsëri projektin. Çdo zhvillues i ri e pa arkitekturën në mënyrën e tij dhe qortoi të mëparshmet për vendimet që morën dhe kodin e njerëzve të tjerë. Rishkrimi filloi nga e para.

Kjo vazhdoi për rreth gjashtë muaj. Ne thjesht po shënonim kohën, po rifaktoronim kodin dhe nuk po shkruanim asgjë të re.

Gjithashtu, për projektet e brendshme, si rregull, nuk ka pothuajse asnjë dokumentacion dhe ishte e vështirë të kuptohej se çfarë duhet bërë në çdo moment kohor dhe cilat janë prioritetet aktuale. Ishte e nevojshme krijimi i një ekipi të përhershëm, krijimi i proceseve dhe kryerja e planifikimit dhe vlerësimit për të paktën tre muaj. Por si ta bëni këtë kur projekti nuk është komercial, që do të thotë se ju duhet të investoni një minimum prej orëve të punës, dhe në të njëjtën kohë të merrni rezultatin jo më keq sesa për një klient të jashtëm?

Ne kemi identifikuar një grup burimesh që kanë marrë pjesë në zhvillimin e projektit, janë të njohur me të dhe duan të punojnë në të. Ne hartuam një plan për punësimin e njerëzve në projekte. Ne vlerësuam dhe koordinuam punën dhe i vendosëm këto punime në "vrimat" midis projekteve kryesore. Pas 4 muajsh morëm një prototip pune të aplikacionit.

Tani le të flasim më në detaje për funksionalitetin, arkitekturën dhe zgjidhjet teknike të robotit.

Një nga kërkesat kryesore të HR ishte njohja e tekstit të shkruar nga përdoruesi për t'iu përgjigjur saktë pyetjes. Ju mund t'i shkruani atij - Unë dua të shkoj me pushime, dua të shkoj me pushime ose do të doja të shkoja me pushime, dhe ai do ta kuptojë dhe do të përgjigjet në përputhje me rrethanat. Ose papritmas i thyhet karrigia e një punonjësi dhe ai dëshiron të shkruajë "karrigia është thyer" ose "karrigia ime është plasaritur" ose "Prapa e karriges ka rënë"; me trajnimin e duhur, roboti do të njohë kërkesa të tilla. Vetë cilësia e njohjes së tekstit varet nga trajnimi i robotit, për të cilin do të flasim më vonë.

Kërkesa tjetër dhe pjesë e funksionalitetit është sistemi i dialogut të botit. U zhvillua një sistem në të cilin roboti mund të zhvillojë një dialog dhe të kuptojë kontekstin e çështjes aktuale. Në përgjigje të pyetjes suaj, ai mund të bëjë çdo pyetje sqaruese dhe të vazhdojë bisedën nëse ne e kemi trajnuar robotin për ta bërë këtë. Skype mbështet opsionet e thjeshta të menysë për t'i nxitur përdoruesit rreth opsioneve për vazhdimin e bisedave. Gjithashtu, nëse do të kishim një dialog, por befas vendosëm të bënim një pyetje jashtë temës, edhe boti do ta kuptojë këtë.

Bot bën të mundur dërgimin e objekteve të ndryshme tek përdoruesi bazuar në të dhënat e tij personale. Për shembull, në vendndodhjen e tij. Supozoni nëse një person dëshiron të gjejë një tualet, atëherë atij do t'i tregohet një hartë zyre që e çon atë në tualet. Dhe karta do të zgjidhet në varësi të zyrës së kompanisë në të cilën ndodhet punonjësi.

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ë akses në të dhënat e ndjeshme që operon roboti ynë. Nevoja për autorizim për një bot të tillë është pjesë përbërëse e tij. Bot i kërkon përdoruesit të vërtetojë përpara se të mund të zhvillojë ndonjë dialog me të. Kjo ndodh herën e parë që një punonjës kontakton robotin. Vetë autorizimi e ridrejton përdoruesin në faqen e duhur, ku përdoruesi merr një token, të cilin më pas e fut në një mesazh Skype. Nëse autorizimi është i suksesshëm, mund të filloni të komunikoni me robotin.

Bot do të na ndihmojë

Autorizimi bëhet përmes Skype - shërbimi i autorizimit të portalit, rrjeti i korporatës dhe LDAP. Kështu, autorizimi varet nga të dhënat aktuale të përdoruesit në rrjetin e korporatës.

Në procesin e zhvillimit të robotit, kuptuam se kishim nevojë për një lloj sistemi të integruar në funksionalitetin e portalit që mund të ndihmonte HR të korrigjojë shpejt robotin. Ne kemi shtuar një faqe portali ku HR mund të shohë gabimet e regjistruara nga përdoruesit kur punojnë me robotin dhe t'i zgjidhë ato duke rikualifikuar ose t'ua lërë zhvilluesve.

Aftësia për të trajnuar një bot direkt në portal nuk ishte përfshirë që në fillim. Gjatë procesit të zhvillimit, ne kuptuam se trajnimi i robotit është detyra më e zakonshme që punonjësit e departamentit të burimeve njerëzore do të kryejnë kur punojnë me të, dhe dërgimi i skedarëve tekst zhvilluesve për trajnim shtesë të botit është plotësisht i papranueshëm. Kjo ha shumë kohë dhe krijon shumë gabime dhe probleme.

Bot do të na ndihmojë

Ne shkruam një UI në portal për trajnimin miqësor të përdoruesit të robotit. Kjo i lejon HR të shohë trajnimin aktual të robotit, ta trajnojë më tej dhe të bëjë rregullime në trajnimin aktual. Trajnimi përfaqësohet nga një strukturë peme në të cilën nyjet, domethënë degët, janë një vazhdim i dialogut me bot. Ju mund të krijoni pyetje dhe përgjigje të thjeshta, ose mund të krijoni dialogë me peshë, gjithçka varet nga burimet njerëzore dhe nevojat e tyre.

Disa fjalë për arkitekturën e zgjidhjes.

Bot do të na ndihmojë

Arkitektura e zgjidhjes është modulare. Ai përfshin shërbime përgjegjëse për detyra të ndryshme, përkatësisht:
• Shërbimi Skype bot në Azure - pranon dhe përpunon kërkesat e përdoruesve. Ky është një shërbim mjaft i thjeshtë që është i pari që merr një kërkesë dhe kryen përpunimin e tij fillestar.
• Portali Admin - një shërbim që ofron një ndërfaqe në internet për konfigurimin e portalit dhe për vetë robotin. Bot gjithmonë kontakton fillimisht me portalin dhe portali vendos se çfarë të bëjë më pas me kërkesën.
• Shërbimi i autorizimit - ofron mekanizma vërtetimi për bot dhe për portalin admin. Autorizimi ndodh nëpërmjet protokollit Oauth2. Me autorizim pozitiv, shërbimi kryen autorizimin në rrjetin e korporatës sipas të dhënave të vlefshme të përdoruesit, në mënyrë që sistemi të kontrollojë gabimet që lidhen me të dhënat jashtë sinkronizimit.
• Moduli i njohjes së tekstit AI, i shkruar në Python dhe duke përdorur kornizën ParlAI për vetë njohjen e tekstit. Ky është një rrjet nervor, të paktën në zbatimin e tij aktual. Ne përdorim algoritmin tfDiff për të kuptuar pyetjet. Moduli ofron një API për të komunikuar me të dhe për të mësuar.

Si përfundim, dua të them se kjo është përvoja jonë e parë në krijimin e një boti chat, dhe ne u përpoqëm ta bëjmë sistemin sa më të thjeshtë, por në të njëjtën kohë funksional, me kosto minimale të punës në të. Mendoj se kemi një produkt shumë interesant. Me sistemin e vet të trajnimit, regjistrimin e gabimeve, dërgimin e njoftimeve, ai gjithashtu mund të integrohet me çdo mesazher tjetër.

Burimi: www.habr.com

Shto një koment