models.py 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. from sqlalchemy import Column, Integer, String, DateTime, Text, BigInteger, Index, JSON
  2. from datetime import datetime
  3. from .db import Base
  4. class KnowledgeParsingContent(Base):
  5. __tablename__ = 'knowledge_parsing_content'
  6. __table_args__ = {
  7. 'comment': '内容解析表'
  8. }
  9. id = Column(BigInteger, primary_key=True, autoincrement=True)
  10. content_id = Column(String(128), nullable=False)
  11. request_id = Column(String(128), nullable=False)
  12. task_id = Column(BigInteger, nullable=False)
  13. parsing_data = Column(Text, comment='结构化数据')
  14. create_time = Column(DateTime, default=datetime.now)
  15. status = Column(Integer, default=0, comment='0: 未开始,1:处理中 2: 处理完成 3:处理失败')
  16. indentify_data = Column(Text, comment='理解的数据')
  17. def __repr__(self):
  18. return f"<KnowledgeParsingContent(id={self.id}, content_id={self.content_id}, status={self.status})>"
  19. class KnowledgeExtractionContent(Base):
  20. __tablename__ = 'knowledge_extraction_content'
  21. __table_args__ = (
  22. Index('idx_request_id', 'request_id'), # 创建索引
  23. {'comment': '内容抽取表'}
  24. )
  25. id = Column(BigInteger, primary_key=True, autoincrement=True)
  26. request_id = Column(String(128), nullable=False)
  27. parsing_id = Column(BigInteger, nullable=False)
  28. score = Column(Integer, default=-1)
  29. reason = Column(Text, comment='打分原因')
  30. data = Column(Text, comment='结构化数据')
  31. create_at = Column(DateTime, default=datetime.now)
  32. status = Column(Integer, default=0, comment='0: 未开始,1:处理中 2: 处理完成 3:处理失败')
  33. def __repr__(self):
  34. return f"<KnowledgeExtractionContent(id={self.id}, request_id={self.request_id}, status={self.status})>"
  35. class KnowledgeExpandContent(Base):
  36. __tablename__ = 'knowledge_expand_content'
  37. __table_args__ = {
  38. 'comment': '拓展字段'
  39. }
  40. id = Column(BigInteger, primary_key=True, autoincrement=True)
  41. request_id = Column(String(128), nullable=False)
  42. create_time = Column(DateTime, default=datetime.now)
  43. expand_querys = Column(JSON, comment='拓展的query词列表')
  44. keywords = Column(JSON, comment='提取的内容关键词列表')
  45. query = Column(Text, comment='搜索词')
  46. def __repr__(self):
  47. return f"<KnowledgeExpandContent(id={self.id}, request_id={self.request_id})>"