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


Dialog class

Базовый класс для всех диалоговых окон. Диалоги — это основной компонент платформы BotBuilder. Боты используют диалоги для управления произвольными сложными беседами с пользователем.

Extends

Методы

addDialogTrigger(ActionSet, string)

Вызывается один раз для каждого диалогового окна в библиотеке, чтобы предоставить диалогу возможность добавить его triggerAction() в набор глобальных действий библиотек. Эти триггеры сопоставляются с beginDialogAction(), которая запускает диалоговое окно при выполнении условия триггера.

begin<T>(Session, T)

Вызывается при запуске нового сеанса диалога.

beginDialogAction(string, string, IBeginDialogActionOptions)

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

cancelAction(string, TextOrMessageType, ICancelActionOptions)

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

clone(ActionSet)

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

customAction(IDialogActionOptions)

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

dialogInterrupted(Session, string, any)

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

dialogResumed<T>(Session, IDialogResult<T>)

Дочернее диалоговое окно закончилось, и текущий диалог возобновляется.

endConversationAction(string, TextOrMessageType, ICancelActionOptions)

Привязывает действие, которое завершит беседу с пользователем при активации.

findActionRoutes(IRecognizeDialogContext, (err: Error, results: IRouteResult[]) => void)

Вызывается во время вызова Library.findRoutes() для каждого диалогового окна в стеке, чтобы определить, активируются ли какие-либо из действий диалоговых окон пользователями.

recognize(IRecognizeDialogContext, (err: Error, result: IRecognizeResult) => void)

Анализирует речевой фрагмент пользователей и назначает оценку от 0.0 до 1.0, указывая, насколько уверен диалог в том, что он понял высказывание пользователей. Этот метод всегда вызывается для активного диалога в стеке. Оценка 1.0 будет указывать идеальный матч и завершить любое дальнейшее распознавание. Если оценка меньше 1.0, каждое диалоговое окно в стеке будет иметь метод recognizeAction(), который также вызывается, чтобы узнать, есть ли какие-либо именованные действия, привязанные к диалогу, который лучше соответствует высказыванию пользователей. Глобальные действия, зарегистрированные на уровне бота, также будут оцениваться. Если диалоговое окно имеет более высокую оценку, то все связанные действия, диалоги метода ответаReceived() будут вызываться с объектом результата, возвращенным из вызова распознаваемого(). Это позволяет диалогу передавать дополнительные данные, собранные на этапе распознавания, методу replyReceived() для обработки.

Если будет действие с более высокой оценкой, то диалоговое окно будет вызываться вместо метода replyReceived(). Диалоговое окно будет оставаться в стеке и может быть возобновлено в какой-то момент, если действие вызывает новое диалоговое окно, поэтому диалоги должны подготовиться к непредвиденным вызовам для dialogResumed().

reloadAction(string, TextOrMessageType, IBeginDialogActionOptions)

Привязывает действие к диалоговому окну, которое приведет к перезагрузке диалогового окна в любое время его активации. Это полезно для реализации логики, обрабатывающей речевые фрагменты пользователей, такие как "start over".

replyReceived(Session, IRecognizeResult)

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

selectActionRoute(Session, IRouteResult)

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

triggerAction(ITriggerActionOptions)

Привязывает действие к диалоговому окну, которое сделает его активным диалогом в любое время его активации. Поведение по умолчанию заключается в том, чтобы взаимодействовать с любым существующим диалогом, очищая стек и запуская диалоговое окно в корне стека. Прерываемое диалоговое окно может перехватить это прерывание, добавив настраиваемый в обработчик прерванных в параметры действия триггера. Кроме того, можно настроить способ запуска диалогового окна, предоставив настраиваемый обработчик onSelectAction для параметров действия триггера.

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

addDialogTrigger(ActionSet, string)

Вызывается один раз для каждого диалогового окна в библиотеке, чтобы предоставить диалогу возможность добавить его triggerAction() в набор глобальных действий библиотек. Эти триггеры сопоставляются с beginDialogAction(), которая запускает диалоговое окно при выполнении условия триггера.

function addDialogTrigger(actions: ActionSet, dialogId: string)

Параметры

actions
ActionSet

Глобальный набор действий библиотек.

dialogId

string

Полный идентификатор диалогового окна для активации.

begin<T>(Session, T)

Вызывается при запуске нового сеанса диалога.

function begin<T>(session: Session, args?: T)

Параметры

session
Session

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

args

T

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

beginDialogAction(string, string, IBeginDialogActionOptions)

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

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

Параметры

name

string

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

id

string

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

options
IBeginDialogActionOptions

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

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

cancelAction(string, TextOrMessageType, ICancelActionOptions)

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

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

Параметры

name

string

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

msg
TextOrMessageType

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

options
ICancelActionOptions

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

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

clone(ActionSet)

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

