Example #1
0
 def load_model_from_s3(model_dir, config):
     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))
Example #2
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))