Поделиться через


Library class

Библиотека связанных диалогов, используемых для маршрутизации. Библиотеки можно объединить в цепочку, чтобы обеспечить разработку сложных ботов. Класс UniversalBot UniversalBot — это библиотека, которая формирует корень этой цепочки. Библиотеки повторно используемых частей можно разработать, создав новый экземпляр библиотеки и добавив диалоговые окна так же, как и в бот. У вашей библиотеки должно быть уникальное имя, соответствующее имени веб-сайта библиотек или модуля NPM. Затем боты могут повторно использовать библиотеку, просто добавив экземпляр библиотеки частей в бот с помощью UniversalBot.library(). Если сама библиотека зависит от других библиотек, их следует добавить в библиотеку в качестве зависимости с помощью Library.library(). Вы можете легко управлять несколькими версиями библиотеки, добавив номер версии в имя библиотеки.

Чтобы вызвать диалоги в ботах библиотеки, потребуется вызвать session.beginDialog() с полным идентификатором диалогового окна в виде ":". Обычно вы скрываете это от разработчика, предоставляя функцию из своего модуля, которая запускает диалоговое окно для них. Таким образом, вызов что-то подобное myLib.someDialog(session, { arg: '' }); в конечном итоге вызовет session.beginDialog('myLib:someDialog', args); под крышкой.

Следует отметить, что диалоги всегда вызываются в текущем диалоговом окне, поэтому после того как вы находитесь в диалоговом окне из библиотеки, вам не нужно префиксировать каждый beginDialog() вызывать имя библиотек. Это только при переходе из одного контекста библиотеки в другой, который необходимо включить префикс имени библиотеки.

Конструкторы

Library(string)

Создает новый экземпляр библиотеки.

Свойства

name

Библиотеки уникальные пространства имен. Используется для устранения ошибки диалоговых окон библиотек и локализованных запросов.

RouteTypes

Поддерживаемые значения routeType, возвращаемые по умолчанию из findRoutes().

Методы

addRouteResult(IRouteResult, IRouteResult[])

Вспомогательный метод, вызывающийся из различных методов поиска маршрутов для управления добавлением кандидата маршрута в результирующий набор.

  • Если оценка больше, то текущий лучший матч в наборе нового результирующий набор будет возвращен, содержащий только новое совпадение.
  • Если оценка равна текущему лучшему совпадению, он будет добавлен в существующий набор.
  • Если оценка меньше текущего лучшего совпадения, она будет игнорироваться.
beginDialogAction(string, string, IDialogActionOptions)

Регистрирует глобальное действие, которое запустит другое диалоговое окно в любое время его активации. Новое диалоговое окно будет отправлено в стек, поэтому оно не завершает текущую задачу автоматически. Текущая задача будет продолжена после завершения нового диалога. Встроенные запросы автоматически повторно запрашивают пользователя после этого, но это поведение можно отключить, задав флаг promptAfterAction при вызове встроенного запроса.

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

Находит лучший маршрут для использования в результирующем наборе, содержающем несколько неоднозначных маршрутов. Будет использоваться следующая стратегия дизамбигации:

  1. : пользовательские типы маршрутов являются самым высоким приоритетом и предпочтительнее использовать типы пользовательских маршрутов. Это позволяет разработчику переопределить маршрутизацию в боте очень эффективно.
  2. ActiveDialog: активное диалоговое окно является следующим самым высоким приоритетом.
  3. StackAction: действия стека являются следующим приоритетом, а действие с самой глубокой позицией стека будет возвращено.
  4. GlobalAction: глобальные действия являются самым низким приоритетом. Если dialogStack прошло в действиях из библиотеки, наиболее глубокой в стеке, будет поддержку. В противном случае будет возвращен первый.
clone(Library, string)

Возвращает клон существующей библиотеки.

customAction(IDialogActionOptions)

Регистрирует пользовательское глобальное действие, которое вызовет переданный в обработчик onSelectAction при активации.

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

Регистрирует или возвращает диалоговое окно из библиотеки.

endConversationAction(string, TextOrMessageType, ICancelActionOptions)

