def main(args): utils.configure_colored_logging(args.loglevel) pre_load = args.pre_load _endpoints = read_endpoints(args.endpoints) router = DataRouter( args.path, args.max_training_processes, args.response_log, args.emulate, args.storage, model_server=_endpoints.model, wait_time_between_pulls=args.wait_time_between_pulls ) if pre_load: logger.debug('Preloading....') if 'all' in pre_load: pre_load = router.project_store.keys() router._pre_load(pre_load) rasa = RasaNLU( router, args.loglevel, args.write, args.num_threads, get_token(cmdline_args.token), args.cors, default_config_path=args.config ) logger.info('Started http server on port %s' % args.port) rasa.app.run('0.0.0.0', args.port)
def main(args): utils.configure_colored_logging(args.loglevel) pre_load = args.pre_load _endpoints = read_endpoints(args.endpoints) router = DataRouter(args.path, args.max_training_processes, args.response_log, args.emulate, args.storage, model_server=_endpoints.model, wait_time_between_pulls=args.wait_time_between_pulls) if pre_load: logger.debug('Preloading....') if 'all' in pre_load: pre_load = router.project_store.keys() router._pre_load(pre_load) rasa = RasaNLU(router, args.loglevel, args.write, args.num_threads, get_token(cmdline_args.token), args.cors, default_config_path=args.config) logger.info('Started http server on port %s' % args.port) rasa.app.run('0.0.0.0', args.port)
def __init__(self, config, component_builder=None, testing=False): logging.basicConfig(filename=config['log_file'], level=config['log_level']) logging.captureWarnings(True) logger.debug("Configuration: " + config.view()) logger.debug("Creating a new data router") self.config = config self.data_router = DataRouter(config, component_builder) self._testing = testing reactor.suggestThreadPoolSize(config['num_threads'] * 5)
def create_app(config, component_builder=None): rasa_nlu_app = Flask(__name__) if 'cors_origins' in config: CORS(rasa_nlu_app, resources={r"/*": { "origins": config['cors_origins'] }}) @rasa_nlu_app.route("/parse", methods=['GET', 'POST']) @requires_auth def parse_get(): if request.method == 'GET': request_params = request.args else: request_params = request.get_json(force=True) if 'q' not in request_params: return jsonify(error="Invalid parse parameter specified"), 404 else: try: data = current_app.data_router.extract(request_params) response = current_app.data_router.parse(data) return jsonify(response) except InvalidModelError as e: return jsonify({"error": "{}".format(e)}), 404 @rasa_nlu_app.route("/version", methods=['GET']) @requires_auth def version(): return jsonify({'version': __version__}) @rasa_nlu_app.route("/config", methods=['GET']) @requires_auth def rasaconfig(): return jsonify(config.as_dict()) @rasa_nlu_app.route("/status", methods=['GET']) @requires_auth def status(): return jsonify(current_app.data_router.get_status()) @rasa_nlu_app.route("/", methods=['GET']) def hello(): return "hello from Rasa NLU: " + __version__ @rasa_nlu_app.route("/train", methods=['POST']) @requires_auth def train(): data_string = request.get_data(as_text=True) current_app.data_router.start_train_process(data_string, request.args) return jsonify( info="training started.", training_process_ids=current_app.data_router.train_proc_ids()) logging.basicConfig(filename=config['log_file'], level=config['log_level']) logging.captureWarnings(True) logger.info("Configuration: " + config.view()) logger.debug("Creating a new data router") rasa_nlu_app.data_router = DataRouter(config, component_builder) return rasa_nlu_app
def setup_app(config): logging.basicConfig(filename=config['log_file'], level=config['log_level']) logging.captureWarnings(True) logging.info(config.view()) logging.debug("Creating a new data router") emulator = __create_emulator(config) interpreter = __create_interpreter(config) app.data_router = DataRouter(config, interpreter, emulator) return app
def app(tmpdir_factory): """Use IResource interface of Klein to mock Rasa HTTP server. :param component_builder: :return: """ _, nlu_log_file = tempfile.mkstemp(suffix="_rasa_nlu_logs.json") router = DataRouter(tmpdir_factory.mktemp("projects").strpath) rasa = RasaNLU(router, logfile=nlu_log_file, testing=True) return StubTreq(rasa.app.resource())
def __init__(self, languages): utils.check_languages(languages) self.languages = languages self.config = RasaNLUConfig(cmdline_args=utils.load_config()) self.query_logger = DataRouter._create_query_logger(self.config['response_log']) self._metadata = {} self._interpreter = {} for lang in languages: self._metadata[lang] = Metadata.load(utils.get_model_dir(lang)) self._interpreter[lang] = Interpreter.load(self._metadata[lang], self.config) self.registry = IntentRegistry(self.config['active_apps'])
def create_app(config, component_builder=None): rasa_nlu_app = Flask(__name__) @rasa_nlu_app.route("/parse", methods=['GET', 'POST']) @requires_auth def parse_get(): if request.method == 'GET': request_params = request.args else: request_params = request.get_json(force=True) if 'q' not in request_params: return jsonify(error="Invalid parse parameter specified"), 404 else: try: data = current_app.data_router.extract(request_params) response = current_app.data_router.parse(data) return jsonify(response) except InvalidModelError as e: return jsonify({"error": e.message}), 404 @rasa_nlu_app.route("/status", methods=['GET']) @requires_auth def status(): return jsonify(current_app.data_router.get_status()) @rasa_nlu_app.route("/", methods=['GET']) @requires_auth def hello(): return "hello" @rasa_nlu_app.route("/train", methods=['POST']) @requires_auth def train(): data_string = request.get_data(as_text=True) current_app.data_router.start_train_process(data_string) return jsonify(info="training started. Current pids: {}".format( current_app.data_router.train_procs)) logging.basicConfig(filename=config['log_file'], level=config['log_level']) logging.captureWarnings(True) logging.info("Configuration: " + config.view()) logging.debug("Creating a new data router") rasa_nlu_app.data_router = DataRouter(config, component_builder) return rasa_nlu_app
def app(component_builder): """Use IResource interface of Klein to mock Rasa HTTP server. :param component_builder: :return: """ if "TRAVIS_BUILD_DIR" in os.environ: root_dir = os.environ["TRAVIS_BUILD_DIR"] else: root_dir = os.getcwd() _, nlu_log_file = tempfile.mkstemp(suffix="_rasa_nlu_logs.json") train_models(component_builder, os.path.join(root_dir, "data/examples/rasa/demo-rasa.json")) router = DataRouter(os.path.join(root_dir, "test_projects")) rasa = RasaNLU(router, logfile=nlu_log_file, testing=True) return StubTreq(rasa.app.resource())
request.setResponseCode(200) response = self.data_router.unload_model( params.get('project', RasaNLUModelConfig.DEFAULT_PROJECT_NAME), params.get('model')) return simplejson.dumps(response) except Exception as e: request.setResponseCode(500) logger.exception(e) return simplejson.dumps({"error": "{}".format(e)}) if __name__ == '__main__': # Running as standalone python application cmdline_args = create_argument_parser().parse_args() utils.configure_colored_logging(cmdline_args.loglevel) router = DataRouter(cmdline_args.path, cmdline_args.max_training_processes, cmdline_args.response_log, cmdline_args.emulate, cmdline_args.storage) rasa = RasaNLU(router, cmdline_args.loglevel, cmdline_args.write, cmdline_args.num_threads, cmdline_args.token, cmdline_args.cors, default_config_path=cmdline_args.config) logger.info('Started http server on port %s' % cmdline_args.port) rasa.app.run('0.0.0.0', cmdline_args.port)
def load_interpreter_for_model(config, persisted_path, interpreter_builder): metadata = DataRouter.read_model_metadata(persisted_path, config) return interpreter_builder.create_interpreter(metadata, config)
def load_interpreter_for_model(nlp, config, persisted_path): metadata = DataRouter.read_model_metadata(persisted_path, config) return DataRouter.create_interpreter(metadata, nlp)
try: request.setResponseCode(200) response = self.data_router.unload_model( params.get('project', RasaNLUModelConfig.DEFAULT_PROJECT_NAME), params.get('model')) return simplejson.dumps(response) except Exception as e: request.setResponseCode(500) logger.exception(e) return simplejson.dumps({"error": "{}".format(e)}) if __name__ == '__main__': # Running as standalone python application cmdline_args = create_argument_parser().parse_args() utils.configure_colored_logging(cmdline_args.loglevel) router = DataRouter(cmdline_args.path, cmdline_args.max_training_processes, cmdline_args.response_log) rasa = RasaNLU(router, cmdline_args.loglevel, cmdline_args.write, cmdline_args.num_threads, cmdline_args.token, cmdline_args.cors, default_config_path=cmdline_args.config) logger.info('Started http server on port %s' % cmdline_args.port) rasa.app.run('0.0.0.0', cmdline_args.port)
def load_interpreter_for_model(config, persisted_path, component_builder): metadata = DataRouter.read_model_metadata(persisted_path, config) return Interpreter.load(metadata, config, component_builder)
except Exception as e: request.setResponseCode(500) logger.exception(e) return simplejson.dumps({"error": "{}".format(e)}) if __name__ == '__main__': # Running as standalone python application cmdline_args = create_argument_parser().parse_args() utils.configure_colored_logging(cmdline_args.loglevel) pre_load = cmdline_args.pre_load router = DataRouter(cmdline_args.path, cmdline_args.max_training_processes, cmdline_args.response_log, cmdline_args.emulate, cmdline_args.storage) if pre_load: logger.debug('Preloading....') if 'all' in pre_load: pre_load = router.project_store.keys() router._pre_load(pre_load) rasa = RasaNLU( router, cmdline_args.loglevel, cmdline_args.write, cmdline_args.num_threads, cmdline_args.token, cmdline_args.cors,
def _create_data_router(self, config, component_builder): return DataRouter(config, component_builder)
# coding: utf-8 from __future__ import unicode_literals import collections import json import logging from rasa_nlu.data_router import DataRouter from seabattle import game logger = logging.getLogger(__name__) router = DataRouter('mldata/') MESSAGE_TEMPLATES = { 'miss': 'Мимо. Я хожу %(shot)s', 'hit': 'Ты попала', 'kill': 'Корабль утонул', 'newgame': 'Инициализирована новая игра c %(opponent)s', 'shot': 'Я хожу %(shot)s', 'defeat': 'Я проиграла', 'victory': 'Ура, победа!', 'need_init': 'Пожалуйста, инициализируй новую игру и укажи соперника', 'dontunderstand': 'Не поняла. Повтори последний ход' } TTS_TEMPLATES = { 'newgame': 'Инициализирована новая игра с - - %(opponent)s', 'miss': 'Мимо - Я хожу - %(tts_shot)s', 'shot': 'Я хожу - %(tts_shot)s', } DMResponse = collections.namedtuple('DMResponse',