feat: 添加便捷小工具页面 - AI检索图片/数据清洗功能

- 新增便捷工具页面 (/tools),提供AI检索图片/数据清洗功能
- 支持JSONL格式数据的URI匹配去重处理
- 实现实时进度显示和批量数据处理
- 添加完整的错误处理和用户反馈机制
- 遵循Tauri开发规范和UI/UX设计标准
- 包含测试数据和功能文档

技术实现:
- 后端: Rust异步处理,流式文件读取,进度事件发送
- 前端: React + TypeScript,文件选择对话框,进度条显示
- 导航: 新增便捷工具菜单项,集成到主导航栏
This commit is contained in:
imeepos
2025-07-17 15:29:59 +08:00
parent 1da647fbab
commit 7fb1dfa95a
9 changed files with 697 additions and 2 deletions

View File

@@ -0,0 +1,100 @@
# 便捷小工具功能 - v0.1.33
## 功能概述
新增便捷小工具页面提供AI检索图片/数据清洗功能支持JSONL格式数据的去重处理。
## 功能特性
### AI检索图片/数据清洗工具
- **文件格式支持**: JSONL (JSON Lines) 格式
- **数据去重**: 基于URI字段进行精确匹配去重
- **进度显示**: 实时显示处理进度和状态
- **批量处理**: 支持大数据量文件处理
- **结果统计**: 显示原始数据量、去除数量、最终结果数量
## 使用方法
1. **选择全部数据文件**: 包含所有数据的JSONL文件
2. **选择要去除的数据文件**: 包含需要去除数据的JSONL文件
3. **选择输出文件**: 指定处理结果的保存位置
4. **开始处理**: 点击"开始处理"按钮执行数据清洗
## 数据格式说明
### 全部数据文件格式
```json
{
"kind": "storage#object",
"id": "...",
"uri": "gs://bucket/path/to/file.jpg",
// 其他字段...
}
```
### 要去除的数据文件格式
```json
{
"id": "uuid",
"schema_id": "default_schema",
"json_data": "{\"uri\":\"gs://bucket/path/to/file.jpg\", ...}"
}
```
## 处理逻辑
1. **解析要去除的数据**: 从`json_data`字段中提取`uri`
2. **构建URI集合**: 将所有要去除的URI存储在HashSet中
3. **过滤全部数据**: 遍历全部数据文件过滤掉URI匹配的记录
4. **保存结果**: 将过滤后的数据保存到输出文件
## 技术实现
### 后端 (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等)
- 添加更多数据清洗规则
- 支持自定义匹配字段
- 添加数据预览功能