Skip to content

产品概览

本文档描述 Lampio当前产品状态,不是规划文档。 修改时间以 git log -1 -- docs/product.md 为准(手写"最后更新"必然漂移,已移除)。

🔴 2026-08-29(合仓计划 T4-8)起,本文件是双端产品定位与功能清单的唯一真相源。 移动端此前有一份独立的 rvh/docs/product.md,现已收缩成指回本文件的指针 —— 理由与它当时在说的三条假话见文末「双端产品形态」。


产品定位

把你感兴趣的英文内容,变成你的英语课堂。

以阅读兴趣为驱动力,以智能学习为底层能力。用户的主观体验是"我在读我喜欢的东西",客观上他在一个精心设计的学习系统里。

我们是什么

  • 带学习增强层的英文阅读工具
  • 用户自带内容(网页、EPUB),我们提供沉浸式学习脚手架
  • 基于 Krashen "可理解性输入"理论:最有效的语言习得发生在沉浸于略高于当前水平的真实内容中

我们不是什么

  • 不是背单词工具(没有脱离语境的机械记忆)
  • 不是通用浏览器(一切功能围绕英语学习增强)
  • 不是教育平台(不做内容分级推荐、学习计划、打卡任务)

竞品定位

竞争对手是浏览器 / Kindle 阅读器等阅读工具,不是 Duolingo / 不背单词等教育产品。这些阅读工具都没做好"阅读中学习"这件事。整个互联网就是内容库。


设计原则

  1. 兴趣驱动 — 不做强制学习机制(无每日任务、无打卡、无学习计划)
  2. 学习自然发生 — CEFR 高亮、词汇追踪、SRS 复习、阅读统计在底层默默工作
  3. 感知进步不制造焦虑 — 词汇增长曲线、阅读量统计可见,但不设目标
  4. 日常工具化 — 多标签浏览优先,让用户真正把它当日常阅读工具

学习闭环:来源 → 阅读 → 复习 → 反思

产品骨架是一条自洽的学习闭环——读得越多,系统越懂你,学得越省力。四环对应"可理解性输入(Krashen)+ 间隔重复 + 反馈续航"的完整链路。

① 来源 — 你读什么 全网通用:访问任何网页、打开 EPUB。主动发现:推荐站点 / RSS 订阅 / 难度匹配的推荐文章。

发现/推荐功能落在 RSS 文章上——RSS 自带结构化文章流,而网页要爬首页 + 正文提取,成本高且脆弱。但这只是发现层的燃料选择:学习不限于 RSS,任何英文内容都能变成课堂,对外永不是"RSS 阅读器"。完整战略论证(30% 站点数据 / newsletter=RSS / TAM 红线)见 project memory project_rss_discovery_layer_strategy

② 阅读 — 读的时候学 Reader 模式 / 多标签 / 选区翻译 / TTS。CEFR 高亮把"可理解性输入"可视化,双击查词与短语习语高亮降低理解门槛,生词带语境自动入库。这一层注入任何网页,是核心壁垒。

词卡/词源卡/近义辨析背后的语言学概念(词源·词根·词族·词形 / 词目vs词根 / 一词多义消歧 / 近义·搭配·辨析三关系)统一沉淀在 docs/vocabulary-domain-knowledge.md,做词汇功能前先对齐术语。

③ 复习 — 读完记得住 带语境的生词进 SM-2 间隔复习 + 阅读中微复习,把"读到"变成"记住"。

④ 反思 — 看见成长,自然续读 阅读统计 / 词汇增长曲线 / CEFR 等级 / AI 周报把"学到了什么"温和地映照出来——不设目标、不打卡。它的另一面是反哺前三环:周报"下一步读什么"邀请回到阅读、词汇画像让推荐难度更贴(i+1)、到期生词在复习入口自然浮现。

红线:成果只用来让推荐更准、让进步可见从而内生动机,绝不变成考核 / 催促 / 打卡。这一环是 pull 不是 push——一旦开始督促,就滑向了我们明确拒绝的 Duolingo。

