首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Alexa小技巧-测验

Alexa小技巧-测验
EN

Stack Overflow用户
提问于 2020-02-10 19:03:28
回答 2查看 99关注 0票数 0

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

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

如果有人能帮助我,我会很高兴的。

EN

回答 2

Stack Overflow用户

发布于 2020-02-11 16:22:10

对于您所说的,这可能是交互模型和后端逻辑的问题。如果可以,请共享代码:)

票数 0
EN

Stack Overflow用户

发布于 2020-02-12 03:35:05

这是交互模型的代码:

代码语言:javascript
运行
复制
    {
"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": []
    }
}

}

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

代码语言:javascript
运行
复制
   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
        );
      }

如果您需要更多的后端逻辑代码,请让我知道谢谢您的帮助:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60149037

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档