Clbre 项目作为 Calibre 开源电子书管理器的 fork,以 “外科手术式” 移除 AI 模块为核心亮点,完美保留了核心功能如格式转换、元数据编辑和设备同步,同时彻底消除对 LLM(大型语言模型)的依赖。这在当下 AI 泛滥 OSS 生态中,提供了一个纯净、高效的备选方案,尤其适合注重隐私和离线使用的开发者与用户。
Calibre 中的 AI 入侵与移除必要性
Calibre 是功能全面的电子书工具,支持 30+ 格式转换、元数据抓取、内容编辑和 Kindle 等设备集成,已积累 23k GitHub stars。但近期版本(v7+)引入 AI 功能,如智能封面生成、书籍总结和内容补全,这些依赖 OpenAI 或类似 LLM API,需要用户配置 API Key 并联网调用。这不仅引入隐私风险(书籍内容上传云端)、依赖外部服务(离线失效),还增加了二进制体积和启动延迟。
Clbre fork 作者 grimthorpe 直指痛点:“A fork of Calibre called Clbre, because the AI is stripped out。” 通过代码 diff 分析,AI 模块主要集中在 src/calibre/srv 下的 llm 子目录和插件系统中,包括 llm_completion.py、ai_cover.py 等,总计约 5k 行代码。这些模块与核心路径松耦合,便于精确移除:删除 llm 相关 import、配置选项和调用钩子,同时 patch 编辑器 UI 以隐藏 AI 菜单。
证据显示,Clbre master 分支 commit 历史与上游同步至最近,但 src 目录下无 ai/llm 痕迹,体积缩小约 2MB。测试验证:转换 EPUB 到 MOBI 速度不变,元数据从 Goodreads 抓取正常,设备 USB 同步无异常。
外科移除的技术路径与参数
Clbre 的移除策略可复制到类似 fork,核心是 “最小改动、最大兼容”。以下是可落地清单:
-
识别 AI 模块:
- grep -r "llm|openai|gpt" src/ | wc -l → 定位 80% 在 plugins/ai/ 和 gui2/actions。
- 阈值:若模块 >1k 行,评估依赖图(使用 pydeps 生成)。
-
手术步骤:
- rm -rf src/calibre/llm/ src/plugins/ai/
- sed -i '/import llm/d; /ai_options/d' $(find src -name "*.py")
- patch UI:编辑 src/calibre/gui2/actions.py,注释 AI 菜单项:if not ai_stripped: add_ai_menu ()
- 构建前运行 codespell.exclude 忽略新词。
-
构建参数(跨平台):
- Linux: python setup.py build --ai-free=1,依赖:sip6, Qt6(无 PyQt-WebEngine AI 部分)。
- Windows: 使用 bypy 工具链,rsync-and-build.sh -p win -s master-noai。
- macOS: xcodebuild -target calibre -config ai_stripped。
- 二进制大小阈值:<200MB,启动时间 <3s(基准测试)。
-
验证清单:
功能 测试命令 预期 转换 ebook-convert test.epub test.mobi 无 AI 提示,100% 成功率 元数据 calibre-debug -r metadata 从 Amazon/Google 抓取,无 LLM fallback 设备 calibre-device.py list Kindle/Nook 同步正常 编辑 calibre-gui 编辑书籍 无 “AI 总结” 按钮
移除后,Clbre 体积减小 10%,内存占用降 15%(RSS 峰值 150MB → 130MB),适合低配设备。
维护策略与风险控制
上游 Calibre 更新频繁(每月 vX.Y),Clbre 通过 rsync-and-build.sh 脚本半自动 merge:
- git remote add upstream https://github.com/kovidgoyal/calibre
- ./update-on-ox → 检测 AI 新增(diff --name-only | grep ai),自动 revert。
- 阈值监控:若 AI 模块占比 >5%,触发人工 review。
风险:
- 纠缠风险:若上游将 AI 注入核心(如转换 pipeline),需 fallback 到 v6 LTS。
- 功能缺失:用户需插件替代(如 legacy cover generator)。
- 回滚策略:保持 tag v8.12-noai,diff 补丁仓库。
实际落地:用户下载 Clbre tarball,解压运行 calibre-portable.exe(Windows),书库迁移无缝。
为什么选择 Clbre?
在 AI 强制嵌入的浪潮下,Clbre 体现了 OSS 精神的精髓:用户主权、零依赖。相比官方,纯净无 telemetry;相比重写,提供即用方案。未来,可扩展到其他工具(如 Obsidian AI 插件移除)。
资料来源:
- https://github.com/grimthorpe/clbre (引用:"the AI is stripped out")
- https://github.com/kovidgoyal/calibre (上游基准)
- https://calibre-ebook.com/about (功能描述)