Tere, Habr! Täna räägime sellest, kuidas Azure abil lahendada ülesandeid, mis tavaliselt nõuavad inimeste sekkumist. Operaatorid kulutavad palju aega vastamiseks samadele küsimustele, telefonikõnede ja tekstisõnumite töötlemiseks. Vestlusrobotid automatiseerivad suhtlemise ja tuvastamise, vähendades inimeste koormust. Samuti kasutatakse roboteid Azure DevOpsis, kus nad võimaldavad näiteks kinnitada versioone, hallata ehitusi – vaadata, käivitada ja peatada – otse Slackist või Microsoft Teamsist. Sisuliselt sarnaneb vestlusrobot mõnevõrra CLI-ga, kuid on interaktiivne, lubades arendajal mitte kontekstist välja fallenud aruteludest.
Selles artiklis räägime tööriistadest vestlusrobotite loomiseks, näitame, kuidas neid saab kognitiivsete teenuste abil täiustada, ning kirjeldame, kuidas arendust kiirendada Azure'i valmis teenuste abil.

Vestlusrobotid ja kognitiivsed teenused: millised on sarnasused ja erinevused
Microsoft Azure'is bot'ide loomiseks kasutatakse Azure Boti teenust ja Bot Framework platvormi. Koos moodustavad need tarkvarakompleksi, mis võimaldab luua, testida, juurutada ja hallata roboteid, pakkudes võimalust luua valmis moodulitest nii lihtsaid kui ka keerulisi suhtlemisse süsteeme, mis toetavad kõnet, loomuliku keele mõistmist ja muid funktsioone.
Oletame, et teil on vaja luua lihtne bot ettevõtte küsimuste ja vastuste teenuse alusel või vastupidi, välja töötada keeruline bot, millel on keeruline suhtlemise süsteem. Selleks saate kasutada mitmeid tööriistu, mis on tinglikult jagatud kolme gruppi:
- Kiire dialoogiloodud teenused (robotid).
- Valmis kognitiivsed AI teenused erinevate kasutusstsenaariumide jaoks (piltide ja kõne tuvastamine, teadmistebaas ja otsing).
- AI mudelite loomise ja koolitamise teenused.
Inimesed segavad sageli intuitiivselt "bobote" ja "kognitiivseid teenuseid", kuna mõlemal põhinevad suhtlemise põhimõtted ja botide ning teenuste kasutusstsenaariumites esinevad dialoogid. Kuid juturobotid toimivad võtmesõnade ja käivitajate abil, samas kui kognitiivsed teenused käsitlevad vabu päringuid, mida tavaliselt töötlevad inimesed:

Kognitiivsed teenused on veel üks viis kasutajaga suhtlemiseks, aidates konverteerida vabu päringuid selgeks käsuks ja edastada selle botile.
Seega on juturobotid rakendused päringutega töötamiseks, samas kui kognitiivsed teenused on nutika analüüsi tööriistad, mis käivitatakse eraldi, kuid millele võib juturobot pöörduda, muutes selle "intelligentseks".
Juturobotite loomine
Soovitatav botide kavandamise skeem Azure'is on järgmine:

Botide projekteerimiseks ja arendamiseks Azure'is kasutatakse . GitHubis on , raamistiku võimalused muutuvad, seega on oluline arvestada SDK versiooniga, mida botides kasutatakse.
Raamistik pakub mitmeid võimalusi bot’ide loomiseks: kas klassikalise koodi, käsurea tööriistade või plokkskeemide abil. Viimane variant visualiseerib dialooge, ja selleks saab kasutada haldurit. . See loodi Bot Framework SDK baasil kui visuaalne arendusvahend, mida multidistsiplinaarsed meeskonnad saaksid kasutada bot’ide loomiseks.

Bot Framework Composer võimaldab plokkide abil luua dialooge, millega bot töötab. Lisaks saab luua käivitajaid, see tähendab märksõnu, millele bot reageerib dialooge pidamise ajal. Näiteks sõnad „operaator“, „vargus“ või „stopp“ ja „piisab“.
Bot Framework Composer’is saab luua keeruka filiaalidega dialoogisüsteemi, kasutades . Dialoogid võivad kasutada nii kognitiivseid teenuseid kui ka sündmuskaarte (Adaptive Cards):

