Accelerăm dezvoltarea utilizând serviciile Azure: creăm chatbot și servicii cognitive folosind platforma

Bună, Habr! Astăzi vă vom arăta cum să utilizați Azure pentru a rezolva probleme care necesită, de obicei, intervenția umană. Agenții petrec mult timp răspunzând la aceleași întrebări, gestionând apeluri telefonice și mesaje text. Chatbot-urile automatizează comunicarea și recunoașterea și reduc sarcina asupra oamenilor. Boții sunt, de asemenea, folosiți în Azure DevOps, unde permit, de exemplu, să aprobe versiuni, să gestioneze versiuni - vizualizați, porniți și opriți - direct din Slack sau Microsoft Teams. În esență, un chatbot amintește oarecum de un CLI, doar interactiv și permite dezvoltatorului să rămână în contextul discuției pe chat.

În acest articol, vom vorbi despre instrumente pentru crearea de chatbot, vom arăta cum pot fi îmbunătățiți cu servicii cognitive și vom descrie cum să accelerăm dezvoltarea cu servicii gata făcute în Azure.

Accelerăm dezvoltarea utilizând serviciile Azure: creăm chatbot și servicii cognitive folosind platforma

Chatbot și servicii cognitive: care sunt asemănările și care sunt diferențele?

Pentru a crea boți în Microsoft Azure, utilizați Azure Bot Service și Bot Framework. Împreună, ele reprezintă un set de software pentru construirea, testarea, implementarea și administrarea boților, care vă permite să creați din module gata făcute atât sisteme de comunicare simple, cât și avansate, cu suport de vorbire, recunoaștere a limbajului natural și alte capabilități.

Să presupunem că trebuie să implementați un bot simplu bazat pe un serviciu corporativ de întrebări și răspunsuri sau, dimpotrivă, să creați un bot funcțional cu un sistem de comunicare complex, ramificat. Pentru a face acest lucru, puteți utiliza o serie de instrumente, împărțite în trei grupuri: 

  1. Servicii pentru dezvoltarea rapidă a interfețelor de dialog (boți).
  2. Servicii de inteligență artificială cognitivă gata făcute pentru diferite cazuri de utilizare (recunoaștere a modelelor, recunoaștere a vorbirii, bază de cunoștințe și căutare).
  3. Servicii pentru crearea și instruirea modelelor AI.

De obicei, oamenii confundă în mod intuitiv „boții” și „servicii cognitive”, deoarece ambele concepte se bazează pe principiul comunicării, iar cazul de utilizare pentru boți și servicii implică dialoguri. Dar chatboții lucrează cu cuvinte cheie și declanșatoare, iar serviciile cognitive funcționează cu solicitări arbitrare care sunt de obicei procesate de oameni: 

Accelerăm dezvoltarea utilizând serviciile Azure: creăm chatbot și servicii cognitive folosind platforma

Serviciile cognitive sunt o altă modalitate de a comunica cu utilizatorul, ajutând la transformarea unei cereri arbitrare într-o comandă clară și transmiterea acesteia către bot. 

Astfel, chatboții sunt aplicații de lucru cu solicitări, iar serviciile cognitive sunt instrumente de analiză inteligentă a cererilor care sunt lansate separat, dar pe care chatbot-ul le poate accesa, devenind „inteligente”. 

Crearea de chatbot

Diagrama de proiectare recomandată pentru un bot în Azure este următoarea: 

Accelerăm dezvoltarea utilizând serviciile Azure: creăm chatbot și servicii cognitive folosind platforma

Pentru a proiecta și dezvolta boți în Azure, utilizați Cadrul Bot. Disponibil pe GitHub exemple de roboți, capabilitățile cadrului se modifică, așa că este necesar să se țină cont de versiunea SDK-ului care este utilizată în boți.

Cadrul oferă mai multe opțiuni pentru crearea de roboți: folosind codul clasic, instrumente de linie de comandă sau diagrame de flux. Ultima opțiune vizualizează dialoguri; pentru aceasta puteți folosi managerul Bot Framework Composer. A fost construit pe SDK-ul Bot Framework ca instrument de dezvoltare vizuală pe care echipele interdisciplinare l-ar putea folosi pentru a crea roboți.

Accelerăm dezvoltarea utilizând serviciile Azure: creăm chatbot și servicii cognitive folosind platforma

Bot Framework Composer vă permite să utilizați blocuri pentru a crea o structură de dialog cu care botul va funcționa. În plus, puteți crea declanșatoare, adică cuvinte cheie la care botul va reacționa în timpul dialogului. De exemplu, cuvintele „operator”, „furt” sau „oprire” și „destul”.

În Bot Framework Composer, puteți crea sisteme complexe de dialog folosind Dialoguri adaptive. Dialogurile pot folosi atât servicii cognitive, cât și carduri de evenimente (Carduri adaptive):

Accelerăm dezvoltarea utilizând serviciile Azure: creăm chatbot și servicii cognitive folosind platforma

După creare, puteți implementa chatbot-ul într-un abonament, iar un script pregătit automat va crea toate resursele necesare: servicii cognitive, plan de aplicație, Application Insights, bază de date și așa mai departe.

QnA Maker

Pentru a crea roboți simpli bazați pe baze de date corporative de întrebări și răspunsuri, puteți utiliza serviciul cognitiv QnA Maker. Implementat ca un simplu expert web, vă permite să introduceți un link către o bază de cunoștințe corporative (FAQ Urls) sau să utilizați ca bază o bază de date de documente în format *.doc sau *.pdf. După crearea indexului, botul va selecta automat cele mai potrivite răspunsuri la întrebările utilizatorului.

Folosind QnAMaker, puteți crea și lanțuri de întrebări clarificatoare cu crearea automată a butoanelor, puteți completa baza de cunoștințe cu metadate și puteți instrui în continuare serviciul în timpul utilizării.

Serviciul poate fi folosit ca un chatbot care implementează doar această funcție, sau ca parte a unui chatbot complex care utilizează, în funcție de cerere, alte servicii AI sau elemente ale Bot Framework-ului.

Lucrul cu alte servicii cognitive

Există multe servicii cognitive diferite pe platforma Azure. Din punct de vedere tehnic, acestea sunt servicii web independente care pot fi apelate din cod. Ca răspuns, serviciul trimite json într-un anumit format, care poate fi folosit în chatbot.

Accelerăm dezvoltarea utilizând serviciile Azure: creăm chatbot și servicii cognitive folosind platforma
Cele mai frecvente utilizări ale chatbot-urilor sunt:

  1. Recunoașterea textului.
  2. Recunoașterea categoriilor de imagini Custom Vision Service definite de dezvoltator (caz de producție: recunoașterea dacă un angajat poartă o cască de protecție, ochelari de protecție sau mască).
  3. Recunoașterea feței (un caz de utilizare excelent este verificarea dacă persoana chestionată și-a postat propria față sau, să zicem, o fotografie a unui câine sau o fotografie a unei persoane de alt sex).
  4. Recunoaștere a vorbirii.
  5. Analiza imaginii.
  6. Traducere (ne amintim cu toții cât de mult zgomot a provocat traducerea simultană în Skype).
  7. Verificare ortografică și sugestii pentru corectarea erorilor.

LUIS

De asemenea, pentru a crea boți este posibil să aveți nevoie LUIS (Serviciul inteligent de înțelegere a limbii). Obiectivele serviciului:

  • Stabiliți dacă declarația utilizatorului are sens și dacă răspunsul botului este necesar.
  • Reduceți eforturile de a transcrie vorbirea utilizatorului (text) în comenzi ușor de înțeles pentru bot.
  • Preziceți adevăratele obiective/intenții ale utilizatorului și extrageți informații cheie din frazele din dialog.
  • Permiteți dezvoltatorului să lanseze botul folosind doar câteva exemple de recunoaștere a semnificațiilor și antrenamentul suplimentar ulterior al botului în timpul funcționării.
  • Permiteți dezvoltatorului să folosească vizualizarea pentru a evalua calitatea transcripției comenzii.
  • Asistență la îmbunătățirea progresivă a recunoașterii adevărate a țintei.

De fapt, scopul principal al LUIS este de a înțelege cu o anumită probabilitate ce a vrut să spună utilizatorul și de a transforma o cerere firească într-o comandă armonioasă. Pentru a recunoaște valorile de interogare, LUIS utilizează un set de intenții (sensuri, intenții) și entități (fie preconfigurate de dezvoltatori, fie „domenii” preluate și preformate - niște biblioteci gata făcute de fraze standard pregătite de Microsoft). 

Un exemplu simplu: aveți un bot care vă oferă o prognoză meteo. Pentru el, intenția va fi traducerea unei cereri naturale într-o „acțiune” - o solicitare pentru o prognoză meteo, iar entitățile vor fi timpul și locul. Iată o diagramă a modului în care funcționează intenția CheckWeather pentru un astfel de bot.

Intenție
esență
Exemplu de interogare naturală

Verificați vremea
{"type": "location", "entity": "moscow"}
{"type": "builtin.datetimeV2.date", "entity": "future","resolution":"2020-05-30"}
Cum va fi vremea mâine la Moscova?

Verificați vremea
{ „type”: „date_range”, „entity”: „în acest weekend” }
Arată-mi prognoza pentru acest weekend

Pentru a combina QnA Maker și LUIS puteți utiliza dispecer

