如何在DynamoDB中存储chatbot(在aws lex中)的聊天对话

时间:2017-09-07 09:04:57

标签: amazon-web-services amazon-lex

我正在为拥有大量流量的网站构建聊天机会

我决定在AWS lex中构建chatbot

我想将所有聊天对话保存在Dynamo数据库中的单个属性,因为我为该属性选择了列表数据类型

我可以将所有插槽数据转换为不同的变量,但是如何保存用户输入的话语并提示我们在lex控制台中定义的内容以及如何像谈话一样安排它们。

如果有存储聊天对话的替代方法吗?

1 个答案:

答案 0 :(得分:1)

因为它是你的机器人,你知道会话超时值。在lambda函数中,您可以生成会话ID(随机UUID)并将其放在会话属性中(阅读更多here)。您可以在帐户中创建一个DDB表,并按照以下方式进行设计:

  • 哈希键:userId
  • 范围键:sessionId #timeStamp
  • Request(String attribute):发送到Lambda函数的请求结构的JSON格式

现在只要会话有效,您就可以随时检索放在会话属性映射中的sessionId。使用此功能,您始终可以创建范围键(sessionId + "#" + currentTimeStamp)。在lambda中的每个调用中,您还可以获得机器人的用户ID。您可以通过所有这些信息以您希望的方式存储话语。