mixvideo-v2/apps/desktop/TOOLS_FEATURE.md

2.7 KiB
Raw Permalink Blame History

便捷小工具功能 - v0.1.33

功能概述

新增便捷小工具页面提供AI检索图片/数据清洗功能支持JSONL格式数据的去重处理。

功能特性

AI检索图片/数据清洗工具

  • 文件格式支持: JSONL (JSON Lines) 格式
  • 数据去重: 基于URI字段进行精确匹配去重
  • 进度显示: 实时显示处理进度和状态
  • 批量处理: 支持大数据量文件处理
  • 结果统计: 显示原始数据量、去除数量、最终结果数量

使用方法

  1. 选择全部数据文件: 包含所有数据的JSONL文件
  2. 选择要去除的数据文件: 包含需要去除数据的JSONL文件
  3. 选择输出文件: 指定处理结果的保存位置
  4. 开始处理: 点击"开始处理"按钮执行数据清洗

数据格式说明

全部数据文件格式

{
  "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\", ...}"
}

处理逻辑

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