爱意满满的作品展示区。
margrop

开源 AI 错题本:支持拍照识别、国内大模型直连(DeepSeek/MiniMax)、组卷打印与安卓单机版

  •  
  •   margrop · 2h 47m ago · 188 views

    大家好,分享一个最近持续在打磨的开源项目:Smart Wrong Notebook (智能错题本)。

    这个项目 fork 自 wttwins/wrong-notebook。最初是因为家里有整理错题和复习的需求,在实际高频使用的过程中,发现传统的错题整理方式(无论是手抄、剪贴,还是单纯拍照存进相册/笔记软件)很容易陷入几个痛点:

    1. 「只存不练」变成电子垃圾场:拍了一堆错题存进去,但做题和复习还是习惯在纸上写算;缺少针对性的变式题生成和抽题组卷打印,做完之后也没法把纸面结果回填到系统里追踪到底掌握了没有。
    2. 拍出来的卷子配图糊、有手写批注:手机拍的试卷往往带阴影和手写痕迹,直接打印效果很差;几何、物理题光看文字解析又不够直观。
    3. 模型配置与部署门槛高:不少开源 AI 工具默认只对接海外接口,国内网络环境配置繁琐;而且并不是每个家庭都有常开的 NAS 或服务器,有时候只想在安卓平板或电脑上装个安装包直接用。

    围绕这几个实际痛点,我在这段时间里对项目做了比较彻底的改造和扩展,目前已经完成了从「拍照识别 → 动态讲解 → 举一反三 → 组卷打印 → 作答回填」的完整闭环,并且把安装方式覆盖到了 Docker 、桌面端、飞牛 OS 和内置服务端的安卓单机版。

    先放地址,欢迎体验:


    一、 核心功能亮点

    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 动态图形。

    SVG 动画分步讲解

    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 自动构建全平台产物:

    1. 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 )。

    2. npm 全局安装:如果有 Node.js (≥22.15) 环境,直接执行:

      npm install -g wrong-notebook
      wrong-notebook --port 3000
      
    3. 桌面版与飞牛 OS ( fnOS ):

      • Windows:提供 .exe 安装版与免安装便携版。
      • macOS:提供 Apple Silicon (arm64) 与 Intel (x64) 的 .dmg。
      • Linux:提供 .AppImage 与 .deb。
      • 飞牛 OS:提供 x86 和 arm 架构的 .fpk 安装包,在应用中心手动安装即可局域网共享使用。
    4. 安卓手机 / 平板 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 交流反馈!

    1 replies  •  2026-10-24 14:29:41 +08:00
    kuse2001
        1
    kuse2001  
       1h 43m ago via Android
    支持一下
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2774 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 39ms · UTC 08:13 · PVG 16:13 · LAX 01:13 · JFK 04:13
    ♥ Do have faith in what you're doing.