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