捕获遗漏的话语

Capturing missed utterances

有谁知道是否有可能捕获遗漏的话语?我没有看到错过的人登录到 CloudWatch。我知道您可以在 24 小时后在 Lex 控制台中查看它们,但我正在尝试捕获它们并附加数据。

截至目前,控制台仅会向您显示遗漏的话语是什么、说了多少次以及最后一次说是什么时候。我想把剩下的 "Data" 附在这些遗漏的话语上;例如客户说的。

有人知道这是否可以通过 AWS 或 SDK(.NET) 当前使用 lambda 或类似的东西实现吗?

丢失的插槽输入 可以被捕获并记录在您的 Lambda 中。
我建议使用 sessionAttributes 来跟踪 last_elicit 之类的东西,您可以确定该插槽是否未填充,然后以您想要的任何方式记录来自 inputTranscript 的丢失输入。

我经常强制用 inputTranscript 中的内容填充插槽,然后自己处理,因为我发现 Lex 有时会忽略合法的插槽输入。


遗漏的 Intent 输入 由 Lex 处理并自动响应。

您在 Lex 中处理丢失的 Intent 输入的唯一控制是自定义响应。转到您的 Lex 控制台,在 "Editor" 选项卡下,查看左下方的 "Error Handling"、

打开那个菜单,你会看到:

Lex 准备了 "Clarification Prompts" 和 returns 中的一个,没有将任何东西传递给您的 Lambda 函数。

这就是为什么您无法使用 Lex 的基本设置记录有关遗漏意图话语的任何信息。所以这里有一个使用两个 Lambda 函数的更复杂的设置:

此 "Pre-Lex Lambda" 充当您的用户和您的 Lex 机器人之间的代理。这意味着您不使用 Lex 的内置频道设置,您必须在您的频道和 "Pre-Lex Lambda".

之间构建您自己的集成

然后您还需要使用 PostContent or 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)