Exemple #1
0
def setup_skill_builder(service: OpenDataService) -> CustomSkillBuilder:
    """Helper method to create the custom skill builder instance."""

    logger.info({
        "operation":
        "Setting up Custom Skill Builder with Dynamo DB persistence adapter",
        "dynamo_db_table_name": DYNAMO_DB_TABLE_NAME,
    })
    dynamo_db_adapter = DynamoDbAdapter(
        table_name=DYNAMO_DB_TABLE_NAME,
        partition_key_name="id",
        attribute_name="attributes",
        create_table=True,
        dynamodb_resource=resource("dynamodb"),
    )

    skill_builder = CustomSkillBuilder(persistence_adapter=dynamo_db_adapter)
    logger.info("Adding skill request handlers...")
    skill_builder.add_request_handler(LaunchRequestHandler())
    skill_builder.add_request_handler(SaveTripPreferencesHandler())
    skill_builder.add_request_handler(GetArrivalTimesNoPrefsIntentHandler())
    skill_builder.add_request_handler(GetArrivalTimesIntentHandler(service))
    skill_builder.add_request_handler(StartedInProgressFavoriteStopHandler())
    skill_builder.add_request_handler(CompletedFavoriteStopHandler())
    skill_builder.add_request_handler(StartedInProgressFavoriteLineHandler())
    skill_builder.add_request_handler(CompletedFavoriteLineHandler(service))
    skill_builder.add_request_handler(YesIntentHandler())
    skill_builder.add_request_handler(NoIntentHandler())
    skill_builder.add_request_handler(HelpIntentHandler())
    skill_builder.add_request_handler(CancelOrStopIntentHandler())
    skill_builder.add_request_handler(RepeatHandler())
    skill_builder.add_request_handler(FallBackHandler())
    skill_builder.add_request_handler(SessionEndedRequestHandler())
    skill_builder.add_request_handler(IntentReflectorHandler())
    logger.info("Adding skill exception handlers...")
    skill_builder.add_exception_handler(OpenDataAPIExceptionHandler())
    skill_builder.add_exception_handler(GenericExceptionHandler())
    logger.info("Adding skill request interceptors...")
    skill_builder.add_global_request_interceptor(LocalizationInterceptor())
    skill_builder.add_global_request_interceptor(RequestLoggerInterceptor())
    logger.info("Adding skill response interceptors...")
    skill_builder.add_global_response_interceptor(ResponseLoggerInterceptor())

    tracer.put_annotation("SKILL_SETUP", "SUCCESS")
    tracer.put_metadata(key="environment", value=ENVIRONMENT.upper())

    return skill_builder
Exemple #2
0
sb.add_request_handler(PlayNewestEpisodeIntentHandler())
sb.add_request_handler(PlayOldestEpisodeIntentHandler())
sb.add_request_handler(ChooseEpisodeIntentHandler())
sb.add_request_handler(PauseIntentHandler())
sb.add_request_handler(ResumeIntentHandler())
sb.add_request_handler(NoIntentHandler())
sb.add_request_handler(NextIntentHandler())
sb.add_request_handler(PreviousIntentHandler())
sb.add_request_handler(RepeatIntentHandler())
sb.add_request_handler(ShuffleOnIntentHandler())
sb.add_request_handler(ShuffleOffIntentHandler())
sb.add_request_handler(LoopOnIntentHandler())
sb.add_request_handler(LoopOffIntentHandler())
sb.add_request_handler(PlaybackStartedEventHandler())
sb.add_request_handler(PlaybackStoppedEventHandler())
sb.add_request_handler(PlaybackNearlyFinishedEventHandler())
sb.add_request_handler(PlaybackFinishedEventHandler())
sb.add_request_handler(PlaybackFailedEventHandler())
sb.add_request_handler(ExceptionEncounteredHandler())
sb.add_request_handler(CancelOrStopIntentHandler())
sb.add_request_handler(HelpIntentHandler())
sb.add_request_handler(FallbackIntentHandler())
sb.add_request_handler(SessionEndedRequesthandler())

sb.add_exception_handler(CatchAllExceptionHandler())

sb.add_global_request_interceptor(LocalizationInterceptor())
sb.add_global_request_interceptor(RequestLogger())
sb.add_global_response_interceptor(ResponseLogger())

lambda_handler = sb.lambda_handler()
        return True
    else:
        return False


# The SkillBuilder object acts as the entry point for your skill, routing all request and response
# payloads to the handlers above. Make sure any new handlers or interceptors you've
# defined are included below. The order matters - they're processed top to bottom.

# Skill Builder object
sb = CustomSkillBuilder(api_client=DefaultApiClient())