Регистрирует глобальное действие, которое завершит беседу с пользователем при активации.

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

Возвращает активные диалоговые окна, которые он понимает текущее сообщение. Диалоговое окно должно быть членом текущей библиотеки, в противном случае возвращается оценка 0,0.

findDialog(string, string)

Выполняет поиск библиотеки и всех зависимостей для определенного диалога. Возвращает диалоговое окно, если найдено, в противном случае — значение NULL.

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

Выполняет поиск в библиотеке, чтобы узнать, активируются ли глобальные действия.

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

Ищет маршруты кандидатов для обработки текущего сообщения. Чтобы фактически инициировать обработку сообщения, необходимо вызвать selectRoute() с одним из возвращаемых результатов. Логику поиска по умолчанию можно переопределить с помощью onFindRoute(), и выполняется поиск только текущей библиотеки, поэтому следует вызывать findRoutes() отдельно для каждой библиотеки в иерархии.

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

Выполняет поиск стека диалоговых окон сеансов, чтобы узнать, были ли активированы какие-либо действия.

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

Перечисляет все диалоговые окна библиотек.

forEachLibrary((library: Library) => void)

Перечисляет все дочерние библиотеки. Вызывающий объект должен выполнить соответствующие действия, чтобы избежать циклических ссылок при перечислении иерархии. В большинстве случаев вызов libraryList() — это лучший вариант, так как он уже содержит логику, чтобы избежать циклов.

library(Library | string)

Регистрирует или возвращает зависимость библиотеки.

libraryList(boolean)

Возвращает список уникальных библиотек в иерархии. Следует вызывать корень иерархии библиотеки и избегать циклов, созданных, когда две дочерние библиотеки ссылались на одну и ту же зависимые библиотеки.

localePath(string)

Возвращает или задает путь к папке библиотек "/locale/", содержащей локализованные запросы. Запросы к библиотеке должны храниться в файле "/locale/<IETF_TAG>/.json" в этом пути, где "<IETF_TAG>" представляет 2-3 цифрную метку языка для языкового стандарта и "" — это имя файла, соответствующее пространству имен библиотек.

onFindRoutes(IFindRoutesHandler)

Заменяет findRoutes() логику поиска маршрутов по умолчанию пользовательской реализацией.

onSelectRoute(ISelectRouteHandler)

Заменяет логику по умолчанию для selectRoute() пользовательской реализацией.

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

Пытается сопоставить речевые фрагменты текста пользователей с намерением с помощью распознавателей библиотек. Дополнительные сведения см. в IIntentRecognizer.recognize().

recognizer(IIntentRecognizer)

Добавляет в библиотеку новый подключаемый модуль распознавателя.

selectActiveDialogRoute(Session, IRouteResult, IDialogState[])

Перенаправляет текущее сообщение в активное диалоговое окно.

selectGlobalActionRoute(Session, IRouteResult, IDialogState[])

Перенаправляет текущее сообщение в активированное глобальное действие.

selectRoute(Session, IRouteResult)

Активирует обработку текущего сообщения с помощью выбранного маршрута. Логику по умолчанию можно переопределить с помощью onSelectRoute().

selectStackActionRoute(Session, IRouteResult, IDialogState[])

Перенаправляет текущее сообщение в активированное действие стека.

Сведения о конструкторе

Library(string)

Создает новый экземпляр библиотеки.

new Library(name: string)

Параметры

name

string

Уникальное пространство имен библиотеки.

Сведения о свойстве

name

Библиотеки уникальные пространства имен. Используется для устранения ошибки диалоговых окон библиотек и локализованных запросов.

name: string

Значение свойства

string

RouteTypes

Поддерживаемые значения routeType, возвращаемые по умолчанию из findRoutes().

static RouteTypes: Object

Значение свойства

Object

Сведения о методе

addRouteResult(IRouteResult, IRouteResult[])

Вспомогательный метод, вызывающийся из различных методов поиска маршрутов для управления добавлением кандидата маршрута в результирующий набор.

  • Если оценка больше, то текущий лучший матч в наборе нового результирующий набор будет возвращен, содержащий только новое совпадение.
  • Если оценка равна текущему лучшему совпадению, он будет добавлен в существующий набор.
  • Если оценка меньше текущего лучшего совпадения, она будет игнорироваться.
