| name | shu-co-lab-report |
| description | 生成上海大学计算机学院《计算机组成原理实验》报告(.docx)。当用户提到"计算机组成原理实验报告"、"组成原理报告"、"上大组成原理"、"写实验报告"、"按模板写报告",或需要生成含固定五段式结构(实验目的/实验原理/实验内容/建议和体会/思考题)的实验报告时,使用此skill。即使用户只是说"帮我写实验报告"或"生成实验X报告",只要上下文涉及计算机组成原理课程,也应触发。 |
计算机组成原理实验报告生成 Skill
概述
为上海大学计算机学院生成《计算机组成原理实验》报告,严格遵循格式模板的五段式结构。
输入收集
生成报告前,需要从用户处获取以下信息。如果用户已提供部分内容,只追问缺失项。
必须提供:
- 实验序号(数字,如 9、10、11)
- 实验名称(从PPT或实验指导书获取)
- PPT 文件路径(用于提取"实验原理")
- 学生姓名、学号
可选(有默认值):
- 时间、机位、指导教师
- 实验原理提取模式:text(默认)/ images / mixed
- PPT 中实验原理对应的幻灯片范围(如 "3-8")
需要用户撰写的内容(实验原理除外):
- 一、实验目的 — 列出 2-4 条学习目标
- 三、实验内容 — 每个任务的步骤、现象、数据分析、结论
- 四、建议和体会 — 1-3 条体会
- 五、思考题 — 题目与回答(无则写"无")
工作流
Step 1:提取实验原理
从用户指定的 PPT 文件中提取"实验原理"部分。
运行提取脚本:
python scripts/extract_principle_from_ppt.py \
--ppt "<PPT文件路径>" \
--mode text \
--slide-ranges "<范围,如3-8>" \
--output /tmp/principle_data.json
--mode text:提取文字(默认,适合文字为主的PPT)
--mode images:PPT转图片嵌入(适合含大量图示的PPT)
--mode mixed:优先文字,缺图时用截图
提取结果保存为 JSON,后续由生成脚本读取。
Step 2:组装输入 JSON
将所有报告数据组装成一个 JSON 文件(示例结构见下文),供生成脚本读取。
Step 3:生成 .docx
python scripts/generate_report.py \
--input /tmp/report_data.json \
--output "<输出路径>"
默认输出路径:24122233翟博豪实验<X>.docx,保存在实验文件夹下。
Step 4:验证
检查生成的 .docx 是否包含:
- 完整标题块(校名、报告号、学生信息、实验名称)
- 五个一级标题(一~五)
- 实验内容下每个任务的四小节齐全
- 无空必填字段
输入 JSON 结构
{
"lab_number": 9,
"experiment_name": "程序转移机制",
"student_name": "翟博豪",
"student_id": "24122233",
"time_slot": "",
"seat": "",
"teacher": "",
"principle_mode": "text",
"section_1_purposes": [
"理解程序转移的概念和分类",
"掌握实验箱程序转移的硬件实现机制"
],
"section_2_principle": {
"mode": "text",
"source": "/path/to/ppt",
"slides": [
{"slide": 3, "text": "1. 程序转移\n程序转移是指..."},
{"slide": 4, "text": "2. 实验箱系统的程序转移硬件机制\n..."}
]
},
"section_3_tasks": [
{
"title": "无条件转移实验",
"steps": "1. 设置K23~K0=000000000000000000000001\n2. 按STEP键...",
"phenomena": "观察到OUT显示值为0001H",
"data_analysis": "",
"conclusion": "成功实现了无条件转移操作。",
"images": []
}
],
"section_4_suggestions": [
"课前要结合PPT和实验参考书做好预习"
],
"section_5_questions": [
{"question": "思考题内容", "answer": "回答内容"}
]
}
实验原理的特殊处理
"实验原理"是唯一不需要用户自己写的部分。它直接来自PPT:
- 默认方式(text):从PPT提取文本,保持原文不改动。提取后直接填入报告,不需要用户修改。
- 截图方式(images):将PPT页面转为图片嵌入报告。当PPT含大量电路图、时序图等难以用文字表达的内容时使用。
- 混合方式(mixed):文字页面用文本提取,图示页面用截图。
选择建议:如果PPT以文字为主用 text,以图为主用 images,不确定时用 mixed。
格式规则要点
详细规则见 references/format_rules.md,核心要点:
- 标题块:上海大学 计算机学院 → 报告[中文数字] → 学生信息 → 实验名称
- 五大固定章节顺序:实验目的 → 实验原理 → 实验内容 → 建议和体会 → 思考题
- 编号:一级标题用"一、二、三、",任务用"1.2.",子项用"1. 2."
- 实验内容每个任务固定四小节:实验步骤、实验现象、数据记录分析与处理、实验结论
- 实验结论格式:以"成功"开头的单句总结
依赖
python-docx:生成 .docx
python-pptx:从 .pptx 提取文本
LibreOffice (soffice):转换 .ppt → .pptx / .pdf
pdftoppm (poppler):PDF 转图片(截图模式需要)
如果缺少依赖,提示用户安装:
pip install python-docx python-pptx
brew install libreoffice poppler