Ubrzavamo razvoj pomoću Azure usluga: stvaramo chatbotove i kognitivne usluge pomoću platforme

Pozdrav, Habr! Danas ćemo vam pokazati kako koristiti Azure za rješavanje problema koji obično zahtijevaju ljudsku intervenciju. Agenti provode puno vremena odgovarajući na ista pitanja, telefonirajući i sms porukama. Chatbotovi automatiziraju komunikaciju i prepoznavanje te smanjuju opterećenje ljudi. Botovi se također koriste u Azure DevOps, gdje omogućuju, na primjer, odobravanje izdanja, upravljanje nadogradnjom - pregled, pokretanje i zaustavljanje - izravno iz Slacka ili Microsoft Teamsa. U biti, chatbot donekle podsjeća na CLI, samo je interaktivan i omogućuje razvojnom programeru da ostane u kontekstu chat rasprave.

U ovom ćemo članku govoriti o alatima za stvaranje chatbota, pokazati kako se oni mogu poboljšati kognitivnim uslugama i opisati kako ubrzati razvoj gotovim uslugama u Azureu.

Ubrzavamo razvoj pomoću Azure usluga: stvaramo chatbotove i kognitivne usluge pomoću platforme

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

Za stvaranje botova u Microsoft Azureu koristite Azure Bot Service i Bot Framework. Zajedno predstavljaju skup softvera za izgradnju, testiranje, implementaciju i administriranje botova, koji vam omogućuje stvaranje jednostavnih i naprednih komunikacijskih sustava s govornom podrškom, prepoznavanjem prirodnog jezika i drugim mogućnostima iz gotovih modula.

Pretpostavimo da trebate implementirati jednostavnog bota temeljenog na korporativnoj usluzi pitanja i odgovora ili, obrnuto, stvoriti funkcionalnog bota sa složenim, razgranatim komunikacijskim sustavom. Da biste to učinili, možete koristiti niz alata, podijeljenih u tri skupine: 

  1. Usluge za brzi razvoj dijaloških sučelja (botovi).
  2. Gotovi kognitivni AI servisi za različite slučajeve upotrebe (prepoznavanje uzoraka, prepoznavanje govora, baza znanja i pretraživanje).
  3. Usluge za izradu i obuku AI modela.

Tipično, ljudi intuitivno brkaju "botove" i "kognitivne usluge" jer se oba koncepta temelje na načelu komunikacije, a slučaj upotrebe za botove i usluge uključuje dijaloge. Ali chatbotovi rade s ključnim riječima i okidačima, a kognitivne usluge rade s proizvoljnim zahtjevima koje obično obrađuju ljudi: 

Ubrzavamo razvoj pomoću Azure usluga: stvaramo chatbotove i kognitivne usluge pomoću platforme

Kognitivne usluge još su jedan način komunikacije s korisnikom, pomažući pretvoriti proizvoljan zahtjev u jasnu naredbu i proslijediti je botu. 

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

Stvaranje chatbota

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

Ubrzavamo razvoj pomoću Azure usluga: stvaramo chatbotove i kognitivne usluge pomoću platforme

Za dizajn i razvoj robota u Azureu koristite Bot Framework. Dostupno na GitHubu primjeri botova, mogućnosti okvira se mijenjaju, pa je potrebno voditi računa o verziji SDK-a koja se koristi u botovima.

Okvir nudi nekoliko opcija za stvaranje botova: korištenje klasičnog koda, alata naredbenog retka ili dijagrama toka. Posljednja opcija vizualizira dijaloge; za to možete koristiti upravitelja Bot Framework Composer. Izgrađen je na Bot Framework SDK-u kao vizualni razvojni alat koji bi međudisciplinarni timovi mogli koristiti za stvaranje botova.

Ubrzavamo razvoj pomoću Azure usluga: stvaramo chatbotove i kognitivne usluge pomoću platforme

Bot Framework Composer omogućuje vam korištenje blokova za stvaranje strukture dijaloga s kojom će bot raditi. Dodatno, možete kreirati okidače, odnosno ključne riječi na koje će bot reagirati tijekom dijaloga. Na primjer, riječi "operator", "krađa" ili "stop" i "dosta".