static function addRouteResult(route: IRouteResult, current?: IRouteResult[])

Параметры

route
IRouteResult

Маршрут кандидата для добавления в набор.

current

IRouteResult[]

Результирующий набор (необязательно) для добавления маршрута. Если отсутствует, будет возвращен новый набор с только маршрутом.

Возвращаемое значение

beginDialogAction(string, string, IDialogActionOptions)

Регистрирует глобальное действие, которое запустит другое диалоговое окно в любое время его активации. Новое диалоговое окно будет отправлено в стек, поэтому оно не завершает текущую задачу автоматически. Текущая задача будет продолжена после завершения нового диалога. Встроенные запросы автоматически повторно запрашивают пользователя после этого, но это поведение можно отключить, задав флаг promptAfterAction при вызове встроенного запроса.

function beginDialogAction(name: string, id: string, options?: IDialogActionOptions)

Параметры

name

string

Уникальное имя для назначения действия.

id

string

Идентификатор запускаемого диалогового окна.

options
IDialogActionOptions

(Необязательно) параметры, используемые для настройки действия. Если совпадает с указано, что действие будет прослушивать слово или фразу, которая активирует действие, в противном случае действие должно быть привязано к кнопке с помощью CardAction.dialogAction() для активации действия. Вы также можете использовать dialogArgs для передачи дополнительных парам в запущенное диалоговое окно.

Возвращаемое значение

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

Находит лучший маршрут для использования в результирующем наборе, содержающем несколько неоднозначных маршрутов. Будет использоваться следующая стратегия дизамбигации:

  1. : пользовательские типы маршрутов являются самым высоким приоритетом и предпочтительнее использовать типы пользовательских маршрутов. Это позволяет разработчику переопределить маршрутизацию в боте очень эффективно.
  2. ActiveDialog: активное диалоговое окно является следующим самым высоким приоритетом.
  3. StackAction: действия стека являются следующим приоритетом, а действие с самой глубокой позицией стека будет возвращено.
  4. GlobalAction: глобальные действия являются самым низким приоритетом. Если dialogStack прошло в действиях из библиотеки, наиболее глубокой в стеке, будет поддержку. В противном случае будет возвращен первый.
static function bestRouteResult(routes: IRouteResult[], dialogStack?: IDialogState[], rootLibraryName?: string)

Параметры

routes

IRouteResult[]

Массив маршрутов кандидатов для фильтрации.

dialogStack

IDialogState[]

(Необязательно) стек диалоговых окон, используемый для определения того, какие библиотеки следует использовать глобальные действия.

rootLibraryName

string

(Необязательно) пространство имен библиотеки, чтобы предпочесть при диамбигации глобальных действий и нет диалогов в стеке.

Возвращаемое значение

clone(Library, string)

Возвращает клон существующей библиотеки.

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

Параметры

copyTo
Library

Экземпляр (необязательно) для копирования текущего объекта в. Если отсутствует новый экземпляр, будет создан.

newName

string

(Необязательно), если указана возвращенная копия будет переименована в новое имя.

Возвращаемое значение

customAction(IDialogActionOptions)

Регистрирует пользовательское глобальное действие, которое вызовет переданный в обработчик onSelectAction при активации.

function customAction(options: IDialogActionOptions)

Параметры

options
IDialogActionOptions

Параметры, используемые для настройки действия. Если совпадает с указано, что действие будет слушать, чтобы пользователь говорил слово или фразу, которая активирует действие. Пользовательская логика сопоставления может быть предоставлена с помощью onFindAction.

Возвращаемое значение

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

Регистрирует или возвращает диалоговое окно из библиотеки.

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

Параметры

id

string

Уникальный идентификатор диалогового окна, который обновляется или извлекается.

dialog

Dialog | IDialogWaterfallStep[] | IDialogWaterfallStep

