有人知道是否完全有可能捕获错过的话语?我没有看到错过的用户登录到CloudWatch。我知道您可以在24小时后在Lex Console中查看它们,但是我正在尝试使用附加到它们的数据来捕获它们。
到目前为止,控制台仅向您提供遗漏的语音内容,被说出的次数以及上次被说出的时间。我希望将其余的“数据”附加到这些遗漏的语音中;例如客户所说的话。
有人知道使用AWS或当前具有lambda或类似名称的SDK(.NET)是否可行?
答案 0 :(得分:1)
缺少的插槽输入可以被捕获并登录到您的Lambda中。
我建议使用sessionAttributes
来跟踪last_elicit
之类的内容,然后您可以确定该插槽是否未满,然后以任意方式记录来自inputTranscript
的未输入内容。
我经常强行用inputTranscript
中的内容填充插槽,然后自己处理,因为我发现Lex有时会忽略合法的插槽输入。
缺失的意图输入由Lex处理并自动响应。
您在Lex中唯一可以处理错过的Intent输入的控件是自定义响应。转到您的Lex Console,在“编辑器”标签下,在左下方查看“错误处理”,
Lex准备这些“澄清提示”之一,并在不将任何内容传递给Lambda函数的情况下返回。
这就是为什么您无法使用Lex的基本设置来记录有关遗漏意图言语的任何信息。因此,这是使用两个Lambda函数进行的更复杂的设置:
此“ Pre-Lex Lambda”充当用户和Lex机器人之间的代理。这意味着您不使用Lex的内置Channel设置,而必须在Channels与“ Pre-Lex Lambda”之间建立自己的集成。
然后,您还需要使用PostContent或PostText来将用户的输入传递给Lex机器人。
设置好之后,您最终将能够捕获其中一个澄清提示的Lex响应,然后记录自己有关丢失的意图输入的详细信息。
有用的参考文献:
AWS SDK for .NET
SDK .NET API Docs for Lex
SDK .NET API Docs for Lambda
Example setting up a Lambda using SDK(.NET)