如何在 dialogState 完成时从 lambda 函数向用户提示问题
How to prompt a question from lambda function to user when dialogState is completed
我正在创建 Alexa 技能,但被亚马逊拒绝了。我的技能工作方式如下,
User: "alexa, ask doctor is it safe to use vaccine during pregnancy"
Alexa: "gives a response, fetched from DynamoDB"
- (dialogState: Complete)
我从亚马逊收到了以下评论:
技能完成任务后,会话保持打开状态,不会提示用户。如果技能未提示用户输入任何内容,则它必须在完成请求后关闭会话。
谁能帮我解决这个问题?
我尝试使用 DelegateDialog
但它似乎不起作用。
handler_input.response_builder.add_directive(DelegateDirective())
.speak(message)
.ask(reprompt)
.set_card(SimpleCard("Custom", message))
我希望 Alexa 向用户提问,例如“你还有其他问题吗?”
这样对话就不会结束并继续进行。我不想在 Alexa 发送答案后立即关闭会话。
几件事:
delegate 指令是当您希望 ASK(Alexa Skills Kit) 确定接下来要发言的内容时。这仅在您有 dialog model
( 需要插槽、引出提示等 )且对话尚未完成时才有意义。您似乎没有使用对话模型,并且无论如何您都在委托和提供 speak() ,我认为这不是您想要的。
对于您的场景,您可能希望生成包含答案和下一个问题的完整输出。它可以像 string-append 一样简单:message = db_response + ". Anything else?
"
我正在创建 Alexa 技能,但被亚马逊拒绝了。我的技能工作方式如下,
User: "alexa, ask doctor is it safe to use vaccine during pregnancy"
Alexa: "gives a response, fetched from DynamoDB" - (dialogState: Complete)
我从亚马逊收到了以下评论:
技能完成任务后,会话保持打开状态,不会提示用户。如果技能未提示用户输入任何内容,则它必须在完成请求后关闭会话。
谁能帮我解决这个问题?
我尝试使用 DelegateDialog
但它似乎不起作用。
handler_input.response_builder.add_directive(DelegateDirective())
.speak(message)
.ask(reprompt)
.set_card(SimpleCard("Custom", message))
我希望 Alexa 向用户提问,例如“你还有其他问题吗?” 这样对话就不会结束并继续进行。我不想在 Alexa 发送答案后立即关闭会话。
几件事:
delegate 指令是当您希望 ASK(Alexa Skills Kit) 确定接下来要发言的内容时。这仅在您有 dialog model
( 需要插槽、引出提示等 )且对话尚未完成时才有意义。您似乎没有使用对话模型,并且无论如何您都在委托和提供 speak() ,我认为这不是您想要的。
对于您的场景,您可能希望生成包含答案和下一个问题的完整输出。它可以像 string-append 一样简单:message = db_response + ". Anything else?
"