Az összetevők és vízesések párbeszédpaneljei
A KÖVETKEZŐKRE VONATKOZIK: SDK v4
A párbeszédpanelek különböző típusúak. Ez a cikk az összetevőket, a vízeséseket és a parancssori párbeszédpaneleket ismerteti. A párbeszédpanelekkel kapcsolatos általános információkért tekintse meg a párbeszédpaneltárról szóló cikket. Az adaptív párbeszédpanelekről további információt az adaptív párbeszédpanelek bevezetőjében talál.
A vízesés párbeszédpanel (vagy vízesés) lépések sorozatát határozza meg, így a robot végigvezeti a felhasználót egy lineáris folyamaton. Ezek a párbeszédpanelek úgy vannak kialakítva, hogy egy összetevő párbeszédpaneljén belül működjenek.
Az összetevő párbeszédpanel olyan típusú tároló párbeszédpanel, amely lehetővé teszi, hogy a halmaz párbeszédpaneljei más párbeszédpaneleket hívjanak meg a készletben, például egy vízesés párbeszédpanelt, amely a parancssori párbeszédpaneleket vagy egy másik vízesés párbeszédpanelt hív meg. Az összetevők párbeszédpaneljei gyermek párbeszédpanelek készletét kezelik, például vízesés párbeszédpaneleket, utasításokat stb. Egy összetevő párbeszédpanelt úgy tervezhet meg, hogy adott feladatokat kezeljen és újra felhasználjon ugyanabban a robotban vagy több robotban.
A parancssori párbeszédpanelek (parancssorok) olyan párbeszédpanelek, amelyek célja, hogy a felhasználótól bizonyos típusú információkat, például számot, dátumot vagy nevet stb. kérjenek. A parancssorok úgy vannak kialakítva, hogy működjenek a vízesés párbeszédpanelekkel egy összetevő párbeszédpaneljén.
Összetevő párbeszédpaneljei
Néha olyan újrafelhasználható párbeszédpanelt szeretne írni, amelyet különböző forgatókönyvekben szeretne használni, például egy cím párbeszédpanelt, amely arra kéri a felhasználót, hogy adja meg az utca, a város és az irányítószám értékeit.
Az összetevő párbeszédpanel egy olyan stratégiát biztosít, amellyel független párbeszédpaneleket hozhat létre adott forgatókönyvek kezelésére, így a nagy párbeszédpanelek kezelhetőbb részekre bonthatók. Mindegyik darab saját párbeszédpanelkészlettel rendelkezik, és elkerüli a névütközést az azt tartalmazó párbeszédpanelkészlettel. További információt az összetevő párbeszédpaneljén talál.
Vízesés párbeszédpanelek
A vízesés párbeszédpanel egy párbeszédpanel adott implementációja, amelyet gyakran használnak a felhasználótól származó információk gyűjtésére vagy a felhasználó irányítására egy feladatsorozaton keresztül. A beszélgetés minden lépése aszinkron függvényként van implementálva, amely egy vízeséslépés-környezeti (step
) paramétert használ. A robot minden lépésnél kéri a felhasználótól a bemenetet (vagy elindíthat egy gyermek párbeszédpanelt, de ez gyakran kérdés), megvárja a választ, majd átadja az eredményt a következő lépésnek. Az első függvény eredménye argumentumként lesz átadva a következő függvénynek, és így tovább.
Az alábbi ábrán a vízeséslépések és a végrehajtott veremműveletek sorozata látható. A párbeszédpanel-verem használatáról az alábbi, a using dialogs (Használat) szakaszban tájékozódhat.
A vízesés lépésein belül a vízesés párbeszédpanel környezete a vízesés lépéskörnyezetében lesz tárolva. A lépéskörnyezet hasonló a párbeszédpanel környezetéhez, és hozzáférést biztosít az aktuális turn környezethez és állapothoz. A vízeséslépés környezeti objektumával egy vízeséslépésen belül egy párbeszédpanelt használhat.
A visszatérési értéket egy párbeszédpanelen belül vagy egy párbeszédpanel vízesés lépésén belül, vagy a robot bekapcsolt kezelőjéből is kezelheti, bár általában csak a robot fordulatlogikája alapján kell ellenőriznie a párbeszédpanel állapotát. A vízeséslépésen belül a párbeszédpanel megadja a visszatérési értéket a vízeséslépés környezetének eredménytulajdonságában .
Vízeséslépés környezeti tulajdonságai
A vízeséslépés környezete a következő tulajdonságokat tartalmazza:
- Beállítások: a párbeszédpanel bemeneti adatait tartalmazza.
- Értékek: olyan információkat tartalmaz, amelyet hozzáadhat a környezethez, és továbbhalad a következő lépésekbe.
- Eredmény: az előző lépés eredményét tartalmazza.
Emellett a következő metódus (C#-ban NextAsync , JavaScriptben és Pythonban) ugyanazon a körben folytatódik a vízesés párbeszédpanel következő lépésével, ami lehetővé teszi, hogy a robot szükség esetén kihagyjon egy bizonyos lépést.
Kéri
A párbeszédpanelek tárában található parancssorokkal egyszerűen kérhet információt a felhasználótól, és értékelheti a válaszát. Egy számkéréshez például meg kell adnia a keresett kérdést vagy információt, és a kérdés automatikusan ellenőrzi, hogy érvényes számválaszt kapott-e. Ha igen, a beszélgetés folytatódhat; ha nem, akkor a felhasználót újrapróbálkezteti egy érvényes válaszért.
A színfalak mögött a parancssorok kétlépéses párbeszédpanelek. Először is a rendszer kéri a bemenetet; másodszor, az érvényes értéket adja vissza, vagy felülről indul egy újraprompttal.
A parancssorok a parancssor meghívásakor megadják a parancssori beállításokat , itt adhatja meg a rákérdező szöveget, az újrapróbálkozás kérését, ha az érvényesítés sikertelen, valamint választási lehetőségeket ad a kérdés megválaszolására. Általánosságban elmondható, hogy a rákérdezés és az újrapróbálkozási kérés tulajdonságai tevékenységek, bár van némi eltérés a különböző programozási nyelvekben történő kezelés módjában.
Emellett dönthet úgy is, hogy a létrehozáskor egyéni ellenőrzést ad a kérdéshez. Tegyük fel például, hogy a számkéréssel szeretnénk egy pártméretet beszúrni, de ennek a pártméretnek 2-nél nagyobbnak és 12-nél kisebbnek kell lennie. A parancssor először ellenőrzi, hogy kapott-e érvényes számot, majd futtatja az egyéni ellenőrzést, ha meg van adva. Ha az egyéni érvényesítés sikertelen, a felhasználót a fenti módon fogja újrahitelesíteni.
Amikor egy kérdés befejeződik, az explicit módon visszaadja a kért értéket. Az érték visszaadásakor biztosak lehetünk abban, hogy megfelelt a beépített parancssori ellenőrzésnek és az esetlegesen megadott további egyéni érvényesítésnek is.
A különböző kérések használatával kapcsolatos példákért tekintse meg, hogyan gyűjthet felhasználói bevitelt a párbeszédpaneltár használatával.
Kérdéstípusok
A színfalak mögött a parancssorok kétlépéses párbeszédpanelek. Először is a rendszer kéri a bemenetet; másodszor az érvényes értéket adja vissza, vagy felülről újraindul egy újraprompttal. A párbeszédpaneltár különböző alapszintű utasításokat kínál, amelyeket különböző típusú válaszok gyűjtésére használnak. Az alapszintű kérések képesek értelmezni a természetes nyelvi bemeneteket, például "tíz" vagy "egy tucat" egy számot, vagy a "holnap" vagy a "péntek 10:00" dátum-idő szerint.
Adatkérés | Description | Válaszok |
---|---|---|
Mellékletre vonatkozó üzenet | Egy vagy több mellékletet kér, például egy dokumentumot vagy képet. | Mellékletobjektumok gyűjteménye. |
Választási lehetőségekre vonatkozó kérdés | Több lehetőség közül is választ. | Egy talált választási lehetőség objektum. |
Megerősítési kérés | Megerősítést kér. | Logikai érték. |
Dátum-idő kérdés | Dátum-időpontot kér. | Dátum-időfeloldási objektumok gyűjteménye. |
Számkérés | Egy számot kér. | Egy numerikus érték. |
Szöveges üzenet | Általános szövegbevitelt kér. | Egy sztring. |
Ha be szeretne kérni egy felhasználót, adjon meg egy kérdést az egyik beépített osztály , például a szöveges parancssor használatával, és adja hozzá a párbeszédpanelhez. A parancssorok rögzített azonosítókkal rendelkeznek, amelyeknek egyedinek kell lenniük egy párbeszédpanelen belül. Minden egyes kérdéshez egyéni érvényesítőt állíthat be, és egyes kérések esetén megadhat egy alapértelmezett területi beállítást.
Területi beállítás kérése
A területi beállítás a választott nyelvspecifikus viselkedés, a megerősítés, a dátum-idő és a számkérések meghatározására szolgál. Ha a felhasználó adott bemeneteként a csatorna megadott egy területi tulajdonságot a felhasználó üzenetében, a rendszer ezt használja. Ellenkező esetben, ha a parancssor alapértelmezett területi beállítása be van állítva, adja meg a parancssor konstruktorának meghívásakor vagy később történő beállításával, akkor ezt használja a rendszer. Ha egyik területi beállítást sem adja meg, az angol ("en-us") lesz a területi beállítás.
A területi beállítás egy két, három vagy négy karakterből álló ISO 639-kód, amely egy nyelvet vagy nyelvcsaládot jelöl.
Parancssori beállítások
A lépéskörnyezet parancssori metódusának második paramétere egy parancssori beállításobjektumot vesz fel, amely az alábbi tulajdonságokkal rendelkezik.
Tulajdonság | Leírás |
---|---|
Adatkérés | A felhasználó elküldéséhez szükséges kezdeti tevékenység, amely kéri a bemenetet. |
Újrapróbálkozás kérése | A felhasználó elküldéséhez szükséges tevékenység, ha az első bemenete nem érvényesíthető. |
Choices | Azoknak a lehetőségeknek a listája, amelyek közül a felhasználó választhat, és egy választási kérdésben használható. |
Ellenőrzések | Egyéni érvényesítővel használható további paraméterek. |
Stílus | Meghatározza, hogy a választási lehetőségek hogyan jelenjenek meg a felhasználónak a választási lehetőségek közül. |
Mindig meg kell adnia a felhasználónak küldendő kezdeti kérési tevékenységet, valamint egy újrapróbálkozési kérést azokra a példányokra, amikor a felhasználó bemenete nem érvényesíthető.
Ha a felhasználó bemenete érvénytelen, a rendszer elküldi az újrapróbálkozési kérést a felhasználónak; ha nem lett megadva újrapróbálkozás, akkor a rendszer a kezdeti parancssort használja. Ha azonban a rendszer visszaküld egy tevékenységet a felhasználónak az érvényesítőn belülről, a rendszer nem küld újrapróbálkozési kérést.
Érvényesítés kérése
Mielőtt visszaadja az értéket a vízesés következő lépésének, ellenőrizheti a kérdésre adott választ. Az érvényesítő függvény egy prompt validator környezeti paraméterrel rendelkezik, és egy logikai értéket ad vissza, amely azt jelzi, hogy a bemenet megfelel-e az ellenőrzésen. A parancssori érvényesítő környezet a következő tulajdonságokat tartalmazza:
Tulajdonság | Leírás |
---|---|
Környezet | A robot aktuális fordulati környezete. |
Elismert | A felismerő által feldolgozott, a felhasználói bemenettel kapcsolatos információkat tartalmazó parancssori felismerő eredmény . |
Beállítások | A hívásban a parancssor indításához megadott parancssori beállításokat tartalmazza. |
A prompt recognizer eredménye a következő tulajdonságokkal rendelkezik:
Tulajdonság | Leírás |
---|---|
Sikeres | Azt jelzi, hogy a felismerő képes volt-e elemezni a bemenetet. |
Érték | A felismerő visszatérési értéke. Ha szükséges, az érvényesítési kód módosíthatja ezt az értéket. |
Párbeszédpanelek használata
A párbeszédpanelek programozott veremnek tekinthetők, amelyet a párbeszédpanel-veremnek nevezünk, és a turn handler az, amelyik irányítja, és tartalékként szolgál, ha a verem üres. A verem legfelső eleme aktív párbeszédpanelnek számít, és a párbeszédpanel környezete az aktív párbeszédpanelhez irányítja az összes bemenetet.
Amikor egy párbeszédpanel megkezdődik, a rendszer a verembe küldi azt, és ez lesz az aktív párbeszédpanel. Az aktív párbeszédpanel addig marad aktív, amíg valamelyik vége meg nem szűnik, a csere párbeszédpanel-metódus eltávolítja, vagy egy másik párbeszédpanel kerül a verembe (akár a turn handler, akár az aktív párbeszédpanel), és aktív párbeszédablak lesz belőle. Amikor az új párbeszédpanel véget ér, az kiugra a veremből, és a következő párbeszédpanel ismét aktív párbeszédpanel lesz. Ez lehetővé teszi egy párbeszédpanel megismétlését vagy egy beszélgetés elágaztatását, az alábbiakban ismertetett módon.
A gyökérszintű párbeszédpanelt a futtatási párbeszédpanel bővítménymetódusával kezdheti meg vagy folytathatja. A robot kódjából a párbeszédpanel-futtatási bővítmény metódusának meghívása vagy folytatja a meglévő párbeszédpanelt, vagy elindítja a párbeszédpanel új példányát, ha a verem jelenleg üres. A vezérlés és a felhasználói bevitel az aktív párbeszédpanelre kerül a veremen.
A futtatási módszerhez állapottulajdonság-tartozék szükséges a párbeszédpanel állapotának eléréséhez. A tartozék ugyanúgy jön létre és használható, mint a többi állapotkiegészítő, de a beszélgetési állapot alapján saját tulajdonként jön létre. Az állapotkezeléssel kapcsolatos részletek a kezelési állapot témakörében találhatók, a párbeszédpanel állapotának használata pedig a szekvenciális beszélgetési folyamat útmutatójában látható.
A párbeszédpanelen belülről hozzáférhet a párbeszédpanel környezetéhez, és használhatja más párbeszédpanelek indítására, az aktuális párbeszédpanel befejezésére és más műveletek végrehajtására.
Párbeszédpanel indítása
A vízesés párbeszédpanelen belül adja meg annak a párbeszédpanelnek a párbeszédpanel-azonosítóját , amelyet el szeretne indítani a vízesés párbeszédpanel környezetébe az indítási párbeszédpanel, a parancssor vagy a csere párbeszédpanel-módszerrel .
- A parancssori és a kezdő párbeszédpanel metódusai a hivatkozott párbeszédpanel új példányát küldik a verem tetejére.
- A csere párbeszédpanelmetódus kiugrik az aktuális párbeszédpanelből a veremből, és leküldi a csere párbeszédpanelt a verembe. A lecserélt párbeszédpanelt a rendszer megszakítja, és a példányban lévő összes információ törlődik.
A beállításparaméter használatával adatokat adhat át a párbeszédpanel új példányának. Az új párbeszédpanelen átadott beállítások a lépéskörnyezet beállítástulajdonságán keresztül érhetők el a párbeszédpanel bármely lépésében. További információkért tekintse meg, hogyan hozhat létre speciális beszélgetési folyamatot ágak és hurkok használatával.
Párbeszédpanel folytatása
A vízesés párbeszédpanelen a lépéskörnyezet értéktulajdonságával megőrizheti az állapotot a kanyarok között. A gyűjteményhez az előző fordulóban hozzáadott értékek a következő fordulatokban érhetők el. További információkért tekintse meg, hogyan hozhat létre speciális beszélgetési folyamatot ágak és hurkok használatával.
Párbeszédpanel befejezése
A vízesés párbeszédpanelen belül a befejezési párbeszédpanel metódusával fejezhet be egy párbeszédpanelt a veremből való kiugratással. A befejezési párbeszédpanel metódusa nem kötelező eredményt adhat vissza a szülőkörnyezetnek (például az azt meghívó párbeszédpanelnek vagy a robot fordulatkezelőjének). Ezt leggyakrabban a párbeszédpanelen belül hívjuk meg, hogy véget vessen magának az aktuális példánynak.
A végponti párbeszédpanel metódusát bárhonnan meghívhatja, ahol van párbeszédpanel-környezet, de az megjelenik a robot számára, amelyet az aktuális aktív párbeszédpanelen hívott meg.
Tipp
Ajánlott explicit módon meghívni a végponti párbeszédpanel metódusát a párbeszédpanel végén.
Az összes párbeszédpanel törlése
Ha az összes párbeszédpanelt ki szeretné kapcsolni a veremből, a párbeszédpanel-környezet összes párbeszédpanel-megszakítási metódusának meghívásával törölheti a párbeszédpanel-vermet.
Párbeszédpanel ismétlése
A párbeszédpaneleket lecserélheti önmagára, és létrehozhat egy hurkot a csere párbeszédpanel-metódussal . Ez nagyszerű módja az összetett interakciók kezelésének és a menük kezelésének egyik technikájának.
Megjegyzés
Ha meg kell őriznie az aktuális párbeszédpanel belső állapotát, meg kell adnia az információkat a párbeszédpanel új példányának a csere párbeszédpanelmetódus hívásában, majd megfelelően inicializálnia kell a párbeszédpanelt.
Beszélgetés elágazása
A párbeszédpanel környezete fenntartja a párbeszédpanel-vermet, és a verem minden egyes párbeszédpanelén nyomon követi, hogy melyik lépés következik. A kezdő párbeszédmetódus létrehoz egy gyermeket, és leküldi a párbeszédpanelt a verem tetejére, a záró párbeszédmetódus pedig a felső párbeszédpanelt ugratja ki a veremből. A záró párbeszédpanelt általában a befejező párbeszédpanelen belül hívjuk meg.
Egy párbeszédpanel új párbeszédpanelt indíthat ugyanazon a párbeszédpanelen belül, ha meghívja a párbeszédpanel-környezet kezdő párbeszédpanel-metódusát , és megadja az új párbeszédpanel azonosítóját, így az új párbeszédpanel lesz az aktuálisan aktív párbeszédpanel. Az eredeti párbeszédpanel továbbra is a veremen van, de a párbeszédpanel-környezet folytatási párbeszédpanel-metódusának hívásait csak a verem tetején lévő párbeszédpanelre, az aktív párbeszédpanelre küldi a rendszer. Amikor egy párbeszédpanel kiugra a veremből, a párbeszédpanel környezete folytatódik a vízesés következő lépésével azon a veremen, ahol az eredeti párbeszédpanelt abbahagyta.
Ezért létrehozhat egy ágat a beszélgetési folyamatban úgy, hogy belefog egy lépést egy párbeszédpanelbe, amely feltételesen kiválaszthat egy párbeszédpanelt, hogy az elérhető párbeszédpanelek készletéből induljon ki.
További információ
- Az adaptív párbeszédpanelekről további információt az adaptív párbeszédpanelek bemutatásában talál.
- A képességekkel kapcsolatos információkért tekintse meg a készségekkel kapcsolatos információkat.