Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
APLICA-SE A: SDK v4
Este artigo fornece detalhes técnicos que ajudarão você a trabalhar com escopos de memória em caixas de diálogo adaptáveis. Para obter uma introdução aos escopos de memória e ao gerenciamento do estado em diálogos adaptáveis, consulte o artigo de conceitos do fluxo da conversa e memória do Composer.
Dica
Todos os caminhos de propriedade ignoram a diferença entre maiúsculas e minúsculas. Por exemplo, user.name
é o mesmo que user.Name
. Além disso, se você não tiver uma propriedade denominada user.name
e criar uma propriedade denominada user.name.first
, o objeto user.name
será criado automaticamente para você.
Escopo do usuário
O escopo do usuário é um dado persistente no escopo relacionado à ID do usuário com quem você está conversando.
Exemplos:
user.name
user.address.city
Escopo da conversa
O escopo da conversa é composto por dados persistentes associados à ID da conversa atual.
Exemplos:
conversation.hasAccepted
conversation.dateStarted
conversation.lastMaleReference
conversation.lastFemaleReference
conversation.lastLocationReference
Escopo do diálogo
O escopo do diálogo mantém os dados durante a vida útil do diálogo associado, proporcionando espaço de memória para que cada diálogo tenha seu controle interno de dados persistente. O escopo da caixa de diálogo é limpo quando a caixa de diálogo associada termina.
Exemplos de abreviação do escopo de diálogo:
- A abreviação é
dialog.orderStarted
$orderStarted
. - A abreviação é
dialog.shoppingCart
$shoppingCart
.
Todas as opções passadas para BeginDialog
ao criar um novo diálogo adaptativo tornam-se propriedades desse diálogo e podem ser acessadas enquanto estiverem no escopo. Você acessa essas propriedades pelo nome: dialog.<propertyName>. Por exemplo, se o chamador passou {a: '1', b: '2'} então eles serão definidos como dialog.a e dialog.b.
Subescopos de diálogo
Todas as ações de gatilho em um diálogo adaptável têm seus próprios subescopos e são acessadas por nome. Por exemplo, a ação Foreach
é acessada como dialog.Foreach
. Por padrão, o índice e o valor são definidos no dialog.foreach
escopo, que pode ser acessado como dialog.Foreach.index
e dialog.Foreach.value
.
Transformar escopo
O escopo do turno contém dados não persistentes que só têm escopo para o turno atual. O escopo de turno fornece um local para compartilhar dados durante o ciclo atual.
Exemplos:
turn.bookingConfirmation
turn.activityProcessed
Transformar subcópios
atividade.do.turno
Cada atividade recebida pelo bot está disponível por meio do turn.activity
escopo.
Por exemplo, você pode ter algo assim definido em nosso arquivo .lg para responder a um usuário que inseriu um valor inválido quando solicitado para sua idade:
Sorry, I don't understand '${turn.activity.text}'. ${GetAge()}
ação reconhecida
Todas as intenções e entidades retornadas de um reconhecedor durante qualquer interação são automaticamente definidas no turn.recognized
escopo e permanecem disponíveis até a próxima interação. O turn.recognized
escopo tem três propriedades:
-
turn.recognized.intents.xxx
: uma lista das principais intenções classificadas pelo reconhecedor para esse turno. -
turn.recognized.entities.xxx
: uma lista de entidades reconhecidas daquela vez. -
turn.recognized.score
: a pontuação de confiança da intenção de pontuação superior para esse turno.
turn.dialogEvent
turn.dialogEvent
contém a carga útil de um evento gerado pelo sistema ou pelo seu código. Você pode acessar as informações contidas na carga útil acessando o escopo turn.dialogEvent.<eventName>.value
.
turn.lastResult
Você pode acessar os resultados do último diálogo que foi chamado no escopo turn.lastResult
.
turno.atividadeProcessada
turn.activityProcessed
, uma propriedade booleana; true
indica que o turnContext.activity
foi consumido por algum componente do sistema.
turno.interrompido
turn.interrupted
, uma propriedade booliana; true
indica que ocorreu uma interrupção.
Escopo de configurações
Isso representa todas as configurações disponibilizadas para o bot por meio do sistema de configuração de configurações específicas da plataforma, por exemplo, se você estiver desenvolvendo seu bot usando C#, essas configurações aparecerão no arquivo appsettings.json .
Exemplo de escopo de configurações
Este é um exemplo de um arquivo appsettings.json que contém as configurações do bot:
{
"MicrosoftAppId": "<yourMicrosoftAppId>",
"MicrosoftAppPassword": "<yourMicrosoftAppPassword>",
"QnAMaker": {
"knowledgebaseId": "<yourQnAKnowledgebaseId>",
"hostname": "https://<YourHostName>.azurewebsites.net/qnamaker",
"endpointKey": "yourEndpointKey"
}
}
Esse escopo
O this
escopo pertence ao recipiente de propriedades da ação ativa. Isso é útil para ações de entrada, uma vez que sua natureza normalmente dura mais do que apenas um turno de conversa.
-
this.value
contém o valor reconhecido atual para a entrada. -
this.turnCount
contém o número de vezes que as informações ausentes foram solicitadas para essa entrada.
Escopo da classe
Esta contém as propriedades da instância do diálogo ativo. você faz referência a esse escopo da seguinte maneira: ${class.<propertyName>}
.
Informações adicionais
- Para obter uma introdução ao gerenciamento de estado no Composer, consulte o artigo de conceito do Composer de fluxo de conversa e memória.