AWS Lex V2 - DailogHook 验证
Posted
技术标签:
【中文标题】AWS Lex V2 - DailogHook 验证【英文标题】:AWS Lex V2 - DailogHook Validation 【发布时间】:2022-01-14 22:24:24 【问题描述】:如果我在插槽级别进行一些验证,有谁知道我如何检查我正在处理的插槽?我查看了事件有效负载,似乎没有提到您正在调用 Lambda 函数的插槽。
【问题讨论】:
【参考方案1】:目前,传递给 Lambda 函数的 Lex 事件不包含任何关于当前正在淘汰哪个槽的提示。
但是,查看事件中的slots
数组,可以根据当前值确定何时进行验证。
尚未引出的值为null
;而从用户那里确定的值具有非空值。
您可以验证非空值,并假设您正确处理了这些场景,您应该没问题。我的意思是如果该值验证失败,您将需要为同一插槽发出ElicitSlot
提示;可能带有有用的错误消息。如果值通过验证,您可以发出 Delegate
响应并允许 Lex 继续相应地处理。
以下是我的 Lambda 函数收到的针对 V2 Lex 机器人的示例事件:
"intent":
"slots":
"duration": null,
"reason": null,
"quantity":
"shape": "Scalar",
"value":
"originalValue": "2",
"resolvedValues": [
"2"
],
"interpretedValue": "2"
,
"confirmationState": "None",
"name": "MainIntent",
"state": "InProgress"
,
在我的示例中,MainIntent
具有三个插槽,但只有一个具有值。我的 Lambda 函数将验证非空值,然后委托给 Lex 进行其余的处理。
【讨论】:
以上是关于AWS Lex V2 - DailogHook 验证的主要内容,如果未能解决你的问题,请参考以下文章
在 Aws Lex 中 - 我们可以使用 lambda 更改槽值吗?