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编写条件AWS Lambda函数

在 Aws Lex 中 - 我们可以使用 lambda 更改槽值吗?

在 AWS LEX 中从一个意图调用到另一个意图

AWS Lex:首次打开时如何显示欢迎消息?

我正在尝试将天气数据从 AWS lambda 返回到 Lex 机器人。我遇到了keyerror

如何从 AWS lex 中的意图 A 调用意图 B? [复制]