bot框架默认对话框未触发

时间:2018-07-18 10:36:54

标签: node.js botframework chatbot luis

我正在使用node.js和Microsoft bot框架创建一个多对话框聊天机器人 bot与LUIS for NLP连接。当意图匹配时,对话框触发而没有任何问题。但是当出现不匹配对话框时,我想触发此Sorry, I don't know. :( this is the default dialog消息。我的代码如下,对于没有匹配的意图,它无法按预期工作。

我注意到,每次输入与任何意图都不匹配的词组时,都会触发先前匹配的意图对话框。

我不知道这段代码有什么问题。 我遵循以下解决方案,但对我没有帮助

solution 01

solution 02

solution 03

const bot = new builder.UniversalBot(new builder.ChatConnector({
        appId: process.env.MicrosoftAppId,
        appPassword: process.env.MicrosoftAppPassword
    }));

 bot.dialog(vacanciesDialog1.id, vacanciesDialog1.waterfall).triggerAction({ matches: vacanciesDialog1.name });
    bot.dialog(gratuityDialog.id, gratuityDialog.waterfall).triggerAction({ matches: gratuityDialog.name });
    bot.dialog(slipsDialog.id, slipsDialog.waterfall).triggerAction({ matches: slipsDialog.name });

默认对话框,如果任何对话框都不匹配

bot.dialog('/', [
        (session, args, next) => {
            session.send(`Sorry, I don't know. :( this is the default dialog`);
        }
    ])

1 个答案:

答案 0 :(得分:0)

您可能需要训练“无”意图。

我创建了一个简单的LUIS应用,以尝试解决您的问题。当我第一次部署我的机器人时,我的大部分意图是“取消”,而不是“无”。在我添加了一些“无”字之后,这个问题对我来说消失了。

请查看this related StackOverflow question

[EDIT]我想进一步阐述。我无意通过这样格式化我的代码来工作:

bot.dialog('/', function (session, args) {
    session.send(`Sorry, I don't know. :( this is the default dialog.`, session.message.text);
}).triggerAction({
    matches: 'None'
});

然后,一旦我在LUIS上添加了一些None语句,我便进行了另一次发布以确保更改得以通过。希望这会有所帮助。