Vi påskyndar utvecklingen med hjälp av Azure-tjänster: vi skapar chatbots och kognitiva tjänster med hjälp av plattformen

Hej, Habr! Idag visar vi dig hur du använder Azure för att lösa problem som vanligtvis kräver mänskligt ingripande. Agenter spenderar mycket tid på att svara på samma frågor, hantera telefonsamtal och textmeddelanden. Chatbots automatiserar kommunikation och igenkänning och minskar bördan på människor. Botar används även i Azure DevOps, där de tillåter till exempel att godkänna releaser, hantera builds - visa, starta och stoppa - direkt från Slack eller Microsoft Teams. I grund och botten påminner en chatbot något om en CLI, endast interaktiv, och låter utvecklaren vara kvar i chattdiskussionens sammanhang.

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

Vi påskyndar utvecklingen med hjälp av Azure-tjänster: vi skapar chatbots och kognitiva tjänster med hjälp av plattformen

Chatbots och kognitiva tjänster: vad är likheterna och vad är skillnaderna?

För att skapa bots i Microsoft Azure använder du Azure Bot Service och Bot Framework. Tillsammans representerar de en uppsättning mjukvara för att bygga, testa, distribuera och administrera bots, som låter dig skapa från färdiga moduler både enkla och avancerade kommunikationssystem med talstöd, naturligt språkigenkänning och andra möjligheter.

Låt oss anta att du behöver implementera en enkel bot baserad på en företags Q&A-tjänst eller, omvänt, skapa en funktionell bot med ett komplext, förgrenat kommunikationssystem. För att göra detta kan du använda ett antal verktyg, uppdelade i tre grupper: 

  1. Tjänster för snabb utveckling av dialoggränssnitt (bots).
  2. Färdiga kognitiva AI-tjänster för olika användningsfall (mönsterigenkänning, taligenkänning, kunskapsbas och sökning).
  3. Tjänster för att skapa och träna AI-modeller.

Vanligtvis blandar människor intuitivt ihop "bots" och "kognitiva tjänster" eftersom båda begreppen är baserade på kommunikationsprincipen, och användningsfallet för bots och tjänster involverar dialoger. Men chatbots arbetar med nyckelord och triggers, och kognitiva tjänster fungerar med godtyckliga förfrågningar som vanligtvis behandlas av människor: 

Vi påskyndar utvecklingen med hjälp av Azure-tjänster: vi skapar chatbots och kognitiva tjänster med hjälp av plattformen

Kognitiva tjänster är ett annat sätt att kommunicera med användaren, som hjälper till att omvandla en godtycklig begäran till ett tydligt kommando och skicka det vidare till boten. 

Således är chatbotar applikationer för att arbeta med förfrågningar, och kognitiva tjänster är verktyg för intelligent analys av förfrågningar som lanseras separat, men som chatboten kan komma åt och blir "intelligenta". 

Skapar chatbots

Det rekommenderade designdiagrammet för en bot i Azure är följande: 

Vi påskyndar utvecklingen med hjälp av Azure-tjänster: vi skapar chatbots och kognitiva tjänster med hjälp av plattformen

För att designa och utveckla bots i Azure, använd Bot Framework. Tillgänglig på GitHub exempel på bots, ändras ramverkets möjligheter, så det är nödvändigt att ta hänsyn till versionen av SDK:n som används i botarna.

Ramverket ger flera alternativ för att skapa bots: använda klassisk kod, kommandoradsverktyg eller flödesscheman. Det sista alternativet visualiserar dialoger; för detta kan du använda managern Bot Framework Composer. Den byggdes på Bot Framework SDK som ett visuellt utvecklingsverktyg som tvärvetenskapliga team kunde använda för att skapa bots.

Vi påskyndar utvecklingen med hjälp av Azure-tjänster: vi skapar chatbots och kognitiva tjänster med hjälp av plattformen

Bot Framework Composer låter dig använda block för att skapa en dialogstruktur som boten kommer att arbeta med. Dessutom kan du skapa utlösare, det vill säga nyckelord som boten kommer att reagera på under dialogen. Till exempel orden "operatör", "stöld" eller "stopp" och "tillräckligt".

I Bot Framework Composer kan du skapa komplexa dialogsystem med hjälp av Adaptiva dialoger. Dialoger kan använda både kognitiva tjänster och händelsekort (Adaptive Cards):

