feat: 第16课课评完成(31人)+ 补全AICODE03周五1700班级总结 + 补课学生课评 + OJ数据

This commit is contained in:
chengzi
2026-06-23 13:10:02 +08:00
parent 7dd9c1dced
commit d093831f74
102 changed files with 3211 additions and 551 deletions

View File

@@ -13,50 +13,166 @@ type: skill
✅ 自动匹配班级专属风格AICODE03温暖鼓励型/K4温和鼓励型/CSP03要求型/体验课转化型
**CSP班级必须查询OJ做题数据**自动调用API获取A包答题情况
## 💡 使用方式(超简单)
你只需要提供以下信息:
## 💡 使用方式
### 方式一:交互式问答(推荐)
输入 `/课评生成`,我会使用**选择题**的方式问你所有问题:
```
学生姓名_______
班级_______
课程名称_______
课次第_______课
日期YYYY-MM-DD
表现描述_______越具体越好比如"掌握了循环嵌套主动调试bug专注力比上节课好"
📝 问题1课堂录音文件路径是什么.docx格式
- [ ] 稍后提供
- [ ] 还没有录音
📝 问题2这是哪个班级的课
- [ ] AICODE03橙子周六1900需要作品文件夹
- [ ] AICODE03橙子周日0845
- [ ] AICODE03橙子周日1400
- [ ] CSP03橙子周六0830需要OJ数据
- [ ] CSP03橙子周六1400
- [ ] CSP03橙子周日1030
- [ ] K4橙子周五1900
- [ ] K4橙子周日1900
📝 问题3这是第几课题目是什么
- [ ] 稍后提供
- [ ] 还不确定
📝 问题4作品文件夹路径仅AICODE班需要
- [ ] 稍后提供
- [ ] 不需要CSP/K4班
```
我会自动完成剩下的所有工作:
1. 读取学生画像、班级风格指南、本节课教案
2. **CSP班级必须先调用OJ API查询该学生的A包做题数据**
3. 生成约200字的个性化课评CSP课评必须包含OJ数据板块
你选择或填写完所有问题,我就会自动完成整个课评生成流程!
### 方式二:直接提供信息
如果你已经知道所有信息,可以直接告诉我:
```
课堂录音文件第11课录音转写.docx
班级AICODE03橙子周六1900
课次第11课
题目《AI训练师》
出勤:来了陈嘉博、王子墨,请假谭俊研
作品文件夹D:\作品\第11课
```
---
## 📂 从笔记文件批量生成课评(推荐工作流)
## 🔄 自动完成的工作
橙子平时在 `E:\cc\3笔记\第N课.md` 中记录学生出勤和简短课评,写完后提供文件路径给我,我会自动完成以下流程
你提供信息后,我会自动完成:
### 第1阶段课评准备
1. 获取API出勤数据
2. 使用python-docx读取录音转写文件
3. AI分析录音文本识别"发言人1,2,3"对应的学生
4. **AICODE班**:查看作品文件夹,分析每个学生作品的创意和亮点
5. 读取课程计划获取5个知识点
6. 读取每个学生的画像
7. **CSP班**调用OJ API查询A包做题数据
### 第2阶段课评生成
1. 读取班级风格指南
2. 为每个学生生成个性化课评约200字
- 引用录音中的具体例子
- **AICODE班**:描述作品创意和亮点
- **CSP班**包含OJ做题数据
3. 生成班级总结
4. 展示给你确认
### 第3阶段课评收尾
1. 课评质检CSP班调用证据审计员
2. 丰富度评分(告诉你每个学生的分数)
3. 保存归档(个人课评 + 周汇总 + 班级总结)
4. 更新学生画像
5. 输出完成报告
---
## 📂 从课堂录音批量生成课评(推荐工作流)
橙子提供课堂录音转写文件(`.docx`格式),文件路径会直接告诉我,我会自动完成以下流程:
### 🤖 交互式问答流程
当橙子输入 `/课评生成` 时,使用 **AskUserQuestion** 工具一次性问完所有问题:
**第1轮收集基本信息**
- 问题1录音文件路径文本输入
- 问题2班级单选AICODE03/CSP03/K4的各个时间段
- 问题3课次和题目文本输入
- 问题4出勤情况单选全部到齐/有人请假)
**第2轮根据班级类型追问**
- 如果是AICODE班追问作品文件夹路径
- 如果是CSP班无需追问OJ数据自动获取
- 如果是K4班无需追问
**收集完成后**自动调用三个阶段的agent完成课评生成。
### 🔄 智能体流水线模式
课评生成已拆分为3个独立智能体按流水线方式协作完成
```
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ 课评准备阶段 │ ──→ │ 课评生成阶段 │ ──→ │ 课评收尾阶段 │
│ (Agent 1) │ │ (Agent 2) │ │ (Agent 3) │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│ │ │
▼ ▼ ▼
收集所有数据 生成课评内容 质检+保存+归档
• API授课数据 • 读取风格指南 • 课评质检
• 录音解析(AI分析) • 读取课评模板 • 保存课评
• 课程计划匹配 • 生成个人课评 • 保存班级总结
• 学生画像读取 • 生成班级总结 • 更新学生画像
• OJ数据获取 • 质量自检 • 更新学生画像
```
**优势**
- 每个阶段职责清晰,便于调试和优化
- 可以单独重跑某个阶段(如只重跑质检)
- 阶段间数据传递标准化,减少错误
---
### 输入文件格式
橙子提供的笔记文件格式如下(示例):
```markdown
# 课评记录表 — 2026年05月14日周三
橙子提供的课堂录音转写文件为 `.docx` 格式,包含整节课的完整录音转写文本。
### AICODE03橙子周六1900
| 姓名 | 出勤状况 | 课评 |
|------|----------|------|
| 陈嘉博 | 正常上课 | 表现积极,掌握了循环嵌套 |
| 王子墨 | 请假 | |
**录音转写文件特点**
- 自由文本格式,包含老师和学生的对话
- 只有"发言人1"、"发言人2"、"发言人3"这样的标识,没有具体姓名
- 可能包含时间戳(如"[00:05:30]"
- 内容为整节课的完整记录需要AI分析识别发言人
**示例内容**
```
[00:00:15] 发言人1同学们今天我们来学习循环嵌套...
[00:02:30] 发言人2老师我有个问题...
[00:05:45] 发言人1问得很好大家注意看...
[00:10:20] 发言人3老师我这个程序运行不出来...
```
**AI识别说明**
- 发言人1通常是老师讲解知识、提问、点评
- 发言人2、3等通常是学生回答问题、提问、讨论
- 需要根据对话内容判断每个发言人对应的学生
**Word文档格式**
- 同样包含表格,记录学生姓名、出勤状况和课评描述
- 使用 `python-docx` 库自动读取,无需手动转换
### 工作流程
```
获取API出勤数据 → 读取笔记 → 匹配课程计划 → 读取学生画像 → 润色生成 → 确认修改 → 课评质检 → 保存
获取API授课数据 → 读取录音转写(docx) → AI分析识别发言人 → 获取课程知识点 → 读取学生画像 → 润色生成 → 确认修改 → 课评质检 → 保存
```
### 0. 获取API出勤数据(必须第一步执行)
### 0. 获取API授课数据(必须第一步执行)
**⚠️ 这是强制步骤,必须在读取笔记之前执行!**
在开始处理任何课评之前,**必须先调用公司API获取橙子老师近期的出勤数据**,用于:
在开始处理任何课评之前,**必须先调用公司API获取橙子老师近期的授课数据**,用于:
1. 确认橙子老师实际带了哪些班级
2. 获取每个班级的**真实授课日期**`teaching_date`),用于课评文件名
@@ -132,14 +248,60 @@ for r in results:
| CSP03... | CSP03橙子周六0830 / CSP03橙子周六1400 / CSP03橙子周日1030 | class_name含"CSP03" + time判断 |
| KITTEN04... | K4橙子周五1900 / K4橙子周日1900 | class_name含"KITTEN04" + time判断 |
### 1. 读取笔记文件
解析 `E:\cc\3笔记\第N课.md`
- 从文件名提取**课次**(如"第11课"
- 从**API获取的teaching_date**确定日期(不使用笔记文件头的日期)
- 按班级区块解析,提取每个学生:
- 姓名、出勤状况、课评描述(用户写的简短描述)
### 1. 读取课堂录音转写文件
解析用户提供的课堂录音转写文件(`.docx` 格式)
> **日期规则**:笔记批量流程中,所有日期(文件名 `YYYYMMDD`、授课日期)**统一以API返回的teaching_date为准**,不使用笔记文件头中的日期。
**使用python-docx库读取**
```python
from docx import Document
def read_recording_docx(file_path):
"""读取课堂录音转写的docx文件"""
doc = Document(file_path)
content = []
for para in doc.paragraphs:
text = para.text.strip()
if text:
content.append(text)
return '\n'.join(content)
# 使用示例
file_path = r"课堂录音转写文件路径" # 例如第15课录音转写.docx
recording_text = read_recording_docx(file_path)
```
**录音文本特点**
- 整节课的完整录音转写,包含老师和学生的对话
- 可能包含时间戳(如"[00:05:30]"
- 可能包含说话人标识(如"老师:"、"学生:"
- 内容为自由文本,不是结构化的表格
**AI分析提取学生表现**
由于录音是自由文本格式需要使用AI分析提取每个学生的表现信息
```python
# 分析提示词
analysis_prompt = f"""
分析以下课堂录音转写文本,提取每个学生的表现信息。
班级学生名单:{student_list}
请为每个学生提供:
1. 出勤状况:正常上课 / 请假 / 未到
2. 课堂表现摘要100-200字
- 参与度如何
- 哪些知识点掌握得好
- 遇到什么问题
- 有什么亮点表现
录音文本:
{recording_text}
请以JSON格式输出。
"""
```
> **日期规则**:批量流程中,所有日期(文件名 `YYYYMMDD`、授课日期)**统一以API返回的teaching_date为准**,不使用录音文件中的日期。
### 2. 匹配课程计划
根据班级标题中的关键词匹配对应课程计划:
@@ -161,28 +323,28 @@ for r in results:
**路径**`.claude/memory/class/[班级]/[姓名]/profile.md`
### 4. 润色生成课评
笔记中列出的**每一个学生**,根据出勤状况处理,确保每个人都有对应记录:
录音中提取的**每一个学生**,根据出勤状况处理,确保每个人都有对应记录:
| 出勤状况 | 处理方式 | 保存位置 |
|---|---|---|
| 正常上课 | 读取画像 + 润色课评描述 → 生成完整课评 | 本班学生feedback目录 |
| 正常上课 | 读取画像 + 润色表现摘要 → 生成完整课评 | 本班学生feedback目录 |
| 请假 | 生成请假记录 | 本班学生feedback目录 |
| 未上课 | 生成未到课记录 | 本班学生feedback目录 |
| 补课-来自XX班 | 读取画像 + 润色课评描述 → 生成完整课评 | **补课班级**的`补课/[姓名]/feedback/`目录 |
| 补课-来自XX班 | 读取画像 + 润色表现摘要 → 生成完整课评 | **补课班级**的`补课/[姓名]/feedback/`目录 |
**润色规则**(对正常上课和补课学生):
- 保留用户描述中的所有事实(不能遗漏任何信息)
- 保留录音中提取的所有事实(不能遗漏任何信息)
- 根据学生画像调整语气和侧重(如内向学生多鼓励,活泼学生提专注)
- 套用对应班级的固定开头5个知识点和结尾风格
-简短描述扩展为约200字的完整家长信格式课评
- **绝不编造**用户没有提到的内容
-100-200字的表现摘要扩展为约200字的完整家长信格式课评
- **绝不编造**录音中没有提到的内容
**⚠️ CSP班级专属必须执行**
对每个CSP学生**在生成课评之前**必须先查询OJ做题数据
```bash
python scripts/update_feedback_with_oj.py \
--course CSP03-<课次编号> \
--get-student-oj "<学生姓名>"
python scripts/get_student_oj.py \
--homework-id <作业ID> \
--student "<学生姓名>"
```
将返回的OJ数据Markdown拼接到课评内容中。**没有OJ数据的CSP课评是不完整的**
@@ -202,11 +364,11 @@ python scripts/update_feedback_with_oj.py \
```
### 6. 生成班级总结(所有班级)
笔记中列出的**每一个班级**都会生成本节课的班级总结,不局限于特定班级:
录音中提取的**每一个班级**都会生成本节课的班级总结,不局限于特定班级:
**内容来源**
- 课程名称 + 5个知识点来自课程计划
- 该班级所有学生的整体表现(基于笔记中课评描述汇总)
- 该班级所有学生的整体表现(基于录音中提取的表现摘要汇总)
- 亮点学生、共性问题、课堂趣事
**保存路径**`.claude/memory/class/[班级]/summaries/YYYYMMDD_课程编号-课次_班级反馈.md`
@@ -267,6 +429,34 @@ python scripts/update_feedback_with_oj.py \
- 如果质检通过(直接发送):自动执行保存操作
- 如果质检发现问题:展示给橙子,橙子确认后再保存
**⚠️ CSP课评质检优先使用 Agents 系统**
CSP课评必须使用 `.claude/agents/` 目录下的质检Agent系统进行质检该系统包含
| Agent | 路径 | 功能 |
|-------|------|------|
| **课评质检调度器** | `.claude/agents/课评质检调度器/agent.md` | 协调9个质检Agent的工作流程 |
| **课评证据审计员** | `.claude/agents/课评证据审计员/agent.md` | 事实核对OJ数据、知识点等 |
| **课评质量评审员** | `.claude/agents/课评质量评审员/agent.md` | 100分制评分 + 硬伤检查 |
| **课评终稿编辑** | `.claude/agents/课评终稿编辑/agent.md` | 根据反馈生成修订稿 |
| **家长-忙碌实用型** | `.claude/agents/家长-忙碌实用型/agent.md` | 快速扫读体验 |
| **家长-结果导向型** | `.claude/agents/家长-结果导向型/agent.md` | 信息缺口检查 |
| **家长-细节核对型** | `.claude/agents/家长-细节核对型/agent.md` | 文内一致性检查 |
| **家长-焦虑保护型** | `.claude/agents/家长-焦虑保护型/agent.md` | 情绪风险检查 |
| **家长-成长陪伴型** | `.claude/agents/家长-成长陪伴型/agent.md` | 成长性反馈 |
**CSP质检执行方式**
```
调用 课评质检调度器 → 调度器自动协调9个Agent → 输出质检报告 + 修订稿
```
**核心原则**来自Agents系统
1. **事实以证据审计员为准**:家长视角的数字意见一律忽略
2. **不做学生横向比较**:揪出"最高/最快/分水岭/紧随XX"等比较词
3. **术语家长能懂**OLE/CE/WA/SJF/AC这类缩写要解释或换成白话
4. **结合学生性格**:完美主义型先肯定韧性再谈方法;佛系型正向收尾不施压
5. **老师是最终决策者**:给建议和修订稿,老师决定用不用
### 9. 保存归档
橙子最终确认后,执行以下保存操作:
@@ -303,9 +493,70 @@ python scripts/update_feedback_with_oj.py \
---
## 📊 课评质量评分标准(生成时必须遵循)
> 总分 100 分 = 规范性50 分) + 丰富度50 分)
> **生成课评时必须按照此标准自检,确保每条课评都达到高质量要求!**
### 一、规范性(自动检测,合计 50 分)
| 评分项目 | 分值 | 满分判定规则 | 扣分规则 |
|----------|------|--------------|----------|
| **字数合规** | 10 | 正文字数区间180350 字 | 超出 / 低于区间按梯度扣分 |
| **禁用词检查** | 10 | 全文无禁用词汇 | 每出现 1 个禁用词扣 2 分,扣完本项为止 |
| **结构完整性** | 10 | 评语必须包含三要素:知识点总结 + 学情反馈 + 教师签名 | 缺任一要素酌情扣分 |
| **Emoji 使用** | 10 | 全篇使用数量 35 个 | 过少 / 过多酌情扣分 |
| **称呼规范** | 10 | 使用学生小名、或去掉姓氏直呼名字 | 称呼格式不规范扣分 |
**禁用词清单**(生成时必须避免):
- 笼统空泛词:表现不错、继续努力、很好、很棒(无具体细节时)
- 敷衍词:还可以、一般、还行
- 批评词:太差、不认真、不用心、态度有问题
**自检要点**
- ✅ 字数课评正文不含知识点和OJ数据在 180350 字之间
- ✅ 禁用词:不使用上述禁用词,用具体描述代替笼统评价
- ✅ 结构:必须有知识点总结(固定开头)+ 学情反馈(主体)+ 教师签名(结尾)
- ✅ Emoji全篇 35 个,分布在夸奖、建议、结尾等位置
- ✅ 称呼:三字姓名去掉姓氏(如"陈圆振"→"圆振"),两字姓名直呼名字
### 二、丰富度AI 语义分析,合计 50 分)
| 评分项目 | 分值 | 高分评判标准 |
|----------|------|--------------|
| **具体化程度** | 15 | 评语包含具体行为细节,描述有画面感,不笼统空泛 |
| **课后建议质量** | 15 | 给出可落地、可执行的个性化课后练习 / 提升方案,不是套话建议 |
| **个性化纵向对比** | 10 | 结合学生过往学情画像,对比本次表现,体现进步 / 退步追踪 |
| **专业知识点体现** | 10 | 紧扣课程核心知识点点评,体现授课专业度,不泛泛闲聊 |
**丰富度提升技巧**
**具体化程度15分**
- ❌ "嘉博今天表现不错"笼统0分
- ✅ "嘉博今天自己一字一字打字和AI聊了一节课特别专注"具体行为15分
- ✅ "嘉博今天主动问老师'内层循环每执行完一次,外层循环的变量会变吗?',说明在认真思考"引用原话15分
- 技巧:引用学生在录音中的原话,或描述具体行为,让家长看到孩子真实的课堂表现
**课后建议质量15分**
- ❌ "继续加油"、"多练习"套话0分
- ✅ "课后可以试着用AI生成一个故事然后自己改编结尾锻炼创意表达"可执行15分
- 技巧:给出"做什么"、"怎么做"、"达到什么效果"
**个性化纵向对比10分**
- ❌ 不提过往表现0分
- ✅ "比上节课专注力明显提升,能完整听完讲解再动手"有对比10分
- 技巧:读取学生画像,对比上次表现,指出进步/需要保持的地方
**专业知识点体现10分**
- ❌ "今天学了新知识"泛泛0分
- ✅ "对角色设置+限制条件+输出格式的系统提示词优化,有一定了解"专业10分
- 技巧:紧扣本节课教案中的知识点,用专业术语点评
---
## ⚙️ 核心生成逻辑(自动完成,你不需要操作)
```
1. 读取参考资料 → 2. CSP班级自动拉取OJ数据 → 3. 生成个性化课评 → 4. 橙子确认修改 → 5. 自动质检 → 6. 自动保存
1. 读取参考资料 → 2. AICODE班分析作品/CSP班拉取OJ数据 → 3. 生成个性化课评 → 4. 橙子确认修改 → 5. 自动质检 → 6. 自动保存
```
### 1. 自动读取参考资料
@@ -315,15 +566,41 @@ python scripts/update_feedback_with_oj.py \
- **课评格式模板**:根据课程类型选择对应模板(`.claude/templates/[课程].md`),包含标准版和极简版
- **本节课教案**:到 `.claude/lesson/` 目录下查找对应班级、对应课次的教案,确保课评内容与实际教学一致,不编造内容
- **过往课评**:读取该学生的历史课评,避免重复用词
- **课堂录音转写**`.docx`格式使用python-docx库读取AI分析提取学生表现
- **AICODE班作品**:查看作品文件夹,分析每个学生作品的创意和亮点
> 💡 **模板库路径**`../../templates/`
> - `AICODE.md`AICODE创意编程课评模板标准版 + 极简版)
> - `CSP.md`C++/CSP课程课评模板
> - `KITTEN.md`Kitten课程课评模板
> - `出勤登记-2026春季.md`:出勤登记表模板
> - `课评汇总网页.html`家长版课评汇总HTML网页模板翻页浏览、温暖画册风格
### 2. CSP班级专属自动获取OJ做题数据(必须执行)
### 2. AICODE班级专属查看作品文件夹(必须执行)
**⚠️ 这是强制步骤AICODE课评必须包含作品创意描述**
**执行时机**在生成每个AICODE学生的课评**之前**,先查看该学生的作品文件夹。
**执行流程**
1. 识别出AICODE班级的学生
2. 查看作品文件夹(橙子提供的本地路径)
3. 分析每个学生作品的:
- 创意点:有什么独特的想法
- 技术点:用了什么技术实现
- 亮点:有什么特别出彩的地方
4. 将作品分析**用中文写进课评**中
**示例**生成陈嘉博的AICODE课评
```
嘉博今天表现特别棒~主动问老师关于循环嵌套的问题,说明在认真思考~
自己完成了课堂练习,特别专注!作品是一个猜数字游戏,用了独特的渐变色背景,
还添加了音效和暂停功能,创意很棒!
老师会继续关注嘉博的表现,期待看到更多精彩!🌟💡
```
### 3. CSP班级专属自动获取OJ做题数据必须执行
**⚠️ 这是强制步骤CSP课评必须包含OJ数据**
@@ -331,9 +608,9 @@ python scripts/update_feedback_with_oj.py \
**查询命令**对每个CSP学生执行
```bash
python scripts/update_feedback_with_oj.py \
--course CSP03-<课次编号> \
--get-student-oj "<学生姓名>"
python scripts/get_student_oj.py \
--homework-id <作业ID> \
--student "<学生姓名>"
```
**执行流程**
@@ -345,9 +622,9 @@ python scripts/update_feedback_with_oj.py \
**示例**生成杨林轩的CSP课评
```bash
# 第1步获取OJ数据
python scripts/update_feedback_with_oj.py \
--course CSP03-09 \
--get-student-oj "杨林轩"
python scripts/get_student_oj.py \
--homework-id 6a2bbd65aeff4da880b8f01d \
--student "杨林轩"
# 第2步把返回的OJ数据整合到课评中
```
@@ -358,20 +635,25 @@ python scripts/update_feedback_with_oj.py \
**完成情况**: 4/5 (共8次提交)
| 题目 | 状态 | 提交次数 | 思考模式 | 错误类型 |
|------|------|----------|----------|----------|
| CSP0309A1 银行叫号模拟 | ✅ 通过 | 1 | 一气呵成 | — |
| CSP0309A2 模拟发牌 | ✅ 通过 | 2 | 调试改进 | WA×1 |
| 题目 | 状态 | 提交次数 | 错误类型 |
|------|------|----------|----------|
| CSP0309A1 银行叫号模拟 | ✅ 通过 | 1 | — |
| CSP0309A2 模拟发牌 | ✅ 通过 | 2 | WA×1 |
...
**📊 分析**: 完成4题第5题有尝试但尚未通过...
```
**注意事项**
- 必须先在 `config/hw_dict.json` 中配置好课程的作业ID
- 作业ID需要从OJ系统获取`6a2bbd65aeff4da880b8f01d`
- 如果学生姓名在OJ系统中不匹配会返回空数据
- 返回的Markdown直接拼接到课评正文后面不要修改格式
**docx文件处理注意事项**
- 确保已安装python-docx库`pip install python-docx`
- docx文件中的表格会自动转换为Markdown表格格式
- 文件编码问题已解决,无需担心乱码
### 3. 自动生成课评(统一格式,所有课程通用)
**固定格式(必须严格遵守)**
```markdown
@@ -384,6 +666,8 @@ python scripts/update_feedback_with_oj.py \
课评反馈:
【具体课评内容约200字包含优点、建议、期望】
老师签名:橙子
```
生成规则:
@@ -392,7 +676,17 @@ python scripts/update_feedback_with_oj.py \
- **表情包丰富原则**课评正文中适当穿插表情符号让文字更生动有温度每个课评至少使用3-5个表情分布在夸奖、建议、结尾等位置
- **CSP班级专属要求**必须查询OJ系统的**A包作业完成情况**进行详细分析包含完成率、思考模式、错误分布、改进建议【OJ做题数据】板块放在课评反馈的最后部分
- 称呼规则:三字姓名默认去掉姓氏,直呼后两个字(如"陈圆振"→"圆振"),更亲切
- 内容完全基于你提供的表现描述和教案知识点,不编造内容
- 内容完全基于从录音中提取的表现信息和教案知识点,不编造内容
- **⚠️ 质量自检(必须执行)**:每条课评生成后,按照「课评质量评分标准」自检:
- 字数:正文 180350 字 ✓
- 禁用词:无笼统空泛词 ✓
- 结构:知识点总结 + 学情反馈 + 教师签名 ✓
- Emoji35 个 ✓
- 称呼:去掉姓氏直呼名字 ✓
- 具体化:有具体行为细节 ✓
- 建议质量:可落地执行的个性化建议 ✓
- 纵向对比:结合画像对比过往表现 ✓
- 专业点评:紧扣课程知识点 ✓
---
### 📋 生成后确认流程(必须遵守)
@@ -409,12 +703,32 @@ python scripts/update_feedback_with_oj.py \
- 多用"很棒"、"特别棒"、"超棒"和波浪号""
- 描述具体行为:"一字一字打字"、"和AI聊了一节课"
- 温和建议用"要是...就更好啦~"
- **必须描述作品创意和亮点**:用中文描述学生作品的创意、技术点、亮点
- **表情包使用**:课评正文中适当穿插表情,让文字更生动温暖
- 夸奖时:🌟✨🎉👍
- 鼓励时:💪🔥🚀
- 温和建议时:😊💡🌸
- 结尾固定:"老师会继续关注【姓名】的表现,期待看到更多精彩!🌟💡"
**⚠️ AICODE03班强制要求**
- **必须查看作品文件夹**,了解每个学生作品的创意和亮点
- **必须用中文描述作品**,写进课评中
- 描述技巧:
- ❌ "嘉博的作品做得不错"(笼统)
- ✅ "嘉博的作品是一个猜数字游戏,用了独特的渐变色背景,还添加了音效和暂停功能,创意很棒!"(具体描述)
#### AICODE03班作品描述示例
```markdown
嘉博今天表现特别棒~对循环嵌套的理解很到位,能快速理解并动手尝试~
自己完成了课堂练习,特别专注!作品是一个猜数字游戏,用了独特的渐变色背景,
还添加了音效和暂停功能,创意很棒!
要是可以在代码注释上再详细一点就更好啦~
老师会继续关注嘉博的表现,期待看到更多精彩!🌟💡
```
### K4班 - 家长信格式·温和鼓励型
- 固定开头:"家长好,本周学习的内容是《...》" + 5个知识点
- 肯定创意:"能够有自己的创意"
@@ -437,7 +751,7 @@ python scripts/update_feedback_with_oj.py \
**⚠️ CSP03班强制要求**
- **必须查询OJ做题数据**没有OJ数据的CSP课评是不完整的
- 执行命令:`python scripts/update_feedback_with_oj.py --course CSP03-<课次> --get-student-oj "<姓名>"`
- 执行命令:`python scripts/get_student_oj.py --homework-id <作业ID> --student "<姓名>"`
- OJ数据板块放在课评正文后面格式见下方模板
#### CSP03班 OJ数据板块格式自动生成
@@ -623,6 +937,15 @@ output/课评汇总/第{X}周{星期时间}{课程编号}课评.html
## 📝 示例课评(参考)
**从课堂录音转写生成课评示例**
```
用户提供第15课录音转写.docx任意路径
系统自动检测到docx格式 → 使用python-docx读取录音文本 → AI分析提取学生表现
后续流程:匹配课程计划 → 读取学生画像 → 生成课评
```
**AICODE课程 - 鼓励型**
> 李明今天虽然是第一次接触AI绘画但我看到了你眼里的好奇这就是最好的开始。你的描述很有画面感"想要一个会眨眼的可爱猫咪"这就是好的Prompt。虽然操作还有点生疏但老师注意到你一直在尝试这份坚持比做对题目更珍贵。下次可以把想法先写在便签纸上分点列出跟AI沟通会更顺畅。记住编程最大的门槛不是英文或数学是敢于尝试的勇气你已经有了。继续和你的"AI搭档"对话吧,它会越来越懂你的。