Ubrzavamo razvoj koristeći Azure usluge: kreiramo chat botove i kognitivne usluge koristeći platformu

Zdravo, Habr! Danas ćemo vam pokazati kako koristiti Azure za rješavanje problema koji obično zahtijevaju ljudsku intervenciju. Agenti provode dosta vremena odgovarajući na ista pitanja, obrađujući telefonske pozive i tekstualne poruke. Chatbotovi automatiziraju komunikaciju i prepoznavanje i smanjuju opterećenje za ljude. Botovi se također koriste u Azure DevOps-u, gdje omogućavaju, na primjer, odobravanje izdanja, upravljanje izradama - pregled, pokretanje i zaustavljanje - direktno iz Slack-a ili Microsoft Teams-a. U suštini, chatbot donekle podsjeća na CLI, samo je interaktivan i omogućava programeru da ostane u kontekstu razgovora o chatu.

U ovom članku ćemo govoriti o alatima za kreiranje chatbota, pokazati kako se oni mogu poboljšati pomoću kognitivnih usluga i opisati kako ubrzati razvoj pomoću gotovih usluga u Azureu.

Ubrzavamo razvoj koristeći Azure usluge: kreiramo chat botove i kognitivne usluge koristeći platformu

Chatbotovi i kognitivne usluge: koje su sličnosti, a koje razlike?

Da biste kreirali botove u Microsoft Azureu, koristite uslugu Azure Bot i Bot Framework. Zajedno predstavljaju set softvera za pravljenje, testiranje, postavljanje i administriranje botova, koji vam omogućava da od gotovih modula kreirate kako jednostavne tako i napredne komunikacione sisteme sa govornom podrškom, prepoznavanjem prirodnog jezika i drugim mogućnostima.

Pretpostavimo da trebate implementirati jednostavan bot baziran na korporativnoj usluzi Q&A ili, obrnuto, kreirati funkcionalnog bota sa složenim, razgranatim komunikacijskim sistemom. Da biste to učinili, možete koristiti brojne alate, podijeljene u tri grupe: 

  1. Servisi za brzi razvoj dijalog interfejsa (botovi).
  2. Gotove kognitivne AI usluge za različite slučajeve upotrebe (prepoznavanje uzoraka, prepoznavanje govora, baza znanja i pretraga).
  3. Usluge za kreiranje i obuku AI modela.

Obično ljudi intuitivno brkaju "botove" i "kognitivne usluge" jer su oba koncepta zasnovana na principu komunikacije, a slučaj upotrebe botova i usluga uključuje dijaloge. Ali chat botovi rade s ključnim riječima i okidačima, a kognitivne usluge rade s proizvoljnim zahtjevima koje obično obrađuju ljudi: 

Ubrzavamo razvoj koristeći Azure usluge: kreiramo chat botove i kognitivne usluge koristeći platformu

Kognitivne usluge su još jedan način komunikacije s korisnikom, pomažući da se proizvoljni zahtjev pretvori u jasnu komandu i proslijeđuje je botu. 

Dakle, chatbotovi su aplikacije za rad sa zahtjevima, a kognitivne usluge su alati za inteligentnu analizu zahtjeva koji se pokreću zasebno, ali kojima chatbot može pristupiti, postajući „inteligentni“. 

Kreiranje chatbotova

Preporučeni dijagram dizajna za bot u Azureu je sljedeći: 

Ubrzavamo razvoj koristeći Azure usluge: kreiramo chat botove i kognitivne usluge koristeći platformu

Za dizajniranje i razvoj botova u Azureu koristite Bot Framework. Dostupno na GitHubu primjeri botova, mogućnosti okvira se mijenjaju, tako da morate uzeti u obzir verziju SDK-a koja se koristi u botovima.

Okvir pruža nekoliko opcija za kreiranje botova: korištenje klasičnog koda, alata komandne linije ili dijagrama toka. Posljednja opcija vizualizira dijaloge; za to možete koristiti upravitelja Bot Framework Composer. Izgrađen je na Bot Framework SDK kao alat za vizualni razvoj koji bi međudisciplinarni timovi mogli koristiti za kreiranje botova.

Ubrzavamo razvoj koristeći Azure usluge: kreiramo chat botove i kognitivne usluge koristeći platformu

Bot Framework Composer vam omogućava da koristite blokove za kreiranje strukture dijaloga sa kojom će bot raditi. Dodatno, možete kreirati trigere, odnosno ključne riječi na koje će bot reagirati tokom dijaloga. Na primjer, riječi “operater”, “krađa” ili “stop” i “dovoljno”.

U Bot Framework Composeru možete kreirati složene sisteme dijaloga koristeći Adaptive Dialogs. Dijalozi mogu koristiti i kognitivne usluge i kartice događaja (prilagodljive kartice):

Ubrzavamo razvoj koristeći Azure usluge: kreiramo chat botove i kognitivne usluge koristeći platformu

Nakon kreiranja, chatbot možete implementirati u pretplatu, a automatski pripremljena skripta će kreirati sve potrebne resurse: kognitivne usluge, plan aplikacije, uvid u aplikaciju, bazu podataka itd.

QnA Maker

Da biste kreirali jednostavne botove zasnovane na korporativnim bazama podataka pitanja i odgovora, možete koristiti kognitivnu uslugu QnA Maker. Implementiran kao jednostavan web čarobnjak, omogućava vam da unesete vezu do korporativne baze znanja (FAQ URL-ovi) ili da koristite bazu podataka dokumenata u *.doc ili *.pdf formatu kao osnovu. Nakon kreiranja indeksa, bot će automatski odabrati najprikladnije odgovore na pitanja korisnika.

Koristeći QnAMaker, takođe možete kreirati lance pitanja za pojašnjenje sa automatskim kreiranjem dugmadi, dopuniti bazu znanja metapodacima i dodatno obučiti uslugu tokom korišćenja.

Servis se može koristiti kao chatbot koji implementira samo ovu jednu funkciju, ili kao dio složenog chat bota koji koristi, ovisno o zahtjevu, druge AI usluge ili elemente Bot Frameworka.

Rad sa drugim kognitivnim servisima

Na Azure platformi postoji mnogo različitih kognitivnih usluga. Tehnički, ovo su nezavisni web servisi koji se mogu pozvati iz koda. Kao odgovor, servis šalje json određenog formata, koji se može koristiti u chatbotu.

Ubrzavamo razvoj koristeći Azure usluge: kreiramo chat botove i kognitivne usluge koristeći platformu
Najčešće upotrebe chatbotova su:

  1. Prepoznavanje teksta.
  2. Prepoznavanje kategorija slika Custom Vision Service koje je definirao programer (proizvodni slučaj: prepoznavanje da li zaposlenik nosi zaštitnu kapu, zaštitne naočale ili masku).
  3. Prepoznavanje lica (odličan slučaj upotrebe je provjera da li je ispitana osoba objavila svoje lice, ili recimo fotografiju psa ili fotografiju osobe drugog spola).
  4. Prepoznavanje govora.
  5. Analiza slike.
  6. Prevođenje (svi se sjećamo koliko je buke izazvalo simultano prevođenje u Skypeu).
  7. Provjera pravopisa i prijedlozi za ispravljanje grešaka.

LUIS

Takođe, možda će vam trebati za kreiranje botova LUIS (Language Understanding Intelligent Service). Ciljevi usluge:

  • Odredite da li korisnikova izjava ima smisla i da li je botov odgovor neophodan.
  • Smanjite napore da se prepiše korisnički govor (tekst) u komande razumljive botu.
  • Predvidjeti prave korisničke ciljeve/namjere i izvući ključne uvide iz fraza u dijalogu.
  • Dozvolite programeru da pokrene bot koristeći samo nekoliko primjera prepoznavanja značenja i naknadne dodatne obuke bota tokom rada.
  • Omogućite programeru da koristi vizualizaciju za procjenu kvaliteta transkripcije komande.
  • Pomozite u postepenim poboljšanjima u prepoznavanju istinskog cilja.

U stvari, glavni cilj LUIS-a je razumjeti sa određenom vjerovatnoćom šta je korisnik mislio i pretvoriti prirodni zahtjev u harmoničnu naredbu. Da bi prepoznao vrijednosti upita, LUIS koristi skup namjera (značenja, namjere) i entiteta (bilo unaprijed konfiguriranih od strane programera, ili preuzetih i unaprijed formiranih „domena“ – neke gotove biblioteke standardnih fraza koje je pripremio Microsoft). 

Jednostavan primjer: imate bota koji vam daje vremensku prognozu. Za njega će namjera biti prevođenje prirodnog zahtjeva u “akciju” - zahtjev za vremensku prognozu, a entiteti će biti vrijeme i mjesto. Evo dijagrama kako namjera CheckWeather funkcionira za takvog bota.

Namjera
Essence
Primjer prirodnog upita

CheckWeather
{"type": "location", "entity": "moscow"}
{"type": "builtin.datetimeV2.date", "entity": "future","resolution":"2020-05-30"}
Kakvo će vreme biti sutra u Moskvi?

CheckWeather
{ "type": "date_range", "entity": "ovaj vikend" }
Pokaži mi prognozu za ovaj vikend

Za kombinovanje QnA Maker i LUIS možete koristiti Dispečer

