这不是一篇“AI 帮我一键报志愿”的宣传稿。
更准确地说,这是一次把 AI 当作研究助理、数据整理员和审计员的实践:它可以把大量零散数据整理得很快,也能把错误暴露得很快;但最终决定必须由人做,最终结果必须以官方数据为准。
先说结论:AI 能帮什么,不能帮什么?
这次实践让我最深的感受是:高考志愿不是让 AI 给出一个“你能上什么学校”的答案,而是让它协助完成一套可核验的决策流程。
AI 和 Codex 最有价值的地方有三个:
整理:把学校官网、历年录取数据、招生计划、个人志愿表变成可以筛选和核对的结构化数据。 发现问题:找出表格中缺年份、漏专业、专业名称不一致、地方专项和普通类混在一起等问题。 事后验算:当官方投档数据公布后,按实际规则逐个验证志愿,而不是凭感觉猜“是不是录上了”。
它做不到、也不应该做的事情同样重要:
不能承诺录取; 不能把“模型概率”包装成真实概率; 不能用没有来源的数据填表; 不能替代招生章程、体检要求、专项资格审核和官方录取查询; 更不能索取或公开考生号、准考证号、身份证号、分数、位次等敏感信息。
一、起点:不是“报学校”,而是先把边界说清楚
一开始,我们并没有直接问“能上哪些大学”,而是先列清楚不能接受什么、真正看重什么。
例如:
只考虑国内公办本科; 不考虑中外合作办学和明显高学费项目; 回避部分不想就读的专业类别; 可以接受省外; 兼顾学校层次、专业方向、升学机会和就业现实; 如果具备资格,希望同时比较普通类和地方专项。
这一步看起来普通,却决定了后面所有筛选规则。志愿填报不是一个“分数匹配器”,而是一个多约束条件下的排序问题。

二、最费时间的部分:把“看起来有数据”变成“可用的数据”
真正开始整理后,第一个困难不是算法,而是数据质量。
不同学校公布历史录取数据的方式差别非常大:有些页面按年份展示,有些是 PDF,有些按批次分类,有些专业名称在不同年份发生变化。有的表里有最低分却没有最低位次,有的地方专项记录和普通类记录混在一起。
因此,先后建立和核对的字段包括:
在这个过程中,AI 并不是永远正确。我们就发现过:
某些专业只带入了部分年份; 原始数据里有记录,但汇总表里漏掉了; 专业名称的括号说明不同,导致看似相同、实际不同; 地方专项数据误混进普通类数据; 一个“专业录取概率”表,和官方原始数据对不上。
这反而是这次实践最有价值的部分:AI 不是为了让人少看数据,而是让人更快地找到应该重点看的数据。
三、关于“录取概率”:我推翻了自己一开始的想法
最开始,我们根据历年最低位次、平均位次、波动幅度等信息,给不同志愿计算过“录取概率”。后来我做了一个很简单的极端测试:把考生位次改成一个极靠前的位置,结果有些志愿的概率仍然不高。
这说明模型有问题。
问题不在于公式写错,而在于“历史位次差”本来就不等于真正的概率。它至少还会受到这些因素影响:
当年招生计划是否变化; 专业热度是否突然变化; 新增专业、校区调整、培养方向调整; 其他考生的志愿选择; 专项计划资格人群的实际竞争情况; 只有少量历史年份时,样本本身就不够。
所以后来我们把表述改得更克制:
这件事让我意识到:好的工具不是给出一个看似精确的百分比,而是让你知道这个百分比为什么不够可靠。
四、从“冲稳保”到真正的志愿排序
有了可核对的数据后,志愿排序不再只看“学校名气”,而是同时考虑四层问题:

