上传 CAIE / IGCSE / A-Level 答题卡照片,用视觉大模型自动识别 A/B/C/D 选项并与 Mark Scheme 比对出分。纯前端、零后端、密钥本地存储。
- 📸 多模态识别:上传答题卡 PDF 或多张照片,AI 逐页扫描提取每题的作答选项。
- 📋 三种标准答案来源:
- 上传官方 Mark Scheme PDF(自动用正则极速提取
1A 2B 3C...字母序列,失败则降级为图片送 AI); - 直接手动输入字母序列;
- 选择科目/年份/考季/Paper,通过你自己的代理自动下载官方 MS(可选)。
- 上传官方 Mark Scheme PDF(自动用正则极速提取
- ⚡ 逐页并发:多页答题卡并发请求,最后按题号合并、自动重排(处理跨页乱序)。
- 📊 结果报告:逐题展示「你的选项 / 标准答案 / 正误」,并给出总分。
- 🔐 隐私优先:不内置任何 API Key,你的密钥只保存在浏览器
localStorage,不经过任何服务器。
这是一个纯静态网站,无需构建、无需后端。
# 任选一种静态服务器
python -m http.server 8080
# 或
npx serve .然后浏览器打开 http://localhost:8080。
直接双击
index.html也能用,但部分浏览器对file://下的fetch有限制,推荐用本地服务器。
- 把本目录推送到 GitHub 仓库。
- 仓库 Settings → Pages → Source 选择主分支根目录。
- 访问生成的
https://<用户名>.github.io/<仓库名>/。
首次打开会自动弹出「API 配置」窗口(也可随时点右上角 配置 按钮)。本工具兼容任何 OpenAI 风格 的 /chat/completions 接口:
| 字段 | 说明 | 示例 |
|---|---|---|
| API Base URL | 接口根地址(不含 /chat/completions) |
https://api.openai.com/v1 |
| API Key | 你的密钥 | sk-... |
| 模型名称 | 需支持视觉(vision)的多模态模型 | gpt-4o |
可配置 两条线路(默认 + 备用),在主界面下拉切换。
⚠️ 模型要求:MCQ 批改依赖图片识别,请填写支持视觉输入的模型(如gpt-4o、gemini-1.5-pro等)。
浏览器存在跨域限制,无法直接抓取第三方题库站的 PDF。如果你想用「自动下载官方 MS」功能,需要自备一个 CORS 代理,并在配置里填入代理地址(程序会把目标 URL 进行 encodeURIComponent 后拼接在该地址末尾)。
仓库 proxy.example.php 提供了一个可自行部署的最小代理示例。不配置也不影响核心功能——手动上传 MS 即可。
- 原生 HTML / CSS / JavaScript,无框架。
- pdf.js — 浏览器端 PDF 渲染与文本提取。
- Font Awesome — 图标。
- 任意 OpenAI 兼容的多模态大模型接口。
ai-mcq-checker/
├── index.html # 页面结构
├── css/style.css # 全部样式
├── js/core.js # 纯逻辑(同构,浏览器+Node 共用)
├── js/config.js # API 配置管理 + 设置弹窗 + 直连调用
├── js/app.js # 批改主逻辑(DOM 绑定,调用 MCQCore)
├── tests/core.test.js # CLI 测试(node --test)
├── proxy.example.php # 可选的 PDF 下载代理示例
├── package.json
├── README.md
├── LICENSE
└── .gitignore
界面无关的纯逻辑抽到了同构模块 js/core.js(MCQCore),浏览器与 Node 共用同一份实现。命令行测试覆盖的就是 GUI 实际运行的逻辑,无需打开浏览器即可验证。
node --test # 或 npm test覆盖:MS 字母序列正则提取、官方 MS 下载 URL 拼装、%PDF 头校验、跨页结果合并与排序、得分统计等。
本工具的批改结果由 AI 自动生成,仅供参考与自测,不代表官方评分。请勿用于任何正式评分场景。考试资源版权归各考试局所有。