# Add all request handlers to the skill.
sb.add_request_handler(LaunchRequestHandler())
sb.add_request_handler(StartAdventureIntentHandler())
sb.add_request_handler(HelpIntentHandler())
sb.add_request_handler(CancelOrStopIntentHandler())
sb.add_request_handler(SessionEndedRequestHandler())
sb.add_request_handler(FallbackIntentHandler())
sb.add_request_handler(YesIntentHandler())
sb.add_request_handler(NoIntentHandler())

# Add exception handler to the skill.
sb.add_exception_handler(CatchAllExceptionHandler())

# Add request and response interceptors
sb.add_global_response_interceptor(LoggingResponseInterceptor())
sb.add_global_request_interceptor(LoggingRequestInterceptor())

# Expose the lambda handler function that can be tagged to AWS Lambda handler
handler = sb.lambda_handler()
        session_attr["reprompt"] = response.reprompt


class ResponseLogger(AbstractResponseInterceptor):
    """Log the response envelope."""
    def process(self, handler_input, response):
        # type: (HandlerInput, Response) -> None
        logger.debug("Response: {}".format(response))


# register request / intent handlers
sb.add_request_handler(LaunchRequestIntentHandler())
sb.add_request_handler(RecipeIntentHandler())
sb.add_request_handler(HelpIntentHandler())
sb.add_request_handler(PreviousHandler())
sb.add_request_handler(RepeatIntentHandler())
sb.add_request_handler(ExitIntentHandler())
sb.add_request_handler(SessionEndedRequestHandler())

# register exception handlers
sb.add_exception_handler(CatchAllExceptionHandler())

# register response interceptors
sb.add_global_request_interceptor(LocalizationInterceptor())
sb.add_global_request_interceptor(RequestLogger())
sb.add_global_response_interceptor(CacheResponseForRepeatInterceptor())
sb.add_global_response_interceptor(ResponseLogger())
sb.add_global_response_interceptor(ResponseActionnableHistoryInterceptor())

lambda_handler = sb.lambda_handler()
Exemple #5
0
sb.add_request_handler(deeniUpdateIntentHandler())
sb.add_request_handler(YesHandler())
sb.add_request_handler(NoHandler())
#sb.add_request_handler(StartPlaybackHandler())
#sb.add_request_handler(PlayCommandHandler())
#sb.add_request_handler(NextCommandHandler())
#sb.add_request_handler(PreviousCommandHandler())
sb.add_request_handler(PausePlaybackHandler())
#sb.add_request_handler(PauseCommandHandler())

sb.add_request_handler(CancelOrStopIntentHandler())
sb.add_request_handler(PlaybackStartedEventHandler())
sb.add_request_handler(PlaybackFinishedEventHandler())
sb.add_request_handler(PlaybackStoppedEventHandler())
sb.add_request_handler(PlaybackNearlyFinishedEventHandler())
#sb.add_request_handler(PlaybackStartedEventHandler())
sb.add_request_handler(PlaybackFailedEventHandler())
sb.add_request_handler(FallbackIntentHandler())
# Exception handlers
sb.add_exception_handler(CatchAllExceptionHandler())

# Interceptors
sb.add_global_request_interceptor(RequestLogger())
sb.add_global_request_interceptor(LoadPersistenceAttributesRequestInterceptor())

sb.add_global_response_interceptor(ResponseLogger())
sb.add_global_response_interceptor(SavePersistenceAttributesResponseInterceptor())

# AWS Lambda handler
lambda_handler = sb.lambda_handler()
class LocalizationInterceptor(AbstractRequestInterceptor):
    """
    Add function to request attributes, that can load locale specific data.
    """
    def process(self, handler_input):
        locale = handler_input.request_envelope.request.locale
        logger.info("Locale is {}".format(locale))
        i18n = gettext.translation('data',
                                   localedir='locales',
                                   languages=[locale],
                                   fallback=True)
        handler_input.attributes_manager.request_attributes["_"] = i18n.gettext


# register request / intent handlers
sb.add_request_handler(HasBirthdayLaunchRequestHandler())
sb.add_request_handler(LaunchRequestIntentHandler())
sb.add_request_handler(BirthdayIntentHandler())
sb.add_request_handler(HelpIntentHandler())
sb.add_request_handler(CancelAndStopIntentHandler())
sb.add_request_handler(SessionEndedRequestHandler())

# register exception handlers
sb.add_exception_handler(CatchAllExceptionHandler())

# register localization interceptor and cache speech interceptor
sb.add_global_request_interceptor(LocalizationInterceptor())
sb.add_global_response_interceptor(CacheSpeechForRepeatInterceptor())

