Ejemplo n.º 1
0
def _configure_logging(args: argparse.Namespace) -> None:
    from rasa.core.utils import configure_file_logging
    from rasa.utils.common import configure_logging_and_warnings

    log_level = args.loglevel or DEFAULT_LOG_LEVEL_RASA_X

    if isinstance(log_level, str):
        log_level = logging.getLevelName(log_level)

    logging.basicConfig(level=log_level)
    rasa.utils.io.configure_colored_logging(args.loglevel)

    configure_logging_and_warnings(log_level,
                                   warn_only_once=False,
                                   filter_repeated_logs=False)
    configure_file_logging(logging.root, args.log_file, False)

    logging.getLogger("werkzeug").setLevel(logging.WARNING)
    logging.getLogger("engineio").setLevel(logging.WARNING)
    logging.getLogger("pika").setLevel(logging.WARNING)
    logging.getLogger("socketio").setLevel(logging.ERROR)

    if not log_level == logging.DEBUG:
        logging.getLogger().setLevel(logging.WARNING)
        logging.getLogger("py.warnings").setLevel(logging.ERROR)
Ejemplo n.º 2
0
def configure_app(
    input_channels: Optional[List["InputChannel"]] = None,
    cors: Optional[Union[Text, List[Text]]] = None,
    auth_token: Optional[Text] = None,
    enable_api: bool = True,
    jwt_secret: Optional[Text] = None,
    jwt_method: Optional[Text] = None,
    route: Optional[Text] = "/webhooks/",
    port: int = constants.DEFAULT_SERVER_PORT,
    log_file: Optional[Text] = None,
):
    """Run the agent."""
    from rasa import server

    if enable_api:
        app = server.create_app(
            cors_origins=cors,
            auth_token=auth_token,
            jwt_secret=jwt_secret,
            jwt_method=jwt_method,
        )
    else:
        app = Sanic(__name__, configure_logging=False)
        CORS(app,
             resources={r"/*": {
                 "origins": cors or ""
             }},
             automatic_options=True)

    configure_file_logging(log_file)

    if input_channels:
        rasa.core.channels.channel.register(input_channels, app, route=route)
    else:
        input_channels = []

    if logger.isEnabledFor(logging.DEBUG):
        utils.list_routes(app)

    # configure async loop logging
    async def configure_async_logging():
        if logger.isEnabledFor(logging.DEBUG):
            rasa.utils.io.enable_async_loop_debugging(asyncio.get_event_loop())

    app.add_task(configure_async_logging)

    if "cmdline" in {c.name() for c in input_channels}:

        async def run_cmdline_io(running_app: Sanic):
            """Small wrapper to shut down the server once cmd io is done."""
            await asyncio.sleep(1)  # allow server to start
            await console.record_messages(
                server_url=constants.DEFAULT_SERVER_FORMAT.format(port))

            logger.info("Killing Sanic server now.")
            running_app.stop()  # kill the sanic serverx

        app.add_task(run_cmdline_io)

    return app
Ejemplo n.º 3
0
def rasa_x(args: argparse.Namespace):
    from rasa.cli.utils import print_success, print_error, signal_handler
    from rasa.core.utils import configure_file_logging

    signal.signal(signal.SIGINT, signal_handler)

    args.log_level = args.loglevel or os.environ.get(ENV_LOG_LEVEL,
                                                     DEFAULT_LOG_LEVEL)
    configure_file_logging(args.log_level, args.log_file)

    logging.getLogger("werkzeug").setLevel(logging.WARNING)
    logging.getLogger("engineio").setLevel(logging.WARNING)
    logging.getLogger("pika").setLevel(logging.WARNING)
    logging.getLogger("socketio").setLevel(logging.ERROR)

    if not args.loglevel == logging.DEBUG:
        logging.getLogger().setLevel(logging.WARNING)
        logging.getLogger("py.warnings").setLevel(logging.ERROR)

    if args.production:
        print_success("Starting Rasa X in production mode... 🚀")
        _rasa_service(args)
    else:
        if not is_rasa_x_installed():
            print_error("Rasa X is not installed. The `rasa x` "
                        "command requires an installation of Rasa X.")
            sys.exit(1)

        # noinspection PyUnresolvedReferences
        import rasax.community.utils as rasa_x_utils

        if not rasa_x_utils.are_terms_accepted():
            rasa_x_utils.accept_terms_or_quit(args)

        metrics = rasa_x_utils.is_metrics_collection_enabled(args)

        print_success("Starting Rasa X in local mode... 🚀")

        start_event_service()

        rasa_x_token = generate_rasa_x_token()

        start_rasa_for_local_platform(args, rasa_x_token=rasa_x_token)

        # noinspection PyUnresolvedReferences
        from rasax.community.api.local import main_local

        main_local(args.project_path,
                   args.data,
                   token=rasa_x_token,
                   metrics=metrics)
Ejemplo n.º 4
0
Archivo: x.py Proyecto: jayceyxc/rasa
def rasa_x(args: argparse.Namespace):
    from rasa.cli.utils import print_success, print_error, signal_handler
    from rasa.core.utils import configure_file_logging
    from rasa.utils.io import configure_colored_logging

    signal.signal(signal.SIGINT, signal_handler)

    logging.getLogger("werkzeug").setLevel(logging.WARNING)
    logging.getLogger("engineio").setLevel(logging.WARNING)
    logging.getLogger("pika").setLevel(logging.WARNING)
    logging.getLogger("socketio").setLevel(logging.ERROR)

    if not args.loglevel == logging.DEBUG:
        logging.getLogger().setLevel(logging.WARNING)
        logging.getLogger("py.warnings").setLevel(logging.ERROR)
        logging.getLogger("apscheduler").setLevel(logging.ERROR)
        logging.getLogger("rasa").setLevel(logging.WARNING)
        logging.getLogger("sanic.root").setLevel(logging.ERROR)

    log_level = args.loglevel or DEFAULT_LOG_LEVEL
    configure_colored_logging(log_level)
    configure_file_logging(log_level, args.log_file)

    metrics = is_metrics_collection_enabled(args)

    if args.production:
        print_success("Starting Rasa X in production mode... 🚀")
        _core_service(args)
    else:
        print_success("Starting Rasa X in local mode... 🚀")
        if not is_rasa_x_installed():
            print_error(
                "Rasa X is not installed. The `rasa x` "
                "command requires an installation of Rasa X."
            )
            sys.exit(1)

        # noinspection PyUnresolvedReferences
        from rasax.community.api.local import main_local

        start_event_service()

        rasa_x_token = generate_rasa_x_token()

        start_core_for_local_platform(args, rasa_x_token=rasa_x_token)

        main_local(
            args.project_path, args.data_path, token=rasa_x_token, metrics=metrics
        )
Ejemplo n.º 5
0
def _configure_logging(args):
    from rasa.core.utils import configure_file_logging

    args.log_level = args.loglevel or os.environ.get(ENV_LOG_LEVEL, DEFAULT_LOG_LEVEL)
    logging.basicConfig(level=args.log_level)
    configure_file_logging(args.log_level, args.log_file)

    logging.getLogger("werkzeug").setLevel(logging.WARNING)
    logging.getLogger("engineio").setLevel(logging.WARNING)
    logging.getLogger("pika").setLevel(logging.WARNING)
    logging.getLogger("socketio").setLevel(logging.ERROR)

    if not args.loglevel == logging.DEBUG:
        logging.getLogger().setLevel(logging.WARNING)
        logging.getLogger("py.warnings").setLevel(logging.ERROR)
Ejemplo n.º 6
0
def _configure_logging(args):
    from rasa.core.utils import configure_file_logging
    from rasa.utils.common import set_log_level

    log_level = args.loglevel or DEFAULT_LOG_LEVEL_RASA_X

    if isinstance(log_level, str):
        log_level = logging.getLevelName(log_level)

    set_log_level(log_level)
    configure_file_logging(log_level, args.log_file)

    logging.basicConfig(level=log_level)

    logging.getLogger("werkzeug").setLevel(logging.WARNING)
    logging.getLogger("engineio").setLevel(logging.WARNING)
    logging.getLogger("pika").setLevel(logging.WARNING)
    logging.getLogger("socketio").setLevel(logging.ERROR)

    if not log_level == logging.DEBUG:
        logging.getLogger().setLevel(logging.WARNING)
        logging.getLogger("py.warnings").setLevel(logging.ERROR)
Ejemplo n.º 7
0
        app.agent = Agent.load(core_model,
                               interpreter=_interpreter,
                               generator=endpoints.nlg,
                               tracker_store=_tracker_store,
                               action_endpoint=endpoints.action)

    return app.agent


if __name__ == '__main__':
    # Running as standalone python application
    arg_parser = create_argument_parser()
    cmdline_args = arg_parser.parse_args()

    logging.getLogger('werkzeug').setLevel(logging.WARN)
    logging.getLogger('engineio').setLevel(logging.WARN)
    logging.getLogger('matplotlib').setLevel(logging.WARN)
    logging.getLogger('socketio').setLevel(logging.ERROR)

    rasa.utils.io.configure_colored_logging(cmdline_args.loglevel)
    utils.configure_file_logging(cmdline_args.loglevel, cmdline_args.log_file)

    _endpoints = AvailableEndpoints.read_endpoints(cmdline_args.endpoints)

    serve_application(cmdline_args.core, cmdline_args.nlu,
                      cmdline_args.connector, cmdline_args.port,
                      cmdline_args.credentials, cmdline_args.cors,
                      cmdline_args.auth_token, cmdline_args.enable_api,
                      cmdline_args.jwt_secret, cmdline_args.jwt_method,
                      _endpoints)