【发布时间】:2020-07-24 16:31:33
【问题描述】:
如何处理多个确认提示: 用例,第一个提示是询问您想添加更多产品吗? 如果是,应重复购买更多产品和数量的意图, 如果没有,应该要求确认 - 我应该下订单吗? -> 如果是,下订单,如果不是 -> 取消
【问题讨论】:
标签: node.js reactjs aws-lambda aws-lex
如何处理多个确认提示: 用例,第一个提示是询问您想添加更多产品吗? 如果是,应重复购买更多产品和数量的意图, 如果没有,应该要求确认 - 我应该下订单吗? -> 如果是,下订单,如果不是 -> 取消
【问题讨论】:
标签: node.js reactjs aws-lambda aws-lex
简答:使用sessionAttributes
-------------
带提示的长答案:
如果你必须这样做,你应该使用一个意图,但多次重新引出同一个槽。
您可能还应该事先询问他们想要列出多少产品,这样您就可以在期望确认之前询问这么多东西,而不是每次都询问他们是否要添加其他产品。
假设您有一个披萨订购机器人。对于浇头,可能是这样的。
Bot:你想要什么浇头?
用户:奶酪
Bot:你想要另一个浇头吗?
用户:是的
Bot:你想要什么浇头?
用户:辣椒
Bot:你想要另一个浇头吗?
(……一次又一次,不自然)
所以如果你改成这样会更自然:
Bot:你想要多少浇头?
用户:3
Bot:好的,第一个浇头是什么?
用户:奶酪
Bot:知道了,第二个浇头是什么?
(更短,更自然)
在这两种情况下,您都会有一个用于浇头的插槽,每次收集 1 个值时,您都会将该值复制到机器人的 sessionAttributes 中,然后从您返回的 slots 对象中删除该插槽当你 ElicitSlot 为同一个插槽时,机器人。
然后,当用户确认他们已完成为您提供他们想要的所有“浇头”或产品时,您可以结合您之前的所有值 sessionAttributes 并实现意图。
【讨论】: