Сбой приложения с ошибкой: Dialogflow IntentHandler не найден для намерения: приветствие по умолчанию в функции - PullRequest
0 голосов
/ 07 августа 2020

Я создаю открытый ответ на вопрос, используя dialoflow. Я использую node js в своем веб-перехватчике. Я хочу, чтобы задаваемые вопросы прекращались, как только приложение задает последний вопрос. Чтобы получить это, я использую свойство length массива:

var length = questions.length;

Но как только эта строка выполняется, отображается ошибка:

Ошибка: Dialogflow IntentHandler не найден для намерения: приветственное намерение по умолчанию в функции.

Однако я не использую это приветственное намерение по умолчанию в веб-перехватчике. Ответ для этого намерения устанавливается в разделе ответа по умолчанию. Как только я удаляю строку длины, код не выдает ошибок.

Можете ли вы помочь мне решить эту ошибку или дать какие-либо другие идеи относительно того, как получить длину массива?

Это код, который я использую:

app.intent('First', (conv) => {
    const ans = conv.parameters.any;
    if(type[0] === 'RATING'){
        if(ans == 1){
            senddata[0] = qstion[0] + ans;
            conv.ask(qstion[1]);
        }
        else if(ans == 2){
            senddata[0] = qstion[0] + ans;
            conv.ask(qstion[1]);
        }
        else if(ans == 3){
            senddata[0] = qstion[0] + ans;
            conv.ask(qstion[1]);
        }
        else if(ans == 4){
            senddata[0] = qstion[0] + ans;
            var length = qstion.length;
            conv.add(length);
            conv.ask(qstion[1]);
        }
        else if(ans == 5){
            senddata[0] = qstion[0] + ans;
            conv.ask(qstion[1]);
        }
        else if(ans === 'can you help me' || ans === 'help' || ans === 'help me'){
            checkhelp_logout = "help";
            flag_log_help = 2;
            conv.ask('Would you like some help?');
        }
        else if(ans === 'logout'){
            checkhelp_logout = "logout";
            flag_log_help = 2;
            conv.ask('Did you say logout?');
        }
        else if(ans === 'sign out'){
            checkhelp_logout = "logout";
            flag_log_help = 2;
            conv.ask('Did you say sign out?');
        }
        else if(ans === 'exit'){
            checkhelp_logout = "logout";
            flag_log_help = 2;
            conv.ask('Did you say exit?');
        }
        else{
            conv.add('Please enter a valid number');
            conv.ask(qstion[0]);
        }
    }
        else{
            senddata[0] = qstion[0] + ans;
            conv.ask(qstion[1]);
    }
});

Вы можете увидеть свойство length в условии if, где ans == 4. Это ошибка: Ошибка: Dialogflow IntentHandler не найден для намерения: Добро пожаловать по умолчанию Намерение в функции.

1 Ответ

0 голосов
/ 07 августа 2020

Привет, я думаю, вы пытаетесь обработать весь ответ в одном намерении, а именно: Первый .

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

Затем вы можете вручную обучить этот ответ и сопоставить его.

Попробуйте добавить обработчик по умолчанию в код и посмотрим, что происходит в этом случае.

Это может помочь!

...