我正在创建一个使用AMAZON.DATE插槽的lex bot。文档说我可以使用x-amz-lex:time-zone
,我正在尝试找出如何从Contact Flow设置它。
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机器人。您可以在PostText API中设置requestAttributes
并以此方式更新时区。
通过在Connect和Lex之间使用Lambda函数,例如捕获Lex错误或记录Lex响应或在Lex处理输入之前和之后记录更多分析数据,还有一些其他好处。所以额外的工作实际上可能是值得的。