七条文件名看不出内容的散笔记,被分成四组,每组挑出一行已经写好的下一步。这是 DeskDoze 在示例里跑出来的结果,一个参加 Hacktoberfest 开源 AI 挑战第三周「慢而稳」主题的提交作品。
![]()
它做的事不复杂:把零散的文本笔记按内容归拢,再从每组里找出笔记中已经写下的任务。全程在本机运行,移动任何文件之前,先把方案摆给你看。
真正有用的地方是「找回入口」。两条关于修自行车的笔记本该待在一起,一条写着去找打气筒,另一条写着去看轮胎尺寸。DeskDoze 把它们放进同一个视图,旁边配上一条下一步和它的来源行。
如果某条笔记里没写任务,它就不会被凭空造一个出来。如果某条笔记找不到足够接近的同伴,它就单独留着。方案可以应用,也可以放着不动;每一份被应用的方案都带一份撤销日志。
示例里发生了什么
示例从七条样本笔记开始,文件名几乎不透露内容。模型找出三对:园艺、自行车维修、煮汤。一条天文学笔记保持独立。
园艺组显示的是「给番茄浇水」,取自 note-01.md 第 3 行。煮汤组显示的是「冲洗小扁豆」。这两个任务都不是语言模型编出来的。
演示还会应用六次移动、核对内容、执行撤销,再把恢复后的文件与原件比对,所有字节一致。一个不受支持的文件被原样留下。视频呈现的就是这些录制下来的结果。
分组与取任务,两套逻辑
分组用的是 all-MiniLM-L6-v2,配 Xenova 的 ONNX 权重和 Transformers.js。它把每条笔记的开头片段转成向量,再用余弦相似度比较。
一个组里的每一对都必须超过阈值。这条规则是为了避免仅仅因为某一条笔记恰好充当了桥梁,就把互不相关的笔记硬连在一起。组名来自代表性笔记的标题,文件名保持原样。
任务提取更简单:读取未勾选的 Markdown 任务,以及以 TODO: 或 NEXT: 开头的行,然后按词数挑最短的那条。报告里带上文件名、行号和原始文本。最短不一定最轻松,但它给了一个明确的起点。
文件移动靠内容哈希,检查目标位置是否已被占用,并在第一次移动之前写好日志。撤销时会先检查文件是否被改过,再决定是否恢复。测试覆盖了文件被改动、路径穿越、目录联接、目标冲突,以及移动中断后两份副本同时存在的情况。
为什么本地推理重要
笔记里常常放着你不愿离开自己机器的东西。权重可下载、推理在本地,内容就能留在本地。配置完成之后,缓存的模型离线可用,不需要 API 密钥,也没有按次计费。
分组代码和阈值同样是开放的。你可以检查一次可疑的匹配,收紧阈值,或者换一个嵌入模型。语义分组是模型干的活;把这些文件名按扩展名排序,是找不回那三个主题的。
限制也摆在那里:当前版本只读顶层的英文 .txt 和 .md 文件,只有前 900 个字符进入嵌入流程,分词还可能进一步缩短它。过长或主题混杂的笔记可能被分错,所以复核这一步不能省。
示例里,七条散笔记变成四组和三条写好的下一步。省下的不是整理时间本身,而是动手之前要翻找的那一截。作者没有声称省下多少小时——这是一个用合成示例验证过的原型,不是用户研究。它的任务很小:把笔记聚起来,给出下一步,然后让你继续过自己的日子。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.