Nopeutamme kehitystä Azure-palveluilla: luomme chatbotteja ja kognitiivisia palveluita alustan avulla

Hei, Habr! Tänään näytämme, kuinka voit käyttää Azurea sellaisten ongelmien ratkaisemiseen, jotka vaativat yleensä ihmisen toimia. Agentit viettävät paljon aikaa samoihin kysymyksiin vastaamiseen, puheluiden ja tekstiviestien käsittelyyn. Chatbotit automatisoivat viestinnän ja tunnistamisen sekä vähentävät ihmisten taakkaa. Boteja käytetään myös Azure DevOpsissa, jossa niiden avulla voidaan esimerkiksi hyväksyä julkaisuja, hallita koontiversioita – tarkastella, käynnistää ja pysäyttää – suoraan Slackin tai Microsoft Teamsin kautta. Pohjimmiltaan chatbot muistuttaa jonkin verran CLI:tä, vain interaktiivista ja antaa kehittäjälle mahdollisuuden pysyä keskustelun yhteydessä.

Tässä artikkelissa puhumme työkaluista chatbottien luomiseen, näytämme, kuinka niitä voidaan parantaa kognitiivisten palveluiden avulla, ja kuvataan, kuinka kehitystä voidaan nopeuttaa Azuren valmiilla palveluilla.

Nopeutamme kehitystä Azure-palveluilla: luomme chatbotteja ja kognitiivisia palveluita alustan avulla

Chatbotit ja kognitiiviset palvelut: mitkä ovat yhtäläisyyksiä ja mitä eroja?

Voit luoda botteja Microsoft Azuressa käyttämällä Azure Bot Serviceä ja Bot Frameworkia. Yhdessä ne edustavat ohjelmistosarjaa robottien rakentamiseen, testaamiseen, käyttöönottoon ja hallintaan, jonka avulla voit luoda valmiista moduuleista sekä yksinkertaisia ​​että edistyneitä viestintäjärjestelmiä, joissa on puhetuki, luonnollisen kielen tunnistus ja muut ominaisuudet.

Oletetaan, että sinun on otettava käyttöön yksinkertainen botti, joka perustuu yrityksen Q&A-palveluun, tai päinvastoin, luotava toimiva botti, jossa on monimutkainen, haarautunut viestintäjärjestelmä. Voit tehdä tämän käyttämällä useita työkaluja, jotka on jaettu kolmeen ryhmään: 

  1. Palvelut dialogiliitäntöjen (bottien) nopeaan kehittämiseen.
  2. Valmiita kognitiivisia tekoälypalveluita erilaisiin käyttötapauksiin (kuviontunnistus, puheentunnistus, tietokanta ja haku).
  3. Palvelut tekoälymallien luomiseen ja kouluttamiseen.

Tyypillisesti ihmiset sekoittavat intuitiivisesti "botit" ja "kognitiiviset palvelut", koska molemmat käsitteet perustuvat kommunikaatioperiaatteeseen ja botien ja palvelujen käyttötapaus sisältää dialogeja. Mutta chatbotit toimivat avainsanojen ja laukaisimien kanssa, ja kognitiiviset palvelut toimivat mielivaltaisten pyyntöjen kanssa, jotka yleensä käsittelevät ihmiset: 

Nopeutamme kehitystä Azure-palveluilla: luomme chatbotteja ja kognitiivisia palveluita alustan avulla

Kognitiiviset palvelut ovat toinen tapa kommunikoida käyttäjän kanssa, ja ne auttavat muuttamaan mielivaltaisen pyynnön selkeäksi komennon ja välittämään sen botille. 

Näin ollen chatbotit ovat sovelluksia työskennellä pyyntöjen kanssa, ja kognitiiviset palvelut ovat työkaluja älykkääseen analysointiin pyyntöjä, jotka käynnistetään erikseen, mutta joihin chatbot pääsee käsiksi, ja niistä tulee "älykkäitä". 

Chatbottien luominen

Suositeltu suunnittelukaavio botille Azuressa on seuraava: 

