机器人对话框不启动

我在这里问你们谁知道为什么我的机器人不会启动对话框? 我是一个在机器人世界中的新人,并阅读了很多,但似乎无法解决这个问题。

var restify = require('restify'); var builder = require('botbuilder'); // Setup Restify Server var server = restify.createServer(); server.listen(process.env.port || process.env.PORT || 3978, function () { console.log('%s listening to %s', server.name, server.url); }); // Create chat connector for communicating with the Bot Framework Service var connector = new builder.ChatConnector({ appId: process.env.MICROSOFT_APP_ID, appPassword: process.env.MICROSOFT_APP_PASSWORD }); var luisAppUrl = process.env.LUIS_APP_URL || 'https://westus.api.cognitive.microsoft.com/luis/v2.0/apps/.......'; var bot = new builder.UniversalBot(connector); var bot = new builder.UniversalBot(connector, function(session, args, next) { session.send('How can i help you ?') session.endDialog(); next(); }); bot.recognizer(new builder.LuisRecognizer(luisAppUrl)); bot.dialog('Location', [ function (session, args, next) { var intent = args.intent; var locations = builder.EntityRecognizer.findEntity(intent.entities, 'Location'); var location = session.dialogData.location = { title: title }; // session.send() if (!locations){ builder.Prompts.text(session, 'From which settlement do you want to know the location? ') } else { next(); } }, function(session, results) { var location = session.dialogData.location; if(results.response){ note.text = results.response; // session.send('Our company is located in Antwerp') } } ]).cancelAction({ matches: /^(cancel|nevermind)/i, confirmPrompt: "Are you sure?" }); 

所以我的机器人只是不断崩溃,不启动bot.dialog? 你们可以看看有什么不对吗?

机器人崩溃,因为你两次实例化UniversalBot类:

 var luisAppUrl = process.env.LUIS_APP_URL // etc var bot = new builder.UniversalBot(connector); var bot = new builder.UniversalBot(connector, function(session, args, next) { session.send('How can i help you ?') session.endDialog(); next(); }); 

尝试删除第一个bot所以你的代码只是:

 var luisAppUrl = process.env.LUIS_APP_URL // etc var bot = new builder.UniversalBot(connector, function(session, args, next) { session.send('How can i help you ?') session.endDialog(); next(); }); 

编辑:

要访问'Location'对话框,您需要在对话框中添加一个triggerAction()

 bot.dialog('Location', [ function (session, args, next) { // ... }, function(session, results) { // ... } ]).triggerAction({ matches: 'Location' // What your intent from LUIS is called. }).cancelAction({ matches: /^(cancel|nevermind)/i, confirmPrompt: "Are you sure?" });