如果您使用的是 Amazon Lex V2,请改为参阅 Amazon Lex V2 指南。
如果您使用的是 Amazon Lex V1,我们建议您将机器人升级到 Amazon Lex V2。我们不再向 V1 添加新功能,强烈建议使用 V2 以获得全新的机器人。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
AMAZON.FallbackIntent
当意图的用户输入与机器人的预期不符时,您可以配置 Amazon Lex 以调用回退意图。例如,如果用户输入“我想要订购糖果”,与 OrderFlowers
机器人中的意图不匹配,Amazon Lex 会调用回退意图来处理该响应。
您可以通过向自动程序添加内置 AMAZON.FallbackIntent
目的类型来添加回退目的。您可以使用 PutBot 操作指定目的,也可以从控制台的内置目的列表中选择目的。
调用回退目的分两步。在第一步中,基于用户的输入来匹配回退目的。匹配回退目的时,自动程序的行为方式取决于为提示配置的重试次数。例如,如果确定目的的最大尝试次数为 2,则自动程序会在调用回退目的之前两次返回自动程序的澄清提示。
在以下情况下,Amazon Lex 与回退意图匹配:
-
用户输入到目的的内容不符合自动程序的预期
-
音频输入为噪声,或文本输入未被识别为单词。
-
用户的输入不明确且 Amazon Lex 无法确定要调用的意图。
在以下情况下调用回退目的:
-
对话开始后,经过配置的澄清尝试次数后,自动程序无法将用户输入识别为目的。
-
经过配置的尝试次数后,目的无法将用户输入识别为插槽值。
-
经过配置的尝试次数后,目的无法将用户输入识别为对确认提示的响应。
您可以将以下各项与回退目的结合使用:
-
履行 Lambda 函数
-
结论语句
-
跟进提示
您不能将以下内容添加到回退目的:
-
表达
-
Slots
-
初始化和验证 Lambda 函数
-
确认提示
如果您同时为机器人配置了取消语句和回退意图,Amazon Lex 将使用回退意图。如果您需要机器人具有取消语句,则可以将履行功能用于回退意图,以提供与取消语句相同的行为。有关更多信息,请参阅 PutBot 操作的 abortStatement
参数。
使用澄清提示
如果您向自动程序提供了一个澄清提示,则该提示将用于向用户征求有效目的。该澄清提示将重复您配置的次数。此后,将调用回退目的。
如果您在创建机器人时未设置澄清提示,并且用户未使用有效意图开始对话,则 Amazon Lex 会立即调用您的回退意图。
当您在没有澄清提示的情况下使用回退意图时,Amazon Lex 在以下情况下不会调用回退意图:
-
当用户响应跟进提示但不提供目的时。例如,在响应后续提示(“您今天还想要其他东西吗?”)时,用户说“是”。由于 Amazon Lex 没有发送给用户以获取用户意图的澄清提示,因此它会返回“400 错误请求”异常。
-
当使用 AWS Lambda 函数时,您返回一个
ElicitIntent
对话类型。由于 Amazon Lex 没有用于获取用户意图的澄清提示,因此它会返回“400 错误请求”异常。 -
当使用
PutSession
操作时,您发送一个ElicitIntent
对话类型。由于 Amazon Lex 没有用于获取用户意图的澄清提示,因此它会返回“400 错误请求”异常。
使用具有回退意图的 Lambda 函数
调用回退目的时,响应取决于 PutIntent 操作的 fulfillmentActivity
参数设置。自动程序执行下列操作之一:
-
将目的信息返回给客户端应用程序。
-
调用履行 Lambda 函数。它通过为会话设置的会话变量调用该函数。
有关设置在调用回退目的时的响应的更多信息,请参见 PutIntent 操作的 fulfillmentActivity
参数。
如果在回退意图中使用履行 Lambda 函数,则可以使用此函数来调用另一个意图或与用户进行某种形式的通信,例如收集回叫号码或与客户服务代表进行会话。
您可以在回退意图 Lambda 函数中执行任何您可以在任何其他意图的履行函数中执行的操作。有关使用 AWS Lambda 创建完成函数的更多信息,请参阅使用 Lambda 函数。
回退目的可以在同一会话中多次调用。例如,假设您的 Lambda 函数使用 ElicitIntent
对话操作来提示用户输入一个不同的意图。如果 Amazon Lex 在配置的尝试次数后无法推断用户的意图,将再次调用回退意图。当用户在配置的尝试次数后未使用有效的插槽值进行响应时,它也会调用回退目的。
您可以配置一个 Lambda 函数来跟踪使用会话变量调用回退意图的次数。如果该意图的调用次数超过了 Lambda 函数中设置的阈值,则该函数可以采取不同的操作。有关会话变量的更多信息,请参阅设置会话属性。