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 DialogModel(Base): __tablename__ = 'dialogs' __mapper_args__ = { # "order_by": 'SEQ' } id = Column(String(32), primary_key=True) create_time = Column(BigInteger) create_date = Column(DateTime) update_time = Column(BigInteger) update_date = Column(DateTime) tenant_id = Column(String(32)) name = Column(String(255)) description = Column(Text) icon = Column(Text) language = Column(String(32)) llm_id = Column(String(128)) llm_setting = Column(Text) prompt_type = Column(String(16)) prompt_config = Column(Text) similarity_threshold = Column(Float) vector_similarity_weight = Column(Float) top_n = Column(Integer) top_k = Column(Integer) do_refer = Column(String(1)) rerank_id = Column(String(128)) kb_ids = 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, 'create_time': self.create_time, 'create_date': self.create_date, 'update_time': self.update_time, 'update_date': self.update_date, 'tenant_id': self.tenant_id, 'name': self.name, 'description': self.description, 'icon': self.icon, 'language': self.language, 'llm_id': self.llm_id, 'prompt_type': self.prompt_type, 'prompt_config': self.prompt_config, 'similarity_threshold': self.similarity_threshold, 'vector_similarity_weight': self.vector_similarity_weight, 'top_n': self.top_n, 'top_k': self.top_k, 'do_refer': self.do_refer, 'kb_ids': self.kb_ids, 'status': self.status }