Dela via


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