可以在 Amazon Lex 中使用 Lambda 函数验证日期。以下是一个 Python 示例代码,可以检查用户输入是否为有效日期:
import dateutil.parser
import datetime
def validate_date(date):
try:
dateutil.parser.parse(date)
return True
except ValueError:
return False
def lambda_handler(event, context):
input_date = event['currentIntent']['slots']['date']
if validate_date(input_date):
return {
'dialogAction': {
'type': 'Close',
'fulfillmentState': 'Fulfilled',
'message': {
'contentType': 'PlainText',
'content': 'The date is valid!'
}
}
}
else:
return {
'dialogAction': {
'type': 'ElicitSlot',
'intentName': event['currentIntent']['name'],
'slots': event['currentIntent']['slots'],
'slotToElicit': 'date',
'message': {
'contentType': 'PlainText',
'content': 'Please enter a valid date.'
}
}
}
在此示例中,Lambda 函数将从“date”插槽中获取日期,并使用 dateutil 库将其解析为日期对象。如果日期无效,则函数将提示用户重新输入有效日期,直到插槽包含有效日期。如果日期有效,则函数将返回消息,指示日期是有效的。Lambda 函数返回的响应将由 Amazon Lex 显示给用户。