Не имея вашего полного кода, чтобы точно увидеть, что происходит, и предоставить ответы на код, я надеюсь, что только объяснение ваших проблем / вопросов укажет вам правильное направление.
1.Запуск навыка
Я говорю: "Alexa open dog app"
Он должен быть просто готов выслушать намерение ...
Вы ожидаете, что Алексапросто послушайте, но на самом деле Alexa открывает ваши навыки и ожидает, что вы получите общий приветственный ответ на этом этапе.Alexa отправит Запрос на запуск на вашу Lambda.Это отличается от IntentRequest
, и вы можете определить это, установив request.type
.Обычно встречается с:
this.event.request.type === 'LaunchRequest'
Я предлагаю вам добавить некоторые записи в Lambda и использовать CloudWatch , чтобы увидеть входящий запрос от Alexa:
console.log("ALEXA REQUEST= " + event)
2.Распознавание значения слота
Я говорю: «откройте приложение собаки и скажите мне цену XXXX».
Почему Алекса не подтверждает, что слово установлено в слоте или нет?
Alexa не ограничивает slot
значениями слотов, установленными в slotType
.Значения, которые вы вводите slotType
, используются в качестве ориентира, но также принимаются и другие значения.
В вашей лямбда-функции вы должны проверить эти значения слотов, чтобы убедиться, что они установлены назначение, которое вы принимаете.Есть много способов сделать это, так что просто начните с определения того, чем заполнен слот.Обычно встречается с:
this.event.request.intent.slots.{slotName}.value;
Если вы решите установить синонимы в slotType
, то Alexa также предоставит ей рекомендуемые значения разрешения слотов.Например, вы можете включить «Ротти» в качестве синонима «Ротвейлер», и Алекса заполнит слот «Ротвейлером», но также предложит вам разрешить это слово в «Ротвейлере».console.log
и CloudWatch для просмотра значений слотов, которые принимает и заполняет Alexa.
3.Целенаправленно не запускают навык
Я говорю: "открой собачью кору".
Я ожидал, что Алекса не поймет вопрос, но это дало мне факт насчет лая.
Вы должны делать это вне своего навыка, где Алекса будет принимать любые входные данные и пытаться распознать включенный навык или справиться с ее лучшим предположением о способностях по умолчанию.
В Алексе есть встроенный по умолчаниюумения (не умения на самом деле) отвечать на общие вопросы, а просто быть веселыми и дружелюбными.Вы можете увидеть, что она может сделать самостоятельно здесь: Алекса - что попробовать
Так что я думаю, Алекса решила, что вы спрашивали что-то о лаем собаки,и так дал ответ.Вы можете попытаться спросить ее «Что такое лай собаки» и посмотреть, отвечает ли она точно так же, как «открыть лай собаки», просто чтобы подтвердить эти подозрения.
Чтобы по-настоящему понять развитиеУмение Alexa, вы должны потратить время, чтобы очень ознакомиться с этой документацией: Форматы JSON запросов и ответов Alexa