У меня возникли проблемы с методом beginDialogAction для управления потоком разговоров, и я хотел бы получить несколько советов.Я довольно плохо знаком с JavaScript.
Что я хотел бы сделать, так это настроить соответствие ключевого слова контексту моего основного диалога.Насколько я понимаю, метод beginDialogAction - лучший способ сделать это.Моя проблема в том, что, как только мой диалог был запущен с beginDialogAction, новый диалог добавляется в стек, и beginDialogAction продолжает прослушивать другое совпадение.Это означает, что если мой пользователь совпадет с моим триггерным словом, находящимся дальше в потоке, это изменит тему разговора.
Я хочу очистить стек диалога перед запуском нового диалогового окна, указанного вbeginDialogAction, но я не смог понять, как далеко.Буду признателен за любой совет!
Код:
var bot = new builder.UniversalBot(connector, function (session) {
session.send("Hi, good to meet you! I'm here to help you request services. \n\n Please select an action from below.");
session.beginDialog('main');
});
bot.dialog('main', [
function(session){
var msg = new builder.Message(session);
msg.attachmentLayout(builder.AttachmentLayout.carousel)
msg.attachments([
new builder.HeroCard(session)
.title("Request Design Services")
.subtitle("I can send out a request for any design services you need, right from here!")
.buttons([
builder.CardAction.imBack(session, "I'd like to request design services.", "New Request")
]),
new builder.HeroCard(session)
.title("Project Finacials Request")
.subtitle("I can pull finance information from any project within your organization.")
.buttons([
builder.CardAction.imBack(session, "I'd like to request financials.", "New Request")
])
]);
session.send(msg)
}]).beginDialogAction('begindesign', 'design',{ matches: /design/i }).beginDialogAction('beginfinance', 'finance',{ matches: /financials/i });
bot.dialog('design', [
...
]);
bot.dialog('finance', [
...
]);