DialogSet class
Связанный набор диалогов, который может вызывать друг друга.
Комментарии
Конструктор для набора диалогов должен передаваться свойство состояния, которое будет использоваться для сохранения стека диалогов для набора:
const { ConversationState, MemoryStorage, ActivityTypes } = require('botbuilder');
const { DialogSet, Dialog, DialogTurnStatus } = require('botbuilder-dialogs');
const convoState = new ConversationState(new MemoryStorage());
const dialogState = convoState.createProperty('dialogState');
const dialogs = new DialogSet(dialogState);
Бот может добавлять диалоги или запросы в набор с помощью метода add():
class GreetingDialog extends Dialog {
async beginDialog(dc, options) {
await dc.context.sendActivity(`Hi! I'm a bot.`);
return await dc.endDialog();
}
}
dialogs.add(new GreetingDialog('greeting'));
Для взаимодействия с диалогами наборов можно вызвать createContext() с текущим TurnContext
. Это создаст DialogContext
, которые можно использовать для запуска или продолжения выполнения диалоговых окон наборов:
// Create DialogContext for the current turn
const dc = await dialogs.createContext(turnContext);
// Try to continue executing an active multi-turn dialog
const result = await dc.continueDialog();
// Send greeting if no other dialogs active
if (result.status == DialogTurnStatus.empty && dc.context.activity.type == ActivityTypes.Message) {
await dc.beginDialog('greeting');
}
Конструкторы
Dialog |
Создает новый экземпляр DialogSet. |
Свойства
telemetry |
Задайте клиент телеметрии для этого набора диалогов и примените его ко всем текущим диалогам. Задайте клиент телеметрии для этого набора диалогов и примените его ко всем текущим диалогам. Будущие диалоги, добавленные в набор, также наследуют этот клиент. |
Методы
add<T>(T) | Добавляет новое диалоговое окно или запрос в набор. |
create |
Создает контекст диалога, который можно использовать для работы с диалогами в наборе. |
find(string) | Находит диалоговое окно, которое ранее было добавлено в набор с помощью add(). |
get |
Возвращает диалоговые окна набора. |
get |
Возвращает 32-разрядный хэш всех |
Сведения о конструкторе
DialogSet(StatePropertyAccessor<DialogState>)
Создает новый экземпляр DialogSet.
new DialogSet(dialogState?: StatePropertyAccessor<DialogState>)
Параметры
- dialogState
-
StatePropertyAccessor<DialogState>
(Необязательно) свойство состояния, используемое для сохранения стека диалоговых окон наборов.
Комментарии
Если свойство dialogState
не передается, вызовы createContext() возвращают ошибку. Вам потребуется создать DialogContext
для набора вручную и передать собственный объект состояния для сохранения стека диалоговых окон наборов:
const dc = new DialogContext(dialogs, turnContext, state);
Сведения о свойстве
telemetryClient
Задайте клиент телеметрии для этого набора диалогов и примените его ко всем текущим диалогам. Задайте клиент телеметрии для этого набора диалогов и примените его ко всем текущим диалогам. Будущие диалоги, добавленные в набор, также наследуют этот клиент.
BotTelemetryClient telemetryClient
Значение свойства
BotTelemetryClient
BotTelemetryClient для ведения журнала.
Сведения о методе
add<T>(T)
Добавляет новое диалоговое окно или запрос в набор.
function add<T>(dialog: T): this
Параметры
- dialog
-
T
Диалоговое окно или запрос на добавление. Если в наборе диалоговых окон присутствует телеметрия, он будет добавлен в каждое диалоговое окно.
Возвращаемое значение
this
Диалоговое окно после завершения операции.
Комментарии
Если добавленный Dialog.id
уже существует в наборе, идентификатор диалогов будет обновлен, чтобы включить суффикс, который делает его уникальным. Таким образом, добавление 2 диалоговых окон с именем "дубликат" в набор приведет к тому, что первая из них имеет идентификатор "дубликата" и второй имеет идентификатор "дубликата2".
createContext(TurnContext)
Создает контекст диалога, который можно использовать для работы с диалогами в наборе.
function createContext(context: TurnContext): Promise<DialogContext>
Параметры
- context
-
TurnContext
Контекст для текущего шага беседы с пользователем.
Возвращаемое значение
Promise<DialogContext>
Обещание, представляющее асинхронную операцию.
find(string)
Находит диалоговое окно, которое ранее было добавлено в набор с помощью add().
function find(dialogId: string): Dialog | undefined
Параметры
- dialogId
-
string
Идентификатор диалогового окна или запроса на поиск.
Возвращаемое значение
Dialog | undefined
При обнаружении диалогового окна; в противном случае не определено.
Комментарии
В этом примере находится диалоговое окно с именем "приветствие":
const dialog = dialogs.find('greeting');
getDialogs()
Возвращает диалоговые окна набора.
function getDialogs(): Dialog[]
Возвращаемое значение
Dialog[]
Массив диалогового окна.
getVersion()
Возвращает 32-разрядный хэш всех Dialog.version
значений в наборе.
function getVersion(): string
Возвращаемое значение
string
Версия, изменяющаяся при изменении любой из дочерних диалоговых окон.
Комментарии
Этот хэш сохраняется в хранилище состояний и используется для обнаружения изменений в наборе диалоговых окон.