A párbeszédpanelek bemutatása
Mielőtt elkezdene robotot fejleszteni a Bot Framework Composerrel, hasznos megérteni a robottervezés kulcsfontosságú fogalmát – párbeszédpaneleket.
A legegyszerűbb esetek mindegyikében a robot valószínűleg több párbeszédpanelt használ többfordulós beszélgetések implementálásához, amelyekben a robot adatokat gyűjt a felhasználótól, és az állapotot a fordulások között tárolja. A robotok közötti interakció általában egy fő párbeszédpanellel kezdődik, amelyben a robot üdvözli a felhasználót, és létrehozza a kezdeti beszélgetést, majd elindítja a gyermek párbeszédpaneleket.
Párbeszédpanelek folyamata
Hasznos lehet összehasonlítani a hagyományos alkalmazások interakcióinak áramlását egy robottal. Fontolja meg egy pizzarendelési alkalmazást.
A hagyományos alkalmazásokban a felhasználók általában "képernyők" vagy "oldalak" sorozataként tekintenek az interakciókra. Egy pizzarendelési webhelyen például a felhasználó a kezdőképernyőn kezdhet. Ezután a felhasználó kiválaszthat egy lehetőséget a rendelkezésre álló pizzabeállítások megtekintéséhez, áthelyezheti az alkalmazást a Pizza kiválasztása képernyőn, ahol a felhasználó kiválaszthatja és testre szabhatja a pizzát. Végül a felhasználó dönthet úgy, hogy kijelentkezik, és a Rendelési képernyőre viszi őket, ahol megadhatja a fizetési és szállítási adatokat.
A robotok hasonló szekvenciális mintát követhetnek, amelyben minden egyes "képernyőt" felvált egy párbeszédpanel, amely összegyűjti a szükséges információkat, mielőtt a felhasználót a következő fázisba helyezné.
A lényeg az, hogy fontolja meg a robot célját - mit kell segítenie a felhasználónak elérni? Ezután olyan párbeszédfolyamatot tervezhet meg párbeszédpanelek alapján, amelyek összegyűjtik a szükséges információkat, és hatékonyan jutnak el a megoldáshoz.
Párbeszédpanelek implementálása a Bot Framework Composerrel
A Bot Framework Composer párbeszédpaneleket (korábban adaptív párbeszédpaneleket) implementál a robotbeszélgetés létrehozásához. A párbeszédpanelek rugalmas beszélgetési folyamattal rendelkeznek, amely lehetővé teszi a megszakításokat, a megszakításokat és a környezeti kapcsolókat a beszélgetés bármely pontján. Az egyes párbeszédpanelek a következőkből állnak:
- Egy vagy több művelet , amely meghatározza az üzenettevékenységek folyamatát a párbeszédpanelen. Ezek közé tartozik az üzenet küldése, a felhasználó kérése bemenetre, kérdés feltevése és a beszélgetés elágaztatása.
- Eseményindító, amely meghívja a párbeszédpanel logikáját bizonyos feltételekhez vagy az észlelt szándék alapján.
- Egy felismerő, amely a szemantikai szándék meghatározásához értelmezi a felhasználói bemenetet. A felismerők alapértelmezés szerint a Language Understanding szolgáltatáson alapulnak, de más típusú felismerőket is használhat; például a QnA szolgáltatás vagy az egyszerű reguláris kifejezés egyezése.
A robot üzenetei vagy válaszai egy vagy több válaszból választhatnak, amelyeket véletlenszerűen választanak ki egy dinamikusabb beszélgetéshez.
Ezen elemek mellett egy párbeszédpanel memóriával is rendelkezik, amelyben az értékek tulajdonságokként vannak tárolva. A tulajdonságok különböző hatókörökben határozhatók meg, beleértve a felhasználói hatókört (olyan változókat, amelyek a robottal folytatott felhasználói munkamenet teljes időtartamára tárolnak információkat, például user.greeted
) és párbeszédpanel-hatókörökben (a párbeszédpanel élettartamára vonatkozó változók, példáuldialog.response
).
Ebben a beszélgetési stílusban a robot elindít egy fő párbeszédpanelt, amely egy műveletfolyamot tartalmaz (amely ágakat és hurkokat is tartalmazhat). A párbeszédpanelen a felismerő elemzi a felhasználóktól érkező adatokat, és a válaszokat a bemeneti eseménytől függően adja vissza. A felismerő elemzi az eseményt vagy a természetes nyelvi bemenetet a szándékok észleléséhez, amelyek leképezhetők a beszélgetés folyamatát módosító eseményindítókra. Ez a folyamatváltozás gyakran új gyermek párbeszédpaneleket indít el, amelyek saját műveleteket, eseményindítókat és felismerőket tartalmaznak.
Ha például egy új felhasználót adnak hozzá a beszélgetéshez, és elindít egy ConversationUpdate
tevékenységet, a robot különböző üdvözlő válaszokkal üdvözölheti őket, majd feltehet nekik egy kérdést.
Egy másik példa, a pizzarendelési robot egy fő párbeszédpanellel kezdődhet, amely egyszerűen üdvözli a felhasználót. Amikor a felhasználó egy üzenetet ír be, amely jelzi, hogy pizzát szeretne rendelni, a felismerő észleli ezt a szándékot, és egy eseményindítóval elindít egy másik párbeszédpanelt, amely a pizzarendeléssel kapcsolatos információk gyűjtéséhez szükséges műveleteket tartalmazza.