Compartilhar via


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 TurnContextatual. 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

DialogSet(StatePropertyAccessor<DialogState>)

Cria uma nova instância do DialogSet.

Propriedades

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.

Métodos

add<T>(T)

Adiciona uma nova caixa de diálogo ou prompt ao conjunto.

createContext(TurnContext)

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().

getDialogs()

Obtém as caixas de diálogo do conjunto.

getVersion()

Retorna um hash de 32 bits de todos os valores Dialog.version no conjunto.

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 BotTelemetryClient a ser usado para registro em log.

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.