Вызов/переключение между слотами/намерениями через функцию aws-лямбда для набора навыков Alexa

Есть ли способ вызвать намерение, не произнося высказывание, чтобы начать указанное намерение в функции aws-лямбда, а также вызвать определенный слот и получить ввод пользователя для обновления указанного значения слотов.

Пример кода:

https://imgur.com/a/g9BxH97

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

Кроме того, можно ли получить намерение IntellectualState через SocialIntent.


person Jay    schedule 26.04.2018    source источник
comment
ты пробовал this.emit('YourIntentName')   -  person bgsuello    schedule 27.04.2018
comment
@bgsuello Да, я пробовал, и это не сработало. Вот почему мне было интересно, есть ли особый способ сделать это (например, this.emit('PhysicalState'))   -  person Jay    schedule 30.04.2018
comment
как насчет this.emitWithState('PhysicalState')? это также передаст атрибуты в текущем состоянии в PhysicalState   -  person bgsuello    schedule 30.04.2018
comment
@bgsuello Это тоже не сработало: / Я получил сообщение об ошибке, в котором говорилось, что возникла проблема с ответом на запрошенные навыки   -  person Jay    schedule 01.05.2018
comment
Я все еще смущен тем, что вы пытаетесь сделать? Вы хотите сохранить значения слотов через сеанс?   -  person Guru    schedule 02.05.2018
comment
@Guru Я пытаюсь вызвать намерение из другого намерения, не говоря явно о намерении. Например, если в конце намерения задан вопрос «да» или «нет», это позволит пользователю перейти к любому выбранному намерению.   -  person Jay    schedule 03.05.2018


Ответы (1)


Каждое намерение будет вызвано их собственными высказываниями и значениями их слотов, и я не думаю, что есть способ вызвать одно намерение из другого.

В зависимости от того, что говорит пользователь, будет активировано конкретное намерение, и запрос будет отправлен с этим конкретным именем намерения.

Однако лучшей логикой для обработки этого будет ваш внутренний API (лямбда) и использование переменных сеанса, которые поддерживаются в сеансе. Используя их, вы сможете определить состояние, а также определить, какое намерение (логика кода в вашем API) вам нужно обработать в конце намерения.

Подробнее об объекте сеанса

person Guru    schedule 03.05.2018