返回 TeachFlow 项目总览 · 交互图:白板 · 确认 · 时序
传统白板只保存像素或笔迹,AI 白板却会识别图形、规整线条、生成函数图、化学方程和立体对象。如果模型结果直接写入画布,误识别就会成为正式课堂内容;如果只保留最终画面,又无法解释对象从哪里来、谁确认过、撤销了什么。
TeachFlow 把白板建模为 BoardDocument:对象拥有稳定 ID、类型、来源和 revision,AI 能力先产生候选预览,教师确认后才提交 mutation。
预览不是写入
识别笔迹、规整几何、导入函数或化学式时,服务端先返回候选对象、置信与拒绝原因。教师可以接受、修改或放弃;放弃不会留下半成品对象。普通书写默认保持普通书写,只有显式调用才进入识别路径。
revision 防止“看见的是旧画布,提交到新画布”
提交请求携带期望 Board revision。若另一个操作已经推进版本,旧预览不能继续覆盖当前文档,而应返回冲突并要求重新预览。预览结果还绑定作用域、输入摘要与过期边界,不能跨班级或跨 Session 重放。
撤销同样形成可追溯 mutation,而不是删除历史。当前画面可以回退,原对象、来源和操作链仍可用于 recap 与问题定位。
为什么对象比像素更重要
结构化对象可以成为课堂任务锚点:教师可以把某个受力图、几何区域或题目裁片派给学生,并在提交后回到同一对象上下文。对象也可以显式沉淀到新课程 revision;像素截图只能证明“看起来像”,无法支持这些后续合同。
最小并发反例:一个正确候选也可能在错误时刻提交
教师在 Board revision 20 选择一组笔迹并预览几何规整,候选本身完全正确。预览期间,另一项操作删除了其中一条线,Board 已推进到 revision 21。如果提交接口只检查候选内容,不检查期望 revision,它会把基于旧画布的对象写回新画布,制造重复线段或幽灵来源。
因此预览结果必须绑定输入摘要、Session 作用域和 Board revision;提交时任何一项不匹配都应返回冲突。用户需要重新预览,而不是由服务端“尽量合并”。这会多一次交互,却保护了课堂画布的可解释性。撤销也不是把数据库行删掉,而是追加反向语义,使 recap 仍能解释对象为什么出现又消失。
设计取舍:所有对象都保存历史会不会太重
答案应区分业务历史和渲染缓存。稳定对象、来源、关键 revision 与 mutation 属于可追溯事实;缩略图、命中缓存和临时候选可以按策略清理。长期规模仍需要快照、归档和查询预算,当前源码设计不能直接证明学校级容量。
另外,人工确认解决的是写入权威问题,不等于候选准确率已经足够高。候选质量仍需教师笔迹数据集、拒绝率和纠正成本评测;即使模型更准,revision 与作用域检查也不能被删除。
当前边界
源码和现有时序图确认了预览、确认、revision 冲突与 mutation 路径,本轮未执行真实并发浏览器操作,因此为 partial。AI 候选正确率、触控笔硬件差异和大规模对象文档性能仍需独立评测。
结论
AI 黑板的关键不是让模型更快地画,而是让每次辅助都经过候选、确认和版本提交。这样,模型可以提高课堂表达效率,却不能悄悄成为课堂事实的写入权威。
