AWS lambda-如何使用AWS lambda函数让机器人向用户说出具体答案



我真的是AWS Lex和AWS Lambda的新手。当用户插入一个无效的插槽值时,我正试图向他发送一条响应消息。我希望机器人向用户";我们没有这种类型的自行车,流行的类型是男/女/男女通用/儿童">

但它却抛出了这个错误:

发生错误:无效Lambda响应:从Lambda接收到无效响应:无法构造IntentResponse的实例,问题:经过验证的对象在[来源:{quot;isValid":false,"invalidSlot"&quot自行车类型&quot

创建响应的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

最新更新