amazon-web-services - 当 lex 不自动处理意图时如何调用 lambda?
问题描述
我的 Lex 机器人有四个意图。假设用户在对话一开始就提出了一个问题,并且这个问题没有分配给四个意图中的任何一个。因此,不会建立任何意图。发生这种情况时,我想调用 lambda 来运行“意图建议模型”(使用主题建模构建),以向用户建议问题的意图可能是什么。此外,lambda 必须将此类查询存储在数据库(s3 或 RDB)中,以便如果此类查询是重复的,那么最终可以将该意图添加到机器人和其他分析解决方案中。
解决方案
您需要的是后备意图,但 Lex 目前不支持后备意图。
如果您使用聊天客户端和 Lex 之间的桥梁,您仍然可以实现此目的。
在您的聊天客户端和 Lex 之间设置 API Gateway 和 Lambda 函数。
您的聊天客户端将向 API Gateway 发送请求,API Gateway 会将其转发给 Lambda 函数,该函数将用于调用 Lex 并从中获取响应。Lex 将多一个 lambda 函数作为 webhook。
在您用来调用 Lex 的 Lambda 函数中,我们可以检查是否有任何意图匹配或我们收到错误消息,如果它是错误消息并触发诸如intent suggestion model
.
您需要使用boto
库来调用 Lex 和使用post_text()
方法。
希望能帮助到你。
推荐阅读
- vector - 无法通过索引访问向量中的可变引用
- git - 当我执行 git clone 时,在不区分大小写的文件系统上出现区分大小写的路径冲突
- node.js - 通过 ID 数组检查文档是否存在
- c - 缓冲区的地址是否等于缓冲区?
- java - Java 11 时间 - 今天是(长)时间戳
- java - 使用Java将目录复制到另一个目录
- c# - 如何将gridview中每一行的值相乘
- gdb - gbd 无法链接到源
- python - Tkinter - 只标记一个复选框
- java - 在 com.sun.jdi.ObjectReference 上调用方法时,何时使用 INVOKE_SINGLE_THREADED 或 INVOKE_NONVIRTUAL?