![](/img/trans.png)
[英]Amazon Lex : How to get Elicitation value of a slot in Lambda function (Python)?
[英]Amazon Lex V2 Lambda python code to get intent name or any response back from lambda is not working
''' 尝试从 lambda 为 Amazon Lex v2 获取作为意图名称的响应。 它可以是字符串或简单程序中的任何响应。
我已经参考了 V2 Lex 文档,但我可以想出以下代码,在多次尝试后显示错误。 https://docs.aws.amazon.com/lexv2/latest/dg/lambda.html
错误:“无效的 Lambda 响应:收到来自 Lambda 的错误响应:未处理”
'''
def lambda_handler(event, context):
entity = event["currentIntent"]["slots"]["Nm"].title()
intent = event["currentIntent"]["name"]
response = {
'sessionState': {
'dialogAction': {
'type': 'Close'
},
'state': 'Fulfilled'
},
'messages': [
'contentType': 'PlainText',
'content': "The intent you are in now is "+intent+"!"
],
}
return response
'messages' 字段是一个对象数组,而不是字符串数组。 应声明如下:
'messages': [
{
'contentType': 'PlainText',
'content': "The intent you are in now is "+intent+"!"
}
]
参考:
我遇到了同样的问题。 对我有用的解决方案如下
var response = {};
response.messages = [
message
];
response.sessionState = {
sessionAttributes:sessionAttributes,
intent : {
name : intentRequest.interpretations[0].intent.name,
state : 'Fulfilled'
},
dialogAction: {
type: "Close",
fulfillmentState: "Fulfilled"
}
};
请参阅 lex v2 开发人员指南第 69 页响应格式https://docs.aws.amazon.com/lexv2/latest/dg/lex2.0.pdf
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.