Urýchľujeme vývoj pomocou služieb Azure: pomocou platformy vytvárame chatbotov a kognitívne služby

Ahoj Habr! Dnes vám ukážeme, ako používať Azure na riešenie problémov, ktoré si zvyčajne vyžadujú ľudský zásah. Agenti trávia veľa času odpovedaním na rovnaké otázky, vybavovaním telefonátov a textových správ. Chatboty automatizujú komunikáciu a rozpoznávanie a znižujú záťaž pre ľudí. Boti sa využívajú aj v Azure DevOps, kde umožňujú napríklad schvaľovať vydania, spravovať zostavy – prezerať, spúšťať a zastavovať – priamo zo Slacku alebo Microsoft Teams. V podstate chatbot trochu pripomína CLI, len interaktívny a umožňuje vývojárovi zostať v kontexte diskusie cez chat.

V tomto článku si povieme o nástrojoch na vytváranie chatbotov, ukážeme si, ako ich možno vylepšiť pomocou kognitívnych služieb a popíšeme, ako urýchliť vývoj pomocou hotových služieb v Azure.

Urýchľujeme vývoj pomocou služieb Azure: pomocou platformy vytvárame chatbotov a kognitívne služby

Chatboti a kognitívne služby: aké sú podobnosti a aké sú rozdiely?

Na vytvorenie robotov v Microsoft Azure použite službu Azure Bot Service a Bot Framework. Spoločne predstavujú sadu softvéru na zostavovanie, testovanie, nasadzovanie a správu botov, ktorý umožňuje z hotových modulov vytvárať jednoduché aj pokročilé komunikačné systémy s podporou reči, rozpoznávaním prirodzeného jazyka a ďalšími možnosťami.

Predpokladajme, že potrebujete implementovať jednoduchého bota založeného na firemnej službe Q&A alebo naopak vytvoriť funkčného bota s komplexným, rozvetveným komunikačným systémom. Na tento účel môžete použiť množstvo nástrojov rozdelených do troch skupín: 

  1. Služby pre rýchly vývoj dialógových rozhraní (botov).
  2. Hotové kognitívne služby AI pre rôzne prípady použitia (rozpoznávanie vzorov, rozpoznávanie reči, báza znalostí a vyhľadávanie).
  3. Služby na vytváranie a trénovanie modelov AI.

Ľudia si zvyčajne intuitívne zamieňajú „boty“ a „kognitívne služby“, pretože oba koncepty sú založené na princípe komunikácie a prípad použitia pre roboty a služby zahŕňa dialógy. Chatboty však pracujú s kľúčovými slovami a spúšťačmi a kognitívne služby pracujú s ľubovoľnými požiadavkami, ktoré zvyčajne spracúvajú ľudia: 

Urýchľujeme vývoj pomocou služieb Azure: pomocou platformy vytvárame chatbotov a kognitívne služby

Ďalším spôsobom komunikácie s používateľom sú kognitívne služby, ktoré pomáhajú previesť ľubovoľnú požiadavku na jasný príkaz a odovzdať ho robotovi. 

Chatboty sú teda aplikácie na prácu s požiadavkami a kognitívne služby sú nástroje na inteligentnú analýzu požiadaviek, ktoré sa spúšťajú samostatne, ale ku ktorým má chatbot prístup a stáva sa „inteligentným“. 

Vytváranie chatbotov

Odporúčaný diagram návrhu pre robota v Azure je nasledovný: 

Urýchľujeme vývoj pomocou služieb Azure: pomocou platformy vytvárame chatbotov a kognitívne služby

Ak chcete navrhnúť a vyvinúť roboty v Azure, použite Bot Framework. Dostupné na GitHub príklady robotov, schopnosti frameworku sa menia, preto je potrebné brať do úvahy verziu SDK, ktorá je v botoch použitá.

Framework poskytuje niekoľko možností na vytváranie botov: pomocou klasického kódu, nástrojov príkazového riadku alebo vývojových diagramov. Posledná možnosť zobrazuje dialógy, na to môžete použiť správcu Bot Framework Composer. Bol postavený na súprave Bot Framework SDK ako vizuálny vývojový nástroj, ktorý môžu medzidisciplinárne tímy používať na vytváranie robotov.

Urýchľujeme vývoj pomocou služieb Azure: pomocou platformy vytvárame chatbotov a kognitívne služby

Bot Framework Composer vám umožňuje použiť bloky na vytvorenie štruktúry dialógu, s ktorou bude robot pracovať. Okrem toho môžete vytvárať spúšťače, teda kľúčové slová, na ktoré bude robot počas dialógu reagovať. Napríklad slová „operátor“, „krádež“ alebo „stop“ a „dosť“.

V Bot Framework Composer môžete vytvárať zložité dialógové systémy pomocou Adaptívne dialógy. Dialógy môžu využívať kognitívne služby aj karty udalostí (Adaptívne karty):

