在教育信息化浪潮中,一线数学教师最渴望的,往往不是花哨的云端平台,而是一个真正懂教研、能离线、不绑架数据、且开箱即用的本地工具。今天要介绍的 MathBank,正是这样一个从高中数学备课实战中生长出来的“教研工作台”。
📌 它是什么?
MathBank 是一个完全本地化运行的轻量级半自动化数学题库与组卷排版系统。它不依赖任何前端构建工具,后端基于 Python + FastAPI + SQLite,前端就是纯 HTML + JavaScript——你甚至可以把它理解成一个“带智能大脑的 LaTeX 排版工厂”。
它的核心定位是:
- 题库管理:精细化管理题目,支持多维标签、难度分级、变式题组、双向细目表。
- 组卷排版:从题库中智能选配题目,生成高考级 A4 试卷,支持密封线、答题卡、19 题新高考模板。
- 教研辅助:集成 DeepSeek 等大模型进行解题推导、整卷拆解、TikZ 几何图形自动重绘,以及 OCR 公式识别。
下面是 题库研讨工作台 的实际界面,您可以在左侧浏览题目列表,右侧进行精细编辑和预览:

🧩 它解决了哪些痛点?
| 教师常见困境 | 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 生成):
2️⃣ 获取代码
git clone https://github.com/JudgePeach/math-question-bank.git
cd math-question-bank3️⃣ 安装依赖并启动
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 解题 & 智能组卷 | DeepSeek | DeepSeek 开放平台 |
| 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。您可以看到密封线、卷头、答题留白等全部高考级排版要素:

- 智能组卷:按知识点、难度、题型等条件,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) |
| Python | 3.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,一起打造更懂数学教师的教研利器。

