Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AI MCQ Checker · 视觉大模型选择题批改机

上传 CAIE / IGCSE / A-Level 答题卡照片,用视觉大模型自动识别 A/B/C/D 选项并与 Mark Scheme 比对出分。纯前端、零后端、密钥本地存储。

status license stack

✨ 功能特性

  • 📸 多模态识别:上传答题卡 PDF 或多张照片,AI 逐页扫描提取每题的作答选项。
  • 📋 三种标准答案来源
    • 上传官方 Mark Scheme PDF(自动用正则极速提取 1A 2B 3C... 字母序列,失败则降级为图片送 AI);
    • 直接手动输入字母序列;
    • 选择科目/年份/考季/Paper,通过你自己的代理自动下载官方 MS(可选)。
  • 逐页并发:多页答题卡并发请求,最后按题号合并、自动重排(处理跨页乱序)。
  • 📊 结果报告:逐题展示「你的选项 / 标准答案 / 正误」,并给出总分。
  • 🔐 隐私优先:不内置任何 API Key,你的密钥只保存在浏览器 localStorage,不经过任何服务器。

🚀 快速开始

这是一个纯静态网站,无需构建、无需后端。

本地运行

# 任选一种静态服务器
python -m http.server 8080
#
npx serve .

然后浏览器打开 http://localhost:8080

直接双击 index.html 也能用,但部分浏览器对 file:// 下的 fetch 有限制,推荐用本地服务器。

部署到 GitHub Pages

  1. 把本目录推送到 GitHub 仓库。
  2. 仓库 Settings → Pages → Source 选择主分支根目录。
  3. 访问生成的 https://<用户名>.github.io/<仓库名>/

⚙️ 配置 AI 接口

首次打开会自动弹出「API 配置」窗口(也可随时点右上角 配置 按钮)。本工具兼容任何 OpenAI 风格/chat/completions 接口:

字段 说明 示例
API Base URL 接口根地址(不含 /chat/completions https://api.openai.com/v1
API Key 你的密钥 sk-...
模型名称 需支持视觉(vision)的多模态模型 gpt-4o

可配置 两条线路(默认 + 备用),在主界面下拉切换。

⚠️ 模型要求:MCQ 批改依赖图片识别,请填写支持视觉输入的模型(如 gpt-4ogemini-1.5-pro 等)。

关于「PDF 下载代理」(可选)

浏览器存在跨域限制,无法直接抓取第三方题库站的 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

🧪 测试与架构(CLI = GUI)

界面无关的纯逻辑抽到了同构模块 js/core.jsMCQCore),浏览器与 Node 共用同一份实现。命令行测试覆盖的就是 GUI 实际运行的逻辑,无需打开浏览器即可验证。

node --test        # 或 npm test

覆盖:MS 字母序列正则提取、官方 MS 下载 URL 拼装、%PDF 头校验、跨页结果合并与排序、得分统计等。

⚠️ 免责声明

本工具的批改结果由 AI 自动生成,仅供参考与自测,不代表官方评分。请勿用于任何正式评分场景。考试资源版权归各考试局所有。

📄 License

MIT

About

Static AI multiple-choice answer sheet checker using OpenAI-compatible vision APIs

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages