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 TurnContext
actual. 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
Dialog |
Crea una nueva instancia dialogSet. |
Propiedades
telemetry |
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. |
create |
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(). |
get |
Obtiene los cuadros de diálogo del conjunto. |
get |
Devuelve un hash de 32 bits de todos los valores de |
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
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.