SuperAPI AI 工具集

smart-folder-organizer

办公与效率

查看项目

更新于 10-16 02:23

技能介绍

Smart Folder Organizer 是一个用于整理杂乱目录的技能,提供结构化的工作流程,在整理文件的同时确保数据安全。

用途

该技能用于自动整理混乱的文件夹:对文件进行分类、识别重复文件,并根据发票、收据等 PDF 文档的内容对其进行重命名。

核心原则

  • 安全第一:绝不删除任何文件。将打算删除的文件移动到 to_remove/ 下的特定子文件夹(例如 to_remove/duplicates/ 或 to_remove/empty_folders/)。
  • 严格范围:仅在当前目录及其子目录内操作。绝不移动或访问父目录(..)中的文件。
  • 保留原则:如果文件类别不明确,将其移动到 Needs_Review/ 文件夹,而不是错误猜测。
  • 大文件:对于任何大于 20MB 的文件,跳过深度内容分析(例如读取 PDF 文本)以防止内存问题。将这些未分析的大文件移动到专用的 Needs_Review/LargeFiles/ 目录。
  • 文件夹处理:递归处理当前目录及其子目录中的所有文件。移动文件时,将其放入目标目录根级别的分类文件夹中(不要在每个子文件夹内复制分类结构)。发现或遗留的任何空子目录必须移动到 to_remove/empty_folders/。

工作流程

1. 智能文件夹检测

在处理单个文件之前,运行 scripts/detect_smart_folders.py <target_dir> 来识别已经组织良好的子目录(例如 git 仓库、软件项目、macOS 应用包)。

  • 操作:将每个检测到的文件夹整体移动到 Others/ —— 不要进入或重新组织其内容。
  • 逻辑:该脚本检查项目标记(.git/、package.json、Cargo.toml、Makefile 等)和应用包(.app),返回带有原因的 JSON 匹配列表。
  • 跳过:所有后续步骤应忽略 Others/ 目录。

2. 重复检测

运行 find_duplicates.py 脚本以识别相同的文件。

  • 操作:将识别出的重复文件移动到 to_remove/duplicates/。
  • 逻辑:通过 scripts/find_duplicates.py 脚本使用文件哈希(SHA256)以获得确定性结果。

3. 通用分类

按扩展名和常见模式组织文件:

  • 照片:移动到 Photos/。(截图移动到 Photos/Screenshots/)
  • 视频:移动到 Videos/。
  • 安装程序:移动到 Installers/(.dmg、.pkg、.exe、.msi)。
  • 压缩包:移动到 Archives/(.zip、.rar 等)。

4. PDF 深度分析

对于 PDF 文件,读取前几页以确定文档类型并提取元数据以进行重命名。

  • 关键:不要生成动态 Python 脚本来读取 PDF。而是执行本技能提供的 scripts/extract_pdf_metadata.py 脚本,以确定性地提取文本并分析文档。该脚本使用 pypdf,采用采样策略(前 3 页 + 最后一页)进行快速高效的分类。
  • 重要:使用通用语义推理进行文档分类。现代 AI 模型可以理解数十种语言(英语、中文、西班牙语等);优先考虑文档的意图(例如“请求付款”),而不是特定的英语关键词如“Invoice”。参考 references/classification.md 获取语义指南。
  • 多语言命名:对于非英语文档,以其原始文字提取命名细节(如 [Vendor] 或 [Provider])(例如中文字符)。标准日期格式 yyyy-mm-dd 保持不变。
  • 发票:重命名为 yyyy-mm-dd-[Vendor]-[Inv#-][Amount].pdf 并移动到 Documents/Invoices/。
  • 账单:重命名为 yyyy-mm-dd-[Provider]-[Service]-[Account#].pdf 并移动到 Documents/Bills/。
  • 收据:重命名为 yyyy-mm-dd-[Store]-[TotalAmount].pdf 并移动到 Documents/Receipts/。
  • 旅行:重命名为 yyyy-mm-dd-[Transport/Hotel]-[Confirmation#].pdf 并移动到 Documents/Travel/。

5. 最终清理

  • 将写作文档(.docx、.doc、.pages、.odt)分组到 Documents/Writing/。
  • 将电子表格文件(.xlsx、.xls、.numbers、.ods、.csv)分组到 Documents/Spreadsheets/。
  • 将演示文稿文件(.ppt、.pptx、.key、.odp)分组到 Documents/Presentations/。
  • 将音频文件(.mp3、.wav、.flac、.m4a)分组到 Audio/。
  • 如果适用,将其余文档按子类型分组到 Needs_Review/Documents/。
  • 如果 PDF 文档已分析但类别未知,将其移动到 Needs_Review/Unknown/。
  • 将任何其他未处理的文件移动到 Needs_Review/。

资源

  • scripts/find_duplicates.py:一个 Python 脚本,确定性地查找相同文件。它使用 SHA-256 哈希比较文件内容,而不是依赖文件名或大小,返回重复文件的 JSON 列表。
  • scripts/extract_pdf_metadata.py:一个 Python 辅助脚本,使用 pypdf 库从 PDF 中提取文本。使用此脚本而不是自行编写。它采用采样策略(前 3 页和最后一页)为文档分类提供高效的文本提取,在 JSON 包装器中返回文本。
  • scripts/detect_smart_folders.py:一个 Python 脚本,扫描目标文件夹的直接子目录以查找项目标记(.git/、package.json、Cargo.toml、Makefile 等)和应用包(.app)。返回检测到的“智能”文件夹的 JSON 列表,这些文件夹应移动到 Others/ 而不被拆散。
  • references/classification.md:包含 PDF 和其他文档类型的详细关键词列表和命名约定。

适用场景

适用于需要整理杂乱文件夹、对文件进行分类、识别重复文件以及根据内容重命名 PDF 文档(如发票、收据)的场景。

限制

  • 绝不删除文件,仅移动。
  • 仅在当前目录及其子目录内操作,不访问父目录。
  • 大于 20MB 的文件跳过深度内容分析。
  • 类别不明确的文件移入 Needs_Review/。
  • 关于收费、价格、平台等信息暂未提供。