コード例 #1
0
    def __create_interpreter(self):
        model_dir = self.config.server_model_dir
        metadata, backend = None, None

        if model_dir is not None:
            # download model from S3 if needed
            if not os.path.isdir(model_dir):
                try:
                    from rasa_nlu.persistor import Persistor
                    p = Persistor(self.config.path, self.config.aws_region,
                                  self.config.bucket_name)
                    p.fetch_and_extract('{0}.tar.gz'.format(
                        os.path.basename(model_dir)))
                except:
                    warnings.warn(
                        "using default interpreter, couldn't find model dir or fetch it from S3"
                    )

            metadata = json.loads(
                open(os.path.join(model_dir, 'metadata.json'), 'rb').read())
            backend = metadata["backend"]

        if backend is None:
            from interpreters.simple_interpreter import HelloGoodbyeInterpreter
            return HelloGoodbyeInterpreter()
        elif backend.lower() == 'mitie':
            logging.info("using mitie backend")
            from interpreters.mitie_interpreter import MITIEInterpreter
            return MITIEInterpreter(**metadata)
        elif backend.lower() == 'spacy_sklearn':
            logging.info("using spacy + sklearn backend")
            from interpreters.spacy_sklearn_interpreter import SpacySklearnInterpreter
            return SpacySklearnInterpreter(**metadata)
        else:
            raise ValueError("unknown backend : {0}".format(backend))
コード例 #2
0
ファイル: server.py プロジェクト: cuihengbin/rasa_nlu
def __create_interpreter(config):
    def load_model_from_s3(model_dir):
        try:
            from rasa_nlu.persistor import Persistor
            p = Persistor(config['path'], config['aws_region'],
                          config['bucket_name'])
            p.fetch_and_extract('{0}.tar.gz'.format(
                os.path.basename(model_dir)))
        except Exception as e:
            logging.warn(
                "Using default interpreter, couldn't fetch model: {}".format(
                    e.message))

    model_dir = config['server_model_dir']
    metadata, backend = None, None

    if model_dir is not None:
        # download model from S3 if needed
        if not os.path.isdir(model_dir):
            load_model_from_s3(model_dir)

        with open(os.path.join(model_dir, 'metadata.json'), 'rb') as meta_file:
            metadata = json.loads(meta_file.read())
        backend = metadata.get("backend")
    elif config['backend']:
        logging.warn(
            "backend '%s' specified in config, but no model directory ('server_model_dir') is configured. "
            + "Using 'hello-goodby' backend instead!", config['backend'])

    if backend is None:
        from interpreters.simple_interpreter import HelloGoodbyeInterpreter
        logging.info("using default hello-goodby backend")
        return HelloGoodbyeInterpreter()
    elif backend.lower() == mitie.MITIE_BACKEND_NAME:
        logging.info("using mitie backend")
        from interpreters.mitie_interpreter import MITIEInterpreter
        return MITIEInterpreter(**metadata)
    elif backend.lower() == mitie.MITIE_SKLEARN_BACKEND_NAME:
        logging.info("using mitie_sklearn backend")
        from interpreters.mitie_sklearn_interpreter import MITIESklearnInterpreter
        return MITIESklearnInterpreter(**metadata)
    elif backend.lower() == spacy.SPACY_BACKEND_NAME:
        logging.info("using spacy + sklearn backend")
        from interpreters.spacy_sklearn_interpreter import SpacySklearnInterpreter
        return SpacySklearnInterpreter(**metadata)
    else:
        raise ValueError("unknown backend : {0}".format(backend))
コード例 #3
0
ファイル: data_router.py プロジェクト: prsrichard/rasa_nlu
    def create_interpreter(nlp, metadata):
        backend = metadata.backend_name()
        if backend is None:
            from interpreters.simple_interpreter import HelloGoodbyeInterpreter
            return HelloGoodbyeInterpreter()
        elif backend.lower() == mitie.MITIE_BACKEND_NAME:
            logging.info("using mitie backend")
            from interpreters.mitie_interpreter import MITIEInterpreter
            return MITIEInterpreter.load(metadata)
        elif backend.lower() == mitie.MITIE_SKLEARN_BACKEND_NAME:
            logging.info("using mitie_sklearn backend")
            from interpreters.mitie_sklearn_interpreter import MITIESklearnInterpreter
            return MITIESklearnInterpreter.load(metadata)

        elif backend.lower() == spacy.SPACY_BACKEND_NAME:
            logging.info("using spacy + sklearn backend")
            from interpreters.spacy_sklearn_interpreter import SpacySklearnInterpreter
            return SpacySklearnInterpreter.load(metadata, nlp)
        else:
            raise ValueError("unknown backend : {0}".format(backend))
コード例 #4
0
ファイル: server.py プロジェクト: Kevark/rasa_nlu
def create_interpreter(config):
    model_dir = config.get("server_model_dir")
    metadata, backend = None
    if model_dir is not None:
        metadata = json.loads(open(os.path.join(model_dir, 'metadata.json'), 'rb').read())
        backend = metadata["backend"]

    if backend is None:
        from interpreters.simple_interpreter import HelloGoodbyeInterpreter
        return HelloGoodbyeInterpreter()
    elif backend.lower() == 'mitie':
        print("using mitie backend")
        from interpreters.mitie_interpreter import MITIEInterpreter
        return MITIEInterpreter(**metadata)
    elif backend.lower() == 'spacy_sklearn':
        print("using spacy + sklearn backend")
        from interpreters.spacy_sklearn_interpreter import SpacySklearnInterpreter
        return SpacySklearnInterpreter(**metadata)
    else:
        raise ValueError("unknown backend : {0}".format(backend))