news 2026/10/11 19:04:48

AI File Sorter 缓存与本地学习机制揭秘:让 AI 越用越懂你的分类偏好

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
AI File Sorter 缓存与本地学习机制揭秘:让 AI 越用越懂你的分类偏好
  • 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.

项目地址:https://gitcode.com/gh_mirrors/ai/ai-file-sorter
点击查看免费下载

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.dbuser_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)运行时日志

操作只需三步:

  1. 打开设置 → 缓存维护对话框,每个目标都显示路径与占用大小;
  2. 点击对应目标的清除按钮(内部实现见 CacheMaintenanceService.cpp);
  3. 界面即时刷新,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.

项目地址:https://gitcode.com/gh_mirrors/ai/ai-file-sorter
点击查看免费下载

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/11 19:01:45

YOLOv8注意力机制实战:SimAM、EMA、GAM源码修改与避坑指南

简介:这份学习记录面向正在使用YOLOv8做目标检测、希望借助注意力机制提升模型性能的开发者与研究者,系统整理了在YOLOv8中接入三种注意力模块的完整实践过程。内容涵盖无参数注意力SimAM、单通道注意力EMA以及双通道注意力GAM,分别给出源码引…

作者头像 李华
网站建设 2026/10/11 19:00:10

Claude Code Client创建全教程:从环境准备到项目协同的避坑指南

最近好几个读者来问我同一个问题:新手到底怎么把 Claude Code Client 创建起来,为什么照着网上的命令敲了半天还是各种报错。坦白说,大部分教程都默认你已经是老手了——直接给你一段 npm install 命令,然后说"就这么简单&…

作者头像 李华
网站建设 2026/10/11 18:59:54

C#入门经典:从CLR、JIT到MSIL,彻底搞懂.NET运行机制

简介:这是一份面向C#零基础学习者的入门教程PPT,围绕.NET平台展开,系统讲解C#语言基础与面向对象设计方法,也适合需要快速复习.NET知识的开发者参考。内容从C#程序基本结构、类与对象、继承与多态,到委托、泛型、lambd…

作者头像 李华
网站建设 2026/10/11 18:59:13

Flutter 鸿蒙化适配实践:crossplat_objectid 唯一标识生成与解析

我在做 Flutter 项目的鸿蒙化迁移时,最纠结的其实不是 UI 适配,而是那些不起眼的基础库——比如负责唯一标识生成的 crossplat_objectid。业务方的需求很直白:同一套 Dart 代码,在原有平台上生成的 ID 格式不能变;迁移…

作者头像 李华
网站建设 2026/10/11 18:58:57

ResNet-18微表情识别实战:灰度输入、BN分层冻结与长尾加权

简介:本资源是一套基于ResNet架构的人脸表情识别完整Python实现方案,面向计算机视觉初学者、本科毕业设计及课程设计学生,解决从数据预处理、模型构建、训练调优到可视化评估的全流程实践问题。压缩包共16个文件,含3个核心Python脚…

作者头像 李华
网站建设 2026/10/11 18:55:45

如何用LibPDF对PDF电子签名:PKCS12证书快速上手教程

【免费下载链接】core A modern PDF library for TypeScript. Parse, modify, and generate PDFs with a clean, intuitive API. 项目地址: https://gitcode.com/gh_mirrors/core587/core 点击查看 免费下载 LibPDF 是一款面向 TypeScript 的现代 PDF 库&#xff0…

作者头像 李华