大家好,分享一个最近持续在打磨的开源项目:Smart Wrong Notebook (智能错题本)。
这个项目 fork 自 wttwins/wrong-notebook。最初是因为家里有整理错题和复习的需求,在实际高频使用的过程中,发现传统的错题整理方式(无论是手抄、剪贴,还是单纯拍照存进相册/笔记软件)很容易陷入几个痛点:
- 「只存不练」变成电子垃圾场:拍了一堆错题存进去,但做题和复习还是习惯在纸上写算;缺少针对性的变式题生成和抽题组卷打印,做完之后也没法把纸面结果回填到系统里追踪到底掌握了没有。
- 拍出来的卷子配图糊、有手写批注:手机拍的试卷往往带阴影和手写痕迹,直接打印效果很差;几何、物理题光看文字解析又不够直观。
- 模型配置与部署门槛高:不少开源 AI 工具默认只对接海外接口,国内网络环境配置繁琐;而且并不是每个家庭都有常开的 NAS 或服务器,有时候只想在安卓平板或电脑上装个安装包直接用。
围绕这几个实际痛点,我在这段时间里对项目做了比较彻底的改造和扩展,目前已经完成了从「拍照识别 → 动态讲解 → 举一反三 → 组卷打印 → 作答回填」的完整闭环,并且把安装方式覆盖到了 Docker 、桌面端、飞牛 OS 和内置服务端的安卓单机版。
先放地址,欢迎体验:
- 📦 GitHub 仓库: https://github.com/margrop/wrong-notebook ( MIT 开源,欢迎 Star )
-
🚀 在线体验 Demo: https://wrong-notebook-demo.vercel.app
- 演示账号:
demo@localhost/ 密码:demo123456(公共测试账号,数据全员可见,请勿上传个人隐私信息)
- 演示账号:
- 🌐 项目介绍页: https://blog.margrop.net/wrong-notebook-github-pages/
- 📥 全平台安装包下载: https://github.com/margrop/wrong-notebook/releases
一、 核心功能亮点
1. 拍照识别、一图多题与 SVG 配图重绘
- 多种录入方式:支持拍照上传、剪贴板直接粘贴(
Ctrl/⌘ + V)、屏幕截图,以及 Markdown / LaTeX 文本录入。拍一张整页试卷时,可以在图上框选多道题批量导入。 - 自动判重:导入时自动比对题干相似度(默认阈值 90%,可调)。遇到重复错题不会新建冗余记录,而是自动在原题下累加一次做错记录。
- AI 重绘 SVG 清晰配图:识别带图题目时,AI 会直接输出 SVG 代码把几何图形、函数图像等重新画出来(不依赖文生图模型,放大和打印完全不失真),同时保留原图方便随时核对。
- 学科知识点与难度定级:创建错题本时绑定学段(小/初/高)与学科,AI 自动从内置的标准学科知识点库中打标签,并参考《高思学校竞赛数学导引》标准评定 1~5 星难度( 4 星及以上自动归入 B 卷)。遇到公式语法瑕疵,详情页支持一键「修复 LaTeX 」。

2. 分步骤 SVG 动画讲解 & GeoGebra 演示
对于较难的数学、物理题,光看静态文字解析往往还是转不过弯。
- SVG 动画讲解:AI 会把解题推导过程拆解成分步骤的 SVG 动画(比如几何辅助线怎么一步步添加、染色问题怎么递推计数),自带播放器支持暂停、拖动进度条、重播和全屏。
- GeoGebra 动态演示:在通用设置中开启后,数学和物理题可由 AI 生成可交互的 GeoGebra 动态图形。

3. 举一反三、组卷打印与「来源 ID 」回填闭环
为了避免错题本沦为「只进不出」的收藏夹,重点做了复习与纸质打印闭环:
- 单题举一反三:针对任意错题实时生成同知识点的变式题(可选难度),在线记录做对/做错。
- 抽题组卷与排版打印:按错题本、知识点、掌握状态随机抽题,由 AI 衍生出一套全新的错题针对性试卷。支持一键打印预览(可开关答案页)、导出 HTML 或通过系统打印保存为 PDF 。
- 6 位来源 ID 追踪:每道错题都有唯一的 6 位 ID ,打印出来的错题页和衍生试卷上都会标注对应的「来源 ID 」。在纸上做完卷子后,输入 ID 就能快速定位原题并回填本次作答对错; AI 会综合历次作答历史,动态评估该题的掌握概率(自动流转「待复习 → 复习中 → 已掌握」状态)。


