我的机器人(使用MS BotFramework)应该听到对话流。如果有人提到“聊天机器人”,它应该说'我在这里!',否则保持安静。它似乎非常简单,也许它是,但我很难尝试实现它。这就是我所拥有的:
bot.add('/', function(session) {
if (someoneSaidChatbot) {
session('Here I am!")
} else {
// session.reset(), maybe? No!
// session.endDialog() then? Uh...nope.
// nothing? Hmmm. negative
}
});
所以,没有任何作用。如果我离开那里机器人只是挂起,它停止听流或回答命令。 有什么想法吗?
答案 0 :(得分:1)
当有人输入“chatbot”作为话语的一部分时,此代码结束对话框。这是你想要的?
bot.add('/', function (session) {
if (session.message.text.search("chatbot") >= 0) {
session.endDialog("Here I am");
}
});
答案 1 :(得分:1)
我建议使用endConversationAction()
注册Bots Global Actions
bot.endConversationAction(
'enddialog', //dialog Id
'Here I am', //message
{ matches: /^.*chatbot/i } //match pattern
);
因为这是全局动作,所以当机器人听到“Chatbot”时,它会说“我在这里”,如果堆栈中有一些对话框,你提出的解决方案可能无效。
答案 2 :(得分:0)
它还可能取决于您使用的频道。有些频道不能让Bot听取对话中的所有信息。