Boten vil hjelpe oss

Boten vil hjelpe oss

For et Är siden ba vÄr kjÊre HR-avdeling oss om Ä skrive en chat-bot som skulle hjelpe med tilpasningen av nykommere til selskapet.

La oss ta forbehold om at vi ikke utvikler vÄre egne produkter, men vi gir kundene et komplett spekter av utviklingstjenester. Historien skal handle om vÄrt interne prosjekt, som kunden ikke er et tredjepartsselskap for, men vÄr egen HR. Og hovedoppgaven, gitt den begrensede tilgjengeligheten av mennesker, ressurser og tid, er Ä fullfÞre prosjektet i tide og frigi produktet.

La oss fÞrst beskrive problemene som mÄtte lÞses.

Utviklere er stort sett introverte mennesker og liker ikke Ä snakke; det er mye lettere Ä skrive spÞrsmÄlet ditt i en e-postchat. Med en bot trenger du ikke tenke pÄ hvem du skal spÞrre, hvem du skal ringe, hvor du skal dra, og generelt hvor du skal lete etter informasjon og om den er relevant.

Det andre problemet er informasjon - det er mye av det, det er i forskjellige kilder, det er ikke alltid tilgjengelig og trenger konstant tillegg og oppdatering.

Selskapet har nesten 500 ansatte, de er lokalisert pÄ forskjellige kontorer, tidssoner, byer i Russland og til og med i utlandet, det er vanligvis mange spÞrsmÄl, sÄ en annen oppgave er Ä redusere belastningen pÄ HR-personell knyttet til de hyppigste spÞrsmÄlene som stilles av ansatte.

Det var ogsÄ nÞdvendig Ä automatisere prosessene med: nykommere som meldte seg inn i selskapet, sende meldinger til ledere og mentorer for nykommere, sende automatiske pÄminnelser om kurs og tester som en nykommer mÄ bestÄ for vellykket tilpasning.

Tekniske krav ble dannet basert pÄ forretningskrav.

Boten mÄ fungere pÄ grunnlag av Skype (historisk sett bruker de den i selskapet), sÄ tjenesten pÄ Azura ble valgt.

For Ă„ begrense tilgangen til den begynte vi Ă„ bruke autorisasjonsmekanismen via Skype.
ParlAI-biblioteket ble brukt til tekstgjenkjenning

En administrativ nettportal er ogsÄ nÞdvendig for konfigurering, opplÊring, feilsÞking, oppsett av utsendelser og andre oppgaver.

Boten vil hjelpe oss

Mens vi jobbet med prosjektet, mĂžtte vi en rekke problemer og vanskeligheter.

For eksempel var det tekniske problemer med en Azure-konto. Microsoft Þnsket ikke Ä aktivere abonnementet vÄrt pÄ grunn av noen tekniske problemer med tjenesten deres. I nesten to mÄneder kunne vi ikke gjÞre noe med det; Microsofts support rakk til slutt opp og sendte oss til partnere, som satte opp alt og ga oss en konto.

Det vanskeligste stadiet var starten pÄ prosjektet, nÄr du mÄ velge hva vi skal bruke, hva arkitekturen skal vÊre, hvordan og hvor data skal lagres, og hvordan komponentene og modulene i systemet skal samhandle med hverandre.

I vÄrt tilfelle ble de i hovedsak ordinÊre problemer med Ä starte ethvert prosjekt ytterligere komplisert av bemanning. Spesifikasjonene til virksomheten vÄr er slik at, i motsetning til kommersielle, blir interne prosjekter ofte jobbet med av utviklere som ikke har tilstrekkelig kunnskap pÄ de nÞdvendige omrÄdene - de rett og slett, etter skjebnens vilje, havnet pÄ benken og ventet pÄ neste stort kult kommersielt prosjekt. Det er logisk at det ogsÄ var veldig vanskelig med motivasjon i en slik situasjon. Produktiviteten synker lavt, teamet er ofte inaktivt, og som et resultat mÄ du overtale (motivere) eller endre personen. NÄr du bytter utviklere, mÄ du gjennomfÞre opplÊring, overfÞre kunnskap og i hovedsak starte prosjektet pÄ nytt. Hver nye utvikler sÄ arkitekturen pÄ sin egen mÄte og skjelte ut de forrige for beslutningene de tok og andres kode. Omskrivingen begynte fra bunnen av.