Urýchľujeme vývoj pomocou služieb Azure: pomocou platformy vytvárame chatbotov a kognitívne služby

Po vytvorení môžete chatbota nasadiť v predplatnom a automaticky pripravený skript vytvorí všetky potrebné zdroje: kognitívne služby, aplikačný plán, aplikačné prehľady, databázu atď.

Tvorca QnA

Na vytváranie jednoduchých robotov založených na podnikových databázach otázok a odpovedí môžete použiť kognitívnu službu QnA Maker. Implementovaný ako jednoduchý webový sprievodca vám umožňuje vložiť odkaz na podnikovú vedomostnú základňu (FAQ Urls) alebo použiť ako základ databázu dokumentov vo formáte *.doc alebo *.pdf. Po vytvorení indexu robot automaticky vyberie najvhodnejšie odpovede na otázky používateľa.

Pomocou QnAMaker môžete tiež vytvárať reťazce objasňujúcich otázok s automatickým vytváraním tlačidiel, dopĺňať bázu znalostí o metadáta a ďalej trénovať službu počas používania.

Službu je možné použiť ako chatbot, ktorý implementuje iba túto jednu funkciu, alebo ako súčasť komplexného chatbota, ktorý v závislosti od požiadavky využíva ďalšie služby AI alebo prvky Bot Frameworku.

Práca s inými kognitívnymi službami

Na platforme Azure existuje veľa rôznych kognitívnych služieb. Technicky ide o nezávislé webové služby, ktoré je možné volať z kódu. V odpovedi služba odošle súbor json určitého formátu, ktorý možno použiť v chatbote.

Urýchľujeme vývoj pomocou služieb Azure: pomocou platformy vytvárame chatbotov a kognitívne služby
Najbežnejšie použitia chatbotov sú:

  1. Rozpoznávanie textu.
  2. Rozpoznanie kategórií obrázkov služby Custom Vision Service definovaných vývojárom (výrobný prípad: rozpoznanie toho, či zamestnanec nosí prilbu, okuliare alebo masku).
  3. Rozpoznávanie tváre (výborným prípadom použitia je kontrola, či skúmaná osoba zverejnila svoju vlastnú tvár, alebo povedzme fotografiu psa alebo fotografiu osoby iného pohlavia).
  4. Rozpoznávanie reči.
  5. Analýza obrazu.
  6. Preklad (všetci si pamätáme, koľko hluku spôsobil simultánny preklad v Skype).
  7. Kontrola pravopisu a návrhy na opravu chýb.

LUIS

Môžete tiež potrebovať na vytvorenie robotov LUIS (Jazykové porozumenie Intelligent Service). Ciele služby:

  • Zistite, či má vyhlásenie používateľa zmysel a či je potrebná odpoveď robota.
  • Znížte úsilie o prepis reči používateľa (textu) do príkazov zrozumiteľných pre robota.
  • Predpovedajte skutočné ciele/zámery používateľov a získajte kľúčové poznatky z fráz v dialógu.
  • Umožnite vývojárovi spustiť robota pomocou niekoľkých príkladov rozpoznávania významu a následného dodatočného školenia robota počas prevádzky.
  • Umožnite vývojárovi použiť vizualizáciu na posúdenie kvality prepisu príkazu.
  • Pomáha pri postupnom zlepšovaní skutočného rozpoznania cieľa.

V skutočnosti je hlavným cieľom LUIS s určitou pravdepodobnosťou pochopiť, čo tým používateľ myslel a premeniť prirodzenú požiadavku na harmonický príkaz. Na rozpoznanie hodnôt dotazov používa LUIS množinu zámerov (významov, zámerov) a entít (buď vopred nakonfigurovaných vývojármi, alebo prevzaté a vopred vytvorené „domény“ - niektoré hotové knižnice štandardných fráz pripravených spoločnosťou Microsoft). 

Jednoduchý príklad: máte robota, ktorý vám dáva predpoveď počasia. Zámerom pre neho bude premena prirodzenej požiadavky na „akciu“ – žiadosť o predpoveď počasia a entitami bude čas a miesto. Tu je schéma toho, ako funguje zámer CheckWeather pre takéhoto robota.

Zámer
esencie
Príklad prirodzeného dopytu

Skontrolujte počasie
{"type": "location", "entity": "moskva"}
{"type": "builtin.datetimeV2.date", "entity": "future","resolution":"2020-05-30"}
Aké bude zajtra počasie v Moskve?

Skontrolujte počasie
{ "type": "date_range", "entity": "tento víkend" }
Ukáž mi predpoveď na tento víkend

Na kombináciu QnA Maker a LUIS môžete použiť odosielateľ

Urýchľujeme vývoj pomocou služieb Azure: pomocou platformy vytvárame chatbotov a kognitívne služby

Keď pracujete s QnA Maker a dostanete požiadavku od používateľa, systém určí, aké percento pravdepodobnosti sa odpoveď z QnA zhoduje s požiadavkou. Ak je pravdepodobnosť vysoká, používateľovi sa jednoducho dostane odpoveď z podnikovej znalostnej bázy; ak je nízka, žiadosť môže byť zaslaná do LUIS na objasnenie. Použitie Dispečera vám umožňuje neprogramovať túto logiku, ale automaticky určiť túto hranicu oddelenia požiadaviek a rýchlo ich distribuovať.

Testovanie a publikovanie robota

Na testovanie sa používa iná lokálna aplikácia, Emulátor rámca botov. Pomocou emulátora môžete komunikovať s robotom a kontrolovať správy, ktoré odosiela a prijíma. Emulátor zobrazuje správy tak, ako by sa objavili v rozhraní webového rozhovoru, a pri odosielaní správ robotovi zaznamenáva požiadavky a odpovede JSON.

Príklad použitia emulátora je uvedený v tejto ukážke, ktorá ukazuje vytvorenie virtuálneho asistenta pre BMW. Video hovorí aj o nových akcelerátoroch na vytváranie chatbotov – šablón:

Urýchľujeme vývoj pomocou služieb Azure: pomocou platformy vytvárame chatbotov a kognitívne služby
https://youtu.be/u7Gql-ClcVA?t=564

Pri vytváraní chatbotov môžete použiť aj šablóny. 
Šablóny vám umožňujú nepísať štandardné funkcie robotov nanovo, ale pridať hotový kód ako „zručnosť“. Príkladom môže byť práca s kalendárom, schôdzky a pod. Kódex hotových zručností zverejnená na githube.

Testovanie bolo úspešné, robot je pripravený a teraz ho treba zverejniť a pripojiť kanály. Publikovanie sa vykonáva pomocou Azure a ako kanály možno použiť messengery alebo sociálne siete. Ak nemáte požadovaný kanál na zadávanie údajov, môžete ho vyhľadať v príslušnej komunite na GitHab. 

Taktiež na vytvorenie plnohodnotného chatbota ako rozhrania na komunikáciu s používateľom a kognitívne služby budete samozrejme potrebovať ďalšie služby Azure, ako sú databázy, bezserverové (Azure Functions), ako aj služby LogicApp a príp. , Mriežka udalostí.

Urýchľujeme vývoj pomocou služieb Azure: pomocou platformy vytvárame chatbotov a kognitívne služby

Hodnotenie a analýza

Na vyhodnotenie interakcie používateľov môžete použiť vstavanú analytiku služby Azure Bot Service aj špeciálnu službu Application Insights.

V dôsledku toho môžete zhromažďovať informácie na základe nasledujúcich kritérií:

  • Koľko používateľov pristúpilo k robotovi z rôznych kanálov počas zvoleného časového obdobia.
  • Koľko používateľov, ktorí poslali jednu správu, sa neskôr vrátilo a poslalo ďalšiu.
  • Koľko akcií bolo odoslaných a prijatých pomocou každého kanála počas určeného časového intervalu.

Pomocou Application Insights môžete sledovať akúkoľvek aplikáciu v Azure a najmä chatbotov, získavať ďalšie údaje o správaní používateľov, záťaži a reakciách chatbotov. Treba si uvedomiť, že služba Application Insights má na portáli Azure svoje rozhranie.

Údaje zhromaždené prostredníctvom tejto služby môžete použiť aj na vytváranie ďalších vizualizácií a analytických zostáv v PowerBI. Môžeme si vziať príklad takejto zostavy a šablóny pre PowerBI tu.

Urýchľujeme vývoj pomocou služieb Azure: pomocou platformy vytvárame chatbotov a kognitívne služby

Ďakujem vám všetkým za pozornosť! V tomto článku sme použili materiál z webinára od architektky Microsoft Azure Anny Fenyushinovej „Keď ľudia nemajú čas. Ako na 100 % využiť chatboty a kognitívne služby na automatizáciu rutinných procesov“, kde sme názorne ukázali, čo sú chatboty v Azure a aké sú scenáre ich použitia, a tiež ukázali, ako vytvoriť bota v QnA Maker za 15 minút a ako štruktúra dotazu je dešifrovaná v LUIS. 

Tento webinár sme vytvorili ako súčasť online maratónu pre vývojárov Dev Bootcamp. Išlo o produkty, ktoré urýchľujú vývoj a odbremeňujú od zamestnancov spoločnosti časť rutinnej práce pomocou automatizačných nástrojov a hotových predkonfigurovaných modulov Azure. Záznamy ďalších webinárov zahrnutých do maratónu sú dostupné na nasledujúcich odkazoch:

Zdroj: hab.com

Pridať komentár