MathBank-专为中学数学教师打造的本地化智能题库与组卷排版工作台


在教育信息化浪潮中,一线数学教师最渴望的,往往不是花哨的云端平台,而是一个真正懂教研、能离线、不绑架数据、且开箱即用的本地工具。今天要介绍的 MathBank,正是这样一个从高中数学备课实战中生长出来的“教研工作台”。


📌 它是什么?

MathBank 是一个完全本地化运行的轻量级半自动化数学题库与组卷排版系统。它不依赖任何前端构建工具,后端基于 Python + FastAPI + SQLite,前端就是纯 HTML + JavaScript——你甚至可以把它理解成一个“带智能大脑的 LaTeX 排版工厂”。

它的核心定位是:

  • 题库管理:精细化管理题目,支持多维标签、难度分级、变式题组、双向细目表。
  • 组卷排版:从题库中智能选配题目,生成高考级 A4 试卷,支持密封线、答题卡、19 题新高考模板。
  • 教研辅助:集成 DeepSeek 等大模型进行解题推导、整卷拆解、TikZ 几何图形自动重绘,以及 OCR 公式识别。

下面是 题库研讨工作台 的实际界面,您可以在左侧浏览题目列表,右侧进行精细编辑和预览:

MathBank 题库研讨工作台


🧩 它解决了哪些痛点?

教师常见困境MathBank 的解法
📄 题目散落在 Word/PDF 中,难以检索复用内置 SQLite 数据库 + 命令行极速检索(search_questions.py),支持按关键词、题型、难度、关联题检索
📐 LaTeX 公式和几何图形排版门槛高内置 KaTeX 实时预览 + XeLaTeX 高考级编译引擎,自动处理 exam-zh 宏包,TikZ 代码秒级渲染
🧠 组卷费时费力,难控难度与知识点覆盖AI 智能组卷融合双向细目表与难度阶梯分布,一键推荐最优题目组合
🔄 教材大纲变更,历史题目分类混乱原生内置人教A/B版、苏教版大纲,切换时自动增量对齐,实现“无感迁移”
🖨️ 试卷排版与 LaTeX 源码脱节A4 Live Preview 仿真画布,所见即所得,修改标题、留白、插图位置后同步生成 LaTeX 并支持一键导出 PDF
📷 纸质试卷/教辅资料数字化困难多通道 OCR(硅基流动 / 阿里百炼)支持公式和手写体识别,并可自动拆解 PDF 试卷
🔐 数据安全与隐私顾虑完全本地运行,所有数据(数据库、插图、配置)均存于本地,不上传任何教学资源

🚀 快速上手(三步走)

1️⃣ 环境准备

  • Python 3.8+(推荐 3.10)
  • LaTeX 编译环境(用于 PDF 生成):
    • macOS:安装 MacTeX
    • Windows:安装 TeX LiveMiKTeX
    • 确保 xelatexpdflatex 命令在系统 PATH 中可用

2️⃣ 获取代码

git clone https://github.com/JudgePeach/math-question-bank.git
cd math-question-bank

3️⃣ 安装依赖并启动

pip install -r requirements.txt

启动方式(任选其一)

  • macOS:双击 启动题库系统.command
  • Windows:双击 启动题库系统.bat
  • 命令行python -m uvicorn main:app --reload,访问 http://127.0.0.1:8000

💡 不想折腾环境? 直接前往 Releases 页面 下载对应平台的便携包(Windows 或 macOS),解压即用,内置 Python 运行时。


⚙️ 配置 API 密钥(开启 AI 能力)

MathBank 的 AI 解析、解题、TikZ 重绘等功能依赖外部大模型 API。你需要在启动项目后,点击网页右上角的 齿轮⚙️(设置) 按钮,填入以下密钥:

