A készségek áttekintése
A KÖVETKEZŐKRE VONATKOZIK: SDK v4
Egy robotot egy képességrobottal bővíthet. A képességeket különböző más robotok is felhasználhatják, megkönnyítve az újrafelhasználást, és így létrehozhat egy felhasználói robotot, és kiterjesztheti azt saját vagy harmadik féltől származó készségeinek felhasználásával.
- A képesség olyan robot, amely feladatokat hajthat végre egy másik robot számára – a robot lehet képesség és felhasználóval szemben álló robot is.
- A készségfelhasználók olyan robotok, amelyek egy vagy több készséget hívhatnak meg. A felhasználói képességfelhasználót gyökérrobotnak is nevezik.
- A képességjegyzék egy JSON-fájl, amely leírja a képesség által végrehajtható műveleteket, a bemeneti és kimeneti paramétereket, valamint a képesség végpontjait.
- Azok a fejlesztők, akik nem férnek hozzá a képesség forráskódjába, használhatják a jegyzékben szereplő információkat a képességfelhasználó tervezéséhez.
- A képességjegyzék-séma egy JSON-fájl, amely leírja a képességjegyzék sémáját.
- Megtudhatja, hogyan valósíthat meg egy készséget , és hogyan írhat készségjegyzéket minta készségjegyzékekhez.
Más szóval a felhasználó közvetlenül a gyökérrobottal kommunikál, a gyökérrobot pedig a beszélgetési logika egy részét egy képességnek delegálja.
A készségek funkció úgy van kialakítva, hogy:
- A készségek és a fogyasztók HTTP-en keresztül kommunikálnak a Bot Framework protokoll használatával.
- A készségfelhasználók több készséget is felhasználhatnak.
- A készségfelhasználók a készség megvalósításához használt nyelvtől függetlenül használhatják a készséget. Egy C#-robot például használhat egy JavaScript használatával megvalósított képességet.
- A képesség lehet készségfogyó is, és más készségeket is meghívhat.
- A készségek támogatják a felhasználói hitelesítést; azonban a felhasználói hitelesítés helyi a képesség számára, és nem továbbítható egy másik robotnak.
- A készségek a Bot Framework-adapterrel és az egyéni adapterekkel is használhatók.
Ez az ábra néhány lehetséges permutációt mutat be.
Fogalmi architektúra
A készség- és képességfelhasználók különálló robotok, és ön egymástól függetlenül teszi közzé őket.
- A készségfelhasználóknak hozzáadott logikára van szükség egy képesség kezeléséhez, például hogy mikor kell meghívni vagy megszakítani a képességet, és így tovább. A szokásos robot- és adapterobjektumok mellett a fogyasztó néhány képességhez kapcsolódó objektumot is tartalmaz, amelyek a szakértelemmel való tevékenységek cseréjére szolgálnak. A készségfelhasználók legalább két HTTP-végpontot implementálnak:
- Az üzenetkezelési végpont tevékenységeket fogad a felhasználótól vagy a csatornától. Ez az összes robot által implementálható szokásos üzenetkezelési végpont.
- Képességgazdavégpont egy képességtől származó tevékenységek fogadásához. Ez visszahívási URL-címként működik, amely a szolgáltatás URL-címe, amelyre a képesség válaszol. (A képességfelhasználónak olyan kódot kell párosítania, amely egy képességkezelővel fogadja a HTTP-metódus kérését.)
- A képességhez hozzáadott logika szükséges ahhoz, hogy egy
endOfConversation
tevékenység elküldése befejeződjön, hogy a képességfelhasználó tudja, mikor kell leállítani a tevékenységeknek a képességhez való továbbítását.
Ez az ábra a tevékenységek folyamatát mutatja be a felhasználótól a gyökérrobotig egy képességig, majd újra.
- A gyökérrobot adaptere fogadja a felhasználótól a tevékenységeket, és továbbítja őket a gyökérrobot tevékenységkezelőjének. (A felhasználó tevékenységei a gyökérrobot üzenetkezelési végpontján érkeznek.)
- A gyökérrobot egy skill HTTP-ügyfél használatával küld egy tevékenységet a képességnek. Az ügyfél egy képességdefinícióból és egy készségalapú beszélgetésazonosító-előállítóból szerzi be a fogyasztói-készség beszélgetési információkat. Ebbe beletartozik a szolgáltatás URL-címe, amelyet a képesség a tevékenység megválaszolásához használ.
- A képességadapter tevékenységeket fogad a képességfelhasználótól, és továbbítja őket a képesség tevékenységkezelőjének. (A fogyasztótól érkező tevékenységek a készségrobot üzenetkezelési végpontján érkeznek.)
- Amikor a képesség válaszol, a gyökérrobot készségkezelője megkapja a tevékenységet. Lekéri a gyökérfelhasználói beszélgetés adatait a készségalapú beszélgetésazonosító-előállítóból. Ezután továbbítja a tevékenységet a gyökérrobot adapterének. (A szakértelemből származó tevékenységek a gyökérrobot képességgazda végpontján érkeztek.)
- A gyökérrobot adaptere belsőleg proaktív üzenetet generál a felhasználóval folytatott beszélgetés folytatásához.
- A gyökérrobot adaptere minden üzenetet küld a képességből a felhasználónak.
Ezek az objektumok segítenek a készségek kezelésében és a képességforgalom irányításában:
- A Bot Framework-képesség leírja egy képesség útválasztási információját, és olvasható a képességfelhasználó konfigurációs fájljából.
- A skill HTTP-ügyfél tevékenységeket küld egy képességnek.
- A készségkezelő tevékenységeket fogad egy képességtől.
- A skill conversation ID factory lefordítja a felhasználó gyökérszintű beszélgetési referenciáját és a gyökérszintű beszélgetési referenciát.
- A Bot Csatlakozás or szolgáltatás csatorna- és robotközi hitelesítést is biztosít. Hitelesítési konfigurációs objektum használatával jogcímérvényesítést adhat hozzá egy képesség- vagy képességfelhasználóhoz, hogy korlátozza, mely alkalmazások vagy felhasználók rendelkeznek hozzáféréssel.
A képességügyfél és a képességkezelő objektum egyaránt a beszélgetésazonosító-előállítóval fordítja le azt a beszélgetést, amelyet a gyökérrobot használ a felhasználóval való interakcióhoz, és a gyökérrobot által a képesség kezeléséhez használt beszélgetés között.
Képességjegyzékek
A képességjegyzék egy JSON-fájl, amely leírja a képesség által végrehajtható műveleteket, a bemeneti és kimeneti paramétereket, a képesség végpontjait és a képességhez tartozó modellek küldését.
A képességjegyzék sémájáról további információt a képességjegyzék írásával kapcsolatban talál.
Robotok közötti kommunikáció
Fontos tisztában lenni a tervezés bizonyos aspektusaival, függetlenül a megtervezett robottól.
Képességműveletek
Egyes készségek több feladatot vagy műveletet is végrehajthatnak. Egy teendős képesség például lehetővé teheti a különálló beszélgetésekként elérhető tevékenységek létrehozását, frissítését, megtekintését és törlését.
- Megtudhatja, hogyan valósíthat meg egy olyan készséget egy egyszerű képességhez, amely egyetlen műveletet valósít meg.
- Megtudhatja, hogyan használhat párbeszédpaneleket egy készségen belül egy olyan képességhez, amely párbeszédpaneleket használ több művelet implementálásához.
Beszélgetési hivatkozások
A felhasználó gyökérszintű beszélgetése eltér a gyökérszintű beszélgetésétől.
A beszélgetésazonosító-előállító segít kezelni a készségfelhasználó és a képesség közötti forgalmat. A gyár lefordítja annak a beszélgetésnek az azonosítóját, amellyel a gyökér rendelkezik a felhasználóval, és azt, amelyikkel rendelkezik a szakértelemmel. Más szóval létrehoz egy beszélgetési azonosítót a gyökér és a képesség közötti használathoz, és helyreállítja az eredeti felhasználó-gyökér beszélgetés azonosítóját a gyökérszintű beszélgetési azonosítóból.
Kiszolgálóközi koordináció
A gyökér- és képességrobotok HTTP-en keresztül kommunikálnak. Így előfordulhat, hogy a gyökérrobotnak az a példánya, amely egy adott képességtől kap tevékenységet, nem lehet ugyanaz a példány, amely a kezdeményező tevékenységet küldte; más szóval, a különböző kiszolgálók kezelhetik ezt a két kérést.
- A tevékenység képességhez való továbbítása előtt mindig mentse az állapotot a képességfelhasználóban. Ez biztosítja, hogy a képességtől forgalmat fogadó példány ott tudja felvenni a kapcsolatot, ahol az előző példány abbahagyta, mielőtt meghívta volna a képességet.
- Amikor a képességkezelő egy adott képességtől kap egy tevékenységet, az lefordítja a készségfelhasználónak megfelelő űrlapra, és továbbítja azt a fogyasztó adapterének.
Készségfelhasználó és képességállapot
A készségfelhasználó és a készség külön kezeli a saját állapotát. A fogyasztó azonban létrehozza azt a beszélgetési azonosítót, amelyet a képességgel való kommunikációhoz használ. Ez hatással lehet a készség beszélgetési állapotára.
Fontos
Ahogy korábban már említettük, amikor a képességfelhasználó egy felhasználói tevékenységet delegál egy képességbe, a fogyasztó egy másik példánya is megkaphatja a képességre adott választ. A fogyasztónak mindig azonnal mentenie kell a beszélgetés állapotát, mielőtt egy tevékenységet továbbít egy képességhez.
Robotok között történő hitelesítés
Nincs szükség alkalmazásazonosítóra és jelszóra ahhoz, hogy a Bot Framework Emulatorban helyileg tesztelje a képesség- és képességfelhasználót. A képesség Azure-beli üzembe helyezéséhez továbbra is Azure-előfizetésre van szükség.
A szolgáltatásszintű hitelesítést a Bot Csatlakozás or szolgáltatás kezeli. A keretrendszer tulajdonosi jogkivonatokat és robotalkalmazás-azonosítókat használ az egyes robotok identitásának ellenőrzéséhez. (A Bot Framework egy hitelesítési konfigurációs objektummal ellenőrzi a hitelesítési fejlécet a bejövő kérelmeken.)
Fontos
Ehhez az összes üzembe helyezett robotnak (a készségfelhasználónak és az általa használt készségeknek) érvényes alkalmazás-hitelesítő adatokkal kell rendelkeznie.
Jogcímek érvényesítése
A hitelesítési konfigurációhoz hozzá kell adnia egy jogcím-érvényesítőt . A jogcímek kiértékelése a hitelesítési fejléc után történik. A kérés elutasításához küldjön egy hibát vagy kivételt az érvényesítési kódban.
Megjegyzés:
A robot jogcímérvényesítést hajt végre, ha rendelkezik alkalmazásazonosítóval és jelszóval; ellenkező esetben a jogcímek érvényesítése nem történik meg.
Az egyébként hitelesített kérések elutasításának különböző okai lehetnek:
- Ha a készségfelhasználónak csak olyan készségekből kell forgalmat fogadnia, amelyekkel beszélgetést kezdeményezhetett.
- Ha egy képesség egy fizetős szolgáltatás része, és az adatbázisban nem szereplő felhasználóknak nem kell hozzáféréssel rendelkezniük.
- Ha korlátozni szeretné a képességhez való hozzáférést adott képességfelhasználók számára.
Fontos
Ha nem ad meg jogcím-érvényesítőt, a robot hibát vagy kivételt fog generálni, ha egy másik robottól kap tevékenységet, függetlenül attól, hogy a robot készség- vagy készségfelhasználó.
Hibakeresési készségbeszélgetések
Mivel a készségek és a készségfelhasználók közötti forgalom hitelesítése megtörtént, az ilyen robotok hibakereséséhez további lépések is szükségesek.
- A készségfelhasználónak és az általa használt összes készségnek közvetlenül vagy közvetve futnia kell.
- Ha a robotok helyileg futnak, és bármelyik robot rendelkezik alkalmazásazonosítóval és jelszóval, akkor minden robotnak érvényes azonosítókkal és jelszóval kell rendelkeznie.
- Ha a robotok mindegyike üzembe van helyezve, tekintse meg, hogyan végezhet hibakeresést bármely csatornáról az ngrok használatával.
- Ha a robotok egy része helyileg fut, és némelyik üzembe van helyezve, akkor megtudhatja, hogyan végezhet hibakeresést egy képesség- vagy képességfelhasználóban.
Ellenkező esetben ugyanúgy hibakeresést végezhet egy képességfelhasználón vagy képességen, mint más robotok. További információ: Robot hibakeresése és hibakeresés a Bot Framework Emulator használatával.
További információk
A felhasználó szempontjából a gyökérrobottal kommunikálnak. A képesség szempontjából a képességfelhasználó az a csatorna, amelyen keresztül kommunikál a felhasználóval.
- A készségfelhasználókról további információt a készségfelhasználókról talál.