Compartir a través de


Library class

Biblioteca de diálogos relacionados que se usan con fines de enrutamiento. Las bibliotecas se pueden encadenar juntas para permitir el desarrollo de bots complejos. La clase universalBot es una biblioteca que forma la raíz de esta cadena. Las bibliotecas de elementos reutilizables se pueden desarrollar mediante la creación de una nueva instancia de biblioteca y la adición de diálogos como lo haría con un bot. La biblioteca debe tener un nombre único que se corresponda con el sitio web de las bibliotecas o el nombre del módulo NPM. Después, los bots pueden reutilizar la biblioteca simplemente agregando la instancia de biblioteca de elementos a su bot mediante UniversalBot.library(). Si la propia biblioteca depende de otras bibliotecas, debe agregarlas a la biblioteca como dependencia mediante Library.library(). Puede administrar fácilmente varias versiones de la biblioteca agregando un número de versión al nombre de la biblioteca.

Para invocar diálogos dentro de los bots de biblioteca, deberá llamar a session.beginDialog() con un identificador de diálogo completo en forma de ":". Normalmente, lo ocultará del desarrollador exponiendo una función de su módulo que inicia el cuadro de diálogo para ellos. Por lo tanto, llamar a algo como myLib.someDialog(session, { arg: '' }); terminaría llamando a session.beginDialog('myLib:someDialog', args); en segundo plano.

Cabe destacar que los diálogos siempre se invocan dentro del diálogo actual, por lo que una vez que se encuentra dentro de un diálogo de la biblioteca, no es necesario prefijar todas las llamadas beginDialog() con el nombre de las bibliotecas. Solo es cuando se cruza de un contexto de biblioteca a otro que debe incluir el prefijo de nombre de biblioteca.

Constructores

Library(string)

Crea una nueva instancia de la biblioteca.

Propiedades

name

Las bibliotecas son un espacio de nombres único. Esto se usa parasolar los cuadros de diálogo de bibliotecas y avisos localizados.

RouteTypes

Valores routeType admitidos devueltos de forma predeterminada desde findRoutes().

Métodos

addRouteResult(IRouteResult, IRouteResult[])

Método auxiliar llamado desde los distintos métodos de búsqueda de rutas para administrar la adición de una ruta candidata al conjunto de resultados.

  • Si la puntuación es mayor, se devolverá la mejor coincidencia actual en el conjunto de resultados nuevo que contenga solo la nueva coincidencia.
  • Si la puntuación es igual a la mejor coincidencia actual, se agregará al conjunto existente.
  • Si la puntuación es menor que la mejor coincidencia actual, se omitirá.
beginDialogAction(string, string, IDialogActionOptions)

Registra una acción global que iniciará otro cuadro de diálogo en cualquier momento que se desencadene. El nuevo cuadro de diálogo se insertará en la pila para que no finalice automáticamente ninguna 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.

bestRouteResult(IRouteResult[], IDialogState[], string)

Busca la mejor ruta para usar dentro de un conjunto de resultados que contiene varias rutas ambiguas. Se usará la siguiente estrategia de desambiguación:

  1. : los tipos de ruta personalizados son la prioridad más alta y se prefieren los ensayos. Esto permite al desarrollador invalidar el enrutamiento dentro de un bot de forma muy eficaz.
  2. ActiveDialog: el cuadro de diálogo activo es la siguiente prioridad más alta.
  3. StackAction: las acciones de pila son la siguiente prioridad más alta y se devolverá la acción con la posición de pila más profunda.
  4. GlobalAction: las acciones globales son la prioridad más baja. Si un dialogStack está pasado en las acciones de la biblioteca más profunda de la pila se favorecerá. De lo contrario, se devolverá la primera.
clone(Library, string)

Devuelve un clon de una biblioteca existente.

customAction(IDialogActionOptions)

Registra una acción global personalizada que llamará al controlador de pasado en onSelectAction cuando se desencadene.

dialog(string, Dialog | IDialogWaterfallStep[] | IDialogWaterfallStep, boolean)

Registra o devuelve un cuadro de diálogo de la biblioteca.

endConversationAction(string, TextOrMessageType, ICancelActionOptions)

Registra una acción global que finalizará la conversación con el usuario cuando se desencadene.

findActiveDialogRoutes(IRecognizeContext, (err: Error, routes: IRouteResult[]) => void, IDialogState[])

Obtiene la confianza de los diálogos activos que comprende el mensaje actual. El cuadro de diálogo debe ser miembro de la biblioteca actual; de lo contrario, se devolverá una puntuación de 0,0.

findDialog(string, string)

Busca en la biblioteca y en todas sus dependencias un cuadro de diálogo específico. Devuelve el cuadro de diálogo si se encuentra; en caso contrario, null.

findGlobalActionRoutes(IRecognizeContext, (err: Error, routes: IRouteResult[]) => void)

Busca en la biblioteca para ver si se ha desencadenado alguna acción global.

findRoutes(IRecognizeContext, (err: Error, routes: IRouteResult[]) => void)

Busca rutas candidatas para controlar el mensaje actual. Para iniciar realmente el control del mensaje, debe llamar a selectRoute() con uno de los resultados devueltos. La lógica de búsqueda predeterminada se puede invalidar mediante onFindRoute() y solo se busca la biblioteca actual, por lo que debe llamar a findRoutes() separador para cada biblioteca dentro de la jerarquía.

findStackActionRoutes(IRecognizeContext, (err: Error, routes: IRouteResult[]) => void, IDialogState[])

Busca en la pila de diálogos de sesiones para ver si se ha desencadenado alguna acción.

forEachDialog((dialog: Dialog, id: string) => void)

Enumera todos los cuadros de diálogo de bibliotecas.

forEachLibrary((library: Library) => void)

Enumera todas las bibliotecas secundarias. El autor de la llamada debe realizar los pasos adecuados para evitar referencias circulares al enumerar la jerarquía. En la mayoría de los casos, llamar a libraryList() es una mejor opción, ya que ya contiene lógica para evitar ciclos.

library(Library | string)

Registra o devuelve una dependencia de biblioteca.

libraryList(boolean)

Devuelve una lista de bibliotecas únicas dentro de la jerarquía. Se debe llamar a en la raíz de la jerarquía de bibliotecas y evitar ciclos creados cuando dos bibliotecas secundarias hacen referencia a la misma biblioteca dependiente.

localePath(string)

Obtiene o establece la ruta de acceso a la carpeta "/locale/" de bibliotecas que contiene sus mensajes localizados. Las indicaciones para la biblioteca deben almacenarse en un archivo "/locale/<IETF_TAG>/.json" en esta ruta de acceso donde "<IETF_TAG>" representa el escenario de idioma de 2 a 3 dígitos para la configuración regional y "" es un nombre de archivo que coincide con el espacio de nombres de las bibliotecas.

onFindRoutes(IFindRoutesHandler)

Reemplaza findRoutes() lógica de búsqueda de rutas predeterminada por una implementación personalizada.

onSelectRoute(ISelectRouteHandler)

Reemplaza la lógica predeterminada para selectRoute() por una implementación personalizada.

recognize(IRecognizeContext, (err: Error, result: IIntentRecognizerResult) => void)

Intenta hacer coincidir una expresión de texto de los usuarios con una intención mediante los reconocedores de bibliotecas. Consulte IIntentRecognizer.recognize().

recognizer(IIntentRecognizer)

Agrega un nuevo complemento recognizer a la biblioteca.

selectActiveDialogRoute(Session, IRouteResult, IDialogState[])

Enruta el mensaje actual al cuadro de diálogo activo.

selectGlobalActionRoute(Session, IRouteResult, IDialogState[])

Enruta el mensaje actual a una acción global desencadenada.

selectRoute(Session, IRouteResult)

Desencadena el control del mensaje actual mediante la ruta seleccionada. La lógica predeterminada se puede invalidar mediante onSelectRoute().

selectStackActionRoute(Session, IRouteResult, IDialogState[])

Enruta el mensaje actual a una acción de pila desencadenada.

Detalles del constructor

Library(string)

Crea una nueva instancia de la biblioteca.

new Library(name: string)

Parámetros

name

string

Espacio de nombres único para la biblioteca.

Detalles de las propiedades

name

Las bibliotecas son un espacio de nombres único. Esto se usa parasolar los cuadros de diálogo de bibliotecas y avisos localizados.

name: string

Valor de propiedad

string

RouteTypes

Valores routeType admitidos devueltos de forma predeterminada desde findRoutes().

static RouteTypes: Object

Valor de propiedad

Object

Detalles del método

addRouteResult(IRouteResult, IRouteResult[])