Accelerăm dezvoltarea utilizând serviciile Azure: creăm chatbot și servicii cognitive folosind platforma

Când lucrați cu QnA Maker și primiți o solicitare de la un utilizator, sistemul determină ce procent de probabilitate se potrivește cu cererea răspunsul de la QnA. Dacă probabilitatea este mare, utilizatorului i se oferă pur și simplu un răspuns din baza de cunoștințe corporative; dacă este scăzută, cererea poate fi trimisă la LUIS pentru clarificare. Utilizarea Dispatcher vă permite să nu programați această logică, ci să determinați automat această margine a separării cererilor și să le distribuiți rapid.

Testarea și publicarea botului

O altă aplicație locală este utilizată pentru testare, Emulator de cadru bot. Folosind emulatorul, puteți comunica cu botul și puteți verifica mesajele pe care le trimite și le primește. Emulatorul afișează mesajele așa cum ar apărea într-o interfață de chat web și înregistrează solicitările și răspunsurile JSON atunci când trimite mesaje botului.

Un exemplu de utilizare a emulatorului este prezentat în această demonstrație, care arată crearea unui asistent virtual pentru BMW. Videoclipul vorbește și despre noi acceleratoare pentru crearea de chatbot - șabloane:

Accelerăm dezvoltarea utilizând serviciile Azure: creăm chatbot și servicii cognitive folosind platforma
https://youtu.be/u7Gql-ClcVA?t=564

De asemenea, puteți utiliza șabloane atunci când vă creați chatbot-urile. 
Șabloanele vă permit să nu scrieți din nou funcții bot standard, ci să adăugați cod gata făcut ca „aptitudine”. Un exemplu ar putea fi lucrul cu un calendar, programarea, etc. Codul abilităților gata făcute publicat pe github.

Testarea a avut succes, bot-ul este gata, iar acum trebuie publicat și canalele conectate. Publicarea se realizează folosind Azure, iar mesagerii sau rețelele sociale pot fi folosite ca canale. Dacă nu aveți canalul necesar pentru introducerea datelor, îl puteți căuta în comunitatea corespunzătoare de pe GitHab. 

De asemenea, pentru a crea un chatbot cu drepturi depline ca interfață pentru comunicarea cu utilizatorul și cu serviciile cognitive, veți avea nevoie, desigur, de servicii suplimentare Azure, cum ar fi baze de date, serverless (Azure Functions), precum și servicii LogicApp și, eventual , Grilă de evenimente.

Accelerăm dezvoltarea utilizând serviciile Azure: creăm chatbot și servicii cognitive folosind platforma

Evaluare și analiză

Pentru a evalua interacțiunea utilizatorului, puteți utiliza atât analiza încorporată a serviciului Azure Bot, cât și serviciul special Application Insights.

Ca urmare, puteți colecta informații pe baza următoarelor criterii:

  • Câți utilizatori au accesat botul de pe diverse canale în perioada de timp selectată.
  • Câți utilizatori care au trimis un mesaj au revenit mai târziu și au trimis altul.
  • Câte acțiuni au fost trimise și primite folosind fiecare canal în intervalul de timp specificat.

Folosind Application Insights, puteți monitoriza orice aplicație din Azure și, în special, chatbot, obținând date suplimentare despre comportamentul utilizatorilor, încărcări și reacții chatbot. Trebuie remarcat faptul că serviciul Application Insights are propria interfață în portalul Azure.

De asemenea, puteți utiliza datele colectate prin acest serviciu pentru a crea vizualizări suplimentare și rapoarte analitice în PowerBI. Un exemplu de astfel de raport și șablon pentru PowerBI poate fi luat aici.

Accelerăm dezvoltarea utilizând serviciile Azure: creăm chatbot și servicii cognitive folosind platforma

Vă mulțumim tuturor pentru atenție! În acest articol am folosit material din webinarul realizat de arhitectul Microsoft Azure Anna Fenyushina „Când oamenii nu au timp. Cum să utilizați 100% chatbot-uri și serviciile cognitive pentru a automatiza procesele de rutină”, unde am arătat clar ce sunt chatboții în Azure și care sunt scenariile pentru utilizarea lor și am demonstrat, de asemenea, cum să creați un bot în QnA Maker în 15 minute și cum Structura interogării este descifrată în LUIS. 

Am realizat acest webinar ca parte a maratonului online pentru dezvoltatori Dev Bootcamp. Era vorba despre produse care accelerează dezvoltarea și ușurează o parte din încărcarea de rutină a angajaților companiei, folosind instrumente de automatizare și module Azure preconfigurate gata făcute. Înregistrările altor seminarii web incluse în maraton sunt disponibile la următoarele link-uri:

Sursa: www.habr.com

Adauga un comentariu