服务教师。先保留学生原文,再做判断;先分清客观错误和整体评价,再给修改建议;长期记忆统一放在 .YunDuoReview-memory/。除非特别说明,本文件中的 scripts/ 和 references/ 路径都相对本 Skill 目录。
scripts/gemini_ocr.py 做 OCR,识别文字时尽量保留原始换行、段首空格、错别字、标点、涂改痕迹和无法确认的字。scripts/pdf_pages_to_images.py 将指定页转换为图片文件,再把生成的图片路径传给 scripts/gemini_ocr.py 做 OCR;页码按 PDF 阅读器显示的 1-based 页码理解。scripts/gemini_ocr.py 输出的 JSON:用 raw_text 作为学生原文,正文里的 【】 批注表示错别字、疑似 OCR 问题、疑似教师批注或无法确认内容;用 metadata 辅助确认班级、年级、姓名和题目,用 warnings 记录低清晰度、遮挡、裁切等整体提示。【疑似:...】,不要悄悄改成通顺文本。.YunDuoReview-memory/teacher-critic.md。如果不存在,按 references/teacher-critic-template.md 创建。.YunDuoReview-memory/student-writing-profile/{班级}/{姓名}.md。如果不存在,在教师确认保存后按 references/student-writing-profile-template.md 创建。references/rubric-g3-g4.md。references/rubric-g5-g6.md。references/rubric-g7-g9.md。references/output-format.md 输出批改结果。.YunDuoReview-memory/teacher-critic.md。.YunDuoReview-memory/student-writing-profile/{班级}/{姓名}.md。使用仓库内的这个结构:
.YunDuoReview-memory/
teacher-critic.md
student-writing-profile/
{班级}/
{学生姓名}.md
新建班级或学生路径时,中文班级名和学生姓名尽量保持可读。路径里不能出现的 / 等分隔符改成 -。
当用户提供图片、扫描版 PDF,或需要从手写作文图片中提取文字时,使用 scripts/gemini_ocr.py。脚本会输出 JSON,包含 raw_text、metadata 和 warnings;错别字、疑似 OCR 问题、疑似教师批注或无法确认内容会以内联 【】 批注写在 raw_text 中,后续批改必须基于这些字段继续处理。
首次使用或依赖缺失时,在本 Skill 目录内安装依赖:
python3 -m pip install -r requirements.txt
默认配置文件为 ~/.YunDuoReview/gemini_ocr.json,也可以通过环境变量 GEMINI_API_KEY、GEMINI_MODEL、GEMINI_OPENAI_BASE_URL 或命令行参数覆盖。如果缺少 API Key,不要伪造 OCR 结果,应提示教师补充配置或改用可提取文字的输入。
多张图片属于同一篇作文时,按作文页序传入:
python3 scripts/gemini_ocr.py --input 第1页.jpg 第2页.jpg --output /tmp/YunDuoReview-ocr.json
扫描版 PDF 未指定页码时,可以直接传入 PDF;默认最多处理前 20 页,可用 --page-limit 调整:
python3 scripts/gemini_ocr.py --input 作文.pdf --page-limit 6 --output /tmp/YunDuoReview-ocr.json
当用户给出 PDF 文件并指定只处理某一页或某几页时,先运行:
python3 scripts/pdf_pages_to_images.py 作文.pdf --pages 2,4-5 --out-dir /tmp/YunDuoReview-pages --json
脚本会把指定页渲染为图片,输出生成图片的绝对路径。随后将这些图片路径按页序传给 Gemini OCR:
python3 scripts/gemini_ocr.py --input /tmp/YunDuoReview-pages/作文_page_0002.png /tmp/YunDuoReview-pages/作文_page_0004.png /tmp/YunDuoReview-pages/作文_page_0005.png --output /tmp/YunDuoReview-ocr.json
pdf_pages_to_images.py 默认使用 300 DPI;如果图片过大,可用 --dpi 220 降低分辨率。脚本依赖 PyMuPDF(Python 包名 fitz),缺失时按脚本提示安装后再运行。
references/rubric-g3-g4.md:中低年级评价标准,重点看格式、正确性、句子通顺和是否切题。references/rubric-g5-g6.md:高年级小学评价标准,重点看结构、细节、选材和中心。references/rubric-g7-g9.md:初中评价标准,重点看立意、组织、论证/叙事推进和语言控制。references/output-format.md:批改输出结构和措辞约束。references/teacher-critic-template.md:教师批改记忆初始模板。references/student-writing-profile-template.md:学生写作画像初始模板。requirements.txt:Gemini OCR 和扫描版 PDF 处理所需 Python 依赖。scripts/gemini_ocr.py:用 Gemini 的 OpenAI 兼容接口识别图片或扫描版 PDF,输出可用于批改的 JSON。scripts/pdf_pages_to_images.py:将 PDF 的指定页码渲染为 PNG/JPEG 图片,供后续 OCR 使用。共 2 个版本