Përshëndetje, Habr! Sot do t'ju tregojmë si të zgjidhni me Azure detyra që zakonisht kërkojnë pjesëmarrjen e njeriut. Operatorët shpenzojnë shumë kohë duke iu përgjigjur të njëjtave pyetje, duke përpunuar telefonata dhe mesazhe tekstual. Chat-botët automatizojnë komunikimin dhe njohjen dhe lejojnë uljen e ngarkesës për njerëzit. Po ashtu, botët përdoren në Azure DevOps, ku lejojnë, për shembull, të miratojnë lëshime, të menaxhojnë ndërtimet – të shikojnë, nisin dhe ndalin – drejtpërdrejt nga Slack ose Microsoft Teams. Në thelb, një chat-bot i ngjan disi CLI, vetëm se është interaktiv, dhe lejon zhvilluesin të mos dalë jashtë kontekstit të diskutimeve në chat.
Në këtë artikull do të flasim për mjetet për krijimin e chat-botëve, do të tregojmë se si mund t'i përmirësojmë ato me shërbime kognitive, dhe do të përshkruajmë se si të shpejtojmë zhvillimin falë shërbimeve të gatshme në Azure.

Chat-botët dhe shërbimet kognitive: çfarë kanë të përbashkët dhe çfarë i ndan
Për krijimin e boteve në Microsoft Azure përdoren shërbimi Azure Bot dhe platforma Bot Framework. Së bashku ato përbëjnë një grup softwarësh për ndërtimin, testimin, shpërndarjen dhe administrimin e boteve, që lejon krijimin e sistemeve të thjeshta dhe të avancuara të komunikimit me mbështetje për zërin, njohjen e gjuhës natyrore dhe mundësi të tjera.
Le të supozojmë se ju nevojitet të implementoni një bot të thjeshtë mbi një shërbim korporativ për pyetje dhe përgjigje ose, përkundrazi, të krijoni një bot funksional me një sistem të ndërlikuar komunikimi. Për këtë, mund të përdorni një sërë mjetesh, të ndara në tri grupe:
- Shërbimet e zhvillimit të shpejtë të ndërfaqeve të dialogut (boteve).
- Shërbimet e gatshme kognitive të AI për skenarë të ndryshëm përdorimi (njohja e imazheve, zërit, baza e njohurive dhe kërkimi).
- Shërbimet për krijimin dhe trajnimin e modeleve të AI.
Zakonisht, njerëzit e ngatërrojnë intuitivisht "bobot" dhe "shërbimet kognitive", sepse në themel të të dyjave qëndron parimi i komunikimit, dhe në skenarët e përdorimit të bobotëve dhe shërbimeve ka dialogë. Por, bobotët e çështjeve punojnë me fjalë kyçe dhe triggjerë, ndërsa shërbimet kognitive punojnë me kërkesa të rastësishme, të cilat zakonisht përpunohen nga njerëzit:

Shërbimet kognitive janë një tjetër mënyrë komunikimi me përdoruesin, duke ndihmuar në konvertimin e një kërkese të rastësishme në një komandë të qartë dhe ta kalojë më pas tek bobot.
Kështu, bobotët e çështjeve janë aplikacione për trajtimin e kërkesave, ndërsa shërbimet kognitive janë mjete për analizë inteligjente të kërkesave, të cilat aktivizohen veçmas, por të cilat mund të drejtohen nga bobot, duke u bërë "inteligjent".
Krijimi i bobotëve
Schema e rekomanduar për projektimin e bobotëve në Azure duket kështu:

Për projektimin dhe zhvillimin e bobotëve në Azure përdoret . Në GitHub ka , mundësitë e këtij framework-u ndryshojnë, prandaj është e nevojshme të merret parasysh versioni i SDK që përdoret në bobot.
Kornizë e lejon disa mënyra për krijimin e botëve: përmes kodit klasik, mjeteve të komandës ose diagrameve. Pjesa e fundit vizualizon bisedat, dhe për këtë mund të përdoret menaxheri . Ai është krijuar mbi bazën e Bot Framework SDK si një mjet vizual zhvillimi, që ekipet multidisiplinare mund ta përdorin për të krijuar bota.

