我最近开始使用带有Node.js SDK的Microsoft BOT框架开发BOT应用程序。我想知道是否可以在对话框中检查匹配的意图。例如,
var builder = require('botbuilder');
var bot = new builder.UniversalBot(connector);
var intents = new builder.IntentDialog();
bot.dialog('/', intents);
此意图将检查问候语。
intents.matchesAny([/^hi/i, /^hello/i], [
function (session) {
var displayName = session.message.user.name;
var firstName = displayName.substr(0, displayName.indexOf(' '));
session.send('Hello I’m M2C2! How can I help you %s? If you need help just say HELP.', firstName);
}
]);
此意图将与支票卡余额相匹配。
intents.matchesAny([/^balance/i, /^card balance/i], [
function (session) {
session.beginDialog('/check-balance');
}
]);
这是检查余额的对话框。
bot.dialog('/check-balance', [
function (session) {
builder.Prompts.text(session, "Sure, I can find the balance for you! May I know the card number that you want to check the balance of?");
},
function (session, results) {
if (isNaN(results.response)) {
session.send('Invalid card number %s', results.response);
} else {
session.send('The balance on your %s card is $ 50', results.response);
}
session.endDialog();
}
]);
我想知道的是,是否可以检查 check-balance 对话框中的任何匹配意图。假设用户输入了无效的卡号,我想确保该命令与任何已定义的意图不匹配,以便我可以确定无效的卡号响应,如果匹配,则执行匹配的意图。
答案 0 :(得分:0)
intents.matches(/^(exit)|(quit)/, [
function (session) {
session.beginDialog('/exit');
}]);
bot.dialog('/exit',[
function(session){
if(session.message.text=='exit'||'quit'){
session.send("Yor are exit");
} else { session.send("you are not exit"); }
}])