Ne e përshpejtojmë zhvillimin duke përdorur shërbimet Azure: ne krijojmë chatbot dhe shërbime njohëse duke përdorur platformën

Përshëndetje, Habr! Sot do t'ju tregojmë se si të përdorni Azure për të zgjidhur problemet që zakonisht kërkojnë ndërhyrje njerëzore. Agjentët shpenzojnë shumë kohë duke iu përgjigjur të njëjtave pyetje, duke trajtuar telefonatat dhe mesazhet me tekst. Chatbot-et automatizojnë komunikimin dhe njohjen dhe ulin barrën e njerëzve. Bots përdoren gjithashtu në Azure DevOps, ku lejojnë, për shembull, të miratojnë lëshimet, të menaxhojnë ndërtimet - shikimin, fillimin dhe ndalimin - drejtpërdrejt nga Slack ose Microsoft Teams. Në thelb, një chatbot të kujton disi një CLI, vetëm interaktiv dhe i lejon zhvilluesit të qëndrojë në kontekstin e diskutimit të bisedës.

Në këtë artikull, ne do të flasim për mjetet për krijimin e chatbot-eve, do të tregojmë se si ato mund të përmirësohen me shërbimet njohëse dhe do të përshkruajmë se si të përshpejtoni zhvillimin me shërbimet e gatshme në Azure.

Ne e përshpejtojmë zhvillimin duke përdorur shërbimet Azure: ne krijojmë chatbot dhe shërbime njohëse duke përdorur platformën

Chatbots dhe shërbimet njohëse: cilat janë ngjashmëritë dhe cilat janë ndryshimet?

Për të krijuar robotë në Microsoft Azure, përdorni shërbimin Azure Bot dhe Kornizën Bot. Së bashku ata përfaqësojnë një grup softuerësh për ndërtimin, testimin, vendosjen dhe administrimin e robotëve, i cili ju lejon të krijoni nga module të gatshme si sisteme komunikimi të thjeshta ashtu edhe të avancuara me mbështetje të të folurit, njohje të gjuhës natyrore dhe aftësi të tjera.

Le të supozojmë se ju duhet të zbatoni një bot të thjeshtë të bazuar në një shërbim të korporatës Pyetje dhe Përgjigje ose, anasjelltas, të krijoni një bot funksional me një sistem komunikimi kompleks dhe të degëzuar. Për ta bërë këtë, mund të përdorni një numër mjetesh, të ndara në tre grupe: 

  1. Shërbimet për zhvillimin e shpejtë të ndërfaqeve dialoguese (bots).
  2. Shërbime të gatshme njohëse të AI për raste të ndryshme përdorimi (njohja e modelit, njohja e të folurit, baza e njohurive dhe kërkimi).
  3. Shërbime për krijimin dhe trajnimin e modeleve të AI.

Në mënyrë tipike, njerëzit ngatërrojnë intuitivisht "botet" dhe "shërbimet njohëse" sepse të dy konceptet bazohen në parimin e komunikimit dhe rasti i përdorimit për robotët dhe shërbimet përfshin dialog. Por chatbot-et punojnë me fjalë kyçe dhe nxitës, dhe shërbimet njohëse punojnë me kërkesa arbitrare që zakonisht përpunohen nga njerëzit: 

Ne e përshpejtojmë zhvillimin duke përdorur shërbimet Azure: ne krijojmë chatbot dhe shërbime njohëse duke përdorur platformën

Shërbimet njohëse janë një mënyrë tjetër për të komunikuar me përdoruesin, duke ndihmuar në konvertimin e një kërkese arbitrare në një komandë të qartë dhe kalimin e saj te boti. 

Kështu, chatbot-et janë aplikacione për të punuar me kërkesat dhe shërbimet njohëse janë mjete për analizën inteligjente të kërkesave që lëshohen veçmas, por të cilave chatbot mund t'i qaset, duke u bërë "inteligjent". 

Krijimi i chatbots

Diagrami i rekomanduar i dizajnit për një bot në Azure është si më poshtë: 

Ne e përshpejtojmë zhvillimin duke përdorur shërbimet Azure: ne krijojmë chatbot dhe shërbime njohëse duke përdorur platformën

