为 AWS LEX 编写条件 AWS Lambda 函数
Write a conditional AWS Lambda Function for AWS LEX
我是 AWS Arena 的新手。这是我关于 AWS Lambda 函数和 AWS LEX 的第二个问题。我想编写一个 lambda 函数来根据某物的值触发 2 个不同的意图,而无需任何用户话语。例如
if a >= 90.....Intent-1 会工作并说 "Messi is the best Footballer" 和
如果 < 90 ......Intent-2 会工作并说 "Ronaldo is the best Footballer"
它不应该那样工作,意图是根据用户类型触发的。例如,您可以创建一个意图 BestFootballer
,它将在话语 who is the best footballer
.
时触发
现在,一旦触发了意图,您就可以应用一些逻辑来动态创建响应。
def build_response(message):
return {
"dialogAction":{
"type":"Close",
"fulfillmentState":"Fulfilled",
"message":{
"contentType":"PlainText",
"content":message
}
}
}
def perform_action(intent_request):
source = intent_request['invocationSource']
output_session_attributes = intent_request['sessionAttributes'] if intent_request['sessionAttributes'] is not None else {}
if source == 'FulfillmentCodeHook':
a = 100
if a < 90:
return build_response('Ronaldo is the best Footballer')
else:
return build_response('Messi is the best Footballer')
def dispatch(intent_request):
intent_name = intent_request['currentIntent']['name']
if intent_name == 'BestFootballer':
return perform_action(intent_request)
raise Exception('Intent with name ' + intent_name + ' not supported')
def lambda_handler(event, context):
return dispatch(event)
希望对您有所帮助。
我是 AWS Arena 的新手。这是我关于 AWS Lambda 函数和 AWS LEX 的第二个问题。我想编写一个 lambda 函数来根据某物的值触发 2 个不同的意图,而无需任何用户话语。例如
if a >= 90.....Intent-1 会工作并说 "Messi is the best Footballer" 和 如果 < 90 ......Intent-2 会工作并说 "Ronaldo is the best Footballer"
它不应该那样工作,意图是根据用户类型触发的。例如,您可以创建一个意图 BestFootballer
,它将在话语 who is the best footballer
.
现在,一旦触发了意图,您就可以应用一些逻辑来动态创建响应。
def build_response(message):
return {
"dialogAction":{
"type":"Close",
"fulfillmentState":"Fulfilled",
"message":{
"contentType":"PlainText",
"content":message
}
}
}
def perform_action(intent_request):
source = intent_request['invocationSource']
output_session_attributes = intent_request['sessionAttributes'] if intent_request['sessionAttributes'] is not None else {}
if source == 'FulfillmentCodeHook':
a = 100
if a < 90:
return build_response('Ronaldo is the best Footballer')
else:
return build_response('Messi is the best Footballer')
def dispatch(intent_request):
intent_name = intent_request['currentIntent']['name']
if intent_name == 'BestFootballer':
return perform_action(intent_request)
raise Exception('Intent with name ' + intent_name + ' not supported')
def lambda_handler(event, context):
return dispatch(event)
希望对您有所帮助。