Session class

Administra la conversación de bots con un usuario.

Constructores

Session(ISessionOptions)

Crea una instancia de la sesión.

Propiedades

connector

Conector que se usa para esta sesión.

conversationData

Datos de conversación compartidos que son visibles para todos los miembros de la conversación.

dialogData

Datos que solo son visibles para el cuadro de diálogo actual.

library

Biblioteca raíz de bots de diálogos.

localizer

Localizador de la sesión actual.

message

Mensaje recibido del usuario. En el caso de los mensajes originados por el bot, esto solo puede contener los campos "a" & "from".

privateConversationData

Datos de conversación privados que solo son visibles para el usuario.

sessionState

Información de estado actual de las sesiones.

userData

Datos del usuario que se conservan en todas las conversaciones con el bot.

Métodos

activeDialogStackEntry(IDialogState[])

Devuelve un cuadro de diálogo activo de pila o null.

beginDialog<T>(string, T)

Pasa el control de la conversación a un cuadro de diálogo nuevo. El diálogo actual se suspenderá hasta que se complete el diálogo secundario. Una vez que el elemento secundario finaliza el diálogo actual, recibirá una llamada a dialogResumed() donde puede inspeccionar los resultados devueltos por el elemento secundario.

cancelDialog(string | number, string, any)

Cancela un cuadro de diálogo existente y, opcionalmente, inicia uno nuevo en su lugar. A diferencia de endDialog() y replaceDialog() que afectan al diálogo actual, este método le permite finalizar un diálogo primario en cualquier parte de la pila. El elemento primario del cuadro de diálogo cancelado continuará como si el diálogo hubiera llamado a endDialog(). Se devolverá un resumeReason.canceled especial para indicar que se canceló el cuadro de diálogo.

clearDialogStack()

Borra la pila de diálogos actual.

delay(number)

Inserta un retraso entre los mensajes salientes.

dialogStack(IDialogState[])

Obtiene o establece la pila de diálogos actual. Se devuelve una copia del cuadro de diálogo actual, por lo que si se realizan cambios en la pila devuelta, deberán volver a copiarse en la sesión a través de una segunda llamada a session.dialogStack().

dispatch(ISessionState, IMessage, Function)

Finaliza la inicialización del objeto de sesión y, a continuación, enruta la sesión a través de todo el middleware instalado. Se llamará a la función pasada next() como último paso de la cadena de middleware.

endConversation(TextOrMessageType, any[])

Finaliza la conversación actual y, opcionalmente, envía un mensaje al usuario.

endDialog(TextOrMessageType, any[])

Finaliza el cuadro de diálogo actual y, opcionalmente, envía un mensaje al usuario. El elemento primario se reanudará con un motivo de IDialogResult.resume de completado.

endDialogWithResult(IDialogResult<any>)

Finaliza el cuadro de diálogo actual y, opcionalmente, devuelve un resultado al elemento primario de los diálogos.

error(Error)

Indica que se ha producido un error. El bot indicará el error a través de un evento on('error', err).

findDialogStackEntry(IDialogState[], string, boolean)

Busca en una pila de diálogos un diálogo específico, en una dirección directa o inversa, devolviendo su índice.

forEachDialogStackEntry(IDialogState[], boolean, (entry: IDialogState, index: number) => void)

Enumera todas las entradas de diálogo de pila en una dirección directa o inversa.

gettext(string, any[])

Carga una cadena localizada para el idioma de los mensajes. Si se pasan argumentos, la cadena localizada se tratará como una plantilla y se dará formato mediante sprintf-js (consulte sus documentos para obtener más información).

isReset()

Devuelve true si se ha restablecido la sesión.

messageSent()

Devuelve true si se ha enviado un mensaje para esta sesión.

ngettext(string, string, number)

Carga la forma plural de una cadena localizada para el idioma de los mensajes. Se dará formato a la cadena de salida para incluir el recuento reemplazando %d en la cadena por el recuento.

on(string, (data: any) => void)

Registra un agente de escucha de eventos.

popDialogStackEntry(IDialogState[])