function clone(copyTo?: ActionSet)

Параметры

copyTo
ActionSet

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

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

customAction(IDialogActionOptions)

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

function customAction(options: IDialogActionOptions)

Параметры

options
IDialogActionOptions

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

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

dialogInterrupted(Session, string, any)

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

function dialogInterrupted(session: Session, dialogId: string, dialogArgs: any)

Параметры

session
Session

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

dialogId

string

Идентификатор диалогового окна, который должен быть запущен.

dialogArgs

any

Аргументы, которые должны передаваться в новое диалоговое окно.

dialogResumed<T>(Session, IDialogResult<T>)

Дочернее диалоговое окно закончилось, и текущий диалог возобновляется.

function dialogResumed<T>(session: Session, result: IDialogResult<T>)

Параметры

session
Session

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

result

IDialogResult<T>

Результат, возвращаемый дочерним диалогом.

endConversationAction(string, TextOrMessageType, ICancelActionOptions)

Привязывает действие, которое завершит беседу с пользователем при активации.

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

Параметры

name

string

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

msg
TextOrMessageType

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

options
ICancelActionOptions

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

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

findActionRoutes(IRecognizeDialogContext, (err: Error, results: IRouteResult[]) => void)

Вызывается во время вызова Library.findRoutes() для каждого диалогового окна в стеке, чтобы определить, активируются ли какие-либо из действий диалоговых окон пользователями.

function findActionRoutes(context: IRecognizeDialogContext, callback: (err: Error, results: IRouteResult[]) => void)

Параметры

context
IRecognizeDialogContext

Контекст входящего сообщения, а также dialogData для вычисляемого диалога.

callback

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

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

recognize(IRecognizeDialogContext, (err: Error, result: IRecognizeResult) => void)

Анализирует речевой фрагмент пользователей и назначает оценку от 0.0 до 1.0, указывая, насколько уверен диалог в том, что он понял высказывание пользователей. Этот метод всегда вызывается для активного диалога в стеке. Оценка 1.0 будет указывать идеальный матч и завершить любое дальнейшее распознавание. Если оценка меньше 1.0, каждое диалоговое окно в стеке будет иметь метод recognizeAction(), который также вызывается, чтобы узнать, есть ли какие-либо именованные действия, привязанные к диалогу, который лучше соответствует высказыванию пользователей. Глобальные действия, зарегистрированные на уровне бота, также будут оцениваться. Если диалоговое окно имеет более высокую оценку, то все связанные действия, диалоги метода ответаReceived() будут вызываться с объектом результата, возвращенным из вызова распознаваемого(). Это позволяет диалогу передавать дополнительные данные, собранные на этапе распознавания, методу replyReceived() для обработки.

Если будет действие с более высокой оценкой, то диалоговое окно будет вызываться вместо метода replyReceived(). Диалоговое окно будет оставаться в стеке и может быть возобновлено в какой-то момент, если действие вызывает новое диалоговое окно, поэтому диалоги должны подготовиться к непредвиденным вызовам для dialogResumed().

function recognize(context: IRecognizeDialogContext, callback: (err: Error, result: IRecognizeResult) => void)

Параметры

context
IRecognizeDialogContext

Контекст запроса.

callback

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

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

reloadAction(string, TextOrMessageType, IBeginDialogActionOptions)

Привязывает действие к диалоговому окну, которое приведет к перезагрузке диалогового окна в любое время его активации. Это полезно для реализации логики, обрабатывающей речевые фрагменты пользователей, такие как "start over".

function reloadAction(name: string, msg?: TextOrMessageType, options?: IBeginDialogActionOptions)

Параметры

name

string

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

msg
TextOrMessageType

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

options
IBeginDialogActionOptions

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

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

replyReceived(Session, IRecognizeResult)

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

function replyReceived(session: Session, recognizeResult: IRecognizeResult)

Параметры

session
Session

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

recognizeResult
IRecognizeResult

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

selectActionRoute(Session, IRouteResult)

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

function selectActionRoute(session: Session, route: IRouteResult)

Параметры

session
Session

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

route
IRouteResult

Результаты, возвращаемые из вызова findActionRoutes().

triggerAction(ITriggerActionOptions)

Привязывает действие к диалоговому окну, которое сделает его активным диалогом в любое время его активации. Поведение по умолчанию заключается в том, чтобы взаимодействовать с любым существующим диалогом, очищая стек и запуская диалоговое окно в корне стека. Прерываемое диалоговое окно может перехватить это прерывание, добавив настраиваемый в обработчик прерванных в параметры действия триггера. Кроме того, можно настроить способ запуска диалогового окна, предоставив настраиваемый обработчик onSelectAction для параметров действия триггера.

function triggerAction(options: ITriggerActionOptions)

Параметры

options
ITriggerActionOptions

Параметры, используемые для настройки действия.

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