Nopeutamme kehitystä Azure-palveluilla: luomme chatbotteja ja kognitiivisia palveluita alustan avulla

Voit suunnitella ja kehittää botteja Azuressa käyttämällä Bot Framework. Saatavilla GitHubista esimerkkejä boteista, kehyksen ominaisuudet muuttuvat, joten on tarpeen ottaa huomioon boteissa käytettävä SDK-versio.

Kehys tarjoaa useita vaihtoehtoja robottien luomiseen: käyttämällä klassista koodia, komentorivityökaluja tai vuokaavioita. Viimeinen vaihtoehto visualisoi valintaikkunat; tähän voit käyttää hallintaa Bot Framework -säveltäjä. Se rakennettiin Bot Framework SDK:lle visuaalisena kehitystyökaluna, jota poikkitieteelliset tiimit voivat käyttää bottien luomiseen.

Nopeutamme kehitystä Azure-palveluilla: luomme chatbotteja ja kognitiivisia palveluita alustan avulla

Bot Framework Composer antaa sinun käyttää lohkoja luodaksesi dialogirakenteen, jonka kanssa botti toimii. Lisäksi voit luoda laukaisimia, eli avainsanoja, joihin botti reagoi dialogin aikana. Esimerkiksi sanat "operaattori", "varkaus" tai "stop" ja "riittää".

Bot Framework Composerissa voit luoda monimutkaisia ​​dialogijärjestelmiä käyttämällä Mukautuvat valintaikkunat. Dialogeissa voidaan käyttää sekä kognitiivisia palveluita että tapahtumakortteja (Adaptive Cards):

Nopeutamme kehitystä Azure-palveluilla: luomme chatbotteja ja kognitiivisia palveluita alustan avulla

Luomisen jälkeen voit ottaa chatbotin käyttöön tilauksessa, ja automaattisesti valmisteltu komentosarja luo kaikki tarvittavat resurssit: kognitiiviset palvelut, sovellussuunnitelma, Application Insights, tietokanta ja niin edelleen.

QnA Maker

Voit luoda yksinkertaisia ​​botteja yritysten Q&A-tietokantoihin perustuen QnA Maker -kognitiivisen palvelun avulla. Se on toteutettu yksinkertaisena web-velhona, ja sen avulla voit syöttää linkin yrityksen tietokantaan (FAQ URLs) tai käyttää *.doc- tai *.pdf-muodossa olevaa asiakirjatietokantaa perustana. Indeksin luomisen jälkeen botti valitsee automaattisesti sopivimmat vastaukset käyttäjän kysymyksiin.

QnAMakeria käyttämällä voit myös luoda selventävien kysymysten ketjuja automaattisella painikkeiden luomisella, täydentää tietokantaa metatiedoilla ja kouluttaa palvelua edelleen käytön aikana.

Palvelua voidaan käyttää chatbottina, joka toteuttaa vain tämän yhden toiminnon, tai osana monimutkaista chatbotia, joka käyttää pyynnöstä riippuen muita tekoälypalveluita tai Bot Frameworkin elementtejä.

Työskentely muiden kognitiivisten palveluiden kanssa

Azure-alustalla on monia erilaisia ​​kognitiivisia palveluita. Teknisesti nämä ovat itsenäisiä verkkopalveluita, joita voidaan kutsua koodista. Vastauksena palvelu lähettää tietyn muotoisen json-tiedoston, jota voidaan käyttää chatbotissa.

Nopeutamme kehitystä Azure-palveluilla: luomme chatbotteja ja kognitiivisia palveluita alustan avulla
Chatbottien yleisimmät käyttötarkoitukset ovat:

  1. Tekstin tunnistaminen.
  2. Kehittäjän määrittämien Custom Vision Service -kuvakategorioiden tunnistaminen (tuotantotapaus: tunnistus siitä, onko työntekijällä suojakypärä, suojalasit tai maski).
  3. Kasvojentunnistus (erinomainen käyttötapa on tarkistaa, onko tutkittava julkaissut omat kasvonsa, tai vaikkapa valokuvan koirasta tai valokuvaa eri sukupuolta olevasta henkilöstä).
  4. Puheentunnistus.
  5. Kuva-analyysi.
  6. Käännös (me kaikki muistamme, kuinka paljon melua Skypen simultaanikäännös aiheutti).
  7. Oikeinkirjoituksen tarkistus ja ehdotuksia virheiden korjaamiseksi.

LUIS

Saatat tarvita myös robottien luomiseen LUIS (Language Understanding Intelligent Service). Palvelun tavoitteet:

  • Selvitä, onko käyttäjän lausunto järkevä ja onko botin vastaus tarpeen.
  • Vähennä ponnisteluja käyttäjien puheen (tekstin) transkriptoimiseksi komentoiksi, jotka robotti ymmärtää.
  • Ennusta todellisia käyttäjien tavoitteita/aikomuksia ja poimi keskeisiä oivalluksia dialogissa olevista lauseista.
  • Anna kehittäjän käynnistää botti käyttämällä vain muutamia esimerkkejä merkityksen tunnistamisesta ja sen jälkeisestä lisäkoulutuksesta botin käytön aikana.
  • Salli kehittäjän käyttää visualisointia komentojen transkription laadun arvioimiseen.
  • Auta asteittain parantamaan todellista kohteen tunnistusta.

Itse asiassa LUIS:n päätavoite on ymmärtää tietyllä todennäköisyydellä, mitä käyttäjä tarkoitti, ja muuntaa luonnollisen pyynnön harmoniseksi komennon. Kyselyarvojen tunnistamiseen LUIS käyttää joukkoa tavoitteita (merkityksiä, aikomuksia) ja kokonaisuuksia (joko kehittäjien ennalta määrittämiä tai valmiita "verkkotunnuksia" - joitain Microsoftin valmistamia valmiita vakiolausekkeiden kirjastoja). 

Yksinkertainen esimerkki: sinulla on botti, joka antaa sinulle sääennusteen. Hänelle tarkoitus on luonnollisen pyynnön kääntäminen "toiminnaksi" - sääennustepyynnöksi, ja entiteetit ovat aika ja paikka. Tässä on kaavio siitä, kuinka CheckWeatherin tarkoitus toimii tällaisessa robotissa.

Tahallisuus
olemus
Esimerkki luonnollisesta kyselystä

Tarkista sää
{"type": "location", "entity": "moscow"}
{"type": "builtin.datetimeV2.date", "entity": "future","resolution":"2020-05-30"}
Millainen sää on huomenna Moskovassa?

Tarkista sää
{ "type": "date_range", "entity": "tänä viikonloppuna" }
Näytä minulle tämän viikonlopun ennuste

Voit yhdistää QnA Makerin ja LUIS:n lähettäjä

Nopeutamme kehitystä Azure-palveluilla: luomme chatbotteja ja kognitiivisia palveluita alustan avulla

Kun työskentelet QnA Makerin kanssa ja vastaanotat pyynnön käyttäjältä, järjestelmä määrittää, kuinka suurella todennäköisyydellä QnA:n vastaus vastaa pyyntöä. Jos todennäköisyys on suuri, käyttäjälle annetaan yksinkertaisesti vastaus yrityksen tietokannasta, jos se on pieni, pyyntö voidaan lähettää LUIS:iin selvennystä varten. Dispatcherin avulla voit olla ohjelmoimatta tätä logiikkaa, vaan määrittää automaattisesti tämän pyyntöjen erottelun reunan ja jakaa ne nopeasti.

Botin testaus ja julkaisu

Testaukseen käytetään toista paikallista sovellusta, Bottikehyksen emulaattori. Emulaattorin avulla voit kommunikoida botin kanssa ja tarkistaa sen lähettämät ja vastaanottamat viestit. Emulaattori näyttää viestit sellaisina kuin ne näkyisivät verkkokeskusteluliittymässä ja kirjaa JSON-pyynnöt ja vastaukset, kun viestit botille.

Tässä demossa on esimerkki emulaattorin käytöstä, joka näyttää virtuaalisen avustajan luomisen BMW:lle. Videolla puhutaan myös uusista kiihdyttimistä chatbottien luomiseen - malleja:

Nopeutamme kehitystä Azure-palveluilla: luomme chatbotteja ja kognitiivisia palveluita alustan avulla
https://youtu.be/u7Gql-ClcVA?t=564

Voit myös käyttää malleja chatbotteja luodessasi. 
Mallit mahdollistavat standardien bot-toimintojen kirjoittamisen uudelleen, vaan valmiin koodin lisäämisen "taitoon". Esimerkkinä voisi olla työskentely kalenterin kanssa, tapaamisten tekeminen jne. Valmiiden taitojen koodi julkaistu githubissa.

Testaus onnistui, botti on valmis, ja nyt se on julkaistava ja kanavat yhdistettävä. Julkaiseminen tapahtuu Azurella, ja kanavina voidaan käyttää lähettiläitä tai sosiaalisia verkostoja. Jos sinulla ei ole tarvittavaa kanavaa tietojen syöttämiseen, voit etsiä sitä vastaavasta GitHabin yhteisöstä. 

Lisäksi, jotta voit luoda täysimittaisen chatbotin käyttöliittymäksi kommunikointiin käyttäjän ja kognitiivisten palvelujen kanssa, tarvitset tietysti lisää Azure-palveluita, kuten tietokantoja, palvelimettomia (Azure Functions) sekä LogicApp-palveluita ja mahdollisesti , Tapahtumaruudukko.

Nopeutamme kehitystä Azure-palveluilla: luomme chatbotteja ja kognitiivisia palveluita alustan avulla

Arviointi ja analyysi

Arvioidaksesi käyttäjien vuorovaikutusta, voit käyttää sekä Azure Bot Servicen sisäänrakennettua analytiikkaa että erityistä Application Insights -palvelua.

Tämän seurauksena voit kerätä tietoja seuraavien kriteerien perusteella:

  • Kuinka monta käyttäjää on käyttänyt bottia eri kanavista valitun ajanjakson aikana.
  • Kuinka moni yhden viestin lähettänyt käyttäjä palasi myöhemmin ja lähetti toisen.
  • Kuinka monta toimintoa lähetettiin ja vastaanotettiin kullakin kanavalla määritetyn ajanjakson aikana.

Application Insightsin avulla voit valvoa mitä tahansa Azuren sovellusta ja erityisesti chatbotteja saadakseen lisätietoja käyttäjien käyttäytymisestä, latauksista ja chatbotin reaktioista. On huomattava, että Application Insights -palvelulla on oma käyttöliittymänsä Azure-portaalissa.

Voit myös käyttää tämän palvelun kautta kerättyjä tietoja luodaksesi lisävisualisointeja ja analyyttisiä raportteja PowerBI:ssä. Esimerkki tällaisesta PowerBI:n raportista ja mallista voidaan ottaa täällä.

Nopeutamme kehitystä Azure-palveluilla: luomme chatbotteja ja kognitiivisia palveluita alustan avulla

Kiitos kaikille huomiosta! Tässä artikkelissa käytimme materiaali Microsoft Azure -arkkitehti Anna Fenyushinan webinaarista "Kun ihmisillä ei ole aikaa. Kuinka käyttää chatbotteja ja kognitiivisia palveluita 100-prosenttisesti rutiiniprosessien automatisoimiseen”, jossa näytimme selkeästi, mitä chatbotit ovat Azuressa ja mitkä ovat niiden käyttöskenaariot, sekä osoitimme, kuinka botti luodaan QnA Makerissa 15 minuutissa ja miten kyselyn rakenne puretaan LUISissa. 

Teimme tämän webinaarin osana kehittäjien Dev Bootcampille tarkoitettua online-maratonia. Kyse oli tuotteista, jotka nopeuttavat kehitystä ja keventävät yrityksen työntekijöiden rutiinityötä käyttämällä automaatiotyökaluja ja valmiita esikonfiguroituja Azure-moduuleja. Muiden maratonin webinaareiden tallenteet löytyvät seuraavista linkeistä:

Lähde: will.com

Lisää kommentti