我正在创建一个使用 AMAZON.DATE 插槽的 lex 机器人。文档说我可以使用x-amz-lex:time-zone
,我正在尝试从联系流中设置它。
该Get Customer Input
块允许您指定会话属性。我尝试了以下键无济于事:x-amz-lex:time-zone
和$.Lex.SessionAttributes.x-amz-lex:time-zone
.
我觉得这一定是可能的,但我似乎找不到通过会话属性指定此请求属性的正确方法。
可惜,today
还是昨天。
我正在创建一个使用 AMAZON.DATE 插槽的 lex 机器人。文档说我可以使用x-amz-lex:time-zone
,我正在尝试从联系流中设置它。
该Get Customer Input
块允许您指定会话属性。我尝试了以下键无济于事:x-amz-lex:time-zone
和$.Lex.SessionAttributes.x-amz-lex:time-zone
.
我觉得这一定是可能的,但我似乎找不到通过会话属性指定此请求属性的正确方法。
可惜,today
还是昨天。
这是因为时区不是从 设置的,sessionAttributes
但实际上必须在其中传递,requestAttributes
这就是 Lex 将查找并相应地设置时区的地方。
希望 Connect 团队能够让我们requestAttributes
在未来真正传递给 Lex。
如果您现在必须让它工作,那么解决方法就变得非常愚蠢。您可以创建另一个 Lex 机器人,仅用于执行语音转文本并捕获用户所说的任何内容,然后将用户输入传递给 Lambda 函数,该函数使用PostText API发送到您的真实 Lex 机器人。您可以requestAttributes
在 PostText API 中设置并以这种方式更新时区。
在 Connect 和 Lex 之间使用 Lambda 函数还有其他一些好处,例如捕获 Lex 错误或记录 Lex 响应或在 Lex 处理输入之前和之后记录更多分析数据。因此,额外的工作实际上可能是值得的。