DialogSet class
Um conjunto relacionado de caixas de diálogo que podem se chamar.
Comentários
O construtor do conjunto de diálogos deve ser passado uma propriedade de estado que será usada para persistir a pilha de diálogo para o conjunto:
const { ConversationState, MemoryStorage, ActivityTypes } = require('botbuilder');
const { DialogSet, Dialog, DialogTurnStatus } = require('botbuilder-dialogs');
const convoState = new ConversationState(new MemoryStorage());
const dialogState = convoState.createProperty('dialogState');
const dialogs = new DialogSet(dialogState);
O bot pode adicionar caixas de diálogo ou prompts ao conjunto usando o método add()
class GreetingDialog extends Dialog {
async beginDialog(dc, options) {
await dc.context.sendActivity(`Hi! I'm a bot.`);
return await dc.endDialog();
}
}
dialogs.add(new GreetingDialog('greeting'));
Para interagir com os conjuntos de diálogos, você pode chamar createContext() com o TurnContext
atual. Isso criará um DialogContext
que pode ser usado para iniciar ou continuar a execução das caixas de diálogo dos conjuntos:
// Create DialogContext for the current turn
const dc = await dialogs.createContext(turnContext);
// Try to continue executing an active multi-turn dialog
const result = await dc.continueDialog();
// Send greeting if no other dialogs active
if (result.status == DialogTurnStatus.empty && dc.context.activity.type == ActivityTypes.Message) {
await dc.beginDialog('greeting');
}
Construtores
Dialog |
Cria uma nova instância do DialogSet. |
Propriedades
telemetry |
Defina o cliente de telemetria para esse conjunto de diálogos e aplique-o a todos os diálogos atuais. Defina o cliente de telemetria para esse conjunto de diálogos e aplique-o a todos os diálogos atuais. As caixas de diálogo futuras adicionadas ao conjunto também herdarão esse cliente. |
Métodos
add<T>(T) | Adiciona uma nova caixa de diálogo ou prompt ao conjunto. |
create |
Cria um contexto de caixa de diálogo que pode ser usado para trabalhar com as caixas de diálogo no conjunto. |
find(string) | Localiza uma caixa de diálogo que foi adicionada anteriormente ao conjunto usando add(). |
get |
Obtém as caixas de diálogo do conjunto. |
get |
Retorna um hash de 32 bits de todos os valores |
Detalhes do construtor
DialogSet(StatePropertyAccessor<DialogState>)
Cria uma nova instância do DialogSet.
new DialogSet(dialogState?: StatePropertyAccessor<DialogState>)
Parâmetros
- dialogState
-
StatePropertyAccessor<DialogState>
(Opcional) propriedade de estado usada para persistir a pilha de diálogo conjuntos.
Comentários
Se a propriedade dialogState
não for passada, as chamadas para createContext() retornarão um erro. Você precisará criar um DialogContext
para o conjunto manualmente e passar seu próprio objeto de estado para persistir a pilha de diálogo conjuntos:
const dc = new DialogContext(dialogs, turnContext, state);
Detalhes da propriedade
telemetryClient
Defina o cliente de telemetria para esse conjunto de diálogos e aplique-o a todos os diálogos atuais. Defina o cliente de telemetria para esse conjunto de diálogos e aplique-o a todos os diálogos atuais. As caixas de diálogo futuras adicionadas ao conjunto também herdarão esse cliente.
BotTelemetryClient telemetryClient
Valor da propriedade
BotTelemetryClient
O
Detalhes do método
add<T>(T)
Adiciona uma nova caixa de diálogo ou prompt ao conjunto.
function add<T>(dialog: T): this
Parâmetros
- dialog
-
T
A caixa de diálogo ou o prompt a ser adicionado. Se um telemetryClient estiver presente no conjunto de diálogos, ele será adicionado a cada caixa de diálogo.
Retornos
this
A caixa de diálogo definida após a conclusão da operação.
Comentários
Se o Dialog.id
que está sendo adicionado já existir no conjunto, a ID das caixas de diálogo será atualizada para incluir um sufixo que o torna exclusivo. Portanto, adicionar duas caixas de diálogo chamadas "duplicar" ao conjunto resultaria na primeira com uma ID "duplicada" e a segunda com uma ID de "duplicate2".
createContext(TurnContext)
Cria um contexto de caixa de diálogo que pode ser usado para trabalhar com as caixas de diálogo no conjunto.
function createContext(context: TurnContext): Promise<DialogContext>
Parâmetros
- context
-
TurnContext
Contexto para a virada atual da conversa com o usuário.
Retornos
Promise<DialogContext>
Uma promessa que representa a operação assíncrona.
find(string)
Localiza uma caixa de diálogo que foi adicionada anteriormente ao conjunto usando add().
function find(dialogId: string): Dialog | undefined
Parâmetros
- dialogId
-
string
ID da caixa de diálogo ou solicitação de pesquisa.
Retornos
Dialog | undefined
A caixa de diálogo, se encontrada; caso contrário, indefinido.
Comentários
Este exemplo localiza uma caixa de diálogo chamada "saudação":
const dialog = dialogs.find('greeting');
getDialogs()
Obtém as caixas de diálogo do conjunto.
function getDialogs(): Dialog[]
Retornos
Dialog[]
Uma matriz deda caixa de diálogo
getVersion()
Retorna um hash de 32 bits de todos os valores Dialog.version
no conjunto.
function getVersion(): string
Retornos
string
Uma versão que será alterada quando qualquer uma das caixas de diálogo filho for alterada.
Comentários
Esse hash é mantido no armazenamento de estado e usado para detectar alterações em um conjunto de diálogos.