def register_models(app): global MODELS global MODELS_LOADED if MODELS_LOADED: return try: for name, model in loading.get_available_models("v2").items(): MODELS[name] = wrapper.ModelWrapper(name, model, app) except Exception as e: LOG.warning("Error loading models: %s", e) if MODELS: MODELS_LOADED = True return LOG.warning("No models found using V2 namespace, trying with V1. This is " "DEPRECATED and it is done only to try to preserve backards " "compatibility, but may lead to unexpected behaviour. You " "should move to the new namespace as soon as possible. Please " "refer to the documentation to get more details.") try: for name, model in loading.get_available_models("v1").items(): MODELS[name] = wrapper.ModelWrapper(name, model, app) except Exception as e: LOG.warning("Error loading models: %s", e) if not MODELS: LOG.info("No models found with V2 or V1 namespace, loading test model") MODELS["deepaas-test"] = wrapper.ModelWrapper("deepaas-test", test.TestModel(), app) MODELS_LOADED = True
def register_models(app): global MODELS global MODELS_LOADED if MODELS_LOADED: return try: for name, model in loading.get_available_models("v2").items(): MODELS[name] = wrapper.ModelWrapper(name, model, app) except Exception as e: LOG.warning("Error loading models: %s", e) if MODELS: MODELS_LOADED = True return if not MODELS: LOG.info("No models found in V2, loading test model") MODELS["deepaas-test"] = wrapper.ModelWrapper( "deepaas-test", test.TestModel(), app ) MODELS_LOADED = True
async def test_dummy_model_with_wrapper(self, m_clean): w = v2_wrapper.ModelWrapper("foo", v2_test.TestModel(), self.app) task = w.predict() await task ret = task.result()['output'] self.assertDictEqual( { 'date': '2019-01-1', 'labels': [{ 'label': 'foo', 'probability': 1.0 }] }, ret) task = w.train(sleep=0) await task ret = task.result() self.assertIsNone(ret['output']) meta = w.get_metadata() self.assertIn("description", meta) self.assertIn("id", meta) self.assertIn("name", meta) pargs = w.get_predict_args() targs = w.get_train_args() for arg, val in itertools.chain(pargs.items(), targs.items()): self.assertIsInstance(val, fields.Field)
def test_dummy_model(self): m = v2_test.TestModel() self.assertDictEqual( {'date': '2019-01-1', 'labels': [{'label': 'foo', 'probability': 1.0}]}, m.predict() ) self.assertIsNone(m.train()) meta = m.get_metadata() self.assertIn("description", meta) self.assertIn("id", meta) self.assertIn("name", meta) self.assertEqual("Alvaro Lopez Garcia", meta["author"]) pargs = m.get_predict_args() targs = m.get_train_args() for arg, val in itertools.chain(pargs.items(), targs.items()): self.assertIsInstance(val, fields.Field)