如何在bot框架中添加其他对话框

时间:2016-05-24 14:22:51

标签: node.js botframework

如何同时进行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
}

2 个答案:

答案 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