Vi påskyndar utvecklingen med hjälp av Azure-tjänster: vi skapar chatbots och kognitiva tjänster med hjälp av plattformen

Efter skapandet kan du distribuera chatboten i en prenumeration, och ett automatiskt förberett skript kommer att skapa alla nödvändiga resurser: kognitiva tjänster, applikationsplan, applikationsinsikter, databas och så vidare.

QnA Maker

För att skapa enkla bots baserade på företagets Q&A-databaser kan du använda den kognitiva tjänsten QnA Maker. Implementerad som en enkel webbguide låter den dig mata in en länk till en företags kunskapsbas (FAQ URLs) eller använda en dokumentdatabas i *.doc- eller *.pdf-format som grund. Efter att ha skapat indexet kommer boten automatiskt att välja de lämpligaste svaren på användarens frågor.

Med QnAMaker kan du även skapa kedjor av förtydligande frågor med automatiskt skapande av knappar, komplettera kunskapsbasen med metadata och vidareutbilda tjänsten under användning.

Tjänsten kan användas som en chatbot som implementerar endast denna funktion, eller som en del av en komplex chatbot som använder, beroende på begäran, andra AI-tjänster eller delar av Bot Framework.

Arbeta med andra kognitiva tjänster

Det finns många olika kognitiva tjänster på Azure-plattformen. Tekniskt sett är dessa oberoende webbtjänster som kan anropas från kod. Som svar skickar tjänsten json av ett visst format, som kan användas i chatboten.

Vi påskyndar utvecklingen med hjälp av Azure-tjänster: vi skapar chatbots och kognitiva tjänster med hjälp av plattformen
De vanligaste användningsområdena för chatbots är:

  1. Textigenkännande.
  2. Identifiering av utvecklardefinierade bildkategorier för Custom Vision Service (produktionsfall: erkännande av om en anställd bär en hjälm, skyddsglasögon eller mask).
  3. Ansiktsigenkänning (ett utmärkt användningsfall är att kontrollera om personen som tillfrågas publicerade sitt eget ansikte, eller, säg, ett foto av en hund eller ett foto av en person av ett annat kön).
  4. Taligenkänning.
  5. Bildanalys.
  6. Översättning (vi minns alla hur mycket brus samtidig översättning i Skype orsakade).
  7. Stavningskontroll och förslag på korrigering av fel.

LUIS

Dessutom kan du behöva skapa bots LUIS (Språkförståelse Intelligent Service). Servicemål:

  • Bestäm om användarens uttalande är vettigt och om botens svar är nödvändigt.
  • Minska ansträngningarna att transkribera användarens tal (text) till kommandon som är förståeliga för boten.
  • Förutsäg verkliga användarmål/avsikter och extrahera viktiga insikter från fraser i dialog.
  • Tillåt utvecklaren att starta boten med bara några få exempel på meningsigenkänning och efterföljande ytterligare träning av boten under drift.
  • Gör det möjligt för utvecklaren att använda visualisering för att bedöma kvaliteten på kommandotranskriptionen.
  • Hjälp till med stegvisa förbättringar av verklig måligenkänning.

Faktum är att huvudmålet med LUIS är att med en viss sannolikhet förstå vad användaren menade och omvandla en naturlig begäran till ett harmoniskt kommando. För att känna igen frågevärden använder LUIS en uppsättning avsikter (betydelser, avsikter) och entiteter (antingen förkonfigurerade av utvecklare eller tagna och förformade "domäner" - några färdiga bibliotek med standardfraser framtagna av Microsoft). 

Ett enkelt exempel: du har en bot som ger dig en väderprognos. För honom kommer avsikten att vara översättningen av en naturlig begäran till en "handling" - en begäran om en väderprognos, och enheterna kommer att vara tid och plats. Här är ett diagram över hur CheckWeather-avsikten fungerar för en sådan bot.

Avsikt
essens
Exempel på en naturlig fråga

CheckWeather
{"type": "plats", "entity": "moscow"}
{"type": "builtin.datetimeV2.date", "entity": "future","resolution":"2020-05-30"}
Hur blir vädret i Moskva i morgon?

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

För att kombinera QnA Maker och LUIS kan du använda Avsändare

Vi påskyndar utvecklingen med hjälp av Azure-tjänster: vi skapar chatbots och kognitiva tjänster med hjälp av plattformen

När du arbetar med QnA Maker och får en förfrågan från en användare bestämmer systemet hur stor sannolikhet svaret från QnA matchar förfrågan. Om sannolikheten är hög får användaren helt enkelt ett svar från företagets kunskapsbas, om den är låg kan förfrågan skickas till LUIS för förtydligande. Genom att använda Dispatcher kan du inte programmera denna logik, utan att automatiskt bestämma denna kant av separationen av förfrågningar och snabbt distribuera dem.

Testa och publicera boten

En annan lokal applikation används för att testa, Bot framework emulator. Med hjälp av emulatorn kan du kommunicera med boten och kontrollera meddelanden den skickar och tar emot. Emulatorn visar meddelanden som de skulle visas i ett webbchattgränssnitt och loggar JSON-förfrågningar och svar när du skickar meddelanden till boten.

Ett exempel på användning av emulatorn presenteras i denna demo, som visar skapandet av en virtuell assistent för BMW. Videon talar också om nya acceleratorer för att skapa chatbots - mallar:

Vi påskyndar utvecklingen med hjälp av Azure-tjänster: vi skapar chatbots och kognitiva tjänster med hjälp av plattformen
https://youtu.be/u7Gql-ClcVA?t=564

Du kan också använda mallar när du skapar dina chatbots. 
Mallar låter dig inte skriva standard bot-funktioner på nytt, utan lägga till färdig kod som en "färdighet". Ett exempel kan vara att arbeta med en kalender, boka tider etc. Kod för färdiga färdigheter publicerad på github.

Testningen lyckades, boten är klar och nu måste den publiceras och kanaler anslutas. Publicering sker med Azure, och budbärare eller sociala nätverk kan användas som kanaler. Om du inte har den nödvändiga kanalen för att mata in data kan du söka efter den i motsvarande community på GitHab. 

Dessutom, för att skapa en fullfjädrad chatbot som ett gränssnitt för att kommunicera med användar- och kognitiva tjänster kommer du naturligtvis att behöva ytterligare Azure-tjänster, såsom databaser, serverlösa (Azure Functions), samt LogicApp-tjänster och ev. , Event Grid.

Vi påskyndar utvecklingen med hjälp av Azure-tjänster: vi skapar chatbots och kognitiva tjänster med hjälp av plattformen

Bedömning och analys

För att utvärdera användarinteraktion kan du använda både den inbyggda analysen av Azure Bot Service och den speciella Application Insights-tjänsten.

Som ett resultat kan du samla in information baserat på följande kriterier:

  • Hur många användare som fick tillgång till boten från olika kanaler under den valda tidsperioden.
  • Hur många användare som skickade ett meddelande återvände senare och skickade ett annat.
  • Hur många åtgärder som skickades och togs emot med varje kanal under det angivna tidsintervallet.

Med Application Insights kan du övervaka alla program i Azure och i synnerhet chatbots, få ytterligare data om användarbeteende, laddningar och chatbot-reaktioner. Det bör noteras att Application Insights-tjänsten har ett eget gränssnitt i Azure-portalen.

Du kan också använda data som samlas in genom denna tjänst för att skapa ytterligare visualiseringar och analytiska rapporter i PowerBI. Ett exempel på en sådan rapport och mall för PowerBI kan tas här.

Vi påskyndar utvecklingen med hjälp av Azure-tjänster: vi skapar chatbots och kognitiva tjänster med hjälp av plattformen

Tack alla för er uppmärksamhet! I den här artikeln använde vi material från webbseminariet av Microsoft Azure-arkitekten Anna Fenyushina "När folk inte har tid. Hur man till 100 % använder chatbots och kognitiva tjänster för att automatisera rutinprocesser”, där vi tydligt visade vad chatbots är i Azure och vilka scenarier som finns för deras användning, och även demonstrerade hur man skapar en bot i QnA Maker på 15 minuter och hur frågestruktur dechiffreras i LUIS. 

Vi gjorde detta webbseminarium som en del av onlinemarathonet för utvecklarna Dev Bootcamp. Det handlade om produkter som påskyndar utvecklingen och avlastar en del av den rutinmässiga arbetsbelastningen från företagets anställda med hjälp av automationsverktyg och färdiga förkonfigurerade Azure-moduler. Inspelningar av andra webbseminarier som ingår i maratonloppet finns på följande länkar:

Källa: will.com

Lägg en kommentar