【发布时间】:2019-12-26 19:18:02
【问题描述】:
我已按照教程设置 Lex&Lambda。我的 lambda 函数返回
return {
"dialogAction": {
"type": "ConfirmIntent",
"intentName": "GetPersonInfo",
"message": {
"contentType": "PlainText",
"content": ""
}
}
}
并且 Lex 将其显示为单个消息。当我在 aws 网站上构建我的机器人时,我可以设置多条消息作为答案(不使用 lambda),我想使用 lambda 函数来做到这一点,就像在 img 上一样:https://docs.aws.amazon.com/lex/latest/dg/images/default-response-25a.png。
在 aws 网站上,我为多条消息准备了输出,它看起来像这样:
{
"dialogState": "Fulfilled",
"intentName": "GetPersonInfo",
"message": "{\"messages\":[{\"type\":\"PlainText\",\"group\":1,\"value\":\"siema siemanko\"},{\"type\":\"CustomPayload\",\"group\":2,\"value\":\"{\\\"moj\\\":\\\"json\\\"}\"}]}",
"messageFormat": "Composite",
...
}
我注意到 Lex 期望“dialogAction”作为 lambda 输出,并且在“PostText”和“PostContent”中使用了多消息功能。我知道,dialogAction 用于构建 PostText/PostContent 对象。
我还想向语音发送不同的消息,不同的显示为文本,另一个显示为 JSON(用于我的前端)。现在我的解决方案是在 dialogAction 对象中将所有内容作为纯文本消息发送,然后通过我的前端执行 Polly 来阅读为演讲准备的消息。是否可以仅使用 Lex 和 lambda 来做这些事情?
【问题讨论】:
标签: python amazon-web-services aws-lambda amazon-lex