Nagyvállalati szintű beszélgető robot összeállítása

Azure Active Directory
App Service
Application Insights
Blob Storage
Robotszolgáltatás
Cognitive Services
Cosmos DB
Data Factory
Functions
Key Vault
Logic Apps
Keresés

Ez a referenciaarchitektúra azt ismerteti, hogyan lehet nagyvállalati szintű beszélgetőrobotot (csevegőrobotot) összeépíteni az Azure Bot Framework. Minden robot más, de van néhány gyakori minta, munkafolyamat és technológia, amelyről értesülni kell. Különösen a nagyvállalati számítási feladatokat kiszolgáló robotok esetében az alapvető funkciókon túl számos tervezési szempontot figyelembe kell venni. Ez a cikk a legfontosabb tervezési szempontokat tartalmazza, és bemutatja azokat az eszközöket, amelyek egy robusztus, biztonságos és aktív tanulási robot felépítéséhez szükségesek.

Az architektúra ábrája

Töltse le az architektúra Visio-fájlját.

Az architektúrában használt ajánlott segédminták teljes mértékben nyílt forráskódúak, és elérhetők a GitHub.

Architektúra

Az itt látható architektúra a következő Azure-szolgáltatásokat használja. Előfordulhat, hogy a saját robotja nem használja ezeket a szolgáltatásokat, vagy további szolgáltatásokat is magában foglalhat.

Robotlogika és felhasználói élmény

  • Bot Framework Service (BFS). Ez a szolgáltatás csatlakoztatja a robotot egy kommunikációs alkalmazáshoz, például Cortana, Facebook Messenger Slackhez. Elősegíti a robot és a felhasználó közötti kommunikációt.
  • Azure App Service:. A robotalkalmazás logikáját a rendszer a Azure App Service.

Robot megismerés és intelligencia

  • Language Understanding (LUIS). A Azure Cognitive Services része, hogy aLUIS lehetővé teszi, hogy a robot a felhasználói szándékok és entitások azonosításával megértse a természetes nyelvet.
  • Azure Search. A Search egy felügyelt szolgáltatás, amely gyors kereshető dokumentumindexet biztosít.
  • QnA Maker:. A QnA Maker egy olyan felhőalapú API-szolgáltatás, amely egy beszélgetés típusú, kérdésekből és válaszokból álló réteget hoz létre az adatok alapján. Általában részben strukturált tartalmakkal, például gyikokkal van feltöltve. Használatával létrehozhat egy tudásbázist, amely természetes nyelvi kérdéseket válaszol meg.
  • Webalkalmazás. Ha a robotnak meglévő szolgáltatás által nem biztosított AI-megoldásokra van szüksége, megvalósíthatja saját egyéni AI-ját, és webalkalmazásként is használhatja. Ez egy webes végpontot biztosít a robot számára, amit meg lehet hívni.

Adatfeldolgozás

A robot nyers adatokra támaszkodik, amelyet be kell készíteni és be kell készíteni. A folyamat vezénylését az alábbi lehetőségek közül választhatja ki:

  • Azure Data Factory:. Data Factory és automatizálja az adatok mozgását és átalakítását.
  • Logic Apps:. Logic Apps egy kiszolgáló nélküli platform alkalmazások, adatok és szolgáltatások integrálására használható munkafolyamatok építéséhez. Logic Apps összekötőket biztosít számos alkalmazáshoz, beleértve a Office 365.
  • Azure Functions:. A Azure Functions olyan egyéni kiszolgáló nélküli kód írására is használható, amelyet egy eseményindító hív meg, például amikor egy dokumentumot adnak hozzá a Blob Storage-hoz vagy egy — Cosmos DB.

Naplózás és figyelés

  • Alkalmazás Elemzések. Az Application Elemzések naplóz a robot alkalmazásmetrikákat monitorozási, diagnosztikai és elemzési célokra.
  • Azure Blob Storage. A Blob Storage nagy mennyiségű strukturálatlan adat tárolására van optimalizálva.
  • Cosmos DB:. Cosmos DB alkalmas részben strukturált naplóadatok, például beszélgetések tárolására.
  • Power BI:. A Power BI irányítópultok létrehozásához használhatja a robotot.

Biztonság és irányítás

