Accelerăm dezvoltarea cu ajutorul serviciilor Azure: creăm chatboți și servicii cognitive folosind platforma.

Salut, Habr! Astăzi vom discuta despre cum să abordăm cu Azure sarcini care de obicei necesită intervenția umană. Operatorii petrec mult timp răspunzând la aceleași întrebări, gestionând apeluri telefonice și mesaje text. Chatboții automatizează comunicarea și recunoașterea, permițându-le oamenilor să își reducă povara de muncă. De asemenea, boții sunt utilizați în Azure DevOps, unde permit, de exemplu, aprobarea versiunilor, gestionarea compilațiilor - vizualizarea, pornirea și oprirea - direct din Slack sau Microsoft Teams. Practic, un chatobot este oarecum asemănător cu un CLI, doar că interactiv, și permite dezvoltatorului să nu părăsească contextul discuției în chat.

În acest articol vom vorbi despre instrumentele pentru crearea chatboților, vom arăta cum pot fi îmbunătățite cu ajutorul serviciilor cognitive și vom descrie cum să accelerăm dezvoltarea utilizând serviciile gata disponibile în Azure.

Accelerăm dezvoltarea cu ajutorul serviciilor Azure: creăm chatboți și servicii cognitive folosind platforma.

Chatboți și servicii cognitive: ce au în comun și care sunt diferențele.

Pentru a crea boți în Microsoft Azure se utilizează serviciul Azure Bot și platforma Bot Framework. Împreună, acestea reprezintă un set de software pentru construire, testare, desfășurare și administrare a boților, permițând crearea de sisteme de comunicare simple sau avansate cu suport pentru recunoașterea vocală, procesarea limbajului natural și alte funcționalități.

Să presupunem că trebuie să implementați un bot simplu pe baza unui serviciu de întrebări și răspunsuri corporativ sau, dimpotrivă, să creați un bot funcțional cu un sistem complex de comunicare. Pentru aceasta, puteți utiliza o gamă de instrumente, împărțite în mod convențional în trei grupuri: 

  1. Servicii pentru dezvoltarea rapidă a interfețelor de dialog (boți).
  2. Servicii cognitive AI gata pentru diferite scenarii de utilizare (recunoașterea imaginilor, a vocii, bază de cunoștințe și căutare).
  3. Servicii pentru crearea și antrenarea modelelor de AI.

În general, oamenii amestecă intuitiv botii și serviciile cognitive deoarece ambele concepte se bazează pe principiul comunicării, iar în scenariile de utilizare a boților și serviciilor există dialoguri. Dar chatboții lucrează cu cuvinte cheie și declanșatoare, iar serviciile cognitive - cu cereri arbitrare, care sunt de obicei procesate de oameni: 

Accelerăm dezvoltarea cu ajutorul serviciilor Azure: creăm chatboți și servicii cognitive folosind platforma.

Serviciile cognitive reprezintă o altă modalitate de comunicare cu utilizatorul, ajutând la conversia unei cereri arbitrare într-o comandă clară și la transmiterea acesteia ulterior botului. 

Astfel, chatbot-urile sunt aplicații pentru gestionarea cererilor, iar serviciile cognitive sunt instrumente de analiză inteligentă a cererilor, care sunt lansate separat, dar la care chatbot-ul poate apela, devenind «inteligent». 

Crearea chatbot-urilor

Schema recomandată pentru proiectarea botului în Azure arată astfel: 

Accelerăm dezvoltarea cu ajutorul serviciilor Azure: creăm chatboți și servicii cognitive folosind platforma.

Pentru proiectarea și dezvoltarea boturilor în Azure se utilizează Bot Framework. Pe GitHub există exemple de boturi, funcționalitățile framework-ului se schimbă, de aceea este necesar să se ia în considerare versiunea SDK folosită în boturi.

Framework-ul preconizează mai multe moduri de a crea boturi: prin cod clasic, instrumente de linie de comandă sau diagrame de blocuri. Ultima variantă vizualizează dialogurile, pentru aceasta se poate folosi managerul Bot Framework Composer. Acesta a fost creat pe baza SDK-ului Bot Framework ca un instrument vizual de dezvoltare pe care echipe interdisciplinare ar putea să-l folosească pentru a crea boturi.

Accelerăm dezvoltarea cu ajutorul serviciilor Azure: creăm chatboți și servicii cognitive folosind platforma.

Bot Framework Composer permite, cu ajutorul blocurilor, să creeze structura dialogului cu care va lucra botul. În plus, se pot crea declanșatoare, adică cuvinte cheie la care botul va reacționa în timpul dialogului. De exemplu, la cuvintele „operator”, „furt” sau „stop” și „îndeajuns”.

