Node.js 结束对话
我的机器人(使用MS BotFramework)应该正在收听对话流。如果有人提到“聊天机器人”,它应该说“我在这里!”,否则保持安静。这看起来很简单,也许是,但我很难实现它。以下是我所拥有的:Node.js 结束对话,node.js,chatbot,botframework,Node.js,Chatbot,Botframework,我的机器人(使用MS BotFramework)应该正在收听对话流。如果有人提到“聊天机器人”,它应该说“我在这里!”,否则保持安静。这看起来很简单,也许是,但我很难实现它。以下是我所拥有的: bot.add('/', function(session) { if (someoneSaidChatbot) { session('Here I am!") } else { // session.reset(), maybe? No! // session.endDi
bot.add('/', function(session) {
if (someoneSaidChatbot) {
session('Here I am!")
} else {
// session.reset(), maybe? No!
// session.endDialog() then? Uh...nope.
// nothing? Hmmm. negative
}
});
所以,什么都不管用。如果我离开那里,机器人就会挂起,它会停止监听流或回答命令。
有什么想法吗?当有人键入“聊天机器人”作为话语的一部分时,此代码将结束对话框。这就是你要找的吗
bot.add('/', function (session) {
if (session.message.text.search("chatbot") >= 0) {
session.endDialog("Here I am");
}
});
这也可能取决于您使用的频道。某些频道不允许机器人收听对话中的所有消息。我建议使用
endConversationAction()
注册机器人的全局操作
bot.endConversationAction(
'enddialog', //dialog Id
'Here I am', //message
{ matches: /^.*chatbot/i } //match pattern
);
由于这是一个全局操作,所以当bot听到“Chatbot”时,它会说“我在这里”,如果堆栈中有一些对话框,您提出的解决方案可能无法工作