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


Beszélgetési folyamat tervezése és vezérlése

A KÖVETKEZŐKRE VONATKOZIK: SDK v4

A hagyományos alkalmazásokban a felhasználói felület (UI) képernyők sorozatából áll, és egyetlen alkalmazás vagy webhely szükség szerint egy vagy több képernyőt használhat a felhasználóval való információcseréhez. A legtöbb alkalmazás egy főképernyővel kezdődik, ahol a felhasználók először leszállnak, és ez a képernyő olyan navigációt biztosít, amely más képernyőkhöz vezet különböző funkciókhoz, például új megrendelés indításához, termékek böngészéséhez vagy segítségkéréshez.

Az alkalmazásokhoz és webhelyekhez hasonlóan a robotok is rendelkeznek felhasználói felülettel, de a képernyők helyett üzenetekből áll. Az üzenetek tartalmazhatnak gombokat, szöveget és egyéb elemeket, vagy teljesen beszédalapúak lehetnek.

Bár egy hagyományos alkalmazás vagy webhely egyszerre több információt is kérhet egy képernyőn, a robotok ugyanazt az információt gyűjtik össze több üzenet használatával. Ily módon a felhasználótól származó információk gyűjtése aktív folyamat; az egyik, ahol a felhasználó aktív beszélgetést folytat a robottal.

Egy jól megtervezett robot beszélgetési folyamattal rendelkezik, amely természetesnek érzi magát. A robotnak képesnek kell lennie az alapvető beszélgetés zökkenőmentes kezelésére, és képesnek kell lennie a megszakítások kezelésére vagy a témák közötti váltásra.

Eljárási beszélgetési folyamat

A robotokkal folytatott beszélgetések a robot által elérni kívánt feladatra összpontosíthatnak, amelyet eljárási folyamatnak neveznek. A robot kérdések sorozatát teszi fel a felhasználónak, hogy a feladat feldolgozása előtt összegyűjtse az összes szükséges információt.

Egy eljárási beszélgetési folyamatban ön határozza meg a kérdések sorrendjét, és a robot a megadott sorrendben teszi fel a kérdéseket. A kérdések logikai csoportokba rendezhetők, így a cMicrosoft Entralized kód megmarad, miközben a beszélgetés irányítására összpontosít. Megtervezhet például egy modult, amely tartalmazza azt a logikát, amely segít a felhasználónak a termékek keresésében, és egy külön modult, amely tartalmazza azt a logikát, amely segít a felhasználónak új rendelés létrehozásában.

Ezeket a modulokat úgy strukturálhatja, hogy tetszés szerint haladjanak, az ingyenestől a szekvenciálisig. A Bot Framework SDK egy párbeszédpanel-kódtárat biztosít, amellyel bármilyen beszélgetési folyamatot létrehozhat a robot számára. A kódtár vízesés párbeszédpaneleket tartalmaz a lépések sorozatának létrehozásához, és kérdéseket tesz fel a felhasználóknak. További információ: Párbeszédpanelek könyvtár.

Diagram comparing application GUI flow against bot conversation flow.

Egy hagyományos alkalmazásban minden a főképernyővel kezdődik. A főképernyő meghívja az új rendelési képernyőt. Az új megrendelési képernyő addig van vezérelve, amíg be nem zárja vagy meghívja a többi képernyőt, például a termékkeresési képernyőt. Ha az új rendelési képernyő bezárul, a rendszer visszaadja a felhasználót a főképernyőre.

A párbeszédpaneleket használó robotokban minden a gyökér párbeszédpanellel kezdődik. A gyökér párbeszédpanel meghívja az új rendelési párbeszédpanelt. Ezen a ponton az új megrendelési párbeszédpanel átveszi a beszélgetés irányítását, és az irányítás alatt marad, amíg be nem zárja vagy meghív egy másik párbeszédpanelt, például a termékkeresési párbeszédpanelt. Ha az új sorrend párbeszédpanel bezárul, a beszélgetés vezérlése visszakerül a gyökér párbeszédpanelre.

Példa arra, hogyan implementálhat egy beszélgetési folyamatot a párbeszédpanel-kódtárak használatával, lásd : Szekvenciális beszélgetési folyamat implementálása.

Megszakítások kezelése

Csábító lehet feltételezni, hogy a felhasználók egyenként és rendezetten hajtják végre az eljárási feladatokat. Például egy párbeszédpaneleket használó eljárási beszélgetési folyamatban a felhasználó a gyökér párbeszédpanelen indul el, és meghívja az új rendelési párbeszédpanelt. Az új rendelés párbeszédpanelen meghívják a termékkeresési párbeszédpanelt. Ezután amikor kiválasztja a termékkeresési párbeszédpanelen felsorolt találatok egyikét, meghívják az új rendelési párbeszédpanelt. A rendelés befejezése után visszaérnek a gyökér párbeszédpanelre.

Bár nagyszerű lenne, ha a felhasználók mindig ilyen lineáris, logikai útvonalat járnának, ritkán fordul elő. Kapcsolatok nem mindig egymást követő sorrendben kommunikálnak. Gyakran meggondolják magukat. Vegyük a következő példát:

Example of a user asking a question in response to a question from the bot.

Bár a robot eljárási központú, a felhasználó dönthet úgy, hogy valami teljesen mást tesz, vagy olyan kérdést tesz fel, amely nem kapcsolódik az aktuális témakörhöz. A fenti példában a felhasználó kérdést tesz fel ahelyett, hogy a robot által várt igen/nem választ adja meg. Hogyan reagáljon a robot?

  • Ragaszkodjon hozzá, hogy a felhasználó először válaszoljon a kérdésre.
  • Hagyja figyelmen kívül mindazt, amit a felhasználó korábban tett, állítsa alaphelyzetbe a teljes párbeszédpanel-vermet, és kezdje az elejétől a felhasználó kérdésének megválaszolásával.
  • Próbálja meg megválaszolni a felhasználó kérdését, majd térjen vissza erre az igen/nem kérdésre, és próbálja meg onnan folytatni.

Erre a kérdésre nincs megfelelő válasz, mivel a legjobb megoldás a forgatókönyv jellemzőitől és a felhasználó ésszerűen elvárható, hogy a robot válaszoljon. Megtudhatja, hogyan kezelheti a bizonyos típusú megszakítások kezelésére tervezett robotok felhasználói megszakításait.

Beszélgetés lejárata

Néha hasznos lehet az elejétől kezdve újraindítani egy beszélgetést. Ha például egy felhasználó bizonyos idő elteltével nem válaszol. A beszélgetés befejezésének különböző módszerei a következők:

  • Nyomon követheti, hogy mikor érkezett utoljára üzenet egy felhasználótól, és törölje az állapotot, ha az idő nagyobb, mint egy előre konfigurált hossz, amikor a következő üzenetet megkapja a felhasználótól.
  • Egy tárolási réteg funkció, például a Cosmos DB élettartam-funkciójának használata az állapot előre konfigurált időtartam utáni törléséhez.

További információ: Beszélgetés lejárata.

Következő lépések

A robottervezés alapvető kihívása, hogy a felhasználók a párbeszédablakok közötti navigációt és a beszélgetési folyamatot úgy tervezzék meg, hogy a felhasználók elérhessék céljaikat (akár nem lineáris módon is). A Tervező robot navigációs cikke áttekinti a rosszul megtervezett navigáció néhány gyakori buktatóját, és ismerteti a csapdák elkerülésére szolgáló stratégiákat.