我有一个从三个 API 获取信息的机器人。现在,我将所有这些信息汇总到消息中并一次性发送:
{
sessionAttributes,
dialogAction: {
type: 'Close',
'Fulfilled',
message
}
有没有办法在我收到信息时发送出去? 最终结果将是一条接一条不同的消息,而无需用户进行任何输入。
最佳答案
这在 Lex 中是不可能的。 AWS Lex 遵循请求/响应模型,因此只会处理与用户请求直接相关的响应。 正如您在问题中所述,推荐的方法是聚合。
但是,根据您的集成策略,您可以通过绕过 Lex 并将结果从您的 API 直接发送给用户来发送多条消息。
例如
- 用户:“嘿 Lex。拿走我的东西”
- 莱克斯
- 异步调用每个 API
- 回复用户:“我现在会把它们发送给你”
- API 1 给用户:“这是结果 1”
- API 2 给用户:“这是结果 2”
此策略适用于 Slack 等集成,其中可以通过同一 channel 从多个来源接收消息。
关于aws-lambda - Amazon Lex 多条消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44316581/