zhaoqingang
2024-12-16 2f84e3cc4bff981590ab37bd95da64bd72c1f2e0
12-16
5个文件已修改
90 ■■■■ 已修改文件
app/api/group.py 44 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/models/group_model.py 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/service/dialog.py 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/service/group.py 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/service/service_token.py 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/api/group.py
@@ -15,49 +15,49 @@
@group_router.get("/list", response_model=Response)
async def user_group_list(current:int, pageSize:int, keyword="", current_user: UserModel = Depends(get_current_user),
                          db=Depends(get_db)):
    return Response(code=200, msg="", data=await group_list(db, pageSize, current, keyword, current_user.permission, current_user.id))
    return Response(code=200, msg="", data=await group_list(db, pageSize, current, keyword))
@group_router.post("/add_group", response_model=Response)
async def add_group(group: GroupData, current_user: UserModel = Depends(get_current_user), db=Depends(get_db)):
    if not group.group_name:
    if not group.groupName:
        return Response(code=400, msg="The group_name cannot be empty!")
    db_group = db.query(GroupModel).filter(GroupModel.group_name == group.group_name).first()
    db_group = db.query(GroupModel).filter(GroupModel.group_name == group.groupName).first()
    if db_group:
        return Response(code=200, msg="group already created")
    is_create = await create_group(db, group.group_name, group.group_description, current_user.id)
        return Response(code=400, msg="group already created")
    is_create = await create_group(db, group.groupName, group.description, current_user.id)
    if not is_create:
        return Response(code=200, msg="group create failure", data={})
    return Response(code=200, msg="group create successfully", data={"group_name": group.group_name})
    return Response(code=200, msg="group create successfully", data={"group_name": group.groupName})
@group_router.put("/edit_group", response_model=Response)
async def edit_group(group: GroupData, current_user: UserModel = Depends(get_current_user), db=Depends(get_db)):
    if not group.group_name:
    if not group.groupName:
        return Response(code=400, msg="The group_name cannot be empty!")
    db_group = db.query(GroupModel).filter(GroupModel.group_name == group.group_name).first()
    db_group = db.query(GroupModel).filter(GroupModel.group_name == group.groupName).first()
    if db_group and db_group.id != group.id:
        return Response(code=200, msg="group_name already created")
        return Response(code=400, msg="group_name already created")
    is_edit = await edit_group_data(db, group.id,
                                    {"group_name": group.group_name, "group_description": group.group_description,
                                    {"group_name": group.groupName, "group_description": group.description,
                                     "updated_at": datetime.now()})
    if not is_edit:
        return Response(code=200, msg="group edit failure", data={})
    return Response(code=200, msg="group edit successfully", data={"group_name": group.group_name})
    return Response(code=200, msg="group edit successfully", data={"group_name": group.groupName})
@group_router.put("/edit_group_status", response_model=Response)
async def edit_group_status(group: GroupData, current_user: UserModel = Depends(get_current_user), db=Depends(get_db)):
    if group.group_status not in ["0", "1"]:
        return Response(code=400, msg="The status cannot be {}!".format(group.group_status))
    if group.status not in ["0", "1"]:
        return Response(code=400, msg="The status cannot be {}!".format(group.status))
    db_group = db.query(GroupModel).filter(GroupModel.id == group.id).first()
    if not db_group:
        return Response(code=200, msg="group does not exist")
        return Response(code=400, msg="group does not exist")
    is_edit = await edit_group_data(db, group.id,
                                    {"status": group.group_status,"updated_at": datetime.now()})
                                    {"status": group.status,"updated_at": datetime.now()})
    if not is_edit:
        return Response(code=200, msg="group status edit failure", data={})
    return Response(code=200, msg="group status edit successfully", data={"group_name": group.group_name})
    return Response(code=200, msg="group status edit successfully", data={"group_name": group.groupName})
@group_router.delete("/delete_group/{groupId}", response_model=Response)
@@ -73,12 +73,12 @@
    return Response(code=200, msg="group delete successfully", data={})
@group_router.post("/group_users", response_model=Response)
async def group_users(group: GroupData, current_user: UserModel = Depends(get_current_user), db=Depends(get_db)):
    db_group = db.query(GroupModel).filter(GroupModel.id == group.id).first()
@group_router.get("/group_users", response_model=Response)
async def group_users(groupId:int, current_user: UserModel = Depends(get_current_user), db=Depends(get_db)):
    db_group = db.query(GroupModel).filter(GroupModel.id == groupId).first()
    if not db_group:
        return Response(code=200, msg="group does not exist", data={})
    return Response(code=200, msg="success", data=await get_group_users(db, group.id))
    return Response(code=200, msg="success", data=await get_group_users(db, groupId))
@group_router.post("/save_group_user", response_model=Response)
@@ -87,7 +87,7 @@
    db_group = db.query(GroupModel).filter(GroupModel.id == group_user.id).first()
    if not db_group:
        return Response(code=200, msg="group does not exist")
    is_success = await save_user_to_group(db, current_user.id, group_user.id, group_user.user_list)
    is_success = await save_user_to_group(db, current_user.id, group_user.id, group_user.userList)
    if not is_success:
        return Response(code=500, msg="save user to group failure", data={})
    return Response(code=200, msg="success", data={})
@@ -99,7 +99,7 @@
    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)
    is_success = await save_group_resource(db, current_user.id, group_resource.id, group_resource.llms, 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={})
app/models/group_model.py
@@ -96,8 +96,8 @@
        if len(self.dialogs.all()) > 0:
            json['dialogs'] = [dialog.to_json() for dialog in self.dialogs]
        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]
@@ -120,18 +120,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
app/service/dialog.py
@@ -105,7 +105,7 @@
async def update_dialog_status_service(db, dialog_id, status):
    try:
        DialogModel(id=dialog_id).update({"status":status})
        db.query(DialogModel).filter_by(id=dialog_id).update({"status":status})
        db.commit()
    except Exception as e:
        logger.error(e)
app/service/group.py
@@ -7,17 +7,18 @@
from Log import logger
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).filter(GroupModel.creator==user_id)
async def group_list(db, page_size: int, page_index: int, keyword: str):
    # logger.info("-------------------------group_list----------------------------------")
    query = db.query(GroupModel)
    # 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(
        (page_index - 1) * page_size).all()
    total = query.count()
    print(total)
    items = query.order_by(GroupModel.id.desc()).limit(page_size).offset((page_index - 1) * page_size)
    return {"total": query.count(), "items": [item.to_json() for item in items]}
    return {"total":total , "items": [item.to_dict() for item in items.all()]}
async def create_group(db, group_name: str, group_description: str, user_id):
@@ -58,14 +59,13 @@
async def get_group_users(db, group_id):
    not_group_user = []
    in_group_user = []
    user_list = [u.id for i in
                 db.query(GroupModel).filter(GroupModel.id.__eq__(group_id)).all() for u in i.users]
    for u in db.query(UserModel.id, UserModel.username).filter(UserModel.permission!="admin").order_by(UserModel.id.desc()).all():
    user_list = [u.id for u in db.query(GroupModel).filter(GroupModel.id.__eq__(group_id)).first().users]
    for u in db.query(UserModel.id, UserModel.username,UserModel.permission).filter(UserModel.permission!="admin").order_by(UserModel.id.desc()).all():
        if u.id in user_list:
            in_group_user.append({"user_id": u.id, "user_name": u.username})
            in_group_user.append({"userId": u.id, "userName": u.username})
        else:
            not_group_user.append({"user_id": u.id, "user_name": u.username})
    return {"in_group": in_group_user, "not_in_group": not_group_user}
            not_group_user.append({"userId": u.id, "userName": u.username})
    return {"inGroup": in_group_user, "notInGroup": not_group_user}
async def save_user_to_group(db, user_id, group_id, user_list):
@@ -112,10 +112,10 @@
        return False
    return True
async def save_group_resource(db, user_id, group_id, agents, dialogs, knowledges):
async def save_group_resource(db, user_id, group_id, llms, 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.llms = [db.get(CommonLlmModel, user) for user in llms]
        group.dialogs = [db.get(DialogModel, user) for user in dialogs]
        group.knowledges = [db.get(KnowledgeModel, user) for user in knowledges]
        db.commit()
app/service/service_token.py
@@ -103,7 +103,7 @@
        logger.error("注册用户获取token失败!")
        return False
    user_list = db.query(UserAppModel).filter(UserAppModel.app_type==RAGFLOW).all()
    user = db.query(UserAppModel).filter(UserAppModel.userFlag==sync_user.id, UserAppModel.app_type == RAGFLOW).first()
    user = db.query(UserAppModel).filter(UserAppModel.user_id==sync_user.id, UserAppModel.app_type == RAGFLOW).first()
    if not user:
        logger.error("注册用户获取信息失败!")
        return False