闭环飞轮:来源 → 阅读 → 复习 → 反思反哺 → 回到来源/阅读,真正闭合。系统侧也自转:读得多 → 词库大 → 高亮与难度匹配更准 → 推荐更懂你 → 读得更顺。跨端上桌面端承担"深读"、移动端承担"碎片复习",共享同一套数据(见文末 §双端产品形态)。


当前功能清单

核心阅读

功能状态说明
多标签浏览Multi-webview,标签切换不销毁
EPUB 阅读器epubjs,支持目录导航
Reader 模式提取正文,隐藏广告
预设导航站点24 个英文网站(News/Tech/Learning/Science)
RSS 订阅订阅 + 文章缓存
网页书签URL 去重
粘贴文本阅读第三类阅读来源,编辑 / 阅读两态:⌘⇧V 开编辑器,⌘V 粘进来后可反复整理(不落库),点「开始阅读」才成文(reader 版式);无学习痕迹的文档可回来重新编辑。打开编辑器时预检剪贴板,像英文文本就提示一键填入
资源历史最近打开的 web/epub(粘贴文本记作 web)

词汇学习

功能状态说明
双击查词Content-script 注入,即时弹窗
CEFR 高亮A1-C2 颜色分级
词汇追踪自动保存到 learning_entries + 上下文句子
SM-2 复习2-button Hard/Easy,序列推导
微复习阅读中弹窗内 Hard/Easy
预装词库与移动端 byte-equal 共享 src-tauri/assets/lampio_dict.db(红线 #10)。当前版本看 VOCABULARY_SEED_VERSIONsrc-tauri/src/db/helpers.rs)—— 别再往这行填绝对数,它每轮 reseed 都会变而没人回写;要数就现查:sqlite3 src-tauri/assets/lampio_dict.db "SELECT COUNT(*), SUM(word NOT LIKE '% %'), SUM(word LIKE '% %') FROM vocabulary;"
MDict 导入支持第三方词典

翻译 & 分析

功能状态说明
选区翻译选中即译,走服务端 LLM(用户无需填 key)
全页双语⛔ 已下线2026-08 退役:整页译文并排会关掉查词/高亮/语境池,产品退化成"带译文的浏览器"。救援职能交给选区翻译
TTS 朗读Azure Neural(服务端合成;不可达时自动落系统语音)
句子分析AI 分析缓存

云端 & 同步

功能状态说明
Supabase Auth注册/登录/登出/刷新
同步矩阵10 张表 Push/Pull + Merge 策略(其中 6 张与移动端共享,另 4 张桌面端专有)。逐张清单见 CLAUDE.md §3
Soft-delete跨端删除传播
自动同步60s 间隔 polling
用户切换检测并清理数据

数据管理

功能状态说明
CSV 导入/导出词汇数据
Anki 导出复习卡片
阅读统计统计面板

目标用户

核心用户:有英语基础(B1+),日常需要阅读英文内容的知识工作者。

  • 程序员(读技术文档、HN、GitHub)
  • 研究人员(读论文、英文资料)
  • 英语学习者(读新闻、小说、博客)

共同特征:已有阅读英文的需求和能力,但缺少从阅读中系统积累词汇的工具。


双端产品形态

两端是同一个产品的两种入口,不是两个产品:桌面端的入口是浏览器,移动端的入口是相机。 共享同一套数据模型与同一份预装词库(红线 #10 要求两端字节相等)。

维度桌面端(src/ + src-tauri/移动端(rvh/
技术栈Tauri + React + RustFlutter / Dart
平台macOS / WindowsiOS / Android
入口浏览器 —— 网页 / EPUB / 粘贴文本相机 —— 拍照 OCR
承担深读:沉浸式阅读 + 查词碎片复习:随手采词 + 卡片
数据同步矩阵 10 张表其中共享 6 张(无阅读功能,故 4 张桌面端专有的不参与)
算法SM-2(Rust + TS)SM-2(Dart)
预装词库src-tauri/assets/lampio_dict.dbrvh/assets/databases/lampio_dict.db(byte-equal,纯消费方)

移动端功能清单

🔑 移动端不做阅读。 它不是一个手机上的浏览器 —— 纸质书、屏幕、任何看得见的英文, 拍一张就进同一个学习闭环。「读」那一环由桌面端承担,两端在复习环合流。

功能状态说明
拍照识词相机 / 相册 → Google ML Kit OCR
图像前处理OpenCV:文档边缘检测 · 透视矫正 · 背景移除 · 文字方向判定 · 质量增强
CEFR 智能过滤一页几百个词里只留"跳一跳够得着"的,直接对应设计原则 2
快速分诊滑卡式标「已认识」(known_words),按 CEFR 分级推进,建立个人水平基线
生词本 + 来源追溯按书籍 / 页分组,每个词可回到拍摄原图与词位
SM-2 复习卡面正面 = 拍摄原图 + 词位高亮 + 聚光灯;背面 2026-08-26 起 OCR 采的词也有语境范式(取词位所在行,见 CHANGELOG)
查看语境(跨端)WebView 渲染桌面端同步来的快照 HTML —— 手机上也能回到那个词当初出现的网页
全局查词前缀 > 包含排序,带笔记本状态与「已认识」标记
单词发音Azure Neural TTS,与桌面端复用同一 edge function 与同一 voice,两端听感一致;不可达时落系统语音
本地复习提醒每日定时本地通知(按设置的时间 + 待复习词数)。服务端推送尚未做,见 backlog §跨端整合尾项
电子书 / 分享正文导入解析 EPUB / 接收分享的正文作为语境来源(复习卡回原文取上下文),不是阅读器
读书笔记 PDF 导出单本笔记导出
跨端同步Supabase Auth + 共享 6 张表,与桌面端双向
多语言界面lib/l10n/:中 / 英 / 日

移动端的规划与 as-built 去哪看(本节只写"现在是什么"):

想知道去处
移动端做过什么、怎么做的rvh/CHANGELOG.md
还剩什么没做docs/plans/backlog.md · docs/plans/product-iteration-roadmap-2026h2.md
跨端交接docs/cross-end/(编号总表在其 README)

沿革:rvh/docs/product.md 为什么收缩成指针(2026-08-29,合仓计划 T4-8)

移动端此前有一份 14.6KB 的独立产品文档。它不只是"过期",是在说与当前产品相反的话

它写着事实
产品是「reading_vocab_helper(阅读词汇助手)—— 基于 CEFR 智能过滤的阅读场景词汇习得工具」,目标用户是「备考学生(托福/雅思/GRE)… 通过考试」2026-07 已改名 Lampio;定位是"把你感兴趣的英文内容变成你的英语课堂",且本文件开头明写竞品不是 Duolingo 那类教育产品。按它的框定做需求,会一路做成我们明确拒绝的东西
「❌ 云端同步(隐私优先)」「所有数据本地存储,不依赖网络」,并把云端同步列为 P3「暂不考虑」/ v2.0.0「可能功能」跨端同步是这个产品的骨架:Supabase Auth + 与桌面端共享 6 张同步表,双端整合是 §双端产品形态 的全部前提
「❌ 多语言界面(初期专注中英双语)」lib/l10n/ 实装了中 / 英 / 日三种

外加一整套停在 2025-12 的路线图("2025-12 ← 现在"、v1.0.0 MVP 进行中)、一份与 rvh/CHANGELOG.md 重复的 FEAT 完成记录、和一份没人跟踪的成功指标。

处置:移动端"现在是什么"合进上面那节;规划 / as-built 各归其位(表见上); rvh/docs/product.md 保留为指针文件而不是删除 —— 8 个文件在引用它rvh/README.md · rvh/QUICKSTART.md · rvh/CLAUDE.md · rvh/docs/README.md · rvh/docs/architecture.md · rvh/docs/guides/doc-maintenance-guide.md · rvh/.claude/skills/doc-sync-check/SKILL.md · rvh/docs/plans/backlog.md), 删掉就是造一批死链;而指针文件里不留任何产品论断,就不会重新长成第二本账。

🔴 同批订正的还有本文件自己的两处:「预装词库 12,291 条」(真值 18916 = 12172 单词 + 6744 短语,任何口径都对不上,且按 2026-08-28 的口径裁定这里根本不该写绝对数) 与「5 表同步」(真值 10 张,其中 6 张与移动端共享)。 说明同一份文档里"我方"那半边一样会腐烂,别只审对端那半边。