我正在开发一个聊天机器人,我正在做测试如何使技术的使用。我的想法是使用链接到API.ai的,从API.ai使用Web钩子发送到Amazon网关+ Lambda,用DynamoDB执行一些任务。
我的问题是Web钩子(这是我第一次使用它),如果我有一个与API.ai相关的url (API.ai)。当不同意图需要时,我称之为不同的Lambda函数。这就是说:
Intent1 -> API网关-> Lambda1
Intent2 -> API网关-> Lambda2
我曾经想过,因为它是一个单独的url ( API.ai ),它可以在API.ai中关联。是否应该使用Lambda函数作为过滤器?
Intention1 -> API网关-> LambdaFilter -> Lambda1
Intention2 -> API网关-> LambdaFilter -> Lambda2
我很感谢你的帮助和建议。
发布于 2017-10-18 16:07:13
嗯,我也在为这个建筑规划而挣扎。您将需要一个API条目,也就是说,它将指向特定的lambda函数。
您可以为您的Lambda激活“代理集成”,并且您将能够捕获所有从API.ai发送的在履行webhook上发送的头。
然后,使用LambdaFilter (即Lambda),您将需要使用boto3编写代码来调用其他lambda,这将增加更多的lambda调用和处理时间。另一件要尝试的事情(我还没有尝试)是StepFuncions,它声称能够解决lambda工作流管理问题。
为了说明在我的测试中调用另一个lambda是多么糟糕,我做了SLACK > APIGW > LAMBDAs > SLACK。一个由4个lambda调用组成的链(松弛处理程序、通用处理程序、通用通知程序、松弛通知程序)正在.6~.9s周围运行.我还没有给API.ai打电话!将其压缩到只有2个lambda(处理程序和通知程序,其中包含更复杂的代码)使我进入了一个.3~.4s场景。
我这样做是为了避免将我的解决方案耦合到API.ai或Slack。
https://stackoverflow.com/questions/44742502
复制相似问题