AI 课堂报告:30 秒把笔记变成家长可读的进度报告
老师每周到底花多久写报告
粗略算了笔账。带 30 个学员的私教,每周给每位学员写一份报告,每份 5-8 分钟(先回忆课堂细节、再用家长听得懂的话写出来),合计每周 2.5-4 小时纯在写字。
这 4 小时本来可以做点别的——备下周的课、接两个新学员、甚至陪自己孩子吃顿饭。
最先想到的当然是"做套模板填空"。这个我们也试过。半小时后就发现行不通——"今天 XX 表现良好,建议继续练习"这种话家长一眼就能识别出来。模板化的报告比不发还差,因为它在告诉家长"我不在意你孩子"。
所以问题不是省时间,是省时间同时不损失个人化。这事没那么简单。
AI 该插在哪儿
试了几次才想明白——AI 的位置不是最前面(替老师写),也不是最后面(替老师发)。它在中间:把老师的内部笔记重写成家长视角的段落。
工作流大概长这样:
- 老师 60 秒记 5-8 条笔记——什么缩写都行
- 比如:"右 H 没起、节奏 ok、Hanon 21 第二行卡 3 次、要练慢速"
- AI 30 秒生成段落——
- "今天的课堂上 Emma 重点练习了 Hanon 21 这首基本功练习曲。她的整体节奏感把握得不错,但右手第 4 指的发力(这个手指通常是初学者最难独立运动的)还需要加强。课后建议慢速练习第二行,专注每个手指的清晰落键。"
- 老师 30 秒校稿:补一句鼓励、改个不准确的术语、加一句下次课计划
- 发
总时长从 5-8 分钟降到 ~2 分钟,每周省 2-3 小时。
关键是老师的判断还在——前面记什么、后面校什么,都是老师说了算。AI 只承担重写这个最机械的部分。说白了它就是个"翻译",把老师的内部黑话翻译成家长能读的人话。
Prompt 写的时候想了挺久的几件事
把老师的笔记直接丢给 OpenAI 听起来简单,落地有不少坑。下面是几个我们想了挺久的决定,不敢说每个都最优,但每个都是踩过具体的事才落下来的。
不做"K-3 / 4-8 / 9-12"三套模板
最开始想给不同学龄段做不同 prompt——钢琴 K-3 一份、数学 9-12 学术一份。还没动手之前就发现问题:
学龄段只是一个维度,还有业态(钢琴 vs 数学)、家长风格(要数据 vs 要感受)、老师风格(结构化 vs 叙事性)。笛卡尔积下来十几套模板,运维负担大,改句话就要发版。
最后改成单个 FreeMarker 模板 + 字段化变量。AI 收到的 prompt 是动态拼出来的:
ageGroup: "8-12 岁"
toneStyle: warm | formal | encouraging | professional
teacherPreferences: { ... }
observations: ["右 H 没起", "节奏 ok", ...]
新增一种语气风格不要发版,运维后台改字段就行。这种灵活性后面救过我们好几次。
默认 gpt-4o-mini 不用 gpt-4o
按 OpenAI 当前公开定价(2025):
| 模型 | input | output | 一份报告(800+400 tokens) |
|---|---|---|---|
| gpt-4o | $2.50 / 1M | 0 / 1M | $0.006 |
| gpt-4o-mini | $0.15 / 1M | $0.60 / 1M | $0.00036 |
| gpt-3.5-turbo | $0.50 / 1M | .50 / 1M | $0.001 |
30 学员 × $0.00036 = 每周 $0.011,一年 $0.55。
做过盲测:50 份对比 gpt-4o-mini 和 gpt-4o 的输出,老师压根分不出哪个是哪个。但成本差 16 倍。
所以 gpt-4o-mini 是默认值,"想用更强模型"留了偏好开关(PRO 套餐内)。但绝大多数老师默认值就够。
如果你也在做类似的"AI 改写"应用,建议从最便宜的模型起步——多数任务对模型 reasoning 要求并没那么高,先 mini 试,真的不够用再升。
max_tokens=1000,temperature=0.70
- max_tokens=1000:中文 200-400 字一份,1000 绝够。但万一 AI 想啰嗦,硬截断兜底,免得一次 generate 烧出万字回答。
- temperature=0.70:0.3 太机械(30 份读着像一个人写的),0.9 太随机(每次输出风格漂移)。0.70 是几轮试出来的。
这俩参数都存在 ai_prompt_templates 表里,运维可以单独调,不用发版。
observations 限 10 条,多了直接截
老师有时候会拼命写——"她今天来的时候说有点累、然后我让她先休息了 2 分钟、然后她说今天她妈骂她了..."。但 prompt 越长 AI 关注点越分散,质量反而下降;token 成本也是线性涨的。
硬性限制最多 10 条(按时间倒序截)。早期有老师反馈"我写了 20 条都被切了",我们的回复是:如果你需要 20 条,可能这一份报告该拆成两份发,分别说不同主题。
缓存 24 小时
老师有时 generate 一次预览、改改、再 generate。observations 没变。这种重复请求我们缓存 24 小时——同 hash 直接返回,不打 API。
加缓存前每月 OpenAI 账单 $30,加完降到
2。降 60%。这种省钱优化很无聊,但有用。
超时 connect=5s / read=15s
OpenAI 偶尔会卡(高峰时段尤其)。如果默认 120s 超时,老师以为系统挂了会狂点重试按钮——触发更多 API 调用,更卡。
我们用 5s+15s 短超时。15 秒拿不到结果直接 fallback "AI 暂时不可用,请重试"。老师工作流不卡死,OpenAI 那边也不堆叠重复请求。
真翻过几次车
翻车 1:老师笔记里的缩写直通家长
上线第一周,有家长收到:"今天右 H 没起,Hanon 21 第二行卡 3 次。"
家长一脸懵。
修复办法是改 system prompt,加一句:"你的输出是给完全不懂音乐术语的家长看的。所有缩写、内部记号、技术术语必须先用中文/英文完整解释,再用括号注明原始术语。"
加进去后,"H 没起" 变成 "右手第 4 指(钢琴指法术语 H)发力不够"。家长就懂了。
这件事让我想起一个老经验:给 LLM 的 system prompt 里,"它不知道什么"比"它该做什么"更重要。AI 不会主动假设受众的知识背景,得明确告诉它。
翻车 2:默认 toneStyle 太硬,像收到罚单
早期默认 professional,输出长这样:
"经评估,学员本次课堂表现达到既定教学目标的 75%。"
家长普遍反馈"读着像律师函",有家长直接问"是不是你们要劝退我家孩子"。
改成 warm:
"Emma 这节课已经完成了大部分要求的练习目标,整体进步明显。"
同样的信息,完全不同的接收感觉。
我们后来想明白一件事:默认值是大多数老师不会去改的设置。所以默认值应该对应"大多数情境下家长接受度最高"的版本,不是"理论上最正式"的版本。
这条规律适用范围其实挺广的——任何 SaaS 的默认值都该这么想。
翻车 3:学员名字乱
学员档案有 nameZh: 张小明 / nameEn: Tom Zhang / displayName: Tom。AI 收到笔记 "张小明今天..."、但报告要求英文输出,结果 AI 自己音译成 "Zhang Xiao Ming"。
家长不知道老师在说谁。
修复:prompt 里强制传 displayName 字段,并在 system prompt 里要求"输出中提到学员一律用 displayName,不要音译、不要中英混用"。
这种"字段里有什么 AI 就用什么"的小事,做不好用户体感很差。
这几种场景就别用 AI 了
不是所有报告都该 AI 写。下面这几种我们建议老师亲笔:
- 学员严重退步或行为异常——AI 写出来的"挑战和机会并存"那种话,家长一眼看出敷衍,反而加深焦虑。
- 家长之前投诉过——任何带敏感感的家庭沟通,亲笔显得"我重视这事"。
- 复杂家庭背景(离异、移民焦虑、其他特殊情况)——通用流畅在这里反而冷漠。
- 学员达成重大里程碑(首次过 8 级、Math Olympiad 进决赛)——值得老师投入 10 分钟亲笔祝贺,别浪费在 AI 上。
所以 ActiKidz 的 AI 课堂报告是 opt-in——每份报告生成前老师可以选"AI 草稿"或"完全手写",不强制。AI 是工具,不是流水线。
数据点
- 30 学员/周,老师省 2-3 小时/周 报告时间
- 月 OpenAI 成本 2-15(加缓存后)
- 一份报告生成 15-20 秒(包括 API call + DB lookup + FreeMarker 渲染)
- 老师采纳率(生成完实际发出去的比例):约 85%——剩下 15% 重新生成或改完全手写
ActiKidz 后台已经上线,所有付费套餐内含。老师可以在"AI 偏好设置"里调默认语气、自定义偏好、看每月 token 用量。
tl;dr
AI 在私教场景里最该干的是"机械重写",不是"代写"。老师的眼睛、判断、感情投入还在——前面看学员、记观察;后面校稿、补个性化。中间那 30 秒重新组织语言的事,让 AI 做。
不是浪漫的"AI 革命教育",是无聊但实在的——省 2-3 小时/周。够了。
其他场景(医疗、法律、销售复盘)AI 该承担多少,可能不一样。但私教这块我们的体感就这样:人在前后,AI 在中间。