功能推荐服务商获取方式
AI 解题 & 智能组卷DeepSeekDeepSeek 开放平台
OCR 公式识别(首选)硅基流动 (SiliconFlow)专属注册链接,推荐 Qwen/Qwen3-VL-8B-Instruct
高级 TikZ 几何重绘中转站 A(RightCodes)或 B(PackyAPI)分别适用于 GPT-4o 系列和 Claude 系列,链接见项目 README

所有密钥仅保存在本地的 .env 文件中,不会外传。


🧰 核心工作流一览

📚 题库研讨工作台

  • 手动录入:支持 LaTeX 公式(KaTeX 实时渲染)、插图上传、TikZ 代码。
  • AI 辅助:一键调用大模型生成解题步骤,或通过 OCR 识别图片中的公式自动填入。
  • 多维度管理:四档难度(易错/常规/挑战/强基)+ 自定义 Tag + 题组关联(变式/子母题)。
  • 多大纲共存:切换人教A/B/苏教版时,题目分类自动镜像对齐。

📝 组卷排版工作台

这是 MathBank 的另一大亮点——从题库中挑选题目,实时预览 A4 试卷效果,并可一键导出 LaTeX 源码或直接编译为 PDF。您可以看到密封线、卷头、答题留白等全部高考级排版要素:

MathBank 组卷排版工作台

  • 智能组卷:按知识点、难度、题型等条件,AI 自动挑选最适配的题目组合。
  • A4 Live Preview:1:1 仿真画布,支持密封线、主副标题、注意事项框、解答题留白微调。
  • 灵活排版:插图可置于题干右侧、居中或右下角,拖拽卡片调整题目顺序。
  • 一键导出:生成标准 exam-zh 模板的 LaTeX 源码包(.zip),或直接编译为高清 PDF(0ms LRU 缓存,相同试卷秒出)。

🔧 实用运维脚本

  • 终端检索python search_questions.py -q "导数" 快速查找题目。
  • 数据清洗migrate_fillin.py 统一填空题下划线规范;migrate_choice_parentheses.py 自动去除选择题题干末尾空括号。

🖥️ 部署与运行环境

MathBank 设计为单机本地服务,无需公网服务器,推荐运行在教师个人电脑上:

项目要求
操作系统Windows 10/11, macOS 10.15+ (Intel/Apple Silicon)
Python3.8 ~ 3.11(推荐 3.10)
内存最低 2GB,推荐 4GB+(AI 调用时依赖网络,本地无额外负担)
硬盘约 500MB(含依赖库,题库数据随使用增长)
网络仅当使用 AI/OCR 功能时需要联网,其余操作完全离线
LaTeX必须安装(否则无法生成 PDF,但源码导出不受影响)

✅ 便携包用户无需单独安装 Python,但 LaTeX 仍须自行安装


📂 数据与备份

所有用户数据均存放在本地,升级或迁移时只需备份以下内容:

  • *.db(题库数据库)
  • .env(API 密钥)
  • data_backup/(自定义维度与章节配置)
  • static/uploads/(上传的插图)

项目已通过 .gitignore 排除这些文件,执行 git pull 升级时不会影响你的数据。


🧪 单元测试与稳定性

项目附带 Pytest 隔离测试(使用内存 SQLite):

PYTHONPATH=. pytest tests/


🌟 总结

MathBank 不是另一个“在线教育平台”,而是一个属于教师自己的本地工具箱。它将 LaTeX 排版的工业级精度、AI 的智能辅助、以及一线教研的灵活需求,糅合在一个极简的桌面应用中。

无论你是想系统化整理历年真题,还是快速生成一份高质量的周练试卷,亦或是尝试用 AI 辅助几何图形绘制——MathBank 都能让你少一些琐碎,多一些专注。

立即尝试
GitHub 仓库:JudgePeach/math-question-bank
Releases 便携包:下载页面

📖 项目采用 AGPLv3 开源协议,欢迎 Fork、提 Issue 和 PR,一起打造更懂数学教师的教研利器。


文章作者: Kezade
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Kezade !
评论
  目录