4. 国内大模型官方直连(填 Key 即用)
无需折腾代理或复杂的接口拼接,后台内置了四家国产大模型官方渠道预设,默认配好了国内官方地址和最新多模态模型:
- MiniMax(默认
MiniMax-M3.1-Flash) - DeepSeek(默认
deepseek-flash) - 智谱 GLM(默认
glm-5.3-flash) - Kimi(默认
kimi-k3)
同时也完整支持 Anthropic 、OpenAI 、Google Gemini 、Azure OpenAI,以及所有兼容 OpenAI / Anthropic 接口的第三方服务(如硅基流动、通义千问 DashScope 等)。所有 AI 配置和提示词模板都可以在网页设置里实时修改、测试连接并拉取模型列表,无需重启容器或服务。
二、 多平台部署与「真·安卓单机版」
除了常规的源码运行,每个 Release 版本都会通过 GitHub Actions 自动构建全平台产物:
-
Docker 镜像(推荐 NAS / 服务器):支持
linux/amd64与linux/arm64,一行命令即可启动:mkdir -p wrong-notebook/data wrong-notebook/config && cd wrong-notebook docker run -d --name wrong-notebook \ --restart always \ -e NEXTAUTH_SECRET="$(openssl rand -base64 32)" \ -p 3000:3000 \ -v "$(pwd)/data:/app/data" \ -v "$(pwd)/config:/app/config" \ ghcr.io/margrop/wrong-notebook:latest默认管理员账号:
admin@localhost,密码:123456(登录后请及时修改密码,并在右上角设置中填入大模型 API Key )。 -
npm 全局安装:如果有 Node.js (≥22.15) 环境,直接执行:
npm install -g wrong-notebook wrong-notebook --port 3000 -
桌面版与飞牛 OS ( fnOS ):
- Windows:提供
.exe安装版与免安装便携版。 - macOS:提供 Apple Silicon (
arm64) 与 Intel (x64) 的.dmg。 - Linux:提供
.AppImage与.deb。 - 飞牛 OS:提供
x86和arm架构的.fpk安装包,在应用中心手动安装即可局域网共享使用。
- Windows:提供
-
安卓手机 / 平板 APK (单机版 & 客户端版): 这是折腾得最久但也最实用的一个特性。很多场景下大家只想拿一台安卓学习平板或手机直接用,不想先搭一台服务器,所以我打包了两种 APK (均分手机竖屏版
Phone和平板横竖屏旋转版Tablet):- 安卓单机版(约 75MB ):真正内置完整服务端。因为 Android 限制只能执行
nativeLibraryDir下的二进制,打包脚本提取了 Termux 的nodejs-lts运行时,并用 Android NDK + Rust 交叉编译了安卓arm64架构的 Prisma 查询引擎和迁移引擎,统一改名为lib*.so并用patchelf重写依赖链放入jniLibs。打开 App 时直接在本机127.0.0.1启动与 Docker 版完全一致的 Next.js + SQLite 服务端,数据保存在本机,断网也能查题,联网直连大模型。 - 安卓客户端版(约 2MB ):适合家里已经用 Docker 或飞牛 OS 部署了服务端的朋友,打开填入局域网/公网地址即可,补齐了普通浏览器欠缺的拍照上传、系统级打印/另存为 PDF 等原生交互。
- iOS / iPadOS 用户可以直接通过 Safari 「添加到主屏幕」以 PWA 模式全屏使用。
- 安卓单机版(约 75MB ):真正内置完整服务端。因为 Android 限制只能执行
三、 技术栈
- 前端 & 框架:Next.js 16 (App Router) + React 19 + TypeScript + Tailwind CSS v4 + Radix UI
- 公式与图表:KaTeX (
react-markdown+remark-math) + SVG (SMIL 动画) + GeoGebra - 数据库 & 认证:SQLite (Prisma 5) + NextAuth.js v4 (支持多用户隔离与管理员后台)
- 测试:Vitest (单元/集成测试)+ Playwright ( E2E 测试)
目前项目还在持续维护中,如果你也在给孩子整理错题、或者自己备考有类似需求,欢迎试用并提 Issue 或 PR 交流反馈!