def create_component(self, component_config: Dict[Text, Any], cfg: RasaNLUModelConfig) -> Component: """Tries to retrieve a component from the cache, calls `create` to create a new component.""" from rasa.nlu import registry from rasa.nlu.model import Metadata try: component, cache_key = self.__get_cached_component( component_config, Metadata(cfg.as_dict(), None)) if component is None: component = registry.create_component_by_config( component_config, cfg) self.__add_to_cache(component, cache_key) return component except MissingArgumentError as e: # pragma: no cover raise Exception("Failed to create component `{}`. " "{}".format(component_config["name"], e))
def test_ltp(text): message = Message(text) component_meta = { "name": "ltp", "path": "/Users/zhangzhen/data/ltp_data_v3.4.0", "lexicon": "lexicon", "dimension": { "Nh": "PER", "Ni": "ORG", "Ns": "LOC" }, "class": "litemind.nlu.utils.ltp.LtpHelper" } model_dir = 'models/coref/model_20190515-150912' ltp = ComponentBuilder().load_component(component_meta, model_dir, Metadata({}, None)) ltp.process(message) pprint.pprint(message.data)
def test_train_nlu(run_in_simple_project: Callable[..., RunResult]): run_in_simple_project( "train", "nlu", "-c", "config.yml", "--nlu", "data/nlu.md", "--out", "train_models", ) assert os.path.exists("train_models") files = rasa.shared.utils.io.list_files("train_models") assert len(files) == 1 assert os.path.basename(files[0]).startswith("nlu-") model_dir = model.get_model("train_models") assert model_dir is not None metadata = Metadata.load(os.path.join(model_dir, "nlu")) assert metadata.get("training_data") is None assert not os.path.exists( os.path.join(model_dir, "nlu", training_data.DEFAULT_TRAINING_DATA_OUTPUT_PATH))
def test_train_nlu_persist_nlu_data(run_in_default_project): run_in_default_project( "train", "nlu", "-c", "config.yml", "--nlu", "data/nlu.md", "--out", "train_models", "--persist-nlu-data", ) assert os.path.exists("train_models") files = io_utils.list_files("train_models") assert len(files) == 1 assert os.path.basename(files[0]).startswith("nlu-") model_dir = model.get_model("train_models") assert model_dir is not None metadata = Metadata.load(os.path.join(model_dir, "nlu")) assert metadata.get("training_data") is not None assert os.path.exists( os.path.join(model_dir, "nlu", training_data.DEFAULT_TRAINING_DATA_OUTPUT_PATH))
def test_builder_load_unknown(component_builder): with pytest.raises(Exception) as excinfo: component_meta = {"name": "my_made_up_componment"} component_builder.load_component(component_meta, "", Metadata({}, None)) assert "Cannot find class" in str(excinfo.value)
def interpreter_for_model(component_builder, model_dir): metadata = Metadata.load(model_dir) return Interpreter.create(metadata, component_builder)
def _fallback_model(self): meta = Metadata({"pipeline": [{ "name": "KeywordIntentClassifier", "class": utils.module_path_from_object(KeywordIntentClassifier()) }]}, "") return Interpreter.create(meta, self._component_builder)
"被盗狼青狗特征:是一条1年半的狼青狗,高约60公分,长约80公分,现市场价值2000余元。" \ "涉案总价值2000余元。案件性质关键词:撬门压锁。, 出生地北京,现居住在新疆" text = "小明,男,身高180cm,上个月去北京站坐G22到新疆,与他同行的有30岁的小黑,他们开着一辆白色法拉利逃跑。" context = {} time = datetime.datetime.now() default_output_attributes = { "intent": { "name": None, "confidence": 0.0 }, "entities": [] } message = Message(text, data=default_output_attributes, time=time) model_dir = './models/link/model_20190517-113416' model_metadata = Metadata.load(model_dir) jieba_meta = model_metadata.for_component(index=0) jie = JiebaTokenizer.load(meta=jieba_meta, model_dir=model_dir, model_metadata=Metadata.load(model_dir)) pprint.pprint(message.data) jie.process(message) ltp_meta = model_metadata.for_component(index=5) ltp = LtpHelper.load(meta=ltp_meta, model_dir=model_dir, model_metadata=Metadata.load(model_dir)) pprint.pprint(message.data)