如何同时进行2次对话?我目前正在使用TextBot和LuisDialog来构建机器人。我首先与用户进行对话以获取数据。然后在用不同的方法进行一些处理时,我发现我需要来自用户的其他信息。如何才能与用户创建新对话以获取其他信息?我在下面有一些代码试图展示我想要做的事情。谢谢你的建议。
文件1:foo.js
var dialog = new builder.LuisDialog(model);
var sonnyBot = new builder.TextBot();
sonnyBot.add('/', dialog);
dialog.on('intent_1', [
function(session, args, next) {
name = builder.Prompts.text(session,"What is your name?");
},
function(session, result) {
session.dialogData.name= results.response;
getFamilyTree(session.dialogData.name);
}
]);
文件2:getFamilyTree.js
function getFamilyTree(name) {
find family tree for name
if (need place of birth) {
begin new dialog
prompt user place of birth
get place of birth from user
end dialog
}
finish getting the family tree
}
答案 0 :(得分:1)
我猜您可以传递会话对象,然后使用该对象启动一个新对话框。
修改1
你不能使用像
这样的东西session.beginDialog('/getFamilyTree',{name:result.response});
然后您可以访问
之类的名称args.name
在'getFamilyTree'对话框中
答案 1 :(得分:0)
我在GitHub上发布了相同的问题,并收到了参与node.js SDK开发的Steven Ickman的回答。答案的链接是https://github.com/Microsoft/BotBuilder/issues/394#issuecomment-223127365