Amazon web services 如何使AWS Lex bot在意图实现后提示后续操作(使用Lambda)?

Amazon web services 如何使AWS Lex bot在意图实现后提示后续操作(使用Lambda)?,amazon-web-services,aws-lex,Amazon Web Services,Aws Lex,即使在意向书的“响应”部分中设置了后续提示,bot也不会显示后续提示。如果选择“ReturnParametersToClient”作为履行选项,则此选项有效。当履行更改为AWS Lambda功能时,不再提出后续问题 例如: 如果我的用户输入 3x10 我有一个Lambda函数来执行此计算,并以JSON格式返回结果。它就这样表现出来了 30 然后,它应该提出后续问题 Would you like me to do another calculation? 用户可以对其作出响应 No 据我所

即使在意向书的“响应”部分中设置了后续提示,bot也不会显示后续提示。如果选择“ReturnParametersToClient”作为履行选项,则此选项有效。当履行更改为AWS Lambda功能时,不再提出后续问题

例如: 如果我的用户输入

3x10
我有一个Lambda函数来执行此计算,并以JSON格式返回结果。它就这样表现出来了

30
然后,它应该提出后续问题

Would you like me to do another calculation?
用户可以对其作出响应

No

据我所知,Intent editor页面中的“响应”部分正是我可以配置问题“您想让我再做一次计算吗?”和另一条消息的地方(如果用户的回答是否定的,则在“等待用户答复”部分)。

是的,一切都按预期进行

你可以做一个或另一个。
(1)当达到目的时,在Lex控制台中设置响应。
或者(2)当意图实现时,在Lambda中构建您自己的响应

使用Lambda功能可以让您对bot进行更多的控制,并让您能够以更动态和定制的消息进行响应

因此,如果您要切换到使用Lambda,您必须在实现意图时自己创建该响应。您可能希望对该类型的是/否问题使用
confirminant

签出(确认页面的一半)

ConfirmIntent-通知Amazon Lex用户希望给出肯定或否定的回答,以确认或否定当前意图

以确认者的身份发送该响应将是这样的:

"dialogAction": {
    "type": "ConfirmIntent",
    "message": {
      "contentType": "PlainText",
      "content": "Would you like me to do another calculation?"
    },
    "intentName": "intent-name",
    "slots": {
       "slot-name": "value",
       "slot-name": "value",
       "slot-name": "value"  
   },
}
然后,您的Lambda需要处理该问题的答案。
用户的答案将返回到相同的目的,
确认状态将是:
None
-未使用确认词
已确认
-用户对确认问题说“是”
被拒绝
-用户对确认问题说“不”

查看页面顶部附近的相同链接,了解Lex to Lambda输入事件的格式


只是一个提示:

您可以通过
close
消息来实现此目的,并询问用户“我还能为您做些什么?”


然后,用户可以立即询问另一个计算,而不必在每个计算问题之前说“是”或“否”。

我向AWS支持部门确认,Lex不支持在Lambda完成后在单独的聊天泡泡中提交后续消息。因此,在Lex Test Bot部分无法做到这一点。但可以使用此功能由UI合并。例如,aws发布的示例支持多个消息气泡。