Untitled
unknown
python
5 months ago
4.2 kB
5
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