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)
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
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)
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 )
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)
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)
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)