Vi accelererer udviklingen ved hjælp af Azure-tjenester: Vi opretter chatbots og kognitive tjenester ved hjælp af platformen

Hej, Habr! I dag viser vi dig, hvordan du bruger Azure til at løse problemer, der typisk kræver menneskelig indgriben. Agenter bruger meget tid på at besvare de samme spørgsmål, håndtere telefonopkald og tekstbeskeder. Chatbots automatiserer kommunikation og genkendelse og reducerer byrden på folk. Bots bruges også i Azure DevOps, hvor de for eksempel giver mulighed for at godkende udgivelser, administrere builds - se, starte og stoppe - direkte fra Slack eller Microsoft Teams. I bund og grund minder en chatbot lidt om en CLI, kun interaktiv, og tillader udvikleren at forblive i konteksten af ​​chatdiskussionen.

I denne artikel vil vi tale om værktøjer til at skabe chatbots, vise, hvordan de kan forbedres med kognitive tjenester, og beskrive, hvordan man kan fremskynde udviklingen med færdige tjenester i Azure.

Vi accelererer udviklingen ved hjælp af Azure-tjenester: Vi opretter chatbots og kognitive tjenester ved hjælp af platformen

Chatbots og kognitive tjenester: hvad er lighederne og hvad er forskellene?

For at oprette bots i Microsoft Azure bruger du Azure Bot Service og Bot Framework. Sammen repræsenterer de et sæt software til at bygge, teste, implementere og administrere bots, som giver dig mulighed for at skabe fra færdige moduler både enkle og avancerede kommunikationssystemer med taleunderstøttelse, naturlig sproggenkendelse og andre muligheder.

Lad os antage, at du skal implementere en simpel bot baseret på en virksomheds Q&A-tjeneste eller omvendt oprette en funktionel bot med et komplekst, forgrenet kommunikationssystem. For at gøre dette kan du bruge en række værktøjer, opdelt i tre grupper: 

  1. Tjenester til hurtig udvikling af dialoggrænseflader (bots).
  2. Færdiglavede kognitive AI-tjenester til forskellige use cases (mønstergenkendelse, talegenkendelse, vidensbase og søgning).
  3. Tjenester til at skabe og træne AI-modeller.

Typisk forveksler folk intuitivt "bots" og "kognitive tjenester", fordi begge begreber er baseret på kommunikationsprincippet, og use casen for bots og tjenester involverer dialoger. Men chatbots arbejder med nøgleord og triggere, og kognitive tjenester arbejder med vilkårlige anmodninger, der normalt behandles af mennesker: 

Vi accelererer udviklingen ved hjælp af Azure-tjenester: Vi opretter chatbots og kognitive tjenester ved hjælp af platformen

Kognitive tjenester er en anden måde at kommunikere med brugeren på, som hjælper med at konvertere en vilkårlig anmodning til en klar kommando og videregive den til botten. 

Chatbots er således applikationer til at arbejde med anmodninger, og kognitive tjenester er værktøjer til intelligent analyse af anmodninger, der lanceres separat, men som chatbotten kan få adgang til, og bliver "intelligente". 

Oprettelse af chatbots

Det anbefalede designdiagram for en bot i Azure er som følger: 

Vi accelererer udviklingen ved hjælp af Azure-tjenester: Vi opretter chatbots og kognitive tjenester ved hjælp af platformen

For at designe og udvikle bots i Azure skal du bruge Bot Framework. Tilgængelig på GitHub eksempler på bots, ændres rammernes muligheder, så det er nødvendigt at tage højde for den version af SDK, der bruges i bots.

Rammen giver flere muligheder for at oprette bots: ved hjælp af klassisk kode, kommandolinjeværktøjer eller flowcharts. Den sidste mulighed visualiserer dialoger; til dette kan du bruge manageren Bot Framework Composer. Det blev bygget på Bot Framework SDK som et visuelt udviklingsværktøj, som tværfaglige teams kunne bruge til at oprette bots.

Vi accelererer udviklingen ved hjælp af Azure-tjenester: Vi opretter chatbots og kognitive tjenester ved hjælp af platformen

Bot Framework Composer giver dig mulighed for at bruge blokke til at skabe en dialogstruktur, som botten vil arbejde med. Derudover kan du oprette triggere, det vil sige nøgleord, som botten vil reagere på under dialogen. For eksempel ordene "operatør", "tyveri" eller "stop" og "nok".

I Bot Framework Composer kan du oprette komplekse dialogsystemer vha Adaptive dialoger. Dialoger kan bruge både kognitive tjenester og begivenhedskort (adaptive kort):

Vi accelererer udviklingen ved hjælp af Azure-tjenester: Vi opretter chatbots og kognitive tjenester ved hjælp af platformen

Efter oprettelsen kan du implementere chatbotten i et abonnement, og et automatisk forberedt script vil skabe alle de nødvendige ressourcer: kognitive tjenester, applikationsplan, applikationsindsigt, database og så videre.

QnA Maker

For at oprette simple bots baseret på virksomhedens Q&A-databaser kan du bruge den kognitive service QnA Maker. Implementeret som en simpel webguide, giver den dig mulighed for at indtaste et link til en virksomheds videnbase (FAQ URL'er) eller bruge en dokumentdatabase i *.doc eller *.pdf-format som grundlag. Efter oprettelse af indekset vil botten automatisk vælge de mest passende svar på brugerens spørgsmål.

Ved hjælp af QnAMaker kan du også oprette kæder af afklarende spørgsmål med automatisk oprettelse af knapper, supplere videnbasen med metadata og videreuddanne tjenesten under brug.

Tjenesten kan bruges som en chatbot, der kun implementerer denne ene funktion, eller som en del af en kompleks chatbot, der afhængigt af anmodningen bruger andre AI-tjenester eller elementer af Bot Framework.

Arbejde med andre kognitive tjenester

Der er mange forskellige kognitive tjenester på Azure-platformen. Teknisk set er disse uafhængige webtjenester, der kan kaldes fra kode. Som svar sender tjenesten json af et bestemt format, som kan bruges i chatbotten.

Vi accelererer udviklingen ved hjælp af Azure-tjenester: Vi opretter chatbots og kognitive tjenester ved hjælp af platformen
De mest almindelige anvendelser af chatbots er:

  1. Tekstgenkende.
  2. Anerkendelse af udviklerdefinerede Custom Vision Service-billedkategorier (produktionscase: anerkendelse af, om en medarbejder er iført hjelm, beskyttelsesbriller eller maske).
  3. Ansigtsgenkendelse (en glimrende brugssag er at kontrollere, om den adspurgte person postede sit eget ansigt, eller f.eks. et foto af en hund eller et billede af en person af et andet køn).
  4. Tale genkendelse.
  5. Billedanalyse.
  6. Oversættelse (vi husker alle, hvor meget støj samtidig oversættelse i Skype forårsagede).
  7. Stavekontrol og forslag til rettelse af fejl.

LUIS

Også for at oprette bots kan du have brug for LUIS (Sprogforståelse Intelligent Service). Servicemål:

  • Afgør, om brugerens udtalelse giver mening, og om botens svar er nødvendigt.
  • Reducer indsatsen for at transskribere brugertale (tekst) til kommandoer, der er forståelige for botten.
  • Forudsige sande brugermål/hensigter og uddrag nøgleindsigt fra sætninger i dialog.
  • Tillad udvikleren at starte botten ved hjælp af nogle få eksempler på betydningsgenkendelse og efterfølgende yderligere træning af botten under drift.
  • Gør det muligt for udvikleren at bruge visualisering til at vurdere kvaliteten af ​​kommandotransskription.
  • Hjælp med trinvise forbedringer i ægte målgenkendelse.

Faktisk er hovedmålet med LUIS at forstå med en vis sandsynlighed, hvad brugeren mente og konvertere en naturlig anmodning til en harmonisk kommando. For at genkende forespørgselsværdier bruger LUIS et sæt hensigter (betydninger, hensigter) og entiteter (enten prækonfigureret af udviklere eller taget og præformede "domæner" - nogle færdiglavede biblioteker af standardsætninger udarbejdet af Microsoft). 

Et simpelt eksempel: du har en bot, der giver dig en vejrudsigt. For ham vil hensigten være oversættelsen af ​​en naturlig anmodning til en "handling" - en anmodning om en vejrudsigt, og enhederne vil være tid og sted. Her er et diagram over, hvordan CheckWeather-hensigten fungerer for sådan en bot.

Hensigt
essens
Eksempel på en naturlig forespørgsel

CheckWeather
{"type": "placering", "entity": "moscow"}
{"type": "builtin.datetimeV2.date", "entity": "future","resolution":"2020-05-30"}
Hvordan bliver vejret i morgen i Moskva?

CheckWeather
{ "type": "date_range", "entity": "denne weekend" }
Vis mig vejrudsigten for denne weekend

For at kombinere QnA Maker og LUIS kan du bruge Dispatcher

Vi accelererer udviklingen ved hjælp af Azure-tjenester: Vi opretter chatbots og kognitive tjenester ved hjælp af platformen

Når du arbejder med QnA Maker og modtager en anmodning fra en bruger, bestemmer systemet, hvor stor sandsynlighed svaret fra QnA svarer til anmodningen. Hvis sandsynligheden er stor, får brugeren blot et svar fra virksomhedens videnbase, hvis den er lav, kan anmodningen sendes til LUIS for afklaring. Ved at bruge Dispatcher kan du ikke programmere denne logik, men automatisk bestemme denne kant af adskillelsen af ​​anmodninger og hurtigt distribuere dem.

Test og publicering af botten

En anden lokal applikation bruges til test, Bot framework emulator. Ved hjælp af emulatoren kan du kommunikere med botten og kontrollere de beskeder, den sender og modtager. Emulatoren viser beskeder, som de ville blive vist i en webchat-grænseflade og logger JSON-anmodninger og -svar, når de sender beskeder til botten.

Et eksempel på brug af emulatoren er præsenteret i denne demo, som viser oprettelsen af ​​en virtuel assistent til BMW. Videoen fortæller også om nye acceleratorer til at skabe chatbots - skabeloner:

Vi accelererer udviklingen ved hjælp af Azure-tjenester: Vi opretter chatbots og kognitive tjenester ved hjælp af platformen
https://youtu.be/u7Gql-ClcVA?t=564

Du kan også bruge skabeloner, når du opretter dine chatbots. 
Skabeloner giver dig mulighed for ikke at skrive standard bot-funktioner igen, men at tilføje færdiglavet kode som en "færdighed". Et eksempel kunne være at arbejde med en kalender, lave aftaler osv. Kode for færdige færdigheder offentliggjort på github.

Testen var vellykket, botten er klar, og nu skal den publiceres og kanaler tilsluttes. Udgivelsen udføres ved hjælp af Azure, og messengers eller sociale netværk kan bruges som kanaler. Hvis du ikke har den nødvendige kanal til at indtaste data, kan du søge efter den i det tilsvarende fællesskab på GitHab. 

For også at skabe en fuldgyldig chatbot som grænseflade til kommunikation med brugeren og kognitive tjenester, skal du naturligvis have yderligere Azure-tjenester, såsom databaser, serverløse (Azure Functions), samt LogicApp-tjenester og evt. , Begivenhedsgitter.

Vi accelererer udviklingen ved hjælp af Azure-tjenester: Vi opretter chatbots og kognitive tjenester ved hjælp af platformen

Vurdering og analyse

For at evaluere brugerinteraktion kan du bruge både den indbyggede analyse af Azure Bot-tjenesten og den særlige Application Insights-tjeneste.

Som et resultat kan du indsamle oplysninger baseret på følgende kriterier:

  • Hvor mange brugere der fik adgang til botten fra forskellige kanaler i løbet af det valgte tidsrum.
  • Hvor mange brugere, der sendte en besked, vendte tilbage senere og sendte en anden.
  • Hvor mange handlinger blev sendt og modtaget ved hjælp af hver kanal i det angivne tidsinterval.

Ved at bruge Application Insights kan du overvåge enhver applikation i Azure og især chatbots, og få yderligere data om brugeradfærd, belastninger og chatbot-reaktioner. Det skal bemærkes, at Application Insights-tjenesten har sin egen grænseflade i Azure-portalen.

Du kan også bruge de data, der er indsamlet gennem denne tjeneste, til at oprette yderligere visualiseringer og analytiske rapporter i PowerBI. Et eksempel på en sådan rapport og skabelon til PowerBI kan tages her.

Vi accelererer udviklingen ved hjælp af Azure-tjenester: Vi opretter chatbots og kognitive tjenester ved hjælp af platformen

Tak til jer alle for jeres opmærksomhed! I denne artikel brugte vi materiale fra webinaret af Microsoft Azure-arkitekten Anna Fenyushina "Når folk ikke har tid. Hvordan man 100 % bruger chatbots og kognitive tjenester til at automatisere rutineprocesser”, hvor vi tydeligt viste, hvad chatbots er i Azure, og hvad er scenarierne for deres brug, og også demonstrerede, hvordan man opretter en bot i QnA Maker på 15 minutter, og hvordan forespørgselsstruktur er dechifreret i LUIS. 

Vi lavede dette webinar som en del af online marathon for udviklere Dev Bootcamp. Det handlede om produkter, der fremskynder udviklingen og aflaster noget af den rutinemæssige arbejdsbyrde fra virksomhedens medarbejdere ved hjælp af automationsværktøjer og færdiglavede prækonfigurerede Azure-moduler. Optagelser af andre webinarer, der indgår i marathonet, er tilgængelige på følgende links:

Kilde: www.habr.com

Tilføj en kommentar