mixvideo-v2/apps/desktop/TOOLS_FEATURE.md

101 lines
2.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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