În Bot Framework Composer se poate crea un sistem complex de dialoguri, utilizând Dialoguri Adaptive. Dialogurile pot folosi atât servicii cognitive, cât și carduri adaptive (Adaptive Cards):

Accelerăm dezvoltarea cu ajutorul serviciilor Azure: creăm chatboți și servicii cognitive folosind platforma.

După crearea acestora, chatbot-ul poate fi desfășurat în abonament, scriptul pregătit automat va crea toate resursele necesare: servicii cognitive, plan de aplicație, Application Insights, bază de date și altele.

QnA Maker

Pentru crearea unor boturi simple bazate pe baze de date corporative de întrebări și răspunsuri, se poate folosi serviciul cognitiv QnA Maker. Realizat sub formă de un simplu wizard web, acesta permite introducerea unui link către baza de cunoștințe corporative (FAQ Urls) sau folosirea unei baze de documente în format *.doc sau *.pdf. După crearea indexului, botul va selecta singur cele mai potrivite răspunsuri la întrebările utilizatorului.

Cu ajutorul QnAMaker, este posibil să creați, de asemenea, lanțuri de întrebări suplimentare cu generarea automată a butoanelor, să completați baza de cunoștințe cu metadate și să îmbunătățiți serviciul pe parcursul utilizării.

Serviciul poate fi utilizat ca un chatbot care implementează doar această funcție sau ca parte a unui chatbot complex care folosește, în funcție de solicitare, și alte servicii AI sau elemente din Bot Framework.

Lucrul cu alte servicii cognitive

Pe platforma Azure există multe servicii cognitive diferite. Tehnic, acestea sunt servicii web autonome care pot fi apelate din cod. Ca răspuns, serviciul trimite un JSON de un anumit format, care poate fi utilizat în chatbot.

Accelerăm dezvoltarea cu ajutorul serviciilor Azure: creăm chatboți și servicii cognitive folosind platforma.
Cele mai frecvent utilizate în chatboți sunt:

  1. Recunoașterea textului.
  2. Recunoașterea categoriilor de imagini definite de dezvoltator prin Custom Vision Service (caz de utilizare: recunoașterea, dacă angajatul poartă cască, ochelari de protecție sau mască).
  3. Recunoașterea fețelor (un caz excelent de utilizare — verificarea dacă persoana care completează chestionarul este aceeași cu cea din fotografie sau, de exemplu, o fotografie cu un câine sau cu o persoană de sex opus).
  4. Recunoașterea vorbirii.
  5. Analiza imaginilor.
  6. Traducerea (toți ne amintim cât de mult zgomot a făcut traducerea simultană în Skype).
  7. Verificarea ortografiei și sugestii pentru corectarea greșelilor.

LUIS

De asemenea, pentru a crea boți, poate fi necesară LUIS (Language Understanding Intelligent Service). Sarcinile serviciului sunt:

  • A determina dacă afirmația utilizatorului are sens și dacă este necesară o reacție din partea botului.
  • A reduce eforturile de transcriere a vorbirii (textului) utilizatorului în comenzi clare pentru bot.
  • A prezice adevăratele obiective/intenții ale utilizatorului și a extrage informații cheie din frazele de dialog.
  • A oferi dezvoltatorului posibilitatea de a lansa botul folosind doar câteva exemple de recunoaștere a sensului și de a continua să îmbunătățească botul pe parcursul funcționării.
  • A oferi dezvoltatorului posibilitatea de a utiliza vizualizarea pentru a evalua calitatea transcrierii comenzilor.
  • A ajuta la îmbunătățiri treptate ale recunoașterii adevăratelor obiective.

Scopul principal al LUIS este de a înțelege, cu o anumită probabilitate, ceea ce a intenționat utilizatorul și de a converti cererea naturală într-o comandă structurată. Pentru a recunoaște semnificațiile cererilor, LUIS folosește un set de intenții și entități (fie configurate anterior de dezvoltatori, fie extrase din „domenii” predefinite – unele biblioteci gata preparate cu expresii standard concepute de Microsoft). 

Un exemplu simplu: aveți un bot care furnizează prognoza vremii. Pentru acesta, intenția ar fi conversia cererii naturale în „acțiune” – solicitarea prognozei vremii, iar entitățile sunt timpul și locația. Să luăm schema de funcționare a intenției CheckWeather pentru un astfel de bot.

Intenție
Entitate
Exemplu de cerere naturală

