from sqlalchemy import Column, Integer, String, Text, BigInteger, SmallInteger from database import Base class AIConversation(Base): """AI对话主表""" __tablename__ = "ai_conversation" id = Column(BigInteger, primary_key=True, autoincrement=True) user_id = Column(BigInteger, nullable=False, comment="用户ID") content = Column(Text, nullable=False, comment="对话内容") business_type = Column(SmallInteger, nullable=False, default=0, comment="业务类型(0、AI问答,1、安全培训,2、AI写作,3、考试工坊)") exam_name = Column(String(255), default="", comment="考试名称") step = Column(Integer, default=0, comment="步骤") cover_image = Column(String(1000), default="", comment="封面图") ppt_json_url = Column(String(1000), default="", comment="PPTjson地址") ppt_json_content = Column(Text, default="", comment="PPTjson内容") ppt_outline = Column(Text, default="", comment="PPT大纲") created_at = Column(Integer, comment="创建时间") updated_at = Column(Integer, comment="更新时间") is_deleted = Column(Integer, default=0, comment="是否删除 1:是 0:否") class AIMessage(Base): """AI对话消息表""" __tablename__ = "ai_message" id = Column(BigInteger, primary_key=True, autoincrement=True) user_id = Column(BigInteger, nullable=False, comment="用户ID") content = Column(Text, nullable=False, comment="对话内容") type = Column(String(20), nullable=False, comment="对话类型(user、ai)") user_feedback = Column(SmallInteger, default=0, comment="用户反馈(0、无反馈,2、满意(赞),3、不满意(踩))") prev_user_id = Column(BigInteger, default=0, comment="上一句的用户问题ID") ai_conversation_id = Column(BigInteger, nullable=False, comment="AI对话ID") search_source = Column(Text, default="", comment="搜索来源") guess_you_want = Column(String(255), default="", comment="猜你想问") created_at = Column(Integer, comment="创建时间") updated_at = Column(Integer, comment="更新时间") is_deleted = Column(Integer, default=0, comment="是否删除 1:是 0:否") class IndexFile(Base): """索引文件表""" __tablename__ = "index_file" id = Column(Integer, primary_key=True, autoincrement=True) file_name = Column(String(255), nullable=False, comment="文件名") file_path = Column(String(1000), nullable=False, comment="文件路径") encoding = Column(String(255), default="", comment="编码") created_at = Column(Integer, comment="创建时间") updated_at = Column(Integer, comment="更新时间") class QA(Base): """问答QA对表""" __tablename__ = "qa" id = Column(Integer, primary_key=True, autoincrement=True) question = Column(String(255), nullable=False, comment="问题") answer = Column(String(255), nullable=False, comment="答案") created_at = Column(Integer, comment="创建时间") updated_at = Column(Integer, comment="更新时间")