lambda_handler = sb.lambda_handler()
Exemple #7
0

sb = CustomSkillBuilder(persistence_adapter=DynamoDbAdapter(**adapter_config))
sb.skill_id = settings.APP_ID

sb.add_request_handler(game_play_handlers.AnswerHandler())
sb.add_request_handler(game_play_handlers.DontKnowNextHandler())
sb.add_request_handler(game_play_handlers.GameEventHandler())
sb.add_request_handler(game_play_handlers.PlayGameHandler())
sb.add_request_handler(game_play_handlers.EndGameHandler())
sb.add_request_handler(game_play_handlers.YesHandler())
sb.add_request_handler(roll_call_handlers.YesHandler())
sb.add_request_handler(roll_call_handlers.NoHandler())
sb.add_request_handler(roll_call_handlers.GameEventHandler())
sb.add_request_handler(start_handlers.PlayerCountHandler())
sb.add_request_handler(start_handlers.YesHandler())
sb.add_request_handler(start_handlers.NoHandler())
sb.add_request_handler(start_handlers.LaunchPlayGameHandler())
sb.add_request_handler(start_handlers.StartNewGameHandler())
sb.add_request_handler(global_handlers.HelpHandler())
sb.add_request_handler(global_handlers.StopCancelHandler())
sb.add_request_handler(global_handlers.SessionEndedRequestHandler())
sb.add_request_handler(global_handlers.DefaultHandler())

sb.add_global_request_interceptor(global_handlers.RequestInterceptor())
sb.add_global_response_interceptor(global_handlers.ResponseInterceptor())

# sb.add_exception_handler(global_handlers.ErrorHandler())

handler = sb.lambda_handler()

@APP.route('/', methods=['GET'])
def development():
    return 'development server/ngrok connected'


SB.add_request_handler(launch.Handler())
SB.add_request_handler(district.Handler())
SB.add_request_handler(legislature.Handler())
SB.add_request_handler(legislature.DetailsHandler())
SB.add_request_handler(legislature.CountHandler())
SB.add_request_handler(legislature.PartyStatsHandler())
SB.add_request_handler(session.Handler())
SB.add_request_handler(helping.Handler())
SB.add_request_handler(defaults.ExitIntentHandler())
SB.add_request_handler(defaults.SessionEndedRequestHandler())

SB.add_exception_handler(defaults.CatchAllExceptionHandler())

# Add response interceptor to the skill.
# SB.add_global_response_interceptor(CacheResponseForRepeatInterceptor())
SB.add_global_request_interceptor(log.RequestLogger())
SB.add_global_response_interceptor(log.ResponseLogger())

SKILL = SB.create()
HANDLER = SB.lambda_handler()

if __name__ == '__main__':
    APP.run(debug=True)
    SC_CorrectAnswerHandler,
    SC_WrongAnswerHandler,

    ## Gen Questions & Answered
    GetAnswerHandler,
    NumQuestionsAnsweredHandler,

    ## Always True
    FallbackHandler,
)

sb = CustomSkillBuilder(persistence_adapter=skill_s3_adapter)

for req_handler in SKILL_REQUEST_HANDLERS:
    sb.add_request_handler(req_handler())

##########
# Interceptors
##########

sb.add_global_request_interceptor(LaunchRequestInterceptor())

sb.add_global_response_interceptor(CacheResponseForRepeatInterceptor())
sb.add_global_response_interceptor(CacheRepromptInterceptor())

##########
# Finalize
##########

lambda_handler = sb.lambda_handler()
class ResponseLogger(AbstractResponseInterceptor):
    """Log the response envelope."""
    def process(self, handler_input, response):
        # type: (HandlerInput, Response) -> None
        logger.info("Response: {}".format(response))


# Add all request handlers to the skill.
sb.add_request_handler(LaunchRequestHandler())
sb.add_request_handler(DemoHandler())
sb.add_request_handler(AllInOneExitIntentHandler())

sb.add_request_handler(DemoAnswerHandler())
sb.add_request_handler(SetCommittedAlarmHandler())
sb.add_request_handler(RepeatHandler())
sb.add_request_handler(HelpIntentHandler())
sb.add_request_handler(SessionEndedRequestHandler())
sb.add_request_handler(FallbackIntentHandler())

# Add exception handler to the skill.
sb.add_exception_handler(CatchAllExceptionHandler())

# Add response interceptor to the skill.
sb.add_global_response_interceptor(CacheResponseForRepeatInterceptor())
sb.add_global_request_interceptor(RequestLogger())
sb.add_global_response_interceptor(ResponseLogger())

# Expose the lambda handler to register in AWS Lambda.
lambda_handler = sb.lambda_handler()