U Bot Framework Composeru možete stvarati složene dijaloške sustave pomoću Prilagodljivi dijalozi. Dijalozi mogu koristiti i kognitivne usluge i kartice događaja (Adaptive Cards):

Ubrzavamo razvoj pomoću Azure usluga: stvaramo chatbotove i kognitivne usluge pomoću platforme

Nakon izrade, možete implementirati chatbot u pretplati, a automatski pripremljena skripta će kreirati sve potrebne resurse: kognitivne usluge, plan aplikacije, uvid u aplikaciju, bazu podataka i tako dalje.

Izrađivač QnA

Za izradu jednostavnih robota na temelju korporativnih baza podataka pitanja i odgovora, možete koristiti kognitivnu uslugu QnA Maker. Implementiran kao jednostavan web čarobnjak, omogućuje vam da unesete vezu na korporativnu bazu znanja (FAQ Urls) ili koristite bazu podataka dokumenata u *.doc ili *.pdf formatu kao osnovu. Nakon izrade indeksa, bot će automatski odabrati najprikladnije odgovore na pitanja korisnika.

Korištenjem QnAMakera također možete stvoriti lance razjašnjavajućih pitanja s automatskim kreiranjem gumba, dopuniti bazu znanja metapodacima i dodatno uvježbati uslugu tijekom korištenja.

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

Rad s drugim kognitivnim uslugama

Postoji mnogo različitih kognitivnih usluga na platformi Azure. Tehnički, to su neovisne web usluge koje se mogu pozvati iz koda. Kao odgovor, usluga šalje json određenog formata, koji se može koristiti u chatbotu.

Ubrzavamo razvoj pomoću Azure usluga: stvaramo chatbotove i kognitivne usluge pomoću platforme
Najčešće upotrebe chatbota su:

  1. Prepoznavanje teksta.
  2. Prepoznavanje kategorija slika Custom Vision Service koje je definirao programer (slučaj proizvodnje: prepoznavanje nosi li zaposlenik kacigu, naočale ili masku).
  3. Prepoznavanje lica (izvrsna upotreba je provjera je li anketirana osoba objavila svoje lice ili, recimo, fotografiju psa ili fotografiju osobe drugog spola).
  4. Prepoznavanje govora.
  5. Analiza slike.
  6. Prijevod (svi se sjećamo koliko je buke stvarao simultani prijevod u Skypeu).
  7. Provjera pravopisa i prijedlozi za ispravljanje pogrešaka.

LUIS

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

  • Odredite ima li korisnikova izjava smisla i je li odgovor bota potreban.
  • Smanjite napore za prepisivanje korisničkog govora (teksta) u naredbe razumljive botu.
  • Predvidite prave korisničke ciljeve/namjere i izvucite ključne uvide iz fraza u dijalogu.
  • Dopustite razvojnom programeru da pokrene bot koristeći samo nekoliko primjera prepoznavanja značenja i naknadnu dodatnu obuku bota tijekom rada.
  • Omogućite razvojnom programeru korištenje vizualizacije za procjenu kvalitete transkripcije naredbi.
  • Pomozite u inkrementalnim poboljšanjima u pravom prepoznavanju ciljeva.

