Notes · 2025.07.12
报告谁来用
导出不是功能清单上的最后一项。
功能表上「报告导出」排在最后一格,好像做完识别就可以收工。真正被拿走的却是那份 PDF。谁签字、谁存档、谁拿去对一篇作业,决定里面要有什么字段。我是张恒基。没有使用者的报告,只是模型输出换了个外壳。外壳印着文臻卫士,也不自动变成能用的文件。
使用者不是模型组
模型组觉得 JSON 里已经清楚:标签、分数、若干特征。使用者不读 JSON。老师要一眼看到风险在哪、凭什么、下一步是复核还是放过。教务要字段稳定,才能归档。学生被误伤时要能指出哪一条可以反驳。三拨人要的东西叠在同一份导出里,字段就会打架。打架的时候,我按签字的人优先。签字的人承担后果。后果比可视化好看更重。
我把报告结构写成固定块:输入摘要、分数、主要特征、样本对照、复核意见栏、导出时间。意见栏是空的。空,是留给人的。人如果不填,归档时至少能看出「未经复核」。看不出这一点的报告,危险。危险的报告不要做得很漂亮。漂亮会降低警惕。
textguard.site 上导出按钮如果下载失败,整条演示链路断在最后一步。最后一步断,前面的识别再顺,评委记住的也是打不开的文件。我把导出从最后一格挪到验收的第一批。第一批过不了,首页文案不许写「治理平台」。平台两个字要配得上一份拿得出去的纸。
和查重报告并排放
使用者手里往往已经有查重报告。并排放的时候,我们的字段如果模仿查重,就会被当成查重的差代。查重看像不像已有文献。我们看像不像机器写的。报告封面、术语、分数含义,都要主动切开。切开不是为了品牌,是为了避免一份检测报告被按重复率来读。按重复率来读,误伤会变成抄袭嫌疑。嫌疑一旦形成,解释页来不及救。
术语我选得很土。「AI 生成风险」「需复核」「特征对照」。土的词不好看,不容易被听成判决。判决性的词在导出里我尽量不用。不用完,评委可能会说报告不够有力。有力如果等于不可反驳,那份报告就不该从我们手里出去。可反驳,才配给人签字。
字段从哪来,要能指回接口。指不回,导出就是前端编的。前端编的数字和模型组第二天改的数字会分叉。分叉一次,归档的人再也不会信下一份。我要求导出请求打到同一套后端字段,前端只排版,不重算。排版可以丑。重算不行。
谁来用决定谁来改
报告改一版之前先问谁来用。给答辩评委看的版本,可以短。给存档看的版本,要时间戳和输入摘要。给学生复核看的版本,要对照和意见栏。三版如果合成一版,合成时只能做加法,不能偷偷删掉复核栏去「简洁」。简洁的代价如果是人没法反对分数,就不简洁,是卸责。
我是总负责人。卸责的设计会先问到我。问到时如果回答「那一栏还没做」,就等于承认功能表把导出排错了位置。排错位置的后果是:系统看起来能检测,组织里没人敢用。没人敢用的项目,京彩问可持续时只能讲愿景。愿景在全市赛不够。
预期的软著和专利如果涉及报告格式,格式更要先稳。稳之前不要把示意图当已交付。示意图可以出现在 PPT。站点上的按钮必须吐出真文件。真文件打不开、缺字段、缺对照,都算导出没做完。没做完,功能表最后一格就还是空的,哪怕格子被涂成完成。
归档的人还关心一件很土的事:同一输入隔一天再导出,字段顺序还在不在。顺序乱跳,他们的目录会坏。坏一次,下一份不会再收。我把字段顺序写成和接口一致的固定列表,前端禁止按心情重排。心情重排在演示里好看,在存档里是事故。事故发生在 PDF 里,比接口 500 难追。难追的东西,要在谁来用这个问题里提前问到。
外壳不算交付
我收到的限制来自使用者这一问:报告为谁服务,谁就有权要求字段。模型组满意的 JSON 不是交付。交付是签字的人能拿着一份可反驳、可归档、不冒充查重的文件离开。谁来用没问清之前,导出按钮可以先藏着。藏着比发一份会伤人的漂亮 PDF 安全。
安全还有一层:报告里的时间戳、输入摘要、模型版本,要能对上当次请求。对不上,归档的人会以为你们随便生成了一张纸。随便生成的纸,不能进教务的夹子。进不了夹子的导出,功能表上不该涂绿。绿过的格子我会在验收里打回去,直到真文件能打开、字段能指回接口、复核栏还在。还在,才配给签字的人。