Пользовательский тип игрового автомата Alexa для ответов не распознает неправильные ответы - PullRequest
0 голосов
/ 30 октября 2018

Я создал пользовательский тип игровых автоматов для своей викторины Alexa. Ответы на пустяковые вопросы могут быть любыми: слова, цифры, фразы, имена. Я вставил в Slot Values ​​все правильные ответы. Но проблема в том, что навык не распознает неправильных ответов. Намерение ответа просто не срабатывает. Вместо этого он немедленно сообщает текст. Есть ли возможность научить его понимать любое слово в ответ? Моя модель взаимодействия:

        "intents": [
            {
                "name": "AMAZON.CancelIntent",
                "samples": []
            },
            {
                "name": "AMAZON.HelpIntent",
                "samples": []
            },
            {
                "name": "AMAZON.StopIntent",
                "samples": []
            },
            {
                "name": "AnswerIntent",
                "slots": [
                    {
                        "name": "one",
                        "type": "RoundAnswer"
                    },
                    {
                        "name": "two",
                        "type": "RoundAnswer"
                    }
                ],
                "samples": [
                    "The answers are First {one} Second {two}",
                    "my answers are First {one}  Second {two}",
                    "first answer is {one} Second answer is {two} ",
                    "{one} and {two}",
                    "{one}  {two} ",
                    "{one}",
                    "The answer is {one} "
                ]
            },
            {
                "name": "DontKnowIntent",
                "slots": [],
                "samples": [
                    "i don't know",
                    "don't know",
                    "i don't know that one",
                    "dunno",
                    "skip",
                    "i don't know that",
                    "who knows",
                    "i don't know this question"
                ]
            },
            {
                "name": "AMAZON.StartOverIntent",
                "samples": [
                    "let's start from the beginning",
                    "start from the beginning",
                    "start game",
                    "new game",
                    "start",
                    "start new game"
                ]
            },
            {
                "name": "AMAZON.RepeatIntent",
                "samples": []
            },
            {
                "name": "AMAZON.YesIntent",
                "samples": []
            },
            {
                "name": "AMAZON.NoIntent",
                "samples": []
            },
            {
                "name": "AMAZON.NavigateHomeIntent",
                "samples": []
            }
        ],
        "types": [
            {
                "name": "RoundAnswer",
                "values": [
                    {
                        "name": {
                            "value": "thirty six"
                        }
                    },
                    {
                        "name": {
                            "value": "Could not swim"
                        }
                    },
                    {
                        "name": {
                            "value": "Dentist"
                        }
                    },
                    {
                        "name": {
                            "value": "Black mud"
                        }
                    },
                    {
                        "name": {
                            "value": "Fireball"
                        }
                    },
                    {
                        "name": {
                            "value": "Comet"
                        }
                    },
                    {
                        "name": {
                            "value": "13,000"
                        }
                    }
                    ...many more here

                ]
            }
        ]
    },
    "dialog": {
        "intents": [
            {
                "name": "AnswerIntent",
                "confirmationRequired": false,
                "prompts": {},
                "slots": [
                    {
                        "name": "one",
                        "type": "RoundAnswer",
                        "confirmationRequired": false,
                        "elicitationRequired": true,
                        "prompts": {
                            "elicitation": "Elicit.Slot.1498167634260.856164267644"
                        }
                    },
                    {
                        "name": "two",
                        "type": "RoundAnswer",
                        "confirmationRequired": false,
                        "elicitationRequired": false,
                        "prompts": {}
                    }
                ]
            }
        ],
        "delegationStrategy": "SKILL_RESPONSE"
    },
    "prompts": [
        {
            "id": "Confirm.Slot.1498167634260.856164267644",
            "variations": [
                {
                    "type": "PlainText",
                    "value": "ok"
                }
            ]
        },
        {
            "id": "Confirm.Slot.1498167634260.534517403250",
            "variations": [
                {
                    "type": "PlainText",
                    "value": "ok"
                }
            ]
        },
        {
            "id": "Confirm.Slot.1498167634260.145008767498",
            "variations": [
                {
                    "type": "PlainText",
                    "value": "ok"
                }
            ]
        },
        {
            "id": "Confirm.Slot.1498167634260.1214922796775",
            "variations": [
                {
                    "type": "PlainText",
                    "value": "ok"
                }
            ]
        },
        {
            "id": "Elicit.Slot.1498167634260.856164267644",
            "variations": [
                {
                    "type": "PlainText",
                    "value": "what's the answer?"
                }
            ]
        },
        {
            "id": "Confirm.Slot.1498167634260.1519619016259",
            "variations": [
                {
                    "type": "PlainText",
                    "value": "ok"
                }
            ]
        },
        {
            "id": "Confirm.Slot.1498167634260.1412749795564",
            "variations": [
                {
                    "type": "PlainText",
                    "value": "ok"
                }
            ]
        },
        {
            "id": "Confirm.Slot.1498167634260.1335829309782",
            "variations": [
                {
                    "type": "PlainText",
                    "value": "ok"
                }
            ]
        },
        {
            "id": "Confirm.Intent.654381803412",
            "variations": [
                {
                    "type": "PlainText",
                    "value": "are your answers final?"
                }
            ]
        }
    ]
}

1 Ответ

0 голосов
/ 30 октября 2018

Alexa вызывает правильное намерение только тогда, когда интервалы, включенные в это высказывание, совпадают со значениями интервалов, жестко закодированными в модели взаимодействия.

У меня есть несколько предложений для вас

  1. Вместо того, чтобы угадать ответ напрямую, вы можете заставить пользователя произнести правильный вариант пример : Алекса: Какая столица Индии? вариант а) дели вариант б) Хайдарабад Пользователь: опция

    да Зарегистрируйте параметр a и параметр b в качестве значений слотов в модели взаимодействия и сопоставления эти варианты ответа зависят от того, как вы разрабатываете свой код / ​​JSON или DB (я предлагаю ответы должны быть в строке пары ключ-значение {a: Дели, b: Хайдарабад, ответ: a})

  2. Если вы зарегистрируете все правильные и неправильные ответы, т.е. все варианты ваших вопросов в вашей модели взаимодействия, то Алекса узнает значение слота и вызовет правильное намерение Но иногда пользователь может сказать MJ вместо Майкла Джексона, так что у вас есть чтобы добавить синонимы, лучше перейти с 1-й точки

...