Método auxiliar llamado desde los distintos métodos de búsqueda de rutas para administrar la adición de una ruta candidata al conjunto de resultados.

  • Si la puntuación es mayor, se devolverá la mejor coincidencia actual en el conjunto de resultados nuevo que contenga solo la nueva coincidencia.
  • Si la puntuación es igual a la mejor coincidencia actual, se agregará al conjunto existente.
  • Si la puntuación es menor que la mejor coincidencia actual, se omitirá.
static function addRouteResult(route: IRouteResult, current?: IRouteResult[])

Parámetros

route
IRouteResult

Ruta candidata que se va a agregar al conjunto.

current

IRouteResult[]

(Opcional) conjunto de resultados para agregar también la ruta. Si falta un nuevo conjunto con solo la ruta, se devolverá.

Devoluciones

beginDialogAction(string, string, IDialogActionOptions)

Registra una acción global que iniciará otro cuadro de diálogo en cualquier momento que se desencadene. El nuevo cuadro de diálogo se insertará en la pila para que no finalice automáticamente ninguna 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?: IDialogActionOptions)

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
IDialogActionOptions

(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

bestRouteResult(IRouteResult[], IDialogState[], string)

Busca la mejor ruta para usar dentro de un conjunto de resultados que contiene varias rutas ambiguas. Se usará la siguiente estrategia de desambiguación:

  1. : los tipos de ruta personalizados son la prioridad más alta y se prefieren los ensayos. Esto permite al desarrollador invalidar el enrutamiento dentro de un bot de forma muy eficaz.
  2. ActiveDialog: el cuadro de diálogo activo es la siguiente prioridad más alta.
  3. StackAction: las acciones de pila son la siguiente prioridad más alta y se devolverá la acción con la posición de pila más profunda.
  4. GlobalAction: las acciones globales son la prioridad más baja. Si un dialogStack está pasado en las acciones de la biblioteca más profunda de la pila se favorecerá. De lo contrario, se devolverá la primera.
static function bestRouteResult(routes: IRouteResult[], dialogStack?: IDialogState[], rootLibraryName?: string)

Parámetros

routes

IRouteResult[]

Matriz de rutas candidatas para filtrar.

dialogStack

IDialogState[]

(Opcional) pila de diálogos que se usa para determinar qué acciones globales de bibliotecas se van a favorecer.

rootLibraryName

string

(Opcional) espacio de nombres de biblioteca que prefiera al desambiguar las acciones globales y no hay diálogos en la pila.

Devoluciones

clone(Library, string)

Devuelve un clon de una biblioteca existente.

function clone(copyTo?: Library, newName?: string)

Parámetros

copyTo
Library

(Opcional) instancia en la que copiar el objeto actual. Si falta una nueva instancia, se creará.

newName

string

(Opcional) si se especifica que se cambiará el nombre de la copia devuelta a un nuevo nombre.

Devoluciones

customAction(IDialogActionOptions)

Registra una acción global personalizada que llamará al controlador de pasado en onSelectAction 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

dialog(string, Dialog | IDialogWaterfallStep[] | IDialogWaterfallStep, boolean)

Registra o devuelve un cuadro de diálogo de la biblioteca.

function dialog(id: string, dialog?: Dialog | IDialogWaterfallStep[] | IDialogWaterfallStep, replace?: boolean)

Parámetros

id

string

Identificador único del cuadro de diálogo que se está resitiando o recuperando.

dialog

Dialog | IDialogWaterfallStep[] | IDialogWaterfallStep

(Opcional) cuadro de diálogo o cascada que se va a registrar.

  • cuadro de diálogo:{Dialog} : cuadro de diálogo que se va a agregar.
  • cuadro de diálogo :{IDialogWaterfallStep[]}: cascada de pasos que se van a ejecutar. Consulte IDialogWaterfallStep para obtener más información.
  • cuadro de diálogo :{IDialogWaterfallStep}: cascada de paso único. Al llamar a un símbolo del sistema integrado o iniciar un nuevo cuadro de diálogo, el diálogo actual finalizará al finalizar el mensaje o el diálogo secundario.
replace

boolean

(Opcional) si es true, el cuadro de diálogo debe reemplazar el diálogo existente si ya está registrado.

Devoluciones

endConversationAction(string, TextOrMessageType, ICancelActionOptions)

Registra una acción global 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.

msg
TextOrMessageType

(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

findActiveDialogRoutes(IRecognizeContext, (err: Error, routes: IRouteResult[]) => void, IDialogState[])

Obtiene la confianza de los diálogos activos que comprende el mensaje actual. El cuadro de diálogo debe ser miembro de la biblioteca actual; de lo contrario, se devolverá una puntuación de 0,0.

function findActiveDialogRoutes(context: IRecognizeContext, callback: (err: Error, routes: IRouteResult[]) => void, dialogStack?: IDialogState[])

Parámetros

context
IRecognizeContext

Contexto del reconocedor de solo lectura para la conversación actual.

callback

(err: Error, routes: IRouteResult[]) => void

Función que se debe invocar con las rutas encontradas.

dialogStack

IDialogState[]

(Opcional) pila de cuadros de diálogo para buscar. El comportamiento predeterminado es buscar en la pila de diálogos actual de sesiones.

findDialog(string, string)

Busca en la biblioteca y en todas sus dependencias un cuadro de diálogo específico. Devuelve el cuadro de diálogo si se encuentra; en caso contrario, null.

function findDialog(libName: string, dialogId: string)

Parámetros

libName

string

Nombre de la biblioteca que contiene el cuadro de diálogo.

dialogId

string

Identificador único del cuadro de diálogo dentro de la biblioteca.

Devoluciones

findGlobalActionRoutes(IRecognizeContext, (err: Error, routes: IRouteResult[]) => void)

Busca en la biblioteca para ver si se ha desencadenado alguna acción global.

function findGlobalActionRoutes(context: IRecognizeContext, callback: (err: Error, routes: IRouteResult[]) => void)

Parámetros

context
IRecognizeContext

Contexto del reconocedor de solo lectura para la conversación actual.

callback

(err: Error, routes: IRouteResult[]) => void

Función que se debe invocar con las rutas encontradas.

findRoutes(IRecognizeContext, (err: Error, routes: IRouteResult[]) => void)

Busca rutas candidatas para controlar el mensaje actual. Para iniciar realmente el control del mensaje, debe llamar a selectRoute() con uno de los resultados devueltos. La lógica de búsqueda predeterminada se puede invalidar mediante onFindRoute() y solo se busca la biblioteca actual, por lo que debe llamar a findRoutes() separador para cada biblioteca dentro de la jerarquía.

function findRoutes(context: IRecognizeContext, callback: (err: Error, routes: IRouteResult[]) => void)

Parámetros

context
IRecognizeContext

Contexto del reconocedor de solo lectura para la conversación actual.

callback

(err: Error, routes: IRouteResult[]) => void

Función que se debe invocar con las rutas encontradas.

findStackActionRoutes(IRecognizeContext, (err: Error, routes: IRouteResult[]) => void, IDialogState[])

Busca en la pila de diálogos de sesiones para ver si se ha desencadenado alguna acción.

function findStackActionRoutes(context: IRecognizeContext, callback: (err: Error, routes: IRouteResult[]) => void, dialogStack?: IDialogState[])

Parámetros

context
IRecognizeContext

Contexto del reconocedor de solo lectura para la conversación actual.

callback

(err: Error, routes: IRouteResult[]) => void

Función que se debe invocar con las rutas encontradas.

dialogStack

IDialogState[]

(Opcional) pila de cuadros de diálogo para buscar. El comportamiento predeterminado es buscar en la pila de diálogos actual de sesiones.

forEachDialog((dialog: Dialog, id: string) => void)

Enumera todos los cuadros de diálogo de bibliotecas.

function forEachDialog(callback: (dialog: Dialog, id: string) => void)

Parámetros

callback

(dialog: Dialog, id: string) => void

Función iterador a la que llamar con cada cuadro de diálogo.

forEachLibrary((library: Library) => void)

Enumera todas las bibliotecas secundarias. El autor de la llamada debe realizar los pasos adecuados para evitar referencias circulares al enumerar la jerarquía. En la mayoría de los casos, llamar a libraryList() es una mejor opción, ya que ya contiene lógica para evitar ciclos.

function forEachLibrary(callback: (library: Library) => void)

Parámetros

callback

(library: Library) => void

Función iterador a la que llamar con cada libray secundaria.

library(Library | string)

Registra o devuelve una dependencia de biblioteca.

function library(lib: Library | string)

Parámetros

lib

Library | string

  • lib:{Library} : biblioteca para registrarse como dependencia.
  • lib:{string}: nombre único de la biblioteca que se va a buscar. También se buscarán todas las dependencias.

Devoluciones

libraryList(boolean)

Devuelve una lista de bibliotecas únicas dentro de la jerarquía. Se debe llamar a en la raíz de la jerarquía de bibliotecas y evitar ciclos creados cuando dos bibliotecas secundarias hacen referencia a la misma biblioteca dependiente.

function libraryList(reverse?: boolean)

Parámetros

reverse

boolean

(Opcional) Si la lista true se generará a partir de las hojas, lo que significa que la biblioteca raíz se mostrará en último lugar. El valor predeterminado es false, lo que significa que se generará a partir de las raíces hacia abajo y la biblioteca raíz se mostrará primero.

Devoluciones

localePath(string)

Obtiene o establece la ruta de acceso a la carpeta "/locale/" de bibliotecas que contiene sus mensajes localizados. Las indicaciones para la biblioteca deben almacenarse en un archivo "/locale/<IETF_TAG>/.json" en esta ruta de acceso donde "<IETF_TAG>" representa el escenario de idioma de 2 a 3 dígitos para la configuración regional y "" es un nombre de archivo que coincide con el espacio de nombres de las bibliotecas.

function localePath(path?: string)

Parámetros

path

string

(Opcional) ruta de acceso a la carpeta "/locale/" de las bibliotecas. Si se especifica, actualizará la ruta de acceso de las bibliotecas.

Devoluciones

string

onFindRoutes(IFindRoutesHandler)

Reemplaza findRoutes() lógica de búsqueda de rutas predeterminada por una implementación personalizada.

function onFindRoutes(handler: IFindRoutesHandler)

Parámetros

handler
IFindRoutesHandler

Función que se invocará cada vez que se llame a findRoutes() para la biblioteca.

onSelectRoute(ISelectRouteHandler)

Reemplaza la lógica predeterminada para selectRoute() por una implementación personalizada.

function onSelectRoute(handler: ISelectRouteHandler)

Parámetros

handler
ISelectRouteHandler

Función que se invocará siempre que se llame a selectRoute().

recognize(IRecognizeContext, (err: Error, result: IIntentRecognizerResult) => void)

Intenta hacer coincidir una expresión de texto de los usuarios con una intención mediante los reconocedores de bibliotecas. Consulte IIntentRecognizer.recognize().

function recognize(context: IRecognizeContext, callback: (err: Error, result: IIntentRecognizerResult) => void)

Parámetros

context
IRecognizeContext

Contexto del reconocedor de solo lectura para la conversación actual.

callback

(err: Error, result: IIntentRecognizerResult) => void

Función que se debe invocar al finalizar el reconocimiento.

recognizer(IIntentRecognizer)

Agrega un nuevo complemento recognizer a la biblioteca.

function recognizer(plugin: IIntentRecognizer)

Parámetros

plugin
IIntentRecognizer

Reconocedor que se va a agregar.

Devoluciones

selectActiveDialogRoute(Session, IRouteResult, IDialogState[])

Enruta el mensaje actual al cuadro de diálogo activo.

function selectActiveDialogRoute(session: Session, route: IRouteResult, newStack?: IDialogState[])

Parámetros

session
Session

Objeto session para la conversación actual.

route
IRouteResult

Resultado de la ruta devuelto de una llamada anterior a findRoutes() o findActiveDialogRoutes().

newStack

IDialogState[]

selectGlobalActionRoute(Session, IRouteResult, IDialogState[])

Enruta el mensaje actual a una acción global desencadenada.

function selectGlobalActionRoute(session: Session, route: IRouteResult, newStack?: IDialogState[])

Parámetros

session
Session

Objeto session para la conversación actual.

route
IRouteResult

Resultado de ruta devuelto de una llamada anterior a findRoutes() o findGlobalActionRoutes().

newStack

IDialogState[]

selectRoute(Session, IRouteResult)

Desencadena el control del mensaje actual mediante la ruta seleccionada. La lógica predeterminada se puede invalidar mediante onSelectRoute().

function selectRoute(session: Session, route: IRouteResult)

Parámetros

session
Session

Objeto session para la conversación actual.

route
IRouteResult

Resultado de ruta devuelto de una llamada anterior a findRoutes().

selectStackActionRoute(Session, IRouteResult, IDialogState[])

Enruta el mensaje actual a una acción de pila desencadenada.

function selectStackActionRoute(session: Session, route: IRouteResult, newStack?: IDialogState[])

Parámetros

session
Session

Objeto session para la conversación actual.

route
IRouteResult

Resultado de ruta devuelto de una llamada anterior a findRoutes() o findStackActionRoutes().

newStack

IDialogState[]