Ejemplo n.º 1
0
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)
Ejemplo n.º 2
0
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)
Ejemplo n.º 3
0
    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)
Ejemplo n.º 4
0
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
Ejemplo n.º 5
0
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
Ejemplo n.º 6
0
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())
Ejemplo n.º 7
0
    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'])
Ejemplo n.º 8
0
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
Ejemplo n.º 9
0
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())
Ejemplo n.º 10
0
            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)
Ejemplo n.º 11
0
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)
Ejemplo n.º 12
0
def load_interpreter_for_model(nlp, config, persisted_path):
    metadata = DataRouter.read_model_metadata(persisted_path, config)
    return DataRouter.create_interpreter(metadata, nlp)
Ejemplo n.º 13
0
        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)
Ejemplo n.º 14
0
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)
Ejemplo n.º 15
0
        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)
Ejemplo n.º 17
0
# 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',
Ejemplo n.º 18
0
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)