zhaoqingang
2025-03-28 226202d6eee6480f3386c6295be26fad42940cc8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
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