43 lines
1.2 KiB
Python
43 lines
1.2 KiB
Python
from server.db.models.knowledge_base_model import KnowledgeBaseModel
|
|
from server.db.session import with_session
|
|
|
|
|
|
@with_session
|
|
def add_kb_to_db(session, kb_name, vs_type, embed_model):
|
|
# 创建知识库实例
|
|
kb = KnowledgeBaseModel(kb_name=kb_name, vs_type=vs_type, embed_model=embed_model)
|
|
session.add(kb)
|
|
return True
|
|
|
|
|
|
@with_session
|
|
def list_kbs_from_db(session):
|
|
kbs = session.query(KnowledgeBaseModel.kb_name).filter(KnowledgeBaseModel.file_count > 0).all()
|
|
kbs = [kb[0] for kb in kbs]
|
|
return kbs
|
|
|
|
|
|
@with_session
|
|
def kb_exists(session, kb_name):
|
|
kb = session.query(KnowledgeBaseModel).filter_by(kb_name=kb_name).first()
|
|
status = True if kb else False
|
|
return status
|
|
|
|
|
|
@with_session
|
|
def load_kb_from_db(session, kb_name):
|
|
kb = session.query(KnowledgeBaseModel).filter_by(kb_name=kb_name).first()
|
|
if kb:
|
|
kb_name, vs_type, embed_model = kb.kb_name, kb.vs_type, kb.embed_model
|
|
else:
|
|
kb_name, vs_type, embed_model = None, None, None
|
|
return kb_name, vs_type, embed_model
|
|
|
|
|
|
@with_session
|
|
def delete_kb_from_db(session, kb_name):
|
|
kb = session.query(KnowledgeBaseModel).filter_by(kb_name=kb_name).first()
|
|
if kb:
|
|
session.delete(kb)
|
|
return True
|