一个开发者因为"爱好太多",最终自己动手写了一套文档管理系统。这个名为Kintara的项目,是一个自托管的文档库和阅读器,运行在Docker中,直接监控你已有的文件夹。
把PDF、Markdown或纯文本文件丢进目录,Kintara会自动完成索引、提取可搜索文本和元数据、生成缩略图,然后通过浏览器或可安装的PWA(渐进式Web应用)呈现整个文库。它支持文库、集合、标签、全文搜索、高亮、收藏、阅读进度、私有文库共享,以及GitHub OAuth登录。
![]()
架构大改:从Tauri桌面壳到单一Rust服务器
这个项目已经开发了几个月,架构在过程中发生了相当大的变化。Kintara最初有一个Tauri桌面外壳,但开发者最终意识到这根本不是自己想要的,于是把桌面层整个拆掉,围绕一个同时提供API和前端服务的Rust服务器重建。现在,把Kintara指向NAS(网络附加存储)文件夹,就能在台式机、笔记本、平板或手机上打开同一个文库。
开发者最钟爱的部分是可选的AI功能。他加入了使用OpenAI或Gemini的选项,由于消耗的token极少,大多数功能每次使用只需不到一分钱——封面图生成会贵一些,但能让文库看起来漂亮得多。
AI定位:工具而非主角,完全可选
开发者希望AI是文库里的一个工具,而不是接管一切,并且完全可选。如果你属于"讨厌AI出现在应用里"的那类人,不开启就行,它就像不存在一样。AI能做的事情包括:总结文档、建议元数据并填补空白字段、为没有封面的文档生成封面图、在文库中搜索文档,或者直接和它聊天讨论文档内容。
其中"查找"功能相当出色。Kintara不会让模型含糊地告诉你某内容"出现在文档某处",而是要求提供带页码的实际段落,先在服务器端对照提取的页面文本验证引用,再对照渲染后的PDF验证一次。如果引用无法定位,就会被丢弃。
不过,开发者最终最欣赏的是AI元数据建议功能。他的文库中有大量文档的嵌入元数据不完整、不一致或完全无用,手动修复很快就会让人厌烦。Kintara能读取文档并建议标题、作者、摘要、关键词、DOI(数字对象标识符)、ISBN(国际标准书号)和出版年份,然后显示建议,由用户选择要应用的字段。面对几百个文件的文库时,这个看似微不足道的便利就变得相当惊人。
项目失控式成长:从"简单整理"到多用户权限系统
Kintara已经长成了那种"一开始只想找个不过度复杂的文档整理方式,结果搞出了文件系统监控、OAuth、多用户权限,还顺手加了图片生成"的项目。如果你也积攒了大量PDF和Markdown文件,这个自托管方案或许值得一试。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
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.