Megosztás a következőn keresztül:


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.

Illustration of permutations between skill consumers and skills.

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.

Illustration of how activities flow from the user to the skill and back again.

  1. 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.)
  2. 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.
  3. 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.)
  4. 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.)
  5. A gyökérrobot adaptere belsőleg proaktív üzenetet generál a felhasználóval folytatott beszélgetés folytatásához.
  6. 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.

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.

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.