Dela via


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.

  1. 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.
  2. 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:

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:

Nästa steg