亚马逊AWS官方博客

使用应答增强 Amazon Lex 聊天自动程序的功能

现在,您可以直接从 AWS 管理控制台将应答添加到 Amazon Lex 聊天自动程序中。可以使用应答与用户建立动态、有趣的交互。

使用应答

应答是自动程序意图的最终元素,将在意图实现之后显示给用户。 从简单的告别消息到图片轮播 (带有触发另一意图的不同按钮),再到提示等等,都可以成为应答。  对于某些使用案例,应答甚至可以是意图 (例如帮助引导用户使用不同自动程序功能的意图) 的主元素。

应答由动态选择的消息组成,这些消息来自开发人员创建的预定义消息组。  例如,在预订服务自动程序中,第一个消息组可以包含自动程序问候用户的不同方式:“您好”、“嗨”和“欢迎您”。第二个消息组可以包含不同形式的介绍:“我是预订服务自动程序”和“这是预订服务自动程序”。 第三个消息组可以讲述自身的功能:“我可以帮助您租车和预订酒店”等等。  Amazon Lex 在对话中使用每个消息组中的消息动态创建应答。例如,某对话可能包含以下消息:

另外一个对话可能包含以下消息:

应答可以像上面所述那样简单,表明用户回复的话语将触发另一个意图。  例如,用户可能会回复“租车”。如果“租车”与让某个意图帮助租车的话语匹配,则会无缝触发该意图。

应答最多可以包含三个组成部分:

  • 消息 (每个应答至少要包含一条消息)
  • 结束消息 (如果用户对应答中的问题回答“否”)
  • 应答卡

可以在 Amazon Lex 控制台中和通过 Amazon Lex SDK 使用应答。  我们逐一研究这三个组成部分,看看如何创建应答。

消息

在 Amazon Lex 控制台中,Responses (应答) 部分的第一个组成部分是消息或消息组。在编辑器中,消息组如下所示:

您可以为应答创建一个或多个消息组,这可能有助于设计出更自然的对话流程。  消息发送给消息组 (消息组一、消息组二等等) 标记的客户端,因此,每个消息组均自动显示在支持的 Amazon Lex 渠道 (例如 Facebook Messenger、Slack 和 Kik) 的各行上。  要在自定义客户端上以类似方式显示消息,您可以选择通过编写逻辑使这种行为保持一致。

应答消息也接受自定义格式,这可让您按照应用程序需求来定义消息负载。  在控制台上,为消息组标题中的每个消息组选择 Message (消息) 或 Custom Markup (自定义标记) 格式。  选择 Custom Markup (自定义标记) 会打开一个编辑器,供您输入消息负载:

要借助 Amazon Lex 开发工具包应用自定义格式,请使用 CustomPayload 参数。 可以单独为每个消息组设置格式,从而能在格式之间切换。

结束应答

可以将自动程序设置为在应答中提出后续问题。  例如,在前面的预订服务自动程序示例中,可以创建第四个消息组,使其包含如下所示的问题:

对于回复“否”的应答,您可以创建结束消息。  这也是在用户完成交互时结束对话的不错方式。

要创建结束消息,请在控制台上的 Responses (应答) 部分选择 Wait for user reply (等待用户回复)。系统会提示您输入消息内容,或在用户对另一交互回复“否”时发送给用户的消息。例如,在旅程预订意图中,您可以提供如下所示的消息:

利用 Amazon Lex 开发工具包,在创建应答中的后续提示时,可以指定在用户回复“否”时发送给用户的消息。

应答卡

应答卡是 Amazon Lex 控制台上 Responses (应答) 部分的下一个组成部分。 应答卡包含一组供用户选择的合适应答以及图像或图形。 应答卡可以丰富交互内容和并为用户简化体验,同时提高自动程序的准确性。

例如,在酒店预订应用程序中,可以将应答卡中的每个按钮配置为对应不同的房型。 在用户选择这些按钮中的某一个时,对应房型的按钮值会返回给 Amazon Lex,触发新的意图。

要允许用户滚动浏览选项,您可以启用应答卡轮播。  在酒店预订示例中,轮播的每张卡都可以代表不同的酒店、城市或旅游胜地。

预览模式

可以使用预览模式来查看应答。

例如,在通过前面的示例构建预订服务自动程序之后,您可以立即预览应答:

如果消息组包含多条消息,则可以通过选择 Refresh response (刷新应答) 查看其他应答。  要返回编辑器,请选择 Exit preview (退出预览)。

开始使用

应答在 Facebook Messenger、Slack 和 Kik 等 Amazon Lex 支持的渠道 (消息收发平台) 上直接可用。  您也可以编写自定义客户端和移动应用程序,以使用包括应答卡在内的应答。

要在控制台中创建应答,请选择自动程序或新建一个自动程序,然后填写每个意图底部的 Responses (应答) 部分。  所有应答都至少要有一个消息组,而且消息组至少要包含一条消息。

有关在 Amazon Lex 中创建应答的更多信息,请参阅 Amazon Lex 文档常见问题

想了解更多关于使用 Amazon Lex 开发聊天自动程序的信息?了解如何使用我们的两部分式教程创建更出色的自动程序!


作者简介

John Reed 是 AWS Deep Learning 和 AI 控制台高级产品经理。他从事 AWS AI 技术研究工作,以改善用户和开发人员的体验。他在空闲时喜欢鼓捣小玩意、滑雪、背包旅行和进行其他户外活动。