(Необязательно) диалоговое окно или каскад для регистрации.

  • диалоговое окно :{Dialog} — диалоговое окно для добавления.
  • диалоговое окно :{IDialogWaterfallStep[]} — каскад шагов для выполнения. Дополнительные сведения см. в IDialogWaterfallStep.
  • диалоговое окно :{IDialogWaterfallStep} — каскад одного шага. Вызов встроенного запроса или запуск нового диалогового окна приведет к тому, что текущее диалоговое окно заканчивается после завершения дочернего запроса или диалогового окна.
replace

boolean

(Необязательно) если значение true, диалоговое окно должно заменить существующее диалоговое окно, если оно уже зарегистрировано.

Возвращаемое значение

endConversationAction(string, TextOrMessageType, ICancelActionOptions)

Регистрирует глобальное действие, которое завершит беседу с пользователем при активации.

function endConversationAction(name: string, msg?: TextOrMessageType, options?: ICancelActionOptions)

Параметры

name

string

Уникальное имя для назначения действия.

msg
TextOrMessageType

(Необязательно) сообщение для отправки пользователя до завершения беседы.

options
ICancelActionOptions

(Необязательно) параметры, используемые для настройки действия. Если совпадает с указано, что действие будет прослушивать слово или фразу, которая активирует действие, в противном случае действие должно быть привязано к кнопке с помощью CardAction.dialogAction() для активации действия.

Возвращаемое значение

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

Возвращает активные диалоговые окна, которые он понимает текущее сообщение. Диалоговое окно должно быть членом текущей библиотеки, в противном случае возвращается оценка 0,0.

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

Параметры

context
IRecognizeContext

Контекст распознавателя только для чтения для текущей беседы.

callback

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

Функция, которая должна вызываться с найденными маршрутами.

dialogStack

IDialogState[]

(Необязательно) стек диалоговых окон для поиска. Поведение по умолчанию — поиск по текущему стеку диалоговых окон сеансов.

findDialog(string, string)

Выполняет поиск библиотеки и всех зависимостей для определенного диалога. Возвращает диалоговое окно, если найдено, в противном случае — значение NULL.

function findDialog(libName: string, dialogId: string)

Параметры

libName

string

Имя библиотеки, содержащей диалоговое окно.

dialogId

string

Уникальный идентификатор диалогового окна в библиотеке.

Возвращаемое значение

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

Выполняет поиск в библиотеке, чтобы узнать, активируются ли глобальные действия.

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

Параметры

context
IRecognizeContext

Контекст распознавателя только для чтения для текущей беседы.

callback

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

Функция, которая должна вызываться с найденными маршрутами.

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

Ищет маршруты кандидатов для обработки текущего сообщения. Чтобы фактически инициировать обработку сообщения, необходимо вызвать selectRoute() с одним из возвращаемых результатов. Логику поиска по умолчанию можно переопределить с помощью onFindRoute(), и выполняется поиск только текущей библиотеки, поэтому следует вызывать findRoutes() отдельно для каждой библиотеки в иерархии.

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

Параметры

context
IRecognizeContext

Контекст распознавателя только для чтения для текущей беседы.

callback

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

Функция, которая должна вызываться с найденными маршрутами.

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

Выполняет поиск стека диалоговых окон сеансов, чтобы узнать, были ли активированы какие-либо действия.

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

Параметры

context
IRecognizeContext

Контекст распознавателя только для чтения для текущей беседы.

callback

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

Функция, которая должна вызываться с найденными маршрутами.

dialogStack

IDialogState[]

(Необязательно) стек диалоговых окон для поиска. Поведение по умолчанию — поиск по текущему стеку диалоговых окон сеансов.

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

Перечисляет все диалоговые окна библиотек.

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

Параметры

callback

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

Функция итератора для вызова с каждым диалогом.

forEachLibrary((library: Library) => void)

Перечисляет все дочерние библиотеки. Вызывающий объект должен выполнить соответствующие действия, чтобы избежать циклических ссылок при перечислении иерархии. В большинстве случаев вызов libraryList() — это лучший вариант, так как он уже содержит логику, чтобы избежать циклов.

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

Параметры

callback

(library: Library) => void

Функция итератора для вызова с каждым дочерним либраем.

library(Library | string)

Регистрирует или возвращает зависимость библиотеки.