Bot Framework Composer lejon krijimin e strukturës së bisedës përmes blloqeve, me të cilat do të punojë boti. Gjithashtu, është e mundur të krijoni tregues, pra fjalë kyçe, ndaj të cilave boti do të reagojë gjatë bisedës. Për shembull, në fjalët "operator", "vjedhje" ose "ndalo" dhe "mjaft".
Në Bot Framework Composer mund të krijoni një sistem të ndërlikuar bisedash, duke përdorur . Bisedat mund të përdorin si shërbime kognitive ashtu edhe karta ngjarjesh (Adaptive Cards):

Pas krijimit, është e mundur të vendosni chatbot-in në abonim, dhe skenari i përgatitur automatikisht do të krijojë të gjitha burimet e nevojshme: shërbime kognitive, planin e aplikacionit, Application Insights, bazën e të dhënave dhe kështu me radhë.
QnA Maker
Për të krijuar bota të thjeshta të bazuara në DB-të korporative të pyetjeve dhe përgjigjeve, mund të përdorni shërbimin kognitiv QnA Maker. I realizuar në formën e një wizard-i të thjeshtë në web, ai lejon të pranoni si hyrje një lidhje për bazën korporative të njohurive (FAQ Urls) ose të merrni si bazë një dokumentacion në formatin *.doc ose *.pdf. Pas krijimit të indeksit, boti do të gjejë përgjigjet më të përshtatshme për pyetjet e përdoruesit.
Me QnAMaker, mund të krijoni gjithashtu zinxhirë pyetjesh sqaruese me krijimin automatik të butonave, të plotësoni bazën e njohurive me metadata dhe ta stërvitni shërbimin gjatë përdorimit.
Shërbimi mund të përdoret si një chat-bot, duke realizuar vetëm këtë funksion, ose si pjesë e një chat-boti më të ndërlikuar, që përdor, sipas kërkesës, edhe shërbime të tjera të AI ose elementë të Bot Framework.
Punimi me shërbime të tjera kognitive
Në platformën Azure ka shumë shërbime të ndryshme kognitive. Teknikisht, këto janë shërbime të pavarura në web, të cilat mund të thirren nga kodi. Në përgjigje, shërbimi dërgon një json në një format të caktuar, që mund të përdoret në chat-bot.

