将文件上传到 Amazon Lex

Uploading a file to Amazon Lex

我正在使用 Amazon Lex 创建一个聊天机器人,其想法是用户可以将 Excel 文件放入 Slack 通道,然后机器人将文件发送到适当的 Lambda 函数。实现此目标的最佳方法是什么?

如果 Lex 机器人将文件上传到其他可访问的地方(s3、EC2、Github 等),然后将地址发送到 Lambda 函数,这也是可以接受的。

我没有看到任何 SlotTypes 支持这种类型的输入。

Lex PostTextPostContent 方法不支持上传加载文件。

  • 在 slack 中,当用户上传文件时,您将在负载中获得文件 url。
  • 创建插槽类型,例如 - 文件。将枚举值保持为 uploaded.
  • 当 slotToElicit 为 File 时检查 payload 中是否存在 url。如果存在,则使用会话属性将 URL 发送到 lex,并将插槽值填充为 Uploaded(默认值)。如果用户没有上传文件,请用一些随机文本填充插槽值以再次引出插槽。
  • 借助会话属性,您可以访问文件并将其上传到 S3。