Dialoogvenstersbibliotheek

VAN TOEPASSING OP: SDK v4

Dialoogvensters zijn een cMicrosoft Entral-concept in de SDK en bieden manieren om een langlopend gesprek met de gebruiker te beheren. Een dialoogvenster voert een taak uit die een deel van of een volledige gespreksthread kan vertegenwoordigen. Het kan slechts één draai of veel omvatten en kan een korte of lange periode omvatten.

In dit artikel worden de kernklassen en functies van de dialoogvensterbibliotheek beschreven.

  • U moet bekend zijn met de werking van bots (inclusief wat een beurt is) en de beheerstatus.
  • Elk dialoogvenster vertegenwoordigt een gesprekstaak die kan worden uitgevoerd tot voltooiing en verzamelde informatie kan retourneren.
  • Elk dialoogvenster vertegenwoordigt een basiseenheid van de controlestroom: het kan beginnen, doorgaan en eindigen; onderbreken en hervatten; of worden geannuleerd.
  • Dialoogvensters zijn vergelijkbaar met een methode of functie in een programmeertaal. U kunt argumenten of parameters doorgeven wanneer u een dialoogvenster start en het dialoogvenster kan later een retourwaarde produceren wanneer deze eindigt.

Fooi

Als u geen ervaring hebt met het ontwikkelen van bots met bot framework of een nieuwe gesprekservaring maakt, begint u met Bot Framework Composer. Voor bestaande SDK-first bots die niet in Composer zijn gemaakt, kunt u overwegen om uw bot beschikbaar te maken als vaardigheid en Composer te gebruiken voor toekomstige botontwikkeling.

Dialoogvensterstatus

Dialoogvensters kunnen een gesprek met meerdere paden implementeren en daarom zijn ze afhankelijk van permanente status op verschillende beurten. Zonder de status in dialoogvensters zou uw bot niet weten waar deze zich in het gesprek bevond of welke informatie deze al had verzameld.

Als u de plaats van een dialoogvenster in het gesprek wilt behouden, moet de status van het dialoogvenster worden opgehaald en opgeslagen in het geheugen. Dit wordt afgehandeld via een accessor voor dialoogvensterstatuseigenschappen die is gedefinieerd in de gespreksstatus van de bot. Deze dialoogvensterstatus beheert informatie voor alle actieve dialoogvensters en onderliggende items van actieve dialoogvensters. Hierdoor kan de bot oppakken waar deze het laatst was gebleven en verschillende gespreksmodellen verwerken.

Tijdens runtime bevat de eigenschap van de dialoogvensterstatus informatie over waar het dialoogvenster zich in het logische proces bevindt, inclusief alle intern verzamelde gegevens in de vorm van een dialoogvensterexemplarenobject . Nogmaals, dit moet worden gelezen in de bot en opgeslagen in het geheugen elke keer.

Dialoogvensterinfrastructuur

Naast verschillende typen dialoogvensters zijn de volgende klassen betrokken bij het ontwerpen en beheren van gesprekken. Hoewel u deze klassen meestal niet rechtstreeks hoeft te gebruiken, is het handig om op de hoogte te zijn van deze klassen en het doel ervan bij het ontwerpen van dialoogvensters voor een bot.

Klasse Omschrijving
Dialoogvensterset Hiermee definieert u een verzameling dialoogvensters die naar elkaar kunnen verwijzen en samenwerken.
Dialoogvenstercontext Bevat informatie over alle actieve dialoogvensters.
Dialoogvensterexemplaren Bevat informatie over één actief dialoogvenster.
Resultaat van dialoogvenster draaien Bevat statusinformatie uit een actief of recent actief dialoogvenster. Als het actieve dialoogvenster is beëindigd, bevat dit de retourwaarde.

Dialoogvenstertypen

De dialoogvensterbibliotheek biedt een aantal typen dialoogvensters om de gesprekken van uw bot gemakkelijker te beheren. Sommige van deze typen worden verderop in dit artikel uitgebreider beschreven.

Type Omschrijving
Dialoogvenster De basisklasse voor alle dialoogvensters.
dialoogvenster container De basisklasse voor alle containerdialoogvensters , zoals onderdeel- en adaptieve dialoogvensters. Het onderhoudt een interne dialoogvensterset en stelt u in staat om een verzameling dialoogvensters als een eenheid te behandelen.
dialoogvenster component Een algemeen type containerdialoogvenster waarin een set dialoogvensters wordt ingekapseld, waardoor de set als geheel opnieuw kan worden gebruikt. Wanneer een dialoogvenster voor een onderdeel wordt gestart, begint het met een aangewezen dialoogvenster in de verzameling. Wanneer het binnenste proces is voltooid, wordt het onderdeeldialoogvenster beëindigd.
watervaldialoogvenster Definieert een reeks stappen, zodat uw bot een gebruiker door een lineair proces kan leiden. Deze zijn doorgaans ontworpen om te werken in de context van een onderdeeldialoogvenster.
promptdialoogvensters Vraag de gebruiker om invoer en retourneer het resultaat. Een prompt wordt herhaald totdat deze geldige invoer krijgt of wordt geannuleerd. Ze zijn ontworpen om te werken met watervaldialoogvensters.
adaptief dialoogvenster Een type containerdialoogvenster dat door Composer wordt gebruikt om natuurlijkere gespreksstromen te bieden. Niet bedoeld om rechtstreeks in een SDK-eerste bot te worden gebruikt.
actiedialoogvensters Een type dialoogvenster dat ondersteuning biedt voor de implementatie van acties in Composer. Niet bedoeld om rechtstreeks in een SDK-eerste bot te worden gebruikt.
invoerdialoogvensters Een type dialoogvenster dat ondersteuning biedt voor de implementatie van invoeracties in Composer. Niet bedoeld om rechtstreeks in een SDK-eerste bot te worden gebruikt.
dialoogvenster vaardigheid Automatiseert het beheer van een of meer vaardigheidsbots van een vaardigheidsgebruiker. Composer ondersteunt vaardigheden rechtstreeks als acties.
QnA Maker-dialoogvenster Automatiseert de toegang tot een QnA Maker-knowledge base. Dit dialoogvenster is ontworpen om ook te werken als een actie binnen Composer.

Belangrijk

Adaptieve dialoogvensters zijn voor het eerst toegevoegd in versie 4.9 van de C#-SDK. Adaptieve dialoogvensters ondersteunen Bot Framework Composer en zijn niet bedoeld om rechtstreeks in een SDK-eerste bot te worden gebruikt.

Dialoogvensterpatronen

Er zijn twee hoofdpatronen voor het starten en beheren van dialoogvensters vanuit een bot.

  1. We raden u aan Bot Framework Composer te gebruiken om gespreksdialoogvensters te ontwerpen, om te profiteren van natuurlijkere, vrije gespreksmogelijkheden. Zie de inleiding tot Bot Framework Composer voor meer informatie. Dergelijke bots kunnen nog steeds worden uitgebreid met code waar nodig.
  2. Ontwikkel uw bot in een van de SDK-talen en gebruik de methode voor het uitvoeren van de extensie van het hoofddialoogvenster . Zie voor meer informatie over het gebruik van de uitvoeringsmethode met een onderdeeldialoogvenster over onderdeel- en watervaldialoogvensters en het implementeren van de sequentiële gespreksstroom.

De dialoogvensterstack

Een dialoogvenstercontext bevat informatie over alle actieve dialoogvensters en bevat een dialoogvensterstack, die fungeert als een aanroepstack voor alle actieve dialoogvensters. Elk containerdialoogvenster bevat een binnenste set dialoogvensters die het beheert en daarom introduceert elk actief containerdialoogvenster een interne dialoogvenstercontext en dialoogvensterstack als onderdeel van de status.

Hoewel u de stack niet rechtstreeks opent, kunt u begrijpen dat deze bestaat en de bijbehorende functie u helpen begrijpen hoe verschillende aspecten van de dialoogvensterbibliotheek werken.

Containerdialoogvensters

Een containerdialoogvenster kan deel uitmaken van een grotere dialoogvensterset. Elke container heeft een interne dialoogvensterset die ook wordt beheerd.

  • Elke dialoogvensterset maakt een bereik voor het omzetten van dialoogvenster-id's.

  • De SDK implementeert momenteel twee typen containerdialoogvensters: onderdeeldialoogvensters en adaptieve dialoogvensters.

    De conceptuele structuur van de twee is heel anders. Een Composer-bot kan echter gebruikmaken van beide.

Dialoogvenster-id's

Wanneer u een dialoogvenster aan een dialoogvensterset toevoegt, wijst u het een unieke id in die set toe. Dialoogvensters binnen een set verwijzen naar elkaar door hun id's.

Wanneer het ene dialoogvenster verwijst naar een ander dialoogvenster tijdens runtime, wordt dit door de id van het dialoogvenster uitgevoerd. De dialoogvenstercontext probeert de id op te lossen op basis van de andere dialoogvensters in de directe dialoogvensterset. Als er geen overeenkomst is, wordt gezocht naar een overeenkomst in de bijbehorende of buitenste dialoogvensterset, enzovoort. Als er geen overeenkomst wordt gevonden, wordt er een uitzondering of fout gegenereerd.

Dialoogvensters voor onderdelen

Onderdeeldialoogvensters maken gebruik van een reeksmodel voor gesprekken en elk dialoogvenster in de container is verantwoordelijk voor het aanroepen van andere dialoogvensters in de container. Wanneer de interne dialoogvensterstack van het onderdeel leeg is, eindigt het onderdeel.

Overweeg het gebruik van dialoogvensters voor onderdelen en watervallen als uw bot een relatief eenvoudige controlestroom heeft waarvoor geen dynamischere gespreksstroom nodig is.

In dialoogvensters voor onderdelen en waterval worden dialoogvensters voor onderdelen, waterval en prompts uitgebreider beschreven.

Andere dialoogvensters

De dialoogvensters QnA Maker en vaardigheden kunnen worden gebruikt als zelfstandige dialoogvensters of als onderdeel van een verzameling dialoogvensters in een container.

QnA Maker-dialoogvenster

Notitie

Azure AI QnA Maker wordt op 31 maart 2025 buiten gebruik gesteld. Vanaf 1 oktober 2022 kunt u geen nieuwe resources of kennisbanken voor QnA Maker maken. Een nieuwere versie van de vraag- en antwoordmogelijkheid is nu beschikbaar als onderdeel van Azure AI Language.

Aangepaste vraagantwoorden, een functie van Azure AI Language, is de bijgewerkte versie van de QnA Maker-service. Zie Natuurlijke taalbegrip voor meer informatie over vraag- en antwoordondersteuning in de Bot Framework SDK.

Het QnA Maker-dialoogvenster opent een QnA Maker-knowledge base en ondersteunt de vervolgprompt en actieve leerfuncties van QnA Maker.

  • Met vervolgprompts, ook wel prompts met meerdere keren genoemd, kan een Knowledge Base de gebruiker meer informatie vragen voordat deze de vraag beantwoordt.
  • Met actieve leersuggesties kan de Knowledge Base in de loop van de tijd worden verbeterd. Het dialoogvenster QnA Maker ondersteunt expliciete feedback voor de actieve leerfunctie.

Zie voor meer informatie:

Dialoogvenster Vaardigheid

Een vaardigheidsdialoogvenster opent en beheert een of meer vaardigheden. Het vaardigheidsdialoogvenster plaatst activiteiten van de bovenliggende bot in de vaardigheidsbot en retourneert de vaardigheidsreacties voor de gebruiker.

Zie voor meer informatie:

Volgende stappen