diff --git a/apps/manager/appcenter.py b/apps/manager/appcenter.py index 9631ac9aee9b82ad9057dc9af709828626eaf66a..48b25df9cec8614a4e10eaa58d541afdfb4c7aef 100644 --- a/apps/manager/appcenter.py +++ b/apps/manager/appcenter.py @@ -98,7 +98,7 @@ class AppCenterManager: """ try: if search_type == SearchType.AUTHOR: - if keyword not in user_sub: + if keyword is not None and keyword not in user_sub: return [], 0 base_filter = {"author": user_sub} filters: dict[str, Any] = ( diff --git a/apps/manager/service.py b/apps/manager/service.py index c71fc73ff5afdb2f44452f99056a51cb48d70964..683d573c8913a955acaa7e4297daff282a816ad3 100644 --- a/apps/manager/service.py +++ b/apps/manager/service.py @@ -59,7 +59,6 @@ class ServiceCenterManager: ] return services, total_count - @staticmethod async def fetch_user_services( user_sub: str, @@ -70,7 +69,7 @@ class ServiceCenterManager: ) -> tuple[list[ServiceCardItem], int]: """获取用户创建的服务""" if search_type == SearchType.AUTHOR: - if keyword not in user_sub: + if keyword is not None and keyword not in user_sub: return [], 0 base_filter = {"author": user_sub} filters = ServiceCenterManager._build_filters(base_filter, search_type, keyword) if keyword else base_filter @@ -89,7 +88,6 @@ class ServiceCenterManager: ] return services, total_count - @staticmethod async def fetch_favorite_services( user_sub: str, @@ -116,7 +114,6 @@ class ServiceCenterManager: ] return services, total_count - @staticmethod async def create_service( user_sub: str, @@ -152,7 +149,6 @@ class ServiceCenterManager: # 返回服务ID return service_id - @staticmethod async def update_service( user_sub: str, @@ -186,7 +182,6 @@ class ServiceCenterManager: # 返回服务ID return service_id - @staticmethod async def get_service_apis( service_id: str, @@ -216,7 +211,6 @@ class ServiceCenterManager: ) return service_pool_store.name, api_list - @staticmethod async def get_service_data( user_sub: str, @@ -240,7 +234,6 @@ class ServiceCenterManager: service_data = yaml.safe_load(await f.read()) return service_pool_store.name, service_data - @staticmethod async def get_service_metadata( user_sub: str, @@ -288,7 +281,6 @@ class ServiceCenterManager: ) return True - @staticmethod async def modify_favorite_service( user_sub: str, @@ -325,7 +317,6 @@ class ServiceCenterManager: ) return True - @staticmethod async def _search_service( search_conditions: dict, @@ -345,7 +336,6 @@ class ServiceCenterManager: service_pools = [ServicePool.model_validate(db_service) for db_service in db_services] return service_pools, total - @staticmethod async def _get_favorite_service_ids_by_user(user_sub: str) -> list[str]: """获取用户收藏的服务ID""" @@ -353,7 +343,6 @@ class ServiceCenterManager: user_data = User.model_validate(await user_collection.find_one({"_id": user_sub})) return user_data.fav_services - @staticmethod async def _validate_service_data(data: dict[str, Any]) -> ReducedOpenAPISpec: """验证服务数据""" @@ -364,7 +353,6 @@ class ServiceCenterManager: # 校验 OpenAPI 规范的 JSON Schema return await OpenAPILoader().load_dict(data) - @staticmethod def _build_filters( base_filters: dict[str, Any], diff --git a/apps/routers/chat.py b/apps/routers/chat.py index a17f4ee57116a9a149acedb7cbe12fada6fde176..c00e0a4098ef6411f65d4d5ef2b54540a2f5c479 100644 --- a/apps/routers/chat.py +++ b/apps/routers/chat.py @@ -81,7 +81,8 @@ 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 71ec160c40590e602a8233fdc31938958361b539..23f111dc75620954168b6176f2df59feeceeb120 100644 --- a/apps/service/flow.py +++ b/apps/service/flow.py @@ -42,13 +42,14 @@ class FlowService: for node in flow_item.nodes: from apps.scheduler.pool.pool import Pool from pydantic import BaseModel - try: - call_class: type[BaseModel] = await Pool().get_call(node.call_id) - except Exception as e: - logger.error(f"[FlowService] 获取步骤的call_id失败{node.call_id}") - raise Exception(e) - if not call_class: - node.node = 'Empty' + if node.node_id != 'start' and node.node_id != 'end' and node.node_id != 'Empty': + try: + call_class: type[BaseModel] = await Pool().get_call(node.call_id) + if not call_class: + node.node_id = 'Empty' + except Exception as e: + node.node_id = 'Empty' + logger.error(f"[FlowService] 获取步骤的call_id失败{node.call_id}由于:{e}") node_branch_map[node.step_id] = set() if node.call_id == NodeType.CHOICE.value: node.parameters = node.parameters["input_parameters"]