Jelajahi Sumber

debug: 添加实体位置信息调试日志

- Java 端:添加 position 解析调试日志
- Python 端:添加序列化后实体示例日志
- 用于排查位置信息未正确保存的问题
何文松 1 bulan lalu
induk
melakukan
71cca1726f

+ 6 - 1
backend/graph-service/src/main/java/com/lingyue/graph/service/GraphNerService.java

@@ -102,7 +102,12 @@ public class GraphNerService {
             // 转换位置信息
             Object positionObj = entity.get("position");
             if (positionObj instanceof Map) {
-                node.setPosition(positionObj);
+                @SuppressWarnings("unchecked")
+                Map<String, Object> posMap = (Map<String, Object>) positionObj;
+                log.debug("实体位置信息: name={}, position={}", node.getName(), posMap);
+                node.setPosition(posMap);
+            } else {
+                log.debug("实体无位置信息: name={}, positionObj={}", node.getName(), positionObj);
             }
             
             // 保存元数据

+ 3 - 0
python-services/ner-service/app/models/request.py

@@ -15,7 +15,10 @@ class PositionInfo(BaseModel):
     
     class Config:
         populate_by_name = True
+        # 序列化时使用 alias (charStart, charEnd)
         by_alias = True
+        # 确保嵌套对象也使用 alias
+        json_encoders = {}
 
 
 class EntityInfo(BaseModel):

+ 7 - 1
python-services/ner-service/app/routers/ner.py

@@ -270,8 +270,14 @@ async def _process_ner_task(
             _tasks[task_id]["status"] = "completed"
             _tasks[task_id]["progress"] = 100
             _tasks[task_id]["message"] = f"处理完成: {len(all_entities)} 个实体, {len(all_relations)} 个关系"
-            _tasks[task_id]["result"] = response.dict(by_alias=True)
+            result_dict = response.dict(by_alias=True)
+            _tasks[task_id]["result"] = result_dict
             _tasks[task_id]["updated_at"] = time.time()
+            
+            # 调试:输出第一个实体的序列化结果
+            if result_dict.get("entities") and len(result_dict["entities"]) > 0:
+                first_entity = result_dict["entities"][0]
+                logger.debug(f"实体序列化示例: {first_entity}")
         
         logger.info(f"异步 NER 任务完成: task_id={task_id}, document_id={document_id}, "
                    f"entities={len(all_entities)}, relations={len(all_relations)}, time={processing_time}ms")