Hotdry.
systems-engineering

Clbre:外科移除 Calibre AI 模块的纯净 fork

Clbre 通过精确剥离 Calibre 中的 AI/LLM 组件,保留电子书转换、元数据处理与设备集成,提供无云依赖的 OSS 方案,附构建参数与维护清单。

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,核心是 “最小改动、最大兼容”。以下是可落地清单:

  1. 识别 AI 模块

    • grep -r "llm|openai|gpt" src/ | wc -l → 定位 80% 在 plugins/ai/ 和 gui2/actions。
    • 阈值:若模块 >1k 行,评估依赖图(使用 pydeps 生成)。
  2. 手术步骤

    • 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 忽略新词。
  3. 构建参数(跨平台)

    • 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(基准测试)。
  4. 验证清单

    功能 测试命令 预期
    转换 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。

风险:

  1. 纠缠风险:若上游将 AI 注入核心(如转换 pipeline),需 fallback 到 v6 LTS。
  2. 功能缺失:用户需插件替代(如 legacy cover generator)。
  3. 回滚策略:保持 tag v8.12-noai,diff 补丁仓库。

实际落地:用户下载 Clbre tarball,解压运行 calibre-portable.exe(Windows),书库迁移无缝。

为什么选择 Clbre?

在 AI 强制嵌入的浪潮下,Clbre 体现了 OSS 精神的精髓:用户主权、零依赖。相比官方,纯净无 telemetry;相比重写,提供即用方案。未来,可扩展到其他工具(如 Obsidian AI 插件移除)。

资料来源:

查看归档