Как добавить проверку значения слота в навыке alexa - PullRequest
0 голосов
/ 11 июня 2018

У меня есть одно намерение в моем умении NoteMyDetail , в котором есть три обязательных слота: name, age, gender.У меня есть различные высказывания, такие как «запомни мои данные» , »запомни мое имя как {имя}" и т. Д. Так что, если я скажу "запомни мои данные" этоодин за другим запрашивает все значения, и если я говорю «запомните мое имя как Джо» , то запрашивается только возраст и пол.

Теперь проблема в том, какдобавьте проверки для этих слотов, потому что когда Алекса спрашивает: «сколько вам лет» , и я отвечаю, что меня зовут Джо или любой тарабарщина посылает «?»в слоте.

Как сделать так, чтобы значение было числом только для возраста?

РЕДАКТИРОВАТЬ: Поэтому я использовал код ссылки: https://gist.github.com/stormbytes/7ee3a05aa03c0ada0621dde746f2a6f9#file-index-js-L31

У меня есть требуемые слоты, поэтому он запрашивает все значения, а затем проверяет значение, которое нарушает поток, поэтому я сделал значения слотов необязательными и проверил, если значение определено / неопределено.Я получаю следующий ответ в симуляторе, но он говорит: «Возникла проблема с ответом запрошенного навыка»

{
"body": {
    "version": "1.0",
    "response": {
        "outputSpeech": {
            "type": "SSML",
            "ssml": "<speak> Sorry I did not get the age, please say it again </speak>"
        },
        "directives": [
            {
                "type": "Dialog.ElicitSlot",
                "slotToElicit": "ageValue"
            }
        ],
        "reprompt": {
            "outputSpeech": {
                "type": "SSML",
                "ssml": "<speak> Please tell me your age </speak>"
            }
        },
        "shouldEndSession": false
    },
    "sessionAttributes": {},
    "userAgent": "ask-nodejs/1.0.25 Node/v6.10.3"
}
}

1 Ответ

0 голосов
/ 29 августа 2019

Это типичный случай, когда вы можете использовать недавно выпущенную функцию под названием Проверка слотов .Все, что вам нужно сделать, это перейти на страницу, где вы определили свой слот, как требуется, и нажать на вкладку Validations:

enter image description here

и добавитьправило проверки.В вашем случае, когда вы имеете дело с age , наиболее вероятно и AMAZON.Number, вы можете установить два правила: одно для нижнего предела возраста (например, 0), а другое для верхнего предела.(например, 100).Взгляните на мой пример, используя числовой слот с именем ownedMiles:

enter image description here

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

...