实践中,最容易被忽视的是“录上读什么”。
例如,不能因为学校层次不错,就忽略专业是否适合自己;不能因为专业名字听起来热门,就默认本科就业好;也不能只看学校最低线,而不核对具体专业、校区、学费、色盲色弱限制、专项资格等条件。
在最终提交前,志愿表还专门检查了:
是否混入中外合作或高收费项目; 是否出现原本明确回避的专业; 是否有异地校区; 是否存在体检限制; 地方专项是否标注准确; 冲、稳、保是否真的有梯度,而不是一堆相近风险的选择。
五、最关键的一步:不要拿预测“自我感动”,要拿官方数据验算
志愿提交后,真正能检验这套过程的不是模型分数,而是官方投档数据。
当省级教育考试机构公布普通类常规批投档情况后,我们做了一件很朴素但很重要的事:
按提交时的志愿顺序,用“院校代码 + 专业代码”逐条匹配官方投档表,再比较考生位次与该专业的最低投档位次。
判断规则并不复杂:
如果:考生位次 ≤ 某志愿的最低投档位次那么:该志愿达到最低投档门槛平行志愿按顺序检索:第一个达到门槛的志愿,才是本轮最值得关注的投档去向。
最终,我们没有公开任何具体学校、分数、位次或专业代码,只保留脱敏后的结论:
所有已填志愿均与官方投档表完成匹配; 前面一部分志愿未达到当年实际最低投档位次; 随后出现了第一个满足条件的志愿; 后续即使还有更多“过线”志愿,按平行志愿的检索顺序也不再继续比较; 最终录取仍必须以官方查询结果为准。

六、这次实践留下的五条经验
1. 位次通常比裸分更适合做跨年判断
每年的试卷难度和分数分布不同。做历史比较时,位次往往比单纯分数更有参考价值,但也不能脱离年份、计划和专业热度。
2. 学校线不等于专业线
“能进学校”不等于“能进想读的专业”。在可以获取专业层面数据时,应优先使用专业录取或投档信息。
3. 计划数不是边角料
招生计划变化会明显影响风险判断。只看往年位次,不看当年计划,结论可能失真。
4. 概率要有边界感
没有足够历史样本和完整计划数据时,所谓精确百分比只能是辅助评分。冲、稳、保和“风险原因”往往比一个漂亮的概率数字更有用。
5. 官方数据是最后的裁判
学校官网、考试院公布的招生章程、招生计划、投档表和录取查询,优先级高于第三方平台、经验帖和模型推算。
七、如果你也想用 AI 辅助报志愿,可以这样做
可以把 AI 当作一个不怕重复、擅长整理的助理,但请把它放在正确的位置上:
先写清楚自己的边界:城市、学费、专业、升学、就业、校区、是否接受专项计划等; 让 AI 帮你把资料整理成表,但每一列保留来源; 以官方招生网、考试院、招生章程为主,第三方数据只作补充; 对每一个“概率”“排名”“保研率”追问来源和计算口径; 填报前重新检查专业代码、选科、体检、学费、校区和专项资格; 公布投档数据后,再用官方表逐项验算,不用猜。
隐私说明:这篇文章如何脱敏
本文刻意未披露或已替换以下信息:
姓名、考生号、准考证号、联系方式; 具体分数、具体全省位次、具体录取位次; 真实志愿清单、志愿序号、院校代码、专业代码; 导出志愿表和官方投档表的原始截图; 任何可能通过组合信息反推个人身份的细节。
如果要配截图,请务必做到:裁掉顶部身份栏、模糊分数/位次/代码/时间,最好直接使用重新绘制的示意图。
写在最后
这次实践没有把志愿填报变成一道“输入分数、输出答案”的题。
它更像一次数据尽调:先承认信息不完整,再尽量用可靠来源补齐;先让模型给出假设,再用官方结果验证假设;发现错误,就修正,而不是为最初的判断找理由。
AI 和 Codex 的意义,不是替一个人决定去哪里读大学,而是让这次决定变得更透明、更可追溯,也更接近事实。
本文仅记录一次个人化的 AI 辅助志愿填报流程,不构成志愿填报建议或录取承诺。不同省份、批次、选科与年份的规则均可能不同,请以当地教育考试机构和高校发布的最新官方信息为准。
夜雨聆风