Accelerera utvecklingen med hjälp av Azure-tjänster: skapa chattbottar och kognitiva tjänster med plattformens verktyg

Hej, Habr! Idag ska vi berätta hur man med hjälp av Azure löser uppgifter som vanligtvis kräver mänskligt deltagande. Operatörer lägger ner mycket tid på att svara på samma frågor, hantera telefonsamtal och textmeddelanden. Chattbottar automatiserar kommunikationen och igenkänningen, vilket minskar belastningen på människorna. Bottar används också i Azure DevOps, där de till exempel möjliggör godkännande av releaser, hantering av byggprocesser – att granska, köra och stoppa – direkt från Slack eller Microsoft Teams. I grunden liknar en chattbot CLI, fast interaktivt, vilket gör att utvecklaren kan stanna kvar i diskussionen i chatten.

I den här artikeln kommer vi att prata om verktyg för att skapa chattbottar, visa hur de kan förbättras med hjälp av kognitiva tjänster, och beskriva hur man påskyndar utvecklingen tack vare färdiga tjänster i Azure.

Accelerera utvecklingen med hjälp av Azure-tjänster: skapa chattbottar och kognitiva tjänster med plattformens verktyg

Chattbottar och kognitiva tjänster: vad de har gemensamt och vad som skiljer dem åt

För att skapa bottar i Microsoft Azure används Azure Bot-tjänsten och Bot Framework-plattformen. Tillsammans utgör de en programvarusats för att bygga, testa, distribuera och administrera bottar, vilket gör det möjligt att skapa både enkla och avancerade kommunikationssystem som stöder tal, naturlig språkigenkänning och andra funktioner.

Anta att du behöver implementera en enkel bot baserad på en företagsfråga och svarstjänst, eller å andra sidan skapa en funktionell bot med ett komplext förgrenat kommunikationssystem. För detta kan du använda en rad verktyg som grovt kan delas in i tre grupper: 

  1. Tjänster för snabb utveckling av dialoggränssnitt (bottar).
  2. Färdiga kognitiva AI-tjänster för olika användningsscenarier (igenkänning av bilder, tal, kunskapsbas och sökning).
  3. Tjänster för att skapa och träna AI-modeller.

Vanligtvis blandar människor intuitivt "bottar" och "kognitiva tjänster" eftersom båda begreppen bygger på principen om kommunikation, och i användningsscenarier för bottar och tjänster förekommer dialoger. Men chattbottar arbetar med nyckelord och triggar, medan kognitiva tjänster arbetar med godtyckliga förfrågningar som vanligtvis behandlas av människor: 

Accelerera utvecklingen med hjälp av Azure-tjänster: skapa chattbottar och kognitiva tjänster med plattformens verktyg

Kognitiva tjänster är ett annat sätt att kommunicera med användaren, vilket hjälper till att konvertera en godtycklig förfrågan till ett tydligt kommando och vidarebefordra det till boten. 

På så sätt är chattbotar applikationer för hantering av förfrågningar, och kognitiva tjänster är verktyg för intelligent analys av förfrågningar, som körs separat men som chattboten kan använda för att bli "intelligent". 

Skapande av chattbotar

Den rekommenderade designstrukturen för botar i Azure ser ut som följer: 

Accelerera utvecklingen med hjälp av Azure-tjänster: skapa chattbottar och kognitiva tjänster med plattformens verktyg

För design och utveckling av botar i Azure används Bot Framework. På GitHub finns exempel på botar, möjligheterna med ramverket ändras, så det är viktigt att ta hänsyn till vilken version av SDK som används i botarna.

Ramverket medger flera alternativ för att skapa botar: genom klassisk kod, kommandoradsverktyg eller flödesscheman. Det senare alternativet visualiserar dialogerna, och för detta kan man använda hanteraren Bot Framework Composer. Det utvecklades på basis av Bot Framework SDK som ett visuellt utvecklingsverktyg som tvärvetenskapliga team kunde använda för att skapa botar.

Accelerera utvecklingen med hjälp av Azure-tjänster: skapa chattbottar och kognitiva tjänster med plattformens verktyg

Bot Framework Composer gör det möjligt att skapa en dialogstruktur med hjälp av block som boten kommer att arbeta med. Dessutom kan man skapa triggar, det vill säga nyckelord som boten kommer att reagera på under dialogen. Till exempel orden “operatör”, “stölder” eller “stopp” och “nog”.

I Bot Framework Composer kan man skapa ett komplext grenat dialogs-system med hjälp av Adaptiva Dialoger. Dialoger kan använda både kognitiva tjänster och eventkort (Adaptive Cards):

Accelerera utvecklingen med hjälp av Azure-tjänster: skapa chattbottar och kognitiva tjänster med plattformens verktyg

Efter skapandet kan chattboten distribueras i prenumerationen, och det automatiskt förberedda skriptet kommer att skapa alla nödvändiga resurser: kognitiva tjänster, applikationsplan, Application Insights, databas och så vidare.

QnA Maker

För att skapa enkla botar baserade på företagsdatabaser med frågor och svar kan man använda den kognitiva tjänsten QnA Maker. Den implementeras i form av en enkel webbguide och gör det möjligt att ange en länk till företags kunskapsbas (FAQ Urls) eller använda en dokumentdatabas i *.doc eller *.pdf-format. Efter skapandet av indexet kommer boten att självständigt välja de mest lämpliga svaren på användarens frågor.

Med QnAMaker kan man även skapa kedjor av uppföljningsfrågor med automatisk skapande av knappar, komplettera kunskapsbasen med metadata och vidareutbilda tjänsten under användning.

Tjänsten kan användas som en chatbot som enbart utför denna funktion, eller som en del av en mer komplex chatbot som, beroende på förfrågan, använder andra AI-tjänster eller element från Bot Framework.

Arbete med andra kognitiva tjänster

Azure-plattformen erbjuder många olika kognitiva tjänster. Tekniskt sett är dessa självständiga webbservrar som kan anropas från kod. I svar skickar tjänsten json av ett visst format som kan användas i chatboten.

Accelerera utvecklingen med hjälp av Azure-tjänster: skapa chattbottar och kognitiva tjänster med plattformens verktyg
De vanligaste kognitiva tjänsterna som kan användas i chatbots är:

  1. Textigenkänning.
  2. Igenkänning av kategorier av bilder definierade av utvecklaren Custom Vision Service (användningsfall: igenkänning av om en anställd har på sig hjälm, skyddsglasögon eller mask).
  3. Ansiktsigenkänning (ett utmärkt användningsfall – att kontrollera om det är rätt ansikte som deltagaren lade upp, eller till exempel en bild på en hund eller en bild på en person av ett annat kön).
  4. Tals igenkänning.
  5. Bildanalys.
  6. Översättning (vi minns alla hur mycket uppståndelse simultanöversättning orsakade i Skype).
  7. Stavningskontroll och förslag på felaktighetskorrigeringar.

LUIS

För att skapa bots kan det också behövas LUIS (Language Understanding Intelligent Service). Tjänstens uppgifter är:

  • Att avgöra om användarens uttalande är meningsfullt och om botens reaktion är nödvändig.
  • Att minska ansträngningen att transkribera användarens tal (text) till kommandon som är förståeliga för boten.
  • Att förutsäga verkliga användarmål/intentioner och extrahera nyckelinformation från fraser i dialogen.
  • Att möjliggöra för utvecklare att starta boten med hjälp av endast några exempel på meningsegenskänning och efterföljande vidareutbildning av boten under drift.
  • Att ge utvecklare möjlighet att använda visualisering för att bedöma kvaliteten på transkriberingen av kommandon.
  • Att hjälpa till med stegvis förbättring av igenkänningen av verkliga mål.

Målet med LUIS är i grunden att med viss sannolikhet förstå vad användaren menade och omvandla ett naturligt språkkommando till en strukturerad instruktion. För att känna igen betydelser av förfrågningar använder LUIS en uppsättning av avsikter (intentioner) och entiteter (antingen förinställda av utvecklarna eller hämtade från och förformulerade "domäner" – vissa färdiga bibliotek med standardfraser förberedda av Microsoft). 

Ett enkelt exempel: du har en bot som ger väderprognoser. För den boten skulle avsikten vara att översätta den naturliga förfrågan till en "åtgärd" – begära väderprognosen, och entiteterna – tid och plats. Här är ett exempel på hur avsikten CheckWeather skulle fungera för en sådan bot.

Avsikt
Entitet
Exempel på naturlig förfrågan

CheckWeather
{"type": "location", "entity": "moscow"}
{"type": "builtin.datetimeV2.date", "entity": "future "," resolution ":" 2020-05-30 "}
Vad kommer vädret att vara i Moskva imorgon?

CheckWeather
{"type": "date_range", "entity": "this weekend"}
Visa mig prognosen för denna helg

För att kombinera QnA Maker och LUIS kan du använda Dispatcher. 

Accelerera utvecklingen med hjälp av Azure-tjänster: skapa chattbottar och kognitiva tjänster med plattformens verktyg

När du arbetar med QnA Maker och får en förfrågan från användaren, fastställer systemet med hur stor sannolikhet ett svar från QnA passar för förfrågan. Om sannolikheten är hög, ges svaret direkt från företagskunskapsbasen, om den är låg kan förfrågan skickas till LUIS för förtydligande. Användningen av Dispatcher gör det möjligt att inte programmera denna logik, utan automatiskt bestämma denna gräns för att separera förfrågningar och snabbt fördela dem.

Testa och publicera boten

För testning används en annan lokal applikation, Bot framework emulator. Med emulatorn kan du interagera med boten och kontrollera meddelanden som den skickar och tar emot. Emulatorn visar meddelanden som de skulle se ut i webchattens gränssnitt och registrerar JSON-förfrågningar och svar under meddelandeutbytet med boten.

Ett exempel på hur emulatorn används visas i denna demonstration, där skapandet av en virtuell assistent för BMW visas. I videon beskrivs också de nya acceleratorerna för att skapa chattbotar – mallar:

Accelerera utvecklingen med hjälp av Azure-tjänster: skapa chattbottar och kognitiva tjänster med plattformens verktyg
https://youtu.be/u7Gql-ClcVA?t=564

Du kan också använda mallar när du skapar dina egna chattbotar. 
Mallar möjliggör att inte behöva skriva återkommande bot-funktioner från grunden, utan istället lägga till färdig kod som en "färdighet". Ett exempel kan vara arbete med kalender, schemalägga möten, osv. Koden för färdiga färdigheter publicerades på github.

Testningen har genomförts framgångsrikt, boten är klar, och nu måste den publiceras och kopplas till kanaler. Publicering görs via Azure, och som kanaler kan meddelandeprogram eller sociala medier användas. Om det inte finns en lämplig kanal för indata kan man leta efter den i det relevanta communityt på GitHub. 

För att skapa en fullständig chatbot som gränssnitt för att kommunicera med användaren och kognitiva tjänster kommer du säkert att behöva ytterligare Azure-tjänster, som databaser, serverless (Azure Functions), samt tjänster som LogicApp och eventuellt Event Grid.

Accelerera utvecklingen med hjälp av Azure-tjänster: skapa chattbottar och kognitiva tjänster med plattformens verktyg

Utvärdering och analys

För att utvärdera interaktionen med användarna kan både den inbyggda analysen av Azure Bot Service och den speciella tjänsten Application Insights användas.

Som resultat kan information samlas in baserat på följande kriterier:

  • Hur många användare som fick tillgång till boten från olika kanaler under den valda tiden.
  • Hur många användare som skickade ett meddelande återkom senare och skickade ett till.
  • Hur många åtgärder som skickades och mottogs via varje kanal under angiven tidsperiod.

Med hjälp av Application Insights kan alla applikationer i Azure övervakas, specifikt chatboter, för att få ytterligare data om användarbeteende, belastningar och chatbotens reaktion. Det bör noteras att tjänsten Application Insights har sitt eget gränssnitt på Azure-portalen.

Data som samlas in via denna tjänst kan också användas för att skapa ytterligare visualiseringar och analytiska rapporter i PowerBI. Ett exempel på en sådan rapport och en mall för PowerBI kan hämtas här.

Accelerera utvecklingen med hjälp av Azure-tjänster: skapa chattbottar och kognitiva tjänster med plattformens verktyg

Tack för att ni lyssnade! I den här artikeln använde vi ett material från webbinariet med Microsoft Azure-arkitekten Anna Fenjushina "När människor inte hinner. Hur man utnyttjar chatboter och kognitiva tjänster till 100% för att automatisera rutinprocesser", där vi tydligt visade vad chatboter i Azure är och vilka scenarier för deras tillämpning som finns, samt visade hur man skapar en bot i QnA Maker på 15 minuter och hur strukturen för förfrågningar i LUIS avkodas. 

Vi har genomfört detta webbinarie som en del av online-maraton för utvecklare Dev Bootcamp. Det handlade om produkter som påskyndar utvecklingen och avlastar företagsanställda med hjälp av automatiseringsverktyg och färdiga förkonfigurerade Azure-moduler. Inspelningar av andra webbinarier som ingick i maratonet finns tillgängliga via länkarna:

Källa: habr.com

Köp pålitlig webbhotell med DDoS-skydd, VPS VDS-servrar 🔥 Köp pålitlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster