Compartir a través de


DialogSet class

Un conjunto relacionado de diálogos que se puede llamar entre sí.

Comentarios

El constructor del conjunto de diálogos debe pasarse una propiedad de estado que se usará para conservar la pila de diálogos del 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);

El bot puede agregar diálogos o avisos al conjunto mediante el método add() de :

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 interactuar con los cuadros de diálogo de conjuntos, puede llamar a createContext() con el TurnContextactual. Esto creará un DialogContext que se puede usar para iniciar o continuar la ejecución de los cuadros de diálogo de 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');
}

Constructores

DialogSet(StatePropertyAccessor<DialogState>)

Crea una nueva instancia dialogSet.

Propiedades

telemetryClient

Establezca el cliente de telemetría para este conjunto de diálogos y aplíquelo a todos los diálogos actuales. Establezca el cliente de telemetría para este conjunto de diálogos y aplíquelo a todos los diálogos actuales. Los diálogos futuros agregados al conjunto también heredarán este cliente.

Métodos

add<T>(T)

Agrega un nuevo cuadro de diálogo o mensaje al conjunto.

createContext(TurnContext)

Crea un contexto de diálogo que se puede usar para trabajar con los diálogos del conjunto.

find(string)

Busca un cuadro de diálogo que se agregó anteriormente al conjunto mediante add().

getDialogs()

Obtiene los cuadros de diálogo del conjunto.

getVersion()

Devuelve un hash de 32 bits de todos los valores de Dialog.version del conjunto.

Detalles del constructor

DialogSet(StatePropertyAccessor<DialogState>)

Crea una nueva instancia dialogSet.

new DialogSet(dialogState?: StatePropertyAccessor<DialogState>)

Parámetros

dialogState

StatePropertyAccessor<DialogState>

(Opcional) propiedad de estado usada para conservar la pila de diálogos de conjuntos.

Comentarios

Si no se pasa la propiedad dialogState, las llamadas a createContext() devolverán un error. Deberá crear una DialogContext para el conjunto manualmente y pasar su propio objeto de estado para conservar la pila de diálogos de conjuntos:

const dc = new DialogContext(dialogs, turnContext, state);

Detalles de las propiedades

telemetryClient

Establezca el cliente de telemetría para este conjunto de diálogos y aplíquelo a todos los diálogos actuales. Establezca el cliente de telemetría para este conjunto de diálogos y aplíquelo a todos los diálogos actuales. Los diálogos futuros agregados al conjunto también heredarán este cliente.

BotTelemetryClient telemetryClient

Valor de propiedad

BotTelemetryClient

BotTelemetryClient que se va a usar para el registro.

Detalles del método

add<T>(T)

Agrega un nuevo cuadro de diálogo o mensaje al conjunto.

function add<T>(dialog: T): this

Parámetros

dialog

T

Cuadro de diálogo o símbolo del sistema que se va a agregar. Si un telemetryClient está presente en el conjunto de diálogos, se agregará a cada diálogo.

Devoluciones

this

El conjunto de diálogos una vez completada la operación.

Comentarios

Si el Dialog.id que se va a agregar ya existe en el conjunto, el identificador de diálogos se actualizará para incluir un sufijo que lo hace único. Por lo tanto, agregar 2 cuadros de diálogo denominados "duplicados" al conjunto daría lugar a que el primero tuviera un identificador de "duplicado" y el segundo que tuviera un identificador de "duplicate2".

createContext(TurnContext)

Crea un contexto de diálogo que se puede usar para trabajar con los diálogos del conjunto.

function createContext(context: TurnContext): Promise<DialogContext>

Parámetros

context

TurnContext

Contexto para el turno actual de conversación con el usuario.

Devoluciones

Promise<DialogContext>

Promesa que representa la operación asincrónica.

find(string)

Busca un cuadro de diálogo que se agregó anteriormente al conjunto mediante add().

function find(dialogId: string): Dialog | undefined

Parámetros

dialogId

string

Identificador del cuadro de diálogo o solicitud de búsqueda.

Devoluciones

Dialog | undefined

El cuadro de diálogo si se encuentra; de lo contrario, no está definido.

Comentarios

En este ejemplo se busca un cuadro de diálogo denominado "greeting":

const dialog = dialogs.find('greeting');

getDialogs()

Obtiene los cuadros de diálogo del conjunto.

function getDialogs(): Dialog[]

Devoluciones

Dialog[]

Matriz de Cuadro de diálogo.

getVersion()

Devuelve un hash de 32 bits de todos los valores de Dialog.version del conjunto.

function getVersion(): string

Devoluciones

string

Una versión que cambiará cuando cambie cualquiera de los cuadros de diálogo secundarios.

Comentarios

Este hash se conserva en el almacenamiento de estado y se usa para detectar cambios en un conjunto de diálogos.