MCPcopy
hub / github.com/BinNong/meet-libai / EntitySearcher

Class EntitySearcher

model/graph_entity/search_model.py:28–168  ·  view source on GitHub ↗

使用ac自动机匹配关键词

Source from the content-addressed store, hash-verified

26
27
28class EntitySearcher(ModelBase):
29 """
30 使用ac自动机匹配关键词
31 """
32 _name = "graph_entity_searcher"
33 _model_path_base = os.path.join(get_app_root(), f"data/model/{_name}")
34 _logger: Logger = Logger(_name)
35 _search_key = Config.get_instance().get_with_nested_params("model", "graph-entity", "search-key")
36
37 def __init__(self, *args, **kwargs):
38 super().__init__(name=self._name)
39 self._model = None
40 self._model_info = {}
41 self._dao = GraphDao()
42 self._node_entities = NodeEntities()
43
44 def build(self, *args, **kwargs):
45 self._logger.info("building entity searcher")
46 self._model_status = ModelStatus.BUILDING
47
48 try:
49 self._build_model()
50 except Exception as e:
51 self._logger.error(f"failed to build entity searcher: {e}")
52 self._model_status = ModelStatus.FAILED
53 return
54
55 self._model_status = ModelStatus.READY
56 self._model_info.update(kwargs)
57 self._logger.logger.opt(colors=True).info("successfully <blue>built</blue> entity searcher")
58
59 self.dump()
60
61 def dump(self, **kwargs):
62 self._logger.info("dumping entity searcher")
63
64 self._remove_obsolete_versions()
65
66 self._dump_model()
67 self._dump_model_info(**kwargs)
68
69 self._logger.logger.opt(colors=True).info("successfully <blue>dumped</blue> entity searcher")
70
71 def reload(self, version: Optional[int] = None):
72 if not version:
73 version = self._version = get_version()
74
75 self._logger.logger.opt(colors=True).info(f"<red>loading</red> entity searcher [version:{version}]")
76
77 self._load_model_info(version)
78 if self._model_status == ModelStatus.READY:
79
80 self._load_model(version)
81 self._logger.info(f"successfully <blue>loaded</blue> entity searcher [version:{version}]")
82
83 else:
84 version = self.get_history_versions().pop()
85 if version:

Callers 1

search_model.pyFile · 0.85

Calls 4

get_app_rootFunction · 0.90
LoggerClass · 0.90
get_instanceMethod · 0.80

Tested by

no test coverage detected