def handle_channels( self, channels: List[InputChannel], http_port: int = constants.DEFAULT_SERVER_PORT, route: Text = "/webhooks/", cors=None, ) -> Sanic: """Start a webserver attaching the input channels and handling msgs.""" from rasa.core import run logger.warning( "DEPRECATION warning: Using `handle_channels` is deprecated. " "Please use `rasa.run(...)` or see " "`rasa.core.run.configure_app(...)` if you want to implement " "this on a more detailed level.") app = run.configure_app(channels, cors, None, enable_api=False, route=route) app.agent = self update_sanic_log_level() app.run(host="0.0.0.0", port=http_port) # this might seem unnecessary (as run does not return until the server # is killed) - but we use it for tests where we mock `.run` to directly # return and need the app to inspect if we created a properly # configured server return app
def handle_channels( self, channels: List[InputChannel], http_port: int = constants.DEFAULT_SERVER_PORT, route: Text = "/webhooks/", cors=None, ) -> Sanic: """Start a webserver attaching the input channels and handling msgs.""" from rasa.core import run app = run.configure_app(channels, cors, None, enable_api=False, route=route) app.agent = self update_sanic_log_level() app.run(host="0.0.0.0", port=http_port) # this might seem unnecessary (as run does not return until the server # is killed) - but we use it for tests where we mock `.run` to directly # return and need the app to inspect if we created a properly # configured server return app
def start_visualization(image_path: Text = None) -> None: """Add routes to serve the conversation visualization files.""" app = Sanic(__name__) # noinspection PyUnusedLocal @app.exception(NotFound) async def ignore_404s(request, exception): return response.text("Not found", status=404) # noinspection PyUnusedLocal @app.route(VISUALIZATION_TEMPLATE_PATH, methods=["GET"]) def visualisation_html(request): return response.file(visualization.visualization_html_path()) # noinspection PyUnusedLocal @app.route("/visualization.dot", methods=["GET"]) def visualisation_png(request): try: headers = {"Cache-Control": "no-cache"} return response.file(os.path.abspath(image_path), headers=headers) except FileNotFoundError: return response.text("", 404) update_sanic_log_level() app.run(host="0.0.0.0", port=DEFAULT_SERVER_PORT + 1, access_log=False)
def _serve_application(app, stories, skip_visualization): """Start a core server and attach the interactive learning IO.""" endpoint = EndpointConfig(url=DEFAULT_SERVER_URL) async def run_interactive_io(running_app: Sanic): """Small wrapper to shut down the server once cmd io is done.""" await record_messages( endpoint=endpoint, stories=stories, skip_visualization=skip_visualization, sender_id=uuid.uuid4().hex, ) logger.info("Killing Sanic server now.") running_app.stop() # kill the sanic server app.add_task(run_interactive_io) update_sanic_log_level() app.run(host="0.0.0.0", port=DEFAULT_SERVER_PORT) return app
def serve_application( model_path: Optional[Text] = None, channel: Optional[Text] = None, port: int = constants.DEFAULT_SERVER_PORT, credentials: Optional[Text] = 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, endpoints: Optional[AvailableEndpoints] = None, remote_storage: Optional[Text] = None, log_file: Optional[Text] = None, ssl_certificate: Optional[Text] = None, ssl_keyfile: Optional[Text] = None, ssl_password: Optional[Text] = None, ): from rasa import server if not channel and not credentials: channel = "cmdline" input_channels = create_http_input_channels(channel, credentials) app = configure_app( input_channels, cors, auth_token, enable_api, jwt_secret, jwt_method, port=port, endpoints=endpoints, log_file=log_file, ) ssl_context = server.create_ssl_context(ssl_certificate, ssl_keyfile, ssl_password) protocol = "https" if ssl_context else "http" logger.info( "Starting Rasa server on " "{}".format(constants.DEFAULT_SERVER_FORMAT.format(protocol, port)) ) app.register_listener( partial(load_agent_on_start, model_path, endpoints, remote_storage), "before_server_start", ) async def clear_model_files(app: Sanic, _loop: Text) -> None: if app.agent.model_directory: shutil.rmtree(app.agent.model_directory) app.register_listener(clear_model_files, "after_server_stop") update_sanic_log_level(log_file) app.run(host="0.0.0.0", port=port, ssl=ssl_context)
def serve_application( model_path: Optional[Text] = None, channel: Optional[Text] = None, port: int = constants.DEFAULT_SERVER_PORT, credentials: Optional[Text] = 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, endpoints: Optional[AvailableEndpoints] = None, remote_storage: Optional[Text] = None, log_file: Optional[Text] = None, ): if not channel and not credentials: channel = "cmdline" input_channels = create_http_input_channels(channel, credentials) app = configure_app( input_channels, cors, auth_token, enable_api, jwt_secret, jwt_method, port=port, log_file=log_file, ) logger.info( "Starting Rasa Core server on " "{}".format(constants.DEFAULT_SERVER_FORMAT.format(port)) ) app.register_listener( partial(load_agent_on_start, model_path, endpoints, remote_storage), "before_server_start", ) update_sanic_log_level(log_file) app.run(host="0.0.0.0", port=port)
def handle_channels( self, channels: List[InputChannel], http_port: int = constants.DEFAULT_SERVER_PORT, route: Text = "/webhooks/", cors: Union[Text, List[Text], None] = None, ) -> Sanic: """Start a webserver attaching the input channels and handling msgs.""" from rasa.core import run raise_warning( "Using `handle_channels` is deprecated. " "Please use `rasa.run(...)` or see " "`rasa.core.run.configure_app(...)` if you want to implement " "this on a more detailed level.", DeprecationWarning, ) app = run.configure_app(channels, cors, None, enable_api=False, route=route) app.agent = self update_sanic_log_level() app.run( host="0.0.0.0", port=http_port, backlog=int(os.environ.get(ENV_SANIC_BACKLOG, "100")), workers=rasa.core.utils.number_of_sanic_workers(self.lock_store), ) # this might seem unnecessary (as run does not return until the server # is killed) - but we use it for tests where we mock `.run` to directly # return and need the app to inspect if we created a properly # configured server return app