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