Ubrzavamo razvoj koristeći Azure usluge: kreiramo chat botove i kognitivne usluge koristeći platformu

Kada radite sa QnA Maker-om i primite zahtjev od korisnika, sistem određuje u kojem postotku vjerovatnoće odgovor od QnA odgovara zahtjevu. Ako je vjerovatnoća velika, korisniku se jednostavno daje odgovor iz korporativne baze znanja, a ako je mala, zahtjev se može poslati LUIS-u na pojašnjenje. Korišćenje Dispatchera vam omogućava da ne programirate ovu logiku, već da automatski odredite ovu ivicu razdvajanja zahteva i brzo ih distribuirate.

Testiranje i objavljivanje bota

Za testiranje se koristi druga lokalna aplikacija, Emulator bot okvira. Koristeći emulator, možete komunicirati s botom i provjeriti poruke koje on šalje i prima. Emulator prikazuje poruke onako kako bi se pojavile u web chat interfejsu i bilježi JSON zahtjeve i odgovore prilikom slanja poruka botu.

Primjer korištenja emulatora predstavljen je u ovom demo-u koji prikazuje kreiranje virtualnog asistenta za BMW. Video također govori o novim akceleratorima za kreiranje chatbota - šablona:

Ubrzavamo razvoj koristeći Azure usluge: kreiramo chat botove i kognitivne usluge koristeći platformu
https://youtu.be/u7Gql-ClcVA?t=564

Također možete koristiti šablone kada kreirate svoje chatbotove. 
Predlošci vam omogućavaju da ne pišete iznova standardne funkcije bota, već da dodate gotov kod kao "vještinu". Primjer može biti rad sa kalendarom, zakazivanje sastanaka itd. Kod gotovih vještina objavljeno na github-u.

Testiranje je bilo uspješno, bot je spreman, a sada ga treba objaviti i povezati kanale. Objavljivanje se vrši pomoću Azurea, a kao kanali se mogu koristiti instant messengeri ili društvene mreže. Ako nemate potreban kanal za unos podataka, možete ga potražiti u odgovarajućoj zajednici na GitHabu. 

Takođe, da biste kreirali punopravni chatbot kao interfejs za komunikaciju sa korisnikom i kognitivnim servisima, biće vam, naravno, potrebni dodatni Azure servisi, kao što su baze podataka, bez servera (Azure funkcije), kao i LogicApp usluge i, eventualno, , Mreža događaja.

Ubrzavamo razvoj koristeći Azure usluge: kreiramo chat botove i kognitivne usluge koristeći platformu

Procjena i analitika

Da biste procijenili interakciju korisnika, možete koristiti i ugrađenu analitiku usluge Azure Bot i posebnu uslugu Application Insights.

Kao rezultat, možete prikupljati informacije na osnovu sljedećih kriterija:

  • Koliko je korisnika pristupilo botu sa različitih kanala tokom odabranog vremenskog perioda.
  • Koliko se korisnika koji su poslali jednu poruku kasnije vratilo i poslalo drugu.
  • Koliko je radnji poslano i primljeno korištenjem svakog kanala tokom određenog vremenskog intervala.

Koristeći Application Insights, možete pratiti bilo koju aplikaciju u Azure-u, a posebno chatbotove, dobijajući dodatne podatke o ponašanju korisnika, učitavanju i reakcijama chatbot-a. Treba napomenuti da usluga Application Insights ima svoje sučelje na Azure portalu.

Također možete koristiti podatke prikupljene putem ove usluge za kreiranje dodatnih vizualizacija i analitičkih izvještaja u PowerBI-u. Može se uzeti primjer takvog izvještaja i šablona za PowerBI ovdje.

Ubrzavamo razvoj koristeći Azure usluge: kreiramo chat botove i kognitivne usluge koristeći platformu

Hvala svima na pažnji! U ovom članku smo koristili material sa webinara Microsoft Azure arhitektice Ane Fenjušine „Kada ljudi nemaju vremena. Kako 100% koristiti chat botove i kognitivne usluge za automatizaciju rutinskih procesa”, gdje smo jasno pokazali šta su chatbotovi u Azureu i koji su scenariji za njihovu upotrebu, a također smo demonstrirali kako napraviti bota u QnA Maker-u za 15 minuta i kako se struktura upita je dešifrovana u LUIS-u. 

Ovaj webinar smo napravili kao dio online maratona za programere Dev Bootcamp. Radilo se o proizvodima koji ubrzavaju razvoj i oslobađaju dio rutinskog radnog opterećenja zaposlenih u kompaniji koristeći alate za automatizaciju i gotove unaprijed konfigurirane Azure module. Snimci ostalih webinara uključenih u maraton dostupni su na sljedećim linkovima:

izvor: www.habr.com

Dodajte komentar