| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- import json
- from datetime import datetime
- from typing import Optional
- from pydantic import BaseModel
- from sqlalchemy import Column, Integer, String, Table, ForeignKey, DateTime, BigInteger, Text, Float, Boolean
- from sqlalchemy.orm import relationship, backref
- from app.models.base_model import Base
- class KnowledgeModel(Base):
- __tablename__ = 'knowledgebases'
- __mapper_args__ = {
- # "order_by": 'SEQ'
- }
- id = Column(String(36), primary_key=True) # id
- name = Column(String(128)) # 名称
- create_date = Column(DateTime, default=datetime.now()) # 创建时间
- update_date = Column(DateTime, default=datetime.now(), onupdate=datetime.now()) # 更新时间
- permission = Column(String(32), default="me")
- tenant_id = Column(String(32)) # 创建人id
- description = Column(Text) # 说明
- status = Column(String(1)) # 状态
- documents = Column(Integer, default=0) # 文档
- icon = Column(String(128)) # 文档
- knowledge_type = Column(String(1)) # 知识库平台
- embd_id = Column(String(128))
- def get_id(self):
- return str(self.id)
- def to_json(self, user_id=""):
- return {
- 'id': self.id,
- 'name': self.name,
- 'create_time': self.create_date.strftime('%Y-%m-%d %H:%M:%S'),
- 'update_time': self.update_date.strftime('%Y-%m-%d %H:%M:%S'),
- 'permission': self.permission,
- 'user_id': self.tenant_id,
- 'description': self.description,
- 'status': self.status,
- 'documents': self.documents if self.documents else 0,
- 'icon': self.icon,
- 'embd_id': self.embd_id,
- 'link': True if (self.tenant_id == user_id or user_id == "admin" ) and self.permission == "team" else False,
- }
- def __repr__(self):
- return '<Knowledge name:%r url:%r>\n' % (self.name, self.id)
- class klgParameter(BaseModel):
- id: str
- name: str
- description: Optional[str] = ""
- icon: str
- klgType: str
- class klgIcon(BaseModel):
- id: str
- icon: str
- class KnowledgeUserModel(Base):
- __tablename__ = 'knowledgebase_user'
- id = Column(Integer, primary_key=True) # id
- kb_id = Column(String(36))
- user_id = Column(Integer)
- create_date = Column(DateTime, default=datetime.now()) # 创建时间
- update_date = Column(DateTime, default=datetime.now(), onupdate=datetime.now()) # 更新时间
- status = Column(Integer) # 状态
- def get_id(self):
- return str(self.id)
- def to_json(self, user_id=""):
- return {
- 'id': self.id,
- 'kb_id': self.kb_id,
- 'create_time': self.create_date.strftime('%Y-%m-%d %H:%M:%S'),
- 'update_time': self.update_date.strftime('%Y-%m-%d %H:%M:%S'),
- 'user_id': self.user_id,
- 'status': self.status,
- 'owner': True if str(self.user_id) == user_id else False,
- }
- def __repr__(self):
- return '<Knowledge name:%r url:%r>\n' % (self.name, self.id)
- class KlgOwner(BaseModel):
- knowledgeId: str
- UserId: int
|