【问题标题】:Follow up questions in AWS Lex跟进 AWS Lex 中的问题
【发布时间】:2021-03-01 17:30:04
【问题描述】:

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

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

【问题讨论】:

    标签: amazon-web-services chatbot amazon-lex


    【解决方案1】:

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

    我在这里构建了一个示例:

    我将槽类型命名为affirmation

    然后我将同义词列表限制为等同于 YesNo 值。

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

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

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

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


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

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

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

    【讨论】:

    • 谢谢杰。这肯定是有帮助的。我需要一些关于上述后续问题的信息。你能指点我那个方向吗?
    • 我认为这个是/否问题是您需要的后续问题。您能否给出一个您想要的示例 convo,以及您必须使用什么 Lambda 代码来控制该 convo?然后我可以告诉你如何使用这个自定义的 slotType。
    • 当然。用户给出一个搜索词。我显示搜索结果的前 10 个结果,然后询问他们是否想查看更多结果(第一个问题)。根据回复(是/否)显示更多结果。结果显示后,我需要询问结果是否有帮助(第二个问题)。这是我想要建模的对话流。这里有两个后续问题,回答是/否。我确实了解您是如何制作自定义插槽的,这将是我获得回复的方式,但我需要一种机制来向用户提出这些后续问题。
    • 我现在明白了!好的,在制作完这个 SlotType 之后,您可以创建多个在一个意图中使用它的插槽。假设您创建了一个名为“moreResults”的插槽和另一个名为“resultsFeedback”的插槽。两者都将设置为使用此“肯定”插槽类型来检测是/否响应。然后,当您 ElicitSlot 在 convo 中的这些插槽中的任何一个时,您可以专门针对每个插槽形成问题。您可以在下一个响应时检查您的 Lambda 中的插槽是否填充了值“是”或“否”。
    • 非常感谢。这非常有效。也请将此部分添加到您的答案中。这正是我所需要的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多