Я новичок в разработке Alexa Skills. Я работаю над Skill для испанского магазина, поэтому использую голос es-ES. Я использую Node.js ASK-SDK, и я столкнулся с этой проблемой:
Когда я пытаюсь развить диалог с повторной репликой, если пользователь говорит «бред», который не должен вызывать ни одно из моих высказываний, я ожидаю войти в обработчик ошибок, так как он с canHandle == true, но фактический результат состоит в том, что это тарабарщина обнаружена и отсортирована Алекса как одно из правильных высказываний Я видел, что в en-US у вас есть AMAZON.Fallback для предотвращения этой проблемы, но, поскольку ни один из испанских SDK не имеет этого, как я могу обнаружить это?
Я загрузил демонстрационный проект для эмуляции этого поведения
Вы можете попробовать с этим рабочий процесс:
- Запустить навык
- Умение возвращает текст «Номер один» и продолжает слушать (так как есть повторная реплика)
- Вы пишете номер два
- Умение возвращает текст «Номер два» и продолжает слушать с другим повторением
- Вы говорите бред, например, "d" или "бла-бла-бла"
- Вы отсортированы по явно случайному высказыванию.
Вот пример ввода JSON для "бла-бла-бла"
{
"version": "1.0",
"session": {
"new": false,
"sessionId": "amzn1.echo-api.session.55b928a6-ecb2-4b55-857e-af6a76dee6fe",
"application": {
"applicationId": "amzn1.ask.skill.dd0b7ffd-b408-489a-ab5e-a7d7b8d05da3"
},
"user": {
"userId": "amzn1.ask.account.AFWPOWCRQULHUVKQTTX7JIS3O264CCHSUY4MPHCSJS4LKLQX45YARJ67LTGHPMS7RWUXVNYUTXT6JMT3DICTL5YZ7QHSLZ3QIHEKDP5YRPLCAEFXTD4BRY6WJIKC36UO3QU4F5X5BLFAGX6C3KN76MQJETO5PY6I65CVNOFBQLGNZ3P4YN4IOLYBCC7NDGAQ6LFAWMWTKT6DWQY"
}
},
"context": {
"System": {
"application": {
"applicationId": "amzn1.ask.skill.dd0b7ffd-b408-489a-ab5e-a7d7b8d05da3"
},
"user": {
"userId": "amzn1.ask.account.AFWPOWCRQULHUVKQTTX7JIS3O264CCHSUY4MPHCSJS4LKLQX45YARJ67LTGHPMS7RWUXVNYUTXT6JMT3DICTL5YZ7QHSLZ3QIHEKDP5YRPLCAEFXTD4BRY6WJIKC36UO3QU4F5X5BLFAGX6C3KN76MQJETO5PY6I65CVNOFBQLGNZ3P4YN4IOLYBCC7NDGAQ6LFAWMWTKT6DWQY"
},
"device": {
"deviceId": "amzn1.ask.device.AETBPXRLKFDMVR23WFUFQ3HOFTGHQDISLOQAPWS4BDBD4FAGXUKW2P56RJ3G74C75HG63MS52UV7KFYJAENEVT6VIRZUEKWCQQHNGV3FMP6BM3A5JZCUXH2LRYDHLQLBH5ABDJ7EYRWUI5532NYEZLUCYIGMRZCM2WKQ3XG6NX5VZPOELTKUO",
"supportedInterfaces": {}
},
"apiEndpoint": "https://api.eu.amazonalexa.com",
"apiAccessToken": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6IjEifQ.eyJhdWQiOiJodHRwczovL2FwaS5hbWF6b25hbGV4YS5jb20iLCJpc3MiOiJBbGV4YVNraWxsS2l0Iiwic3ViIjoiYW16bjEuYXNrLnNraWxsLmRkMGI3ZmZkLWI0MDgtNDg5YS1hYjVlLWE3ZDdiOGQwNWRhMyIsImV4cCI6MTU0MjM1OTg1NCwiaWF0IjoxNTQyMzU2MjU0LCJuYmYiOjE1NDIzNTYyNTQsInByaXZhdGVDbGFpbXMiOnsiY29uc2VudFRva2VuIjpudWxsLCJkZXZpY2VJZCI6ImFtem4xLmFzay5kZXZpY2UuQUVUQlBYUkxLRkRNVlIyM1dGVUZRM0hPRlRHSFFESVNMT1FBUFdTNEJEQkQ0RkFHWFVLVzJQNTZSSjNHNzRDNzVIRzYzTVM1MlVWN0tGWUpBRU5FVlQ2VklSWlVFS1dDUVFITkdWM0ZNUDZCTTNBNUpaQ1VYSDJMUllESExRTEJINUFCREo3RVlSV1VJNTUzMk5ZRVpMVUNZSUdNUlpDTTJXS1EzWEc2Tlg1VlpQT0VMVEtVTyIsInVzZXJJZCI6ImFtem4xLmFzay5hY2NvdW50LkFGV1BPV0NSUVVMSFVWS1FUVFg3SklTM08yNjRDQ0hTVVk0TVBIQ1NKUzRMS0xRWDQ1WUFSSjY3TFRHSFBNUzdSV1VYVk5ZVVRYVDZKTVQzRElDVEw1WVo3UUhTTFozUUlIRUtEUDVZUlBMQ0FFRlhURDRCUlk2V0pJS0MzNlVPM1FVNEY1WDVCTEZBR1g2QzNLTjc2TVFKRVRPNVBZNkk2NUNWTk9GQlFMR05aM1A0WU40SU9MWUJDQzdOREdBUTZMRkFXTVdUS1Q2RFdRWSJ9fQ.H50aG2L-K_AH-vRQ4ueu6n8GY_3T14KVjJysJjpWaAJEMfVlkx6CNwnQjDQJZHd1GQ1UpqcT3AkpqGDg86Z2J50RDmRp5ScUqqMQu0ZjrCxG9hItwT02ca4wxEo_hFrMb5VTTgqSORbfgzmDHJMOVaWjb_zJAcAFCJrF3qxzYzEo-E2ptBdRb7xKY0y_3MisF302HTUiZC3uTiRvWxv3jMT0_vq9cXDoHOar_WDf7Q6afF4DrEj6naX_vRpHT-63nWug1TiKRaJY4sEEaTlX0BVDigJ7t1LuH76ULeDEpJrSNW3mQtrHqUCnFNRYe9_-ru-rf-NkMpotYE7glWNnZg"
},
"Viewport": {
"experiences": [
{
"arcMinuteWidth": 246,
"arcMinuteHeight": 144,
"canRotate": false,
"canResize": false
}
],
"shape": "RECTANGLE",
"pixelWidth": 1024,
"pixelHeight": 600,
"dpi": 160,
"currentPixelWidth": 1024,
"currentPixelHeight": 600,
"touch": [
"SINGLE"
]
}
},
"request": {
"type": "IntentRequest",
"requestId": "amzn1.echo-api.request.fef2e2fc-b404-4729-85b4-e8ced71b6ecd",
"timestamp": "2018-11-16T08:17:34Z",
"locale": "es-ES",
"intent": {
"name": "NumberTwoIntent",
"confirmationStatus": "NONE"
}
}
}
Как я могу предотвратить это? Я ожидаю ввести ошибку, так как это единственный обработчик, который может вернуть true для высказывания «бла-бла-бла», и, таким образом, сообщить пользователю, что в его речи произошла ошибка, но поскольку она классифицируется по высказыванию, она возвращает некоторую информацию, которую пользователь не запрашивал.
Спасибо