面向高中物理教师的本地题库整理、检索与 Word 组卷工具
把 Word 题目整理为可检索的本地题库,经人工审核后入库,再按教学需要选题并导出试卷。
题搭子用于处理高中物理教师日常积累和使用题目的完整流程:从资料中导入题目,检查题干、答案、解析、公式与图片,补充分类信息,写入本地题库,再完成检索、选题和 Word 组卷。
它遵循三个原则:
- 本地优先:题库、图片、设置、备份和导出文件默认保存在自己的电脑中;核心功能不依赖云端服务。
- 人工确认后入库:批量导入首先生成草稿,教师可以逐题修改、拆分和确认,程序不会把未经检查的内容直接写入正式题库。
- 文件可长期维护:每道题以独立 Markdown 文件保存,图片单独存放;搜索索引损坏后可以从原始题目重新生成。
请从 GitHub Releases 下载与电脑匹配的安装包。
| 系统 | 安装包 | 适用设备 |
|---|---|---|
| macOS | Tidazi-*-macOS-arm64.dmg |
Apple 芯片 Mac(M1、M2、M3、M4 等) |
| macOS | Tidazi-*-macOS-x64.dmg |
Intel 芯片 Mac |
| Windows | Tidazi-*-Windows-x64-Setup.exe |
64 位 Windows 10 / 11 |
每个 Release 同时提供 SHA256SUMS.txt,可用于核对安装包是否下载完整。
- 打开 DMG,将“题搭子”拖入“应用程序”。
- 首次启动时,如果系统提示无法验证开发者,请打开“系统设置 → 隐私与安全性”,在安全提示下选择“仍要打开”。
- 当前安装包使用临时签名,尚未经过 Apple 公证;后续正常启动不需要重复确认。
- 运行
Tidazi-*-Windows-x64-Setup.exe,按安装器提示完成安装。 - 安装器会检查 Microsoft Edge WebView2 Runtime;缺少时将从 Microsoft 下载并安装。
- Word、MathType 和组卷所需的运行组件已包含在安装包中,不需要单独安装 Pandoc、Ruby 或 MathType。
升级时先关闭题搭子,再覆盖安装新版本即可。题库位于应用程序之外,正常升级或卸载不会删除题目数据。
- 导入或录入:选择题目 Word 和可选的答案解析 Word,或者自动整理、手动录入单题。
- 检查草稿:核对自动拆分结果,修改题干、答案、解析、公式、图片和分类信息。
- 确认入库:只把选中且已经确认的草稿写入正式题库。
- 检索与选题:按题号、关键词、板块、题型、知识点、难度、年份和来源筛选题目。
- 组卷与导出:调整题目顺序和试卷设置,生成题目卷、答案卷或解析卷 Word 文档。
Word 批量导入 / Word 单题整理 / 手动录入
↓
导入草稿
↓
人工审核与分类确认
↓
本地题库
↓
检索、选题、组卷
↓
可编辑 Word
| 环节 | 支持内容 |
|---|---|
| 批量导入 | 仅支持 DOCX;可同时上传题目 Word 和可选的答案解析 Word,不支持 PDF |
| 单题录入 | Word 自动整理题目、答案和解析;也可手动填写并添加题目图片 |
| 草稿审核 | 逐题修改、批量选择、保存进度、拆分题目、确认后入库 |
| 公式与图片 | Word 可编辑公式、Equation Editor/MathType OLE 公式、题图提取、WMF/EMF 本地转换、图片裁剪与透视校正 |
| 题库管理 | Markdown 独立题目、分类与知识点、条件筛选、全文检索、编辑、复制、AI 变式草稿、批量修改、回收站 |
| 选题组卷 | 条件找题、自然语言找题、本地排序、可选 AI 调整、上移或下移题目顺序 |
| Word 导出 | A4 单栏、A4 双栏、正式考试卷;可导出题目、答案、解析或分别生成三个文档 |
| 数据维护 | 自动备份、手动备份、恢复前安全备份、图片完整性检查、索引重建、模板恢复 |
题库覆盖力学、电磁学、热学、光学、近代物理、物理实验,以及物理学史、物理方法、单位制与常识等板块。
桌面安装包已经内置固定版本的 Word 读写组件和 MathType 转换资源,安装后即可导入、整理和导出 .docx 文件。
- Word 原生可编辑公式会转换为题库中的 LaTeX 公式,并在导出时恢复为可编辑的 Word 公式。
- Microsoft Equation Editor 3.0 与旧版 MathType/OLE 公式会优先读取内部结构,转换后仍保留在原来的正文位置。
- 单个公式无法转换时,只回退该公式的原始预览图并在审核页提示,不会阻断同一文档中的其他题目和公式。
- Word 中的 WMF/EMF 题图会在本机转换为常见图片格式,不依赖外部图片服务。
- 打包审计会实际转换随包附带的 Equation Editor 3.0 和 MathType 公式样本,而不是只检查组件文件是否存在。
导入后仍建议在草稿页对照原文件检查公式、上下标、单位、题图位置和题目分段。当前只支持 .docx,旧版 .doc 文件请先使用 Word 或其他兼容软件另存为 .docx。
- 题目图片只用于单题录入中的题图附件,不作为批量导入来源。
- “题目图片”入口只接受图片文件;Word 应使用“从 Word 自动整理题目”。
- 图片编辑器支持裁剪和透视校正,适合处理拍照题图和倾斜题图。
- 疑似公式图片需要在审核页明确选择“转为公式”或“保留原图”,确认前不能直接入库。
不配置模型也可以完成导入、录题、检索、组卷、导出和备份。启用后,AI 可用于辅助填写分类、调整找题顺序、根据原题生成变式题草稿,以及制作帮助教师讲题的 HTML 动画。模型结果不会绕过人工审核直接修改正式题库。
目前支持:
- 阿里云百炼 / 通义千问;
- DeepSeek;
- 其他 OpenAI 兼容服务,包括 LM Studio;
- 本机 Ollama 模型。
使用“其他兼容服务”时,服务地址应填写兼容 API 的版本前缀,而不是完整端点。例如,OpenAI 的地址填写为 https://api.openai.com/v1,程序会在其后调用 /chat/completions;模型名称填写服务商提供的模型标识。自定义服务和模型需要兼容 Chat Completions,并支持 response_format: {"type": "json_object"}。讲题动画还要求模型能够在 JSON 字段中稳定输出较长的完整 HTML;输出被截断、混入代码围栏或缺少必要结构时,程序会拒绝该结果。可参考 OpenAI Chat Completions API 说明。
访问密钥保存到操作系统凭据存储,不写入题库 Markdown、settings.json 或 Git 仓库。选择 Ollama 时可以只使用本机模型。云端模型调用前,界面会说明将要发送的内容并要求确认。
在“查看题库”中选择一道已入库题目作为原题,点击“出变式题”,选择变化策略、填写变化要求和目标难度后生成草稿。可选策略包括“综合变式(推荐)”“更换物理情境”“调整已知条件”“改变设问角度”和“改变解题路径”;综合变式会优先同时更换情境并调整条件或设问。
生成与入库分成三个环节:
- 模型先提取核心模型,设计至少两个实质变化,再独立求解并复核答案;生成的可编辑草稿包括题目、答案、解析、分类建议、变化摘要、质量检查和警告。此时不会分配新题号,也不会改动原题。
- 程序检查新题是否保留原题知识点、符合目标难度方向、题干不引用原题、只含纯文本,并拦截只换数字或措辞的近重复结果。首稿未通过质量检查时会自动重做一次,仍不合格则提示教师重新生成。
- 教师查看实质变化、答案复核和难度依据,核对并修改草稿后点击确认,程序才生成新题号并写入正式题库。重复确认同一个草稿不会重复建题。
调用云端模型时,只发送原题正文、原题答案、原题解析、原题知识点、题型、难度系数和教师填写的变式要求,不发送整个题库。变式题的答案和解析仍可能出错,教师应在最终确认入库前重新验算。
当前版本暂不处理变式题图片:含题图或公式回退图片的原题不能生成变式题,程序不会静默忽略图片,也不会把图片上传给模型。可先选择不依赖图片的原题。
在“查看题库”中点击一道题的“讲题动画”,选择演示风格并填写讲解重点后,AI 会根据本题制作一个独立的 HTML5 教学动画。动画必须把 CSS 和 JavaScript 全部写在同一文件中,只能使用浏览器原生的 HTML、SVG 或 Canvas,不依赖外部图片、脚本、字体或网络服务。页面提供播放、暂停、下一步和重置控件,便于教师在课堂上分阶段讲解。
调用云端模型前,程序会再次请求确认;只发送原题正文、原题答案、原题解析和教师填写的动画要求,不发送备注、题目图片或整个题库。当前仅支持不含图片且不依赖题图的纯文本题目。
模型返回结果会经过 JSON 结构、HTML 完整性、JavaScript 语法、必要控件和危险能力检查。通过检查后仍只作为待审阅动画:教师应完整播放,核对物理过程、方向、数值、单位、公式和结论,再下载用于课堂。静态检查不能代替人工复核。
预览使用专用接口和仅允许脚本运行的沙箱 iframe,并同时用 CSP 限制联网、外部资源、表单、跳转、存储和父页面访问。下载得到的也不是裸模型代码,而是带同样沙箱与内容安全策略的自包含 HTML 外壳;请勿移除该安全外壳或放宽其中的 sandbox/CSP 设置。
桌面版默认将数据保存在:
用户文档目录/高中物理题库/
├─ 题目/ # 每道题一个 Markdown 文件
├─ assets/ # 题图和公式回退图片
├─ backups/ # 自动与手动备份
├─ templates/ # 可替换的 Word 模板
├─ ai_drafts/ # AI 分类、变式与讲题动画草稿
├─ exports/ # 导出的试卷
├─ logs/ # 本地运行日志
└─ settings.json # 不含 API Key 的应用设置
- 不需要注册账号,核心题库工作不要求联网。
- 删除题目时先进入本地回收站,可以在维护区恢复。
- 应用默认每 24 小时创建一次自动备份,并保留最近 10 份。
- 恢复历史备份前会先备份当前题库,降低误操作风险。
- 云端 AI 关闭时,题目内容不会因为分类、变式、讲题动画或组卷操作发送给模型服务。
- macOS 安装包尚未经过 Apple Developer ID 公证,首次运行需要手动确认。
- 批量导入只接受
.docxWord 文件;PDF 和图片需先在外部工具中整理为 Word。 - 不同年代和来源的 MathType 文件结构可能不同,批量导入后必须保留人工核对步骤。
- AI 给出的分类、选题建议、变式题答案、解析和讲题动画可能出错,应由教师确认后使用。
- 变式题和讲题动画暂不支持含图片或依赖题图的原题,也不会复制、生成或上传题目图片。
- 讲题动画仅使用原生 HTML、CSS、JavaScript、SVG 或 Canvas,不加载第三方库和外部资源。
- 本项目面向单机题库工作流,不提供账号体系、多人实时协作或云端同步。
需要 Python 3.10 或更高版本。
python -m venv .venv
source .venv/bin/activate
python -m pip install -r requirements-dev.txt
python -m uvicorn app.main:app --host 127.0.0.1 --port 8000Windows PowerShell 使用 .\.venv\Scripts\Activate.ps1 激活环境。启动后访问 http://127.0.0.1:8000。
运行测试:
python -m pytest构建桌面安装包:
# macOS
bash scripts/build_macos_dmg.sh
# Windows PowerShell
powershell -ExecutionPolicy Bypass -File scripts/build_windows.ps1发布构建会在生成安装包前实际启动 Pandoc、OfficeCLI 和 MathType 运行时。缺少必要文件或运行时加载失败时,构建会直接停止,不会发布不完整的安装包。
更多信息:
遇到 Word 导入、公式、图片、题目拆分或安装问题时,请在 GitHub Issues 中附上操作系统、应用版本、错误提示和可复现的脱敏文件信息。
本仓库目前未附加开源许可证。除 GitHub 正常浏览、下载发行包和提交反馈外,源码与发行包的复制、修改及再分发需获得项目作者许可。

