Library class
Uma biblioteca de caixas de diálogo relacionadas usadas para fins de roteamento. As bibliotecas podem ser encadeadas para habilitar o desenvolvimento de bots complexos. A classe UniversalBot é uma biblioteca que forma a raiz dessa cadeia. Bibliotecas de partes reutilizáveis podem ser desenvolvidas criando uma nova instância da Biblioteca e adicionando caixas de diálogo da mesma forma que você faria a um bot. Sua biblioteca deve ter um nome exclusivo que corresponda ao seu site de bibliotecas ou ao nome do módulo NPM. Os bots podem reutilizar sua biblioteca simplesmente adicionando sua instância da Biblioteca de Partes ao bot usando UniversalBot.library(). Se a própria biblioteca depender de outras bibliotecas, você deverá adicioná-las à biblioteca como uma dependência usando Library.library(). Você pode gerenciar facilmente várias versões da biblioteca adicionando um número de versão ao nome da biblioteca.
Para invocar caixas de diálogo em seus bots de biblioteca, será necessário chamar session.beginDialog() com uma ID de diálogo totalmente qualificada na forma de ':'. Normalmente, você ocultará isso do desenvolvedor expondo uma função de seu módulo que inicia a caixa de diálogo para eles.
Então chamar algo como myLib.someDialog(session, { arg: '' }); acabaria chamando session.beginDialog('myLib:someDialog', args); sob as cobertas.
Vale a pena observar que as caixas de diálogo são sempre invocadas dentro da caixa de diálogo atual, portanto, uma vez dentro de uma caixa de diálogo da biblioteca, você não precisa prefixar cada beginDialog() chamar seu nome com suas bibliotecas. É apenas ao cruzar de um contexto de biblioteca para outro que você precisa incluir o prefixo de nome da biblioteca.
Construtores
| Library(string) | Cria uma nova instância da biblioteca. |
Propriedades
| name | O namespace exclusivo das bibliotecas. Isso é usado para criar diálogos de bibliotecas e prompts localizados. |
| Route |
Valores de routeType retornados por padrão de findRoutes(). |
Métodos
| add |
Método auxiliar chamado dos vários métodos de localização de rota para gerenciar a adição de uma rota de candidato ao conjunto de resultados.
|
| begin |
Registra uma ação global que iniciará outra caixa de diálogo sempre que for disparada. A nova caixa de diálogo será enviada por push para a pilha para que ela não encerre automaticamente nenhuma tarefa atual. A tarefa atual será continuada quando a nova caixa de diálogo terminar. Os prompts internos solicitarão automaticamente ao usuário uma vez que isso aconteça, mas esse comportamento pode ser desabilitado definindo o sinalizador promptAfterAction ao chamar um prompt interno. |
| best |
Localiza a melhor rota a ser usada em um conjunto de resultados que contém várias rotas ambíguas. A seguinte estratégia de desambigução será usada:
|
| clone(Library, string) | Retorna um clone de uma Biblioteca existente. |
| custom |
Registra uma ação global personalizada que chamará o manipulador de de |
| dialog(string, Dialog | IDialog |
Registra ou retorna uma caixa de diálogo da biblioteca. |
| end |
Registra uma ação global que encerrará a conversa com o usuário quando disparada. |
| find |
Obtém a confiança dos diálogos ativos de que ele entende a mensagem atual. A caixa de diálogo deve ser um membro da biblioteca atual, caso contrário, uma pontuação de 0,0 será retornada. |
| find |
Pesquisa a biblioteca e todas as suas dependências em busca de uma caixa de diálogo específica. Retorna a caixa de diálogo se encontrada, caso contrário, nula. |
| find |
Pesquisa a biblioteca para ver se alguma ação global foi disparada. |
| find |
Pesquisa rotas candidatas para lidar com a mensagem atual. Para realmente iniciar o tratamento da mensagem, você deve chamar selectRoute() com um dos resultados retornados.
A lógica de pesquisa padrão pode ser substituída usando onFindRoute() e somente a biblioteca atual é pesquisada, portanto, você deve chamar |
| find |
Pesquisa a pilha de diálogos de sessões para ver se alguma ação foi disparada. |
| for |
Enumera todas as caixas de diálogo de bibliotecas. |
| for |
Enumera todas as bibliotecas filho de bibliotecas. O chamador deve tomar as etapas apropriadas para evitar referências circulares ao enumerar a hierarquia. Na maioria dos casos, chamar libraryList() é uma opção melhor, pois já contém lógica para evitar ciclos. |
| library(Library | string) | Registra ou retorna uma dependência de biblioteca. |
| library |
Retorna uma lista de bibliotecas exclusivas dentro da hierarquia. Deve ser chamado na raiz da hierarquia da biblioteca e evita ciclos criados quando duas bibliotecas filho fazem referência à mesma biblioteca dependente. |
| locale |
Obtém ou define o caminho para a pasta "/locale/" das bibliotecas que contém seus prompts localizados. Os prompts da biblioteca devem ser armazenados em um arquivo "/locale/<IETF_TAG>/.json" nesse caminho em que "<IETF_TAG>" representa o tage de idioma de 2 a 3 dígitos para a localidade e "" é um nome de arquivo que corresponde ao namespace de bibliotecas. |
| on |
Substitui findRoutes() lógica de pesquisa de rota padrão por uma implementação personalizada. |
| on |
Substitui a lógica padrão para selectRoute() por uma implementação personalizada. |
| recognize(IRecognize |
Tenta corresponder um enunciado de texto de usuários a uma intenção usando os reconhecedores de bibliotecas. Consulte IIntentRecognizer.recognize() para obter detalhes. |
| recognizer(IIntent |
Adiciona um novo plug-in de reconhecedor à biblioteca. |
| select |
Roteia a mensagem atual para a caixa de diálogo ativa. |
| select |
Roteia a mensagem atual para uma ação global disparada. |
| select |
Dispara o tratamento da mensagem atual usando a rota selecionada. A lógica padrão pode ser substituída usando onSelectRoute(). |
| select |
Roteia a mensagem atual para uma ação de pilha disparada. |
Detalhes do construtor
Library(string)
Cria uma nova instância da biblioteca.
new Library(name: string)
Parâmetros
- name
-
string
Namespace exclusivo para a biblioteca.
Detalhes da propriedade
name
O namespace exclusivo das bibliotecas. Isso é usado para criar diálogos de bibliotecas e prompts localizados.
name: string
Valor da propriedade
string
RouteTypes
Valores de routeType retornados por padrão de findRoutes().
static RouteTypes: Object
Valor da propriedade
Object
Detalhes do método
addRouteResult(IRouteResult, IRouteResult[])
Método auxiliar chamado dos vários métodos de localização de rota para gerenciar a adição de uma rota de candidato ao conjunto de resultados.
- Se a pontuação for maior, a melhor correspondência atual no conjunto um novo conjunto de resultados será retornada contendo apenas a nova correspondência.
- Se a pontuação for igual à melhor correspondência atual, ela será adicionada ao conjunto existente.
- Se a pontuação for menor do que a melhor correspondência atual, ela será ignorada.
static function addRouteResult(route: IRouteResult, current?: IRouteResult[])
Parâmetros
- route
- IRouteResult
A rota do candidato a ser adicionada ao conjunto.
- current
(Opcional) conjunto de resultados para adicionar a rota também. Se estiver ausente, um novo conjunto com apenas a rota será retornado.
Retornos
beginDialogAction(string, string, IDialogActionOptions)
Registra uma ação global que iniciará outra caixa de diálogo sempre que for disparada. A nova caixa de diálogo será enviada por push para a pilha para que ela não encerre automaticamente nenhuma tarefa atual. A tarefa atual será continuada quando a nova caixa de diálogo terminar. Os prompts internos solicitarão automaticamente ao usuário uma vez que isso aconteça, mas esse comportamento pode ser desabilitado definindo o sinalizador promptAfterAction ao chamar um prompt interno.
function beginDialogAction(name: string, id: string, options?: IDialogActionOptions)
Parâmetros
- name
-
string
Nome exclusivo para atribuir a ação.
- id
-
string
ID da caixa de diálogo a ser iniciada.
- options
- IDialogActionOptions
Opções (opcionais) usadas para configurar a ação. Se corresponder for especificado, a ação ouvirá o usuário dizer uma palavra ou frase que dispara a ação, caso contrário, a ação precisará ser associada a um botão usando CardAction.dialogAction() para disparar a ação. Você também pode usar dialogArgs para passar params adicionais para a caixa de diálogo que está sendo iniciada.
Retornos
bestRouteResult(IRouteResult[], IDialogState[], string)
Localiza a melhor rota a ser usada em um conjunto de resultados que contém várias rotas ambíguas. A seguinte estratégia de desambigução será usada:
- : os tipos de rota personalizados são a prioridade mais alta e serão preferenciais. Isso permite que o desenvolvedor substitua o roteamento dentro de um bot de maneira muito poderosa.
- ActiveDialog: a caixa de diálogo ativa é a próxima prioridade mais alta.
- StackAction: as ações de pilha são a próxima prioridade mais alta e a ação com a posição de pilha mais profunda será retornada.
-
GlobalAction: as ações globais são a prioridade mais baixa. Se um
dialogStackfor passado nas ações da biblioteca mais profunda na pilha será favorecido. Caso contrário, o primeiro será retornado.
static function bestRouteResult(routes: IRouteResult[], dialogStack?: IDialogState[], rootLibraryName?: string)
Parâmetros
- routes
Matriz de rotas candidatas para filtrar.
- dialogStack
Pilha de diálogo (opcional) usada para determinar quais bibliotecas ações globais serão favorecidas.
- rootLibraryName
-
string
(Opcional) namespace de biblioteca para preferir ao desambiguar ações globais e não há caixas de diálogo na pilha.
Retornos
clone(Library, string)
Retorna um clone de uma Biblioteca existente.
function clone(copyTo?: Library, newName?: string)
Parâmetros
- copyTo
- Library
(Opcional) instância para a qual copiar o objeto atual. Se uma nova instância estiver ausente, será criada.
- newName
-
string
(Opcional) se especificado, a cópia retornada será renomeada para um novo nome.
Retornos
customAction(IDialogActionOptions)
Registra uma ação global personalizada que chamará o manipulador de de
function customAction(options: IDialogActionOptions)
Parâmetros
- options
- IDialogActionOptions
As opções usadas para configurar a ação. Se corresponder for especificado, a ação escutará o usuário para dizer uma palavra ou frase que dispara a ação. A lógica de correspondência personalizada pode ser fornecida usando onFindAction.
Retornos
dialog(string, Dialog | IDialogWaterfallStep[] | IDialogWaterfallStep, boolean)
Registra ou retorna uma caixa de diálogo da biblioteca.
function dialog(id: string, dialog?: Dialog | IDialogWaterfallStep[] | IDialogWaterfallStep, replace?: boolean)
Parâmetros
- id
-
string
ID exclusiva da caixa de diálogo que está sendo reterida ou recuperada.
- dialog
(Opcional) caixa de diálogo ou cascata a ser registrada.
- caixa de diálogo :{Dialog} – Caixa de diálogo a ser adicionada.
- caixa de diálogo:{IDialogWaterfallStep[]} – Cascata de etapas a serem executadas. Consulte IDialogWaterfallStep para obter detalhes.
- caixa de diálogo :{IDialogWaterfallStep} – cascata de etapa única. Chamar um prompt interno ou iniciar uma nova caixa de diálogo resultará no término da caixa de diálogo atual após a conclusão do prompt/diálogo filho.
- replace
-
boolean
(Opcional) se verdadeiro, a caixa de diálogo deverá substituir a caixa de diálogo existente se já estiver registrada.
Retornos
endConversationAction(string, TextOrMessageType, ICancelActionOptions)
Registra uma ação global que encerrará a conversa com o usuário quando disparada.
function endConversationAction(name: string, msg?: TextOrMessageType, options?: ICancelActionOptions)
Parâmetros
- name
-
string
Nome exclusivo para atribuir a ação.
(Opcional) mensagem para enviar o usuário antes de encerrar a conversa.
- options
- ICancelActionOptions
Opções (opcionais) usadas para configurar a ação. Se corresponder for especificado, a ação ouvirá o usuário dizer uma palavra ou frase que dispara a ação, caso contrário, a ação precisará ser associada a um botão usando CardAction.dialogAction() para disparar a ação.
Retornos
findActiveDialogRoutes(IRecognizeContext, (err: Error, routes: IRouteResult[]) => void, IDialogState[])
Obtém a confiança dos diálogos ativos de que ele entende a mensagem atual. A caixa de diálogo deve ser um membro da biblioteca atual, caso contrário, uma pontuação de 0,0 será retornada.
function findActiveDialogRoutes(context: IRecognizeContext, callback: (err: Error, routes: IRouteResult[]) => void, dialogStack?: IDialogState[])
Parâmetros
- context
- IRecognizeContext
Contexto do reconhecedor somente leitura para a conversa atual.
- callback
-
(err: Error, routes: IRouteResult[]) => void
Função que deve ser invocada com as rotas encontradas.
- dialogStack
(Opcional) pilha de diálogo para pesquisar. O comportamento padrão é pesquisar sobre a pilha de diálogo atual das sessões.
findDialog(string, string)
Pesquisa a biblioteca e todas as suas dependências em busca de uma caixa de diálogo específica. Retorna a caixa de diálogo se encontrada, caso contrário, nula.
function findDialog(libName: string, dialogId: string)
Parâmetros
- libName
-
string
Nome da biblioteca que contém a caixa de diálogo.
- dialogId
-
string
ID exclusiva da caixa de diálogo dentro da biblioteca.
Retornos
findGlobalActionRoutes(IRecognizeContext, (err: Error, routes: IRouteResult[]) => void)
Pesquisa a biblioteca para ver se alguma ação global foi disparada.
function findGlobalActionRoutes(context: IRecognizeContext, callback: (err: Error, routes: IRouteResult[]) => void)
Parâmetros
- context
- IRecognizeContext
Contexto do reconhecedor somente leitura para a conversa atual.
- callback
-
(err: Error, routes: IRouteResult[]) => void
Função que deve ser invocada com as rotas encontradas.
findRoutes(IRecognizeContext, (err: Error, routes: IRouteResult[]) => void)
Pesquisa rotas candidatas para lidar com a mensagem atual. Para realmente iniciar o tratamento da mensagem, você deve chamar selectRoute() com um dos resultados retornados.
A lógica de pesquisa padrão pode ser substituída usando onFindRoute() e somente a biblioteca atual é pesquisada, portanto, você deve chamar findRoutes() seperately para cada biblioteca dentro da hierarquia.
function findRoutes(context: IRecognizeContext, callback: (err: Error, routes: IRouteResult[]) => void)
Parâmetros
- context
- IRecognizeContext
Contexto do reconhecedor somente leitura para a conversa atual.
- callback
-
(err: Error, routes: IRouteResult[]) => void
Função que deve ser invocada com as rotas encontradas.
findStackActionRoutes(IRecognizeContext, (err: Error, routes: IRouteResult[]) => void, IDialogState[])
Pesquisa a pilha de diálogos de sessões para ver se alguma ação foi disparada.
function findStackActionRoutes(context: IRecognizeContext, callback: (err: Error, routes: IRouteResult[]) => void, dialogStack?: IDialogState[])
Parâmetros
- context
- IRecognizeContext
Contexto do reconhecedor somente leitura para a conversa atual.
- callback
-
(err: Error, routes: IRouteResult[]) => void
Função que deve ser invocada com as rotas encontradas.
- dialogStack
(Opcional) pilha de diálogo para pesquisar. O comportamento padrão é pesquisar sobre a pilha de diálogo atual das sessões.
forEachDialog((dialog: Dialog, id: string) => void)
Enumera todas as caixas de diálogo de bibliotecas.
function forEachDialog(callback: (dialog: Dialog, id: string) => void)
Parâmetros
- callback
-
(dialog: Dialog, id: string) => void
Função iterador para chamar com cada caixa de diálogo.
forEachLibrary((library: Library) => void)
Enumera todas as bibliotecas filho de bibliotecas. O chamador deve tomar as etapas apropriadas para evitar referências circulares ao enumerar a hierarquia. Na maioria dos casos, chamar libraryList() é uma opção melhor, pois já contém lógica para evitar ciclos.
function forEachLibrary(callback: (library: Library) => void)
Parâmetros
- callback
-
(library: Library) => void
Função iterador para chamar com cada libra filho.
library(Library | string)
Registra ou retorna uma dependência de biblioteca.
function library(lib: Library | string)
Parâmetros
- lib
-
Library | string
- lib:{Library} – Biblioteca para se registrar como uma dependência.
- lib:{string} – nome exclusivo da biblioteca a ser pesquisada. Todas as dependências também serão pesquisadas.
Retornos
libraryList(boolean)
Retorna uma lista de bibliotecas exclusivas dentro da hierarquia. Deve ser chamado na raiz da hierarquia da biblioteca e evita ciclos criados quando duas bibliotecas filho fazem referência à mesma biblioteca dependente.
function libraryList(reverse?: boolean)
Parâmetros
- reverse
-
boolean
(Opcional) Se a lista verdadeira for gerada a partir das folhas para cima, o que significa que a biblioteca raiz será listada pela última vez. O valor padrão é falso, o que significa que ele será gerado a partir das raízes para baixo e a biblioteca raiz será listada primeiro.
Retornos
Library[]
localePath(string)
Obtém ou define o caminho para a pasta "/locale/" das bibliotecas que contém seus prompts localizados. Os prompts da biblioteca devem ser armazenados em um arquivo "/locale/<IETF_TAG>/.json" nesse caminho em que "<IETF_TAG>" representa o tage de idioma de 2 a 3 dígitos para a localidade e "" é um nome de arquivo que corresponde ao namespace de bibliotecas.
function localePath(path?: string)
Parâmetros
- path
-
string
(Opcional) caminho para a pasta "/locale/" das bibliotecas. Se especificado, isso atualizará o caminho das bibliotecas.
Retornos
string
onFindRoutes(IFindRoutesHandler)
Substitui findRoutes() lógica de pesquisa de rota padrão por uma implementação personalizada.
function onFindRoutes(handler: IFindRoutesHandler)
Parâmetros
- handler
- IFindRoutesHandler
Função que será invocada a qualquer momento findRoutes() for chamada para a biblioteca.
onSelectRoute(ISelectRouteHandler)
Substitui a lógica padrão para selectRoute() por uma implementação personalizada.
function onSelectRoute(handler: ISelectRouteHandler)
Parâmetros
- handler
- ISelectRouteHandler
Função que será invocada a qualquer momento selectRoute() for chamada.
recognize(IRecognizeContext, (err: Error, result: IIntentRecognizerResult) => void)
Tenta corresponder um enunciado de texto de usuários a uma intenção usando os reconhecedores de bibliotecas. Consulte IIntentRecognizer.recognize() para obter detalhes.
function recognize(context: IRecognizeContext, callback: (err: Error, result: IIntentRecognizerResult) => void)
Parâmetros
- context
- IRecognizeContext
Contexto do reconhecedor somente leitura para a conversa atual.
- callback
-
(err: Error, result: IIntentRecognizerResult) => void
Função que deve ser invocada após a conclusão do reconhecimento.
recognizer(IIntentRecognizer)
Adiciona um novo plug-in de reconhecedor à biblioteca.
function recognizer(plugin: IIntentRecognizer)
Parâmetros
- plugin
- IIntentRecognizer
O reconhecedor a ser adicionado.
Retornos
selectActiveDialogRoute(Session, IRouteResult, IDialogState[])
Roteia a mensagem atual para a caixa de diálogo ativa.
function selectActiveDialogRoute(session: Session, route: IRouteResult, newStack?: IDialogState[])
Parâmetros
- session
- Session
Objeto de sessão para a conversa atual.
- route
- IRouteResult
Resultado da rota retornado de uma chamada anterior para findRoutes() ou findActiveDialogRoutes().
- newStack
selectGlobalActionRoute(Session, IRouteResult, IDialogState[])
Roteia a mensagem atual para uma ação global disparada.
function selectGlobalActionRoute(session: Session, route: IRouteResult, newStack?: IDialogState[])
Parâmetros
- session
- Session
Objeto de sessão para a conversa atual.
- route
- IRouteResult
Resultado da rota retornado de uma chamada anterior para findRoutes() ou findGlobalActionRoutes().
- newStack
selectRoute(Session, IRouteResult)
Dispara o tratamento da mensagem atual usando a rota selecionada. A lógica padrão pode ser substituída usando onSelectRoute().
function selectRoute(session: Session, route: IRouteResult)
Parâmetros
- session
- Session
Objeto de sessão para a conversa atual.
- route
- IRouteResult
Resultado da rota retornado de uma chamada anterior para findRoutes().
selectStackActionRoute(Session, IRouteResult, IDialogState[])
Roteia a mensagem atual para uma ação de pilha disparada.
function selectStackActionRoute(session: Session, route: IRouteResult, newStack?: IDialogState[])
Parâmetros
- session
- Session
Objeto de sessão para a conversa atual.
- route
- IRouteResult
Resultado da rota retornado de uma chamada anterior para findRoutes() ou findStackActionRoutes().
- newStack