Pärast loomist saab vestlusbooti juurutada tellimuses, kusjuures automaatselt genereeritud skript loob kõik vajalikud ressursid: kognitiivsed teenused, rakenduse plaan, rakenduse analüütika, andmebaas ja nii edasi.
QnA Maker
Lihtsate, ettevõtte päritolu küsimuste ja vastuste baasil chatbot'ide loomise jaoks saab kasutada QnA Maker'i kognitiivset teenust. See on rakendatud lihtsa veebivõlurina, mis võimaldab sisestada lingi ettevõtte teadmusbaasile (FAQ Urls) või kasutada alusena dokumentide andmebaasi formaadis *.doc või *.pdf. Pärast indeksi loomist suudab chatbot ise leida sobivaid vastuseid kasutaja küsimustele.
QnAMaker'iga saab luua ka selgitavaid küsimustekeju, mis automaatselt genereerivad nuppe, täiendada teadmusbaasi metaandmetega ja täiendada teenust kasutamise käigus.
Teenust saab kasutada kui chatbot'i, mis täidab ainult selle funktsiooni, või kui osa keerulisest chatbot'ist, mis kasutab sõltuvalt päringust ka muid AI teenuseid või Bot Framework'i elemente.
Koostöö teiste kognitiivsete teenustega
Azure platvormil on palju erinevaid kognitiivseid teenuseid. Tehniliselt on need iseseisvad veebiteenused, mida saab koodist kutsuda. Teenus saadab vastuseks kindlas formaadis json, mida saab kasutada chatbot'is.

