# 产品策划书: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 Copilot(Zotero 插件) | 插件 | ◐ | ✗ | ✓(文字) | ✓ | 无音频、无老师式授课、无伴读报告闭环 | | Owl(Zotero 插件) | 插件 | ✗ | ✗ | ✓(文字) | ✓ | 同上 | | SciSpace | 网页 | ✓ | ✗ | ✓(文字) | ✗ | 不在 Zotero 工作流里 | | NotebookLM Audio | 网页 | ✗ | ◐(预生成播客,不可交互) | ✗ | ✗ | 不可交互、不可锚定、不在 Zotero | | ChatGPT 语音 + PDF | App | ✗ | ✓ | ✓ | ✗ | 对话不锚定段落、无播放器、无笔记回写 | | Speechify 类 | 多端 | ✗ | ✓(裸读) | ✗ | ✗ | 机器朗读,无 AI 讲解 | **空白确认:Zotero 内 × 老师式授课(整体+逐段+逐句)× 随时提问 × 伴读报告回写,同时满足的产品不存在。** --- ## 3. 核心设计决策 ### 3.0 心智模型:AI = 论文老师(不是 TTS 播放器) 产品的概念基础是一位"**先读完整篇论文、再给读者讲解的老师**",四个阶段: ``` ① 读 读完整篇论文(解析 + 段落索引 + 全文摘要) ② 备课 基于全文理解生成"讲义"(Lecture 对象,缓存复用): - 整体讲解脚本(按教学逻辑组织,不按论文物理顺序) - 逐段三层讲解(按论文结构组织) - (按需)逐句讲解 ③ 授课 读者自选模式收听;随时可提问(读者发起,系统不打扰) ④ 复盘 听完后生成伴读报告/笔记 → 回写 Zotero,为写论文提供素材 ``` **关键架构含义:②"备课"是一次性、可缓存的产物。** 老师备一次课,读者听 N 次、换模式重听、隔周再听,都不再花 LLM 成本; 整体讲解与逐段精读**共享同一份备课**(同一个全文摘要上下文),边际成本只多一次生成。 ### 3.1 多种授课模式(粒度 = 模式,不是全局开关) | 模式 | 组织逻辑 | 播放单位 | 场景 | |---|---|---|---| | **整体讲解** | **教学逻辑**:问题→动机→核心方法→关键证据→结论与局限(不是论文物理顺序) | beat(30s–2min 讲解片段,全篇 8–15 个) | 第一次过论文,听"具体讲了什么、核心是什么" | | **逐段精读** | 论文物理顺序:章节→段落 | 段落(>150 词的长段拆 1–3 个"要点") | 第二次精读,吃透方法/实验 | | **逐句讲解** | 按需:选中任意句子,问"解释这句" | 句 | 硬句子手术 | **逐段与逐句并存的理由**:老师的粒度应随内容难度走—— 简单章节整体带过、核心章节逐段精读、难句子逐句解剖。 **"整篇逐句自动播放"不做**(成本高、收益低),但逐句**按需解释**永远可用; 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 一句话理由 ## 参考文献卡片 一句话总结 + 推荐引用句 + BibTeX(BBT citation key) ``` - 存为 Zotero 子笔记(markdown,挂 item 下、可搜索),可导出 .md; - **为写论文服务**:推荐引用句 + 速览可直接进 related work,BibTeX 走 Zotero 原生管道; 后续写相关论文时,Zotero 里搜论文标题即可调出全部伴读素材; - v1.1+:理解度评估(按提问分布:"你在实验部分提问最多,建议重听该章节")。 ### 3.5 与 Zotero 的深度集成(一期核心卖点) | 集成点 | 做法 | |---|---| | 读 PDF | 插件取 item 的 PDF attachment 本地路径,直接读,**论文不出 Zotero** | | 触发 | 选中带 PDF 的 item → Item pane 出现"伴读"标签页 | | 缓存 | 本地 SQLite:Lecture 对象(beats/三层讲解)+ mp3 + 问答记录,key = attachment ID + 文件哈希;二次打开秒进、离线可重听 | | 伴读报告回写 | 报告 + 每段 Q&A + 重点标记 → `Zotero.Note` 子笔记 | | 参考文献卡片 | 中文速览(问题/方法/结果/局限)+ 推荐引用句 + BibTeX 条目(有 Better BibTeX 时取 citation key) | | 写论文导入 | 写 related work 时:卡片摘要可直接粘贴,BibTeX 经 Zotero 原生/BBT 进 LaTeX;重点段落笔记提供引用上下文 | | 伴读库视图 | 插件主窗口列全部论文:未备课 / 已备课 / 已听 x% / 有报告,快速进入 | ### 3.6 播放器 UI(Zotero 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 +