智能批改学生作业和试卷,支持多张图片一次性拖入处理,自动输出:
homework-checker/
├── SKILL.md # 本文件
├── scripts/
│ ├── batch_processor.py # 多图批处理(并发加速)
│ ├── generate_report.py # HTML报告生成器 v8.0
│ ├── annotate_math.py # 数学试卷标注 + 报告
│ ├── annotate_geo.py # 地理试卷标注 + 报告
│ ├── auto_check.py # 自动查找图片
│ └── homework_checker.py # 核心审核类
└── references/
├── 地理试卷标注说明.md
└── README.md
from scripts.annotate_geo import annotate
annotated = annotate("地理试卷.png")
支持三种输入方式:
from scripts.batch_processor import BatchProcessor
processor = BatchProcessor(output_dir="./output")
results = processor.process_batch(
["试卷1.png", "试卷2.png", "试卷3.png"],
subject='auto', # 自动检测科目
max_workers=4 # 并发数
)
from scripts.batch_processor import process_folder
summary = process_folder(
"./试卷文件夹/",
subject='地理', # 指定科目
output_dir="./output"
)
from scripts.batch_processor import process_multiple_images
results = process_multiple_images(['img1.jpg', 'img2.jpg'], subject='数学')
from scripts.generate_report import generate_html_report, generate_batch_report
# 方式A:传入列表(批量模式自动启用)
report_data_list = [
{"subject": "地理", "score": 12, "total_score": 12, ...},
{"subject": "数学", "score": 17, "total_score": 21, ...}
]
generate_html_report(report_data_list, "批量报告.html")
# 方式B:使用快捷函数
generate_batch_report(processor.results, "批量报告.html")
import sys, os
sys.path.insert(0, os.path.join(os.path.dirname(__file__), 'scripts'))
from batch_processor import BatchProcessor
from generate_report import generate_batch_report
# 1. 批量处理图片(并发加速)
processor = BatchProcessor(output_dir="./output")
results = processor.process_batch("./试卷文件夹/", subject='auto', max_workers=4)
# 2. 生成合并HTML报告
if results:
summary = processor.get_summary()
print(f"成功处理: {summary['success']}/{summary['total']}")
# 构建报告数据
report_items = []
for r in results:
if r['success']:
report_items.append({
"subject": r['subject'],
"score": 12, # 由AI识别填充
"total_score": 12,
"original_image": r['image'],
"annotated_image": r['annotated'],
"questions": [] # 由AI识别填充每道题
})
generate_batch_report(report_items, "./output/审核报告.html")
当用户上传图片时,按以下步骤执行:
```python
questions = [
{
'id': 4, # 题号
'title': '题目文字', # 题目简述
'answer': 'B', # 学生的答案(没写填"未作答")
'correct': 'B', # 正确答案
'status': 'correct', # correct=正确, wrong=错误/未作答
'points': 4, # 分值
'analysis': '解析说明...' # 详细解析
},
# ... 更多题目
]
```
```python
from scripts.generate_report import generate_html_report
generate_html_report(batch_data_list, "输出路径/审核报告.html")
```
| 规则 | 说明 |
|------|------|
| 必须生成HTML | 无论什么环境,最终必须输出可点击查看的HTML报告 |
| 空括号=错误 | 学生没填的题标记为 status: 'wrong',确保进入易错题库 |
| 仔细辨认字迹 | 必须逐题看图确认,不能凭印象判断 |
| 学科自动匹配 | subject字段包含"地理"/"数学"即可自动匹配对应巩固练习 |
| 文件 | 说明 |
|------|------|
| *_已批注.png | 带有 ✓/✗ 标记的试卷图片 |
| *_审核报告.html | 完整审核报告(多页) |
共 1 个版本