首页 > 解决方案 > 跟进 AWS Lex 中的问题

问题描述

我正在尝试使用 Amazon Lex 创建一个聊天机器人来显示来自数据库的结果。设计的对话流程是首先显示 10 个结果,然后为用户提供“查看更多结果?”选项,这将是一个是/否的问题。这将从数据库中获得额外的 10 个结果。我搜索了互联网上的文档和论坛,以了解添加此后续是/否问题的方法,但未成功。我对 LEX 比较陌生,无法模拟这种对话流。有人可以解释这个/指导我找到正确的文档吗?

任何帮助/链接都非常感谢。

标签: amazon-web-serviceschatbotamazon-lex

解决方案


您可以在 Lex 控制台中创建自己的 Yes/No 自定义槽类型。

我在这里构建了一个示例: 在此处输入图像描述

我命名了插槽类型affirmation

然后我限制了一个同义词列表以等同于一个Yes或一个No值。

这允许用户以许多不同的方式自然地做出响应,并且机器人将做出适当的响应。您所要做的就是构建您的 Lambda 处理任何使用此插槽类型的插槽来查找“是”或“否”。

您也可以轻松监控此插槽以记录任何不在同义词列表中的输入,以扩展您的列表并提高您的机器人对肯定和否定的识别。

我什至在 Lambda 中为这个插槽构建了一个解析器,以便能够在我的机器人中正确识别表情符号(拇指向上/向下、笑脸、悲伤的脸等)作为对这类问题的正面或负面答案。

Lex 没有像 Alexa 那样内置此功能可能会令人惊讶,但构建起来并不难,您可以轻松自定义它,而内置插槽类型无法做到这一点。


无论如何,在制作了这个 SlotType 之后,您可以创建多个在一个意图中使用它的插槽。

假设您创建了一个名为“moreResults”的插槽和另一个名为“resultsFeedback”的插槽。两者都将设置为使用此“肯定”插槽类型来检测是/否响应。

然后,当您 ElicitSlot 在 convo 中的这些插槽中的任何一个时,您可以专门针对每个插槽形成问题。您可以在下一个响应时检查您的 Lambda 中的插槽是否填充了值“是”或“否”。


推荐阅读