zhaoqingang
2025-03-18 282a631b9ceee9a634ee1d93751a5254ed37ccef
app/models/group_model.py
@@ -6,20 +6,21 @@
from pydantic import BaseModel
from sqlalchemy.orm import relationship, backref
from app.config.const import Dialog_STATSU_DELETE
from app.models.base_model import Base
group_knowledge_table = Table('group_Knowledge', Base.metadata
group_knowledge_table = Table('group_knowledge', Base.metadata
                           , Column('group_id', Integer, ForeignKey('group.id', ondelete='CASCADE'))
                           , Column('knowledge_id', String(32), ForeignKey('knowledgebase.id', ondelete='CASCADE')))
                           , Column('knowledge_id', String(32), ForeignKey('knowledgebases.id', ondelete='CASCADE')))
group_dialog_table = Table('group_dialogs', Base.metadata
                           , Column('group_id', Integer, ForeignKey('group.id', ondelete='CASCADE'))
                           , Column('dialog_id', String(36), ForeignKey('dialogs.id', ondelete='CASCADE')))
group_agent_table = Table('group_agent', Base.metadata
group_agent_table = Table('group_canvas', Base.metadata
                           , Column('group_id', Integer, ForeignKey('group.id', ondelete='CASCADE'))
                           , Column('agent_id', String(36), ForeignKey('user_canvas.id', ondelete='CASCADE')))
                           , Column('canvas_id', String(36), ForeignKey('canvas.id', ondelete='CASCADE')))
group_llm_table = Table('group_llm', Base.metadata
                           , Column('group_id', Integer, ForeignKey('group.id', ondelete='CASCADE'))
@@ -38,6 +39,8 @@
    status = Column(String(10), nullable=False, default="1")
    created_at = Column(DateTime, default=datetime.now())
    updated_at = Column(DateTime, default=datetime.now(), onupdate=datetime.now())
    creator = Column(Integer)
    group_type = Column(Integer, default=1)
    knowledges = relationship('KnowledgeModel',
@@ -52,18 +55,15 @@
    agents = relationship('CanvasModel',
                             secondary=group_agent_table,
                             backref=backref('groups', lazy='dynamic'),
                             lazy="dynamic")
                             backref=backref('groups', lazy='dynamic'))
    llms = relationship('CommonLlmModel',
                           secondary=group_llm_table,
                           backref=backref('groups', lazy='dynamic'),
                           lazy="dynamic")
                           backref=backref('groups', lazy='dynamic'))
    unified_agents = relationship('UnifiedAgentModel',
                                     secondary=group_unified_agent_table,
                                     backref=backref('roles', lazy='dynamic'),
                                     lazy="dynamic")
                                     backref=backref('groups', lazy='dynamic'))
    def to_dict(self):
        return {
            'groupId': self.id,
@@ -79,34 +79,34 @@
    def __repr__(self):
        return '<Role name:%r description:%r iconCls:%r seq:%r>\n' \
            % (self.NAME, self.DESCRIPTION, self.ICONCLS, self.SEQ)
        return '<Role name:%r description:%r>\n' \
            % (self.group_name, self.group_description)
    def to_json(self):
        json = {
            'roleId': self.id,
            'groupId': self.id,
            'createTime': self.created_at.strftime('%Y-%m-%d %H:%M:%S'),
            'updateTime': self.updated_at.strftime('%Y-%m-%d %H:%M:%S'),
            'groupName': self.group_name,
            'remark': self.group_description,
            'description': self.group_description,
            'status': self.status,
        }
        if len(self.knowledges.all()) > 0:
            json['knowledges'] = [knowledge.to_json() for knowledge in self.knowledges]
        # if len(self.knowledges.all()) > 0:
        json['knowledges'] = [knowledge.to_json() for knowledge in self.knowledges]
        if len(self.dialogs.all()) > 0:
            json['dialogs'] = [dialog.to_json() for dialog in self.dialogs]
        # if len(self.dialogs.all()) > 0:
        json['dialogs'] = [dialog.to_json() for dialog in self.dialogs if dialog.status != Dialog_STATSU_DELETE]
        if len(self.agents.all()) > 0:
            json['agents'] = [agent.to_json() for agent in self.agents]
        # if len(self.agents.all()) > 0:
        #     json['agents'] = [agent.to_json() for agent in self.agents]
        if len(self.llms.all()) > 0:
            json['llms'] = [llm.to_json() for llm in self.llms]
        # if len(self.llms.all()) > 0:
        json['llms'] = [llm.to_json() for llm in self.llms]
        json['users'] = [user.to_dict() for user in self.users]
        if hasattr(self, 'flag'):
            json['flag'] = self.flag
        # if hasattr(self, 'flag'):
        #     json['flag'] = self.flag
        return json
@@ -121,11 +121,18 @@
class GroupData(BaseModel):
    id: Optional[int] = None
    group_name: Optional[str] = ""
    group_description: Optional[str] = ""
    group_status: Optional[str] = ""
    groupName: Optional[str] = ""
    description: Optional[str] = ""
    status: Optional[str] = ""
class GroupUsers(BaseModel):
    id: int
    user_list: list
    userList: list
class GroupResource(BaseModel):
    id: int
    llms: list
    dialogs: list
    knowledges: list