Slots - Amazon Lex

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Slots

插槽是用户为履行意图而提供的值。有两种类型的插槽:

  • 内置插槽类型:您可以使用内置的插槽类型来捕获标准值,例如数字、名称和城市。有关系统支持的内置插槽类型的列表,请参阅内置槽位类型

  • 自定义插槽类型:您可以使用自定义插槽类型来捕获特定于意图的自定义值。例如,您可以使用自定义插槽类型来捕获账户类型,例如“信用账户”或“储蓄账户”。有关更多信息,请参阅自定义槽位类型

要在意图中定义插槽,您必须配置以下内容:

  • 插槽信息:该字段包含插槽的名称和描述(可选)。例如,您可以将插槽名指定为“AccountNumber”以获取账号。如果插槽作为履行意图的对话流程的一部分是必需的,则必须将其标记为必填项。

  • 插槽类型:定义可以接受的插槽值列表的插槽类型。您可以创建自定义插槽类型或使用预定义的插槽类型。

  • 插槽提示:向用户提出的收集信息的问题。您可以配置用于收集信息的重试次数以及每次重试时使用的提示的变体。您还可以在每次重试后启用 Lambda 函数调用,以处理所捕获的输入并尝试解析为有效的输入。

  • 等待并继续(可选):通过启用此行为,用户可以说出“稍等片刻”等短语,机器人即等待用户查找并提供信息。仅对流式传输对话启用此功能。有关更多信息,请参阅允许机器人等待用户提供更多信息

  • 插槽捕获响应:您可以根据从用户输入中捕获插槽值的结果来配置成功响应和失败响应。

  • 条件分支:您可以在播放初始响应后应用条件。当条件计算为 true 时,将执行您定义的操作。有关更多信息,请参阅添加条件以构建对话的分支

  • 对话框代码挂钩:您还可以使用 Lambda 代码挂钩来验证插槽值并执行业务逻辑。有关更多信息,请参阅调用对话框代码挂钩

  • 用户输入类型:您可以配置输入类型,以便机器人可以接受特定的模式。默认情况下,音频和 DTMF 模式均是支持的。您可以选择将其设置为仅音频或仅限 DTMF。

  • 音频输入超时和长度:您可以配置音频超时,包括语音超时和静默超时。此外,您还可以设置最大音频长度。

  • DTMF 输入超时、字符和长度:您可以设置 DTMF 超时以及删除字符和结尾字符。此外,您还可以设置最大 DTMF 长度。

  • 文本长度:您可以设置文本模式的最大长度。

播放插槽提示后,用户提供插槽值作为输入。如果 Amazon Lex V2 无法理解用户提供的插槽值,则将重新尝试引发该插槽,直到理解某个值或超过您为该插槽配置的最大重试次数。使用高级重试设置,您可以配置超时、限制输入类型,以及启用或禁用初始提示和重试的中断。每次尝试捕获输入后,Amazon Lex V2 都可以利用为重试提供的调用标签来调用为机器人配置的 Lambda 函数。例如,您可以使用 Lambda 函数来应用您的业务逻辑来尝试将其解析为有效值。可以在插槽提示的高级选项中启用此 Lambda 函数。


                    设置插槽提示,以便机器人引发信息。

您可以定义在输入插槽值或超过最大重试次数后,机器人应向用户发送的响应。例如,对于用于安排汽车服务的机器人,您可以在输入车辆识别码 (VIN) 时向用户发送消息:

感谢您提供车辆的 VIN 号码。现在将开始安排预约。

您可以创建两个响应:

  • 成功响应:当 Amazon Lex V2 了解插槽值时发送。

  • 失败响应:当 Amazon Lex V2 在达到最大重试次数后仍无法理解用户的插槽值时发送。

您可以设置值、配置后续步骤,并应用与每个响应相对应的条件以设计对话流程。

如果未设置条件或明确的下一步操作,Amazon Lex V2 将按优先级继续执行下一个插槽。


                    插槽响应的高级选项。

您可以使用 Lambda 函数来验证用户输入的插槽值并确定下一步应执行的操作。例如,您可以使用验证功能来确保输入的值位于正确的范围内,或者格式正确。要激活 Lambda 函数,请在对话框代码挂钩部分中选择调用 Lambda 函数复选框和活动按钮。您可以为对话框代码挂钩指定调用标签。此调用标签可以在 Lambda 函数中用于编写与插槽引发相对应的业务逻辑。


                    对话框代码挂钩的选项。

该意图不需要的插槽不是主对话流程的一部分。但是,如果用户言语包含您的机器人识别为对应于可选插槽的值,则可以用该值填充该插槽。例如,如果您将业务智能机器人配置为具有可选 City 插槽和用户言语 What is the sales for April in San Diego?,则该机器人将该可选插槽填充为 San Diego。您可以将业务逻辑配置为使用可选的插槽值(如果存在)。

使用后续步骤无法引发该意图所不需要的插槽。这些步骤只能在意图引发期间填充(如上一个示例所示),也可以通过在 Lambda 函数中设置对话状态来被引发。如果该插槽是使用 Lambda 函数引发的,则必须使用 Lambda 函数在插槽引发完成后决定对话的下一步操作。要在构建机器人时启用对下一步的支持,您必须将该插槽标记为意图所必需的。

注意

Amazon Lex V2 于 2022 年 8 月 17 日发布了对用户对话管理方式的更改。借助此更改,您可以更好地控制用户的对话路径。有关更多信息,请参阅了解对话流管理。2022 年 8 月 17 日之前创建的机器人不支持对话框代码挂钩消息、设置值、配置后续步骤和添加条件。

以下主题介绍如何配置机器人以重新引发已填充的插槽值,以及如何创建由多个值组成的插槽: