У меня есть одно намерение в моем умении 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"
}
}