From 90c5cc44e86db24957da8ff150c0f451624a7bf3 Mon Sep 17 00:00:00 2001 From: Jerry Yan <792602257@qq.com> Date: Thu, 22 Jan 2026 20:23:37 +0800 Subject: [PATCH] =?UTF-8?q?feat(annotation):=20=E4=BC=98=E5=8C=96=E7=9F=A5?= =?UTF-8?q?=E8=AF=86=E5=90=8C=E6=AD=A5=E6=9C=8D=E5=8A=A1=E7=9A=84=E5=93=8D?= =?UTF-8?q?=E5=BA=94=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在HTTP请求后添加响应解包功能 - 实现_code_方法来处理API响应格式 - 添加错误码检查和异常抛出机制 - 提取数据字段并返回正确的内容结构 - 保持原有安全JSON序列化功能不变 --- .../module/annotation/service/knowledge_sync.py | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) 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")