dialog_model.py 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  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. parameters = Column(Text)
  24. def get_id(self):
  25. return str(self.id)
  26. def to_json(self):
  27. return {
  28. 'id': self.id,
  29. 'create_date': self.create_date.strftime('%Y-%m-%d %H:%M:%S'),
  30. 'update_date': self.update_date.strftime('%Y-%m-%d %H:%M:%S'),
  31. 'user_id': self.tenant_id,
  32. 'name': self.name,
  33. 'description': self.description,
  34. 'icon': self.icon,
  35. 'status': self.status,
  36. 'agentType': self.dialog_type,
  37. # 'agentId': self.agent_id,
  38. 'mode': self.mode,
  39. }
  40. class ConversationModel(Base):
  41. __tablename__ = 'conversation'
  42. id = Column(String(32), primary_key=True) # id
  43. create_date = Column(DateTime) # 创建时间
  44. create_time = Column(BigInteger)
  45. update_date = Column(DateTime) # 更新时间
  46. update_time = Column(BigInteger, index=True)
  47. tenant_id = Column(Integer) # 创建人
  48. dialog_id = Column(String(32))
  49. name = Column(String(255)) # 名称
  50. message = Column(JSON) # 说明
  51. reference = Column(JSON) # 图标
  52. def get_id(self):
  53. return str(self.id)
  54. def to_json(self):
  55. return {
  56. 'id': self.id,
  57. 'updated_time': self.update_time,
  58. 'update_date': datetime.fromtimestamp(self.update_time / 1000.0).strftime('%Y-%m-%d %H:%M:%S'),
  59. 'name': self.name,
  60. }
  61. class dialogData(BaseModel):
  62. id: str
  63. name: str
  64. description: Optional[str] = ""
  65. dialogType: str
  66. icon: str
  67. mode: str
  68. class dialogDataUpdate(BaseModel):
  69. id: str
  70. status: Optional[str] = "1"
  71. icon: Optional[str] = ""
  72. class dialogList(BaseModel):
  73. current: Optional[int] = 1
  74. pageSize: Optional[int] = 10
  75. keyword: Optional[str] = ""
  76. label: Optional[list] = []
  77. status: Optional[str] = ""
  78. mode: Optional[str] = ""