Product
AI 错题本
## 一、为什么做这个 家里孩子上初中,数学练习册、试卷源源不断。错题管理的传统流程是:抄题(费时)、贴卷子(凌乱)、复习时东翻西找。市面上拍照搜题 App 只给答案,不管"这道题我错在哪、下次还会不会错"。 我想要的是一个**私有错题知识库**: * 拍照就能把整页题目数字化,我来审核哪些值得入库、错因是什么 * 平时能刷题、能按知识点出卷 * 连对 3 次的题自动建议归档——真正掌握的题不再占用注意力 * 数据在我自己手里 恰好此前…
Product
## 一、为什么做这个 家里孩子上初中,数学练习册、试卷源源不断。错题管理的传统流程是:抄题(费时)、贴卷子(凌乱)、复习时东翻西找。市面上拍照搜题 App 只给答案,不管"这道题我错在哪、下次还会不会错"。 我想要的是一个**私有错题知识库**: * 拍照就能把整页题目数字化,我来审核哪些值得入库、错因是什么 * 平时能刷题、能按知识点出卷 * 连对 3 次的题自动建议归档——真正掌握的题不再占用注意力 * 数据在我自己手里 恰好此前…
## 一、为什么做这个 家里孩子上初中,数学练习册、试卷源源不断。错题管理的传统流程是:抄题(费时)、贴卷子(凌乱)、复习时东翻西找。市面上拍照搜题 App 只给答案,不管"这道题我错在哪、下次还会不会错"。 我想要的是一个**私有错题知识库**: * 拍照就能把整页题目数字化,我来审核哪些值得入库、错因是什么 * 平时能刷题、能按知识点出卷 * 连对 3 次的题自动建议归档——真正掌握的题不再占用注意力 * 数据在我自己手里 恰好此前我做过一个出题系统( quiz-demo ),里面有一条经过实战验证的"质量链":几何图形数值校验( geocheck )→ 独立解题验伪( verify\_answers )→ 矢量试卷导出( export\_paper )。错题本直接把这条链复用过来——**所有 AI 生成的题目都必须过三道工序,禁止裸奔**。 ## 二、完整工作流 拍照上传(可多张) → 视觉模型多题转录(题干 LaTeX 、选项、图形框、印刷答案、手写标记) → 自动按框抓取原图(权威图形,0 token ) → [人审视图] 左原图右题目卡片,KaTeX 实时渲染 勾选入库 + 标错因(马虎/不会/其他)+ 图形可抓原图/手动框选 年级、知识点自动归类(教材知识树),可改 → 提交入库:题库查重 → 独立解题验伪 → 章节难度知识点分析 → 工作台(筛选/统计/详情) → 刷题(单题循环,自动评分)/ 做题(勾选试卷式,统一批改给分+评价) → 连对 3 次 → 建议归档 → 归档 → 针对性出卷(按章节/知识点/难度占比,原题变式或原创)→ 矢量 PDF ## 三、功能清单( V1.0 ) ### 1. 录入·排版机(最花功夫的模块) * **多题转录**:一张照片里所有题目一次转录,只认印刷体,手写痕迹只标记不转录 * **人审前置**:转录结果必须经人审(左原图、右题目卡片对照),勾选才入库——AI 只打草稿,取舍由人 * **图形来源分层**:几何题可一键生成规范矢量 SVG ( geocheck 数值校验循环);默认使用原题照片裁剪图(省 token );表格/函数图象类题只能用原图 * **图形纠正三入口**:重新抓取原图、手动拖拽框选( box 存档可重放)、整单幂等重裁 * **EXIF 方向统一**:手机照片的旋转信息曾导致抓图转 90°、手动框选完全错位——全链路统一到"转正空间"后彻底解决 * **年级/知识点自动归类**:教材(浙教版八上)用 build\_kb 视觉转录成知识库( 201 页),录入时 LLM 只能在知识树内选,人审可调 ### 2. 入库质量链 * **查重**:题干归一化(去 LaTeX 命令名/标点/空白)后相似度 ≥92% 判重复,不重复录入,完成横幅里报告 * **不信任照片答案**:照片里的印刷答案仅作参考,一律让另一个模型独立解题对账;冲突以审题答案为准并留痕,判题不合格进 needs\_review * **错因驱动分析**:马虎 → 易错点写"易算错环节";不会 → 写"思路卡点" ### 3. 工作台 * 统计图(总/在库/已归档/零练习/建议归档)+ 五组分布图(默认折叠,点开查看) * 错题列表:公式渲染、章节/难度/知识点/错因列、**查看弹窗**(题目全部信息+逐次练习历史) * **筛选联动**:章节/难度/错因/知识点/含已归档,搜索后统计和列表一起更新;筛选与勾选持久化,跨标签页不丢 * 行内归档/激活,勾选后可直接导出练习卷 PDF (矢量公式排版,答案附卷末可裁) ### 4. 刷题与做题(两种模式) * **刷题**(单题模式):自动循环在库全部题目;单选/多选/填空**自动评分**,问答看答案自判;答完即时反馈连对 n/3 、建议归档、重复做错,可做相似题 * **做题**(试卷模式):工作台勾选 → 新标签页整卷作答 → 统一批改:得分(百分制)、评价、**错题知识点汇总**(直指薄弱点) * **相似题**:围绕同一知识点与易错点生成,过图形校验 + 验伪,不过关自动重生成 ### 5. 多用户 按用户分目录存储(题库/草稿单/照片各自独立),页头切换/新建用户,存量数据自动迁移。两个孩子的错题互不干扰。 ## 四、几个关键设计决策 **1. 数据即文件,不用 SQLite** 全部数据是 JSON (原子写 + .bak ),人类可读、git 可版本管理(题库本身就是重要资产)。几百题规模下,一个 `git log` 就是完整的演进史——后来一次测试事故把题库覆盖了,正是靠备份和 git 恢复的。 **2. 向量化( SVG 生成)从默认改为按需** 最初设计是"几何题都自动转成规范矢量图",但实测发现这是**全链路最费 token 、最慢的一步**(每题 1\~3 次 LLM 调用 + geocheck 失败重试)。v0.6 反转为:转录默认用照片裁剪图( 0 token ),需要规范图形时人审期一键生成。省一半以上开销,录入速度大幅提升。 **3. 不让 LLM 自由发挥知识点** 知识点候选来自教材知识库(把纸质课本逐页视觉转录成结构化 JSON ),录入时 LLM 只能在树内选;而**工作台筛选用的知识点候选来自题库实际标注**——保证下拉框里选了就一定能搜到(教材命名和 LLM 标注命名对不上是真实的坑)。 **4. 人审是产品的核心,不是过渡方案** 照片转录的不确定性(多题混排、手写干扰、印刷质量)决定了全自动入库不可靠。与其追求"全自动",不如把人审界面做到顺手:对照原图逐题确认、错因标注、图形纠正都是两次点击内的事。AI 负责 80% 的体力活,人负责 20% 的判断。 ## 五、踩坑记录(节选) * **CV 定位图形在真实照片上失效**:行剖面定位在假照片上 IoU 95.9%,真实照片上把斜排文字误判为图形,两轮实测后废弃,改用视觉模型直接输出图形框 * **DeepSeek 思考链烧光 max\_tokens**:导致 content 为空且 finish\_reason=length——降级策略:json\_object → 关思考重试 → plain ,实测 645s → 16s * **EXIF orientation 双坐标系**:浏览器自动转正、服务端不转,抓图转 90°、手动框选完全错位。全链路统一转正空间 + 历史数据迁移工具 * **公式在列表里时渲染时不渲染**:题干截断 40 字符会把 `$...$` 配对切断,KaTeX 找不到闭合符就放弃——改返回全文 + CSS 单行截断 * **导出 PDF 显示 LaTeX 源码**:导出链路不渲染 LaTeX ,加了一层 LaTeX → Unicode 数学符号转换(\triangle→△、\circ→°、\frac→(a/b)、上标转 ⁰¹²³) * **测试覆盖了真实题库**:测试 patch 路径常量但存储层重构后路径被重新绑定,种子数据覆盖了真实数据( 10 题 → 1 题)——靠 .bak 和 git 恢复,并给所有测试加了测试模式保险。这个事故再次证明了"数据即文件 + git 管理"的价值 ## 六、后续计划 * 归档题的周期性复习提醒(错题本变复习系统) * 移动端适配(拍照场景天然在手机) * 教材 KB 扩展到九年级,知识点归一化到教材命名 * 错因/知识点的长期趋势分析 ## 结语 这个项目最大的感受:**AI 应用的价值不在模型本身,而在模型外围的工程**——质量链、人审流程、数据管理、测试回归,这些"笨功夫"决定了它能不能真的每天用。3 天开发 + 真实使用反馈驱动的 12 轮迭代,现在它已经是我家每天在用的工具了。 *** *项目为自用工具,未开源服务端部署;如对质量链( geocheck / verify\_answers / export\_paper )或错题本实现细节感兴趣,欢迎交流。*
Discuss this product