Chatbot'ides kasutatakse kõige sagedamini järgmisi:
- Tekstimärkamine.
- Kohandatud Vision Service'i määratletud kategooriate pildiarvamine (tööstusjuhtum: märgata, kas töötajal on kiiver, kaitseprillid või mask).
- Näotuvastus (suurepärane kasutusjuht — kontrollida, kas küsitletav on tõepoolest enda nägu üles laadinud või näiteks koera pildist või teise soo inimesest).
- Kõnetuvastus.
- Piltide analüüs.
- Tõlkimine (me kõik mäletame, kui palju lärmi tegi sünkroontõlge Skype'is).
- Ortograafia kontroll ning vigade parandusettepanekud.
LUIS
Samuti võib botide loomisel olla vajalik (Language Understanding Intelligent Service). Teenuse ülesanded:
- Määrata, kas kasutaja avalduse mõte on arusaadav ja kas bot peab reageerima.
- Vähendada vaeva, et transkribeerida kasutaja kõne (tekst) arusaadavatesse botile käskudesse.
- Prognoosida tegelikke kasutaja eesmärke/soove ja eraldada võtmeinformatsioon lausetest dialoogis.
- Pakuda arendajale võimalust käivitada bot vaid mõne mõistmise näite abil ning seejärel bot töö käigus edasi arendada.
- Arendajale visualiseerimise võimaluse andmine, et hinnata käskude transkriptsiooni kvaliteeti.
- Aitamine tõeliste eesmärkide tuvastamise järk-järgult parandamisel.
Põhimõtteliselt on LUISi peamine eesmärk mõista, mida kasutaja tõenäoliselt mõtles, ning muuta loomulik päring ladusaks käskluseks. LUIS kasutab päringute tähenduste mõistmiseks komplekti kavatsusi (tähendusi) ja entiteete (kas ette määratud arendajate poolt või ette valmistatud domäänidest – teatud tüüpiliste fraaside raamatukogud, mille Microsoft on kokku pannud).
Lihtne näide: teil on bot, mis annab ilmaprognoosi. Selle jaoks on kavatsus tõlgendada loomulikku päringut „tegevuseks” – ilmaprognoosi päringuks, ja entiteetideks – aeg ja koht. Vaatame CheckWeather kavatsuse töö skeemi sellise boti jaoks.
Kavatsus
Entiteet
Näide loomulikust päringust
CheckWeather
{ "type": "location", "entity": "moscow" }
{ "type": "builtin.datetimeV2.date", "entity": "future", "resolution": "2020-05-30" }
Milline ilm on homme Moskvas
CheckWeather
{ "type": "date_range", "entity": "this weekend" }
Kuva mulle prognoos sellel nädalavahetusel
QnA Makeri ja LUISi kombinatsiooni saab kasutada .

Kui töötate QnA Makeriga ja saate kasutajalt päringu, määrab süsteem, kui suure tõenäosusega vastab QnA teadmusbaas sellele päringule. Kui tõenäosus on kõrge, antakse kasutajale automaatselt vastus ettevõtte teadmusbaasist; kui madal, võib päring suunata LUIS-ile täpsustamiseks. Dispatcher'i kasutamine võimaldab seda loogikat mitte kodeerida, vaid määrab automaatselt selle piiri päringute jagamisel ja jaotamisel.
Boti testimine ja avaldamine
Testimiseks kasutatakse veel ühte kohalikku rakendust, . Emulaatoriga saab suhelda botiga ja kontrollida sõnumeid, mida ta saadab ja(receives) . Emulaator kuvab sõnumeid nii, nagu need välja näevad veebichati liidese kaudu ning registreerib päringud ja vastused JSON-i formaadis sõnumivahetuse käigus botiga.
Emulaatori näidist kasutatakse selles demonstratsioonis, kus näidatakse virtuaalse assistendi loomist BMW-le. Samuti räägitakse videos uutest kiirendajatest vestlusbotide loomiseks – malli:

Samuti saate oma vestlusrobotite loomisel kasutada malle.
Malle kasutades ei pea te robotifunktsioone uuesti kirjutama, vaid saate valmis koodi lisada kui 'oskust'. Näiteks võib see hõlmata kalendri kasutamist, kohtumiste määramist jne. Valmisoskuste kood. githubis.
Testimine on edukalt lõpule viidud, robot on valmis ja nüüd tuleb see avaldada ja kanalid ühendada. Avaldamine toimub Azure'i teenuste kaudu ning kanalitena saab kasutada sõnumitoojaid või sotsiaalmeediat. Kui vajalikku andmete sisendi kanalit pole, otsige seda vastavast GitHubi kogukonnast.
Tõelise vestlusroboti loomiseks vajate kasutajaliidese ja kognitiivsete teenuste jaoks muid Azure'i teenuseid, nagu andmebaasid, serverivabad teenused (Azure Functions), samuti LogicApp teenused ja võib-olla ka Event Grid.

Hindamine ja analüüs
Kasutajatega suhtlemise hindamiseks saate kasutada nii Azure Bot Service'i sisseehitatud analüütikat kui ka spetsiaalset teenust Application Insights.
Tulemuseks on võimalik koguda teavet järgmiste kriteeriumide alusel:
- Kui palju kasutajaid sai valitud ajavahemikus botile erinevate kanalite kaudu juurde pääseda.
- Kui palju üksikute sõnumite saatnud kasutajaid naasis hiljem ja saatis veel ühe sõnumi.
- Kui palju toiminguid määratud ajavahemikus iga kanali kaudu saadeti ja saadi.
Application Insights’i abil saab jälgida kõiki rakendusi Azure'is, sealhulgas vestlusroboteid, et saada täiendavaid andmeid kasutajate käitumise, koormuste ja vestlusroboti reaktsioonide kohta. Tasub märkida, et Application Insights'i teenusel on oma liides Azure’i portaalis.
Kogutud andmeid saab samuti kasutada täiendavate visualiseerimiste ja analüütiliste raportite loomise jaoks PowerBI-s. Näiteks sellise raporti ja PowerBI malli saab võtta .

Aitäh kõigile tähelepanu eest! Selles artiklis kasutasime Microsoft Azure'i arhitektilt Anna Fenjushinilt veebiseminarist "Kui inimesed ei jõua. Kuidas 100% kasutada vestlusroboteid ja kognitiivseid teenuseid rutiinsete protsesside automatiseerimiseks", kus me näitasime selgelt, mis on Azure'is vestlusrobotid ja kuidas neid rakendada, ning demonstreerisime, kuidas luua 15 minutiga bot QnA Makeris ja kuidas LUISi päringute struktuur lahti muudetakse.
Selle veebiseminari korraldasime Dev Bootcampi arendajatele mõeldud veebimaratoni raames. Seminaris räägiti toodetest, mis kiirendavad arendustööd ja vähendavad personali rutiinset koormust automatiseerimise tööriistade ning eelkonfigureeritud Azure'i moodulite abil. Muude veebiseminaride salvestused, mis kuuluvad maratoni, on saadaval linkide kaudu:
-
Räägime Azure DevOpsi teenuse arengust ja uutest võimalustest. Üksikasjalikult käsitleme kõiki viit põhikomponenti ja seda, kuidas teenus aitab kaasa tarkvaraarenduse tööstusstandarditele. Esineja — Vladimir Gusarov, Microsoft MVP.
Käime läbi, kuidas rakendada 'koodina ehitamise' lähenemist mis tahes programmeerimiskeelte jaoks, kasutades multi-staged YAML pipelines. Esineja — Vladimir Gusarov, Microsoft MVP.
Arutame, kuidas välja töötada tarkvara allika koodi hoidmise strateegiaid ja kuidas kasutada versioonihaldussüsteeme Azure Reposi kaudu. Esineja — Vladimir Gusarov, Microsoft MVP.
Tutvustame avatud lähtekoodiga haldamise meetodeid arenduses ja WhiteSourcei tööriista praktilist rakendamist. Räägime avatud lähtekoodiga komponentide haavatavuste leidmisest ja litsentside puhtuse järgimisest WhiteSourcei abil. Esinejad — Diana Lisbaron, WhiteSource'i müügijuht, ja Daria Oreshkina, Web Control, WhiteSource'i ametlik jaotaja Venemaal.
Allikas: habr.com
