A fejlesztés gyorsítása Azure szolgáltatások segítségével: chat-botok és kognitív szolgáltatások létrehozása a platform eszközeivel.

Helló, Habr! Ma arról fogunk beszélni, hogyan lehet az Azure segítségével olyan feladatokat megoldani, amelyek általában emberi beavatkozást igényelnek. A kezelők sok időt töltenek azzal, hogy ugyanazokra a kérdésekre válaszolnak, telefonhívásokat kezelnek és szöveges üzeneteket válaszolnak meg. A chatbotok automatizálják a kommunikációt és a felismerést, ami csökkenti az emberek terheltségét. A botokat az Azure DevOps-ban is használják, ahol például jóváhagyhatják a kiadásokat, kezelhetik az összegyűjtéseket — megtekinthetik, elindíthatják és leállíthatják — közvetlenül a Slackből vagy a Microsoft Teamsből. Lényegében a chatbot valami hasonlít a CLI-re, csak interaktív, és lehetővé teszi a fejlesztő számára, hogy ne lépjen ki a csevegés kontextusából.

Ebben a cikkben a chatbotok létrehozásához szükséges eszközökről fogunk beszélni, megmutatjuk, hogyan lehet őket fejleszteni a kognitív szolgáltatások segítségével, és leírjuk, hogyan lehet felgyorsítani a fejlesztést az Azure kész szolgáltatásainak köszönhetően.

A fejlesztés gyorsítása Azure szolgáltatások segítségével: chat-botok és kognitív szolgáltatások létrehozása a platform eszközeivel.

Chatbotok és kognitív szolgáltatások: mi a hasonlóság és mi a különbség

A Microsoft Azure-ban a chatbotok létrehozásához az Azure Bot szolgáltatást és a Bot Framework platformot használják. Ezek együtt egy szoftvercsomagot alkotnak a chatbotok összeállításához, teszteléséhez, telepítéséhez és adminisztrálásához, amely lehetővé teszi, hogy kész modulokból egyszerű és fejlett kommunikációs rendszereket hozzanak létre, amelyek támogatják a beszédet, a természetes nyelv felismerését és egyéb funkciókat.

Tegyük fel, hogy egyszerű botot kell megvalósítania egy vállalati kérdés-válasz szolgáltatás alapján, vagy éppen ellenkezőleg, egy funkcionális botot kell létrehoznia bonyolult, ágazati kommunikációs rendszerrel. Ehhez számos eszközt vehet igénybe, amelyeket három csoportra oszthatunk: 

  1. Gyors párbeszédkezelő (bot) szolgáltatások.
  2. Kész kognitív AI szolgáltatások különböző felhasználási forgatókönyvekhez (képfelismerés, beszédfelismerés, tudásbázis és keresés).
  3. AI modellek készítése és oktatása szolgáltatások.

Az emberek általában intuitívan összekeverik a "botokat" és a "kognitív szolgáltatásokat", mert mindkét fogalom alapja a kommunikációs elv, és a botok és szolgáltatások használati forgatókönyvében párbeszédek találhatók. De a chatbotok kulcsszavakkal és triggerekrel dolgoznak, míg a kognitív szolgáltatások véletlenszerű kérdésekkel foglalkoznak, amelyeket általában emberek kezelnek: 

A fejlesztés gyorsítása Azure szolgáltatások segítségével: chat-botok és kognitív szolgáltatások létrehozása a platform eszközeivel.

A kognitív szolgáltatások az egyik módja a felhasználókkal való kommunikációnak, amely segít az általános kérdést egy világos parancsra konvertálni, és átadni azt a botnak. 

Ezért a chatbotok olyan alkalmazások a kérdések kezelésére, míg a kognitív szolgáltatások okos kérésanalizáló eszközök, amelyek külön működnek, de a chatbot hozzáférhet hozzájuk, így 'intelligenssé' válik. 

Chatbotok létrehozása

A javasolt bottervezési séma az Azure-ban a következőképpen néz ki: 

A fejlesztés gyorsítása Azure szolgáltatások segítségével: chat-botok és kognitív szolgáltatások létrehozása a platform eszközeivel.

Az Azure-ban a botok tervezése és fejlesztése során Bot Framework. A GitHubon található botpéldák, a keretrendszer lehetőségei változnak, ezért figyelembe kell venni a botokban használt SDK verzióját.

A keretrendszer több lehetőséget kínál botok létrehozására: klasszikus kód, parancssori eszközök vagy folyamatábra segítségével. Az utolsó lehetőség vizualizálja a párbeszédeket, ehhez a Bot Framework Composermenedzsert lehet használni. Ezt a Bot Framework SDK-ra alapozva tervezték, mint vizuális fejlesztői eszközt, amelyet interdiszciplináris csapatok használhatnak botok létrehozására.

A fejlesztés gyorsítása Azure szolgáltatások segítségével: chat-botok és kognitív szolgáltatások létrehozása a platform eszközeivel.

A Bot Framework Composer lehetővé teszi a blokkok segítségével a párbeszédszerkezet létrehozását, amellyel a bot dolgozni fog. Továbbá indítókat is létrehozhatunk, azaz olyan kulcsszavakat, amelyekre a bot reagálni fog a párbeszéd során, például a "operátor", "lopás", "állj" vagy "elegendő" szavakra.

A Bot Framework Composer lehetővé teszi, hogy bonyolult, ágazatozott párbeszédsorozatokat hozzunk létre, az Adaptív párbeszédekhasználatával. A párbeszédek kognitív szolgáltatásokat és eseménykártyákat (Adaptív Kártyák) is használhatnak:

A fejlesztés gyorsítása Azure szolgáltatások segítségével: chat-botok és kognitív szolgáltatások létrehozása a platform eszközeivel.

A létrehozás után a chatbotot automatikusan telepítheti egy előfizetésbe, és az automatikusan előkészített script létrehozza az összes szükséges erőforrást: kognitív szolgáltatások, alkalmazás terv, Application Insights, adatbázis stb.

QnA Maker

Egyszerű botok létrehozásához, amelyek vállalati kérdés-válasz adatbázisokra alapoznak, a QnA Maker kognitív szolgáltatást használhatja. Egyszerű webvarázsló formájában megvalósítva lehetővé teszi, hogy egy vállalati tudásbázis (GYIK URL) hivatkozását adja meg bemenetként vagy *.doc vagy *.pdf formátumú dokumentumok adatbázisát alapul véve. Az index létrehozása után a bot automatikusan kiválasztja a legmegfelelőbb válaszokat a felhasználók kérdéseire.

A QnAMaker segítségével pontos kérdések sorait is létrehozhatjuk automatikus gombképzéssel, kiegészíthetjük a tudásbázist metainformációkkal, és a szolgáltatást a használat során továbbképezhetjük.

A szolgáltatás csevegőbotként is használható, amely csak ezt a funkciót valósítja meg, vagy egy összetett csevegőbot részeként, amely a kérdéstől függően más MI-szolgáltatásokat vagy a Bot Framework elemeit is alkalmazza.

Munka más kognitív szolgáltatásokkal

Az Azure platformon sok különféle kognitív szolgáltatás található. Technikailag ezek önálló webszolgáltatások, amelyeket a kódon keresztül lehet hívni. A szolgáltatás válaszként egy adott formátumú json-t küld, amelyet a csevegőbotban felhasználhatunk.

A fejlesztés gyorsítása Azure szolgáltatások segítségével: chat-botok és kognitív szolgáltatások létrehozása a platform eszközeivel.
A csevegőbotokban leggyakrabban a következők használhatók:

  1. Szövegfelismerés.
  2. A Custom Vision Service által meghatározott kategóriák képfelismerése (gyártási példa: ellenőrzés, hogy a munkavállaló visel-e sisakot, védőszemüveget vagy maszkot).
  3. Arcfelismerés (kiváló felhasználási eset — az alany által benyújtott arckép ellenőrzése, vagy például egy kutya képe vagy egy másik nemű személy fényképe).
  4. Beszédfelismerés.
  5. Képanalízis.
  6. Fordítás (mindannyian emlékszünk, mennyi zajt okozott a szinkronfordítás a Skype-ban).
  7. Helyesírás ellenőrzés és javaslatok a hibák javítására.

LUIS

Botok létrehozásához szintén szükség lehet LUIS (Language Understanding Intelligent Service). A szolgáltatás feladatai:

  • Megállapítani, van-e értelme a felhasználó megnyilvánulásának, és szükséges-e a bot reakciója.
  • Csökkenteni a felhasználó által mondott szöveg (beszéd) bot által érthető parancsokká való átkonvertálásához szükséges erőfeszítéseket.
  • Megjósolni a felhasználói célokat / szándékokat, és kulcsszavakat kiemelni a párbeszéd során elhangzott kifejezésekből.
  • Lehetővé tenni a fejlesztőknek, hogy a botot néhány példa használatával indítsák el a jelentésértéshez, és a botot a munka során továbbképezhessék.
  • Lehetővé tenni a fejlesztőknek, hogy vizualizációt használjanak a parancsok átkonvertálásának minőségének értékelésére.
  • Segíteni a valódi célok felismerésének fokozatos javításában.

A LUIS valódi célja, hogy bizonyos valószínűséggel megértse, mit akart a felhasználó, és természetes kérdéseket alakítson át rendezett parancsokká. A kérdések jelentésének felismerésére a LUIS egy sor szándékot (célokat, szándékokat) és entitásokat használ (amelyek a fejlesztők által előre beállítottak, vagy a Microsoft által készített, előre formált „domének” – bizonyos kész könyvtárak, amelyek tipikus kifejezéseket tartalmaznak). 

Egyszerű példa: van egy botunk, amely időjárás-előrejelzést ad. Az ő esetében az intent a természetes kérdés átalakítása „cselekvéssé” – időjárás-előrejelzés kérése, míg az entitások az idő és a hely. Itt egy ábra a CheckWeather intent működéséről ilyen bot esetében.

Intent
Entitás
Természetes kérdés példája

CheckWeather
{„type”: „location”, „entity”: „moszkva”}
{„type”: „builtin.datetimeV2.date”, „entity”: „jövő”, „resolution”: „2020-05-30”}
Milyen időjárás lesz holnap Moszkvában?

CheckWeather
{„type”: „date_range”, „entity”: „ez a hétvége”}
Mutasd meg nekem az előrejelzést erre a hétvégére.

A QnA Maker és LUIS kombinálásához használhatjuk a Dispatcher. 

A fejlesztés gyorsítása Azure szolgáltatások segítségével: chat-botok és kognitív szolgáltatások létrehozása a platform eszközeivel.

Amikor a QnA Maker-rel dolgozik, és kérdést kap a felhasználótól, a rendszer meghatározza, hogy mekkora valószínűséggel illik a QnA-ból származó válasz a kérdéshez. Ha a valószínűség magas, a felhasználónak egyszerűen a vállalati tudásbázisból származó válasz jelenik meg, ha alacsony – a kérdés a megerősítés végett elküldhető a LUIS-nek. A Dispatcher használata lehetővé teszi ennek a logikának a programozás nélküli létrehozását, azaz automatikusan meghatározza a kérdések elválasztásának határvonalát, és gyorsan elosztja azokat.

A bot tesztelése és kiadása

A teszteléshez egy másik helyi alkalmazás használatos, Bot framework emulator. Az emulátor segítségével lehet beszélni a bottal, és ellenőrizheti, mely üzeneteket küld és kap. Az emulátor úgy jeleníti meg az üzeneteket, ahogyan azok a webes chat felületén meg fognak jelenni, és rögzíti a JSON kéréseket és válaszokat az üzenetváltás során a bottal.

Az emulátor használatának példáját ezen a bemutatón láthatjuk, ahol bemutatják a BMW számára készült virtuális asszisztens létrehozását. A videóban új chatbot létrehozási gyorsítók – sablonok – is megismerhetők.

A fejlesztés gyorsítása Azure szolgáltatások segítségével: chat-botok és kognitív szolgáltatások létrehozása a platform eszközeivel.
https://youtu.be/u7Gql-ClcVA?t=564

Sablonokat is használhat a saját chatbotjai létrehozásához. 
A sablonok lehetővé teszik, hogy ne kelljen újra megírni a bot tipikus funkcióit, hanem már kész kódot adhatunk hozzá mint "képességet". Példaként említhetjük a naptárral való munkát, találkozók szervezését stb. A kész képességek kódja. megjelent a githubon.

A tesztelés sikeresen lezajlott, a bot készen áll, és most meg kell publikálni és csatornákat kell csatlakoztatni. A publikálás az Azure eszközeivel történik, és csatornaként alkalmazhatunk üzenetküldőket vagy közösségi média felületeket. Ha nincs szükséges csatorna az adatok beérkezéséhez, megkereshetjük azt a megfelelő közösségben a GitHub-on. 

Egy teljes értékű chatbot létrehozásához, mint a felhasználókkal és a kognitív szolgáltatásokkal való kommunikációs felület, természetesen szükség lesz további Azure szolgáltatásokra, mint például adatbázisok, serverless (Azure Functions), valamint a LogicApp és esetleg az Event Grid szolgáltatásokra.

A fejlesztés gyorsítása Azure szolgáltatások segítségével: chat-botok és kognitív szolgáltatások létrehozása a platform eszközeivel.

Értékelés és analitika

A felhasználói interakciók értékelésére használhatjuk az Azure Bot Service beépített analitikáját, valamint a külön Application Insights szolgáltatást is.

Ennek eredményeként információkat gyűjthetünk az alábbi kritériumok szerint:

  • Hány felhasználó férhetett hozzá a bothoz különböző csatornákon keresztül a megadott időintervallum alatt.
  • Hány felhasználó, aki egy üzenetet küldött, később visszatért és küldött egy másikat.
  • Hány műveletet küldtek és fogadtak el minden csatornán a megadott időintervallum alatt.

Az Application Insights segítségével bármilyen Azure alkalmazást, így különösen a chatbotokat figyelhetjük, további adatokat nyerve a felhasználói viselkedésről, terhelésekről és a chatbot reakcióiról. Meg kell jegyezni, hogy az Application Insights szolgáltatásnak saját felülete van az Azure portálon.

A szolgáltatás által gyűjtött adatokat további vizualizációk és analitikai jelentések létrehozására is felhasználhatjuk a PowerBI-ben. Egy ilyen jelentés példáját és sablont a PowerBI-hez itt találhat. itt.

A fejlesztés gyorsítása Azure szolgáltatások segítségével: chat-botok és kognitív szolgáltatások létrehozása a platform eszközeivel.

Köszönjük mindenkinek a figyelmet! Ebben a cikkben használtuk valamely anyag Microsoft Azure építész, Anna Fenjushina webináriumának anyagát: „Amikor az emberek nem tudnak időben. Hogyan használjuk ki 100%-ban a chatbotokat és a kognitív szolgáltatásokat a rutinszerű folyamatok automatizálására”, ahol szemléletesen bemutattuk, hogy mik azok a chatbotok az Azure-ban, milyen alkalmazási forgatókönyvek vannak, valamint megmutattuk, hogyan lehet 15 perc alatt létrehozni egy botot a QnA Maker-ben és hogyan értelmezhető a LUIS-ben a lekérdezések struktúrája. 

Ezt a webináriumot a Dev Bootcamp fejlesztők számára rendezett online maraton keretében valósítottuk meg. A témánk a termékek voltak, amelyek felgyorsítják a fejlesztést, és leveszik a vállalat munkatársainak egy részét a rutin terhekről automatizálási eszközök és előre beállított Azure modulok segítségével. A maraton más webináriumainak felvételei elérhetők az alábbi linkeken:

Forrás: habr.com

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster