diff --git a/runtime/datamate-python/app/module/annotation/service/knowledge_sync.py b/runtime/datamate-python/app/module/annotation/service/knowledge_sync.py index fcbce0b..da6254f 100644 --- a/runtime/datamate-python/app/module/annotation/service/knowledge_sync.py +++ b/runtime/datamate-python/app/module/annotation/service/knowledge_sync.py @@ -349,7 +349,8 @@ class KnowledgeSyncService: response = await client.request(method, url, **kwargs) response.raise_for_status() if response.content: - return response.json() + payload = response.json() + return self._unwrap_response(payload, response) return None def _safe_json_dumps(self, payload: Any) -> str: @@ -363,3 +364,17 @@ class KnowledgeSyncService: return response.text except Exception: return "" + + def _unwrap_response(self, payload: Any, response: httpx.Response) -> Any: + if not isinstance(payload, dict): + return payload + if "code" not in payload or "data" not in payload: + return payload + code = str(payload.get("code")) + if code != "0": + raise httpx.HTTPStatusError( + f"响应返回错误 code={code} message={payload.get('message')}", + request=response.request, + response=response, + ) + return payload.get("data")