import logging import os def get_logger(module_name): logger = logging.getLogger(module_name) logger.propagate = False logger.setLevel(logging.INFO) if "DEBUG" in os.environ and os.environ["DEBUG"] == "true": logger.setLevel(logging.DEBUG) return logger def get_slots(intent_request): return intent_request['sessionState']['intent']['slots'] def get_slot(intent_request, slotName): slots = get_slots(intent_request) if slots is not None and slotName in slots and slots[slotName] is not None: return slots[slotName]['value']['interpretedValue'] else: return None def get_session_attributes(intent_request): sessionState = intent_request['sessionState'] if 'sessionAttributes' in sessionState: return sessionState['sessionAttributes'] return {} def elicit_intent(intent_request, session_attributes, message): return { 'sessionState': { 'dialogAction': { 'type': 'ElicitIntent' }, 'sessionAttributes': session_attributes }, 'messages': [message] if message != None else None, 'requestAttributes': intent_request['requestAttributes'] if 'requestAttributes' in intent_request else None } def close(intent_request, session_attributes, fulfillment_state, message): intent_request['sessionState']['intent']['state'] = fulfillment_state return { 'sessionState': { 'sessionAttributes': session_attributes, 'dialogAction': { 'type': 'Close' }, 'intent': intent_request['sessionState']['intent'] }, 'messages': [message], 'sessionId': intent_request['sessionId'], 'requestAttributes': intent_request['requestAttributes'] if 'requestAttributes' in intent_request else None }