Urychlujeme vývoj pomocí služeb Azure: pomocí platformy vytváříme chatboty a kognitivní služby

Dobrý den, Habr! Dnes vám ukážeme, jak používat Azure k řešení problémů, které obvykle vyžadují lidský zásah. Agenti tráví spoustu času odpovídáním na stejné otázky, vyřizováním telefonních hovorů a textových zpráv. Chatboti automatizují komunikaci a rozpoznávání a snižují zátěž lidí. Boti se používají i v Azure DevOps, kde umožňují například schvalovat vydání, spravovat sestavení – prohlížet, spouštět a zastavovat – přímo ze Slacku nebo Microsoft Teams. V podstatě chatbot trochu připomíná CLI, pouze interaktivní a umožňuje vývojáři zůstat v kontextu chatovací diskuse.

V tomto článku si povíme o nástrojích pro tvorbu chatbotů, ukážeme si, jak je lze vylepšit pomocí kognitivních služeb, a popíšeme, jak zrychlit vývoj pomocí hotových služeb v Azure.

Urychlujeme vývoj pomocí služeb Azure: pomocí platformy vytváříme chatboty a kognitivní služby

Chatboti a kognitivní služby: jaké jsou podobnosti a jaké jsou rozdíly?

Chcete-li vytvořit roboty v Microsoft Azure, použijte Azure Bot Service a Bot Framework. Společně představují sadu softwaru pro stavbu, testování, nasazování a správu botů, která umožňuje z hotových modulů vytvářet jednoduché i pokročilé komunikační systémy s podporou řeči, rozpoznáváním přirozeného jazyka a dalšími možnostmi.

Předpokládejme, že potřebujete implementovat jednoduchého bota založeného na firemní službě Q&A nebo naopak vytvořit funkčního bota se složitým, rozvětveným komunikačním systémem. K tomu můžete použít řadu nástrojů rozdělených do tří skupin: 

  1. Služby pro rychlý vývoj dialogových rozhraní (botů).
  2. Hotové kognitivní služby umělé inteligence pro různé případy použití (rozpoznávání vzorů, rozpoznávání řeči, znalostní báze a vyhledávání).
  3. Služby pro vytváření a trénování modelů umělé inteligence.

Lidé si obvykle intuitivně pletou „boty“ a „kognitivní služby“, protože oba koncepty jsou založeny na principu komunikace a případ použití pro roboty a služby zahrnuje dialogy. Chatboti však pracují s klíčovými slovy a spouštěči a kognitivní služby pracují s libovolnými požadavky, které obvykle zpracovávají lidé: 

Urychlujeme vývoj pomocí služeb Azure: pomocí platformy vytváříme chatboty a kognitivní služby

Dalším způsobem komunikace s uživatelem jsou kognitivní služby, které pomáhají převést libovolný požadavek na jasný příkaz a předat jej botovi. 

Chatboti jsou tedy aplikace pro práci s požadavky a kognitivní služby jsou nástroje pro inteligentní analýzu požadavků, které jsou spouštěny samostatně, ale ke kterým má chatbot přístup a stává se „inteligentním“. 

Vytváření chatbotů

Doporučený návrhový diagram pro robota v Azure je následující: 

Urychlujeme vývoj pomocí služeb Azure: pomocí platformy vytváříme chatboty a kognitivní služby

Chcete-li navrhnout a vyvinout roboty v Azure, použijte BotFramework. Dostupné na GitHubu příklady robotů, mění se možnosti frameworku, takže je nutné vzít v úvahu verzi SDK, která je v botech použita.

Framework poskytuje několik možností pro vytváření botů: pomocí klasického kódu, nástrojů příkazového řádku nebo vývojových diagramů. Poslední možnost zobrazuje dialogy, k tomu můžete použít správce Bot Framework Composer. Byl postaven na Bot Framework SDK jako vizuální vývojový nástroj, který mohou mezioborové týmy používat k vytváření botů.

Urychlujeme vývoj pomocí služeb Azure: pomocí platformy vytváříme chatboty a kognitivní služby

Bot Framework Composer umožňuje pomocí bloků vytvořit strukturu dialogu, se kterou bude bot pracovat. Navíc můžete vytvořit spouštěče, tedy klíčová slova, na která bude robot během dialogu reagovat. Například slova „operátor“, „krádež“ nebo „stop“ a „dost“.

V Bot Framework Composer můžete vytvářet složité dialogové systémy pomocí Adaptivní dialogy. Dialogy mohou využívat jak kognitivní služby, tak karty událostí (Adaptivní karty):

Urychlujeme vývoj pomocí služeb Azure: pomocí platformy vytváříme chatboty a kognitivní služby

Po vytvoření můžete chatbota nasadit v předplatném a automaticky připravený skript vytvoří všechny potřebné prostředky: kognitivní služby, aplikační plán, Application Insights, databázi a tak dále.

Tvůrce QnA

Chcete-li vytvořit jednoduché roboty založené na podnikových databázích otázek a odpovědí, můžete použít kognitivní službu QnA Maker. Implementován jako jednoduchý webový průvodce vám umožňuje vložit odkaz na podnikovou znalostní bázi (FAQ Urls) nebo použít jako základ databázi dokumentů ve formátu *.doc nebo *.pdf. Po vytvoření indexu robot automaticky vybere nejvhodnější odpovědi na otázky uživatele.

Pomocí QnAMaker můžete také vytvářet řetězce objasňujících otázek s automatickým vytvářením tlačítek, doplňovat znalostní bázi metadaty a dále trénovat službu během používání.

Službu lze použít jako chatbota, který implementuje pouze tuto jednu funkci, nebo jako součást komplexního chatbota, který v závislosti na požadavku využívá další služby AI nebo prvky Bot Frameworku.

Práce s dalšími kognitivními službami

Na platformě Azure existuje mnoho různých kognitivních služeb. Technicky jde o nezávislé webové služby, které lze volat z kódu. V reakci na to služba odešle json určitého formátu, který lze použít v chatbotu.

Urychlujeme vývoj pomocí služeb Azure: pomocí platformy vytváříme chatboty a kognitivní služby
Nejběžnější použití chatbotů jsou:

  1. Rozpoznávání textu.
  2. Rozpoznávání kategorií obrázků služby Custom Vision Service definovaných vývojářem (produkční případ: rozpoznání, zda zaměstnanec nosí ochrannou přilbu, brýle nebo masku).
  3. Rozpoznávání obličeje (výborným případem použití je kontrola, zda sledovaná osoba zveřejnila svou vlastní tvář, řekněme fotografii psa nebo fotografii osoby jiného pohlaví).
  4. Rozpoznávání řeči.
  5. Analýza obrazu.
  6. Překlad (všichni si pamatujeme, kolik hluku způsobil simultánní překlad ve Skype).
  7. Kontrola pravopisu a návrhy na opravu chyb.

LUIS

Také k vytvoření robotů můžete potřebovat LUIS (Inteligentní služba pro porozumění jazyku). Cíle služby:

  • Zjistěte, zda má prohlášení uživatele smysl a zda je odpověď robota nezbytná.
  • Snižte úsilí o přepis uživatelské řeči (textu) do příkazů srozumitelných pro robota.
  • Předvídejte skutečné uživatelské cíle/záměry a extrahujte klíčové poznatky z frází v dialogu.
  • Umožněte vývojáři spustit robota pomocí několika příkladů rozpoznávání významu a následného dodatečného školení robota během provozu.
  • Umožněte vývojáři používat vizualizaci k posouzení kvality přepisu příkazů.
  • Pomozte při postupném vylepšování skutečného rozpoznání cíle.

Ve skutečnosti je hlavním cílem LUIS s určitou pravděpodobností pochopit, co tím uživatel myslel, a převést přirozený požadavek na harmonický příkaz. K rozpoznání hodnot dotazu používá LUIS sadu záměrů (významů, záměrů) a entit (buď předem nakonfigurovaných vývojáři, nebo převzatých a předem vytvořených „domén“ - nějaké hotové knihovny standardních frází připravené společností Microsoft). 

Jednoduchý příklad: máte robota, který vám dává předpověď počasí. Záměrem pro něj bude převedení přirozeného požadavku na „akci“ – požadavek na předpověď počasí a entitami bude čas a místo. Zde je schéma toho, jak funguje záměr CheckWeather pro takového robota.

Úmysl
Esence
Příklad přirozeného dotazu

Zkontrolujte počasí
{"type": "location", "entity": "moskva"}
{"type": "builtin.datetimeV2.date", "entity": "future","resolution":"2020-05-30"}
Jaké bude zítra počasí v Moskvě?

Zkontrolujte počasí
{ "type": "date_range", "entity": "tento víkend" }
Ukaž mi předpověď na tento víkend

Chcete-li kombinovat QnA Maker a LUIS, můžete použít Odesílatel