Dette pÄgikk i omtrent seks mÄneder. Vi markerte bare tid, refaktorerte koden og skrev ikke noe nytt.

OgsÄ pÄ interne prosjekter er det som regel nesten ingen dokumentasjon, og det var vanskelig Ä forstÄ hva som mÄ gjÞres pÄ hvert tidspunkt, og hva de nÄvÊrende prioriteringene er. Det var nÞdvendig Ä opprette et fast team, etablere prosesser og gjennomfÞre planlegging og evaluering i minst tre mÄneder. Men hvordan gjÞre dette nÄr prosjektet ikke er kommersielt, noe som betyr at du mÄ investere minimum arbeidstimer, og samtidig fÄ resultatet ikke dÄrligere enn for en ekstern kunde?

Vi har identifisert en ressurssamling som deltok i utviklingen av prosjektet, er kjent med det og Þnsker Ä jobbe med det. Vi har laget en tidsplan for ansettelse av personer pÄ prosjekter. Vi vurderte og koordinerte arbeidet, og passet disse arbeidene inn i «hullene» mellom hovedprosjektene. Etter 4 mÄneder mottok vi en fungerende prototype av sÞknaden.

La oss nÄ snakke mer detaljert om botens funksjonalitet, arkitektur og tekniske lÞsninger.

Et av hovedkravene til HR var Ä gjenkjenne teksten skrevet av brukeren for Ä svare riktig pÄ spÞrsmÄlet. Du kan skrive til ham - jeg Þnsker Ä reise pÄ ferie, jeg vil pÄ ferie eller Þnsker Ä reise pÄ ferie, og han vil forstÄ og svare deretter. Eller plutselig knekker en ansatts stol og han vil skrive "stolen er Þdelagt" eller "stolen min er sprukket" eller "stolryggen har falt av"; med riktig opplÊring vil boten gjenkjenne slike forespÞrsler. Kvaliteten pÄ tekstgjenkjenningen i seg selv avhenger av treningen til boten, som vi vil snakke om senere.

Det neste kravet og en del av funksjonaliteten er robotens dialogsystem. Det ble utviklet et system der boten kan fÞre en dialog og forstÄ konteksten til det aktuelle problemet. Som svar pÄ spÞrsmÄlet ditt kan han stille eventuelle oppklarende spÞrsmÄl og fortsette samtalen hvis vi har trent opp roboten til Ä gjÞre dette. Skype stÞtter enkle menyalternativer for Ä spÞrre brukere om alternativer for Ä fortsette samtaler. Dessuten, hvis vi hadde en dialog, men plutselig bestemte oss for Ä stille et spÞrsmÄl utenfor emnet, vil roboten ogsÄ forstÄ dette.

Boten gjÞr det mulig Ä sende ulike artefakter til brukeren basert pÄ hans personlige data. For eksempel pÄ stedet hans. Anta at hvis en person Þnsket Ä finne et toalett, ville han bli vist et kontorkart som fÞrer ham til toalettet. Og kortet vil bli valgt avhengig av hvilket firmakontor den ansatte befinner seg pÄ.

En av de viktigste oppgavene er Ä beskytte brukernes personopplysninger. Vi kan ikke la alle fÄ tilgang til de sensitive dataene som boten vÄr driver. Behovet for autorisasjon for en slik bot er en integrert del av den. Boten ber brukeren om Ä autentisere fÞr han kan fÞre noen dialog med ham. Dette skjer fÞrste gang en ansatt kontakter boten. Selve autorisasjonen omdirigerer brukeren til den aktuelle siden, hvor brukeren mottar et token, som han deretter setter inn i en Skype-melding. Hvis autorisasjonen er vellykket, kan du begynne Ä kommunisere med boten.

