Skip to content

Repository files navigation

题搭子 Logo

题搭子

面向高中物理教师的本地题库整理、检索与 Word 组卷工具

把 Word 题目整理为可检索的本地题库,经人工审核后入库,再按教学需要选题并导出试卷。

下载最新版 · 更新记录 · 反馈问题

GitHub Release Tests macOS and Windows

题搭子题库工作台

题搭子是什么

题搭子用于处理高中物理教师日常积累和使用题目的完整流程:从资料中导入题目,检查题干、答案、解析、公式与图片,补充分类信息,写入本地题库,再完成检索、选题和 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,可用于核对安装包是否下载完整。

macOS

  1. 打开 DMG,将“题搭子”拖入“应用程序”。
  2. 首次启动时,如果系统提示无法验证开发者,请打开“系统设置 → 隐私与安全性”,在安全提示下选择“仍要打开”。
  3. 当前安装包使用临时签名,尚未经过 Apple 公证;后续正常启动不需要重复确认。

Windows

  1. 运行 Tidazi-*-Windows-x64-Setup.exe,按安装器提示完成安装。
  2. 安装器会检查 Microsoft Edge WebView2 Runtime;缺少时将从 Microsoft 下载并安装。
  3. Word、MathType 和组卷所需的运行组件已包含在安装包中,不需要单独安装 Pandoc、Ruby 或 MathType。

升级时先关闭题搭子,再覆盖安装新版本即可。题库位于应用程序之外,正常升级或卸载不会删除题目数据。

典型工作流

  1. 导入或录入:选择题目 Word 和可选的答案解析 Word,或者自动整理、手动录入单题。
  2. 检查草稿:核对自动拆分结果,修改题干、答案、解析、公式、图片和分类信息。
  3. 确认入库:只把选中且已经确认的草稿写入正式题库。
  4. 检索与选题:按题号、关键词、板块、题型、知识点、难度、年份和来源筛选题目。
  5. 组卷与导出:调整题目顺序和试卷设置,生成题目卷、答案卷或解析卷 Word 文档。
Word 批量导入 / Word 单题整理 / 手动录入
                       ↓
                   导入草稿
                       ↓
               人工审核与分类确认
                       ↓
                    本地题库
                       ↓
                 检索、选题、组卷
                       ↓
                   可编辑 Word

功能范围

环节 支持内容
批量导入 仅支持 DOCX;可同时上传题目 Word 和可选的答案解析 Word,不支持 PDF
单题录入 Word 自动整理题目、答案和解析;也可手动填写并添加题目图片
草稿审核 逐题修改、批量选择、保存进度、拆分题目、确认后入库
公式与图片 Word 可编辑公式、Equation Editor/MathType OLE 公式、题图提取、WMF/EMF 本地转换、图片裁剪与透视校正
题库管理 Markdown 独立题目、分类与知识点、条件筛选、全文检索、编辑、复制、AI 变式草稿、批量修改、回收站
选题组卷 条件找题、自然语言找题、本地排序、可选 AI 调整、上移或下移题目顺序
Word 导出 A4 单栏、A4 双栏、正式考试卷;可导出题目、答案、解析或分别生成三个文档
数据维护 自动备份、手动备份、恢复前安全备份、图片完整性检查、索引重建、模板恢复

题库覆盖力学、电磁学、热学、光学、近代物理、物理实验,以及物理学史、物理方法、单位制与常识等板块。

Word 与公式兼容性

桌面安装包已经内置固定版本的 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 辅助是可选功能

不配置模型也可以完成导入、录题、检索、组卷、导出和备份。启用后,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 时可以只使用本机模型。云端模型调用前,界面会说明将要发送的内容并要求确认。

生成变式题

在“查看题库”中选择一道已入库题目作为原题,点击“出变式题”,选择变化策略、填写变化要求和目标难度后生成草稿。可选策略包括“综合变式(推荐)”“更换物理情境”“调整已知条件”“改变设问角度”和“改变解题路径”;综合变式会优先同时更换情境并调整条件或设问。

生成与入库分成三个环节:

  1. 模型先提取核心模型,设计至少两个实质变化,再独立求解并复核答案;生成的可编辑草稿包括题目、答案、解析、分类建议、变化摘要、质量检查和警告。此时不会分配新题号,也不会改动原题。
  2. 程序检查新题是否保留原题知识点、符合目标难度方向、题干不引用原题、只含纯文本,并拦截只换数字或措辞的近重复结果。首稿未通过质量检查时会自动重做一次,仍不合格则提示教师重新生成。
  3. 教师查看实质变化、答案复核和难度依据,核对并修改草稿后点击确认,程序才生成新题号并写入正式题库。重复确认同一个草稿不会重复建题。

调用云端模型时,只发送原题正文、原题答案、原题解析、原题知识点、题型、难度系数和教师填写的变式要求,不发送整个题库。变式题的答案和解析仍可能出错,教师应在最终确认入库前重新验算。

当前版本暂不处理变式题图片:含题图或公式回退图片的原题不能生成变式题,程序不会静默忽略图片,也不会把图片上传给模型。可先选择不依赖图片的原题。

制作 HTML 讲题动画

在“查看题库”中点击一道题的“讲题动画”,选择演示风格并填写讲解重点后,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 公证,首次运行需要手动确认。
  • 批量导入只接受 .docx Word 文件;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 8000

Windows 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 正常浏览、下载发行包和提交反馈外,源码与发行包的复制、修改及再分发需获得项目作者许可。

About

面向高中物理教师的本地题库与组卷助手

Topics

Resources

Stars

6 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages