WaterfallDialog class
Permite la creación de diálogos personalizados basados en una cascada.
- Extends
Constructores
| Waterfall |
Crea un cuadro de diálogo en cascada. |
Métodos
| add |
Se llama una vez para cada diálogo dentro de una biblioteca para dar al diálogo la oportunidad de agregar su |
| begin<T>(Session, T) | Se llama cuando se inicia una nueva sesión de diálogo. |
| begin |
Enlaza una acción al cuadro de diálogo que iniciará otro diálogo cada vez que se desencadene. El nuevo cuadro de diálogo se insertará en la pila para que no finalice automáticamente la tarea actual. La tarea actual continuará una vez que finalice el cuadro de diálogo nuevo. Las solicitudes integradas volverán a solicitar automáticamente al usuario una vez que esto suceda, pero ese comportamiento se puede deshabilitar estableciendo la marca promptAfterAction al llamar a un mensaje integrado. |
| cancel |
Enlaza una acción al cuadro de diálogo que cancelará el diálogo en cualquier momento que se desencadene. Cuando se cancela, los diálogos primarios se reanudarán con un código de reanudado que indica que se canceló . |
| clone(Action |
Devuelve un clon de un actionSet existente. |
| create |
Crea una función que puede conducir una cascada. Cada vez que se llama a la función, impulsará la cascada hacia delante invocando el siguiente paso de la cascada. La función usa |
| custom |
Enlaza una acción personalizada al cuadro de diálogo que llamará al objeto pasado en onSelectAction controlador cuando se desencadene. |
| dialog |
Se llama cuando otro diálogo interrumpe un diálogo raíz. Esto proporciona al cuadro de diálogo que se interrumpe la posibilidad de ejecutar lógica personalizada antes de quitarla de la pila. El propio diálogo es responsable de borrar la pila de diálogos e iniciar el nuevo diálogo. |
| dialog |
Un cuadro de diálogo secundario ha finalizado y el actual se está reanudando. |
| end |
Enlaza una acción que finalizará la conversación con el usuario cuando se desencadene. |
| find |
Se llama durante la Library.findRoutes() llamada a para cada cuadro de diálogo de la pila para determinar si alguna de las acciones de diálogo las desencadena la expresión de los usuarios. |
| on |
Registra un controlador al que se llamará antes de cada paso de la cascada. Los controladores |
| recognize(IRecognize |
Analiza la expresión de los usuarios y asigna una puntuación de 0,0 a 1,0 que indica la confianza del cuadro de diálogo es que entendió la expresión de los usuarios. Siempre se llama a este método para el cuadro de diálogo activo en la pila. Una puntuación de 1,0 indicará una coincidencia perfecta y finalizará cualquier reconocimiento adicional. Cuando la puntuación es inferior a 1,0, cada cuadro de diálogo de la pila tendrá su método recognizeAction() llamado también para ver si hay acciones con nombre enlazadas al cuadro de diálogo que mejor coincida con la expresión de los usuarios. También se evaluarán las acciones globales registradas en el nivel de bot. Si el cuadro de diálogo tiene una puntuación superior, se llamará a cualquier acción enlazada, los diálogos replyReceived() método con el objeto de resultado devuelto desde la llamada recognize(). Esto permite que el cuadro de diálogo pase datos adicionales recopilados durante la fase de reconocimiento al método replyReceived() para controlar. Si hay una acción con una puntuación superior, el cuadro de diálogo se invocará la acción en lugar del método replyReceived() de los diálogos. El cuadro de diálogo permanecerá en la pila y puede reanudarse en algún momento si la acción invoca un cuadro de diálogo nuevo, por lo que los diálogos deben prepararse para llamadas inesperadas a dialogResumed(). |
| reload |
Enlaza una acción al cuadro de diálogo que hará que el diálogo se vuelva a cargar en cualquier momento que se desencadene. Esto resulta útil para implementar lógica que controle expresiones de usuario como "empezar de nuevo". |
| reply |
Procesa los mensajes recibidos del usuario. Lo llama el sistema de diálogos. |
| select |
Selecciona la ruta que tenía la puntuación de confianza más alta para la expresión. |
| trigger |
Enlaza una acción al cuadro de diálogo que lo convertirá en el diálogo activo cada vez que se desencadene. El comportamiento predeterminado consiste en interupar cualquier diálogo existente borrando la pila e iniciando el diálogo en la raíz de la pila. El cuadro de diálogo que se interrumpe puede interceptar esta interrupción agregando un personalizado en el controlador de interrupted a sus opciones de acción de desencadenador. Además, puede personalizar la forma en que se inicia el diálogo desencadenado proporcionando un personalizado onSelectAction controlador a las opciones de acción del desencadenador. |
Detalles del constructor
WaterfallDialog(IDialogWaterfallStep | IDialogWaterfallStep[])
Crea un cuadro de diálogo en cascada.
new WaterfallDialog(steps: IDialogWaterfallStep | IDialogWaterfallStep[])
Parámetros
- steps
Secuencia de funciones a las que se debe llamar en orden.
Detalles del método
addDialogTrigger(ActionSet, string)
Se llama una vez para cada diálogo dentro de una biblioteca para dar al diálogo la oportunidad de agregar su triggerAction() al conjunto de acciones globales de bibliotecas. Estos desencadenadores se asignan a un beginDialogAction() que inicia el diálogo cuando se cumple la condición del desencadenador.
function addDialogTrigger(actions: ActionSet, dialogId: string)
Parámetros
- actions
- ActionSet
Conjunto de acciones globales de bibliotecas.
- dialogId
-
string
Identificador completo del cuadro de diálogo que se va a desencadenar.
begin<T>(Session, T)
Se llama cuando se inicia una nueva sesión de diálogo.
function begin<T>(session: Session, args?: T)
Parámetros
- session
- Session
Objeto session para la conversación actual.
- args
-
T
(Opcional) argumentos pasados al cuadro de diálogo por su elemento primario.
beginDialogAction(string, string, IBeginDialogActionOptions)
Enlaza una acción al cuadro de diálogo que iniciará otro diálogo cada vez que se desencadene. El nuevo cuadro de diálogo se insertará en la pila para que no finalice automáticamente la tarea actual. La tarea actual continuará una vez que finalice el cuadro de diálogo nuevo. Las solicitudes integradas volverán a solicitar automáticamente al usuario una vez que esto suceda, pero ese comportamiento se puede deshabilitar estableciendo la marca promptAfterAction al llamar a un mensaje integrado.
function beginDialogAction(name: string, id: string, options?: IBeginDialogActionOptions)
Parámetros
- name
-
string
Nombre único para asignar la acción.
- id
-
string
Identificador del cuadro de diálogo que se va a iniciar.
- options
- IBeginDialogActionOptions
(Opcional) opciones usadas para configurar la acción. Si coincide con se especifica, la acción escuchará al usuario que diga una palabra o frase que desencadene la acción; de lo contrario, la acción debe enlazarse a un botón mediante CardAction.dialogAction() para desencadenar la acción. También puede usar dialogArgs para pasar parámetros adicionales al cuadro de diálogo que se está iniciando.
Devoluciones
cancelAction(string, TextOrMessageType, ICancelActionOptions)
Enlaza una acción al cuadro de diálogo que cancelará el diálogo en cualquier momento que se desencadene. Cuando se cancela, los diálogos primarios se reanudarán con un código de reanudado que indica que se canceló .
function cancelAction(name: string, msg?: TextOrMessageType, options?: ICancelActionOptions)
Parámetros
- name
-
string
Nombre único para asignar la acción.
(Opcional) mensaje para enviar al usuario antes de cancelar el cuadro de diálogo.
- options
- ICancelActionOptions
(Opcional) opciones usadas para configurar la acción. Si coincide con se especifica, la acción escuchará al usuario que diga una palabra o frase que desencadene la acción; de lo contrario, la acción debe enlazarse a un botón mediante CardAction.dialogAction() para desencadenar la acción.
Devoluciones
clone(ActionSet)
Devuelve un clon de un actionSet existente.
function clone(copyTo?: ActionSet)
Parámetros
- copyTo
- ActionSet
(Opcional) instancia en la que copiar el objeto actual. Si falta una nueva instancia, se creará.
Devoluciones
createHandler(IDialogWaterfallStep[])
Crea una función que puede conducir una cascada. Cada vez que se llama a la función, impulsará la cascada hacia delante invocando el siguiente paso de la cascada. La función usa session.dialogData para contener el paso actual de cascadas.
Para dirigir la cascada hacia delante, el parámetro args pasado al controlador debe tener args.resumed = builder.ResumeReason.completed. Una vez alcanzado el final de la cascada, llamará automáticamente a session.endDialogWithResult(args) devolver los argumentos pasados.
Si falta el args parámetro, el campo resumed la cascada simplemente empezará por llamar al primer paso.
static function createHandler(steps: IDialogWaterfallStep[])
Parámetros
- steps
Pasos de cascada que se van a ejecutar.
Devoluciones
(session: Session, args?: any) => void
customAction(IDialogActionOptions)
Enlaza una acción personalizada al cuadro de diálogo que llamará al objeto pasado en onSelectAction controlador cuando se desencadene.
function customAction(options: IDialogActionOptions)
Parámetros
- options
- IDialogActionOptions
Las opciones usadas para configurar la acción. Si coincide con se especifica, la acción escuchará al usuario que diga una palabra o frase que desencadene la acción. Se puede proporcionar lógica de coincidencia personalizada mediante onFindAction.
Devoluciones
dialogInterrupted(Session, string, any)
Se llama cuando otro diálogo interrumpe un diálogo raíz. Esto proporciona al cuadro de diálogo que se interrumpe la posibilidad de ejecutar lógica personalizada antes de quitarla de la pila. El propio diálogo es responsable de borrar la pila de diálogos e iniciar el nuevo diálogo.
function dialogInterrupted(session: Session, dialogId: string, dialogArgs: any)
Parámetros
- session
- Session
Objeto session para la conversación actual.
- dialogId
-
string
Identificador del cuadro de diálogo que se debe iniciar.
- dialogArgs
-
any
Argumentos que se deben pasar al cuadro de diálogo nuevo.
dialogResumed<T>(Session, IDialogResult<T>)
Un cuadro de diálogo secundario ha finalizado y el actual se está reanudando.
function dialogResumed<T>(session: Session, result: IDialogResult<T>)
Parámetros
- session
- Session
Objeto session para la conversación actual.
- result
Resultado devuelto por el cuadro de diálogo secundario.
endConversationAction(string, TextOrMessageType, ICancelActionOptions)
Enlaza una acción que finalizará la conversación con el usuario cuando se desencadene.
function endConversationAction(name: string, msg?: TextOrMessageType, options?: ICancelActionOptions)
Parámetros
- name
-
string
Nombre único para asignar la acción.
(Opcional) mensaje para enviar al usuario antes de finalizar la conversación.
- options
- ICancelActionOptions
(Opcional) opciones usadas para configurar la acción. Si coincide con se especifica, la acción escuchará al usuario que diga una palabra o frase que desencadene la acción; de lo contrario, la acción debe enlazarse a un botón mediante CardAction.dialogAction() para desencadenar la acción.
Devoluciones
findActionRoutes(IRecognizeDialogContext, (err: Error, results: IRouteResult[]) => void)
Se llama durante la Library.findRoutes() llamada a para cada cuadro de diálogo de la pila para determinar si alguna de las acciones de diálogo las desencadena la expresión de los usuarios.
function findActionRoutes(context: IRecognizeDialogContext, callback: (err: Error, results: IRouteResult[]) => void)
Parámetros
- context
- IRecognizeDialogContext
Contexto del mensaje entrante, así como el dialogData para el cuadro de diálogo evaluado.
- callback
-
(err: Error, results: IRouteResult[]) => void
Función que se va a invocar con las rutas candidatas principales.
onBeforeStep((session: Session, step: number, args: any, next: (step: number, args: any) => void) => void)
Registra un controlador al que se llamará antes de cada paso de la cascada. Los controladores next() función ejecutarán el siguiente controlador de la cadena o el propio paso de cascada. Este controlador permite que un desarrollador omita los pasos y procese los argumentos que se pasan al paso siguiente.
Se pueden registrar varios controladores y el controlador que se va a registrar se ejecutará antes de que otros controladores de la cadena.
function onBeforeStep(handler: (session: Session, step: number, args: any, next: (step: number, args: any) => void) => void)
Parámetros
- handler
-
(session: Session, step: number, args: any, next: (step: number, args: any) => void) => void
Función para invocar entre cada paso de cascada.
Devoluciones
recognize(IRecognizeDialogContext, (err: Error, result: IRecognizeResult) => void)
Analiza la expresión de los usuarios y asigna una puntuación de 0,0 a 1,0 que indica la confianza del cuadro de diálogo es que entendió la expresión de los usuarios. Siempre se llama a este método para el cuadro de diálogo activo en la pila. Una puntuación de 1,0 indicará una coincidencia perfecta y finalizará cualquier reconocimiento adicional. Cuando la puntuación es inferior a 1,0, cada cuadro de diálogo de la pila tendrá su método recognizeAction() llamado también para ver si hay acciones con nombre enlazadas al cuadro de diálogo que mejor coincida con la expresión de los usuarios. También se evaluarán las acciones globales registradas en el nivel de bot. Si el cuadro de diálogo tiene una puntuación superior, se llamará a cualquier acción enlazada, los diálogos replyReceived() método con el objeto de resultado devuelto desde la llamada recognize(). Esto permite que el cuadro de diálogo pase datos adicionales recopilados durante la fase de reconocimiento al método replyReceived() para controlar.
Si hay una acción con una puntuación superior, el cuadro de diálogo se invocará la acción en lugar del método replyReceived() de los diálogos. El cuadro de diálogo permanecerá en la pila y puede reanudarse en algún momento si la acción invoca un cuadro de diálogo nuevo, por lo que los diálogos deben prepararse para llamadas inesperadas a dialogResumed().
function recognize(context: IRecognizeDialogContext, callback: (err: Error, result: IRecognizeResult) => void)
Parámetros
- context
- IRecognizeDialogContext
Contexto de la solicitud.
- callback
-
(err: Error, result: IRecognizeResult) => void
Función que se va a invocar con los resultados del reconocimiento.
reloadAction(string, TextOrMessageType, IBeginDialogActionOptions)
Enlaza una acción al cuadro de diálogo que hará que el diálogo se vuelva a cargar en cualquier momento que se desencadene. Esto resulta útil para implementar lógica que controle expresiones de usuario como "empezar de nuevo".
function reloadAction(name: string, msg?: TextOrMessageType, options?: IBeginDialogActionOptions)
Parámetros
- name
-
string
Nombre único para asignar la acción.
(Opcional) mensaje para enviar al usuario antes de volver a cargar el cuadro de diálogo.
- options
- IBeginDialogActionOptions
(Opcional) opciones usadas para configurar la acción. Si coincide con se especifica, la acción escuchará al usuario que diga una palabra o frase que desencadene la acción; de lo contrario, la acción debe enlazarse a un botón mediante CardAction.dialogAction() para desencadenar la acción. También puede usar dialogArgs para pasar parámetros adicionales al cuadro de diálogo cuando se vuelva a cargar.
Devoluciones
replyReceived(Session)
Procesa los mensajes recibidos del usuario. Lo llama el sistema de diálogos.
function replyReceived(session: Session)
Parámetros
- session
- Session
Objeto session para la conversación actual.
selectActionRoute(Session, IRouteResult)
Selecciona la ruta que tenía la puntuación de confianza más alta para la expresión.
function selectActionRoute(session: Session, route: IRouteResult)
Parámetros
- session
- Session
Objeto session para la conversación actual.
- route
- IRouteResult
Resultados devueltos de la llamada a findActionRoutes().
triggerAction(ITriggerActionOptions)
Enlaza una acción al cuadro de diálogo que lo convertirá en el diálogo activo cada vez que se desencadene. El comportamiento predeterminado consiste en interupar cualquier diálogo existente borrando la pila e iniciando el diálogo en la raíz de la pila. El cuadro de diálogo que se interrumpe puede interceptar esta interrupción agregando un personalizado en el controlador de interrupted a sus opciones de acción de desencadenador. Además, puede personalizar la forma en que se inicia el diálogo desencadenado proporcionando un personalizado onSelectAction controlador a las opciones de acción del desencadenador.
function triggerAction(options: ITriggerActionOptions)
Parámetros
- options
- ITriggerActionOptions
Opciones usadas para configurar la acción.