Botframework Ms Bot Builder:如何创建分层库结构?
假设我创建了一个库Botframework Ms Bot Builder:如何创建分层库结构?,botframework,Botframework,假设我创建了一个库shop,并将其添加到我的bot中: 对话框/shop.js var lib = new builder.Library('shop'); lib.dialog('car', function(session){}) module.exports.createLibrary = function () { return lib.clone(); }; bot.library(require('./dialogs/shop').cre
shop
,并将其添加到我的bot中:
对话框/shop.js
var lib = new builder.Library('shop');
lib.dialog('car', function(session){})
module.exports.createLibrary = function () {
return lib.clone();
};
bot.library(require('./dialogs/shop').createLibrary());
bot/index.js
var lib = new builder.Library('shop');
lib.dialog('car', function(session){})
module.exports.createLibrary = function () {
return lib.clone();
};
bot.library(require('./dialogs/shop').createLibrary());
因此,我可以通过session.beginDialog('shop:car')
触发car
对话框
我希望为要购物的每一类物品创建一个库,这样汽车就在vehicle
库中,我可以通过session.beginDialog('shop:vehicle:car')
我试着这样做:
var lib = new builder.Library('shop');
var lib_vehicle = new builder.Library('vehicle');
lib_vehicle.dialog('car', function(session){})
lib.library(lib_vehicle.clone());
module.exports.createLibrary = function () {
return lib.clone();
};
bot.library(require('./dialogs/shop').createLibrary());
但这会通过session.beginDialog('vehicle:car')
而不是session.beginDialog('shop:vehicle:car')
触发car
对话框
如何实现库之间的层次关系
谢谢在查看了源代码之后,SDK没有设置为在您描述的这种情况下处理层次结构 当处理
'vehicle:car'
时,它会生成一个数组并获取库名和对话框id。会话方法findDialog()
(在beginDialog
内部调用),因此'car'
,一切正常。对于'shop:vehicle:car'
,'car'
基本上被留在灰尘中,您的聊天机器人会在库'shop'
中查找id为'vehicle'
的对话框
编辑:如果您认为这是一项值得探索的功能,请在BotBuilder repo中提交一个文件,以便进行讨论。当试图通过id
“shop:vehicle:car”访问时,记录器是否向您发送了任何消息。
?我很好奇它说了些什么;是否抛出了一些错误。