2.7 KiB
2.7 KiB
便捷小工具功能 - v0.1.33
功能概述
新增便捷小工具页面,提供AI检索图片/数据清洗功能,支持JSONL格式数据的去重处理。
功能特性
AI检索图片/数据清洗工具
- 文件格式支持: JSONL (JSON Lines) 格式
- 数据去重: 基于URI字段进行精确匹配去重
- 进度显示: 实时显示处理进度和状态
- 批量处理: 支持大数据量文件处理
- 结果统计: 显示原始数据量、去除数量、最终结果数量
使用方法
- 选择全部数据文件: 包含所有数据的JSONL文件
- 选择要去除的数据文件: 包含需要去除数据的JSONL文件
- 选择输出文件: 指定处理结果的保存位置
- 开始处理: 点击"开始处理"按钮执行数据清洗
数据格式说明
全部数据文件格式
{
"kind": "storage#object",
"id": "...",
"uri": "gs://bucket/path/to/file.jpg",
// 其他字段...
}
要去除的数据文件格式
{
"id": "uuid",
"schema_id": "default_schema",
"json_data": "{\"uri\":\"gs://bucket/path/to/file.jpg\", ...}"
}
处理逻辑
- 解析要去除的数据: 从
json_data字段中提取uri值 - 构建URI集合: 将所有要去除的URI存储在HashSet中
- 过滤全部数据: 遍历全部数据文件,过滤掉URI匹配的记录
- 保存结果: 将过滤后的数据保存到输出文件
技术实现
后端 (Rust)
- 命令:
clean_jsonl_data - 文件:
src-tauri/src/presentation/commands/tools_commands.rs - 特性:
- 异步处理
- 进度事件发送
- 内存优化的流式处理
- 错误处理和恢复
前端 (React + TypeScript)
- 页面:
src/pages/Tools.tsx - 路由:
/tools - 特性:
- 文件选择对话框
- 实时进度显示
- 结果统计展示
- 错误处理和用户反馈
导航集成
在主导航栏中新增"便捷工具"菜单项,使用扳手图标,提供快速访问入口。
测试数据
项目包含测试数据文件:
test_data/sample_all_data.jsonl: 示例全部数据文件test_data/sample_remove_data.jsonl: 示例要去除的数据文件
性能优化
- 流式处理: 逐行读取文件,避免内存溢出
- 进度更新: 每处理100行更新一次进度,平衡性能和用户体验
- 错误容错: 解析失败的行会被跳过并记录警告
开发规范遵循
- 遵循Tauri开发规范的四层架构设计
- 使用TypeScript确保类型安全
- 遵循UI/UX设计标准,提供优雅的用户界面
- 实现完整的错误处理和用户反馈机制
未来扩展
- 支持更多数据格式 (CSV, JSON等)
- 添加更多数据清洗规则
- 支持自定义匹配字段
- 添加数据预览功能