diff --git a/apps/manager/service.py b/apps/manager/service.py index 683d573c8913a955acaa7e4297daff282a816ad3..17bc591d2c9cae2c4b0dd9d7eec00d57c548d81f 100644 --- a/apps/manager/service.py +++ b/apps/manager/service.py @@ -219,7 +219,20 @@ class ServiceCenterManager: """获取服务数据""" # 验证用户权限 service_collection = MongoDB.get_collection("service") - db_service = await service_collection.find_one({"_id": service_id, "author": user_sub}) + match_conditions = { + {"author": user_sub}, + { + "permission.type": PermissionType.PUBLIC.value + }, + { + "$and": [ + {"permission.type": PermissionType.PROTECTED.value}, + {"permission.users": {"$in": [user_sub]}}, + ], + } + } + query = {"$and": [{"service_id": service_id}, {"$or": match_conditions}]} + db_service = await service_collection.find_one(query) if not db_service: msg = "Service not found" raise ServiceIDError(msg) @@ -253,7 +266,6 @@ class ServiceCenterManager: metadata_data = yaml.safe_load(await f.read()) return ServiceMetadata.model_validate(metadata_data) - @staticmethod async def delete_service( user_sub: str, diff --git a/apps/routers/chat.py b/apps/routers/chat.py index c00e0a4098ef6411f65d4d5ef2b54540a2f5c479..cf0d2f8d0eb4bbc4f6636dd49e6dd95004f2b4dc 100644 --- a/apps/routers/chat.py +++ b/apps/routers/chat.py @@ -81,8 +81,6 @@ async def chat_generator(post_body: RequestData, user_sub: str, session_id: str) break yield "data: " + content + "\n\n" - import time - time.sleep(0.3) # 等待Scheduler运行完毕 await scheduler_task diff --git a/apps/service/flow.py b/apps/service/flow.py index 23f111dc75620954168b6176f2df59feeceeb120..f18d4e4f56dfa7c29035f82fce704442c709d2fc 100644 --- a/apps/service/flow.py +++ b/apps/service/flow.py @@ -47,8 +47,10 @@ class FlowService: call_class: type[BaseModel] = await Pool().get_call(node.call_id) if not call_class: node.node_id = 'Empty' + node.description = '【对应的api工具被删除!节点不可用!请联系相关人员!】\n\n'+node.description except Exception as e: node.node_id = 'Empty' + node.description = '【对应的api工具被删除!节点不可用!请联系相关人员!】\n\n'+node.description logger.error(f"[FlowService] 获取步骤的call_id失败{node.call_id}由于:{e}") node_branch_map[node.step_id] = set() if node.call_id == NodeType.CHOICE.value: