Vi akselererer utviklingen ved å bruke Azure-tjenester: vi lager chatbots og kognitive tjenester ved å bruke plattformen

Hei, Habr! I dag viser vi deg hvordan du bruker Azure til å løse problemer som vanligvis krever menneskelig inngripen. Agenter bruker mye tid på å svare på de samme spørsmålene, håndtere telefonsamtaler og tekstmeldinger. Chatbots automatiserer kommunikasjon og gjenkjenning og reduserer byrden på folk. Bots brukes også i Azure DevOps, hvor de tillater for eksempel å godkjenne utgivelser, administrere bygg – se, starte og stoppe – direkte fra Slack eller Microsoft Teams. I hovedsak minner en chatbot noe om en CLI, kun interaktiv, og lar utvikleren forbli i konteksten av chat-diskusjonen.

I denne artikkelen skal vi snakke om verktøy for å lage chatbots, vise hvordan de kan forbedres med kognitive tjenester, og beskrive hvordan man kan fremskynde utviklingen med ferdige tjenester i Azure.

Vi akselererer utviklingen ved å bruke Azure-tjenester: vi lager chatbots og kognitive tjenester ved å bruke plattformen

Chatbots og kognitive tjenester: hva er likhetene og hva er forskjellene?

For å lage roboter i Microsoft Azure bruker du Azure Bot Service og Bot Framework. Sammen representerer de et sett med programvare for å bygge, teste, distribuere og administrere roboter, som lar deg lage fra ferdige moduler både enkle og avanserte kommunikasjonssystemer med talestøtte, naturlig språkgjenkjenning og andre muligheter.

La oss anta at du trenger å implementere en enkel bot basert på en bedrifts Q&A-tjeneste, eller omvendt lage en funksjonell bot med et komplekst, forgrenet kommunikasjonssystem. For å gjøre dette kan du bruke en rekke verktøy, delt inn i tre grupper: 

  1. Tjenester for rask utvikling av dialoggrensesnitt (bots).
  2. Ferdige kognitive AI-tjenester for ulike brukstilfeller (mønstergjenkjenning, talegjenkjenning, kunnskapsbase og søk).
  3. Tjenester for å lage og trene AI-modeller.

Vanligvis forveksler folk intuitivt «bots» og «kognitive tjenester» fordi begge konseptene er basert på kommunikasjonsprinsippet, og brukssaken for bots og tjenester involverer dialoger. Men chatboter jobber med nøkkelord og triggere, og kognitive tjenester fungerer med vilkårlige forespørsler som vanligvis behandles av mennesker: 

Vi akselererer utviklingen ved å bruke Azure-tjenester: vi lager chatbots og kognitive tjenester ved å bruke plattformen

Kognitive tjenester er en annen måte å kommunisere med brukeren på, og hjelper til med å konvertere en vilkårlig forespørsel til en klar kommando og sende den videre til boten. 

Dermed er chatbots applikasjoner for å jobbe med forespørsler, og kognitive tjenester er verktøy for intelligent analyse av forespørsler som lanseres separat, men som chatboten kan få tilgang til, og blir "intelligente". 

Opprette chatbots

Det anbefalte designdiagrammet for en bot i Azure er som følger: 

Vi akselererer utviklingen ved å bruke Azure-tjenester: vi lager chatbots og kognitive tjenester ved å bruke plattformen

For å designe og utvikle roboter i Azure, bruk Bot Framework. Tilgjengelig på GitHub eksempler på roboter, mulighetene til rammeverket endres, så det er nødvendig å ta hensyn til versjonen av SDK-en som brukes i robotene.

Rammeverket gir flere alternativer for å lage roboter: ved å bruke klassisk kode, kommandolinjeverktøy eller flytskjemaer. Det siste alternativet visualiserer dialoger; for dette kan du bruke manageren Bot Framework Composer. Den ble bygget på Bot Framework SDK som et visuelt utviklingsverktøy som tverrfaglige team kan bruke til å lage roboter.

Vi akselererer utviklingen ved å bruke Azure-tjenester: vi lager chatbots og kognitive tjenester ved å bruke plattformen

Bot Framework Composer lar deg bruke blokker til å lage en dialogstruktur som boten vil jobbe med. I tillegg kan du lage utløsere, det vil si søkeord som boten vil reagere på under dialogen. For eksempel ordene «operatør», «tyveri» eller «stopp» og «nok».

I Bot Framework Composer kan du lage komplekse dialogsystemer ved å bruke Adaptive dialoger. Dialoger kan bruke både kognitive tjenester og hendelseskort (Adaptive Cards):

Vi akselererer utviklingen ved å bruke Azure-tjenester: vi lager chatbots og kognitive tjenester ved å bruke plattformen

Etter opprettelsen kan du distribuere chatboten i et abonnement, og et automatisk forberedt skript vil lage alle nødvendige ressurser: kognitive tjenester, applikasjonsplan, applikasjonsinnsikt, database og så videre.

QnA Maker

For å lage enkle roboter basert på bedriftens Q&A-databaser, kan du bruke den kognitive tjenesten QnA Maker. Implementert som en enkel nettveiviser, lar den deg legge inn en lenke til en bedrifts kunnskapsbase (FAQ URLs) eller bruke en dokumentdatabase i *.doc eller *.pdf-format som grunnlag. Etter å ha opprettet indeksen, vil boten automatisk velge de mest passende svarene på brukerens spørsmål.

Ved hjelp av QnAMaker kan du også lage kjeder av avklarende spørsmål med automatisk oppretting av knapper, supplere kunnskapsbasen med metadata, og videreutdanne tjenesten under bruk.

Tjenesten kan brukes som en chatbot som implementerer kun denne ene funksjonen, eller som en del av en kompleks chatbot som bruker, avhengig av forespørselen, andre AI-tjenester eller elementer av Bot Framework.

Arbeide med andre kognitive tjenester

Det er mange forskjellige kognitive tjenester på Azure-plattformen. Teknisk sett er dette uavhengige webtjenester som kan kalles fra kode. Som svar sender tjenesten json av et bestemt format, som kan brukes i chatboten.

Vi akselererer utviklingen ved å bruke Azure-tjenester: vi lager chatbots og kognitive tjenester ved å bruke plattformen
De vanligste bruken av chatbots er:

  1. Tekstgjenkjenning.
  2. Gjenkjennelse av utviklerdefinerte Custom Vision Service-bildekategorier (produksjonscase: gjenkjennelse av om en ansatt har på seg hjelm, briller eller maske).
  3. Ansiktsgjenkjenning (et utmerket bruksområde er å sjekke om personen som blir spurt har lagt ut sitt eget ansikt, eller for eksempel et bilde av en hund eller et bilde av en person av et annet kjønn).
  4. Talegjenkjenning.
  5. Bildeanalyse.
  6. Oversettelse (vi husker alle hvor mye støy samtidig oversettelse i Skype forårsaket).
  7. Stavekontroll og forslag til retting av feil.

LUIS

Også for å lage roboter kan det hende du trenger LUIS (Language Understanding Intelligent Service). Tjenestemål:

  • Finn ut om brukerens uttalelse gir mening og om botens svar er nødvendig.
  • Reduser innsatsen for å transkribere brukertale (tekst) til kommandoer som er forståelige for boten.
  • Forutsi sanne brukermål/hensikter og trekk ut nøkkelinnsikt fra setninger i dialog.
  • Tillat utvikleren å starte boten ved å bruke bare noen få eksempler på meningsgjenkjenning og påfølgende tilleggstrening av boten under drift.
  • Gjør det mulig for utvikleren å bruke visualisering for å vurdere kvaliteten på kommandotranskripsjonen.
  • Bidra til trinnvise forbedringer i ekte målgjenkjenning.

Faktisk er hovedmålet til LUIS å forstå med en viss sannsynlighet hva brukeren mente og konvertere en naturlig forespørsel til en harmonisk kommando. For å gjenkjenne spørringsverdier bruker LUIS et sett med hensikter (betydninger, intensjoner) og enheter (enten forhåndskonfigurert av utviklere, eller tatt og forhåndsdefinerte "domener" - noen ferdiglagde biblioteker med standardsetninger utarbeidet av Microsoft). 

Et enkelt eksempel: du har en bot som gir deg en værmelding. For ham vil hensikten være oversettelsen av en naturlig forespørsel til en "handling" - en forespørsel om en værmelding, og enhetene vil være tid og sted. Her er et diagram over hvordan CheckWeather-hensikten fungerer for en slik bot.

Hensikt
essensen
Eksempel på et naturlig søk

Sjekk Vær
{"type": "location", "entity": "moscow"}
{"type": "builtin.datetimeV2.date", "entity": "future","resolution":"2020-05-30"}
Hvordan blir været i Moskva i morgen?

Sjekk Vær
{ "type": "date_range", "entity": "denne helgen" }
Vis meg værmeldingen for denne helgen

For å kombinere QnA Maker og LUIS kan du bruke Avsender

Vi akselererer utviklingen ved å bruke Azure-tjenester: vi lager chatbots og kognitive tjenester ved å bruke plattformen

