Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

ruomuo/GraderFlow

Open more actions menu

Repository files navigation

GraderFlow 智能阅卷系统

项目简介

GraderFlow 是一个面向学校、培训机构和考试场景的桌面端智能阅卷系统,基于 Python + PySide6 + OpenCV + YOLOv5 + LLM 构建,支持客观题识别、主观题 AI 评分、条形码识别、阅卷痕迹留存、报告联动预览和智能助手配置。

系统支持 3 天全功能试用,试用结束后可通过激活码完成授权,适合本地交付和独立部署。

最新能力

  • 支持左侧导航式工作台,覆盖 阅卷中心阅卷痕迹阅卷报告数据统计参数设置
  • 支持客观题与主观题混合阅卷,形成从配置到识别到导出的完整闭环。
  • 支持 AI 助手通过文字或图片自动生成客观题和主观题答案配置,并一键应用到系统。
  • 支持 AI 助手流式输出与模型思考展示,提升配置过程的可解释性。
  • 支持 API Key、API 地址、模型名称持久化保存,重启后自动加载,并可在界面内测试连接。
  • 支持条形码识别,将识别结果写入学号或准考证号字段。
  • 支持阅卷痕迹与报告文件自动归档,并在界面中联动预览。
  • 支持开发环境与打包环境的相对路径适配,提升跨电脑交付稳定性。

典型场景

  • 批量扫描答题卡后,系统自动完成客观题识别与成绩汇总。
  • 对包含主观题的试卷,系统基于标准答案与提示词调用大模型进行评分。
  • 对新试卷或新题型,老师可直接通过 AI 助手输入自然语言或上传图片,自动生成答案配置。
  • 阅卷完成后,可查看阅卷痕迹、批改报告、统计信息,并导出 Excel 成绩单。

核心功能

客观题识别

  • 基于 OMR 流程识别答题卡填涂区域。
  • 支持单选题、多选题答案配置。
  • 支持题列布局配置、题组大小配置和 A/B 识别模式切换。
  • 支持标准评分与部分扣分等客观题评分规则。
  • 支持按 题号:答案:分值:选项个数 格式读取答案配置。

主观题 AI 评分

  • 支持主观题题号、总分、参考答案、用户提示词配置。
  • 支持调用兼容 OpenAI 格式接口的大模型完成评分。
  • 支持主观题报告生成与归档。
  • 支持按需开启或关闭主观题评分流程。

条形码与学生信息识别

  • 支持学生信息识别开关。
  • 支持条形码识别开关。
  • 支持 pyzbar 与图像回退策略结合的条形码识别流程。
  • 条形码识别结果可作为学号或准考证号字段使用。

AI 助手配置

  • 支持通过对话生成客观题配置块和主观题配置块。
  • 支持上传试卷图片辅助解析配置。
  • 支持流式输出,边生成边展示。
  • 支持模型思考内容显示,并在正式回答出现后收起思考区。
  • 支持一键应用客观题配置和主观题配置。
  • 支持配置应用后即时刷新到系统配置界面。
  • 支持 API Key、API 地址、模型名称的保存、自动回填和连接测试。

阅卷痕迹与报告联动

  • 自动归档 read 目录中的阅卷痕迹文件。
  • 自动归档 reports 目录中的文本报告和图片报告。
  • 支持结果表与痕迹文件、报告文件联动。
  • 支持文本预览和图片预览双模式切换。
  • 在匹配不到目标文件时支持回退展示,避免联动区空白。

统计与导出

  • 支持查看 readreports 目录下的文件数量、体积和时间信息。
  • 支持在统计页浏览文件清单并直接预览。
  • 支持导出成绩到 ExcelCSV
  • 支持批量阅卷结果汇总展示。

界面工作流

  1. 参数设置 中配置答案、主观题、识别模式与 API 信息。
  2. 阅卷中心 选择单张图片或批量文件夹。
  3. 点击开始识别,系统执行客观题识别、主观题评分和学生信息提取。
  4. 在结果表查看每份试卷的识别结果、主观题分数和总分。
  5. 阅卷痕迹阅卷报告 页面复核每份试卷的处理结果。
  6. 数据统计 页面查看文件总量、体积与归档情况。
  7. 按需导出成绩或继续通过 AI 助手调整配置。

AI 助手说明

适合的使用方式

  • 直接输入题目答案,例如单选题、多选题和主观题采分点。
  • 上传标准答案图片或试卷截图,让模型辅助整理配置。
  • 让模型帮助生成符合系统格式的客观题配置和主观题配置。

输出规则

  • 客观题会输出 objective 代码块,格式为 题号:答案:分值:选项个数
  • 主观题会输出 subjective 代码块,格式为题头加采分点。
  • 用户点击应用后,系统会把配置写入 config/answer_config/ 下对应文件并回刷界面。

