首页 > 解决方案 > 当 lex 不自动处理意图时如何调用 lambda?

问题描述

我的 Lex 机器人有四个意图。假设用户在对话一开始就提出了一个问题,并且这个问题没有分配给四个意图中的任何一个。因此,不会建立任何意图。发生这种情况时,我想调用 lambda 来运行“意图建议模型”(使用主题建模构建),以向用户建议问题的意图可能是什么。此外,lambda 必须将此类查询存储在数据库(s3 或 RDB)中,以便如果此类查询是重复的,那么最终可以将该意图添加到机器人和其他分析解决方案中。

标签: amazon-web-servicesamazon-s3aws-lambdachatbotamazon-lex

解决方案


您需要的是后备意图,但 Lex 目前不支持后备意图。
如果您使用聊天客户端和 Lex 之间的桥梁,您仍然可以实现此目的。

在您的聊天客户端和 Lex 之间设置 API Gateway 和 Lambda 函数。

在此处输入图像描述

您的聊天客户端将向 API Gateway 发送请求,API Gateway 会将其转发给 Lambda 函数,该函数将用于调用 Lex 并从中获取响应。Lex 将多一个 lambda 函数作为 webhook。
在您用来调用 Lex 的 Lambda 函数中,我们可以检查是否有任何意图匹配或我们收到错误消息,如果它是错误消息并触发诸如intent suggestion model.

您需要使用boto库来调用 Lex 和使用post_text()方法。

希望能帮助到你。


推荐阅读