0

我目前正在使用 AWS Lex 构建一个机器人。我面临的一个问题是如何存储用户的会话并检索它,以便机器人能够在用户转到新页面、刷新页面或返回时继续对话(并显示上一个对话)例如一周后?

例如 1 例如,当用户检查电子商务网站上的不同页面时,机器人正在帮助用户做出购买决定。

例如 2 另一个例子可能是用户在一周后重新访问网站,机器人识别出用户,显示之前的对话历史并发送自定义消息?

4

1 回答 1

4

AWS 为 Web 集成提供LexRuntime javascript API。此 API 提供 NLP,但不存储/获取对话历史记录。您必须创建自己的应用程序服务器并将对话存储到数据库中。您还需要管理访问您网站的用户数据库。

当用户访问网站时,从 DB 中获取用户的对话历史记录并将其填充到 UI 上。这样,即使用户刷新了一个页面,他也可以在从 DB 加载聊天历史记录时看到它。

现在的问题是Lex 如何记住用户以及记住多长时间?

Lex 使用以下参数创建用户会话:

  • 机器人名称
  • 机器人别名
  • 用户身份

这些参数与用户查询一起发送到 Lex。这里的用户 ID 可以是代表您网站用户的任何唯一标识符。Lex 使用这些参数来确定当前用户查询的会话。如果这些值中的任何一个被更改,Lex 将创建一个新会话或重用现有会话(如果可用于同一组值)。默认情况下,会话持续时间为 5 分钟,但您可以指定 0 到 1,440 分钟(24 小时)之间的任何持续时间。

使用 Lex 运行时 API,您可以使用以下两种方法将用户查询发送到您的机器人:

这两种方法都需要botNamealiasNameuserId参数。我希望这能回答你的第二个问题。

现在来到你的第一个用例

当用户检查电子商务网站上的不同页面时,机器人正在帮助用户做出购买决定。

为此,首先,您必须实施上述方法。完成此操作后,您可以将页面 URL(机器人所在的位置)发送到 Lex。您可以将此信息作为请求属性发送。在 Lex 控制台中,使用 lambda 函数根据页面 URL 确定响应。

这一切都需要开发的努力和时间。有很多第三方工具可以提供与 lex 的无代码集成。我推荐Kommunicate。也看看这个博客

于 2020-06-01T18:02:08.330 回答