Kiirendame arendust Azure teenuste abil: loome vestlusrobotid ja kognitiivsed teenused platvormi abil

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.

Kiirendame arendust Azure teenuste abil: loome vestlusrobotid ja kognitiivsed teenused platvormi 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: 

  1. Kiire dialoogiloodud teenused (robotid).
  2. Valmis kognitiivsed AI teenused erinevate kasutusstsenaariumide jaoks (piltide ja kõne tuvastamine, teadmistebaas ja otsing).
  3. 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: 

Kiirendame arendust Azure teenuste abil: loome vestlusrobotid ja kognitiivsed teenused platvormi abil

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: 

Kiirendame arendust Azure teenuste abil: loome vestlusrobotid ja kognitiivsed teenused platvormi abil

Botide projekteerimiseks ja arendamiseks Azure'is kasutatakse Bot Framework. GitHubis on botide näiteid, 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. Bot Framework Composer. See loodi Bot Framework SDK baasil kui visuaalne arendusvahend, mida multidistsiplinaarsed meeskonnad saaksid kasutada bot’ide loomiseks.

Kiirendame arendust Azure teenuste abil: loome vestlusrobotid ja kognitiivsed teenused platvormi abil

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 Adaptive Dialogs. Dialoogid võivad kasutada nii kognitiivseid teenuseid kui ka sündmuskaarte (Adaptive Cards):

Kiirendame arendust Azure teenuste abil: loome vestlusrobotid ja kognitiivsed teenused platvormi abil

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.

Kiirendame arendust Azure teenuste abil: loome vestlusrobotid ja kognitiivsed teenused platvormi abil
Chatbot'ides kasutatakse kõige sagedamini järgmisi:

  1. Tekstimärkamine.
  2. Kohandatud Vision Service'i määratletud kategooriate pildiarvamine (tööstusjuhtum: märgata, kas töötajal on kiiver, kaitseprillid või mask).
  3. 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).
  4. Kõnetuvastus.
  5. Piltide analüüs.
  6. Tõlkimine (me kõik mäletame, kui palju lärmi tegi sünkroontõlge Skype'is).
  7. Ortograafia kontroll ning vigade parandusettepanekud.

LUIS

Samuti võib botide loomisel olla vajalik LUIS (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 Dispatcher

Kiirendame arendust Azure teenuste abil: loome vestlusrobotid ja kognitiivsed teenused platvormi abil

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, Bot framework emulator. 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:

Kiirendame arendust Azure teenuste abil: loome vestlusrobotid ja kognitiivsed teenused platvormi abil
https://youtu.be/u7Gql-ClcVA?t=564

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. avaldatud 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.

Kiirendame arendust Azure teenuste abil: loome vestlusrobotid ja kognitiivsed teenused platvormi abil

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 siit.

Kiirendame arendust Azure teenuste abil: loome vestlusrobotid ja kognitiivsed teenused platvormi abil

Aitäh kõigile tähelepanu eest! Selles artiklis kasutasime materjal 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:

Allikas: habr.com

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster