S storitvami Azure pospešujemo razvoj: z uporabo platforme ustvarjamo chatbote in kognitivne storitve

Pozdravljeni, Habr! Danes vam bomo pokazali, kako uporabiti Azure za reševanje težav, ki običajno zahtevajo človeško posredovanje. Agenti porabijo veliko časa za odgovarjanje na ista vprašanja, obravnavanje telefonskih klicev in besedilnih sporočil. Klepetalni roboti avtomatizirajo komunikacijo in prepoznavanje ter zmanjšajo obremenitev ljudi. Boti se uporabljajo tudi v Azure DevOps, kjer omogočajo na primer odobritev izdaj, upravljanje gradenj – ogled, zagon in zaustavitev – neposredno iz storitve Slack ali Microsoft Teams. V bistvu chatbot nekoliko spominja na CLI, le da je interaktiven in razvijalcu omogoča, da ostane v kontekstu razprave v klepetu.

V tem članku bomo govorili o orodjih za ustvarjanje chatbotov, pokazali, kako jih je mogoče izboljšati s kognitivnimi storitvami, in opisali, kako pospešiti razvoj z že pripravljenimi storitvami v Azure.

S storitvami Azure pospešujemo razvoj: z uporabo platforme ustvarjamo chatbote in kognitivne storitve

Klepetalni roboti in kognitivne storitve: v čem so podobnosti in v čem razlike?

Če želite ustvariti bote v Microsoft Azure, uporabite storitev Azure Bot in Bot Framework. Skupaj predstavljajo nabor programske opreme za gradnjo, testiranje, uvajanje in upravljanje botov, ki vam omogoča, da iz že pripravljenih modulov ustvarite enostavne in napredne komunikacijske sisteme z govorno podporo, prepoznavanjem naravnega jezika in drugimi zmogljivostmi.

Predpostavimo, da morate implementirati preprostega bota, ki temelji na korporativni storitvi vprašanj in odgovorov, ali, nasprotno, ustvariti funkcionalnega bota s kompleksnim, razvejanim komunikacijskim sistemom. Če želite to narediti, lahko uporabite številna orodja, razdeljena v tri skupine: 

  1. Storitve za hiter razvoj pogovornih vmesnikov (boti).
  2. Pripravljene kognitivne storitve AI za različne primere uporabe (prepoznavanje vzorcev, prepoznavanje govora, baza znanja in iskanje).
  3. Storitve za ustvarjanje in usposabljanje modelov AI.

Običajno ljudje intuitivno zamenjujejo »bote« in »kognitivne storitve«, ker oba koncepta temeljita na načelu komunikacije, primer uporabe botov in storitev pa vključuje dialoge. Vendar chatboti delujejo s ključnimi besedami in sprožilci, kognitivne storitve pa s poljubnimi zahtevami, ki jih običajno obdelajo ljudje: 

S storitvami Azure pospešujemo razvoj: z uporabo platforme ustvarjamo chatbote in kognitivne storitve

Kognitivne storitve so še en način komunikacije z uporabnikom, saj pomagajo pretvoriti poljubno zahtevo v jasen ukaz in ga posredovati botu. 

Klepetalni roboti so torej aplikacije za delo z zahtevami, kognitivne storitve pa so orodja za inteligentno analizo zahtev, ki se sprožijo ločeno, a do njih lahko dostopa chatbot in tako postanejo »inteligentni«. 

Ustvarjanje chatbotov

Priporočeni diagram zasnove za bota v Azure je naslednji: 

S storitvami Azure pospešujemo razvoj: z uporabo platforme ustvarjamo chatbote in kognitivne storitve

Za načrtovanje in razvoj botov v Azure uporabite Bot Framework. Na voljo na GitHubu primeri botov, se zmožnosti ogrodja spremenijo, zato je treba upoštevati različico SDK, ki se uporablja v botih.

Ogrodje ponuja več možnosti za ustvarjanje botov: uporabo klasične kode, orodij ukazne vrstice ali diagramov poteka. Zadnja možnost vizualizira pogovorna okna; za to lahko uporabite upravitelja Bot Framework Composer. Zgrajen je bil na osnovi Bot Framework SDK kot orodje za vizualni razvoj, ki bi ga meddisciplinarne ekipe lahko uporabile za ustvarjanje botov.

S storitvami Azure pospešujemo razvoj: z uporabo platforme ustvarjamo chatbote in kognitivne storitve

Bot Framework Composer vam omogoča uporabo blokov za ustvarjanje strukture dialoga, s katero bo bot deloval. Poleg tega lahko ustvarite sprožilce, to je ključne besede, na katere bo bot reagiral med dialogom. Na primer besede "operater", "kraja" ali "stop" in "dovolj".

V Bot Framework Composerju lahko ustvarite kompleksne pogovorne sisteme z uporabo Prilagodljiva pogovorna okna. Dialogi lahko uporabljajo tako kognitivne storitve kot kartice dogodkov (prilagodljive kartice):

S storitvami Azure pospešujemo razvoj: z uporabo platforme ustvarjamo chatbote in kognitivne storitve

Po ustvarjanju lahko klepetalni robot namestite v naročnino, samodejno pripravljena skripta pa bo ustvarila vse potrebne vire: kognitivne storitve, aplikacijski načrt, Application Insights, bazo podatkov itd.

Izdelovalec QnA

Če želite ustvariti preproste bote na podlagi podatkovnih zbirk vprašanj in odgovorov podjetja, lahko uporabite kognitivno storitev QnA Maker. Implementiran kot preprost spletni čarovnik vam omogoča, da vnesete povezavo do baze znanja podjetja (FAQ Urls) ali kot osnovo uporabite bazo dokumentov v formatu *.doc ali *.pdf. Po ustvarjanju indeksa bo bot samodejno izbral najprimernejše odgovore na uporabnikova vprašanja.

Z uporabo QnAMakerja lahko ustvarite tudi verige pojasnjevalnih vprašanj s samodejnim ustvarjanjem gumbov, dopolnite bazo znanja z metapodatki in dodatno usposobite storitev med uporabo.

Storitev se lahko uporablja kot chatbot, ki izvaja samo to funkcijo, ali kot del kompleksnega chatbota, ki uporablja, odvisno od zahteve, druge storitve AI ali elemente Bot Framework.

Delo z drugimi kognitivnimi storitvami

Na platformi Azure je veliko različnih kognitivnih storitev. Tehnično so to neodvisne spletne storitve, ki jih je mogoče priklicati iz kode. Kot odgovor storitev pošlje json določenega formata, ki ga je mogoče uporabiti v chatbotu.

S storitvami Azure pospešujemo razvoj: z uporabo platforme ustvarjamo chatbote in kognitivne storitve
Najpogostejše uporabe chatbotov so:

  1. Prepoznavanje besedila.
  2. Prepoznavanje kategorij slik storitve Custom Vision Service, ki jih določi razvijalec (produkcijski primer: prepoznavanje, ali zaposleni nosi zaščitno kapo, očala ali masko).
  3. Prepoznavanje obraza (odličen primer uporabe je preverjanje, ali je anketiranec objavil svoj obraz, ali recimo fotografijo psa ali fotografijo osebe drugega spola).
  4. Prepoznavanje govora.
  5. Analiza slike.
  6. Prevajanje (vsi se spomnimo, koliko šuma je povzročilo simultano prevajanje v Skypu).
  7. Preverjanje črkovanja in predlogi za popravljanje napak.

LUIS

Tudi za ustvarjanje botov boste morda potrebovali LUIS (Inteligentna storitev za razumevanje jezika). Cilji storitve:

  • Ugotovite, ali je izjava uporabnika smiselna in ali je odgovor bota potreben.
  • Zmanjšajte prizadevanja za prepis uporabniškega govora (besedila) v ukaze, ki so razumljivi botu.
  • Predvidite resnične uporabniške cilje/namere in iz fraz v dialogu izvlecite ključne vpoglede.
  • Dovolite razvijalcu, da zažene bota z uporabo samo nekaj primerov prepoznavanja pomenov in naknadnega dodatnega usposabljanja bota med delovanjem.
  • Omogočite razvijalcu uporabo vizualizacije za oceno kakovosti prepisa ukazov.
  • Pomagajte pri postopnih izboljšavah v prepoznavanju pravega cilja.

Pravzaprav je glavni cilj LUIS-a z določeno verjetnostjo razumeti, kaj je uporabnik mislil, in pretvoriti naravno zahtevo v harmoničen ukaz. Za prepoznavanje vrednosti poizvedbe LUIS uporablja nabor namenov (pomenov, namenov) in entitet (bodisi vnaprej konfiguriranih s strani razvijalcev ali prevzetih in vnaprej oblikovanih »domen« – nekaj že pripravljenih knjižnic standardnih fraz, ki jih je pripravil Microsoft). 

Preprost primer: imate bota, ki vam daje vremensko napoved. Zanj bo namen prevod naravne zahteve v “akcijo” - zahtevo po vremenski napovedi, entiteti pa bosta čas in kraj. Tukaj je diagram, kako deluje namen CheckWeather za takega bota.

Namera
Essence
Primer naravne poizvedbe

CheckWeather
{"type": "location", "entity": "moscow"}
{"type": "builtin.datetimeV2.date", "entity": "future","resolution":"2020-05-30"}
Kakšno bo vreme jutri v Moskvi?

CheckWeather
{ "type": "date_range", "entity": "ta vikend" }
Pokaži mi napoved za ta vikend

Če želite združiti QnA Maker in LUIS, lahko uporabite Dispečer

S storitvami Azure pospešujemo razvoj: z uporabo platforme ustvarjamo chatbote in kognitivne storitve

