Files
2026-08-29 22:13:55 +08:00

22 KiB
Raw Permalink Blame History

产品策划书:BanDu(伴读)— Zotero 插件

字段 内容
中文名 伴读
英文名 BanDu
插件全名 BanDu for Zotero

一句话定位:BanDu(伴读)——在 Zotero 里给每篇论文配一位 AI 老师——先读完论文备好课, 再按你选的模式授课(整体讲解 / 逐段精读 / 逐句按需),随时提问、系统不打扰, 听完后把伴读笔记和参考文献卡片留在 Zotero,写论文时一键引用。

0. 一期范围声明(重要)

  • 一期 = PC 端 + Zotero 插件,这是产品本体,不是独立 App 的附属渠道;
  • 论文库 = Zotero 现有库(零迁移),插件直接读 Zotero 里的 PDF;
  • 移动端是未来的独立产品(v2+),通过云后端与 Zotero 端同步,不在一期考虑;
  • 一期核心用户 = 自己(dogfooding)→ 再面向 Zotero 学术用户开放。

1. 背景与机会

1.1 核心工作流(一期要服务的完整闭环)

Zotero 论文库(已有)
   │  打开某篇 PDF
   ▼
BanDu 插件:AI 老师读完整篇 → 备课 → 按模式授课 ── 随时提问 ── 标记重点
   │
   ▼
伴读产出留在 Zotero 里:
   • 伴读报告(问答记录 + 重点标记 + 收听情况)→ Zotero 子笔记,可搜索
   • 参考文献卡片(中文速览 + 推荐引用句 + BibTeX)
   │
   ▼
写论文时:从 Zotero 直接导入引用 + 复用伴读总结(Related Work 素材)

1.2 机会点

  • 在 Zotero 生态里,文字 AI 已是红海Paper Copilot、Owl 等:摘要/问答/翻译), "AI 老师式音频授课 + 段落/句子级交互"仍是空白——即使桌面端,"边干活边听论文"也是真实场景;
  • EndNote / Mendeley 无开放插件生态,插件路线 = Zotero 路线,护城河是生态卡位;
  • Paper Copilot 的流行证明 Zotero 用户对论文 AI 的需求强且愿意装插件。

立项前需实测确认:Paper Copilot / Owl 最新版是否已加 TTS 朗读(目前判断没有,需录屏存档)。


2. 竞品分析

产品 形态 段落级锚定 语音伴读 听完提问 与 Zotero 集成 差距
Paper CopilotZotero 插件) 插件 ✓(文字) 无音频、无老师式授课、无伴读报告闭环
OwlZotero 插件) 插件 ✓(文字) 同上
SciSpace 网页 ✓(文字) 不在 Zotero 工作流里
NotebookLM Audio 网页 ◐(预生成播客,不可交互) 不可交互、不可锚定、不在 Zotero
ChatGPT 语音 + PDF App 对话不锚定段落、无播放器、无笔记回写
Speechify 类 多端 ✓(裸读) 机器朗读,无 AI 讲解

空白确认:Zotero 内 × 老师式授课(整体+逐段+逐句)× 随时提问 × 伴读报告回写,同时满足的产品不存在。


3. 核心设计决策

3.0 心智模型:AI = 论文老师(不是 TTS 播放器)

产品的概念基础是一位"先读完整篇论文、再给读者讲解的老师",四个阶段:

① 读     读完整篇论文(解析 + 段落索引 + 全文摘要)
② 备课   基于全文理解生成"讲义"(Lecture 对象,缓存复用):
         - 整体讲解脚本(按教学逻辑组织,不按论文物理顺序)
         - 逐段三层讲解(按论文结构组织)
         - (按需)逐句讲解
③ 授课   读者自选模式收听;随时可提问(读者发起,系统不打扰)
④ 复盘   听完后生成伴读报告/笔记 → 回写 Zotero,为写论文提供素材

关键架构含义:②"备课"是一次性、可缓存的产物。 老师备一次课,读者听 N 次、换模式重听、隔周再听,都不再花 LLM 成本; 整体讲解与逐段精读共享同一份备课(同一个全文摘要上下文),边际成本只多一次生成。

3.1 多种授课模式(粒度 = 模式,不是全局开关)

模式 组织逻辑 播放单位 场景
整体讲解 教学逻辑:问题→动机→核心方法→关键证据→结论与局限(不是论文物理顺序) beat30s2min 讲解片段,全篇 8–15 个) 第一次过论文,听"具体讲了什么、核心是什么"
逐段精读 论文物理顺序:章节→段落 段落(>150 词的长段拆 13 个"要点" 第二次精读,吃透方法/实验
逐句讲解 按需:选中任意句子,问"解释这句" 硬句子手术

逐段与逐句并存的理由:老师的粒度应随内容难度走—— 简单章节整体带过、核心章节逐段精读、难句子逐句解剖。 "整篇逐句自动播放"不做(成本高、收益低),但逐句按需解释永远可用; v1.1 加"难点句清单":备课时 AI 主动标出全篇 5–10 个最难读的句子,逐个听讲解 (比整篇逐句性价比高得多的折中)。

整体讲解的 beat ≠ 段落(关键数据结构差异):老师会重组材料 "这个 motivation 其实在 p12,我们回去看一下")。 每个 beat 携带 refs[] 指回来源段落,用于文字面板同步高亮对应原文、点击"看原文"跳 PDF 页。

v2检验模式——老师反考读者("你觉得作者为什么这么设计?",答完给反馈), 直接服务"提高理解能力"的终极目标。

3.2 老师讲什么:三种内容模型

① 整体讲解 beat(全篇 10–20 分钟 ≈ 一杯咖啡过完论文核心):

  • 讲解文本(中文口语)
  • refs[]:支撑该 beat 的来源段落 ID
  • 类型标签:问题引入 / 核心方法 / 关键实验 / 结论局限 / 延伸思考
  • 质量要求(防"像 Wikipedia 摘要"):每个 beat 必须含 为什么重要 / 一个具体例子或数字 / 一个易混淆点 三要素

② 逐段三层讲解(对应核心诉求"什么意思 / 怎么理解 / 整体研究思路"):

  1. 讲了什么(白话翻译/转述;公式转口语不念 LaTeX;专有名词保留英文 + 中文解释)
  2. 怎么理解(关键概念、重要数字、和常规做法的差异)
  3. 全文定位"这是 motivation 收尾,为下一节 method 引出问题"

③ 逐句讲解(按需触发):句翻译 + 句法拆解(长句怎么断)+ 这句话在上下文的作用。

教师风格(prompt 层可配置):主动"点"、不主动"问"—— 提示性内容(易混淆点、作者隐含假设、"注意这里做了一个强假设")写进生成的讲义里, 运行时不弹任何提问提示(见 3.3)。

语言处理

  • 英文论文:音频 = 中文讲解(不是英文裸读);文字面板 = 英文原文 + 中文讲解对照;
  • 中文论文:音频 = 中文"白话简化 + 方法分析 + 全文定位"(价值不在翻译,在降维讲解);
  • 自动检测论文语言,切换 prompt 模板;v1.1 可选"原文朗读模式"(英文 TTS 练听力)。

3.3 交互:读者发起,系统不打扰

  • 不做每段/每句播完的"这段有什么疑问吗?"提示(已确认砍掉);
  • 交互入口(任意时刻):
    1. 随时提问:锚定当前位置(当前 beat / 段落),也可问全局 "这篇和 Transformer 什么关系?");
    2. 暂停即问:暂停是天然交互点,暂停时提问入口高亮;
    3. 选中句子问:"解释这句"(逐句讲解的入口)。
  • 问答上下文:当前单位原文 + 对应讲解 + 全文摘要 + 全文索引(RAG); 回答文字先行显示 + TTS 流式播放;所有问答沉淀进伴读记录(进报告)。
  • v1.1:章节边界软提示(默认关闭:"方法部分讲完了,要问点什么吗?")。

系统必须答好的问题类型prompt 与 RAG 设计依据): 翻译类("这句什么意思")/ 理解类("为什么不用 X")/ 逻辑类("结论怎么从实验得出")/ 关联类("这和前面 Y 什么关系")/ 元认知类("这段在全文什么作用")。

3.4 伴读报告(听后沉淀,存成 Zotero 笔记)

听完(或随时点"生成报告")自动汇总:

# 伴读报告:<论文标题>
## 论文速览        问题/方法/结果/局限(中文四句)
## 收听情况        模式、已听 x%、已听段落列表
## 问答记录        按段落:Q + AI 回答(可重播)
## 重点标记        读者标记的段落 + AI 一句话理由
## 参考文献卡片    一句话总结 + 推荐引用句 + BibTeXBBT citation key
  • 存为 Zotero 子笔记(markdown,挂 item 下、可搜索),可导出 .md;
  • 为写论文服务:推荐引用句 + 速览可直接进 related workBibTeX 走 Zotero 原生管道; 后续写相关论文时,Zotero 里搜论文标题即可调出全部伴读素材;
  • v1.1+:理解度评估(按提问分布:"你在实验部分提问最多,建议重听该章节")。

3.5 与 Zotero 的深度集成(一期核心卖点)

集成点 做法
读 PDF 插件取 item 的 PDF attachment 本地路径,直接读,论文不出 Zotero
触发 选中带 PDF 的 item → Item pane 出现"伴读"标签页
缓存 本地 SQLiteLecture 对象(beats/三层讲解)+ mp3 + 问答记录,key = attachment ID + 文件哈希;二次打开秒进、离线可重听
伴读报告回写 报告 + 每段 Q&A + 重点标记 → Zotero.Note 子笔记
参考文献卡片 中文速览(问题/方法/结果/局限)+ 推荐引用句 + BibTeX 条目(有 Better BibTeX 时取 citation key
写论文导入 写 related work 时:卡片摘要可直接粘贴,BibTeX 经 Zotero 原生/BBT 进 LaTeX;重点段落笔记提供引用上下文
伴读库视图 插件主窗口列全部论文:未备课 / 已备课 / 已听 x% / 有报告,快速进入

3.6 播放器 UIZotero Item pane 内的"伴读"页)

┌──────────────────────────────────────────────┐
│ 论文标题 [英]  老师已备课 ✓   [备课进度(首次)] │
├──────────────────────────────────────────────┤
│ 模式: [整体讲解 | 逐段精读]                    │
│ ▶ ⏸ ⏮ ⏭  1x/1.5x/2x                          │
├────────────────────────┬─────────────────────┤
│ 单位列表:              │ 当前内容:            │
│  整体讲解:              │  整体模式: beat 文本   │
│   b1 问题引入 ●已讲     │  + refs 来源段落高亮   │
│   b2 核心方法 ○          │  逐段模式: 原文(英)+   │
│   b3 关键实验 ○          │  三层中文讲解(高亮跟随) │
│  逐段精读:              │ ── 提问(随时)──      │
│   2 Method              │  Q: ... [重播]        │
│   p17 ●已听 [问2] [★]   │  A: ... [重播]        │
│   p18 ○                 │  [输入框: 问当前段/全局] │
│   ...                   │  [选中句子→解释这句]   │
└────────────────────────┴─────────────────────┘
  • 文字面板逐句/逐词高亮跟随音频(TTS word timestamps);
  • 整体讲解模式:面板高亮当前 beat 的 refs[] 来源段落原文,可点"看原文"跳 PDF 页;
  • 点列表任意行跳播;播放中列表自动滚动跟随;断点续播。

4. 技术架构(Local-first

┌────────────────────────────────────────────────────────┐
│ Zotero 7 (PC, macOS/Win)                                │
│ ┌────────────────────────────────────────────────────┐ │
│ │ 插件 (TypeScript, 官方 zotero-plugin boilerplate)    │ │
│ │  • UI 层:伴读 pane / 伴读库窗口 (HTML5 + <audio>)   │ │
│ │  • 本地引擎:PDF 解析 (MinerU/Marker, 本地 CPU 跑)   │ │
│ │  • 本地存储:SQLite(Lecture 对象/问答/进度) + mp3 文件│ │
│ │  • 设置:LLM 提供商+key / TTS 提供商 / 教师风格       │ │
│ │  • 回写:Zotero.Note / 附件路径 / BBT citation key   │ │
│ └──────────────┬─────────────────────────────────────┘ │
└─────────────────┼──────────────────────────────────────┘
                  │ (仅发送段落文本/提问,论文库本身不上云)
        ┌─────────┴──────────┐
        │  LLM API            │  TTS API
        │  (用户自带 key;      │  (ElevenLabs/Azure/
        │   或 Ollama 本地)    │   火山/MiniMax; mp3 落盘)
        └────────────────────┘

4.1 关键流水线

  1. 解析attachment 路径 → 本地 layout 切段(双栏/公式/表格)→ 段落树(章节/段落/要点三层)→ SQLite;
  2. 备课(Lecture 对象,一次生成、缓存复用): a. 全文摘要(问题/方法/结果/局限)→ 作为后续所有生成的全局上下文; b. 整体讲解 beats(8–15 个,教学逻辑序,每个 beat 带 refs[] 来源段落 ID; prompt 只允许引用已分配的段落 ID,生成后校验,非法引用剔除); c. 逐段三层讲解(按 5 段一批,带章节标题 + 全文摘要上下文); d. v1.1:难点句清单(5–10 句,带句内定位); → 增量备课:全文摘要 + beats 先生成(约 1–2 min),即可开听整体讲解;逐段内容后台继续生成("边备课边开讲")。
  3. 合成:讲解文本 → TTS → mp3 + word timestamps → 落盘(按 beat / 段落分片);
  4. 播放:三种模式共用同一播放器引擎(beat 序 / 段落序 / 单句); word timestamps 驱动文字面板高亮;整体模式按 beat 的 refs[] 高亮来源段落;
  5. 问答(随时发起):锚定当前单位(beat/段落/句子)→ 组装 prompt (当前单位原文 + 讲解 + 全文摘要 + RAG 相关段)→ LLM 流式 → 文字即时显示 → TTS 流式播放;问答写入伴读记录;
  6. 报告:收听完成或手动触发 → 伴读报告 + 参考文献卡片 → Zotero Note / 导出 .md。

4.2 关键技术难点与对策

难点 对策
双栏/公式/表格切分质量 首选 MinerUCPU 可跑、公式识别好),Marker 备选;解析结果在文字面板可见,bad case 可兜底
beat 的 refs 幻觉(引用不存在的段落) prompt 约束只引用已分配 ID + 生成后校验剔除;refs 缺失的 beat 降级为纯讲解(不高亮原文)
整体讲解"太泛"(像 Wikipedia 摘要,不像老师) beat 模板强制三要素(为什么重要/具体例子或数字/易混淆点);dogfooding 迭代 prompt
PDF viewer 内段落高亮 依赖 PDF viewer 内部 API,稳定性未验证 → MVP 不做,用"文字面板高亮 + PDF 页跳转"v1.1 调研
音文同步 优先 TTS 提供商返回的 word boundary;缺失则 WhisperX 强制对齐(离线跑一次)
问答延迟 LLM 流式 + TTS 流式,首句 < 2–3s;文字答案先行显示,音频随后
LLM 幻觉(讲解偏离原文) prompt 严格 grounding 到段落原文;温度低;原文始终并排可见;"这段讲解"可一键重生成
长论文成本 备课一次、终身缓存(本地);单篇总成本 < ¥10,一次性;二次打开零成本、可离线重听
隐私 local-firstPDF 不出机器、只发段落文本给 LLM API;设置支持 Ollama 纯本地模型(质量换隐私)
Zotero 7 API 较新 官方 boilerplate、pin 版本;UI 只依赖稳定 APIpane/notes/attachments

4.3 单篇成本/耗时估算(8 页英文论文)

  • 解析:本地 CPU 1–3 min,免费
  • 备课 LLM:全文摘要 + 12 beats + 5070 段三层讲解 ≈ 30k token ≈ $0.050.3(一次性)
  • TTS:整体讲解 ≈ 3k–5k 中文字 + 逐段 ≈ 8k15k 字 ≈ ¥15(火山/Azure)或 $0.20.6ElevenLabs flash
  • 问答:按需,每轮 ≈ $0.002 + 几分钱 TTS
  • 二次打开 / 换模式重听:零成本(全部本地缓存,离线可听)

5. MVP 范围(68 周,PC + Zotero 插件)

MVP 一句话:在 Zotero 里打开一篇英文论文,点"备课",AI 读完整篇后按你选的模式授课 (整体讲解 / 逐段精读),可随时提问并听到语音回答,听完后伴读报告与参考文献卡片留在 Zotero 里。

包含:

  1. Zotero 7 插件骨架 + Item pane "伴读"标签页 + 伴读库主窗口(简版)
  2. 读 Zotero 附件 PDF → 本地解析 → 段落树(章节/段落/要点)
  3. 备课流水线:全文摘要 + 整体讲解 beats(含 refs 校验)+ 逐段三层讲解;增量备课(边备边开讲)
  4. TTS 逐单元合成 + 本地 mp3 缓存
  5. 播放器:模式切换(整体讲解 / 逐段精读)、播放/暂停/跳单位/语速 + 列表 + 文字面板高亮 + PDF 页跳转
  6. 随时提问(文字输入,锚定当前位置或全局)→ 文字先行 + 语音回答 + 追问;选中句子问"解释这句"(逐句按需)
  7. 伴读报告(问答记录/重点标记/收听情况)→ Zotero 子笔记;参考文献卡片 + BibTeX
  8. 设置页(LLM/TTS 提供商与 key、教师风格)、断点续播
  9. Dogfooding:自己读 10 篇论文,迭代 prompt 与节奏

明确砍到 v1.1+

  • 语音输入提问(ASR)、barge-in 打断(MVP 用打字提问)
  • 章节边界软提示(默认关闭)、难点句清单、PDF 内段落级高亮、原文朗读模式
  • 检验模式(老师考读者,v2
  • 移动端 App、云同步、多用户/订阅

MVP 验证的假设:

  1. 整体讲解 10–20 分钟的信息密度是否合适 → dogfooding 调 beat 数与单 beat 长度;
  2. "无提示、随时问"的交互是否够用 → 记录自己"想问但没问"的时刻,决定 v1.1 软提示的默认值;
  3. 伴读报告回 Zotero 后,写论文时是否真的被复用(关键闭环验证)。

6. 路线图

阶段 时间 内容
M1 第 12 周 插件骨架 + PDF 解析(MinerU 本地)+ 段落树 + 备课流水线(摘要/beats/三层讲解,纯文本跑通)
M2 第 34 周 TTS 流水线 + 播放器(双模式切换)+ 文字面板高亮 + refs 高亮
M3 第 56 周 随时问答(RAG + 流式)+ 伴读报告/卡片回写 + BibTeX
M4 第 78 周 增量备课/缓存/断点续播 + 设置页 + dogfooding 10 篇 + 打磨
v1.1 +46 周 语音输入(ASR)、barge-in、难点句清单、软提示(默认关)、PDF 内高亮、原文朗读模式、理解度评估、伴读库完善、开源核心
v2 后续 独立移动端 App(云后端同步论文与伴读进度)、检验模式(老师考读者)、多论文对比听、团队版/订阅

7. 商业模式(分期)

  • 一期:个人工具,插件免费 + 用户自带 LLM/TTS key(零边际成本,dogfooding + 口碑);
  • v1.1:核心开源,Pro 云服务(TTS 代付、跨设备同步、热门 arXiv 论文讲义共享缓存)$9.919.9/月;
  • 长期:学术团队版(共享伴读库、写作引用协作);移动端 App 跟随 v2。
  • 成本结构:local-first 下服务器成本极低,主要成本在 TTS 代付(共享缓存可摊薄)。

8. 风险与对策

风险 等级 对策
整体讲解"太泛"不像老师(核心体验风险) beat 三要素模板 + dogfooding 迭代;教师风格可配置
Zotero 7 插件 API 不稳定 / 未来版本变动 官方 boilerplate、pin 版本、只依赖稳定 API;UI 层与 API 层隔离
PDF viewer 高亮依赖内部 API MVP 绕开(文字面板高亮 + 页跳转);v1.1 专项调研
LLM 讲解幻觉 / 质量不稳定 grounding prompt + 原文并排 + 一键重生成 + dogfooding 迭代 prompt
无提示交互下用户忘了提问(交互率过低) dogfooding 记录数据;v1.1 软提示(默认关)兜底
大厂在 Zotero 生态做音频伴读(或 Zotero 官方 AI 化) 生态卡位 + "备课-授课-报告"闭环是差异化;持续盯 Paper Copilot 与 Zotero roadmap
隐私顾虑(论文文本发给 LLM API) local-first + 可选 Ollama 纯本地;设置中明示数据流向
解析 bad case(复杂版面) 双引擎备选 + 文字面板兜底 + 用户反馈入口

9. 团队与预算(一期)

  • 1 名全栈(插件 + 后端流水线)+ 1 名 AI 工程(解析/prompt/RAG,可同一人);
  • 云成本 ≈ 0(全 local-first,仅 LLM/TTS API 按量,个人使用 <$10/月);
  • 8 周 dogfooding 就绪,不含人力的直接成本 <$200。

10. 下一步行动(本周)

  1. 竞品复核:装 Paper Copilot + Owl,实测是否已有 TTS/音频能力,录屏存档;
  2. 解析 POC:取自己 Zotero 里 3 篇典型论文(双栏 + 公式密集)跑 MinerU(本地 CPU),评估段落切分与公式识别质量;
  3. 插件 POCzotero-plugin boilerplate 跑通三件事——取 attachment 路径、Item pane 加标签页、页面里 <audio> 播一段 mp312 天);
  4. TTS 选型:中文自然度 + 价格 + 是否返回 word timestamps,对比 ElevenLabs / Azure / 火山,各合成 30 秒样本试听;
  5. Prompt 设计:写三套 prompt 初版——全文摘要 / 整体讲解 beats(含 refs 约束)/ 逐段三层讲解;用 1 篇论文人工评估"像不像老师"。