Я тестирую интеграцию библиотеки Dialogflow-выполнения в моем консольном приложении chatbot. ("botkit-middleware-dialogflow": "^ 2.0.4",), версия Botkit v.0.6.21.
Я зарегистрировал промежуточное программное обеспечение отправки и получения следующим образом:
controller.middleware.receive.use(dialogflowMiddleware.receive);
controller.middleware.send.use(dialogflowMiddleware.use);
Я также настроил промежуточное ПО DF следующим образом:
const dialogflowMiddleware = require('botkit-middleware-dialogflow')({
keyFilename: './myagentFile.json',
ignoreType: ['yes','no','hello']
});
Итак, если я ввожу «привет», convo управляется обратным вызовом, и это нормально, но ответ «да» в диалоге запускает агента «намерения по умолчанию» ... это не то, что я ожидал ,
Можно ли смешать два способа прослушивания ввода пользователя?
Это код:
controller.hears( 'hello', 'message_received', function (bot, message) {
//start convo here
bot.createConversation(message, (err, convo) => {
//THREADS
convo.addMessage({ text: myConvo.respLogin }, 'login_thread');
convo.addMessage({ text: myConvo.botOnBoarding.respOnBoarding }, 'default');
convo.addMessage({ text: myConvo.respMenu }, 'menu_thread');
// Create a yes/no question in the default thread...
convo.addQuestion(myConvo.botQuestions.questLogin, [
{
pattern: 'yes', //--> IT GOES OUT TO DIALOGFLOW... WHY??
callback: function (response, convo) {
convo.gotoThread('login_thread');
convo.next();
},
},
{
pattern: 'no',
callback: function (response, convo) {
convo.gotoThread('stop_thread');
convo.next();
},
},
{
default: true,
callback: function (response, convo) {
// convo.gotoThread('default_thread');
convo.repeat();
convo.next();
},
}
], { 'key': 'choice' }, 'default');
convo.activate();
.
.
.
Заранее спасибо