"Не удалось проанализировать ответ Dialogflow в AppResponse из-за неверного ответа платформы - PullRequest
0 голосов
/ 23 сентября 2019

Я работаю над чат-ботом, который просит пользователя описать свой день, задавая несколько вопросов, а также, если вы наберете помощь, он проверит шкалу стресса и депрессии пользователей, задав несколько вопросов и выставив оценку на основепользователи отвечают, но когда я тестирую в симуляторе и на моем телефоне после того, как задаю 2 или 3 вопроса, перестает отвечать, и появляется эта ошибка:

"Не удалось проанализировать ответ потока диалога в AppResponse из-заневерный ответ платформы: не удалось найти RichResponse или SystemIntent в ответе платформы для agentId: и intentId:. "(Я удалил намерение и агентид здесь)

admin.initializeApp(firebaseConfig);

exports.dialogflowFirebaseFulfillment = functions.https.onRequest((request, response) => {
    const agent = new WebhookClient({ request, response });

    function handleStress(agent) {
        let id = agent.context.get('greet-followup').parameters.id;
        let firstAns = agent.context.get('firstquestion-followup').parameters.number;
        let secondAns = agent.context.get('secondquestion-followup').parameters.number;
        let thirdAns = agent.context.get('thirdquestion-followup').parameters.number;
        let fourthAns = agent.context.get('fourthquestion-followup').parameters.number;
        let fifthAns = agent.context.get('fifthquestion-followup').parameters.number;
        let finalcount = (firstAns + secondAns + thirdAns + fourthAns + fifthAns) * 2;
        if (finalcount > 0 && finalcount <= 10) {
            agent.add('Your stress levels are normal. Is that all? you can type help for getting other options.');
        }
        if (finalcount > 10 && finalcount <= 14) {
            agent.add('Your stress levels are mild. Is that all? you can type help for getting other options.');
        }
        if (finalcount > 14 && finalcount <= 21) {
            agent.add('Your stress levels are moderate. Is that all? you can type help for getting other options.');
        }
        if (finalcount > 21 && finalcount <= 29) {
            agent.add('Your stress levels are severe. Is that all? you can type help for getting other options.');
        }
        if (finalcount > 29) {
            agent.add('Your stress levels are extremely severe. Is that all? you can type help for getting other options.');
        }
        let ref = admin.app().database().ref('/'+id+'/'+getDate());
        let obj = {
          stressScore:finalcount
        };
        return ref.update(obj);
    }

    function handleDepression(agent) {
        let id = agent.context.get('greet-followup').parameters.id;
        let firstAns = agent.context.get('depressionfirstquestion-followup').parameters.number;
        let secondAns = agent.context.get('depressionsecondquestion-followup').parameters.number;
        let thirdAns = agent.context.get('depressionthirdquestion-followup').parameters.number;
        let fourthAns = agent.context.get('depressionfourthquestion-followup').parameters.number;
        let fifthAns = agent.context.get('depressionfifthquestion-followup').parameters.number;
        let sixthAns = agent.context.get('depressionsixthquestion-followup').parameters.number;
        let finalcount = (firstAns + secondAns + thirdAns + fourthAns + fifthAns + sixthAns) * 2;
        if (finalcount > 0 && finalcount <= 14) {
            agent.add('Your depression levels are normal. Is that all? you can type help for getting other options.');
        }
        if (finalcount > 14 && finalcount <= 18) {
            agent.add('Your depression levels are mild. Is that all? you can type help for getting other options.');
        }
        if (finalcount > 18 && finalcount <= 25) {
            agent.add('Your depression levels are moderate. Is that all? you can type help for getting other options.');
        }
        if (finalcount > 25 && finalcount <= 33) {
            agent.add('Your depression levels are severe. Is that all? you can type help for getting other options.');
        }
        if (finalcount > 33) {
            agent.add('Your depression levels are extremely severe. Is that all? you can type help for getting other options.');
        }
        let ref = admin.app().database().ref('/'+id+'/'+getDate());
        let obj = {
          depressionScore:finalcount
        };
        return ref.update(obj);
    }

    function handleHappiness(agent) {
        let id = agent.context.get('greet-followup').parameters.id;
        let firstAns = agent.context.get('happinessfirstquestion-followup').parameters.number;
        let secondAns = agent.context.get('happinesssecondquestion-followup').parameters.number;
        let thirdAns = agent.context.get('happinessthirdquestion-followup').parameters.number;
        let fourthAns = agent.context.get('happinessfourthquestion-followup').parameters.number;
        let finalcount = (firstAns + secondAns + thirdAns + fourthAns) * 2;
        console.log(finalcount);
        if (finalcount > 0 && finalcount <= 10) {
            agent.add('Your happiness levels are low. Is that all? you can type help for getting other options.');
        }
        if (finalcount > 10 && finalcount <= 14) {
            agent.add('Your happiness levels are normal. Is that all? you can type help for getting other options.');
        }
        if (finalcount > 14 && finalcount <= 21) {
            agent.add('Your happiness levels are moderate. Is that all? you can type help for getting other options.');
        }
        if (finalcount > 21 && finalcount <= 29) {
            agent.add('Your happiness levels are high. Is that all? you can type help for getting other options.');
        }
        if (finalcount > 29) {
            agent.add('Your happiness levels are extremely high. Is that all? you can type help for getting other options.');
        }
        let ref = admin.app().database().ref('/'+id+'/'+getDate());
        let obj = {
          happinessScore:finalcount
        };
        return ref.update(obj);
    }

    function userDay(agent){
        let sentiment = request.body.queryResult.sentimentAnalysisResult.queryTextSentiment.score;
        let id = agent.context.get('greet-followup').parameters.id;
        let ref = admin.app().database().ref('/'+id+'/'+getDate());
        let obj = {
          stressScore:0,
          depressionScore:0,
          happinessScore:0,
          sentimentScore:(sentiment*100)
        };
        ref.set(obj);
        agent.add('Great, Type help to see what all I can do.');
    }
    function getDate() {
      var d = new Date(),
          month = '' + (d.getMonth() + 1),
          day = '' + d.getDate(),
          year = d.getFullYear(),
          hour = d.getHours()+':00:00';
      if (month.length < 2) month = '0' + month;
      if (day.length < 2) day = '0' + day;
      if (hour.length < 8) hour = '0' + hour;
      return [year, month, day, hour].join('-');
    }

    function userStats(agent){
        let id = agent.context.get('greet-followup').parameters.id;
        let ref = admin.app().database().ref('/'+id+'/');
        return ref.limitToLast(1).once('value').then(function(snapshot) {
          snapshot.forEach(function(data){
            const stress=data.child('stressScore').val();
            const depression=data.child('depressionScore').val();
            const anxiety=data.child('happinessScore').val();
            const sentiment=data.child('sentimentScore').val();
            agent.add('Hi your stats for today are:\nStress: '+stress+'\nDepression: '+depression+'\nHappiness: '+anxiety+'\nEmotional: '+sentiment);
          });
        });
    }

    let intentMap = new Map();
    intentMap.set('Fifth-Question', handleStress);
    intentMap.set('Depression-Fifth-Question', handleDepression);
    intentMap.set('Happiness-Fourth-Question', handleHappiness);
    intentMap.set('Day first question', userDay);
    intentMap.set('stats', userStats);
    agent.handleRequest(intentMap);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...