Versnel ontwikkeling met Azure-dienste: bou chatbots en kognitiewe dienste met behulp van die platform

Hallo, Habr! Vandag sal ons jou wys hoe om Azure te gebruik om probleme op te los wat tipies menslike ingryping vereis. Agente spandeer baie tyd om dieselfde vrae te beantwoord, telefoonoproepe en SMS'e te hanteer. Chatbots outomatiseer kommunikasie en herkenning en verminder die las op mense. Bots word ook in Azure DevOps gebruik, waar dit byvoorbeeld toelaat om vrystellings goed te keur, bouwerk te bestuur - sien, begin en stop - direk vanaf Slack of Microsoft Teams. In wese herinner 'n kletsbot ietwat aan 'n CLI, slegs interaktief, en laat die ontwikkelaar toe om in die konteks van die kletsbespreking te bly.

In hierdie artikel sal ons praat oor gereedskap vir die skep van chatbots, wys hoe hulle verbeter kan word met kognitiewe dienste, en beskryf hoe om ontwikkeling te bespoedig met gereedgemaakte dienste in Azure.

Versnel ontwikkeling met Azure-dienste: bou chatbots en kognitiewe dienste met behulp van die platform

Chatbots en kognitiewe dienste: wat is die ooreenkomste en wat is die verskille?

Om bots in Microsoft Azure te skep, gebruik jy die Azure Bot Service en die Bot Framework. Saam verteenwoordig hulle 'n stel sagteware vir die bou, toets, ontplooi en administreer van bots, wat jou toelaat om uit klaargemaakte modules beide eenvoudige en gevorderde kommunikasiestelsels met spraakondersteuning, natuurlike taalherkenning en ander vermoëns te skep.

Kom ons neem aan dat jy 'n eenvoudige bot moet implementeer wat gebaseer is op 'n korporatiewe V&A-diens of, omgekeerd, 'n funksionele bot met 'n komplekse, vertakte kommunikasiestelsel moet skep. Om dit te doen, kan jy 'n aantal gereedskap gebruik, verdeel in drie groepe: 

  1. Dienste vir vinnige ontwikkeling van dialoogkoppelvlakke (bots).
  2. Klaargemaakte kognitiewe KI-dienste vir verskillende gebruiksgevalle (patroonherkenning, spraakherkenning, kennisbasis en soektog).
  3. Dienste vir die skep en opleiding van KI-modelle.

Tipies verwar mense "bots" en "kognitiewe dienste" intuïtief, want beide konsepte is gebaseer op die beginsel van kommunikasie, en die gebruiksgeval vir bots en dienste behels dialoë. Maar kletsbotte werk met sleutelwoorde en snellers, en kognitiewe dienste werk met arbitrêre versoeke wat gewoonlik deur mense verwerk word: 

Versnel ontwikkeling met Azure-dienste: bou chatbots en kognitiewe dienste met behulp van die platform

Kognitiewe dienste is 'n ander manier om met die gebruiker te kommunikeer, wat help om 'n arbitrêre versoek in 'n duidelike opdrag om te skakel en dit aan die bot deur te gee. 

Geselsbotte is dus toepassings om met versoeke te werk, en kognitiewe dienste is instrumente vir intelligente ontleding van versoeke wat afsonderlik van stapel gestuur word, maar waartoe die kletsbot toegang het, en word "intelligent." 

Skep chatbots

Die aanbevole ontwerpdiagram vir 'n bot in Azure is soos volg: 

Versnel ontwikkeling met Azure-dienste: bou chatbots en kognitiewe dienste met behulp van die platform

Om bots in Azure te ontwerp en te ontwikkel, gebruik Bot Raamwerk. Beskikbaar op GitHub voorbeelde van bots, verander die vermoëns van die raamwerk, daarom is dit nodig om die weergawe van die SDK wat in die bots gebruik word, in ag te neem.

Die raamwerk bied verskeie opsies vir die skep van bots: die gebruik van klassieke kode, opdragreëlnutsgoed of vloeidiagramme. Die laaste opsie visualiseer dialoogvensters; hiervoor kan jy die bestuurder gebruik Bot Raamwerk Komponis. Dit is gebou op die Bot Framework SDK as 'n visuele ontwikkelingsinstrument wat kruisdissiplinêre spanne kan gebruik om bots te skep.

Versnel ontwikkeling met Azure-dienste: bou chatbots en kognitiewe dienste met behulp van die platform

Bot Framework Composer laat jou toe om blokke te gebruik om 'n dialoogstruktuur te skep waarmee die bot sal werk. Daarbenewens kan jy snellers skep, dit wil sê sleutelwoorde waarop die bot sal reageer tydens die dialoog. Byvoorbeeld, die woorde "operateur", "diefstal" of "stop" en "genoeg".

In Bot Framework Composer kan jy komplekse dialoogstelsels skep met behulp van Aanpasbare dialoog. Dialogue kan beide kognitiewe dienste en gebeurteniskaarte (aanpasbare kaarte) gebruik:

