Я создаю чат-бота для создания тикета. У меня есть слот для проверки emailid. У меня есть собственное регулярное выражение в лямбда. Я хочу проверить xxx. yyy@gmail.com
При тестировании с помощью lex он принимает xxx@gmail.com, но не принимает xxx. yyy@gmail.com.It снова запрашивает тот же запрос.
def lambda_handler(event, context):
regex = '^[a-z0-9]+[\._]?[a-z0-9]+[@]\w+[.]\w{2,3}$'
val = ""
slots = event['currentIntent']['slots']
empidemployee= event['currentIntent']["slots"]["empidemployee"]
latestdescription= event['currentIntent']["slots"]["latestdescription"]
latestservice= event['currentIntent']["slots"]["latestservice"]
latestimpact= event['currentIntent']["slots"]["latestimpact"]
latesturgency= event['currentIntent']["slots"]["latesturgency"]
email=event['currentIntent']["slots"]["email"]
if not (re.search(regex,email)):
output_session_attributes = event['sessionAttributes'] if event['sessionAttributes'] is not None else {}
val = elicit_slot(output_session_attributes,'latestdetails',slots,'email',"Oops! Your emailid is not correct Please enter again!" )
else:
send_email(empidemployee,email,latestdescription,latestservice,latestimpact,latesturgency)
val = close()
return val
Пример разговора:
Lex:Please provide me emailid
User:123
Lex:Oops! Your emailid is not correct Please enter again
User:www.yyy@gmail.com
Lex:Please provide me emailid
User:ccc@gmail.com
Lex:your ticket is raised