function library(lib: Library | string)

Параметры

lib

Library | string

  • lib:{Library} — библиотека для регистрации в качестве зависимости.
  • lib:{string} — уникальное имя библиотеки для поиска. Все зависимости также будут искать.

Возвращаемое значение

libraryList(boolean)

Возвращает список уникальных библиотек в иерархии. Следует вызывать корень иерархии библиотеки и избегать циклов, созданных, когда две дочерние библиотеки ссылались на одну и ту же зависимые библиотеки.

function libraryList(reverse?: boolean)

Параметры

reverse

boolean

(Необязательно) Если будет создан истинный список из листьев, то корневая библиотека будет указана последняя. Значение по умолчанию равно false, что означает, что он будет создан из корней вниз, а корневая библиотека будет указана в первую очередь.

Возвращаемое значение

localePath(string)

Возвращает или задает путь к папке библиотек "/locale/", содержащей локализованные запросы. Запросы к библиотеке должны храниться в файле "/locale/<IETF_TAG>/.json" в этом пути, где "<IETF_TAG>" представляет 2-3 цифрную метку языка для языкового стандарта и "" — это имя файла, соответствующее пространству имен библиотек.

function localePath(path?: string)

Параметры

path

string

(Необязательно) путь к папке библиотек "/locale/". Если этот параметр указан, он обновит путь библиотек.

Возвращаемое значение

string

onFindRoutes(IFindRoutesHandler)

Заменяет findRoutes() логику поиска маршрутов по умолчанию пользовательской реализацией.

function onFindRoutes(handler: IFindRoutesHandler)

Параметры

handler
IFindRoutesHandler

Функция, которая будет вызываться в любое время, findRoutes() вызывается для библиотеки.

onSelectRoute(ISelectRouteHandler)

Заменяет логику по умолчанию для selectRoute() пользовательской реализацией.

function onSelectRoute(handler: ISelectRouteHandler)

Параметры

handler
ISelectRouteHandler

Функция, которая будет вызываться в любое время, selectRoute() вызывается.

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

Пытается сопоставить речевые фрагменты текста пользователей с намерением с помощью распознавателей библиотек. Дополнительные сведения см. в IIntentRecognizer.recognize().

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

Параметры

context
IRecognizeContext

Контекст распознавателя только для чтения для текущей беседы.

callback

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

Функция, которая должна вызываться после завершения распознавания.

recognizer(IIntentRecognizer)

Добавляет в библиотеку новый подключаемый модуль распознавателя.

function recognizer(plugin: IIntentRecognizer)

Параметры

plugin
IIntentRecognizer

Добавляемый распознаватель.

Возвращаемое значение

selectActiveDialogRoute(Session, IRouteResult, IDialogState[])

Перенаправляет текущее сообщение в активное диалоговое окно.

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

Параметры

session
Session

Объект сеанса для текущей беседы.

route
IRouteResult

Результат маршрута, возвращаемый из предыдущего вызова findRoutes() или findActiveDialogRoutes().

newStack

IDialogState[]

selectGlobalActionRoute(Session, IRouteResult, IDialogState[])

Перенаправляет текущее сообщение в активированное глобальное действие.

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

Параметры

session
Session

Объект сеанса для текущей беседы.

route
IRouteResult

Результат маршрута, возвращенный из предыдущего вызова findRoutes() или findGlobalActionRoutes().

newStack

IDialogState[]

selectRoute(Session, IRouteResult)

Активирует обработку текущего сообщения с помощью выбранного маршрута. Логику по умолчанию можно переопределить с помощью onSelectRoute().

function selectRoute(session: Session, route: IRouteResult)

Параметры

session
Session

Объект сеанса для текущей беседы.

route
IRouteResult

Результат маршрута, возвращенный из предыдущего вызова findRoutes().

selectStackActionRoute(Session, IRouteResult, IDialogState[])

Перенаправляет текущее сообщение в активированное действие стека.

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

Параметры

session
Session

Объект сеанса для текущей беседы.

route
IRouteResult

Результат маршрута, возвращаемый из предыдущего вызова findRoutes() или findStackActionRoutes().

newStack

IDialogState[]