101 lines
2.7 KiB
Markdown
101 lines
2.7 KiB
Markdown
# 便捷小工具功能 - 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等)
|
||
- 添加更多数据清洗规则
|
||
- 支持自定义匹配字段
|
||
- 添加数据预览功能
|