在假期周末,我一直试图让机器人使用Microsoft Bot Framework。我使用的是针对Node.js的botbuilder软件包的3.9.1版本。
我在www.luis.ai创建了一个应用和模型。我已经能够通过" Train& amp;成功测试我的意图。测试"特征。然后,在我的实际节点代码中,我有以下内容:
let connector = new BotBuilder.ChatConnector({
appId: 'myId',
appPassword: 'myAppSecret'
});
let bot = new BotBuilder.UniversalBot(connector);
let luis = new BotBuilder.LuisRecognizer('myLuisAppUrl');
let intent = new BotBuilder.IntentDialog({ });
intent.recognizer(luis);
intent.matches('Intent.1', '/execute-report');
intent.matches('Intent.2', '/execute-batch-job');
intent.onDefault('/unknown');
bot.dialog('/', intent);
bot.dialog('/execute-report', [function(session, args, next) {
var result = ((Date.now() % 2) === 0) ? 'Report Ran!' : 'Failed';
session.send(result);
}]);
bot.dialog('/execute-batch-job', [function(session, args, next) {
var result = ((Date.now() % 2) === 0) ? 'Batch Job Ran!' : 'Unable to run Batch Job';
session.send(result);
}]);
bot.dialog('/unknown', [function(session, args, next) {
session.send('What did you ask for?');
}]);
当与我的机器人交互时,我总是得到"你要求的是什么?"。换句话说,在这一点上,我知道:
/unknown
对话框,这不是正确的交互。我在LUIS中的模型看起来是正确的:
一个。如果我输入"运行报告"在LUIS.ai测试应用程序中,最高得分意图是" Intent.1"
湾如果我输入"执行批处理作业"在LUIS.ai测试应用中,最高得分意图是" Intent.2"
但是,我的机器人没有发送适当的回复。永远不会使用/execute-report
和/execute-batch-job
对话框,即使它们应该是。我不明白我做错了什么。对我而言,我相信我已经正确设置了我的机器人。我不知道自己做错了什么。有人可以告诉我我做错了什么吗?有没有办法在我的节点代码中看到LUIS返回的响应,类似于"测试"应用于LUIS.ai
答案 0 :(得分:0)
如果您转到LuisRecognizer的第89行并在新行上添加以下内容:console.log(result);
您将看到机器人已收到的LUIS响应对象。
您的代码对我来说是正确的,因此问题可能出在LUIS方面。你发布了你的应用程序吗?