即使在“意图”的“响应”部分中设置了漫游器,该漫游器也不显示后续提示。如果将“ ReturnParametersToClient”选择为“实现”选项,则此方法有效。当实现更改为AWS Lambda函数时,它不再显示后续问题。
例如: 如果我的用户输入
3x10
我有一个Lambda函数来执行此计算,并以Lex期望的JSON格式返回结果。因此它显示
30
然后,它应该提出后续问题
Would you like me to do another calculation?
用户可以响应的
No
据我了解,“意图”编辑器页面中的“响应”部分正是我应该能够配置问题“您是否希望我进行另一次计算?”的地方。以及另一条消息(如果用户回答否定,则在“等待用户答复”部分。
答案 0 :(得分:0)
是的,一切都按预期进行。
您可以做任何一个。
满足意图后,可以(1)在Lex控制台中设置响应。
或(2)在满足意图时在Lambda中建立自己的响应。
使用Lambda函数可让您更好地控制漫游器,并以更动态和量身定制的消息进行响应。
因此,如果您要切换为使用Lambda,则必须在实现目标时自行创建该响应。对于这种类型的是/否问题,您可能需要使用confirmIntent
。
签出Lambda-Lex Response Format(确认有关页面中途停留的意图)
ConfirmIntent-通知Amazon Lex,要求用户提供是或否的答案以确认或拒绝当前意图。
发送该响应作为ConfirmIntent将类似于以下内容:
"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然后需要处理该问题的答案。
用户的答案将返回相同的意图,并且confirmationStatus
将是:
None
-未使用confirmIntent
Confirmed
-用户对ConfirmIntent问题说“是”
Denied
-用户对ConfirmIntent问题说“否”
在页面顶部附近的上方找到相同的链接,以获取Lex到Lambda输入事件的格式。
只是一个提示:
您可以只用close
消息来实现意图,并向用户询问类似“我还能为您提供什么帮助?”之类的东西。
然后,用户可以立即询问另一个计算,而不必在每个计算问题之前都说是或否。