Versnel ontwikkeling met Azure-dienste: bou chatbots en kognitiewe dienste met behulp van die platform

Na die skepping kan u die kletsbot in 'n intekening ontplooi, en 'n outomaties voorbereide skrif sal al die nodige hulpbronne skep: kognitiewe dienste, toepassingsplan, toepassingsinsigte, databasis, ensovoorts.

QnA Maker

Om eenvoudige bots te skep gebaseer op korporatiewe V&A databasisse, kan jy die QnA Maker kognitiewe diens gebruik. Geïmplementeer as 'n eenvoudige web towenaar, dit laat jou toe om 'n skakel na 'n korporatiewe kennisbasis (FAQ URL's) in te voer of 'n dokumentdatabasis in *.doc of *.pdf-formaat as basis te gebruik. Nadat die indeks geskep is, sal die bot outomaties die mees geskikte antwoorde op die gebruiker se vrae kies.

Deur QnAMaker te gebruik, kan jy ook kettings van verduidelikende vrae skep met outomatiese skepping van knoppies, die kennisbasis aanvul met metadata, en die diens verder oplei tydens gebruik.

Die diens kan gebruik word as 'n kletsbot wat slegs hierdie een funksie implementeer, of as deel van 'n komplekse kletsbot wat, afhangende van die versoek, ander KI-dienste of elemente van die Bot-raamwerk gebruik.

Werk saam met ander kognitiewe dienste

Daar is baie verskillende kognitiewe dienste op die Azure-platform. Tegnies is dit onafhanklike webdienste wat vanaf kode geroep kan word. In reaksie hierop stuur die diens json van 'n sekere formaat, wat in die chatbot gebruik kan word.

Versnel ontwikkeling met Azure-dienste: bou chatbots en kognitiewe dienste met behulp van die platform
Die mees algemene gebruike van chatbots is:

  1. Teksherkenning.
  2. Herkenning van ontwikkelaar-gedefinieerde Custom Vision Service-beeldkategorieë (produksiegeval: erkenning of 'n werknemer 'n harde hoed, bril of masker dra).
  3. Gesigherkenning ('n uitstekende gebruiksgeval is om te kyk of die persoon wat ondervra word, sy eie gesig geplaas het, of, sê, 'n foto van 'n hond of 'n foto van 'n persoon van 'n ander geslag).
  4. Spraakherkenning.
  5. Beeldontleding.
  6. Vertaling (ons onthou almal hoeveel geraas gelyktydige vertaling in Skype veroorsaak het).
  7. Speltoets en voorstelle om foute reg te stel.

LUIS

Ook, om bots te skep wat jy dalk nodig het LUIS (Taalverstaan ​​Intelligente Diens). Diensdoelwitte:

  • Bepaal of die gebruiker se stelling sin maak en of die bot se reaksie nodig is.
  • Verminder pogings om gebruikerspraak (teks) te transkribeer in opdragte wat vir die bot verstaanbaar is.
  • Voorspel ware gebruikersdoelwitte/-voornemens en onttrek sleutelinsigte uit frases in dialoog.
  • Laat die ontwikkelaar toe om die bot te begin deur slegs 'n paar voorbeelde van betekenisherkenning en daaropvolgende bykomende opleiding van die bot tydens werking te gebruik.
  • Stel die ontwikkelaar in staat om visualisering te gebruik om die kwaliteit van opdragtranskripsie te assesseer.
  • Help met inkrementele verbeterings in ware teikenherkenning.

Trouens, die hoofdoel van LUIS is om met 'n sekere waarskynlikheid te verstaan ​​wat die gebruiker bedoel het en 'n natuurlike versoek om te skakel in 'n harmonieuse opdrag. Om navraagwaardes te herken, gebruik LUIS 'n stel bedoelings (betekenisse, bedoelings) en entiteite (óf vooraf gekonfigureer deur ontwikkelaars, óf geneem en vooraf gevormde "domeine" - sommige klaargemaakte biblioteke van standaard frases wat deur Microsoft voorberei is). 

'n Eenvoudige voorbeeld: jy het 'n bot wat vir jou 'n weervoorspelling gee. Vir hom is die bedoeling die vertaling van 'n natuurlike versoek in 'n "aksie" - 'n versoek vir 'n weervoorspelling, en die entiteite sal tyd en plek wees. Hier is 'n diagram van hoe die CheckWeather-voorneme vir so 'n bot werk.

Voorneme
wese
Voorbeeld van 'n natuurlike navraag

Kontroleer Weer
{"type": "ligging", "entiteit": "moskou"}
{"type": "builtin.datetimeV2.date", "entity": "toekoms","resolusie":"2020-05-30"}
Hoe sal die weer môre in Moskou wees?

Kontroleer Weer
{ "type": "date_range", "entity": "hierdie naweek" }
Wys my die voorspelling vir hierdie naweek

Om QnA Maker en LUIS te kombineer wat jy kan gebruik Planner

Versnel ontwikkeling met Azure-dienste: bou chatbots en kognitiewe dienste met behulp van die platform

