9 Commits

Author SHA1 Message Date
4143bc75f9 fix: 修复codex review发现的问题
问题1 - 行锁持有时间过长:
- 采用双重检查锁定模式,将HTTP调用移到锁范围外
- 新增 _update_knowledge_set_config 方法专门处理加锁更新

问题2 - 清理不完整:
- _list_knowledge_sets 方法添加分页参数
- 新增 _list_all_knowledge_sets 方法遍历所有知识集
- 清理方法使用新的全量查询方法

问题3 - 文件删除逻辑可能误删:
- deleteKnowledgeItemFile 方法增加严格的 sourceType 检查
- 只有当 sourceType 为 FILE_UPLOAD 或 MANUAL 时才删除文件
- 避免误删 DATASET_FILE 类型的数据集文件

涉及文件:
- knowledge_sync.py
- KnowledgeItemApplicationService.java
2026-02-05 04:07:40 +08:00
99bd83d312 fix: 修复知识库同步的并发控制、数据清理、文件事务和COCO导出问题
问题1 - 并发控制缺失:
- 在 _ensure_knowledge_set 方法中添加数据库行锁(with_for_update)
- 修改 _update_project_config 方法,使用行锁保护配置更新

问题3 - 数据清理机制缺失:
- 添加 _cleanup_knowledge_set_for_project 方法,项目删除时清理知识集
- 添加 _cleanup_knowledge_item_for_file 方法,文件删除时清理知识条目
- 在 delete_mapping 接口中调用清理方法

问题4 - 文件操作事务问题:
- 修改 uploadKnowledgeItems,添加事务失败后的文件清理逻辑
- 修改 deleteKnowledgeItem,删除记录前先删除关联文件
- 新增 deleteKnowledgeItemFile 辅助方法

问题5 - COCO导出格式问题:
- 添加 _get_image_dimensions 方法读取图片实际宽高
- 将百分比坐标转换为像素坐标
- 在 AnnotationExportItem 中添加 file_path 字段

涉及文件:
- knowledge_sync.py
- project.py
- KnowledgeItemApplicationService.java
- export.py
- export schema.py
2026-02-05 03:55:01 +08:00
07a901043a refactor(annotation): 移除文本内容获取相关功能
- 删除了 fetch_text_content_via_download_api 导入
- 移除了 TEXT 类型数据集的文本内容获取逻辑
- 删除了 _append_annotation_to_content 方法实现
- 简化了知识同步服务的内容处理流程
2026-02-02 15:39:06 +08:00
32e3fc97c6 feat(annotation): 增强知识库同步服务以支持项目隔离
- 在知识库查找时添加项目ID验证,确保知识库归属正确
- 修改日志消息以显示项目ID信息便于调试
- 重构知识库查找逻辑,从按名称查找改为按名称和项目ID组合查找
- 新增_metadata_matches_project方法验证元数据中的项目归属
- 新增_parse_metadata方法安全解析元数据JSON字符串
- 更新回退命名逻辑以确保项目级别的唯一性
- 在所有知识库操作中统一使用项目名称和项目ID进行验证
2026-02-02 15:28:33 +08:00
9eafdc86bb fix(annotation): 修正知识库同步服务中的分页参数
- 将_list_knowledge_sets方法中的page参数从0改为1
- 将文件检索接口中的page参数从0改为1
- 统一所有分页查询的起始页码为1,避免空结果返回
2026-01-22 20:28:20 +08:00
90c5cc44e8 feat(annotation): 优化知识同步服务的响应处理
- 在HTTP请求后添加响应解包功能
- 实现_code_方法来处理API响应格式
- 添加错误码检查和异常抛出机制
- 提取数据字段并返回正确的内容结构
- 保持原有安全JSON序列化功能不变
2026-01-22 20:23:37 +08:00
9376382791 refactor(annotation): 简化知识库集查找逻辑
- 移除项目参数依赖,简化 _find_knowledge_set_by_name 方法
- 删除不再使用的 _parse_metadata 和 _metadata_matches_project 方法
- 更新知识库集创建流程中的查找调用方式
- 统一所有知识库集查找操作的参数结构
2026-01-22 20:18:42 +08:00
cb71712f51 feat(annotation): 优化知识集合同步服务逻辑
- 添加 KNOWLEDGE_SET_LIST_SIZE 常量配置知识集列表大小为50
- 实现现有知识集名称检查避免重复创建
- 添加 _list_knowledge_sets 方法用于查询知识集列表
- 实现 _parse_metadata 和 _metadata_matches_project 方法解析匹配项目元数据
- 添加 _find_knowledge_set_by_name 方法按名称查找知识集
- 优化知识集创建流程增加重试和回退机制
- 实现项目配置更新保存知识集ID和名称信息
2026-01-22 17:48:27 +08:00
73f0ab65fa feat(annotation): 实现标注结果同步到知识管理功能
- 在知识条目实体中新增来源数据集ID和文件ID字段
- 实现标注编辑器中同步标注结果到知识管理的服务逻辑
- 添加知识同步服务类处理标注到知识条目的转换和同步
- 实现通过下载接口获取文本内容的独立服务模块
- 更新知识条目查询接口支持按来源数据集和文件ID过滤
- 自动创建和关联标注项目对应的知识集
- 支持文本和Markdown文件的内容合并标注结果
- 添加同步过程中的错误处理和日志记录机制
2026-01-21 16:09:34 +08:00