当dialogState完成时,如何从lambda函数向用户提示问题

时间:2019-07-08 12:53:49

标签: python-3.x aws-lambda alexa alexa-skills-kit

我正在创建一种Alexa技能,但遭到了亚马逊的拒绝。我的技能的工作方式如下,

  

用户:“ alexa,请问医生怀孕期间使用疫苗是否安全”

     

Alexa :“给出响应,从DynamoDB获取”    -(dialogState:完成)

我从亚马逊获得了以下评论:

技能完成任务后,会话将保持打开状态,而不会提示用户。如果技能没有提示用户任何输入,则必须在满足请求后关闭会话。

有人可以帮我吗?

我尝试使用DelegateDialog,但似乎不起作用。

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

我希望Alexa向用户提问,例如“ 您还有其他问题吗?” 这样对话不会结束并继续进行。我不想在Alexa发送答案后立即关闭会话。

1 个答案:

答案 0 :(得分:1)

几件事:

delegate指令是您希望 ASK(Alexa Skills Kit)确定下一个要说的话的时候。仅当您有dialog model需要广告位,提示提示等)并且对话框尚未完成时,这才有意义。您似乎并没有使用对话框模型,无论如何,您都在委派并提供了我不想要的speak()。

对于您的情况,您可能希望产生一个既包含答案又包含下一个问题的完整输出。它可以像添加字符串一样简单:message = db_response + ". Anything else?