将LUIS连接到Microsoft Bot Framework

时间:2017-09-04 12:46:50

标签: node.js botframework luis

在假期周末,我一直试图让机器人使用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?');
}]);

当与我的机器人交互时,我总是得到"你要求的是什么?"。换句话说,在这一点上,我知道:

  1. 我可以成功与我的机器人互动。但是,始终会调用/unknown对话框,这不是正确的交互。
  2. 我在LUIS中的模型看起来是正确的:

    一个。如果我输入"运行报告"在LUIS.ai测试应用程序中,最高得分意图是" Intent.1"

    湾如果我输入"执行批处理作业"在LUIS.ai测试应用中,最高得分意图是" Intent.2"

  3. 但是,我的机器人没有发送适当的回复。永远不会使用/execute-report/execute-batch-job对话框,即使它们应该是。我不明白我做错了什么。对我而言,我相信我已经正确设置了我的机器人。我不知道自己做错了什么。有人可以告诉我我做错了什么吗?有没有办法在我的节点代码中看到LUIS返回的响应,类似于"测试"应用于LUIS.ai

1 个答案:

答案 0 :(得分:0)

如果您转到LuisRecognizer的第89行并在新行上添加以下内容:console.log(result);您将看到机器人已收到的LUIS响应对象。

您的代码对我来说是正确的,因此问题可能出在LUIS方面。你发布了你的应用程序吗?