Untitled
unknown
python
a year ago
4.2 kB
7
Indexable
import json
def lambda_handler(event,context):
# TODO implement
intent_name = ""
sessionState = event["sessionState"]
session_id = event['sessionId']
try:
intent_name = event['sessionState']['intent']['name']
except KeyError as e:
# Handle the case where the expected structure is not present
intent_name = "None"
if intent_name == "GreetingIntent":
return handleGreeting(event,intent_name,session_id,sessionState)
elif intent_name == "ThankYouIntent":
return handleThankyou(event,intent_name,session_id,sessionState)
elif intent_name == "DiningSuggestionsIntent":
return handleDining(event,intent_name,session_id,sessionState)
else
return handleFallback(event,intent_name,session_id,sessionState)
def handleGreeting(event,intent_name,session_id,sessionState):
return {
'sessionState': {
**sessionState,
'dialogAction': {
'type': 'Close'
},
'intent': {
'name': intent_name,
'state': 'Fulfilled'
}
},
'sessionId': session_id
}
def handleThankyou(event,intent_name,session_id,sessionState):
return {
'sessionState': {
**sessionState,
'dialogAction': {
'type': 'Close'
},
'intent': {
'name': intent_name,
'state': 'Fulfilled'
}
},
'sessionId': session_id
}
def handleDining(event,intent_name,session_id,sessionState):
Location = event['sessionState']['intent']['slots']['location']
DiningTime = event['sessionState']['intent']['slots']['DiningTime']
NumberOfPeople = event['sessionState']['intent']['slots']['NumberOfPeople']
Cuisine = event['sessionState']['intent']['slots']['Cuisine']
Email = event['sessionState']['intent']['slots']['Email']
if !Location:
return checkSlot(event,intent_name,session_id,sessionState,Location)
if !DiningTime:
return checkSlot(event,intent_name,session_id,sessionState,DiningTime)
if !NumberOfPeople:
return checkSlot(event,intent_name,session_id,sessionState,NumberOfPeople)
if !Cuisine:
return checkSlot(event,intent_name,session_id,sessionState,Cuisine)
if !Email:
return checkSlot(event,intent_name,session_id,sessionState,Email)
confirmation(event,intent_name,session_id,sessionState)
fulfillment(event,intent_name,session_id,sessionState)
def checkSlot(event,intent_name,session_id,sessionState,slotToCheck):
return {
'sessionState': {
**sessionState,
'dialogAction': {
'type': 'ElicitSlot'
"slotToElicit": slotToCheck
},
'intent': {
'name': intent_name,
'state': 'InProgress'
}
},
'sessionId': session_id
}
def confirmation(event,intent_name,session_id,sessionState):
return {
'sessionState': {
**sessionState,
'dialogAction': {
'type': 'ConfirmIntent'
},
'intent': {
'name': intent_name,
'state': 'InProgress'
}
},
'sessionId': session_id
}
def fulfillment(event,intent_name,session_id,sessionState):
return {
'sessionState': {
**sessionState,
'dialogAction': {
'type': 'Close'
},
'intent': {
'name': intent_name,
'state': 'ReadyForFulfillment'
}
},
'sessionId': session_id
}
def handleFallback(event,intent_name,session_id,sessionState):
return {
'sessionState': {
**sessionState,
'dialogAction': {
'type': 'Close'
},
'intent': {
'name': intent_name,
'state': 'Fulfilled'
}
},
'sessionId': session_id
}Editor is loading...
Leave a Comment