Urychlujeme vývoj pomocí služeb Azure: pomocí platformy vytváříme chatboty a kognitivní služby

Když pracujete s QnA Maker a přijmete požadavek od uživatele, systém určí, jaké procento pravděpodobnosti odpověď od QnA odpovídá požadavku. Je-li pravděpodobnost vysoká, uživateli se jednoduše dostane odpověď z podnikové znalostní báze, pokud je nízká, lze požadavek odeslat do LUIS k objasnění. Použití Dispatcher vám umožňuje neprogramovat tuto logiku, ale automaticky určit tuto hranu oddělení požadavků a rychle je distribuovat.

Testování a publikování robota

Pro testování se používá jiná lokální aplikace, Emulátor bot frameworku. Pomocí emulátoru můžete komunikovat s robotem a kontrolovat zprávy, které odesílá a přijímá. Emulátor zobrazuje zprávy tak, jak by se objevily v rozhraní webového chatu, a při odesílání zpráv robotu zaznamenává požadavky a odpovědi JSON.

Příklad použití emulátoru je uveden v tomto demu, který ukazuje vytvoření virtuálního asistenta pro BMW. Video také hovoří o nových akcelerátorech pro tvorbu chatbotů – šablonách:

Urychlujeme vývoj pomocí služeb Azure: pomocí platformy vytváříme chatboty a kognitivní služby
https://youtu.be/u7Gql-ClcVA?t=564

Při vytváření chatbotů můžete také použít šablony. 
Šablony vám umožňují nepsat standardní funkce botů nově, ale přidat hotový kód jako „dovednost“. Příkladem může být práce s kalendářem, sjednávání schůzek atd. Kodex připravených dovedností publikováno na githubu.

Testování bylo úspěšné, robot je připraven a nyní je třeba jej publikovat a propojit kanály. Publikování se provádí pomocí Azure a jako kanály lze použít messengery nebo sociální sítě. Pokud požadovaný kanál pro zadávání dat nemáte, můžete jej vyhledat v příslušné komunitě na GitHab. 

Také pro vytvoření plnohodnotného chatbota jako rozhraní pro komunikaci s uživatelem a kognitivními službami budete samozřejmě potřebovat další služby Azure, jako jsou databáze, bezserverové (Azure Functions), ale i služby LogicApp a popř. , Mřížka událostí.

Urychlujeme vývoj pomocí služeb Azure: pomocí platformy vytváříme chatboty a kognitivní služby

Hodnocení a analytika

K vyhodnocení interakce uživatelů můžete použít jak integrovanou analýzu Azure Bot Service, tak speciální službu Application Insights.

V důsledku toho můžete shromažďovat informace na základě následujících kritérií:

  • Kolik uživatelů přistupovalo k robotovi z různých kanálů během zvoleného časového období.
  • Kolik uživatelů, kteří odeslali jednu zprávu, se později vrátili a odeslali další.
  • Kolik akcí bylo odesláno a přijato pomocí každého kanálu během zadaného časového intervalu.

Pomocí Application Insights můžete sledovat libovolnou aplikaci v Azure a zejména chatboty, získávat další data o chování uživatelů, zatížení a reakcích chatbotů. Je třeba poznamenat, že služba Application Insights má v Azure Portal vlastní rozhraní.

Data shromážděná prostřednictvím této služby můžete také použít k vytvoření dalších vizualizací a analytických sestav v PowerBI. Lze si vzít příklad takové sestavy a šablony pro PowerBI zde.

Urychlujeme vývoj pomocí služeb Azure: pomocí platformy vytváříme chatboty a kognitivní služby

Děkuji všem za pozornost! V tomto článku jsme použili materiál z webináře od architektky Microsoft Azure Anny Fenyushiny „Když lidé nemají čas. Jak 100% využít chatboty a kognitivní služby k automatizaci rutinních procesů“, kde jsme názorně ukázali, co jsou chatboti v Azure a jaké jsou scénáře jejich použití, a také ukázali, jak vytvořit bota v QnA Makeru za 15 minut a jak struktura dotazu je dešifrována v LUIS. 

Tento webinář jsme vytvořili jako součást online maratonu pro vývojáře Dev Bootcamp. Šlo o produkty, které urychlují vývoj a odlehčují část rutinní zátěže zaměstnancům společnosti pomocí automatizačních nástrojů a hotových předkonfigurovaných modulů Azure. Záznamy dalších webinářů zahrnutých do maratonu jsou k dispozici na následujících odkazech:

Zdroj: www.habr.com

Přidat komentář