Status beheren in adaptieve dialoogvensters - referentiehandleiding
VAN TOEPASSING OP: SDK v4
Dit artikel bevat technische details waarmee u met geheugenbereiken in adaptieve dialoogvensters kunt werken. Zie het conceptartikel Gespreksstroom en geheugen composer voor een inleiding tot geheugenbereiken en het beheren van de status in adaptieve dialoogvensters.
Fooi
Alle eigenschapspaden zijn niet hoofdlettergevoelig. Is bijvoorbeeld user.name
hetzelfde als user.Name
. Als u geen eigenschap hebt met de naam user.name
en u een eigenschap met de naam user.name.first
maakt, wordt het user.name
object automatisch voor u gemaakt.
Gebruikersbereik
Gebruikersbereik is een permanent gegevensbereik dat is afgestemd op de id van de gebruiker waarmee u verbinding maakt.
Voorbeelden:
user.name
user.address.city
Gespreksbereik
Het gespreksbereik is een permanent gegevensbereik dat is afgestemd op de id van het gesprek dat u hebt.
Voorbeelden:
conversation.hasAccepted
conversation.dateStarted
conversation.lastMaleReference
conversation.lastFemaleReference
conversation.lastLocationReference
Dialoogvensterbereik
Het dialoogvensterbereik bewaart gegevens voor de levensduur van het bijbehorende dialoogvenster, waardoor geheugenruimte wordt geboden voor elk dialoogvenster om interne permanente boekhouding te hebben. Het dialoogvenster wordt gewist wanneer het bijbehorende dialoogvenster wordt beëindigd.
Voorbeelden van dialoogvensters:
- De afkorting is
dialog.orderStarted
$orderStarted
. - De afkorting is
dialog.shoppingCart
$shoppingCart
.
Alle opties die worden doorgegeven BeginDialog
bij het maken van een nieuw adaptief dialoogvenster worden eigenschappen van dat dialoogvenster en kunnen worden geopend zolang het binnen het bereik valt. U opent deze eigenschappen op naam: dialoogvenster.<propertyName>. Als de beller bijvoorbeeld {a: '1', b: '2'} heeft doorgegeven, worden deze ingesteld als dialoogvenster.a en dialoogvenster.b.
Dialoogvenstersubscopen
Alle triggeracties in een adaptief dialoogvenster hebben hun eigen subscopen en worden geopend op naam. De actie wordt bijvoorbeeld Foreach
geopend als dialog.Foreach
. Standaard worden de index en waarde ingesteld in het dialog.foreach
bereik, die als dialog.Foreach.index
en dialog.Foreach.value
.
Bereik draaien
Het draaibereik bevat niet-permanente gegevens die alleen zijn afgestemd op de huidige draai. Het draaibereik biedt een plaats om gegevens te delen voor de levensduur van de huidige draai.
Voorbeelden:
turn.bookingConfirmation
turn.activityProcessed
Subscopen draaien
turn.activity
Elke binnenkomende activiteit voor de bot is beschikbaar via turn.activity
het bereik.
U hebt bijvoorbeeld iets als dit gedefinieerd in ons LG-bestand om te reageren op een gebruiker die een ongeldige waarde heeft ingevoerd wanneer hierom wordt gevraagd:
Sorry, I don't understand '${turn.activity.text}'. ${GetAge()}
turn.recognized
Alle intenties en entiteiten die worden geretourneerd door een recognizer op een bepaalde beurt, worden automatisch ingesteld in het turn.recognized
bereik en blijven beschikbaar totdat de volgende beurt plaatsvindt. het turn.recognized
bereik heeft drie eigenschappen:
turn.recognized.intents.xxx
: Een lijst met de belangrijkste intenties die zijn geclassificeerd door de recognizer voor die beurt.turn.recognized.entities.xxx
: Een lijst met entiteiten die worden herkend.turn.recognized.score
: De betrouwbaarheidsscore van de meest scorende intentie voor die beurt.
turn.dialogEvent
turn.dialogEvent
bevat de nettolading van een gebeurtenis die door het systeem of uw code wordt gegenereerd. U kunt toegang krijgen tot de informatie in de nettolading door toegang te krijgen tot het turn.dialogEvent.<eventName>.value
bereik.
turn.lastResult
U hebt toegang tot de resultaten uit het laatste dialoogvenster dat is aangeroepen vanuit het turn.lastResult
bereik.
turn.activityProcessed
turn.activityProcessed
, een Booleaanse eigenschap; true
geeft aan dat het turnContext.activity
is gebruikt door een bepaald onderdeel in het systeem.
turn.interrupted
turn.interrupted
, een Booleaanse eigenschap; true
geeft aan dat er een onderbreking is opgetreden.
Instellingen bereik
Dit vertegenwoordigt alle instellingen die beschikbaar worden gesteld voor de bot via het configuratiesysteem voor platformspecifieke instellingen, bijvoorbeeld als u uw bot ontwikkelt met behulp van C#, worden deze instellingen weergegeven in het bestand appsettings.json .
voorbeeld van Instellingen bereik
Dit is een voorbeeld van een appettings.json-bestand met configuratie-instellingen voor uw bot:
{
"MicrosoftAppId": "<yourMicrosoftAppId>",
"MicrosoftAppPassword": "<yourMicrosoftAppPassword>",
"QnAMaker": {
"knowledgebaseId": "<yourQnAKnowledgebaseId>",
"hostname": "https://<YourHostName>.azurewebsites.net/qnamaker",
"endpointKey": "yourEndpointKey"
}
}
Dit bereik
Het this
bereik heeft betrekking op de eigenschappenverzameling van de actieve actie. Dit is handig voor invoeracties omdat hun levenstype doorgaans langer duurt dan één draai van het gesprek.
this.value
bevat de huidige herkende waarde voor de invoer.this.turnCount
bevat het aantal keren dat de ontbrekende informatie om deze invoer wordt gevraagd.
Klassebereik
Dit bevat de exemplaareigenschappen van het actieve dialoogvenster. u verwijst naar dit bereik als volgt: ${class.<propertyName>}
.
Aanvullende informatie
- Zie het conceptartikel Gespreksstroom en geheugen composer voor een inleiding tot het beheren van de status in Composer.