Më së shpeshti në chat-bot mund të përdoren:
- Njohja e tekstit.
- Njohja e kategorive të imazheve të përcaktuara nga zhvilluesit me Shërbimin Custom Vision (rast prodhimi: njohja, nëse punonjësi kishte helmetë, syze mbrojtëse ose maskë).
- Njohja e fytyrave (rast ideal për përdorim - kontrollimi nëse fytyra e vendosur është e anketausit, apo, për shembull, një foto e një qeni ose një foto e një personi të seksit tjetër).
- Njohja e zërit.
- Analiza e imazheve.
- Përkthimi (të gjithë ne kujtojmë sa shumë zhurmë bëri përkthimi në kohë reale në Skype).
- Kontrolli i ortografisë dhe propozime për korrigjimin e gabimeve.
LUIS
Po ashtu, për krijimin e botëve mund të nevojitet (Shërbimi për Kuptimin e Gjuhës me Inteligjencë). Detyrat e shërbimit:
- Të përcaktojë nëse shprehja e përdoruesit ka kuptim dhe nëse reagon bota.
- Të reduktojë përpjekjet për transkriptime të zërit (tekstit) të përdoruesit në komanda të qarta për botën.
- Të parashikojë qëllimet/intentet e vërteta të përdoruesve dhe të nxjerrë informacion kyç nga frazat në dialog.
- Të ofrojë mundësinë për zhvilluesin që të aktivizojë botën duke përdorur vetëm disa shembuj të njohjes së kuptimit dhe pastaj të vazhdojë të mësojë botën gjatë funksionimit.
- Të mundësojë zhvilluesit të përdorë vizualizimin për të vlerësuar cilësinë e transkriptimit të komandave.
- Të ndihmojë në përmirësime graduale të njohjes së qëllimeve reale.
Në thelb, qëllimi kryesor i LUIS është të kuptojë me një mundësi të caktuar se çfarë kishte në mendje përdoruesi dhe ta konvertojë kërkesën natyrore në një komandë të qartë. Për të njohur kuptimin e kërkesave, LUIS përdor një grup intentesh (kuptime, qëllime) dhe entitetesh (ose të paracaktuara nga zhvilluesit, ose të marra dhe përgatitura paraprakisht nga "domenet" - disa biblioteka të gatshme të frazave tipike të përgatitura nga Microsoft).
Një shembull i thjeshtë: keni një bot që ofron parashikimin e motit. Për të, intenti do të jetë përkthimi i kërkesës natyrore në "veprimin" - kërkesën për parashikimin e motit, dhe entitetet do të jenë koha dhe vendi. Le të japim një skemë funksionimi për intentin CheckWeather për këtë bot.
Intent
Entitet
Shembulli i kërkesës natyrore
CheckWeather
{"type": "location", "entity": "moscow"}
{"type": "builtin.datetimeV2.date", "entity": "future "," resolution ":" 2020-05-30 "}
Si do të jetë moti nesër në Moskë
CheckWeather
{"type": "date_range", "entity": "this weekend"}
Më trego parashikimin për këto fundjavat
Për të kombinimin e QnA Maker dhe LUIS mund të përdoret .

Kur punoni me QnA Maker dhe merrni një kërkesë nga përdoruesi, sistemi përcakton se me sa përqindje të mundësisë përgjigjja nga QnA përshtatet për kërkesën. Nëse mundësia është e lartë, përdoruesit i jepet thjesht përgjigjja nga baza e njohurive të korporatës; nëse është e ulët, kërkesa mund të dërgohet në LUIS për sqarim. Përdorimi i Dispatcher-it lejon që kjo logjikë të mos kodifikohet manualisht, por të përcaktohet automatikisht dhe të shpërndahet shpejt.
Testimi dhe publikimi i botit
Për testimin përdoret një aplikacion lokal tjetër, . Me ndihmën e emulatorit, mund të komunikoni me botin dhe të kontrolloni mesazhet që ai dërgon dhe merr. Emulatori tregon mesazhet ashtu siç do të duken në ndërfaqen e bisedës në web dhe regjistron kërkesat dhe përgjigjet JSON gjatë shkëmbimit të mesazheve me botin.
Një shembull përdorimi të emulatorit paraqitet në këtë demonstruese, ku tregohet krijimi i një asistenti virtual për BMW. Gjithashtu, në video flitet për akseleratorët e rinj për krijimin e chatbot-ëve – shabllonët:

Ju gjithashtu mund të përdorni templates gjatë krijimit të chatbot-eve tuaj.
Templates lejojnë që të mos shkruani funksionet standarde të botit nga e para, por të shtoni kodin e gatshëm si 'aftësi'. Një shembull mund të jetë puna me kalendarin, caktimi i takimeve etj. Kodi i aftësive të gatshme në github.
Testimi ka kaluar me sukses, boti është gati dhe tani duhet ta publikoni dhe të lidhni kanalet. Publikimi bëhet përmes Azure dhe si kanale mund të përdoren mesazhistë ose rrjete sociale. Nëse nuk ka kanalin e nevojshëm për të dhënat, mund ta kërkoni atë në komunitetin përkatës në GitHub.
Gjithashtu, për krijimin e një chatbot-i të plotë si një ndërfaqe komunikimi me përdoruesin dhe shërbimet kognitieve, do t'ju nevojiten natyrisht shërbime të tjera Azure, si bazat e të dhënave, serverless (Azure Functions), si dhe shërbime LogicApp dhe ndoshta Event Grid.

Vlerësimi dhe analiza
Për vlerësimin e ndërveprimit me përdoruesit mund të përdorni si analitikën e integruar të Azure Bot Service, ashtu edhe shërbimin e veçantë Application Insights.
Si rezultat, mund të mbledhim informacion mbi kriteret e mëposhtme:
- Sa sa janë përdoruesit që morën qasje në bota nga kanale të ndryshme gjatë periudhës së zgjedhur.
- Sa përdorues, pas dërgimit të një mesazhi, u kthyen më vonë dhe dërguan një tjetër.
- Sa veprime u dërguan dhe u morën përmes çdo kanali gjatë intervalit të caktuar.
Me Application Insights mund të monitoroni çdo aplikacion në Azure dhe, veçanërisht, chatbot-et, duke marrë informacione shtesë mbi sjelljen e përdoruesve, ngarkesat dhe reagimet e chatbot-it. Duhet të theksohet se shërbimi Application Insights ka ndërfaqen e tij në portalin Azure.
Të dhënat e mbledhura përmes këtij shërbimi mund të përdoren gjithashtu për të krijuar vizualizime të tjera dhe raporte analitike në PowerBI. Një shembull i tillë raporti dhe një template për PowerBI mund të merret .

Faleminderit të gjithëve për vëmendjen! Në këtë artikull ne përdorëm nga nga nga arkitektit të Microsoft Azure, Anna Fenjushina «Kur njerëzit s'kanë kohë. Si të përdorësh 100% chatbotet dhe shërbimet kognitive për automatizimin e proceseve të zakonshme», ku ne treguam në mënyrë të qartë se çfarë janë chatbotet në Azure dhe cilat janë skenarët e përdorimit të tyre, si dhe demonstruam se si të krijohet një bot në QnA Maker brenda 15 minutash dhe si interpretohen strukturat e kërkesave në LUIS.
E organizuam këtë webinar si pjesë e maratonës online për zhvilluesit Dev Bootcamp. Çështja e diskutimit ishte për produktet që përshpejtojnë zhvillimin dhe lehtësojnë pjesën e ngarkesës rutinore për punonjësit e kompanisë përmes mjeteve të automatizimit dhe moduleve të parakonfiguruara të Azure. Regjistrimet e webinareve të tjera që ishin pjesë e maratonës janë në dispozicion përmes lidhjeve:
-
Flasim për evolucionin dhe mundësitë e reja të shërbimit Azure DevOps. Detajojmë të pesë komponentët kryesorë dhe se si ky shërbim ndihmon organizatën në zhvillimin industrial të softuerit. I moderuar nga Vladimir Gusarov, Microsoft MVP.
Diskutojmë se si të zbatojmë qasje ‘ndërtesa si kod’ për çdo gjuhë programimi duke përdorur multi-staged YAML pipelines. Moderator – Vladimir Gusarov, Microsoft MVP.
Diskutojmë se si të zhvillojmë strategji për ruajtjen e kodit burimor të softuerit, si të përdorim sistemet e ruajtjes së versioneve me Azure Repos. Moderator – Vladimir Gusarov, Microsoft MVP.
Prezentojmë metodologjitë e menaxhimit të open source gjatë zhvillimit dhe aplikimin praktik të mjetit WhiteSource. Flasim për gjetjen e dobësive në komponentët me kod burimor të hapur dhe përmbushjen e pastërtisë licencore me ndihmën e WhiteSource. Moderatorë – Diana Lisbaron, Drejtore e Shitjeve të WhiteSource, dhe Oreshkina Darya, Web Control, distributori zyrtar i WhiteSource në Rusi.
Burimi: habr.com
