Բոտը կօգնի մեզ

Բոտը կօգնի մեզ

Մեկ տարի առաջ մեր սիրելի HR բաժինը խնդրեց մեզ գրել չաթ բոտ, որը կօգնի նորեկներին հարմարվել ընկերությունում:

Եկեք վերապահում անենք, որ մենք չենք զարգացնում մեր սեփական արտադրանքը, բայց մենք հաճախորդներին տրամադրում ենք զարգացման ծառայությունների ամբողջական շրջանակ: Պատմությունը կլինի մեր ներքին նախագծի մասին, որի հաճախորդը ոչ թե երրորդ կողմի ընկերություն է, այլ մեր սեփական HR: Իսկ հիմնական խնդիրը, հաշվի առնելով մարդկանց, ռեսուրսների և ժամանակի սահմանափակ հասանելիությունը, նախագիծը ժամանակին ավարտելն ու արտադրանքի թողարկումն է:

Նախ, եկեք նկարագրենք այն խնդիրները, որոնք պետք է լուծվեին:

Մշակողները հիմնականում ինտրովերտ մարդիկ են և չեն սիրում խոսել, շատ ավելի հեշտ է գրել ձեր հարցը էլ. Բոտի հետ պետք չէ մտածել, թե ում հարցնել, ում զանգահարել, ուր գնալ և ընդհանրապես, որտեղ փնտրել տեղեկատվություն և արդյոք դրանք տեղին են:

Երկրորդ խնդիրը տեղեկատվությունն է՝ այն շատ է, այն գտնվում է տարբեր աղբյուրներում, միշտ չէ, որ հասանելի է և անընդհատ ավելացման ու թարմացման կարիք ունի։

Ընկերությունն ունի գրեթե 500 աշխատակից, նրանք գտնվում են տարբեր գրասենյակներում, ժամային գոտիներում, Ռուսաստանի քաղաքներում և նույնիսկ արտերկրում, սովորաբար շատ հարցեր են առաջանում, ուստի ևս մեկ խնդիր է նվազեցնել HR անձնակազմի բեռը, որը կապված է առավել հաճախ տրվող հարցերի հետ: աշխատակիցների կողմից։

Անհրաժեշտ էր նաև ավտոմատացնել նորեկների՝ ընկերությանը միանալու գործընթացները, նորեկների ղեկավարներին և դաստիարակներին հաղորդագրություններ ուղարկելը, դասընթացների և թեստերի մասին ավտոմատ հիշեցումներ ուղարկելը, որոնք նորեկը պետք է անցնի հաջող հարմարվելու համար:

Տեխնիկական պահանջները ձևավորվել են բիզնեսի պահանջներից ելնելով։

Բոտը պետք է աշխատի 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՝ դրա հետ շփվելու և սովորելու համար:

Եզրափակելով՝ ուզում եմ ասել, որ սա չաթ բոտ ստեղծելու մեր առաջին փորձն է, և մենք փորձել ենք համակարգը դարձնել հնարավորինս պարզ, բայց միևնույն ժամանակ գործունակ՝ դրա վրա նվազագույն աշխատուժի ծախսերով: Կարծում եմ՝ մենք ունենք շատ հետաքրքիր արտադրանք։ Իր սեփական ուսուցման համակարգով, սխալների գրանցման, ծանուցումների ուղարկման, այն կարող է նաև ինտեգրվել ցանկացած այլ մեսենջերի հետ:

Source: www.habr.com

Добавить комментарий