我真的是AWS Lex和AWS Lambda的新手。当用户插入一个无效的插槽值时,我正试图向他发送一条响应消息。我希望机器人向用户";我们没有这种类型的自行车,流行的类型是男/女/男女通用/儿童">
但它却抛出了这个错误:
发生错误:无效Lambda响应:从Lambda接收到无效响应:无法构造IntentResponse的实例,问题:经过验证的对象在[来源:{quot;isValid":false,"invalidSlot""自行车类型"
创建响应的lambda函数:
def build_validation_result(is_valid, violated_slot, message_content):
if message_content is None:
return {
"isValid": is_valid,
"violatedSlot": violated_slot,
}
return {
'isValid': is_valid,
'violatedSlot': violated_slot,
'message': {'contentType': 'PlainText', 'content': message_content}
}
我应该如何修复格式以匹配AWS lambda响应?谢谢
Lex有一种特殊的响应格式,请参阅<https://docs.aws.amazon.com/lex/latest/dg/lambda-input-response-format.html>
但你的可能看起来像这个
message={"dialogAction": {
"type": "Close",
"fulfillmentState": "Failed",
"message": {
"contentType": "PlainText",
"content": "We do not have such type of bikes, the popular types are Men/Women/Unisex/Kids."
}}
return message