Wanneer jy met QnA Maker werk en 'n versoek van 'n gebruiker ontvang, bepaal die stelsel watter persentasie waarskynlikheid die antwoord van QnA by die versoek pas. As die waarskynlikheid groot is, kry die gebruiker bloot 'n antwoord vanuit die korporatiewe kennisbasis; indien dit laag is, kan die versoek aan LUIS gestuur word vir verduideliking. Die gebruik van Dispatcher laat jou toe om nie hierdie logika te programmeer nie, maar om outomaties hierdie rand van die skeiding van versoeke te bepaal en dit vinnig te versprei.

Toets en publiseer die bot

Nog 'n plaaslike toepassing word gebruik vir toetsing, Bot raamwerk emulator. Deur die emulator te gebruik, kan jy met die bot kommunikeer en die boodskappe wat dit stuur en ontvang, nagaan. Die emulator vertoon boodskappe soos dit in 'n webkletskoppelvlak sal verskyn en teken JSON-versoeke en -antwoorde aan wanneer die bot boodskappe stuur.

'N Voorbeeld van die gebruik van die emulator word in hierdie demo aangebied, wat die skepping van 'n virtuele assistent vir BMW toon. Die video praat ook oor nuwe versnellers vir die skep van chatbots - sjablone:

Versnel ontwikkeling met Azure-dienste: bou chatbots en kognitiewe dienste met behulp van die platform
https://youtu.be/u7Gql-ClcVA?t=564

Jy kan ook sjablone gebruik wanneer jy jou chatbots skep. 
Sjablone laat jou toe om nie standaard botfunksies opnuut te skryf nie, maar om klaargemaakte kode as 'n "vaardigheid" by te voeg. 'n Voorbeeld kan wees om met 'n kalender te werk, afsprake te maak, ens. Kode van klaargemaakte vaardighede gepubliseer op github.

Die toetsing was suksesvol, die bot is gereed, en nou moet dit gepubliseer word en kanale gekoppel word. Publisering word uitgevoer met behulp van Azure, en boodskappers of sosiale netwerke kan as kanale gebruik word. As jy nie die vereiste kanaal het om data in te voer nie, kan jy daarvoor soek in die ooreenstemmende gemeenskap op GitHab. 

Om ook 'n volwaardige kletsbot as 'n koppelvlak vir kommunikasie met die gebruiker en kognitiewe dienste te skep, sal jy natuurlik addisionele Azure-dienste benodig, soos databasisse, bedienerloos (Azure Functions), asook LogicApp-dienste en, moontlik , Gebeurtenisrooster.

Versnel ontwikkeling met Azure-dienste: bou chatbots en kognitiewe dienste met behulp van die platform

Assessering en analise

Om gebruikersinteraksie te evalueer, kan jy beide die ingeboude analise van die Azure Bot Service en die spesiale Application Insights-diens gebruik.

As gevolg hiervan kan u inligting insamel op grond van die volgende kriteria:

  • Hoeveel gebruikers het gedurende die geselekteerde tydperk vanaf verskeie kanale toegang tot die bot gekry.
  • Hoeveel gebruikers wat een boodskap gestuur het, het later teruggekeer en nog een gestuur.
  • Hoeveel aksies is gestuur en ontvang met behulp van elke kanaal gedurende die gespesifiseerde tydinterval.

Deur Application Insights te gebruik, kan jy enige toepassing in Azure monitor, en veral kletsbotte, om bykomende data oor gebruikersgedrag, vragte en kletsbotreaksies te verkry. Daar moet kennis geneem word dat die Application Insights-diens sy eie koppelvlak in die Azure-portaal het.

U kan ook die data wat deur hierdie diens ingesamel is, gebruik om bykomende visualiserings en analitiese verslae in PowerBI te skep. 'n Voorbeeld van so 'n verslag en sjabloon vir PowerBI kan geneem word hier.

Versnel ontwikkeling met Azure-dienste: bou chatbots en kognitiewe dienste met behulp van die platform

Dankie almal vir julle aandag! In hierdie artikel het ons gebruik die materiaal van die webinar deur die Microsoft Azure-argitek Anna Fenyushina “Wanneer mense nie tyd het nie. Hoe om kletsbotte en kognitiewe dienste 100% te gebruik om roetineprosesse te outomatiseer", waar ons duidelik gewys het wat kletsbotte in Azure is en wat die scenario's vir hul gebruik is, en ook gedemonstreer het hoe om 'n bot in QnA Maker binne 15 minute te skep en hoe die navraagstruktuur word in LUIS ontsyfer. 

Ons het hierdie webinar gemaak as deel van die aanlyn marathon vir ontwikkelaars Dev Bootcamp. Dit het gegaan oor produkte wat ontwikkeling bespoedig en sommige van die roetine-werklading van maatskappywerknemers verlig wat outomatiseringsinstrumente en klaargemaakte vooraf gekonfigureerde Azure-modules gebruik. Opnames van ander webinars wat by die marathon ingesluit is, is beskikbaar by die volgende skakels:

Bron: will.com

Voeg 'n opmerking