Extrae el cuadro de diálogo activo de una pila y devuelve el nuevo si la pila no está vacía.

preferredLocale(string, (err: Error) => void)

Devuelve la configuración regional preferida cuando no se proporciona ningún parámetro; de lo contrario, establece la configuración regional preferida.

pruneDialogStack(IDialogState[], number)

Elimina todas las entradas de la pila de diálogos a partir del índice especificado y devuelve el nuevo cuadro de diálogo activo.

pushDialogStackEntry(IDialogState[], IDialogState)

Inserta un nuevo cuadro de diálogo en una pila y lo devuelve como el diálogo activo.

replaceDialog<T>(string, T)

Finaliza el cuadro de diálogo actual e inicia uno nuevo en su lugar. El cuadro de diálogo primario no se reanudará hasta que se complete el nuevo diálogo.

reset(string, any)

Borra la pila de llamadas de sesiones y reinicia la conversación con el dialogId configurado.

routeToActiveDialog(IRecognizeResult)

Envía la sesión al cuadro de diálogo activo o al diálogo predeterminado para su procesamiento.

save()

Desencadena el guardado de los cambios realizados en dialogData, userData, conversationdata o [privateConversationData'(#privateconversationdata).

say(TextType, IMessageOptions)
say(TextType, TextType, IMessageOptions)

Envía un mensaje de texto y SSML opcional al usuario.

sayLocalized(string, TextType, TextType, IMessageOptions)

Envía un texto y un mensaje SSML opcional al usuario mediante un espacio de nombres de localización específico.

send(TextOrMessageType, any[])

Envía un mensaje al usuario.

sendBatch((err: Error, addresses?: IAddress[]) => void)

Finaliza inmediatamente el lote actual y entrega los mensajes en cola.

sendLocalized(string, TextOrMessageType, any[])

Envía un mensaje a un usuario mediante un espacio de nombres de localización específico.

sendTyping()

Envía al usuario una indicación de que el bot está escribiendo. Para las operaciones de larga duración, se debe llamar a esta operación cada pocos segundos.

toRecognizeContext()

Devuelve el objeto de sesión como un objeto de contexto de solo lectura.

validateDialogStack(IDialogState[], Library)

Garantiza que todas las entradas de una pila de diálogos hagan referencia a diálogos válidos dentro de una jerarquía de biblioteca.

watch(string, boolean)

Habilita o deshabilita un watch para la sesión actual.

watchable(string, IWatchableHandler)

Agrega o recupera una variable que se puede ver.

watchableList()

Devuelve una lista de variables inspeccionables.

watchList()

Devuelve la lista actual de variables inspeccionadas para la sesión.

Detalles del constructor

Session(ISessionOptions)

Crea una instancia de la sesión.

new Session(options: ISessionOptions)

Parámetros

options
ISessionOptions

Opciones de configuración de sesiones.

Detalles de las propiedades

connector

Conector que se usa para esta sesión.

connector: IConnector

Valor de propiedad

conversationData

Datos de conversación compartidos que son visibles para todos los miembros de la conversación.

conversationData: any

Valor de propiedad

any

dialogData

Datos que solo son visibles para el cuadro de diálogo actual.

dialogData: any

Valor de propiedad

any

library

Biblioteca raíz de bots de diálogos.

library: Library

Valor de propiedad

localizer

Localizador de la sesión actual.

localizer: ILocalizer

Valor de propiedad

message

Mensaje recibido del usuario. En el caso de los mensajes originados por el bot, esto solo puede contener los campos "a" & "from".

message: IMessage

Valor de propiedad

privateConversationData

Datos de conversación privados que solo son visibles para el usuario.

privateConversationData: any

Valor de propiedad

any

sessionState

Información de estado actual de las sesiones.

sessionState: ISessionState

Valor de propiedad

userData

Datos del usuario que se conservan en todas las conversaciones con el bot.

userData: any

Valor de propiedad

any

Detalles del método

activeDialogStackEntry(IDialogState[])

Devuelve un cuadro de diálogo activo de pila o null.

static function activeDialogStackEntry(stack: IDialogState[])

Parámetros

stack

IDialogState[]

Pila de diálogos para la que se va a devolver la entrada.

Devoluciones

beginDialog<T>(string, T)

Pasa el control de la conversación a un cuadro de diálogo nuevo. El diálogo actual se suspenderá hasta que se complete el diálogo secundario. Una vez que el elemento secundario finaliza el diálogo actual, recibirá una llamada a dialogResumed() donde puede inspeccionar los resultados devueltos por el elemento secundario.

function beginDialog<T>(id: string, args?: T)

Parámetros

id

string

Identificador único del cuadro de diálogo que se va a iniciar.

args

T

(Opcional) argumentos para pasar al método begin() de diálogos.

Devoluciones

cancelDialog(string | number, string, any)

Cancela un cuadro de diálogo existente y, opcionalmente, inicia uno nuevo en su lugar. A diferencia de endDialog() y replaceDialog() que afectan al diálogo actual, este método le permite finalizar un diálogo primario en cualquier parte de la pila. El elemento primario del cuadro de diálogo cancelado continuará como si el diálogo hubiera llamado a endDialog(). Se devolverá un resumeReason.canceled especial para indicar que se canceló el cuadro de diálogo.

function cancelDialog(dialogId: string | number, replaceWithId?: string, replaceWithArgs?: any)

Parámetros

dialogId

string | number

  • dialogId:{string} : id. del cuadro de diálogo al final. Si existen varias repeticiones del diálogo en la pila de diálogos, se cancelará la última aparición.
  • dialogId:{number} : índice del cuadro de diálogo en la pila que se va a cancelar. Esta es la manera preferida de cancelar un cuadro de diálogo desde un controlador de acciones, ya que garantiza que se cancele la instancia correcta.
replaceWithId

string

(Opcional) especifica un identificador que se iniciará en el lugar de los diálogos cancelados. Esto impide que se reanudan los diálogos primarios.

replaceWithArgs

any

(Opcional) argumentos para pasar al cuadro de diálogo nuevo.

Devoluciones

clearDialogStack()

Borra la pila de diálogos actual.

function clearDialogStack()

Devoluciones

delay(number)

Inserta un retraso entre los mensajes salientes.

function delay(delay: number)

Parámetros

delay

number

Número de milisegundos para los que se va a pausar.

Devoluciones

dialogStack(IDialogState[])

Obtiene o establece la pila de diálogos actual. Se devuelve una copia del cuadro de diálogo actual, por lo que si se realizan cambios en la pila devuelta, deberán volver a copiarse en la sesión a través de una segunda llamada a session.dialogStack().

function dialogStack(newStack?: IDialogState[])

Parámetros

newStack

IDialogState[]

(Opcional) pila de cuadros de diálogo para asignar a la sesión. El dialogData de sesiones se actualizará para reflejar el estado del nuevo cuadro de diálogo activo.

Devoluciones

dispatch(ISessionState, IMessage, Function)

Finaliza la inicialización del objeto de sesión y, a continuación, enruta la sesión a través de todo el middleware instalado. Se llamará a la función pasada next() como último paso de la cadena de middleware.

function dispatch(sessionState: ISessionState, message: IMessage, next: Function)

Parámetros

sessionState
ISessionState

Estado de sesión actual. Si null se iniciará una nueva conversación a partir del dialogId configurado.

message
IMessage

Mensaje que se va a enrutar a través del middleware.

next

Function

Función que se va a invocar como último paso de la cadena de middleware.

Devoluciones

endConversation(TextOrMessageType, any[])

Finaliza la conversación actual y, opcionalmente, envía un mensaje al usuario.

function endConversation(message?: TextOrMessageType, args: any[])

Parámetros

message
TextOrMessageType

(Opcional) texto o mensaje para enviar al usuario antes de finalizar la conversación.

args

any[]

(Opcional) argumentos usados para dar formato al texto de salida final cuando el mensaje es una {string|string[]}.

Devoluciones

endDialog(TextOrMessageType, any[])

Finaliza el cuadro de diálogo actual y, opcionalmente, envía un mensaje al usuario. El elemento primario se reanudará con un motivo de IDialogResult.resume de completado.

function endDialog(message?: TextOrMessageType, args: any[])

Parámetros

message
TextOrMessageType

(Opcional) texto o mensaje para enviar al usuario antes de finalizar el cuadro de diálogo.

args

any[]

(Opcional) argumentos usados para dar formato al texto de salida final cuando el mensaje es una {string|string[]}.

Devoluciones

endDialogWithResult(IDialogResult<any>)

Finaliza el cuadro de diálogo actual y, opcionalmente, devuelve un resultado al elemento primario de los diálogos.

function endDialogWithResult(result?: IDialogResult<any>)

Parámetros

result

IDialogResult<any>

(Opcional) resultado para enviar al usuario. El valor que desea devolver debe estar en el campo de respuesta .

Devoluciones

error(Error)

Indica que se ha producido un error. El bot indicará el error a través de un evento on('error', err).

function error(err: Error)

Parámetros

err

Error

Error que se produjo.

Devoluciones

findDialogStackEntry(IDialogState[], string, boolean)

Busca en una pila de diálogos un diálogo específico, en una dirección directa o inversa, devolviendo su índice.

static function findDialogStackEntry(stack: IDialogState[], dialogId: string, reverse?: boolean)

Parámetros

stack

IDialogState[]

Pila de diálogos que se va a buscar.

dialogId

string

Identificador único del cuadro de diálogo, en <namespace>:<dialog> formato, que se va a buscar.

reverse

boolean

(Opcional) si es true, se buscará en la pila a partir del cuadro de diálogo activo y trabajando hacia arriba hasta la raíz.

Devoluciones

number

forEachDialogStackEntry(IDialogState[], boolean, (entry: IDialogState, index: number) => void)

Enumera todas las entradas de diálogo de pila en una dirección directa o inversa.

static function forEachDialogStackEntry(stack: IDialogState[], reverse: boolean, fn: (entry: IDialogState, index: number) => void)

Parámetros

stack

IDialogState[]

Pila de diálogos que se va a enumerar.

reverse

boolean

Si es true, las entradas se enumerarán a partir del cuadro de diálogo activo y funcionarán hasta el diálogo raíz.

fn

(entry: IDialogState, index: number) => void

Función que se va a invocar con cada entrada de la pila.

gettext(string, any[])

Carga una cadena localizada para el idioma de los mensajes. Si se pasan argumentos, la cadena localizada se tratará como una plantilla y se dará formato mediante sprintf-js (consulte sus documentos para obtener más información).

function gettext(msgid: string, args: any[])

Parámetros

msgid

string

Cadena que se va a usar como clave en la tabla de cadenas localizadas. Normalmente, esto solo será la versión en inglés de la cadena.

args

any[]

(Opcional) argumentos usados para dar formato a la cadena de salida final.

Devoluciones

string

isReset()

Devuelve true si se ha restablecido la sesión.

function isReset()

Devoluciones

boolean

messageSent()

Devuelve true si se ha enviado un mensaje para esta sesión.

function messageSent()

Devoluciones

boolean

ngettext(string, string, number)

Carga la forma plural de una cadena localizada para el idioma de los mensajes. Se dará formato a la cadena de salida para incluir el recuento reemplazando %d en la cadena por el recuento.

function ngettext(msgid: string, msgid_plural: string, count: number)

Parámetros

msgid

string

Forma singular de la cadena que se va a usar como clave en la tabla de cadenas localizadas. Use %d para especificar dónde debe ir el recuento.

msgid_plural

string

Forma plural de la cadena que se va a usar como clave en la tabla de cadenas localizadas. Use %d para especificar dónde debe ir el recuento.

count

number

Recuento que se va a usar al determinar si se debe usar la forma singular o plural de la cadena.

Devoluciones

string

on(string, (data: any) => void)

Registra un agente de escucha de eventos.

function on(event: string, listener: (data: any) => void)

Parámetros

event

string

Nombre del evento. Tipos de eventos:

  • Error: Error. Pasa un objeto JavaScript Error .
listener

(data: any) => void

Función que se va a invocar.

popDialogStackEntry(IDialogState[])

Extrae el cuadro de diálogo activo de una pila y devuelve el nuevo si la pila no está vacía.

static function popDialogStackEntry(stack: IDialogState[])

Parámetros

stack

IDialogState[]

Pila de diálogos que se va a actualizar.

Devoluciones

preferredLocale(string, (err: Error) => void)

Devuelve la configuración regional preferida cuando no se proporciona ningún parámetro; de lo contrario, establece la configuración regional preferida.

function preferredLocale(locale?: string, callback?: (err: Error) => void)

Parámetros

locale

string

(Opcional) la configuración regional que se va a usar para localizar mensajes.

callback

(err: Error) => void

(Opcional) se llama a la función cuando se ha cargado la tabla de localización para la configuración regional proporcionada.

Devoluciones

string

pruneDialogStack(IDialogState[], number)

Elimina todas las entradas de la pila de diálogos a partir del índice especificado y devuelve el nuevo cuadro de diálogo activo.

static function pruneDialogStack(stack: IDialogState[], start: number)

Parámetros

stack

IDialogState[]

Pila de diálogos que se va a actualizar.

start

number

Índice del primer elemento que se va a quitar.

Devoluciones

pushDialogStackEntry(IDialogState[], IDialogState)

Inserta un nuevo cuadro de diálogo en una pila y lo devuelve como el diálogo activo.

static function pushDialogStackEntry(stack: IDialogState[], entry: IDialogState)

Parámetros

stack

IDialogState[]

Pila de diálogos que se va a actualizar.

entry
IDialogState

Entrada de cuadro de diálogo que se va a insertar en la pila.

Devoluciones

replaceDialog<T>(string, T)

Finaliza el cuadro de diálogo actual e inicia uno nuevo en su lugar. El cuadro de diálogo primario no se reanudará hasta que se complete el nuevo diálogo.

function replaceDialog<T>(id: string, args?: T)

Parámetros

id

string

Identificador único del cuadro de diálogo que se va a iniciar.

args

T

(Opcional) argumentos para pasar al método begin() de diálogos.

Devoluciones

reset(string, any)

Borra la pila de llamadas de sesiones y reinicia la conversación con el dialogId configurado.

function reset(dialogId?: string, dialogArgs?: any)

Parámetros

dialogId

string

(Opcional) Identificador del cuadro de diálogo que se va a iniciar.

dialogArgs

any

(Opcional) argumentos para pasar al método begin() de diálogos.

Devoluciones

routeToActiveDialog(IRecognizeResult)

Envía la sesión al cuadro de diálogo activo o al diálogo predeterminado para su procesamiento.

function routeToActiveDialog(recognizeResult?: IRecognizeResult)

Parámetros

recognizeResult
IRecognizeResult

(Opcional) los resultados devueltos por la llamada a Library.findRoutes(), Library.findActiveDialogRoutes(), * o Dialog.recognize().

save()

Desencadena el guardado de los cambios realizados en dialogData, userData, conversationdata o [privateConversationData'(#privateconversationdata).

function save()

Devoluciones

say(TextType, IMessageOptions)

function say(text: TextType, options?: IMessageOptions)

Parámetros

text
TextType
options
IMessageOptions

Devoluciones

say(TextType, TextType, IMessageOptions)

Envía un mensaje de texto y SSML opcional al usuario.

function say(text: TextType, speak?: TextType, options?: IMessageOptions)

Parámetros

text
TextType

Texto que se va a enviar al usuario. Esto puede ser null para enviar solo SSML o datos adjuntos.

speak
TextType

(Opcional) mensaje que se debe hablar al usuario. El mensaje debe tener el formato de lenguaje de marcado de síntesis de voz (SSML). Si se pasa una matriz, se elegirá una respuesta de forma aleatoria.

options
IMessageOptions

(Opcional) propiedades que se deben incluir en el mensaje saliente.

Devoluciones

sayLocalized(string, TextType, TextType, IMessageOptions)

Envía un texto y un mensaje SSML opcional al usuario mediante un espacio de nombres de localización específico.

function sayLocalized(libraryNamespace: string, text: TextType, speak?: TextType, options?: IMessageOptions)

Parámetros

libraryNamespace

string

Espacio de nombres que se va a usar para localizar el mensaje.

text
TextType

Texto que se va a enviar al usuario. Esto puede ser null para enviar solo SSML o datos adjuntos.

speak
TextType

(Opcional) mensaje que se debe hablar al usuario. El mensaje debe tener el formato de lenguaje de marcado de síntesis de voz (SSML). Si se pasa una matriz, se elegirá una respuesta de forma aleatoria.

options
IMessageOptions

(Opcional) propiedades que se deben incluir en el mensaje saliente.

Devoluciones

send(TextOrMessageType, any[])

Envía un mensaje al usuario.

function send(message: TextOrMessageType, args: any[])

Parámetros

message
TextOrMessageType

Texto o mensaje que se va a enviar al usuario. Si se pasa una matriz, se elegirá una respuesta de forma aleatoria.

args

any[]

(Opcional) argumentos usados para dar formato al texto de salida final cuando el mensaje es una {string|string[]}.

Devoluciones

sendBatch((err: Error, addresses?: IAddress[]) => void)

Finaliza inmediatamente el lote actual y entrega los mensajes en cola.

function sendBatch(done?: (err: Error, addresses?: IAddress[]) => void)

Parámetros

done

(err: Error, addresses?: IAddress[]) => void

(Opcional) se llama a la función cuando el lote se deslimentó correctamente o se produjo un error por algún motivo.

sendLocalized(string, TextOrMessageType, any[])

Envía un mensaje a un usuario mediante un espacio de nombres de localización específico.

function sendLocalized(libraryNamespace: string, message: TextOrMessageType, args: any[])

Parámetros

libraryNamespace

string

Espacio de nombres que se va a usar para localizar el mensaje.

message
TextOrMessageType

Texto o mensaje que se va a enviar al usuario.

args

any[]

(Opcional) argumentos usados para dar formato al texto de salida final cuando el mensaje es una {string|string[]}.

Devoluciones

sendTyping()

Envía al usuario una indicación de que el bot está escribiendo. Para las operaciones de larga duración, se debe llamar a esta operación cada pocos segundos.

function sendTyping()

Devoluciones

toRecognizeContext()

Devuelve el objeto de sesión como un objeto de contexto de solo lectura.

function toRecognizeContext()

Devoluciones

validateDialogStack(IDialogState[], Library)

Garantiza que todas las entradas de una pila de diálogos hagan referencia a diálogos válidos dentro de una jerarquía de biblioteca.

static function validateDialogStack(stack: IDialogState[], root: Library)

Parámetros

stack

IDialogState[]

Pila de diálogos que se va a validar.

root
Library

La raíz de la jerarquía de la biblioteca, normalmente el bot.

Devoluciones

boolean

watch(string, boolean)

Habilita o deshabilita un watch para la sesión actual.

function watch(variable: string, enable?: boolean)

Parámetros

variable

string

Nombre de la variable que se va a watch/unwatch.

enable

boolean

(Opcional) Si es true, se observará la variable; de lo contrario, no se mostrará. El valor predeterminado es true.

Devoluciones

watchable(string, IWatchableHandler)

Agrega o recupera una variable que se puede ver.

static function watchable(variable: string, handler?: IWatchableHandler)

Parámetros

variable

string

Nombre de la variable que se puede ver. Las mayúsculas y minúsculas solo se usan para mostrarse.

handler
IWatchableHandler

(Opcional) Función usada para recuperar el valor actual de las variables. Si se especifica un nuevo controlador se registrará, de lo contrario, se recuperará el controlador existente.

Devoluciones

watchableList()

Devuelve una lista de variables inspeccionables.

static function watchableList()

Devoluciones

string[]

watchList()

Devuelve la lista actual de variables inspeccionadas para la sesión.

function watchList()

Devoluciones

string[]