调用对话框代码挂钩 - Amazon Lex

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

调用对话框代码挂钩

在对话的每一步中,当 Amazon Lex 向用户发送消息时,您均可以使用 Lambda 函数作为对话的下一步。您可以使用该函数,根据对话的当前状态来实现业务逻辑。

运行的 Lambda 函数与您正在使用的机器人别名相关联。要在意图中的所有对话框代码挂钩中调用 Lambda 函数,您必须针对该意图选择使用 Lambda 函数来初始化和验证。有关选择 Lambda 函数的更多信息,请参阅创建 Lambda 函数并将其附加到机器人别名

使用 Lambda 函数需要两个步骤。首先,您需要在对话中的任何节点激活对话框代码挂钩。接下来,您需要将对话的下一步设置为使用对话框代码挂钩。

下图显示了已激活的对话框代码挂钩。

显示条件响应代码挂钩处于活动状态。

接下来,将代码挂钩设置为对话步骤的下一个操作。为此,您可以将对话的下一步配置为“调用对话框代码挂钩”。请参见下图中所示的条件分支,在该条件分支中,调用对话框代码挂钩是对话默认路径的下一步。

将代码挂钩显示为对话的下一步的条件分支。

当代码挂钩处于活动状态时,您可以设置返回给用户的以下三个响应:

  • 成功:在 Lambda 函数成功完成时发送该响应。

  • 失败:如果运行 Lambda 函数时出现问题,或者 Lambda 函数返回的 intent.state 值为 Failed,则发送该响应。

  • 超时:如果 Lambda 函数未在其配置的超时时间内完成,则发送该响应。

显示 Lambda 函数运行后的可用消息选项的流程图。

选择 Lambda 对话框代码挂钩,然后选择高级选项以查看与 Lambda 函数调用相对应的三个响应选项。您可以设置值、配置后续步骤,并应用与每个响应相对应的条件以设计对话流程。如果没有条件或明确的下一步操作,Amazon Lex V2 将根据对话的当前状态决定下一步操作。

您还可以在高级选项页面上选择启用或禁用 Lambda 函数调用。启用该函数后,将通过 Lambda 调用来调用对话框代码挂钩,然后根据 Lambda 调用结果显示成功、失败或超时消息。禁用该功能后,Amazon Lex V2 不运行 Lambda 函数,而是将对话代码挂钩视作成功并继续运行。

您还可以设置调用标签,该标签将在被该消息调用时发送到 Lambda 函数。您可以使用该调用标签来帮助识别要运行的 Lambda 函数的部分。

注意

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