我正在创建一种Alexa技能,但遭到了亚马逊的拒绝。我的技能的工作方式如下,
用户:“ alexa,请问医生怀孕期间使用疫苗是否安全”
Alexa :“给出响应,从DynamoDB获取” -(dialogState:完成)
我从亚马逊获得了以下评论:
技能完成任务后,会话将保持打开状态,而不会提示用户。如果技能没有提示用户任何输入,则必须在满足请求后关闭会话。
有人可以帮我吗?
我尝试使用DelegateDialog
,但似乎不起作用。
handler_input.response_builder.add_directive(DelegateDirective())
.speak(message)
.ask(reprompt)
.set_card(SimpleCard("Custom", message))
我希望Alexa向用户提问,例如“ 您还有其他问题吗?” 这样对话不会结束并继续进行。我不想在Alexa发送答案后立即关闭会话。
答案 0 :(得分:1)
几件事:
delegate指令是您希望 ASK(Alexa Skills Kit)确定下一个要说的话的时候。仅当您有dialog model
(需要广告位,提示提示等)并且对话框尚未完成时,这才有意义。您似乎并没有使用对话框模型,无论如何,您都在委派并提供了我不想要的speak()。
对于您的情况,您可能希望产生一个既包含答案又包含下一个问题的完整输出。它可以像添加字符串一样简单:message = db_response + ". Anything else?
“