Как подсказать пользователю вопрос о лямбда-функции после завершения dialogState - PullRequest
0 голосов
/ 08 июля 2019

Я создаю навык Alexa, но он был отклонен Amazon.Мой навык работает следующим образом:

Пользователь : "Алекс, спроси доктора, безопасно ли использовать вакцину во время беременности"

Alexa: «дает ответ, извлеченный из DynamoDB» - (dialogState: Complete)

Я получил следующие комментарии от Amazon:

Посленавык завершает задачу, сессия остается открытой без запроса пользователя.Умение должно закрыть сеанс после выполнения запросов, если оно не запрашивает у пользователя какой-либо ввод.

Может кто-нибудь помочь мне с этим?

Я пытался использовать DelegateDialog, но это не 'Кажется, не работает.

handler_input.response_builder.add_directive(DelegateDirective())
                              .speak(message)
                              .ask(reprompt)
                              .set_card(SimpleCard("Custom", message))

Я хочу, чтобы Alexa задала вопрос пользователю, например: " У вас есть еще вопросы? ", чтобы разговор не закончился и продолжался.Я не хочу закрывать сессию сразу после того, как Алекса отправит ответ.

1 Ответ

1 голос
/ 10 июля 2019

Пара вещей:

делегат директива, когда вы хотите, чтобы ASK (Alexa Skills Kit) , чтобы определить следующее, что говорить. Это имеет смысл, только если у вас есть dialog model ( требует слотов, запросов на извлечение и т. Д. ), и диалог еще не завершен. Похоже, вы не используете диалоговую модель, и в любом случае вы одновременно делегируете и предоставляете функцию Speak (), которую, я думаю, вы не хотите.

Для вашего сценария вы, скорее всего, захотите получить полный вывод, содержащий ответ и следующий вопрос. это может быть так просто, как string-append: message = db_response + ". Anything else? "

...