2016-05-15 3 views
1

Предполагается, что мой бот (используя MS BotFramework) будет слышать поток разговора. Если кто-то упоминает «chatbot», он должен сказать «Вот я!», В противном случае остается спокойным. Кажется, это очень просто и, может быть, это так, но я с трудом пытаюсь его реализовать. Вот что у меня есть:Завершение разговора

bot.add('/', function(session) { 
    if (someoneSaidChatbot) { 
    session('Here I am!") 
    } else { 
    // session.reset(), maybe? No! 
    // session.endDialog() then? Uh...nope. 
    // nothing? Hmmm. negative 
    } 
}); 

Итак, ничего не работает. Если я уйду, бот просто зависает, и он перестает слушать потоки или отвечать на команды. Любые мысли?

ответ

1

Этот код завершает диалог, когда кто-то вводит «chatbot» в качестве части высказывания. Это то, что вы ищите?

bot.add('/', function (session) { 
    if (session.message.text.search("chatbot") >= 0) { 
     session.endDialog("Here I am"); 
    } 
}); 
0

Он также может зависеть от того, какой канал вы используете. Некоторые каналы не предлагают возможности Bot для прослушивания всех сообщений в разговоре.

1

Я хотел бы предложить использовать endConversationAction(), чтобы зарегистрировать Боты действия

bot.endConversationAction(
     'enddialog',     //dialog Id 
     'Here I am',     //message 
     { matches: /^.*chatbot/i } //match pattern 
    ); 

, поскольку это глобальные действия, в любое время, когда бот услышал «Chatbot», он будет говорить: «Вот я», если некоторые диалоги в стеке, ваше предлагаемое решение может не сработать.