Dialogrutebibliotek
GÄLLER FÖR: SDK v4
Dialogrutor är ett cMicrosoft Entral-koncept i SDK:t, vilket ger sätt att hantera en långvarig konversation med användaren. En dialogruta utför en uppgift som kan representera en del av eller en fullständig konversationstråd. Det kan sträcka sig över bara en eller flera svängar och kan sträcka sig över en kort eller lång tidsperiod.
Den här artikeln beskriver de viktigaste klasserna och funktionerna i dialogbiblioteket.
- Du bör känna till hur robotar fungerar (inklusive vad en tur är) och hantera tillstånd.
- Varje dialogruta representerar en konversationsaktivitet som kan köras till slutförande och returnera insamlad information.
- Varje dialogruta representerar en grundläggande kontrollenhet: den kan börja, fortsätta och avsluta. pausa och återuppta; eller avbrytas.
- Dialogrutor liknar en metod eller funktion på ett programmeringsspråk. Du kan skicka in argument eller parametrar när du startar en dialogruta, och dialogrutan kan senare generera ett returvärde när den slutar.
Dricks
Om du är nybörjare på att utveckla robotar med Bot Framework eller skapa en ny konversationsupplevelse börjar du med Bot Framework Composer. För befintliga SDK-första robotar, som inte har skapats i Composer, bör du överväga att exponera din robot som en färdighet och använda Composer för framtida robotutveckling.
Dialogrutans tillstånd
Dialogrutor kan implementera en konversation med flera svängar, och därför förlitar de sig på beständiga tillstånd mellan svängar. Utan tillstånd i dialogrutor skulle roboten inte veta var den befann sig i konversationen eller vilken information den redan hade samlat in.
Om du vill behålla en dialogrutas plats i konversationen måste dialogrutans tillstånd hämtas från och sparas i minnet varje tur. Detta hanteras via en egenskapsåtkomst för dialogtillstånd som definierats för robotens konversationstillstånd. Det här dialogtillståndet hanterar information för alla aktiva dialogrutor och underordnade aktiva dialogrutor. På så sätt kan roboten fortsätta där den slutade sist och hantera olika konversationsmodeller.
Vid körning innehåller dialogrutans tillståndsegenskap information om var dialogrutan befinner sig i sin logiska process, inklusive eventuell internt insamlad information i form av ett dialoginstansobjekt . Återigen måste detta läsas in i roboten och sparas i minnet varje tur.
Dialoginfrastruktur
Tillsammans med olika typer av dialogrutor ingår följande klasser i utformningen och kontrollen av konversationer. Även om du vanligtvis inte behöver interagera direkt med dessa klasser, är det användbart att vara medveten om dem och deras syfte när du utformar dialogrutor för en robot.
Klass | Description |
---|---|
Dialogruteuppsättning | Definierar en samling dialogrutor som kan referera till varandra och arbeta tillsammans. |
Dialogkontext | Innehåller information om alla aktiva dialogrutor. |
Dialoginstans | Innehåller information om en aktiv dialogruta. |
Resultat för dialogvändning | Innehåller statusinformation från en aktiv eller nyligen aktiv dialogruta. Om den aktiva dialogrutan avslutades innehåller den dess returvärde. |
Dialogtyper
Dialogrutebiblioteket innehåller några typer av dialogrutor som gör robotens konversationer enklare att hantera. Några av dessa typer beskrivs mer detaljerat senare i den här artikeln.
Typ | Description |
---|---|
Dialogrutan | Basklassen för alla dialogrutor. |
containerdialogruta | Basklassen för alla containerdialogrutor , till exempel komponent- och anpassningsbara dialogrutor. Den upprätthåller en inre dialogruta och gör att du kan behandla en samling dialogrutor som en enhet. |
komponentdialogruta | En allmän typ av containerdialogruta som kapslar in en uppsättning dialogrutor, vilket möjliggör återanvändning av uppsättningen som helhet. När en komponentdialogruta startar börjar den med en angiven dialogruta i samlingen. När den inre processen är klar avslutas komponentdialogrutan. |
vattenfallsdialogruta | Definierar en sekvens med steg så att roboten kan vägleda en användare genom en linjär process. Dessa är vanligtvis utformade för att fungera inom ramen för en komponentdialogruta. |
dialogrutor för fråga | Be användaren om indata och returnera resultatet. En fråga upprepas tills den får giltiga indata eller avbryts. De är utformade för att fungera med vattenfallsdialogrutor. |
anpassningsbar dialogruta | En typ av containerdialogruta som används av Composer för att tillhandahålla mer naturliga konversationsflöden. Inte avsedd att användas direkt i en SDK-första robot. |
åtgärdsdialogrutor | En typ av dialogruta som stöder implementeringen av åtgärder i Composer. Inte avsedd att användas direkt i en SDK-första robot. |
indatadialogrutor | En typ av dialogruta som stöder implementeringen av indataåtgärder i Composer. Inte avsedd att användas direkt i en SDK-första robot. |
kunskapsdialogruta | Automatiserar hanteringen av en eller flera kunskapsrobotar från en kunskapskonsument. Composer har direkt stöd för färdigheter som åtgärder. |
Dialogrutan QnA Maker | Automatiserar åtkomsten till en QnA Maker-kunskapsbas. Den här dialogrutan är utformad för att även fungera som en åtgärd inom Composer. |
Viktigt!
Anpassningsbara dialogrutor lades först till i version 4.9 av C# SDK. Anpassningsbara dialogrutor stöder Bot Framework Composer och är inte avsedda att användas direkt i en SDK-första robot.
Dialogmönster
Det finns två huvudsakliga mönster för att starta och hantera dialogrutor från en robot.
- Vi rekommenderar att du använder Bot Framework Composer för att skapa konversationsdialogrutor för att dra nytta av mer naturliga, fritt flödande konversationsfunktioner. Mer information finns i Introduktion till Bot Framework Composer. Sådana robotar kan fortfarande utökas med kod där det behövs.
- Utveckla roboten på något av SDK-språken och använd rotdialogrutans körningstilläggsmetod. Information om hur du använder körningsmetoden med en komponentdialogruta finns i om komponent- och vattenfallsdialogrutor och hur du implementerar sekventiellt konversationsflöde.
Dialogstacken
En dialogkontext innehåller information om alla aktiva dialogrutor och innehåller en dialogstack som fungerar som en anropsstack för alla aktiva dialogrutor. Varje containerdialogruta har en inre uppsättning dialogrutor som den styr, och därför introducerar varje aktiv containerdialogruta en inre dialogruta och en dialogstack som en del av dess tillstånd.
Även om du inte kommer åt stacken direkt kan du förstå att den finns och dess funktion hjälper dig att förstå hur olika aspekter av dialogrutebiblioteket fungerar.
Containerdialogrutor
En containerdialogruta kan ingå i en större dialogruta. Varje container har en inre dialogruta som också hanteras.
Varje dialogruta skapar ett omfång för att matcha dialog-ID:t.
SDK implementerar för närvarande två typer av containerdialogrutor: komponentdialogrutor och anpassningsbara dialogrutor.
Den konceptuella strukturen för de två är helt annorlunda. En Composer-robot kan dock använda båda.
Dialog-ID:t
När du lägger till en dialogruta i en dialogruta tilldelar du den ett unikt ID i den uppsättningen. Dialogrutor i en uppsättning refererar till varandra med sina ID:n.
När en dialogruta refererar till en annan dialogruta vid körning gör den det av dialogrutans ID. Dialogkontexten försöker lösa ID:t baserat på de andra dialogrutorna i den omedelbara dialogrutan. Om det inte finns någon matchning letar den efter en matchning i den innehållande eller yttre dialogrutan och så vidare. Om ingen matchning hittas genereras ett undantag eller fel.
Komponentdialogrutor
Komponentdialogrutor använder en sekvensmodell för konversationer, och varje dialogruta i containern ansvarar för att anropa andra dialogrutor i containern. När komponentdialogrutans inre dialogruta är tom slutar komponenten.
Överväg att använda komponent- och vattenfallsdialogrutor om roboten har ett relativt enkelt kontrollflöde som inte kräver mer dynamiskt konversationsflöde.
Om komponent- och vattenfallsdialogrutor beskrivs dialogrutor för komponenter, vattenfall och frågor mer detaljerat.
Andra dialogrutor
QnA Maker- och kunskapsdialogrutorna kan användas som fristående dialogrutor eller som en del av en samling dialogrutor i en container.
Dialogrutan QnA Maker
Kommentar
Azure AI QnA Maker dras tillbaka den 31 mars 2025. Från och med den 1 oktober 2022 kan du inte skapa nya QnA Maker resurser eller kunskapsbaser för 2022. En nyare version av fråge- och svarsfunktionen är nu tillgänglig som en del av Azure AI Language.
Svar på anpassade frågor, en funktion i Azure AI Language, är den uppdaterade versionen av QnA Maker-tjänsten. Mer information om stöd för frågor och svar i Bot Framework SDK finns i Förstå naturligt språk.
Dialogrutan QnA Maker öppnar en QnA Maker-kunskapsbas och stöder QnA Maker:s uppföljningsprompt och aktiva inlärningsfunktioner.
- Uppföljningsprompter, även kallade frågor med flera svar, gör det möjligt för en kunskapsbas att be användaren om mer information innan de svarar på sin fråga.
- Med aktiva inlärningsförslag kan kunskapsbas förbättras med tiden. Dialogrutan QnA Maker stöder explicit feedback för den aktiva inlärningsfunktionen.
Mer information finns i:
- Vad är QnA Maker?.
- I SDK använder du QnA Maker för att svara på frågor.
- I Composer lägger du till en QnA Maker-kunskapsbas till din robot.
Dialogrutan Kunskap
En kunskapsdialogruta får åtkomst till och hanterar en eller flera kunskaper. Kunskapsdialogrutan publicerar aktiviteter från den överordnade roboten till kunskapsroboten och returnerar kunskapssvaren till användaren.
Mer information finns i:
- I SDK:et får du översikten Över kunskaper.
- I Composer, Om färdigheter.