Hantera tillstånd i anpassningsbara dialogrutor – referensguide
GÄLLER FÖR: SDK v4
Den här artikeln innehåller teknisk information som hjälper dig att arbeta med minnesomfattningar i anpassningsbara dialogrutor. En introduktion till minnesomfattningar och hanteringstillstånd i anpassningsbara dialogrutor finns i artikeln Begrepp för konversationsflöde och minne composer.
Dricks
Alla egenskapssökvägar är skiftlägeskänsliga. Är till exempel user.name
samma som user.Name
. Om du inte har någon egenskap med namnet user.name
och du skapar en egenskap med namnet user.name.first
user.name
skapas objektet automatiskt åt dig.
Användaromfång
Användaromfånget är beständiga data som är begränsade till ID:t för den användare som du samtalar med.
Exempel:
user.name
user.address.city
Konversationsomfång
Konversationsomfånget är beständiga data som är begränsade till ID:t för den konversation du har.
Exempel:
conversation.hasAccepted
conversation.dateStarted
conversation.lastMaleReference
conversation.lastFemaleReference
conversation.lastLocationReference
Dialogomfång
Dialogomfånget bevarar data under den associerade dialogrutans livslängd, vilket ger minnesutrymme för varje dialogruta för att ha intern beständig bokföring. Dialogrutans omfång avmarkeras när den associerade dialogrutan avslutas.
Korta exempel på dialogomfång:
- Förkortningen för
dialog.orderStarted
är$orderStarted
. - Förkortningen för
dialog.shoppingCart
är$shoppingCart
.
Alla alternativ som skickas till BeginDialog
när du skapar en ny anpassningsbar dialogruta blir egenskaper för den dialogrutan och kan nås så länge den finns i omfånget. Du kommer åt de här egenskaperna efter namn: dialogruta.<propertyName>. Om anroparen till exempel skickade {a : '1', b: '2'} kommer de att anges som dialog.a och dialog.b.
Dialogunderskop
Alla utlösaråtgärder i en anpassningsbar dialogruta har egna underscopes och nås med namn. Åtgärden används till exempel Foreach
som dialog.Foreach
. Som standard anges indexet och värdet i omfånget dialog.foreach
, som kan nås som dialog.Foreach.index
och dialog.Foreach.value
.
Aktivera omfång
Turn-omfånget innehåller icke-beständiga data som endast är begränsade till den aktuella svängen. Turn-omfånget ger en plats där du kan dela data under den aktuella svängens livslängd.
Exempel:
turn.bookingConfirmation
turn.activityProcessed
Vänd underskop
turn.activity
Varje inkommande aktivitet till roboten är tillgänglig via turn.activity
omfång.
Du kan till exempel ha något som liknar detta definierat i vår .lg-fil för att svara på en användare som angav ett ogiltigt värde när de tillfrågas om deras ålder:
Sorry, I don't understand '${turn.activity.text}'. ${GetAge()}
turn.recognized
Alla avsikter och entiteter som returneras från en identifierare vid en viss tur, anges automatiskt i omfånget turn.recognized
och förblir tillgängliga tills nästa tur inträffar. omfånget turn.recognized
har tre egenskaper:
turn.recognized.intents.xxx
: En lista över de främsta avsikterna som klassificerats av identifieraren för den svängen.turn.recognized.entities.xxx
: En lista över entiteter som identifieras som vänder.turn.recognized.score
: Konfidenspoängen för avsikten med högsta poäng för den svängen.
turn.dialogEvent
turn.dialogEvent
innehåller nyttolasten för en händelse som genereras av systemet eller koden. Du kan komma åt informationen i nyttolasten genom att komma åt omfånget turn.dialogEvent.<eventName>.value
.
turn.lastResult
Du kan komma åt resultaten från den senaste dialogrutan som anropades från omfånget turn.lastResult
.
turn.activityProcessed
turn.activityProcessed
, en boolesk egenskap; true
anger att turnContext.activity
har förbrukats av någon komponent i systemet.
turn.interrupted
turn.interrupted
, en boolesk egenskap; true
anger att ett avbrott har inträffat.
Inställningar omfång
Detta representerar alla inställningar som görs tillgängliga för roboten via konfigurationssystemet för plattformsspecifika inställningar, till exempel om du utvecklar din robot med C#, visas dessa inställningar i filen appsettings.json .
Inställningar omfångsexempel
Det här är ett exempel på en appsettings.json-fil som innehåller konfigurationsinställningar för din robot:
{
"MicrosoftAppId": "<yourMicrosoftAppId>",
"MicrosoftAppPassword": "<yourMicrosoftAppPassword>",
"QnAMaker": {
"knowledgebaseId": "<yourQnAKnowledgebaseId>",
"hostname": "https://<YourHostName>.azurewebsites.net/qnamaker",
"endpointKey": "yourEndpointKey"
}
}
Det här omfånget
Omfånget this
gäller den aktiva åtgärdens egenskapsväska. Detta är användbart för indataåtgärder eftersom deras livstyp vanligtvis varar längre än en enda gång i konversationen.
this.value
innehåller det aktuella identifierade värdet för indata.this.turnCount
innehåller det antal gånger som den saknade informationen har efterfrågats för dessa indata.
Klassomfång
Detta innehåller instansegenskaperna för den aktiva dialogrutan. du refererar till det här omfånget enligt följande: ${class.<propertyName>}
.
Ytterligare information
- En introduktion till att hantera tillstånd i Composer finns i artikeln Konversationsflöde och minneskompositörskoncept .