- AI 应用
- 大模型
- 本地部署
- 桌面应用
【免费下载链接】ai-file-sorter
Cross-platform desktop application for content-aware file organization and renaming. Supports local and remote LLMs, preview-based workflows, and fully user-controlled changes.
AI File Sorter 是一款跨平台的 AI 文件整理与重命名工具,除了把文档、图片自动归入合适的文件夹,它还有一个少有人注意的"隐藏技能"——本地缓存 + 学习机制:你每一次在审核界面确认的分类决定,都会被记入本地学习数据库,下次分析时 AI 会优先推荐你熟悉的分类体系,真正做到越用越懂你📂。
本文带你彻底搞懂 AI File Sorter 的缓存与本地学习机制:它们分别存在哪里、如何记录你的偏好、如何清理缓存,以及"清缓存"和"重置学习"到底有什么区别。
一、先认识 AI File Sorter:AI 驱动的文件分类神器
AI File Sorter 是一款基于 Qt/C++ 的跨平台桌面应用,支持本地与远程 LLM(大语言模型),工作流程是:扫描 → AI 分类 → 人工审核 → 预览 → 安全移动/重命名。所有改动都由你最终确认,预览式工作流让你对每一次变更保持完全掌控 ✅。
它的核心卖点不只是"把文件分好",而是记住你的分类习惯。官方文档明确区分了两类本地记忆:缓存(cache)与习得行为(learned behavior),二者存储位置与生命周期完全不同。详见 docs/categorization-behavior.md。
整理前后的文件夹对比,效果一目了然:
二、两层本地记忆:分类缓存 vs 用户学习数据库
这是理解本文的关键 👇 AI File Sorter 把"记忆"拆成了两个独立的部分:
| 维度 | 分类缓存(Cache) | 用户学习库(Learning Store) |
|---|---|---|
| 文件 | categorization_results.db | user_learning.db |
| 性质 | 可丢弃的加速缓存 | 持久保留的用户偏好 |
| 内容 | 历史分类结果、重命名建议、一致性状态 | 你审核确认过的"文件→分类"映射、学到的分类体系 |
| 清缓存会丢失吗 | 会 | 不会,二者相互独立 |
2.1 分类缓存:重复分析又快又稳
缓存库会记录过去分析过的文件及其结果,作用有两个:
- 提速:同一个文件再次扫描时直接复用历史结果,不必重复调用 LLM;
- 保持一致:在"更一致(More consistent)"模式下,缓存中的近期相似结果会作为"一致性提示"参与本次判断,避免同类文件被分到不同文件夹。
缓存文件名的解析逻辑可以查看 CacheMaintenanceService.cpp。缓存只是本地记忆,它不会训练或修改底层模型——这一点很重要,意味着你的数据始终留在本地。
2.2 用户学习库:真正"越用越懂你"的关键
user_learning.db是独立于缓存的 SQLite 数据库,专门存放你亲自批准过的分类决定。核心结构定义在 UserLearningStore.hpp:
ApprovedMapping:一次审核确认的"文件名 + 目录 + 分类 + 子分类 + 建议新名"记录;TaxonomyEntry:从多次批准中沉淀出的"习得分类体系",并统计每个分类下有多少个已批准示例;RetrievedCandidate:检索时带相关性得分(词汇匹配分 + 可选的向量相似度)返回的候选分类。
三、偏好是怎么被"学"到的:审核确认一步写入学习库
学习发生在审核对话框中。当你在审核界面修改或确认某个文件的分类,并点击应用时,程序会把这条"批准的映射"写入学习数据库:
关键代码在 CategorizationDialog.cpp:只有learn_approved_mappings为真(即非 dry-run)且文件被选中处理时,才会调用record_approved_mapping落库。
这里有个新手常问的细节:Dry-run(试运行/预览)不会写入学习库。预览只是看看效果,不产生任何学习副作用:
此外,你在设置里配置的分类白名单也会被导入学习库(来源标记为whitelist:),让你在限定分类范围内依然能享受检索增强的效果。
四、学到的东西如何用:提示词注入 + 智能优先
学习数据不是摆设,AI File Sorter 在下一轮分析中会以两种方式主动利用它 🚀
4.1 把习得分类注入提示词
在 CategorizationService.cpp 中,build_learned_candidate_context会以"文件名 + 路径"为查询,从学习库检索最多 5 个最相关的习得分类(相关性低于阈值的会被过滤),然后生成一段提示词上下文:
"User-learned category candidates from approved behavior"(来自你已确认行为的用户习得分类候选),并建议模型"当合适时优先选择其中之一"。
4.2 通用结果的智能校正
prefer_learned_candidate_for_generic_result(同文件 #L1010-L1032)还做了一步更激进的事:当模型给出的是比较笼统的分类时,如果学习库中有得分足够高(≥12 分)的相关候选,程序会直接用你习得的分类去替换它——你的偏好最终"盖过"模型的泛泛之谈。
最终效果:用 AI File Sorter 一段时间后,文件夹结构会越来越贴合你个人的组织习惯,而不是模型的"标准答案"。
五、三步清理分类缓存:空间管理与隐私控制
用得久了,缓存也会变占空间。AI File Sorter 在设置里提供了专门的缓存维护对话框(CacheMaintenanceDialog.hpp),支持三类目标:
| 缓存目标 | 存储位置 | 说明 |
|---|---|---|
| 分类缓存 | categorization_results.db | 历史分类与重命名建议,可安全清空 |
| 图片位置缓存 | image_place_cache.db | 图片反向地理编码结果 |
| 日志 | 日志目录(core/db/ui.log) | 运行时日志 |
操作只需三步:
- 打开设置 → 缓存维护对话框,每个目标都显示路径与占用大小;
- 点击对应目标的清除按钮(内部实现见 CacheMaintenanceService.cpp);
- 界面即时刷新,SQLite 型缓存还会检查数据表是否为空,避免"看似能清、实际没用"的误导。
⚠️重点提醒:清除分类缓存不会删除user_learning.db中你的学习数据。想彻底"重置 AI 对你的了解",需要单独调用学习库的clear_all(见 UserLearningStore.hpp)。缓存是可再生的,学习库是你用时间换来的,请按需管理。
六、新手常见问题 FAQ
Q1:清理缓存会让 AI 变"傻"吗?不会立刻变傻。缓存丢了只是下次分析更慢一点,而学习库里的偏好完全保留。
Q2:学习机制会上传我的文件内容吗?不会。缓存与学习库都存储在本地应用配置目录中,属于纯本地数据;文档也强调缓存"只作为本地一致性记忆,不训练、不修改模型"。
Q3:白名单和学习机制会冲突吗?不会。学习库检索到的候选会先经过白名单过滤(CategorizationService.cpp),超出白名单范围的习得分类不会进入提示词。
Q4:换电脑后"学习"还在吗?学习库是本地文件,随配置目录走;复制user_learning.db即可把偏好带到新环境。
写在最后
AI File Sorter 的"聪明"来自两个简单而优雅的本地机制:缓存负责快,学习库负责懂你。前者让重复分析省时省力,后者让每一次审核确认都成为 AI 理解你分类偏好的养料。下次打开审核对话框时,记住:你确认的每一个分类,都在悄悄塑造未来 AI 的推荐 👍
更多架构细节可参考 docs/architecture.md 中的持久化与设置层说明。
- AI 应用
- 大模型
- 本地部署
- 桌面应用
【免费下载链接】ai-file-sorter
Cross-platform desktop application for content-aware file organization and renaming. Supports local and remote LLMs, preview-based workflows, and fully user-controlled changes.
相关推荐
揭秘tiktoken注册表机制:如何让AI模型"看懂"你的文本?
揭秘tiktoken注册表机制:如何让AI模型"看懂"你的文本? tiktoken是OpenAI推出的一款快速BPE分词器,专为AI模型处理文本而设计。它的注册
人工智能NLPDLSS Swapper 免费指南:一键切换游戏的 DLSS、FSR 与 XeSS 版本
DLSS Swapper 免费指南:一键切换游戏的 DLSS、FSR 与 XeSS 版本 DLSS Swapper 是一款免费的 Windows 桌面工具,让你
桌面应用IceCubesApp 源码解析:一个 SwiftUI Mastodon 客户端的完整走读
IceCubesApp 源码解析:一个 SwiftUI Mastodon 客户端的完整走读 IceCubesApp 是一个纯 SwiftUI 写成的 Masto
移动开发社交
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考