Për të dizajnuar dhe zhvilluar robotë në Azure, përdorni Kuadri Bot. Në dispozicion në GitHub shembuj të robotëve, aftësitë e kornizës ndryshojnë, kështu që është e nevojshme të merret parasysh versioni i SDK-së që përdoret në bot.

Korniza ofron disa opsione për krijimin e robotëve: përdorimin e kodit klasik, mjeteve të linjës së komandës ose diagrameve të rrjedhës. Opsioni i fundit vizualizon dialogët; për këtë mund të përdorni menaxherin Kompozitori Bot Framework. Ai u ndërtua në Bot Framework SDK si një mjet zhvillimi vizual që ekipet ndërdisiplinore mund ta përdornin për të krijuar robotë.

Ne e përshpejtojmë zhvillimin duke përdorur shërbimet Azure: ne krijojmë chatbot dhe shërbime njohëse duke përdorur platformën

Bot Framework Composer ju lejon të përdorni blloqe për të krijuar një strukturë dialogu me të cilën do të funksionojë roboti. Për më tepër, mund të krijoni nxitës, domethënë fjalë kyçe ndaj të cilave roboti do të reagojë gjatë dialogut. Për shembull, fjalët "operator", "vjedhje" ose "ndal" dhe "mjaft".

Në Bot Framework Composer, mund të krijoni sisteme komplekse dialogu duke përdorur Dialogët përshtatës. Dialogët mund të përdorin si shërbimet njohëse ashtu edhe kartat e ngjarjeve (Kartat Adaptive):

Ne e përshpejtojmë zhvillimin duke përdorur shërbimet Azure: ne krijojmë chatbot dhe shërbime njohëse duke përdorur platformën

Pas krijimit, mund të vendosni chatbot në një abonim dhe një skript i përgatitur automatikisht do të krijojë të gjitha burimet e nevojshme: shërbimet njohëse, plani i aplikacionit, Vështrimet e aplikacionit, baza e të dhënave, etj.

Krijuesi QnA

Për të krijuar bote të thjeshta të bazuara në bazat e të dhënave të korporatës për pyetje dhe përgjigje, mund të përdorni shërbimin njohës QnA Maker. Zbatuar si një magjistar i thjeshtë në internet, ai ju lejon të futni një lidhje në një bazë njohurish të korporatës (FAQ Urls) ose të përdorni një bazë të dhënash dokumentesh në formatin *.doc ose *.pdf si bazë. Pas krijimit të indeksit, roboti automatikisht do të zgjedhë përgjigjet më të përshtatshme për pyetjet e përdoruesit.

Duke përdorur QnAMaker, ju gjithashtu mund të krijoni zinxhirë pyetjesh sqaruese me krijimin automatik të butonave, të plotësoni bazën e njohurive me metadata dhe të trajnoni më tej shërbimin gjatë përdorimit.

Shërbimi mund të përdoret si një chatbot që zbaton vetëm këtë funksion, ose si pjesë e një chatbot kompleks që përdor, në varësi të kërkesës, shërbime të tjera të AI ose elemente të Kornizës Bot.

Puna me shërbime të tjera njohëse

Ka shumë shërbime të ndryshme njohëse në platformën Azure. Teknikisht, këto janë shërbime të pavarura në internet që mund të thirren nga kodi. Si përgjigje, shërbimi dërgon json të një formati të caktuar, i cili mund të përdoret në chatbot.

Ne e përshpejtojmë zhvillimin duke përdorur shërbimet Azure: ne krijojmë chatbot dhe shërbime njohëse duke përdorur platformën
Përdorimet më të zakonshme të chatbots janë:

  1. Njohja e tekstit.
  2. Njohja e kategorive të imazheve të Shërbimit Custom Vision të përcaktuara nga zhvilluesi (rasti i prodhimit: njohja nëse një punonjës ka një kapele të fortë, syze ose maskë).
  3. Njohja e fytyrës (një rast i shkëlqyer përdorimi është të kontrollosh nëse personi i anketuar ka postuar fytyrën e tij, ose, të themi, një foto të një qeni ose një foto të një personi të një gjinie tjetër).
  4. Njohja e të folurit.
  5. Analiza e imazhit.
  6. Përkthimi (të gjithë e mbajmë mend se sa zhurmë shkaktoi përkthimi i njëkohshëm në Skype).
  7. Kontroll drejtshkrimor dhe sugjerime për korrigjimin e gabimeve.

LUIS

Gjithashtu, për të krijuar robotë mund t'ju nevojiten LUIS (Shërbimi Inteligjent Kuptimi i Gjuhës). Objektivat e shërbimit:

  • Përcaktoni nëse deklarata e përdoruesit ka kuptim dhe nëse përgjigja e robotit është e nevojshme.
  • Zvogëloni përpjekjet për të transkriptuar fjalimin e përdoruesit (tekstin) në komanda të kuptueshme për robotin.
  • Parashikoni qëllimet/qëllimet e vërteta të përdoruesit dhe nxirrni njohuritë kryesore nga frazat në dialog.
  • Lejo zhvilluesin të nisë robotin duke përdorur vetëm disa shembuj të njohjes së kuptimit dhe trajnimin e mëpasshëm shtesë të robotit gjatë funksionimit.
  • Aftësoni zhvilluesin të përdorë vizualizimin për të vlerësuar cilësinë e transkriptimit të komandave.
  • Ndihmoni në përmirësime në rritje në njohjen e vërtetë të objektivit.

Në fakt, qëllimi kryesor i LUIS është të kuptojë me një probabilitet të caktuar se çfarë do të thoshte përdoruesi dhe të kthejë një kërkesë të natyrshme në një komandë harmonike. Për të njohur vlerat e pyetjeve, LUIS përdor një grup synimesh (kuptime, synime) dhe entitetesh (ose të konfiguruara paraprakisht nga zhvilluesit, ose "domanë" të marrë dhe të formuar paraprakisht - disa biblioteka të gatshme të frazave standarde të përgatitura nga Microsoft). 

Një shembull i thjeshtë: ju keni një bot që ju jep një parashikim të motit. Për të, qëllimi do të jetë përkthimi i një kërkese të natyrshme në një "veprim" - një kërkesë për një parashikim moti, dhe entitetet do të jenë koha dhe vendi. Këtu është një diagram se si funksionon qëllimi CheckWeather për një robot të tillë.

Qëllimi
thelb
Shembull i një pyetjeje natyrore

Kontrollo motin
{"lloji": "vendndodhja", "entiteti": "moska"}
{"type": "builtin.datetimeV2.date", "entity": "future","resolution":"2020-05-30"}
Si do të jetë moti nesër në Moskë?

Kontrollo motin
{ "type": "data_range", "entity": "këtë fundjavë" }
Më trego parashikimin për këtë fundjavë

Për të kombinuar QnA Maker dhe LUIS mund të përdorni dispeçer

Ne e përshpejtojmë zhvillimin duke përdorur shërbimet Azure: ne krijojmë chatbot dhe shërbime njohëse duke përdorur platformën

Kur punoni me QnA Maker dhe merrni një kërkesë nga një përdorues, sistemi përcakton se sa përqind e probabilitetit përputhet përgjigja nga QnA me kërkesën. Nëse probabiliteti është i lartë, përdoruesit thjesht i jepet një përgjigje nga baza e njohurive të korporatës; nëse është e ulët, kërkesa mund t'i dërgohet LUIS për sqarime. Përdorimi i Dispatcher ju lejon të mos programoni këtë logjikë, por të përcaktoni automatikisht këtë skaj të ndarjes së kërkesave dhe t'i shpërndani ato shpejt.

Testimi dhe publikimi i botit

Një aplikacion tjetër lokal përdoret për testim, Emulator i kornizës bot. Duke përdorur emulatorin, mund të komunikoni me robotin dhe të kontrolloni mesazhet që ai dërgon dhe merr. Emulatori shfaq mesazhet siç do të shfaqeshin në një ndërfaqe të bisedës në internet dhe regjistron kërkesat dhe përgjigjet JSON kur dërgon mesazhe në robot.

Një shembull i përdorimit të emulatorit është paraqitur në këtë demonstrim, i cili tregon krijimin e një asistenti virtual për BMW. Videoja gjithashtu flet për përshpejtuesit e rinj për krijimin e chatbots - shabllone:

