Compartilhar via


DialogContext class

O contexto da caixa de diálogo atual gira em relação a um dialogSet específico.

Comentários

Isso inclui o contexto de turno, as informações sobre o conjunto de diálogos e o estado da pilha de diálogos.

Do código fora de uma caixa de diálogo no conjunto, use dialogSet.createContext para criar o contexto da caixa de diálogo. Em seguida, use os métodos do contexto da caixa de diálogo para gerenciar a progressão de diálogos no conjunto.

Quando você implementa uma caixa de diálogo, o contexto da caixa de diálogo é um parâmetro disponível para os vários métodos que você substitui ou implementa.

Por exemplo:

const dc = await dialogs.createContext(turnContext);
const result = await dc.continueDialog();

Construtores

DialogContext(DialogSet, DialogContext, DialogState)

Cria uma nova instância da classe DialogContext.

DialogContext(DialogSet, TurnContext, DialogState)

Cria uma nova instância da classe DialogContext.

Propriedades

activeDialog
child
context

Obtém o objeto de contexto para a curva.

dialogManager
dialogs

Obtém os diálogos que podem ser chamados diretamente desse contexto.

parent

O contexto da caixa de diálogo pai para esse contexto de caixa de diálogo ou undefined se esse contexto não tiver um pai.

services

Obtém a coleção de serviços que é contextual para esse contexto de caixa de diálogo.

stack

Obtém a pilha de diálogo atual.

state

Obtém o DialogStateManager que gerencia a exibição de todos os escopos de memória.

Métodos

beginDialog(string, object)

Inicia uma instância de caixa de diálogo e a envia por push para a pilha de diálogo. Cria uma nova instância da caixa de diálogo e a envia por push para a pilha.

cancelAllDialogs(boolean, string, any)

Cancela todos os diálogos na pilha de diálogos e limpa a pilha.

continueDialog()

Continua a execução da caixa de diálogo ativa, se houver uma, passando esse contexto de caixa de diálogo para seu método Dialog.continueDialog.

emitEvent(string, any, boolean, boolean)

Pesquisa uma caixa de diálogo com uma determinada ID.

endDialog(any)

Termina uma caixa de diálogo e a tira da pilha. Retorna um resultado opcional para o pai da caixa de diálogo.

findDialog(string)

Pesquisa uma caixa de diálogo com uma determinada ID.

getLocale()

Obtenha o CultureInfo em DialogContext.

prompt(string, string | Partial<Activity> | PromptOptions)

Função auxiliar para simplificar a formatação das opções para chamar uma caixa de diálogo de prompt.

prompt(string, string | Partial<Activity> | PromptOptions, string | Choice[])

Função auxiliar para simplificar a formatação das opções para chamar uma caixa de diálogo de prompt.

replaceDialog(string, object)

Termina a caixa de diálogo ativa e inicia uma nova caixa de diálogo em seu lugar.

repromptDialog()

Solicita a caixa de diálogo ativa para solicitar novamente entrada ao usuário.

Detalhes do construtor

DialogContext(DialogSet, DialogContext, DialogState)

Cria uma nova instância da classe DialogContext.

new DialogContext(dialogs: DialogSet, contextOrDC: DialogContext, state: DialogState)

Parâmetros

dialogs
DialogSet

O DialogSet para o qual criar o contexto da caixa de diálogo.

contextOrDC
DialogContext

O objeto TurnContext para a curva atual do bot.

state
DialogState

O objeto de estado a ser usado para ler e gravar DialogState no armazenamento.

Comentários

Passar uma instância DialogContext clonará o contexto da caixa de diálogo.

DialogContext(DialogSet, TurnContext, DialogState)

Cria uma nova instância da classe DialogContext.

new DialogContext(dialogs: DialogSet, contextOrDC: TurnContext, state: DialogState)

Parâmetros

dialogs
DialogSet

O DialogSet para o qual criar o contexto da caixa de diálogo.

contextOrDC

TurnContext

O objeto TurnContext para a curva atual do bot.

state
DialogState

O objeto de estado a ser usado para ler e gravar DialogState no armazenamento.

Comentários

Passar uma instância DialogContext clonará o contexto da caixa de diálogo.

Detalhes da propriedade

activeDialog

DialogInstance | undefined activeDialog

Valor da propriedade

DialogInstance | undefined

As informações de estado da caixa de diálogo na parte superior da pilha de diálogo ou undefined se a pilha estiver vazia.

child

DialogContext | undefined child

Valor da propriedade

DialogContext | undefined

Contexto de caixa de diálogo para filho se a caixa de diálogo ativa for um contêiner.

context

Obtém o objeto de contexto para a curva.

context: TurnContext

Valor da propriedade

TurnContext

dialogManager

Aviso

Essa API foi preterida.

This property serves no function.

DialogManager dialogManager

Valor da propriedade

A instância atual do gerenciador de diálogos. Essa propriedade foi preterida.

dialogs

Obtém os diálogos que podem ser chamados diretamente desse contexto.

dialogs: DialogSet

Valor da propriedade

parent

O contexto da caixa de diálogo pai para esse contexto de caixa de diálogo ou undefined se esse contexto não tiver um pai.

parent: DialogContext | undefined

Valor da propriedade

DialogContext | undefined

Comentários

Quando tenta iniciar uma caixa de diálogo, o contexto da caixa de diálogo pesquisa o Dialog.id em seus diálogos . Se a caixa de diálogo a ser iniciada não for encontrada nesse contexto de caixa de diálogo, ela pesquisará no contexto da caixa de diálogo pai e assim por diante.

services

Obtém a coleção de serviços que é contextual para esse contexto de caixa de diálogo.

services: TurnContextStateCollection

Valor da propriedade

TurnContextStateCollection

stack

Obtém a pilha de diálogo atual.

stack: DialogInstance[]

Valor da propriedade

state

Obtém o DialogStateManager que gerencia a exibição de todos os escopos de memória.

state: DialogStateManager

Valor da propriedade

Detalhes do método

beginDialog(string, object)

Inicia uma instância de caixa de diálogo e a envia por push para a pilha de diálogo. Cria uma nova instância da caixa de diálogo e a envia por push para a pilha.

function beginDialog(dialogId: string, options?: object): Promise<DialogTurnResult>

Parâmetros

dialogId

string

ID da caixa de diálogo a ser iniciada.

options

object

Opcional. Argumentos a serem passados para a caixa de diálogo quando ela for iniciada.

Retornos

Promise<DialogTurnResult>

uma promessa de resolução para o resultado da curva da caixa de diálogo.

Comentários

Se já houver uma caixa de diálogo ativa na pilha, essa caixa de diálogo será pausada até que seja novamente a caixa de diálogo superior na pilha.

O status do objeto retornado descreve o status da pilha de diálogo após a conclusão desse método.

Esse método gera uma exceção se a caixa de diálogo solicitada não puder ser encontrada neste contexto de diálogo ou em qualquer um de seus ancestrais.

Por exemplo:

const result = await dc.beginDialog('greeting', { name: user.name });

Consulte também

cancelAllDialogs(boolean, string, any)

Cancela todos os diálogos na pilha de diálogos e limpa a pilha.

function cancelAllDialogs(cancelParents?: boolean, eventName?: string, eventValue?: any): Promise<DialogTurnResult>

Parâmetros

cancelParents

boolean

Opcional. Se true todas as caixas de diálogo pai também serão canceladas.

eventName

string

Opcional. Nome de um evento personalizado a ser gerado à medida que as caixas de diálogo são canceladas. Esse padrão é cancelDialog.

eventValue

any

Opcional. Valor a ser passado com o evento de cancelamento personalizado.

Retornos

Promise<DialogTurnResult>

uma promessa de resolução para o resultado da curva da caixa de diálogo.

Comentários

Isso chama o método Dialog.endDialog de cada caixa de diálogo antes de remover a caixa de diálogo da pilha.

Se houver caixas de diálogo na pilha inicialmente, o status do valor retornado será cancelado; caso contrário, é vazio.

Este exemplo limpa uma pilha de diálogos, dc, antes de iniciar uma caixa de diálogo 'bookFlight'.

await dc.cancelAllDialogs();
return await dc.beginDialog('bookFlight');

Consulte também

  • endDialog

continueDialog()

Continua a execução da caixa de diálogo ativa, se houver uma, passando esse contexto de caixa de diálogo para seu método Dialog.continueDialog.

function continueDialog(): Promise<DialogTurnResult>

Retornos

Promise<DialogTurnResult>

uma promessa de resolução para o resultado da curva da caixa de diálogo.

Comentários

Após a conclusão da chamada, você pode verificar a do contexto de turno respondeu propriedade para determinar se a caixa de diálogo enviou uma resposta ao usuário.

O status do objeto retornado descreve o status da pilha de diálogo após a conclusão desse método.

Normalmente, você chamaria isso de dentro do manipulador de turnos do bot.

Por exemplo:

const result = await dc.continueDialog();
if (result.status == DialogTurnStatus.empty && dc.context.activity.type == ActivityTypes.message) {
    // Send fallback message
    await dc.context.sendActivity(`I'm sorry. I didn't understand.`);
}

emitEvent(string, any, boolean, boolean)

Pesquisa uma caixa de diálogo com uma determinada ID.

function emitEvent(name: string, value?: any, bubble?: boolean, fromLeaf?: boolean): Promise<boolean>

Parâmetros

name

string

Nome do evento a ser gerado.

value

any

Opcional. Valor a ser enviado junto com o evento.

bubble

boolean

Opcional. Sinalizar para controlar se o evento deve ser gerado em bolhas para seu pai se não for tratado localmente. O padrão é um valor de true.

fromLeaf

boolean

Opcional. Se o evento é emitido de um nó folha.

Retornos

Promise<boolean>

true se o evento foi tratado.

Comentários

Emite um evento nomeado para a caixa de diálogo atual, ou alguém que o iniciou, para manipular.

endDialog(any)

Termina uma caixa de diálogo e a tira da pilha. Retorna um resultado opcional para o pai da caixa de diálogo.

function endDialog(result?: any): Promise<DialogTurnResult>

Parâmetros

result

any

Opcional. Um resultado a ser passado para a lógica pai. Essa pode ser a próxima caixa de diálogo na pilha ou se esta for a última caixa de diálogo na pilha, um contexto de caixa de diálogo pai ou o manipulador de turnos do bot.

Retornos

Promise<DialogTurnResult>

uma promessa de resolução para o resultado da curva da caixa de diálogo.

Comentários

A caixa de diálogo pai será a próxima caixa de diálogo na pilha de diálogo, se houver uma. Esse método chama o método dialog.resumeDialog do pai, passando o resultado retornado pela caixa de diálogo final. Se não houver nenhuma caixa de diálogo pai, a curva terminará e o resultado estará disponível para o bot por meio do resultado do objeto retornado propriedade.

O status do objeto retornado descreve o status da pilha de diálogo após a conclusão desse método.

Normalmente, você chamaria isso de dentro da lógica de uma caixa de diálogo específica para sinalizar de volta para o contexto da caixa de diálogo que a caixa de diálogo concluiu, a caixa de diálogo deve ser removida da pilha e a caixa de diálogo pai deve ser retomada.

Por exemplo:

return await dc.endDialog(returnValue);

Consulte também

findDialog(string)

Pesquisa uma caixa de diálogo com uma determinada ID.

function findDialog(dialogId: string): Dialog | undefined

Parâmetros

dialogId

string

ID da caixa de diálogo a ser pesquisada.

Retornos

Dialog | undefined

A caixa de diálogo para a ID fornecida.

Comentários

Se a caixa de diálogo a ser iniciada não for encontrada no DialogSet associado a esse contexto de diálogo, ele tentará encontrar a caixa de diálogo no contexto da caixa de diálogo pai.

Consulte também

  • caixas de diálogo
  • pai

getLocale()

Obtenha o CultureInfo em DialogContext.

function getLocale(): string

Retornos

string

uma cadeia de caracteres de localidade.

prompt(string, string | Partial<Activity> | PromptOptions)

Função auxiliar para simplificar a formatação das opções para chamar uma caixa de diálogo de prompt.

function prompt(dialogId: string, promptOrOptions: string | Partial<Activity> | PromptOptions): Promise<DialogTurnResult>

Parâmetros

dialogId

string

ID da caixa de diálogo de prompt a ser iniciada.

promptOrOptions

string | Partial<Activity> | PromptOptions

O texto do prompt inicial para enviar o usuário, a atividade a ser enviada como o prompt inicial ou o objeto com o qual formatar a caixa de diálogo de prompt.

Retornos

Promise<DialogTurnResult>

Comentários

Esse método auxiliar formata o objeto a ser usado como o parâmetro options e, em seguida, chama beginDialog para iniciar a caixa de diálogo de prompt especificada.

return await dc.prompt('confirmPrompt', `Are you sure you'd like to quit?`);

prompt(string, string | Partial<Activity> | PromptOptions, string | Choice[])

Função auxiliar para simplificar a formatação das opções para chamar uma caixa de diálogo de prompt.

function prompt(dialogId: string, promptOrOptions: string | Partial<Activity> | PromptOptions, choices: string | Choice[]): Promise<DialogTurnResult>

Parâmetros

dialogId

string

ID da caixa de diálogo de prompt a ser iniciada.

promptOrOptions

string | Partial<Activity> | PromptOptions

O texto do prompt inicial para enviar ao usuário, a atividade para enviar como o prompt inicial ou o objeto com o qual formatar a caixa de diálogo de prompt.

choices

string | Choice[]

Opcional. Matriz de opções para o usuário escolher, para uso com um ChoicePrompt.

Retornos

Promise<DialogTurnResult>

Comentários

Esse método auxiliar formata o objeto a ser usado como o parâmetro options e, em seguida, chama beginDialog para iniciar a caixa de diálogo de prompt especificada.

return await dc.prompt('confirmPrompt', `Are you sure you'd like to quit?`);

replaceDialog(string, object)

Termina a caixa de diálogo ativa e inicia uma nova caixa de diálogo em seu lugar.

function replaceDialog(dialogId: string, options?: object): Promise<DialogTurnResult>

Parâmetros

dialogId

string

ID da caixa de diálogo a ser iniciada.

options

object

Opcional. Argumentos a serem passados para a nova caixa de diálogo quando ela for iniciada.

Retornos

Promise<DialogTurnResult>

uma promessa de resolução para o resultado da curva da caixa de diálogo.

Comentários

Isso é particularmente útil para criar um loop ou redirecionar para outra caixa de diálogo.

O status do objeto retornado descreve o status da pilha de diálogo após a conclusão desse método.

Esse método é semelhante a encerrar a caixa de diálogo atual e iniciar imediatamente o novo. No entanto, a caixa de diálogo pai não é retomada nem notificada de outra forma.

Consulte também

repromptDialog()

Solicita a caixa de diálogo ativa para solicitar novamente entrada ao usuário.

function repromptDialog(): Promise<void>

Retornos

Promise<void>

Comentários

Isso chama o método repromptDialog da caixa de diálogo ativa.

Por exemplo:

await dc.repromptDialog();