dialog_model.py 3.2 KB

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