chat.py 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. from sqlalchemy import Column, Integer, String, Text, BigInteger, SmallInteger
  2. from database import Base
  3. class AIConversation(Base):
  4. """AI对话主表"""
  5. __tablename__ = "ai_conversation"
  6. id = Column(BigInteger, primary_key=True, autoincrement=True)
  7. user_id = Column(BigInteger, nullable=False, comment="用户ID")
  8. content = Column(Text, nullable=False, comment="对话内容")
  9. business_type = Column(SmallInteger, nullable=False, default=0, comment="业务类型(0、AI问答,1、安全培训,2、AI写作,3、考试工坊)")
  10. exam_name = Column(String(255), default="", comment="考试名称")
  11. step = Column(Integer, default=0, comment="步骤")
  12. cover_image = Column(String(1000), default="", comment="封面图")
  13. ppt_json_url = Column(String(1000), default="", comment="PPTjson地址")
  14. ppt_json_content = Column(Text, default="", comment="PPTjson内容")
  15. ppt_outline = Column(Text, default="", comment="PPT大纲")
  16. created_at = Column(Integer, comment="创建时间")
  17. updated_at = Column(Integer, comment="更新时间")
  18. is_deleted = Column(Integer, default=0, comment="是否删除 1:是 0:否")
  19. class AIMessage(Base):
  20. """AI对话消息表"""
  21. __tablename__ = "ai_message"
  22. id = Column(BigInteger, primary_key=True, autoincrement=True)
  23. user_id = Column(BigInteger, nullable=False, comment="用户ID")
  24. content = Column(Text, nullable=False, comment="对话内容")
  25. type = Column(String(20), nullable=False, comment="对话类型(user、ai)")
  26. user_feedback = Column(SmallInteger, default=0, comment="用户反馈(0、无反馈,2、满意(赞),3、不满意(踩))")
  27. prev_user_id = Column(BigInteger, default=0, comment="上一句的用户问题ID")
  28. ai_conversation_id = Column(BigInteger, nullable=False, comment="AI对话ID")
  29. search_source = Column(Text, default="", comment="搜索来源")
  30. guess_you_want = Column(String(255), default="", comment="猜你想问")
  31. created_at = Column(Integer, comment="创建时间")
  32. updated_at = Column(Integer, comment="更新时间")
  33. is_deleted = Column(Integer, default=0, comment="是否删除 1:是 0:否")
  34. class IndexFile(Base):
  35. """索引文件表"""
  36. __tablename__ = "index_file"
  37. id = Column(Integer, primary_key=True, autoincrement=True)
  38. file_name = Column(String(255), nullable=False, comment="文件名")
  39. file_path = Column(String(1000), nullable=False, comment="文件路径")
  40. encoding = Column(String(255), default="", comment="编码")
  41. created_at = Column(Integer, comment="创建时间")
  42. updated_at = Column(Integer, comment="更新时间")
  43. class QA(Base):
  44. """问答QA对表"""
  45. __tablename__ = "qa"
  46. id = Column(Integer, primary_key=True, autoincrement=True)
  47. question = Column(String(255), nullable=False, comment="问题")
  48. answer = Column(String(255), nullable=False, comment="答案")
  49. created_at = Column(Integer, comment="创建时间")
  50. updated_at = Column(Integer, comment="更新时间")