配置要求

  • 支持兼容 OpenAI 格式的接口。
  • 支持自定义 API KeyBase URL 和模型名称。
  • 支持在设置页点击“测试连接”验证配置是否有效。
  • 保存后的配置会写入 config/config.json,重启后自动加载。

阅卷留痕说明

留痕内容

  • 原始试卷图。
  • 标注后的识别图。
  • 识别过程记录。
  • 结果摘要信息。

使用价值

  • 方便老师复核识别过程与识别结果。
  • 方便定位异常试卷、漏识别和误识别问题。
  • 方便在售后交付和问题排查中快速复现现场。

项目结构

GraderFlow/
├── config/                     # 配置文件、答案文件、权重文件
├── core/
│   ├── data/                   # 数据模型
│   ├── omr/                    # 客观题识别与阅卷主流程
│   ├── subjective/             # 主观题评分与大模型调用
│   └── llm_agent.py            # 智能助手核心逻辑
├── interface/
│   ├── dialogs/                # 激活、智能助手等对话组件
│   └── main_window.py          # 主界面与工作台
├── utils/                      # 配置管理、路径管理、导出等工具
├── test_script/                # 调试和验证脚本
├── main.py                     # 程序入口
├── build_onefile.ps1           # 单文件打包脚本
└── README.md

技术架构

+-----------+      +------------------------+      +-----------------------+
|  main.py  | ---> | interface.main_window  | <--> | utils.config_manager  |
+-----------+      +------------------------+      +-----------------------+
      |                        |                               |
      v                        v                               v
+-------------------+   +--------------------+        +--------------------+
| core.omr.processor|   | SmartAgentDialog   |        | path_utils/export  |
+-------------------+   +--------------------+        +--------------------+
      |                        |                               |
      v                        v                               v
+-------------------+   +--------------------+        +--------------------+
| detector/recognizer|  | core.llm_agent     |        | config files       |
+-------------------+   +--------------------+        +--------------------+
      |
      v
+-------------------+
| subjective grader |
+-------------------+

快速开始

1. 安装依赖

pip install -r requirements.txt

2. 启动程序

python main.py

3. 推荐运行环境

  • Python 3.8+
  • Windows
  • 已安装 PySide6OpenCVPyTorchOpenAI 等依赖
  • 如果使用条形码识别,需确保 pyzbar 及其依赖动态库可用

配置说明

主配置文件

  • 文件位置:config/config.json
  • 主要字段:
  • objective_answer_path:客观题答案文件路径
  • subjective_answer_path:主观题答案文件路径
  • api_key:大模型接口密钥
  • api_base_url:接口地址
  • model_name:当前模型名
  • recognition.mode:A/B 识别模式
  • recognition.layout:题列布局
  • recognition.group_size:每图题组大小
  • enable_barcode:是否启用条形码识别

答案配置文件

  • config/answer_config/objective_answer.txt
  • config/answer_config/subjective_answer.txt

客观题格式示例

1:A:1.0:4
2:BC:1.0:4
3:ABCD:2.0:4

主观题格式示例

21题(10分)
(1)叶绿体(+3)
(2)光合作用(+2)

打包与交付

  • 项目支持通过 PyInstaller 打包为 Windows 可执行程序。
  • 当前仓库包含 build_onefile.ps1,用于单文件打包场景。
  • 项目已处理相对路径、答案文件路径和大部分配置持久化问题,适合本地交付。
  • 若启用条形码识别,打包时需确保 pyzbar 相关动态库被正确收集。

主要依赖

  • PySide6
  • OpenCV
  • PyTorch
  • OpenAI
  • Pandas
  • OpenPyXL
  • Flask
  • Cryptography
  • pyzbar

部署说明

  • 支持试用期与激活机制。
  • 支持本地独立部署与离线交付。
  • 当前版本已完成多轮业务迭代,具备真实教育场景落地能力。

后续规划

  • 优化自动更新与版本检测能力。
  • 继续提升打包体积和单文件交付体验。
  • 继续扩展 AI 助手在答案整理、异常解释和配置审查场景中的能力。

About

本系统专为教育机构及考试场景设计,融合计算机视觉与AI技术,实现全流程自动化阅卷。支持扫描、拍照等多种方式录入答题卡,通过智能识别技术批量处理学生姓名、考号及填涂答案,识别准确率达99%以上。系统采用多模态大模型,既能自动批改客观题(支持自定义分值和答案模板),也可对主观题进行语义分析与分项评分。提供实时进度跟踪、错题统计、成绩一键导出(Excel/CSV)等功能,并开放API接口适配个性化需求。内置可视化配置面板,支持灵活调整评分规则与AI模型参数,配备密钥管理系统保障数据安全。

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages

Morty Proxy This is a proxified and sanitized view of the page, visit original site.