结束谈话

时间:2016-05-15 00:45:04

标签: node.js chatbot botframework

我的机器人(使用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
  }
});

所以,没有任何作用。如果我离开那里机器人只是挂起,它停止听流或回答命令。 有什么想法吗?

3 个答案:

答案 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听取对话中的所有信息。