from datetime import datetime from sqlalchemy import Column, Integer, String, Table, ForeignKey, DateTime, BigInteger, Text, Float, Boolean from sqlalchemy.orm import relationship, backref from app.models.base_model import Base class KnowledgeModel(Base): __tablename__ = 'knowledgebase' __mapper_args__ = { # "order_by": 'SEQ' } id = Column(String(32), primary_key=True) name = Column(String(128)) create_time = Column(BigInteger) create_date = Column(DateTime) update_time = Column(BigInteger) update_date = Column(DateTime) avatar = Column(Text) tenant_id = Column(String(32)) language = Column(String(32)) description = Column(Text) embd_id = Column(String(128)) permission = Column(String(16)) created_by = Column(String(32)) doc_num = Column(Integer) token_num = Column(Integer) chunk_num = Column(Integer) similarity_threshold = Column(Float) vector_similarity_weight = Column(Float) parser_id = Column(String(32)) parser_config = Column(Text) status = Column(String(1)) hide = Column(Boolean) def get_id(self): return str(self.id) def to_json(self): return { 'id': self.id, 'name': self.name, 'create_time': self.create_time, 'update_time': self.update_time, 'avatar': self.avatar, 'tenant_id': self.tenant_id, 'language': self.language, 'description': self.description, 'embd_id': self.embd_id, 'permission': self.permission, 'created_by': self.created_by, 'doc_num': self.doc_num, 'token_num': self.token_num, 'chunk_num': self.chunk_num, 'similarity_threshold': self.similarity_threshold, 'vector_similarity_weight': self.vector_similarity_weight, 'parser_id': self.parser_id, 'parser_config': json.loads(self.parser_config), 'status': self.status } def __repr__(self): return '\n' % (self.name, self.id)