From 57239055391b0c2891180739b78c535a17851aac Mon Sep 17 00:00:00 2001 From: zhaoqingang <zhaoqg0118@163.com> Date: 星期四, 14 十一月 2024 10:21:11 +0800 Subject: [PATCH] 组资源配置 --- app/service/group.py | 19 ++++++++++++++++--- app/service/user.py | 6 +++--- app/models/group_model.py | 13 +++++-------- app/service/role.py | 4 ++-- app/api/group.py | 10 +++++----- 5 files changed, 31 insertions(+), 21 deletions(-) diff --git a/app/api/group.py b/app/api/group.py index 745afe5..51c607c 100644 --- a/app/api/group.py +++ b/app/api/group.py @@ -7,7 +7,7 @@ from app.models.user import PageParameter from app.models.user_model import UserModel from app.service.group import create_group, group_list, edit_group_data, delete_group_data, get_group_users, \ - save_user_to_group + save_user_to_group, save_group_resource group_router = APIRouter() @@ -91,13 +91,13 @@ return Response(code=200, msg="success", data={}) -@group_router.post("/group_resource", response_model=Response) +@group_router.put("/group_resource", response_model=Response) async def group_resource(group_resource: GroupResource, current_user: UserModel = Depends(get_current_user), db=Depends(get_db)): db_group = db.query(GroupModel).filter(GroupModel.id == group_resource.id).first() if not db_group: return Response(code=200, msg="group does not exist") - # is_success = await save_group_resource(db, current_user.id, group_resource.id, group_resource.agents, group_resource.dialogs, group_resource.knowledges) - # if not is_success: - # return Response(code=500, msg="save user to group failure", data={}) + is_success = await save_group_resource(db, current_user.id, group_resource.id, group_resource.agents, group_resource.dialogs, group_resource.knowledges) + if not is_success: + return Response(code=500, msg="save user to group failure", data={}) return Response(code=200, msg="success", data={}) diff --git a/app/models/group_model.py b/app/models/group_model.py index dda330a..bb49da7 100644 --- a/app/models/group_model.py +++ b/app/models/group_model.py @@ -17,9 +17,9 @@ , 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')) @@ -53,18 +53,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, diff --git a/app/service/group.py b/app/service/group.py index cc05127..d7845fa 100644 --- a/app/service/group.py +++ b/app/service/group.py @@ -1,4 +1,5 @@ from app.config.config import settings +from app.models import CanvasModel, DialogModel, KnowledgeModel from app.models.group_model import GroupModel from app.models.user_model import UserModel from app.service.ragflow import RagflowService @@ -8,9 +9,9 @@ async def group_list(db, page_size: int, page_index: int, keyword: str, role_key:str, user_id): logger.info("-------------------------group_list----------------------------------") - query = db.query(GroupModel) - if role_key != "admin": - query.filter(GroupModel.creator==user_id) + query = db.query(GroupModel).filter(GroupModel.creator==user_id) + # if role_key != "admin": + # query.filter(GroupModel.creator==user_id) if keyword: query = query.filter(GroupModel.group_name.like('%{}%'.format(keyword))) items = query.order_by(GroupModel.id.desc()).limit(page_size).offset( @@ -107,4 +108,16 @@ except Exception as e: logger.error(e) return False + return True + +async def save_group_resource(db, user_id, group_id, agents, dialogs, knowledges): + try: + group = db.query(GroupModel).filter(GroupModel.id.__eq__(group_id)).first() + group.agents = [db.get(CanvasModel, user) for user in agents] + group.dialogs = [db.get(DialogModel, user) for user in dialogs] + group.knowledges = [db.get(KnowledgeModel, user) for user in knowledges] + db.commit() + except Exception as e: + logger.error(e) + return False return True \ No newline at end of file diff --git a/app/service/role.py b/app/service/role.py index 7739d00..fd7d91d 100644 --- a/app/service/role.py +++ b/app/service/role.py @@ -8,8 +8,8 @@ async def role_list(db, page_size: int, page_index: int, keyword: str, role_key:str, user_id): query = db.query(RoleModel) - if role_key != "admin": - query.filter(RoleModel.creator==user_id) + # if role_key != "admin": + # query.filter(RoleModel.creator==user_id) if keyword: query = query.filter(RoleModel.name.like('%{}%'.format(keyword))) roles = query.order_by(RoleModel.id.desc()).limit(page_size).offset( diff --git a/app/service/user.py b/app/service/user.py index 792b9ea..e2d8467 100644 --- a/app/service/user.py +++ b/app/service/user.py @@ -10,9 +10,9 @@ async def get_user_list(db, page_index: int, page_size: int, keyword: str, role_key:str, user_id): - query = db.query(UserModel) - if role_key != "admin": - query.filter(UserModel.creator==user_id) + query = db.query(UserModel).filter(UserModel.permission!="admin") + # if role_key != "admin": + # query.filter(UserModel.creator==user_id) if keyword: query = query.filter(UserModel.group_name.like('%{}%'.format(keyword))) users = query.order_by(UserModel.id.desc()).limit(page_size).offset( -- Gitblit v1.8.0