Ne e përshpejtojmë zhvillimin duke përdorur shërbimet Azure: ne krijojmë chatbot dhe shërbime njohëse duke përdorur platformën
https://youtu.be/u7Gql-ClcVA?t=564

Ju gjithashtu mund të përdorni shabllone kur krijoni chatbot-et tuaja. 
Modelet ju lejojnë të mos shkruani përsëri funksionet standarde të botit, por të shtoni kodin e gatshëm si "aftësi". Një shembull mund të jetë puna me një kalendar, caktimi i takimeve, etj. Kodi i aftësive të gatshme botuar në github.

Testimi ishte i suksesshëm, roboti është gati dhe tani duhet të publikohet dhe të lidhen kanalet. Publikimi kryhet duke përdorur Azure, dhe lajmëtarët ose rrjetet sociale mund të përdoren si kanale. Nëse nuk keni kanalin e kërkuar për futjen e të dhënave, mund ta kërkoni në komunitetin përkatës në GitHab. 

Gjithashtu, për të krijuar një chatbot të plotë si një ndërfaqe për komunikimin me përdoruesit dhe shërbimet njohëse, sigurisht që do t'ju duhen shërbime shtesë Azure, të tilla si bazat e të dhënave, pa server (Funksionet Azure), si dhe shërbimet LogicApp dhe, ndoshta , Rrjeti i ngjarjeve.

Ne e përshpejtojmë zhvillimin duke përdorur shërbimet Azure: ne krijojmë chatbot dhe shërbime njohëse duke përdorur platformën

Vlerësimi dhe analitika

Për të vlerësuar ndërveprimin e përdoruesit, mund të përdorni si analitikën e integruar të Shërbimit Azure Bot ashtu edhe shërbimin special të Application Insights.

Si rezultat, ju mund të mbledhni informacion bazuar në kriteret e mëposhtme:

  • Sa përdorues iu qasen robotit nga kanale të ndryshme gjatë periudhës kohore të zgjedhur.
  • Sa përdorues që dërguan një mesazh u kthyen më vonë dhe dërguan një tjetër.
  • Sa veprime janë dërguar dhe pranuar duke përdorur secilin kanal gjatë intervalit kohor të specifikuar.

Duke përdorur Application Insights, ju mund të monitoroni çdo aplikacion në Azure dhe, në veçanti, chatbots, duke marrë të dhëna shtesë në lidhje me sjelljen e përdoruesit, ngarkesat dhe reagimet e chatbot. Duhet të theksohet se shërbimi Application Insights ka ndërfaqen e tij në portalin Azure.

Ju gjithashtu mund të përdorni të dhënat e mbledhura përmes këtij shërbimi për të krijuar vizualizime shtesë dhe raporte analitike në PowerBI. Mund të merret një shembull i një raporti dhe modeli të tillë për PowerBI këtu.

Ne e përshpejtojmë zhvillimin duke përdorur shërbimet Azure: ne krijojmë chatbot dhe shërbime njohëse duke përdorur platformën

Faleminderit të gjithëve për vëmendjen tuaj! Në këtë artikull kemi përdorur material nga webinari nga arkitektja e Microsoft Azure Anna Fenyushina “Kur njerëzit nuk kanë kohë. Si të përdorni 100% chatbot dhe shërbimet njohëse për të automatizuar proceset rutinë”, ku treguam qartë se çfarë janë chatbot-ët në Azure dhe cilat janë skenarët për përdorimin e tyre, si dhe demonstruam gjithashtu se si të krijoni një bot në QnA Maker në 15 minuta dhe si Struktura e pyetjes është deshifruar në LUIS. 

Ne e bëmë këtë webinar si pjesë e maratonës në internet për zhvilluesit Dev Bootcamp. Bëhej fjalë për produkte që përshpejtojnë zhvillimin dhe lehtësojnë një pjesë të ngarkesës rutinë të punës nga punonjësit e kompanisë duke përdorur mjete automatizimi dhe module të gatshme të parakonfiguruara Azure. Regjistrimet e webinarëve të tjerë të përfshirë në maratonë janë në dispozicion në lidhjet e mëposhtme:

Burimi: www.habr.com

Shto një koment