Ko delate s programom QnA Maker in prejmete zahtevo od uporabnika, sistem določi, kolikšen odstotek verjetnosti se odgovor QnA ujema z zahtevo. Če je verjetnost velika, uporabnik preprosto dobi odgovor iz baze znanja podjetja, če je nizka, se lahko zahteva pošlje LUIS-u za pojasnilo. Uporaba dispečerja vam omogoča, da te logike ne programirate, ampak samodejno določite ta rob ločevanja zahtev in jih hitro razdelite.

Testiranje in objava bota

Za testiranje se uporablja druga lokalna aplikacija, Emulator ogrodja botov. Z uporabo emulatorja lahko komunicirate z botom in preverite sporočila, ki jih pošilja in prejema. Emulator prikazuje sporočila, kot bi bila prikazana v vmesniku spletnega klepeta, in beleži zahteve in odgovore JSON pri pošiljanju sporočil botu.

Primer uporabe emulatorja je predstavljen v tej predstavitvi, ki prikazuje ustvarjanje virtualnega pomočnika za BMW. Video govori tudi o novih pospeševalnikih za ustvarjanje chatbotov – predlogah:

S storitvami Azure pospešujemo razvoj: z uporabo platforme ustvarjamo chatbote in kognitivne storitve
https://youtu.be/u7Gql-ClcVA?t=564

Pri ustvarjanju svojih chatbotov lahko uporabite tudi predloge. 
Predloge vam omogočajo, da ne pišete standardnih funkcij botov na novo, ampak dodate že pripravljeno kodo kot "veščino". Primer je lahko delo s koledarjem, dogovarjanje za sestanke itd. Koda že pripravljenih veščin objavljeno na githubu.

Testiranje je bilo uspešno, bot je pripravljen, zdaj pa ga je treba objaviti in povezati kanale. Objava poteka z uporabo Azure, kot kanali pa se lahko uporabljajo messengerji ali socialna omrežja. Če nimate potrebnega kanala za vnos podatkov, ga lahko poiščete v ustrezni skupnosti na GitHab. 

Tudi za ustvarjanje polnopravnega chatbota kot vmesnika za komunikacijo z uporabnikom in kognitivnimi storitvami boste seveda potrebovali dodatne storitve Azure, kot so baze podatkov, brez strežnika (Azure Functions), pa tudi storitve LogicApp in morda , Mreža dogodkov.

S storitvami Azure pospešujemo razvoj: z uporabo platforme ustvarjamo chatbote in kognitivne storitve

Ocenjevanje in analitika

Za ovrednotenje uporabniške interakcije lahko uporabite tako vgrajeno analitiko storitve Azure Bot Service kot tudi posebno storitev Application Insights.

Posledično lahko zbirate informacije na podlagi naslednjih meril:

  • Koliko uporabnikov je dostopalo do bota iz različnih kanalov v izbranem časovnem obdobju.
  • Koliko uporabnikov, ki so poslali eno sporočilo, se je kasneje vrnilo in poslalo drugo.
  • Koliko dejanj je bilo poslanih in prejetih z uporabo vsakega kanala v določenem časovnem intervalu.

Z uporabo Application Insights lahko spremljate katero koli aplikacijo v Azure in zlasti chatbote, pri čemer pridobite dodatne podatke o vedenju uporabnikov, obremenitvah in odzivih chatbotov. Upoštevati je treba, da ima storitev Application Insights svoj vmesnik na portalu Azure.

Podatke, zbrane prek te storitve, lahko uporabite tudi za ustvarjanje dodatnih vizualizacij in analitičnih poročil v PowerBI. Lahko vzamemo primer takega poročila in predloge za PowerBI tukaj.

S storitvami Azure pospešujemo razvoj: z uporabo platforme ustvarjamo chatbote in kognitivne storitve

Hvala vsem za pozornost! V tem članku smo uporabili Material iz spletnega seminarja arhitektke Microsoft Azure Anne Fenyushine »Ko ljudje nimajo časa. Kako do 100-odstotne uporabe chatbotov in kognitivnih storitev za avtomatizacijo rutinskih procesov«, kjer smo nazorno pokazali, kaj so chatboti v Azureu in kakšni so scenariji njihove uporabe, prikazali pa smo tudi, kako ustvariti bota v QnA Makerju v 15 minutah in kako struktura poizvedbe je dešifrirana v LUIS. 

Ta webinar smo izdelali kot del spletnega maratona za razvijalce Dev Bootcamp. Šlo je za izdelke, ki pospešijo razvoj in razbremenijo nekaj rutinskega dela zaposlenih v podjetju z uporabo orodij za avtomatizacijo in že pripravljenih vnaprej konfiguriranih modulov Azure. Posnetki ostalih spletnih seminarjev, vključenih v maraton, so na voljo na povezavah:

Vir: www.habr.com

Dodaj komentar