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('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'))
@@ -39,6 +40,7 @@
    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',
@@ -53,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,
@@ -85,29 +84,29 @@
    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
@@ -122,18 +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
    agents: list
    llms: list
    dialogs: list
    knowledges: list