knowledge_model.py 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  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, Table, ForeignKey, DateTime, BigInteger, Text, Float, Boolean
  6. from sqlalchemy.orm import relationship, backref
  7. from app.models.base_model import Base
  8. class KnowledgeModel(Base):
  9. __tablename__ = 'knowledgebases'
  10. __mapper_args__ = {
  11. # "order_by": 'SEQ'
  12. }
  13. id = Column(String(36), primary_key=True) # id
  14. name = Column(String(128)) # 名称
  15. create_date = Column(DateTime, default=datetime.now()) # 创建时间
  16. update_date = Column(DateTime, default=datetime.now(), onupdate=datetime.now()) # 更新时间
  17. permission = Column(String(32), default="me")
  18. tenant_id = Column(String(32)) # 创建人id
  19. description = Column(Text) # 说明
  20. status = Column(String(1)) # 状态
  21. documents = Column(Integer, default=0) # 文档
  22. icon = Column(String(128)) # 文档
  23. knowledge_type = Column(String(1)) # 知识库平台
  24. def get_id(self):
  25. return str(self.id)
  26. def to_json(self):
  27. return {
  28. 'id': self.id,
  29. 'name': self.name,
  30. 'create_time': self.create_date.strftime('%Y-%m-%d %H:%M:%S'),
  31. 'update_time': self.update_date.strftime('%Y-%m-%d %H:%M:%S'),
  32. 'permission': self.permission,
  33. 'user_id': self.tenant_id,
  34. 'description': self.description,
  35. 'status': self.status,
  36. 'documents': self.documents if self.documents else 0,
  37. 'icon': self.icon
  38. }
  39. def __repr__(self):
  40. return '<Knowledge name:%r url:%r>\n' % (self.name, self.id)
  41. class klgParameter(BaseModel):
  42. id: str
  43. name: str
  44. description: Optional[str] = ""
  45. icon: str
  46. klgType: str
  47. class klgIcon(BaseModel):
  48. id: str
  49. icon: str