Knihovna dialogových oken
PLATÍ PRO: SDK v4
Dialogy jsou konceptem cMicrosoft Entral v sadě SDK a poskytují způsoby správy dlouhotrvající konverzace s uživatelem. Dialogové okno provádí úlohu, která může představovat část nebo úplné konverzační vlákno. Může překlenovat jen jeden turn nebo mnoho a může trvat krátkou nebo dlouhou dobu.
Tento článek popisuje základní třídy a funkce knihovny dialogových oken.
- Měli byste být obeznámeni s fungováním robotů (včetně toho, co se děje) a spravovat stav.
- Každý dialog představuje konverzační úlohu, která se může spustit až po dokončení a vrátit shromážděné informace.
- Každý dialog představuje základní jednotku toku řízení: může začínat, pokračovat a ukončit; pozastavení a obnovení; nebo být zrušena.
- Dialogy jsou podobné metodě nebo funkci v programovacím jazyce. Při spuštění dialogového okna můžete předat argumenty nebo parametry a dialogové okno může později vytvořit návratovou hodnotu, jakmile skončí.
Tip
Pokud s vývojem robotů s využitím služby Bot Framework nebo vytvořením nového konverzačního prostředí začínáte s nástrojem Bot Framework Composer. U stávajících robotů sady SDK, které nejsou vytvořené v nástroji Composer, zvažte zveřejnění robota jako dovednosti a použití nástroje Composer pro budoucí vývoj robotů.
Stav dialogového okna
Dialogy můžou implementovat konverzaci s vícenásobným zapnutím, a proto spoléhají na trvalý stav při otáčení. Bez stavu v dialogových oknech by váš robot nevěděl, kde byl v konverzaci nebo jaké informace už shromáždil.
Pokud chcete zachovat místo dialogového okna v konverzaci, musí se stav dialogového okna načíst a uložit do paměti. Tento postup se zpracovává prostřednictvím přístupového objektu vlastnosti stavu dialogového okna definovaného ve stavu konverzace robota. Tento stav dialogového okna spravuje informace pro všechna aktivní dialogová okna a podřízené položky aktivních dialogů. Robot tak může vyzvednout místo, kde naposledy skončil, a zpracovávat různé modely konverzací.
Za běhu obsahuje vlastnost stavu dialogového okna informace o tom, kde je dialogové okno v logickém procesu, včetně všech interně shromážděných informací ve formě objektu instance dialogového okna. Znovu je potřeba, aby se tento postup četl do robota a každý z nich se uložil do paměti.
Infrastruktura dialogových oken
Spolu s různými typy dialogových oken jsou do návrhu a řízení konverzací zapojeny následující třídy. I když s těmito třídami obvykle nemusíte interagovat přímo, uvědomte si je a jejich účel je užitečný při návrhu dialogových oken pro robota.
Třída | Popis |
---|---|
Sada dialogových oken | Definuje kolekci dialogových oken, které se můžou vzájemně odkazovat a pracovat na koncertě. |
Kontext dialogového okna | Obsahuje informace o všech aktivních dialogech. |
Instance dialogového okna | Obsahuje informace o jednom aktivním dialogovém okně. |
Výsledek otáčení dialogového okna | Obsahuje informace o stavu z aktivního nebo nedávno aktivního dialogového okna. Pokud aktivní dialogové okno skončilo, obsahuje jeho návratovou hodnotu. |
Typy dialogů
Knihovna dialogových oken nabízí několik typů dialogů, které usnadňují správu konverzací robota. Některé z těchto typů jsou podrobněji popsány dále v tomto článku.
Typ | Popis |
---|---|
dialog | Základní třída pro všechny dialogy. |
Dialog kontejneru | Základní třída pro všechna dialogová okna kontejneru , jako jsou komponenty a adaptivní dialogy. Udržuje vnitřní sadu dialogů a umožňuje považovat kolekci dialogů za jednotku. |
dialogové okno komponent | Obecný typ dialogového okna kontejneru, který zapouzdřuje sadu dialogů, což umožňuje opakované použití sady jako celku. Když se spustí dialogové okno komponenty, začne v jeho kolekci označeným dialogem. Po dokončení vnitřního procesu skončí dialogové okno komponenty. |
vodopádový dialog | Definuje posloupnost kroků, což robotovi umožní provést uživatele lineárním procesem. Obvykle jsou navržené tak, aby fungovaly v kontextu dialogového okna komponenty. |
dialogových oken výzvy | Požádejte uživatele, aby zadal vstup a vrátil výsledek. Výzva se bude opakovat, dokud se nezobrazí platný vstup nebo se zruší. Jsou navržené tak, aby fungovaly s vodopádovými dialogy. |
adaptivní dialog | Typ dialogového okna kontejneru, který composer používá k poskytování přirozenějších konverzačních toků. Nemělo by se používat přímo v robotovi sdk-first. |
Dialogy akcí | Typ dialogového okna, který podporuje implementaci akcí v nástroji Composer. Nemělo by se používat přímo v robotovi sdk-first. |
vstupní dialogy | Typ dialogového okna, který podporuje implementaci vstupních akcí v Composeru. Nemělo by se používat přímo v robotovi sdk-first. |
dialog dovedností | Automatizuje správu jednoho nebo více robotů dovedností od příjemce dovedností. Composer přímo podporuje dovednosti jako akce. |
Dialogové okno služby QnA Maker | Automatizuje přístup k znalostní báze služby QnA Maker. Toto dialogové okno je navržené tak, aby fungovalo také jako akce v nástroji Composer. |
Důležité
Adaptivní dialogy byly poprvé přidány ve verzi 4.9 sady C# SDK. Adaptivní dialogy podporují nástroj Bot Framework Composer a nejsou určené k použití přímo v robotovi sady SDK.
Vzory dialogů
Existují dva hlavní vzory pro spouštění a správu dialogů z robota.
- Doporučujeme používat Bot Framework Composer k vytváření konverzačních dialogů, abyste mohli využívat přirozenější a volně tečecí konverzační funkce. Další informace naleznete v tématu Úvod do bot Framework Composer. V případě potřeby je možné takové roboty rozšířit o kód.
- Vyvíjejte robota v jednom z jazyků sady SDK a použijte metodu spuštění rozšíření kořenového dialogového okna. Informace o použití metody spuštění s dialogovým oknem komponenty najdete v tématu o komponentách a vodopádových dialogech a o tom, jak implementovat sekvenční tok konverzace.
Zásobník dialogových oken
Kontext dialogového okna obsahuje informace o všech aktivních dialogech a obsahuje zásobník dialogů, který funguje jako zásobník volání pro všechny aktivní dialogy. Každé dialogové okno kontejneru obsahuje vnitřní sadu dialogů, které řídí, a proto každé dialogové okno aktivního kontejneru představuje vnitřní kontext dialogového okna a zásobník dialogů jako součást svého stavu.
I když nebudete mít k zásobníku přímý přístup, porozumíte tomu, že existuje, a jeho funkce vám pomůže pochopit, jak fungují různé aspekty knihovny dialogů.
Dialogy kontejneru
Dialogové okno kontejneru může být součástí větší sady dialogových oken. Každý kontejner má také spravovanou vnitřní sadu dialogových oken.
Každá sada dialogových oken vytvoří obor pro překlad ID dialogových oken.
Sada SDK aktuálně implementuje dva typy dialogových oken kontejneru: dialogy komponent a adaptivní dialogy.
Koncepční struktura těchto dvou je poměrně odlišná. Robot Composer však může využít obojí.
ID dialogových oken
Když do sady dialogových oken přidáte dialogové okno, přiřadíte mu jedinečné ID v rámci této sady. Dialogy v rámci sady vzájemně odkazují podle jejich ID.
Když jeden dialog odkazuje na jiný dialog za běhu, provede to ID dialogového okna. Kontext dialogového okna se pokusí přeložit ID na základě ostatních dialogových oken v okamžité sadě dialogových oken. Pokud žádná shoda neexistuje, hledá shodu v obsahující nebo vnější sadě dialogového okna atd. Pokud se nenajde žádná shoda, vygeneruje se výjimka nebo chyba.
Dialogy komponent
Dialogy komponent používají pro konverzace model sekvence a každý dialog v kontejneru zodpovídá za volání dalších dialogových oken v kontejneru. Když je vnitřní zásobník dialogových oken v dialogovém okně komponenty prázdný, komponenta skončí.
Pokud má robot relativně jednoduchý tok řízení, který nevyžaduje dynamičtější tok konverzace, zvažte použití komponent a vodopádových dialogů.
O komponentách a vodopádových dialogech jsou podrobněji popsány dialogy komponent, vodopádů a výzev.
Další dialogy
Dialogy QnA Maker a dovednosti se dají použít jako samostatné dialogy nebo jako součást kolekce dialogů v kontejneru.
Dialogové okno služby QnA Maker
Poznámka:
Azure AI QnA Maker bude vyřazený 31. března 2025. Od 1. října 2022 nebudete moci vytvářet nové zdroje ani znalostní báze QnA Maker. Novější verze funkce pro otázky a odpovědi je teď dostupná jako součást jazyka Azure AI.
Vlastní odpověď na otázky, funkce jazyka Azure AI, je aktualizovaná verze služby QnA Maker. Další informace o podpoře otázek a odpovědí v sadě SDK služby Bot Framework najdete v tématu Principy přirozeného jazyka.
Dialogové okno služby QnA Maker přistupuje ke službě QnA Maker znalostní báze a podporuje následné výzvy a aktivní funkce učení služby QnA Maker.
- Následné výzvy, označované také jako výzvy s vícenásobným zapnutím, umožňují znalostní báze uživateli před zodpovězením otázky požádat uživatele o další informace.
- Aktivní návrhy učení umožňují znalostní báze v průběhu času zlepšit. Dialog QnA Maker podporuje explicitní zpětnou vazbu pro aktivní funkci učení.
Další informace naleznete zde:
- Co je QnA Maker?
- V sadě SDK se dozvíte , jak pomocí služby QnA Maker zodpovědět otázky.
- V nástroji Composer přidáte do robota znalostní báze QnA Maker.
Dialogové okno Dovednosti
Dialogové okno dovedností přistupuje k jedné nebo více dovednostem a spravuje jednu nebo více dovedností. Dialog dovedností publikuje aktivity z nadřazeného robota do robota dovedností a vrací odpovědi na dovednosti uživateli.
Další informace naleznete zde:
- Přehled dovedností v sadě SDK
- V Skladateli, o dovednostech.