是的,一切都按预期工作。
你可以做一个或另一个。
(1) 在实现意图时在 Lex 控制台中设置响应。
或者 (2) 在实现意图时在 Lambda 中构建您自己的响应。
使用 Lambda 函数可以让您更好地控制您的机器人,并让您以更动态和定制的消息进行响应。
因此,如果您改用 Lambda,则在实现意图时必须自己创建响应。您可能希望使用confirmIntent
这种类型的是/否问题。
查看Lambda-Lex 响应格式(确认意图大约在页面的中间)
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
- 未使用确认意图
Confirmed
- 用户对 confirmIntent 问题说“是”
Denied
- 用户对 ConfirmIntent 问题说“否”
查看页面顶部附近的相同链接,了解 Lex 到 Lambda 输入事件的格式。
只是一个提示:
您可以改为通过close
消息来实现意图并询问用户“我还能如何帮助您?”
然后用户可以立即询问另一个计算,而不必在每个计算问题之前说是或否。