Boten vil hjelpe oss

Autorisasjon skjer gjennom Skype – portalautorisasjonstjeneste, bedriftsnettverk og LDAP. Autorisasjonen avhenger derfor av gjeldende brukerdata pĂ„ bedriftsnettverket.

I prosessen med Ä utvikle boten innsÄ vi at vi trengte et slags system innebygd i portalfunksjonaliteten som kunne hjelpe HR med Ä raskt feilsÞke boten. Vi har lagt til en portalside der HR kan se feil registrert av brukere nÄr de jobber med boten og lÞse dem ved hjelp av omskolering eller overlate dem til utviklere.

Muligheten til Ä trene en bot direkte pÄ portalen var ikke inkludert helt fra begynnelsen. Under utviklingsprosessen innsÄ vi at opplÊring av boten er den vanligste oppgaven som ansatte i HR-avdelingen vil utfÞre nÄr de jobber med den, og Ä sende tekstfiler til utviklere for ytterligere opplÊring av boten er helt uakseptabelt. Dette spiser opp for mye tid og skaper for mange feil og problemer.

Boten vil hjelpe oss

Vi skrev et brukergrensesnitt pÄ portalen for Brukervennlig opplÊring av boten. Den lar HR se botens nÄvÊrende trening, trene den videre og foreta justeringer til gjeldende trening. Trening er representert av en trestruktur der noder, det vil si grener, er en fortsettelse av dialogen med boten. Du kan lage enkle spÞrsmÄl og svar, eller du kan skape tungtveiende dialoger, alt avhenger av HR og deres behov.

Noen fÄ ord om lÞsningsarkitekturen.

Boten vil hjelpe oss

LĂžsningsarkitekturen er modulĂŠr. Det inkluderer tjenester med ansvar for ulike oppgaver, nemlig:
‱ Skype bot-tjeneste pĂ„ Azure – godtar og behandler brukerforespĂžrsler. Dette er en ganske enkel tjeneste som er den fĂžrste som mottar en forespĂžrsel og utfĂžrer den fĂžrste behandlingen.
‱ Admin portal - en tjeneste som gir et nettgrensesnitt for Ă„ sette opp portalen og for selve boten. Boten kontakter alltid portalen fĂžrst, og portalen bestemmer hva den skal gjĂžre videre med forespĂžrselen.
‱ Autorisasjonstjeneste – gir autentiseringsmekanismer for boten og for adminportalen. Autorisasjon skjer via Oauth2-protokollen. Ved positiv autorisasjon utfþrer tjenesten autorisasjon i bedriftsnettverket i henhold til gyldige brukerdata, slik at systemet kan kontrollere feil knyttet til data ute av synkronisering.
‱ AI-tekstgjenkjenningsmodul, skrevet i Python og bruker ParlAI-rammeverket for selve tekstgjenkjenning. Dette er et nevralt nettverk, i det minste i den nĂ„vĂŠrende implementeringen. Vi bruker tfDiff-algoritmen for Ă„ forstĂ„ spĂžrsmĂ„lene. Modulen gir et API for Ă„ kommunisere med den og lĂŠre.

Avslutningsvis vil jeg si at dette er vÄr fÞrste erfaring med Ä lage en chat-bot, og vi prÞvde Ä gjÞre systemet sÄ enkelt som mulig, men samtidig funksjonelt, med minimale arbeidskostnader pÄ det. Jeg synes vi har et veldig interessant produkt. Med eget treningssystem, feillogging, varslingssending kan den ogsÄ integreres med en hvilken som helst annen messenger.

Kilde: www.habr.com

KjĂžp pĂ„litelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere đŸ”„ KjĂžp pĂ„litelig webhotell med DDoS-beskyttelse, VPS VDS-servere | ProHoster