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.

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:
- Gyors párbeszédkezelő (bot) szolgáltatások.
- 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).
- 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 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:

Az Azure-ban a botok tervezése és fejlesztése során . A GitHubon található , 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 menedzsert 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 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 haszná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 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 csevegőbotokban leggyakrabban a következők használhatók:
- Szövegfelismerés.
- 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).
- 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).
- Beszédfelismerés.
- Képanalízis.
- Fordítás (mindannyian emlékszünk, mennyi zajt okozott a szinkronfordítás a Skype-ban).
- 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 (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 .

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, . 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.

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. 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.

É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. .

Köszönjük mindenkinek a figyelmet! Ebben a cikkben használtuk 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:
-
Beszélünk az Azure DevOps szolgáltatás fejlődéséről és új lehetőségeiről. Részletesen elemezzük az öt fő összetevőjét, és hogy a szolgáltatás hogyan segíti a programozás ipari fejlesztését. A bemutatóvezető — Vlagyimir Guszarov, Microsoft MVP.
Megvizsgáljuk, hogyan valósíthatjuk meg a „build as code” megközelítést bármilyen programozási nyelvhez multi-staged YAML pipelining segítségével. A bemutatóvezető — Vlagyimir Guszarov, Microsoft MVP.
Megbeszéljük, hogyan alakíthatunk ki szoftverforrás-tárolási stratégiákat, és hogyan használhatjuk a verziókezelő rendszereket Azure Repos segítségével. A bemutatóvezető — Vlagyimir Guszarov, Microsoft MVP.
Ismerjük meg az open source kezelési módszereit a fejlesztés során és a WhiteSource eszköz gyakorlati alkalmazását. Beszélünk a nyílt forráskódú komponensekben található sebezhetőségek kereséséről és a licencboldogság biztosításáról a WhiteSource segítségével. A bemutatóvezetők — Diana Lisbaron, a WhiteSource értékesítési igazgatója, és Oreskina Darya, a WhiteSource hivatalos forgalmazója Oroszországban.
Forrás: habr.com