Når du jobber med QnA Maker og mottar en forespørsel fra en bruker, bestemmer systemet hvilken prosentandel av sannsynligheten svaret fra QnA samsvarer med forespørselen. Hvis sannsynligheten er stor, får brukeren rett og slett et svar fra bedriftens kunnskapsbase, hvis det er lavt, kan forespørselen sendes til LUIS for avklaring. Ved å bruke Dispatcher kan du ikke programmere denne logikken, men automatisk bestemme denne kanten av separasjonen av forespørsler og raskt distribuere dem.

Testing og publisering av boten

En annen lokal applikasjon brukes for testing, Bot framework emulator. Ved å bruke emulatoren kan du kommunisere med boten og sjekke meldingene den sender og mottar. Emulatoren viser meldinger slik de vil vises i et nettchat-grensesnitt og logger JSON-forespørsler og svar når du sender meldinger til boten.

Et eksempel på bruk av emulatoren er presentert i denne demoen, som viser opprettelsen av en virtuell assistent for BMW. Videoen snakker også om nye akseleratorer for å lage chatbots - maler:

Vi akselererer utviklingen ved å bruke Azure-tjenester: vi lager chatbots og kognitive tjenester ved å bruke plattformen
https://youtu.be/u7Gql-ClcVA?t=564

Du kan også bruke maler når du oppretter chatbots. 
Maler lar deg ikke skrive standard bot-funksjoner på nytt, men å legge til ferdig kode som en "ferdighet". Et eksempel kan være å jobbe med en kalender, gjøre avtaler osv. Kode for ferdige ferdigheter publisert på github.

Testingen var vellykket, boten er klar, og nå må den publiseres og kanaler kobles til. Publisering utføres ved hjelp av Azure, og messengers eller sosiale nettverk kan brukes som kanaler. Hvis du ikke har den nødvendige kanalen for å legge inn data, kan du søke etter den i det tilsvarende fellesskapet på GitHab. 

Dessuten, for å lage en fullverdig chatbot som grensesnitt for kommunikasjon med bruker- og kognitive tjenester, vil du selvfølgelig trenge ytterligere Azure-tjenester, som databaser, serverløse (Azure Functions), samt LogicApp-tjenester og ev. , hendelsesnett.

Vi akselererer utviklingen ved å bruke Azure-tjenester: vi lager chatbots og kognitive tjenester ved å bruke plattformen

Evaluering og analyse

For å evaluere brukerinteraksjon kan du bruke både den innebygde analysen til Azure Bot-tjenesten og den spesielle Application Insights-tjenesten.

Som et resultat kan du samle inn informasjon basert på følgende kriterier:

  • Hvor mange brukere som fikk tilgang til boten fra ulike kanaler i løpet av den valgte tidsperioden.
  • Hvor mange brukere som sendte én melding, returnerte senere og sendte en annen.
  • Hvor mange handlinger som ble sendt og mottatt ved bruk av hver kanal i løpet av det angitte tidsintervallet.

Ved å bruke Application Insights kan du overvåke hvilken som helst applikasjon i Azure, og spesielt chatbots, og få tilleggsdata om brukeratferd, belastninger og chatbot-reaksjoner. Det skal bemerkes at Application Insights-tjenesten har sitt eget grensesnitt i Azure-portalen.

Du kan også bruke dataene som samles inn gjennom denne tjenesten til å lage ytterligere visualiseringer og analytiske rapporter i PowerBI. Et eksempel på en slik rapport og mal for PowerBI kan tas her.

Vi akselererer utviklingen ved å bruke Azure-tjenester: vi lager chatbots og kognitive tjenester ved å bruke plattformen

Takk alle sammen for oppmerksomheten! I denne artikkelen brukte vi material fra webinaret av Microsoft Azure-arkitekten Anna Fenyushina "Når folk ikke har tid. Hvordan bruke chatboter og kognitive tjenester 100 % for å automatisere rutineprosesser”, der vi tydelig viste hva chatboter er i Azure og hva som er scenariene for deres bruk, og også demonstrerte hvordan man lager en bot i QnA Maker på 15 minutter og hvordan spørringsstrukturen er dechiffrert i LUIS. 

Vi laget dette webinaret som en del av online maraton for utviklere Dev Bootcamp. Det handlet om produkter som fremskynder utviklingen og avlaster noe av den rutinemessige arbeidsbelastningen fra selskapets ansatte ved hjelp av automatiseringsverktøy og ferdige forhåndskonfigurerte Azure-moduler. Opptak av andre webinarer inkludert i maraton er tilgjengelig på følgende lenker:

Kilde: www.habr.com

Legg til en kommentar