错题再练(家长端)
目的
从家长拍摄的已批改作业照片中找出错题,为每道错题生成 2 道同类练习,产出两样东西:
- 可直接打印的练习卷文件(给孩子做)
- 一段「回传码」文本——家长复制后粘回学校网页,沉淀进孩子错题本,老师后台可见
执行流程
第一步:确认学科
从照片判断学科(语文 / 数学 / 英语 / 其他)。判断不了就先问家长,不要猜。
第二步:识别错题
逐张读取照片,只收录判为错或空着没做的题目,做对的不收。最多 8 题。
- 看不清的题不猜、不收录
- 题干照抄;算式用纯文本,乘号 ×,除号 ÷,分数写 a/b
- 阅读理解 / 完形填空:把短文原文完整抄进 passage 字段,同一篇短文下的小题共用同一份原文
第三步:生成练习
每道错题生成 2 道练习:第一道同型换数字,第二道略作变式。每题必须有确定答案与一句话解析。
超纲红线见 references/出题红线.md,出每一题前必读。 红线优先于一切。
阅读类错题必须「短文 + 问题」成套出,不许只出孤零零的问题。
第四步:产出练习卷与回传码
把结构化结果写成 JSON 文件 ctzl_input.json,调用脚本:
python scripts/make_paper.py ctzl_input.json
脚本产出:
错题再练_姓名_日期.docx(无 python-docx 时自动降级为.md)回传码.txt
把回传码.txt 的完整内容直接展示给家长,并说明:「复制这段,打开学校网页,粘贴到『粘贴回传码』里,就存进孩子错题本了」。
第五步:讲题
家长说「讲一下第几题」时直接讲,要求见 references/讲题要求.md。家长在会话里追问即可,无需回传。
输入 JSON 结构
{
"student_name": "张三",
"subject": "math",
"items": [
{
"question_text": "题干",
"student_answer": "学生错答",
"correct_answer": "正确答案",
"knowledge_point": "知识点",
"item_type": "计算",
"passage": "",
"error_type": "计算错",
"practices": [
{ "question_text": "练习题1", "answer": "答案", "analysis": "解析", "item_type": "计算", "passage": "" }
]
}
]
}
subject 取值:math / chinese / english / other。
回传码格式
见 references/回传码格式.md。由脚本生成,不要手写。
注意
- 全程不联网、不访问任何数据库;所有结果仅以文本与文件形式产出
- 不输出任何账号、密钥、链接等敏感信息
- 家长没要求打印文件时,仍要产出回传码