【问题标题】:Alexa Trivia Skill - QuizAlexa Trivia Skill - 测验
【发布时间】:2020-02-10 11:03:27
【问题描述】:

我正在尝试做一个琐事测验。一般来说,它工作正常,但测验不能识别答案,也不能正确计算分数。 不知道在哪里找到代码中的错误以及如何更改它。

我在测验中使用了以下说明和代码: https://github.com/alexa/skill-sample-nodejs-trivia

如果有人可以帮助我,我会很高兴。

【问题讨论】:

  • 欢迎来到 SO 先生。请提供最小的工作示例。

标签: alexa alexa-skills-kit alexa-skill


【解决方案1】:

你说的可能是交互模型和后端逻辑的问题。如果可以的话,分享代码:)

【讨论】:

    【解决方案2】:

    这是交互模型的代码:

        {
    "interactionModel": {
        "languageModel": {
            "invocationName": "teach me",
            "intents": [
                {
                    "name": "AnswerIntent",
                    "slots": [
                        {
                            "name": "Answer",
                            "type": "AMAZON.NUMBER"
                        }
                    ],
                    "samples": [
                        "die Antwort ist {Answer}",
                        "meine Antwort ist {Answer}",
                        "ist die Antwort {Answer}",
                        "{Answer} ist meine Antwort",
                        "{Answer}"
                    ]
                },
                {
                    "name": "DontKnowIntent",
                    "slots": [],
                    "samples": [
                        "weiß ich nicht",
                        "weiß nicht",
                        "überspringen",
                        "das weiß ich nicht",
                        "wer weiß",
                        "diese Frage weiß ich nicht",
                        "die weiß ich nicht",
                        "keine Ahnung"
                    ]
                },
                {
                    "name": "AMAZON.StartOverIntent",
                    "samples": [
                        "Spiel starten",
                        "neues Spiel",
                        "starten",
                        "neues Spiel starten"
                    ]
                },
                {
                    "name": "AMAZON.RepeatIntent",
                    "samples": [
                        "bitte wiederholen",
                        "noch einmal",
                        "wiederholen"
                    ]
                },
                {
                    "name": "AMAZON.HelpIntent",
                    "samples": [
                        "Ich brauche Hilfe",
                        "Hilfe"
                    ]
                },
                {
                    "name": "AMAZON.YesIntent",
                    "samples": []
                },
                {
                    "name": "AMAZON.NoIntent",
                    "samples": []
                },
                {
                    "name": "AMAZON.StopIntent",
                    "samples": []
                },
                {
                    "name": "AMAZON.CancelIntent",
                    "samples": []
                },
                {
                    "name": "AMAZON.NavigateHomeIntent",
                    "samples": []
                }
            ],
            "types": []
        }
    }
    

    }

    我认为后端的问题可能出在代码的以下部分:

       function isAnswerSlotValid(intent) {
          const answerSlotFilled = intent
            && intent.slots
            && intent.slots.Answer
            && intent.slots.Answer.value;
          const answerSlotIsInt = answerSlotFilled
            && !Number.isNaN(parseInt(intent.slots.Answer.value, 10));
          return answerSlotIsInt
            && parseInt(intent.slots.Answer.value, 10) < (ANSWER_COUNT + 1)
            && parseInt(intent.slots.Answer.value, 10) > 0;
       }
    
       function handleUserGuess(userGaveUp, handlerInput) {
          const { requestEnvelope, attributesManager, responseBuilder } = handlerInput;
          const { intent } = requestEnvelope.request;
    
          const answerSlotValid = isAnswerSlotValid(intent);
    
          let speechOutput = '';
          let speechOutputAnalysis = '';
          let aplFirstPageSpeechOutput = '';
          let aplSecondPageSpeechOutput = '';
          const sessionAttributes = attributesManager.getSessionAttributes();
          const gameQuestions = sessionAttributes.questions;
          let correctAnswerIndex = parseInt(sessionAttributes.correctAnswerIndex, 10);
          let currentScore = parseInt(sessionAttributes.score, 10);
          let currentQuestionIndex = parseInt(sessionAttributes.currentQuestionIndex, 10);
          const { correctAnswerText } = sessionAttributes;
          const requestAttributes = attributesManager.getRequestAttributes();
          const translatedQuestions = requestAttributes.t('QUESTIONS');
    
    
          if (answerSlotValid
            && parseInt(intent.slots.Answer.value, 10) === 
            sessionAttributes.correctAnswerIndex) {
            currentScore += 1;
            speechOutputAnalysis = requestAttributes.t('ANSWER_CORRECT_MESSAGE');
          } else {
            if (!userGaveUp) {
              speechOutputAnalysis = requestAttributes.t('ANSWER_WRONG_MESSAGE');
            }
    
            speechOutputAnalysis += requestAttributes.t(
              'CORRECT_ANSWER_MESSAGE',
               correctAnswerIndex,
               correctAnswerText
            );
          }
    

    如果您需要更多后端逻辑代码,请告诉我 谢谢你的帮助:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-07
      • 2016-08-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多