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