Amazon web services AWS Lex:出现错误:无效的Lambda响应:为无效插槽名&x200B引出Lambda响应;

Amazon web services AWS Lex:出现错误:无效的Lambda响应:为无效插槽名&x200B引出Lambda响应;,amazon-web-services,aws-lambda,aws-lex,Amazon Web Services,Aws Lambda,Aws Lex,使用AWS lex的验证钩子。如果我试图引出slot,lex将失败: 发生错误:Lambda响应无效:为无效插槽名称引发Lambda响应​ 下面是我的lex事件和lambda函数的响应。我有两个插槽,顶部和外壳。Topping是客户已经提供的第一个插槽。地壳是丢失的插槽 我已经阅读了大多数AWS文档、stackoverflow和其他教程,但我似乎无法突破这一点。有人知道吗 LexEvent: { "messageVersion": "1.0", "invocationSource

使用AWS lex的验证钩子。如果我试图引出slot,lex将失败:

发生错误:Lambda响应无效:为无效插槽名称引发Lambda响应​

下面是我的lex事件和lambda函数的响应。我有两个插槽,顶部和外壳。Topping是客户已经提供的第一个插槽。地壳是丢失的插槽

我已经阅读了大多数AWS文档、stackoverflow和其他教程,但我似乎无法突破这一点。有人知道吗

LexEvent:

{
    "messageVersion": "1.0",
    "invocationSource": "DialogCodeHook",
    "userId": "cbzn2ql6dl59dro",
    "sessionAttributes": {},
    "outputDialogMode": "Text",
    "currentIntent": {
        "name": "Pizza",
        "slots": {
            "topping": "Chicken"
        },
        "confirmationStatus": "None"
    },
    "bot": {
        "name": "PizzaMaker",
        "alias": "$LATEST",
        "version": "$LATEST"
    }
}
Lambda的答复

{
    "sessionAttributes": {},
    "dialogAction": {
        "type": "ElicitSlot",
        "message": {
            "contentType": "PlainText",
            "content": "What type of crust do you want?"
        },
        "intentName": "Pizza",
        "slotToElicit": "​Curst",
        "slots": {
            "topping": "Chicken"
        }
    }
}
错误“Lambda response Elicicated for a invalid slot name”(针对无效插槽名称引发的Lambda response)明确表示,您尝试用
“slotToElicit”
引发的插槽与您的机器人中配置的插槽不匹配

可能是这个打字错误导致了问题:
“slotToElicit”:​光标“,


尝试“slotToElicit”:​外壳“,或小写的
“slotToElicit”:​地壳“,

我尝试使用验证Lambda响应结构,并注意到在
slotToElicit
键的值中包含一个额外的符号,否则该符号不可见。这就说明了为什么Lex找不到插槽名称。

忘记添加了,我验证了插槽名称在Lex和lambda中是否匹配(也包括大写和小写)。插槽配置为1个提示卡和1个带选项的响应卡。没有插槽功能这就是问题所在。谢谢你的调查。最简单的事情会带来最大的痛苦。谢谢你的支持。这是一个皮棉问题。