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