# -*- coding: utf-8 -*-
|
#
|
# @author:
|
# @date:
|
# @version:
|
# @description:
|
import json
|
import os.path
|
|
from knowledgebase.db.doc_db_helper import doc_dbh
|
from knowledgebase.db.doc_db_models import TEntity
|
from knowledgebase.log import Log
|
|
|
class EntityHelper:
|
# 文档类型和识别提示词map
|
doc_prompt_map: dict
|
|
def __init__(self):
|
Log.info("初始化EntityHelper")
|
current_dir = os.path.dirname(__file__)
|
self.doc_prompt_map = {}
|
with open(f'{current_dir}/../../tpl/entities.json', 'r', encoding='utf-8') as f:
|
text = f.read()
|
obj = json.loads(text)
|
for ty in obj:
|
obj2 = obj[ty]
|
for doc_ty in obj2:
|
prompts = obj2[doc_ty]['prompts']
|
self.doc_prompt_map[doc_ty] = prompts
|
for entity in obj2[doc_ty]['entities']:
|
_entity = TEntity(name=entity, type=ty, doc_type=doc_ty,
|
prompts=obj2[doc_ty]['entities'][entity])
|
if doc_dbh.get_entity(_entity):
|
continue
|
doc_dbh.add_entity(_entity)
|
Log.info(f"新增Entity:{entity},id:{_entity.id}")
|
|
_entity_helper:EntityHelper = None
|
|
def get_entity_helper():
|
global _entity_helper
|
return _entity_helper
|
|
def init_entity_helper():
|
global _entity_helper
|
_entity_helper = EntityHelper()
|