CheckWeather
{ "type": "location", "entity": "moscow" }
{ "type": "builtin.datetimeV2.date", "entity": "future", "resolution": "2020-05-30" }
Ce vreme va fi mâine în Moscova

CheckWeather
{ "type": "date_range", "entity": "this weekend" }
Afișează-mi prognoza pentru acest weekend

Pentru a combina QnA Maker și LUIS, se poate utiliza Dispatcher. 

Accelerăm dezvoltarea cu ajutorul serviciilor Azure: creăm chatboți și servicii cognitive folosind platforma.

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

Testarea și publicarea botului

Pentru testare, se folosește o altă aplicație locală, Bot framework emulator. Cu ajutorul emulatorului, puteți comunica cu botul și verifica mesajele pe care le trimite și le primește. Emulatorul afișează mesajele așa cum vor arăta în interfața chat-ului web și înregistrează cererile și răspunsurile JSON în timpul schimbului de mesaje cu botul.

Un exemplu de utilizare a emulatorului este prezentat în această demonstrație, unde se arată cum se creează un asistent virtual pentru BMW. De asemenea, în video sunt discutate noile acceleratoare pentru crearea de chat-boti – șabloane:

Accelerăm dezvoltarea cu ajutorul serviciilor Azure: creăm chatboți și servicii cognitive folosind platforma.
https://youtu.be/u7Gql-ClcVA?t=564

De asemenea, puteți utiliza șabloane la crearea propriilor chat-boti. 
Șabloanele permit evitarea scrierii de funcții de bază ale botului de la zero, adăugând deja codul existent ca <>. Un exemplu poate fi interacțiunea cu calendarul, programarea întâlnirilor etc. Codul pentru skill-uri este gata. publicat pe github.

Testarea a fost finalizată cu succes, botul este gata și acum trebuie să fie publicat și să se conecteze canalele. Publicarea se face prin intermediul Azure, iar ca canale se pot folosi mesagerii sau rețelele sociale. Dacă nu există canalul necesar pentru intrarea datelor, se poate căuta în comunitatea corespunzătoare de pe GitHub. 

De asemenea, pentru a crea un chatbot complet ca interfață de comunicare cu utilizatorul și serviciile cognitive, veți avea nevoie, desigur, de servicii suplimentare Azure, cum ar fi bazele de date, serverless (Azure Functions), precum și serviciile LogicApp și, eventual, Event Grid.

Accelerăm dezvoltarea cu ajutorul serviciilor Azure: creăm chatboți și servicii cognitive folosind platforma.

Evaluare și analiză

Pentru evaluarea interacțiunii cu utilizatorii, se poate folosi atât analiza încorporată a Azure Bot Service, cât și serviciul special Application Insights.

Astfel, se pot colecta informații pe baza următoarelor criterii:

  • Câte utilizatori au avut acces la bot din diverse canale în intervalul de timp ales.
  • Câți utilizatori, după ce au trimis un mesaj, au revenit ulterior și au trimis un altul.
  • Câte acțiuni au fost trimise și primite prin fiecare canal în intervalul de timp specificat.

Cu ajutorul Application Insights, se pot monitoriza aplicațiile din Azure, în special chatbot-urile, obținând date suplimentare despre comportamentul utilizatorilor, sarcinile acestora și reacția chatbotului. Este important de menționat că serviciul Application Insights are propria interfață pe portalul Azure.

De asemenea, datele colectate prin acest serviciu pot fi utilizate pentru a crea vizualizări și rapoarte analitice suplimentare în PowerBI. Un exemplu al unui astfel de raport și un șablon pentru PowerBI pot fi obținute aici.

Accelerăm dezvoltarea cu ajutorul serviciilor Azure: creăm chatboți și servicii cognitive folosind platforma.

Mulțumesc tuturor pentru atenție! În acest articol am folosit un material din webinarul arhitectului Microsoft Azure, Anna Fenushina <>, în care am arătat vizual ce sunt chatbot-urile în Azure și care sunt scenariile de utilizare, precum și am demonstrat cum se poate crea un bot în QnA Maker în 15 minute și cum se decodifică structura cererilor în LUIS. 

Am realizat acest webinar în cadrul maratonului online pentru dezvoltatori Dev Bootcamp. A discutat despre produsele care accelerează dezvoltarea și elimină o parte din sarcinile de rutină ale angajaților companiei prin instrumente de automatizare și module prestabilite Azure. Înregistrările altor webinarii incluse în maraton sunt disponibile la linkurile:

Sursa: habr.com

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster