Az Azure-szolgáltatások használatával felgyorsítjuk a fejlesztést: chatbotokat és kognitív szolgáltatásokat hozunk létre a platform segítségével

Szia Habr! Ma megmutatjuk, hogyan használhatja az Azure-t a jellemzően emberi beavatkozást igénylő problémák megoldására. Az ügynökök sok időt töltenek ugyanazon kérdések megválaszolásával, telefonhívások és szöveges üzenetek kezelésével. A chatbotok automatizálják a kommunikációt és a felismerést, és csökkentik az emberek terheit. A robotokat az Azure DevOps is használják, ahol lehetővé teszik például a kiadások jóváhagyását, a buildek kezelését – megtekintése, indítása és leállítása – közvetlenül a Slackből vagy a Microsoft Teamsből. Lényegében a chatbot némileg a CLI-re emlékeztet, csak interaktív, és lehetővé teszi a fejlesztő számára, hogy a chat-beszélgetés kontextusában maradjon.

Ebben a cikkben a chatbotok létrehozására szolgáló eszközökről fogunk beszélni, bemutatjuk, hogyan javíthatók ezek a kognitív szolgáltatásokkal, és leírjuk, hogyan gyorsíthatjuk fel a fejlesztést az Azure-beli kész szolgáltatásokkal.

Az Azure-szolgáltatások használatával felgyorsítjuk a fejlesztést: chatbotokat és kognitív szolgáltatásokat hozunk létre a platform segítségével

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

A Microsoft Azure-ban botok létrehozásához használja az Azure Bot Service és a Bot Framework szolgáltatást. Együtt egy olyan szoftverkészletet alkotnak, amely botok építésére, tesztelésére, telepítésére és adminisztrálására szolgál, amely lehetővé teszi, hogy kész modulokból egyszerű és fejlett kommunikációs rendszereket hozzon létre beszédtámogatással, természetes nyelvfelismeréssel és egyéb képességekkel.

Tegyük fel, hogy meg kell valósítania egy egyszerű botot, amely egy vállalati Q&A szolgáltatáson alapul, vagy éppen ellenkezőleg, létre kell hoznia egy működőképes botot összetett, elágazó kommunikációs rendszerrel. Ehhez számos eszközt használhat, három csoportra osztva: 

  1. Szolgáltatások párbeszédes felületek (botok) gyors fejlesztéséhez.
  2. Kész kognitív AI-szolgáltatások különböző felhasználási esetekre (mintafelismerés, beszédfelismerés, tudásbázis és keresés).
  3. AI modellek létrehozására és betanítására szolgáló szolgáltatások.

Az emberek általában intuitív módon összekeverik a „botokat” és a „kognitív szolgáltatásokat”, mivel mindkét fogalom a kommunikáció elvén alapul, és a botok és szolgáltatások használati esetei párbeszédeket foglalnak magukban. A chatbotok azonban kulcsszavakkal és triggerekkel működnek, a kognitív szolgáltatások pedig tetszőleges kérésekkel, amelyeket általában emberek dolgoznak fel: 

Az Azure-szolgáltatások használatával felgyorsítjuk a fejlesztést: chatbotokat és kognitív szolgáltatásokat hozunk létre a platform segítségével

A kognitív szolgáltatások egy másik módja a felhasználóval való kommunikációnak, amelyek segítenek egy tetszőleges kérést egyértelmű paranccsá alakítani és a botnak továbbítani. 

Így a chatbotok a kérésekkel való munkavégzésre szolgáló alkalmazások, a kognitív szolgáltatások pedig a külön indított kérések intelligens elemzésének eszközei, amelyekhez a chatbot hozzá tud férni, így „intelligenssé” válik. 

Chatbotok létrehozása

Az Azure-beli robotokhoz javasolt tervezési diagram a következő: 

Az Azure-szolgáltatások használatával felgyorsítjuk a fejlesztést: chatbotokat és kognitív szolgáltatásokat hozunk létre a platform segítségével

Botok tervezéséhez és fejlesztéséhez az Azure-ban használja Bot Framework. Elérhető a GitHubon példák a botokra, módosulnak a keretrendszer képességei, ezért figyelembe kell venni a botokban használt SDK verzióját.

A keretrendszer számos lehetőséget kínál a botok létrehozására: klasszikus kód, parancssori eszközök vagy folyamatábrák használatával. Az utolsó opció párbeszédablakokat jelenít meg, ehhez használhatja a kezelőt Bot Framework zeneszerző. A Bot Framework SDK-ra épült, mint egy vizuális fejlesztőeszköz, amelyet a több tudományágat átfogó csapatok használhattak botok létrehozására.

Az Azure-szolgáltatások használatával felgyorsítjuk a fejlesztést: chatbotokat és kognitív szolgáltatásokat hozunk létre a platform segítségével

A Bot Framework Composer lehetővé teszi, hogy blokkokat használjon párbeszédes struktúra létrehozására, amellyel a bot működni fog. Ezenkívül létrehozhat triggereket, azaz kulcsszavakat, amelyekre a bot a párbeszéd során reagál. Például a „kezelő”, „lopás” vagy „stop” és „elég” szavak.

A Bot Framework Composerben összetett párbeszédrendszereket hozhat létre Adaptív párbeszédpanelek. A párbeszédek kognitív szolgáltatásokat és eseménykártyákat (Adaptive Cards) egyaránt használhatnak:

Az Azure-szolgáltatások használatával felgyorsítjuk a fejlesztést: chatbotokat és kognitív szolgáltatásokat hozunk létre a platform segítségével

Létrehozás után előfizetésben telepítheti a chatbotot, és egy automatikusan elkészített szkript létrehozza az összes szükséges erőforrást: kognitív szolgáltatásokat, alkalmazástervet, Application Insights-t, adatbázist stb.

QnA Maker

A vállalati Q&A adatbázisokon alapuló egyszerű botok létrehozásához használhatja a QnA Maker kognitív szolgáltatást. Egyszerű webvarázslóként megvalósítva lehetővé teszi egy vállalati tudásbázisra mutató hivatkozás (GYIK URL-ek) bevitelét, vagy egy *.doc vagy *.pdf formátumú dokumentumadatbázis használatá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érdéseire.

A QnAMaker segítségével pontosító kérdések láncait is létrehozhatja automatikus gombok létrehozásával, kiegészítheti a tudásbázist metaadatokkal, és tovább képezheti a szolgáltatást a használat során.

A szolgáltatás használható chatbotként, amely csak ezt az egy funkciót valósítja meg, vagy egy komplex chatbot részeként, amely kéréstől függően más AI-szolgáltatásokat vagy a Bot Framework elemeit is használja.

Más kognitív szolgáltatásokkal való együttműködés

Az Azure platformon számos különböző kognitív szolgáltatás található. Technikailag ezek független webszolgáltatások, amelyek kódból hívhatók. Válaszul a szolgáltatás egy bizonyos formátumú json fájlt küld, amely használható a chatbotban.

Az Azure-szolgáltatások használatával felgyorsítjuk a fejlesztést: chatbotokat és kognitív szolgáltatásokat hozunk létre a platform segítségével
A chatbotok leggyakoribb felhasználási módjai a következők:

  1. Szövegfelismerés.
  2. A fejlesztő által meghatározott Custom Vision Service képkategóriák felismerése (gyártási eset: annak felismerése, hogy az alkalmazott visel-e védősisakot, védőszemüveget vagy maszkot).
  3. Arcfelismerés (kiváló felhasználási eset annak ellenőrzése, hogy a megkérdezett személy posztolta-e a saját arcát, vagy mondjuk egy kutyáról vagy egy másik nemű személyről készült fotót).
  4. Beszédfelismerés.
  5. Képelemzés.
  6. Fordítás (mindannyian emlékszünk arra, hogy a Skype-ban a szimultán fordítás mekkora zajt okozott).
  7. Helyesírás-ellenőrzés és javaslatok a hibák kijavítására.

LUIS

Ezenkívül szükség lehet robotok létrehozására LUIS (Language Understanding Intelligent Service). Szolgáltatási célok:

  • Határozza meg, hogy van-e értelme a felhasználó kijelentésének, és szükséges-e a bot válasza.
  • Csökkentse a felhasználói beszéd (szöveg) bot számára érthető parancsokká való átírását.
  • Megjósolhatja a valódi felhasználói célokat/szándékokat, és kulcsfontosságú betekintést nyerhet a párbeszédben lévő kifejezésekből.
  • Engedje meg a fejlesztőnek, hogy elindítsa a botot a jelentésfelismerés néhány példájával, majd a bot működés közbeni további betanításával.
  • Engedélyezze a fejlesztő számára, hogy vizualizációt használjon a parancsátírás minőségének felmérésére.
  • Segítsen a valódi célfelismerés fokozatos fejlesztésében.

Valójában a LUIS fő célja az, hogy bizonyos valószínűséggel megértse, mire gondol a felhasználó, és egy természetes kérést harmonikus paranccsá alakítson át. A lekérdezési értékek felismeréséhez a LUIS szándékok (jelentések, szándékok) és entitások halmazát használja (akár a fejlesztők által előre konfigurált, akár átvett és előre kialakított „tartományok” - a Microsoft által készített szabványos kifejezések néhány kész könyvtára). 

Egy egyszerű példa: van egy robotja, amely időjárás-előrejelzést ad. Számára a szándék egy természetes kérés „cselekvéssé” való lefordítása – időjárás-előrejelzés kérése, az entitások pedig az idő és a hely. Íme egy diagram a CheckWeather szándék működéséről egy ilyen bot esetében.

Elszánt
lényeg
Példa természetes lekérdezésre

CheckWeather
{"típus": "hely", "entitás": "moszkva"}
{"type": "builtin.datetimeV2.date", "entity": "future","resolution":"2020-05-30"}
Milyen lesz az időjárás holnap Moszkvában?

CheckWeather
{ "type": "date_range", "entity": "e hétvégén" }
Mutasd meg az előrejelzést erre a hétvégére

A QnA Maker és a LUIS kombinálásához használhatja diszpécser

Az Azure-szolgáltatások használatával felgyorsítjuk a fejlesztést: chatbotokat és kognitív szolgáltatásokat hozunk létre a platform segítségével

Amikor a QnA Makerrel dolgozik, és kérést kap egy felhasználótól, a rendszer meghatározza, hogy a QnA válasza valószínűsége hány százalékban egyezik a kéréssel. Ha a valószínűség nagy, akkor a felhasználó egyszerűen választ kap a vállalati tudásbázisból, ha alacsony, a kérést elküldheti a LUIS-nak pontosítás céljából. A Dispatcher használatával nem programozhatja ezt a logikát, hanem automatikusan meghatározhatja a kérések szétválasztásának ezt a szélét, és gyorsan eloszthatja azokat.

A bot tesztelése és közzététele

Egy másik helyi alkalmazást használnak a teszteléshez, Bot keretrendszer emulátor. Az emulátor segítségével kommunikálhat a bottal, és ellenőrizheti az általa küldött és fogadott üzeneteket. Az emulátor úgy jeleníti meg az üzeneteket, ahogyan a webes csevegési felületen jelennének meg, és naplózza a JSON-kéréseket és válaszokat, amikor üzenetet küld a robotnak.

Az emulátor használatára egy példát mutatunk be ebben a demóban, amely egy virtuális asszisztens létrehozását mutatja be a BMW számára. A videó a chatbotok létrehozásához szükséges új gyorsítókról is beszél - sablonok:

Az Azure-szolgáltatások használatával felgyorsítjuk a fejlesztést: chatbotokat és kognitív szolgáltatásokat hozunk létre a platform segítségével
https://youtu.be/u7Gql-ClcVA?t=564

A chatbotok létrehozásakor sablonokat is használhat. 
A sablonok lehetővé teszik, hogy ne írjunk újra szabványos bot-függvényeket, hanem „készségként” adjunk hozzá kész kódot. Példa lehet a naptárral való munkavégzés, időpont egyeztetés stb. Kész készségek kódja közzétett a githubon.

A tesztelés sikeres volt, a bot készen áll, és most közzé kell tenni, és csatlakoztatni kell a csatornákat. A közzététel az Azure használatával történik, és üzenetküldők vagy közösségi hálózatok használhatók csatornaként. Ha nem rendelkezik az adatbevitelhez szükséges csatornával, a GitHab megfelelő közösségében megkeresheti. 

Ezenkívül egy teljes értékű chatbot létrehozásához a felhasználóval és a kognitív szolgáltatásokkal való kommunikációhoz szükséges további Azure-szolgáltatásokra, például adatbázisokra, kiszolgáló nélküli (Azure Functions), valamint LogicApp szolgáltatásokra és esetleg , Event Grid.

Az Azure-szolgáltatások használatával felgyorsítjuk a fejlesztést: chatbotokat és kognitív szolgáltatásokat hozunk létre a platform segítségével

Értékelés és elemzés

A felhasználói interakció értékeléséhez használhatja az Azure Bot Service beépített elemzését és a speciális Application Insights szolgáltatást is.

Ennek eredményeként a következő kritériumok alapján gyűjthet információkat:

  • Hány felhasználó érte el a botot különböző csatornákról a kiválasztott időszakban.
  • Hány felhasználó, aki egy üzenetet küldött, visszatért később, és küldött egy másikat.
  • Hány műveletet küldtek és fogadtak az egyes csatornákon a megadott időintervallumban.

Az Application Insights segítségével figyelheti az Azure-ban lévő bármely alkalmazást, és különösen a chatbotokat, további adatokat szerezve a felhasználói viselkedésről, a betöltésekről és a chatbot-reakciókról. Meg kell jegyezni, hogy az Application Insights szolgáltatás saját felülettel rendelkezik az Azure Portalon.

A szolgáltatáson keresztül gyűjtött adatokat további vizualizációk és elemzési jelentések készítésére is felhasználhatja a PowerBI-ban. Példa egy ilyen jelentésre és PowerBI sablonra itt.

Az Azure-szolgáltatások használatával felgyorsítjuk a fejlesztést: chatbotokat és kognitív szolgáltatásokat hozunk létre a platform segítségével

Köszönöm mindenkinek a figyelmet! Ebben a cikkben használtuk anyag a Microsoft Azure építész, Anna Fenyushina webináriumából „Ha az embereknek nincs idejük. Hogyan lehet 100%-ban használni a chatbotokat és a kognitív szolgáltatásokat a rutinfolyamatok automatizálására”, ahol világosan bemutattuk, mik azok a chatbotok az Azure-ban, és milyen forgatókönyvek vannak használatukra, valamint bemutattuk, hogyan lehet botot létrehozni a QnA Makerben 15 perc alatt, és hogyan A lekérdezés szerkezete a LUIS-ban megfejtésre kerül. 

Ezt a webináriumot a Dev Bootcamp fejlesztőinek szóló online maraton részeként készítettük. Olyan termékekről volt szó, amelyek felgyorsítják a fejlesztést, és csökkentik a vállalati alkalmazottak rutinszerű munkaterhelésének egy részét az automatizálási eszközök és a kész, előre konfigurált Azure-modulok segítségével. A maraton többi webináriumának felvételei az alábbi linkeken érhetők el:

Forrás: will.com

Hozzászólás