diff --git a/src/api/apiforgui.py b/src/api/apiforgui.py index 04fe37bb9..75ef2f8d1 100644 --- a/src/api/apiforgui.py +++ b/src/api/apiforgui.py @@ -1,15 +1,16 @@ from src.heart_flow.heartflow import heartflow from src.heart_flow.sub_heartflow import ChatState + async def get_all_subheartflow_ids() -> list: """获取所有子心流的ID列表""" all_subheartflows = heartflow.subheartflow_manager.get_all_subheartflows() return [subheartflow.subheartflow_id for subheartflow in all_subheartflows] + async def forced_change_subheartflow_status(subheartflow_id: str, status: ChatState) -> bool: """强制改变子心流的状态""" subheartflow = await heartflow.get_or_create_subheartflow(subheartflow_id) if subheartflow: return await heartflow.force_change_subheartflow_status(subheartflow_id, status) return False - diff --git a/src/api/main.py b/src/api/main.py index 6c2009972..6d7e3c1e2 100644 --- a/src/api/main.py +++ b/src/api/main.py @@ -27,13 +27,15 @@ router.include_router(graphql_router, prefix="/graphql", tags=["GraphQL"]) async def reload_config(): return await reload_config_func() + @router.get("/gui/subheartflow/get/all") async def get_subheartflow_ids(): """获取所有子心流的ID列表""" return await get_all_subheartflow_ids() + @router.post("/gui/subheartflow/forced_change_status") -async def forced_change_subheartflow_status_api(subheartflow_id: str, status: ChatState): #noqa +async def forced_change_subheartflow_status_api(subheartflow_id: str, status: ChatState): # noqa """强制改变子心流的状态""" # 参数检查 if not isinstance(status, ChatState): @@ -49,7 +51,6 @@ async def forced_change_subheartflow_status_api(subheartflow_id: str, status: Ch return {"status": "failed"} - def start_api_server(): """启动API服务器""" global_server.register_router(router, prefix="/api/v1") diff --git a/src/heart_flow/heartflow.py b/src/heart_flow/heartflow.py index 5d9400880..894247ce4 100644 --- a/src/heart_flow/heartflow.py +++ b/src/heart_flow/heartflow.py @@ -62,9 +62,7 @@ class Heartflow: # 不再需要传入 self.current_state return await self.subheartflow_manager.get_or_create_subheartflow(subheartflow_id) - async def force_change_subheartflow_status( - self, subheartflow_id: str, status: ChatState - ) -> None: + async def force_change_subheartflow_status(self, subheartflow_id: str, status: ChatState) -> None: """强制改变子心流的状态""" # 这里的 message 是可选的,可能是一个消息对象,也可能是其他类型的数据 return await self.subheartflow_manager.force_change_state(subheartflow_id, status) diff --git a/src/heart_flow/subheartflow_manager.py b/src/heart_flow/subheartflow_manager.py index 8dfdcd9f1..b09f10844 100644 --- a/src/heart_flow/subheartflow_manager.py +++ b/src/heart_flow/subheartflow_manager.py @@ -82,7 +82,7 @@ class SubHeartflowManager: max_tokens=1000, # 与 Heartflow 一致 (虽然可能不需要这么多) request_type="subheartflow_state_eval", # 保留特定的请求类型 ) - + async def force_change_state(self, subflow_id: Any, target_state: ChatState) -> bool: """强制改变指定子心流的状态""" async with self._lock: