用SOLO搭建了试卷题目查重系统(本地+AI 搭配RAG 双模式)

上传往年试卷自动拆题入库,输入文本或上传新卷查重,避免重复出题。

项目链接

功能

  • 上传试卷入库 - 上传 .docx 文件,自动识别题号、拆分题目入库

  • 文本查重 - 输入题目文本,与题库比对相似度

  • 文件查重 - 上传新试卷,自动拆题后逐一查重

  • 题库管理 - 查看/删除已入库试卷,支持搜索

两种模式

模式 文档解析 相似度 依赖
本地模式 python-docx TF-IDF + 余弦相似度 无需API
AI模式 MinerU API Embedding + Reranking 需要API key

通过 config.json 切换,未配置API自动降级为本地模式。

快速开始

pip install -r requirements.txt
python app.py

浏览器打开 http://localhost:5000

配置AI模式

编辑 config.json,填入API key:

{
  "mode": "auto",
  "apis": {
    "mineru": { "api_key": "your-key", "endpoint": "your-endpoint" },
    "embedding": { "api_key": "your-key", "endpoint": "your-endpoint", "model": "your-model" },
    "reranking": { "api_key": "your-key", "endpoint": "your-endpoint", "model": "your-model" }
  }
}

项目结构

├── app.py              # Flask主应用
├── config.py           # 配置加载
├── config.json         # API配置
├── models.py           # SQLite数据模型
├── doc_parser/         # 文档解析(本地/AI双模式)
├── similarity/         # 相似度引擎(TF-IDF/RAG双模式)
├── templates/          # HTML模板
└── static/             # CSS样式