Minőségbiztosítás és fejlesztések

  • Azure DevOps. Számos alkalmazáskezelési szolgáltatást nyújt, beleértve a forráskezelést, az építést, a tesztelést, az üzembe helyezést és a projektkövetést.
  • VS Code Egyszerű kódszerkesztő alkalmazásfejlesztéshez. Bármilyen más IDE-t is használhat hasonló funkciókkal.

Kialakítási szempontok

A beszélgetési robotok magas szinten feloszthatók a robot funkcióira (az "agyra") és az azt körülvevő követelményekre (a "törzsre"). Az agy tartalmazza a tartományt ható összetevőket, beleértve a robot logikáját és ML képességeit. Más összetevők tartománytól függetlenek, és megfelelnek a nem funkcionális követelményeknek, például a CI/CD-nek, a minőségbiztosításnak és a biztonságnak.

Robotfunkciók logikai diagramja

Mielőtt rátérünk az architektúra pontos adataira, kezdjük az adatfolyammal a terv egyes alkomponensei között. Az adatfolyam magában foglalja a felhasználó által kezdeményezett és a rendszer által kezdeményezett adatfolyamokat is.

Felhasználói üzenetfolyam

Hitelesítés:. A felhasználók először hitelesítik magukat a robottal való kommunikáció csatornája által biztosított bármilyen mechanizmussal. A robot keretrendszere számos kommunikációs csatornát támogat, beleértve a Cortana, Microsoft Teams, Facebook Messenger, a Kik és a Slack kommunikációs csatornákat. A csatornák listájáért lásd: robot Csatlakozás a csatornákhoz. Amikor létrehoz egy robotot egy Azure Bot Service, a webchat automatikusan konfigurálva lesz. Ez a csatorna lehetővé teszi a felhasználók számára, hogy közvetlenül egy weblapon kommunikálják a robotot. A robotot egy egyéni alkalmazáshoz is csatlakoztathatja a Direct Line csatornával. A felhasználó identitása szerepköralapú hozzáférés-vezérlést biztosít, valamint személyre szabott tartalmakat szolgál ki.

Felhasználói üzenet. A hitelesítést követően a felhasználó üzenetet küld a robotnak. A robot beolvassa az üzenetet, és egy természetes nyelvi megértési szolgáltatáshoz , például a LUIS-hoz is továbbkultálja. Ez a lépés lekérte a szándékokat (amit a felhasználó tenni szeretne) és az entitásokat (ami a felhasználó számára érdekes). A robot ezután kiépít egy lekérdezést, amely információkat szolgál ki egy szolgáltatásnak, például az Azure Search számára a dokumentumlekéréshez, QnA Maker gyikikhoz vagy egy egyéni tudásbázishoz. A robot ezekkel az eredményekkel hoz létre választ. Egy adott lekérdezés legjobb eredményének érdekében a robot több oda-vissza hívást is kezdeményezhet ezekhez a távoli szolgáltatásokhoz.

Válasz:. Ezen a ponton a robot meghatározta a legjobb választ, és elküldi a felhasználónak. Ha a legjobban egyező válasz megbízhatósági pontszáma alacsony, a válasz lehet egy kétértelmű kérdés vagy egy nyugtázás, amely szerint a robot nem tudott megfelelően válaszolni.

Naplózás. Amikor egy felhasználói kérés érkezik vagy választ küld, az összes beszélgetési műveletet naplózza egy naplózási tárolóban, a teljesítménymetrikák és a külső szolgáltatások általános hibái mellett. Ezek a naplók később hasznosak lesznek a problémák diagnosztizálása és a rendszer javítása során.

Visszajelzés. Egy másik bevált gyakorlat a felhasználói visszajelzések és az elégedettségi pontszámok gyűjtése. A robot végső válaszának nyomon követhetősége érdekében a robotnak meg kell kérnie a felhasználót, hogy értékelje a válaszokkal való elégedettségét. A visszajelzések segíthetnek megoldani a természetes nyelvfelismerés hideg indításával kapcsolatos problémát, és folyamatosan javítják a válaszok pontosságát.

Rendszeradat-Flow

ETL. A robot a nyers adatokból a háttérben található ETL-folyamat által kinyert információkra és ismeretekre támaszkodik. Ezek lehetnek strukturáltak (SQL adatbázisok), részben strukturáltak (CRM-rendszer, gyakori kérdések) vagy strukturálatlanok (Word-dokumentumok, PDF-ek, webnaplók). Az ETL alrendszer rögzített ütemezés szerint bontja ki az adatokat. A tartalmat a rendszer átalakítja és bővíti, majd betölti egy köztes adattárba, például Cosmos DB Azure Blob Storage.

A köztes áruházban található adatokat a rendszer ezután indexeli az Azure Search szolgáltatásba dokumentum lekérése céljából, betölti az QnA Maker-ba kérdés-válasz párok létrehozásához, vagy betölti őket egy egyéni webalkalmazásba strukturálatlan szövegfeldolgozás céljából. Az adatok a LUIS-modell szándék- és entitáskinyerési betanítása során is használhatók.

Minőségbiztosítási szolgáltatás. A beszélgetési naplók segítségével diagnosztizálhatja és kijavíthatja a hibákat, betekintést nyerhet a robotba, és nyomon követheti az általános teljesítményt. A visszajelzési adatok hasznosak az AI-modellek újraképezéséhez a robot teljesítményének javítása érdekében.

Robot kiépítése

Mielőtt egyetlen kódsort is megírna, fontos megírni egy funkcionális specifikációt, hogy a fejlesztői csapat egyértelműen tudja, mit vár a robottól. A specifikációnak tartalmaznia kell a felhasználói bemenetek és a különböző tudástartományok várható robotválaszai viszonylag átfogó listáját. Ez az élő dokumentum felbecsülhetetlen értékű útmutató lesz a robot fejlesztéshez és teszteléshez.

Adatok betöltése

Ezután azonosítsa azokat az adatforrásokat, amelyek lehetővé teszik, hogy a robot intelligens módon kommunikáljon a felhasználókkal. Ahogy korábban említettük, ezek az adatforrások strukturált, részben strukturált vagy strukturálatlan adatkészleteket tartalmazhatnak. Az első lépésekhez jó megoldás, ha az adatokat egy központi tárolóba, például az Cosmos DB azure-Storage. A folyamat előrehaladtával létre kell hoznia egy automatizált adatbefedő folyamatot, hogy az adatok mindig aktuálisak maradnak. Az automatizált adatbe Data Factory, függvények és Logic Apps. Az adattáraktól és a sémáktól függően ezek a megközelítések kombinációját is használhatja.

Az első lépésekhez ésszerű az Azure-erőforrások Azure Portal használni. Később érdemes átgondolni ezeknek az erőforrásoknak az üzembe helyezését.

Alapvető robotlogika és felhasználói felület

Ha már van egy specifikációja és néhány adata, ideje, hogy a robotot valóra váltsa. Most az alapvető robotlogikával kell összpontosítanunk. Ez az a kód, amely kezeli a felhasználóval folytatott beszélgetést, beleértve az útválasztási logikát, az egyértelmű logikát és a naplózást. Először ismerkedjen meg a Bot Framework többekközött a következővel:

  • A keretrendszerben használt alapfogalmak és terminológia, különösen [a beszélgetések] [,]a , a és a [tevékenység.]
  • A Bot Connector szolgáltatás,amely a robot és a csatornák közötti hálózatot kezeli.
  • A beszélgetés állapotának fenntartása a memóriában vagy még jobb egy tárolóban, például az Azure Blob Storage vagy Azure Cosmos DB.
  • Middleware, és hogy hogyan használhatja a robot külső szolgáltatásokkal, például az Cognitive Services.

A gazdag felhasználói élmény érdekébenszámos lehetőség áll rendelkezésre.

  • Kártyák használatával gombokat, képeket, választógombokat és menüket is tartalmazhat.
  • A robotok támogatják a beszédet.
  • Akár egy alkalmazásba vagy webhelybe is beágyazhatja a robotot, és használhatja az azt üzemeltető alkalmazás képességeit.

Első lépésekként online is felépítheti a robotot az Azure Bot Service,majd az elérhető C# és Node.js sablonokat. Ahogy azonban a robot egyre kifinomultabb lesz, helyileg kell létrehoznia, majd üzembe kell helyeznie a weben. Válasszon egy IDE-t, például Visual Studio vagy Visual Studio Code-et és egy programozási nyelvet. Az ALÁBBI nyelvekhez érhetők el az SDK-k:

Kiindulási pontként letöltheti a létrehozott robot forráskódját a Azure Bot Service. Mintakódot istalálhat az egyszerű echo robotoktól a különféle AI-szolgáltatásokkal integrálható kifinomultabb robotokon át.

Intelligensek hozzáadása a robothoz

Egy jól meghatározott parancslistát használó egyszerű robot esetén lehet, hogy egy szabályalapú megközelítéssel tudja majd a regexen keresztül elemezni a felhasználói bevitelt. Ennek az az előnye, hogy determinisztikus és érthető. Ha azonban a robotnak egy természetesebb nyelvű üzenet szándékait és entitásait kell megértenie, vannak olyan AI-szolgáltatások, amelyek segíthetnek.

  • A LUIS kifejezetten a felhasználói szándékok és entitások megértő okhoz lett kialakítva. A betanítás a megfelelő felhasználói bevitel és a kívánt válaszok közepes méretű gyűjteményét adja meg, és visszaadja a felhasználó adott üzenetének szándékait és entitásait.

  • Az Azure Search működik együtt a LUIS-ral. A Search használatával kereshető indexeket hozhat létre az összes releváns adathoz. A robot lekérdezi ezeket az indexeket a LUIS által kinyert entitások után. Az Azure Search a szinonimákatis támogatja, amelyek a helyes szóleképezések hálóját is kiszélesedik.

  • QnA Maker egy másik szolgáltatás, amely adott kérdésekre ad választ. Ez általában részben strukturált adatok, például gyakori kérdések alapján van betanítva.

A robot más AI-szolgáltatásokat is használhat a felhasználói élmény további gazdagítására. Az Cognitive Services előre felépített AI-szolgáltatások (beleértve a LUIS-t és a QnA Maker-t) előre felépített AI-szolgáltatáscsomag a látásra, beszédre, nyelvre, keresésre és helyre vonatkozó szolgáltatásokat kínál. Gyorsan hozzáadhat olyan funkciókat, mint a nyelvfordítás, a helyesírás-ellenőrzés, a hangulatelemzés, az OCR, a helyfelismerés és a tartalommoderálás. Ezek a szolgáltatások a robotban közvetítőprogram-modulokként is összekötve természetesebb és intelligensebb módon kommunikálhatnak a felhasználóval.

Egy másik lehetőség a saját egyéni AI-szolgáltatás integrálása. Ez a megközelítés összetettebb, de teljes rugalmasságot biztosít a gépi tanulási algoritmus, a betanítás és a modell tekintetében. Megvalósíthat például egy saját témakörmodellezést, és használhat olyan algoritmusokat, mint például az LDA, hogy hasonló vagy releváns dokumentumokat keressen. Jó módszer, ha az egyéni AI-megoldást webszolgáltatás-végpontként teszi elérhetővé, és a végpontot a robot alapvető logikája alapján hívja meg. A webszolgáltatás üzemeltethet virtuális gépek App Service fürtben is. Azure Machine Learning számos szolgáltatást és kódtárat biztosít a modellek betanítása és üzembe helyezése során.

Minőségbiztosítás és fejlesztés

Naplózás. Felhasználói beszélgetések naplózása a robottal, beleértve a mögöttes teljesítménymetrikákat és az esetleges hibákat. Ezek a naplók felbecsülhetetlen értékűek a hibakereséshez, a felhasználói interakciók megértéséhez és a rendszer javításához. A különböző adattárak különböző típusú naplókhoz megfelelőek lehetnek. Vegyük például az Application Elemzések webnaplókhoz, Cosmos DB beszélgetésekhez, az Azure Storage a nagy hasznos adatokhoz. Lásd: Írás közvetlenül az Azure-ba Storage.

Visszajelzés. Azt is fontos megérteni, hogy mennyire elégedettek a felhasználók a robotokkal való interakciók során. Ha van egy rekordja a felhasználói visszajelzésekkel kapcsolatban, ezeket az adatokat arra használhatja, hogy az egyes interakciók javítására összpontosítson, és az AI-modellek újraképezésére összpontosítson a jobb teljesítmény érdekében. Használja a visszajelzést a modellek, például a LUIS újraképzéhez a rendszerben.

A tesztelése. A robotok tesztelése egységteszteket, integrációs teszteket, regressziós teszteket és funkcionális teszteket foglal magában. Teszteléshez azt javasoljuk, hogy rögzítsen valódi HTTP-válaszokat külső szolgáltatásoktól, például az Azure Searchtől vagy az QnA Maker-tól, így azok visszajátszhatóak az egységtesztelés során anélkül, hogy valódi hálózati hívásokat kellene kezdeményezni külső szolgáltatásokhoz.

Megjegyzés

Ha ezeken a területeken is feledné a fejlesztést, nézze meg a JavaScripthez használt Botbuilder Utils eszközt. Ez az objektum minta segédprogramkódot tartalmaz a 4-es Microsoft Bot Framework- és futtató Node.js. A következő csomagokat tartalmazza:

  • Cosmos DB Naplózási tároló. Bemutatja, hogyan tárolhatók és kérdezhetőek le a robotnaplók Cosmos DB.
  • Alkalmazásnaplózási Elemzések:. Bemutatja, hogyan tárolhatók éskérdezhetőek a robotnaplók az Application Elemzések.
  • Visszajelzések gyűjtése – Middleware. Minta olyan közvetítő szoftver, amely egy robot felhasználói visszajelzési-kérési mechanizmusát biztosítja.
  • HTTP Test Recorder. A roboton kívül található szolgáltatások HTTP-forgalmát rögzíti. Előre kiépített támogatást nyújt a LUIS, az Azure Search és a QnAMaker szolgáltatásokhoz, de bővítmények is elérhetők bármely szolgáltatás támogatásához. Ez segít a robottesztelés automatizálásában.

Ezek a csomagok segédprogram mintakódként biztosítanak, és nem garantálják a támogatást és a frissítéseket.

Rendelkezésre állási szempontok

Amikor új funkciókat vagy hibajavításokat ad hozzá a robothoz, a legjobb, ha több üzembe helyezési környezetet használ, például előkészítést és éles környezetet. Az Azure DevOps üzembe helyezési pontokkal ezt állásidő nélkül teszi lehetővé. Tesztelheti a legújabb frissítéseket az átmeneti környezetben, mielőtt lecseréli őket az éles környezetbe. A terhelés kezelése tekintetében a App Service manuális vagy automatikus horizontális fel- vagy felskálákra van tervezve. Mivel a robot a Microsoft globális adatközpont-infrastruktúrájában üzemel, az App Service SLA magas rendelkezésre állást biztosít.

Biztonsági szempontok

Mint minden más alkalmazás, a robotot úgy is meg lehet tervezni, hogy bizalmas adatokat kezeljen. Ezért korlátozza, hogy ki jelentkezhet be és használhatja a robotot. A felhasználó identitása vagy szerepköre alapján korlátozhatja, hogy mely adatok érhetők el. Az Azure AD-t használhatja identitás- és hozzáférés-vezérlésre, Key Vault kulcsok és titkos kulcsok kezelésére.

A DevOps megfontolandó szempontjai

Figyelés és jelentéskészítés

Ha a robot éles környezetben fut, szüksége lesz egy DevOps-csapatra, hogy ezt a lépést is megtartsa. A rendszer folyamatos monitorozásával biztosíthatja, hogy a robot csúcsteljesítményt nyújt. Az Application Elemzések vagy Cosmos DB szolgáltatásnak küldött naplók használatával monitorozási irányítópultokat hozhat létre akár maga az Application Elemzések, Power BI vagy egy egyéni webalkalmazás-irányítópult használatával. Riasztások küldése a DevOps-csapatnak, ha kritikus hibák lépnek fel, vagy a teljesítmény egy elfogadható küszöbérték alá esik.

Automatizált erőforrás-üzembe helyezés

Maga a robot csak egy nagyobb rendszer része, amely biztosítja a legújabb adatokat, és biztosítja annak megfelelő működését. Ezeket az egyéb Azure-erőforrások adatvezénylési szolgáltatásait, például a Data Factory, a tárolási szolgáltatásokat, például a Cosmos DB stb. üzembe kell — — helyezni. Azure Resource Manager egy konzisztens felügyeleti réteget biztosít, amely a Azure Portal, a PowerShell vagy az Azure CLI használatával is elérhető. A sebesség és a konzisztencia érdekében az üzembe helyezést az alábbi módszerek egyikével automatizálhatja.

Robot folyamatos üzembe helyezése

A robot logikáját közvetlenül az IDE-ről vagy egy parancssorból, például az Azure CLI-ről is üzembe helyezheti. Mivel azonban a robot kiforrott, ajánlott folyamatos üzembe helyezési folyamatot használni egy CI/CD-megoldás, például az Azure DevOps használatával, a Folyamatos üzembe helyezés beállítása cikkben leírtak szerint. Ez jó módszer arra, hogy megkönnyítse a robot új funkcióinak és javításainak tesztelését éles környezetben. Emellett ajánlott több üzembe helyezési környezet is, általában legalább előkészítési és éles környezet. Az Azure DevOps támogatja ezt a megközelítést.

Költségekkel kapcsolatos szempontok

Az Azure díjkalkulátorával megbecsülheti költségeit. Íme néhány egyéb szempont.

Robotalkalmazás

Ebben az architektúrában a fő költségillesztő az a Azure App Service, amelyben a robotalkalmazás logikája üzemel. Válassza ki App Service igényeinek leginkább megfelelő csomagszintet. Íme néhány javaslat:

  • Az Ingyenes és a Megosztott (előzetes verzió) szinteket tesztelési célokra használhatja, mivel a megosztott erőforrások nem skálázhatóak fel horizontálisan.
  • Futtassa az éles számítási feladatokat Alapszintű, Standard és Prémium szinten, mivel az alkalmazás dedikált virtuálisgép-példányon fut, és horizontálisan felskálásos erőforrásokat osztott ki. App Service csomagok számlázása másodperc alapon történik.

A csomag példányaiért akkor is díjat App Service, ha az alkalmazás le van állítva. Törölje a hosszú távon nem használni kívánt csomagokat, például a teszttelepítéseket.

További információ: Mennyibe kerül aApp Service költség? .

Adatfeldolgozás

  • Azure Data Factory

    Ebben az architektúrában a Data Factory automatizálja az adatbeteléses folyamatot. Fedezze fel a költségvetési igényeknek megfelelő adatintegrációs képességek széles skáláját, a felügyelt SQL Server Integration Servicestől a SQL Server-projektek felhőbe való zökkenőmentes migrálását (költséghatékony megoldás) a nagy méretű, kiszolgáló nélküli adat folyamatokig, amelyek minden formában és méretben integrálják az adatokat.

    Példaként tekintse meg a Azure Data Factory – példa költségelemzésre.

  • Azure Functions

    Ebben a referenciaarchitektúrában a Azure Functions használat alapján kell fizetni. A díjat másodpercalapú erőforrás-használat alapján kell fizetnie, és minden alkalommal, amikor egy esemény elindítja a függvény végrehajtását. Több esemény egyetlen végrehajtásban vagy kötegben történő feldolgozása csökkentheti a költségeket.

    Az Azure szükség szerint skálázja a függvények futtatásához szükséges infrastruktúrát. Ha a számítási feladatok alacsonyak, az infrastruktúra a költségek nélkül nullára lesz skálázva. Amikor a számítási feladat növekszik, az Azure elegendő kapacitást használ az összes igény kiszolgálására. Mivel a tényleges használat alapján fizet, az egyes összetevők pontos költségét kell kezelnie.

Logic Apps

A Logic Apps díjszabása a pay-as-you-go modellen működik. A logikai alkalmazásoknak van egy díjszabási modellje, amely a "pay-as-as-you-go" (fizetéses) modellt használja. Az eseményindítók, műveletek és összekötő-végrehajtások mérése a logikai alkalmazások minden futtatásakor meg lesz mérésre. Minden sikeres és sikertelen művelet, beleértve az eseményindítókat is, végrehajtásnak számít.

A logikai alkalmazás például naponta 1000 üzenetet dolgozza fel az Azure Service Bus. Egy ötműveletes munkafolyamat 6 dollárnál kevesebbe kerül. További információ: díjszabás Logic Apps.

További költséggel kapcsolatos szempontokért tekintse meg a Microsoft Azure Well-Architected keretrendszerének Költség szakaszát.

Következő lépések

  • Tekintse át Virtual Assistant sablont a beszélgetési robotok gyors építéséhez.