Zapravo, glavni cilj LUIS-a je razumjeti s određenom vjerojatnošću što je korisnik mislio i pretvoriti prirodni zahtjev u skladnu naredbu. Za prepoznavanje vrijednosti upita, LUIS koristi skup namjera (značenja, namjere) i entiteta (bilo unaprijed konfiguriranih od strane programera, ili preuzetih i unaprijed oblikovanih "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 vremenskom prognozom, a entiteti će biti vrijeme i mjesto. Evo dijagrama kako CheckWeather namjera radi za takvog bota.

Namjera
suština
Primjer prirodnog upita

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

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

Za kombiniranje QnA Maker-a i LUIS-a možete koristiti Dispečer

Ubrzavamo razvoj pomoću Azure usluga: stvaramo chatbotove i kognitivne usluge pomoću platforme

Kada radite s QnA Makerom i primite zahtjev od korisnika, sustav određuje koliki je postotak vjerojatnosti da odgovor QnA odgovara zahtjevu. Ako je vjerojatnost visoka, korisnik jednostavno dobiva odgovor iz korporativne baze znanja; ako je niska, zahtjev se može poslati LUIS-u radi pojašnjenja. Korištenje dispečera omogućuje vam da ne programirate ovu logiku, već da automatski odredite ovaj rub razdvajanja zahtjeva i brzo ih distribuirate.

Testiranje i objavljivanje bota

Druga lokalna aplikacija koristi se za testiranje, Emulator bot okvira. Pomoću emulatora možete komunicirati s botom i provjeriti poruke koje šalje i prima. Emulator prikazuje poruke onako kako bi se pojavile u sučelju za web chat i bilježi JSON zahtjeve i odgovore prilikom slanja poruka botu.

Primjer korištenja emulatora prikazan je u ovom demou, koji prikazuje izradu virtualnog pomoćnika za BMW. Video govori i o novim akceleratorima za izradu chatbota – predlošcima:

Ubrzavamo razvoj pomoću Azure usluga: stvaramo chatbotove i kognitivne usluge pomoću platforme
https://youtu.be/u7Gql-ClcVA?t=564

Također možete koristiti predloške pri izradi svojih chatbota. 
Predlošci vam omogućuju da ne pišete standardne funkcije bota iznova, već da dodate gotov kod kao "vještinu". Primjer može biti rad s kalendarom, dogovaranje sastanaka i sl. Kodeks gotovih vještina objavljen na githubu.

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

Također, da biste kreirali punopravni chatbot kao sučelje za komunikaciju s korisnikom i kognitivne usluge, trebat će vam, naravno, dodatne Azure usluge, poput baza podataka, bez poslužitelja (Azure Functions), kao i usluge LogicApp i, eventualno, , Mreža događaja.

Ubrzavamo razvoj pomoću Azure usluga: stvaramo chatbotove i kognitivne usluge pomoću platforme

Procjena i analitika

Za procjenu korisničke interakcije možete koristiti i ugrađenu analitiku usluge Azure Bot i posebnu uslugu Application Insights.

Kao rezultat toga, možete prikupljati podatke na temelju sljedećih kriterija:

  • Koliko je korisnika pristupilo botu s različitih kanala tijekom odabranog vremenskog razdoblja.
  • Koliko se korisnika koji su poslali jednu poruku kasnije vratilo i poslalo drugu.
  • Koliko je radnji poslano i primljeno korištenjem svakog kanala tijekom navedenog vremenskog intervala.

Koristeći Application Insights, možete pratiti bilo koju aplikaciju u Azureu, a posebno chatbotove, dobivajući dodatne podatke o ponašanju korisnika, opterećenjima i reakcijama chatbota. Treba napomenuti da Application Insights servis ima svoje sučelje na Azure portalu.

Također možete koristiti podatke prikupljene putem ove usluge za izradu dodatnih vizualizacija i analitičkih izvješća u PowerBI-u. Može se uzeti primjer takvog izvješća i predloška za PowerBI здесь.

Ubrzavamo razvoj pomoću Azure usluga: stvaramo chatbotove i kognitivne usluge pomoću platforme

Hvala svima na pažnji! U ovom smo članku koristili materijal s webinara Microsoft Azure arhitektice Anne Fenyushine „Kada ljudi nemaju vremena. Kako 100% koristiti chatbotove i kognitivne servise za automatizaciju rutinskih procesa”, gdje smo jasno pokazali što su chatbotovi u Azureu i koji su scenariji za njihovo korištenje, a također smo pokazali kako u QnA Makeru napraviti bota u 15 minuta i kako struktura upita je dešifrirana u LUIS-u. 

Ovaj webinar smo napravili u sklopu online maratona za programere Dev Bootcamp. Radilo se o proizvodima koji ubrzavaju razvoj i oslobađaju dijela rutinskog posla zaposlenika tvrtke koristeći alate za automatizaciju i gotove unaprijed konfigurirane Azure module. Snimke ostalih webinara uključenih u maraton dostupne su na sljedećim poveznicama:

Izvor: www.habr.com

Dodajte komentar