dialog_model.py 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. from datetime import datetime
  2. from typing import Optional
  3. from pydantic import BaseModel
  4. from sqlalchemy import Column, Integer, String, BigInteger, ForeignKey, DateTime, Text, JSON
  5. from sqlalchemy.orm import relationship, backref
  6. from app.models.base_model import Base
  7. class DialogModel(Base):
  8. __tablename__ = 'dialogs'
  9. __mapper_args__ = {
  10. # "order_by": 'SEQ'
  11. }
  12. id = Column(String(36), primary_key=True) # id
  13. create_date = Column(DateTime, default=datetime.now()) # 创建时间
  14. update_date = Column(DateTime, default=datetime.now(), onupdate=datetime.now()) # 更新时间
  15. tenant_id = Column(String(36)) # 创建人
  16. name = Column(String(255)) # 名称
  17. description = Column(Text) # 说明
  18. icon = Column(Text, default="intelligentFrame1") # 图标
  19. status = Column(String(1), default="0") # 状态
  20. dialog_type = Column(String(1)) # 平台
  21. # agent_id = Column(String(36))
  22. mode = Column(String(36))
  23. def get_id(self):
  24. return str(self.id)
  25. def to_json(self):
  26. return {
  27. 'id': self.id,
  28. 'create_date': self.create_date.strftime('%Y-%m-%d %H:%M:%S'),
  29. 'update_date': self.update_date.strftime('%Y-%m-%d %H:%M:%S'),
  30. 'user_id': self.tenant_id,
  31. 'name': self.name,
  32. 'description': self.description,
  33. 'icon': self.icon,
  34. 'status': self.status,
  35. 'agentType': self.dialog_type,
  36. # 'agentId': self.agent_id,
  37. 'mode': self.mode,
  38. }
  39. class ConversationModel(Base):
  40. __tablename__ = 'conversation'
  41. id = Column(String(32), primary_key=True) # id
  42. create_date = Column(DateTime) # 创建时间
  43. create_time = Column(BigInteger)
  44. update_date = Column(DateTime) # 更新时间
  45. update_time = Column(BigInteger, index=True)
  46. tenant_id = Column(Integer) # 创建人
  47. dialog_id = Column(String(32))
  48. name = Column(String(255)) # 名称
  49. message = Column(JSON) # 说明
  50. reference = Column(JSON) # 图标
  51. def get_id(self):
  52. return str(self.id)
  53. def to_json(self):
  54. return {
  55. 'id': self.id,
  56. 'updated_time': self.update_time,
  57. 'update_date': datetime.fromtimestamp(self.update_time / 1000.0).strftime('%Y-%m-%d %H:%M:%S'),
  58. 'name': self.name,
  59. }
  60. class dialogData(BaseModel):
  61. id: str
  62. name: str
  63. description: Optional[str] = ""
  64. dialogType: str
  65. icon: str
  66. mode: str
  67. class dialogDataUpdate(BaseModel):
  68. id: str
  69. status: Optional[str] = "1"
  70. icon: Optional[str] = ""
  71. class dialogList(BaseModel):
  72. current: Optional[int] = 1
  73. pageSize: Optional[int] = 10
  74. keyword: Optional[str] = ""
  75. label: Optional[list] = []
  76. status: Optional[str] = ""
  77. mode: Optional[str] = ""