精选案例 · Agent / 实践案例
这个案例围绕「shares/shuzhangqing」记录了一条真实 AI 实践线索,适合先按任务意图阅读再判断复用。
可读标题 · 基于原文内容整理
原题:shares/shuzhangqing
这个案例围绕「shares/shuzhangqing」记录了一条真实 AI 实践线索,适合先按任务意图阅读再判断复用。
案例速读
README 标题「shares/shuzhangqing」下已经出现运行/配置路径、脚本或接口线索、结果证据,比纯概念介绍更适合进入精选阅读流。 这篇案例的阅读价值在于,它把真实任务、模型辅助过程和可迁移做法放在同一个上下文里,读者可以从 正文中的目标、方法、过程和复盘 进入正文。
- 建议重点看 可参考其中的运行与配置路径、包含可迁移的命令、脚本或接口线索、已有结果或观测证据可用于判断复用价值。结合 Agent / 实践案例 和「任务驱动用户、AI 实践者」这一受众定位,它更适合作为任务检索后的精读材料,而不是只看一句短摘要后快速跳过。
- 正文目录和原始材料仍然是判断依据;导读只帮助你更快定位阅读重点。
- 看点
- Agent / 实践案例
- 读者
- 任务驱动用户、AI 实践者
- 复用
- 可参考其中的运行与配置路径
- 结构
- 等待补充目录
原文内容
当传统系统遇上 AI:用科大词元打造一个智能高校博士指标分配系统
一、项目背景与需求
“博士指标分配” 是连接国家战略需求、高校资源配置与导师招生资格的关键环节。这项工作通常遵循“国家导向、学校统筹、学院实施、质量优先”的原则,旨在将有限的招生计划精准投放至优势学科、高水平团队和前沿研究领域。本系统是根据某高校实际运用需求设计开发,统计科研项目、论文积分等数据,对符合博导资格的教师进行排名,并为每个项目设置可获得的博士招生指标。 这个系统看似只是一张表格,背后却聚集了复杂的业务规则,需符合当前高校追求高质量发展和精细化管理的要求:
- 项目积分:国家级项目得分(不含课题和子课题),项目课题到账超过 >=200 万的需特殊计分;
- 论文积分:按作者排序及是否通讯作者采用不同权重(1/n 或 2/n),取近三年得分最高的前三篇;
- 排序算法:往年已获指标但无论文的教师被排在最后;其余按项目类型(按重要度排序)、往年已获指标数升序、项目积分+论文积分(【项目+论文1】降序 → 【项目+论文1+2】降序 → 【项目+论文1+2+3】降序)、项目金额等条件多级排序;
- 年度指标管理:支持按年度设置指标,页面需同时展示本年度指标和历史已获指标总计;
- 历史快照:可将任意时刻的排名结果存档,支持随时切换查看和导出为 Excel。
采用 PHP + MySQL 架构,整体架构简单,需求目标清晰,引入 AI 辅助开发 和 科大模型 API,以数倍于传统方式的效率完成了全部功能。
二、技术栈与架构
- 后端:PHP 8.1,采用 RESTful API 风格
- 数据库:MySQL 8.0,利用窗口函数处理复杂排序
- 前端:Bootstrap 3 + jQuery,Ajax 交互
- 认证:JWT (JSON Web Token) 实现无状态身份校验
- AI 辅助:中国科学技术大学 LLM API(兼容 OpenAI 格式)
整体采用前后端分离架构:前端通过 Ajax 请求 PHP API,API 层使用 PDO 连接 MySQL,JWT 中间件进行权限过滤。所有业务逻辑集中在后端,前端只负责渲染和交互。
三、AI 开发协作模式
实际开发工作中并没有把项目全部交给 AI,而是制定了一套 “人定策略,AI 负责实现” 的协作流水线:
- **需求结构化:**将业务方的口述规则转换成清晰的功能描述和数据结构。
- **AI 生成代码骨架:**向大模型描述接口功能、表结构和业务逻辑,让它生成 PHP 控制器、模型、SQL 语句。
- **人工校验与修复:**运行生成的代码,遇到错误时直接将报错信息反馈给 AI 进行二次修正。
- **迭代优化:**从性能、安全性到 UI 细节,持续通过 AI 进行增补和优化。 AI 承担了约 70% 的编码工作,人类则专注于架构设计和逻辑验证。
四、科大模型 API 集成实战
我们直接调用了科大提供的 LLM API(端点 https://api.llm.ustc.edu.cn/v1),其完全兼容 OpenAI 的调用格式,因此可以很方便地嵌入开发工具链。
1. 获取 API Key
在中国科学技术大学大模型公共服务平台https://llm.ustc.edu.cn申请 API 密钥,并设置为系统环境变量 USTC_LLM_KEY。
2. 本地辅助脚本 codegen.js
为了在日常开发中快速调用 API,我们编写了一个简单的 Node.js 脚本,通过命令行直接生成代码:
Javascript
const API_KEY = process.env.USTC_LLM_KEY;
async function generateCode(requirement) {
const res = await fetch('https://api.llm.ustc.edu.cn/v1', {
method: 'POST',
headers: {
'Authorization': `Bearer ${API_KEY}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
model: 'deepseek-v4-flash-ascend',
messages: [
{ role: 'system', content: '你是谁?。' },
{ role: 'user', content: requirement }
],
temperature: 0.3,
max_tokens: 2000
})
});
const json = await res.json();
return json.choices[0].message.content;
}
// 示例用法
generateCode("创建一个 PHP API,接收 DeID 和年度,将指标保存到 doctor_quota_yearly 表,存在则更新,使用 PDO 和 JWT 验证。")
.then(console.log);
该脚本可集成到 VS Code 的任务或通过快捷键触发,实现选中文本即生成代码的流畅体验。
3. 典型应用场景
复杂 SQL 编写:用自然语言描述积分计算及排序逻辑,AI 输出包含多个 CTE 和窗口函数的完整 MySQL 查询。 API 批量生成:提供数据字典后,让 AI 一次性生成 CRUD 相关的完整 PHP 文件,包括输入验证和错误处理。 错误诊断:将 PHP 报错日志或 SQL 错误码发给 AI,它能在几秒内定位问题并给出修复代码。 测试数据构造:要求 AI “生成 200 条符合本项目积分规则的测试数据”,直接得到 INSERT 语句。
五、关键功能实现与 AI 参与实录
1. 积分排序引擎(核心 SQL)
这是整个系统最复杂的部分,涉及三个 CTE 和多级排序。我们将所有规则用中文描述发送给 AI,它立即生成了完整的 SQL 语句。在测试时发现一名教师因 UserID 为空被错误包含,AI 检查后添加了 AND IFNULL(dt.UserID,‘’) <> ‘’ 条件,问题立即解决。
2. 年度指标管理
前期从最初单一的历史已获指标改为按年度管理时,AI 协助完成了:
新建 doctor_quota_yearly 表(DeID,Year,Quota,唯一约束); 编写 INSERT … ON DUPLICATE KEY UPDATE 的保存逻辑; 修改查询 SQL,通过子查询获取本年度指标和合计; 生成前端弹窗表单(增加“年度”输入框)及对应的 JS 脚本; 整个过程仅 20 分钟,且代码可直接运行。
3. JWT 认证体系
为实现前后端分离,我们使用 Token 认证。AI 推荐使用 firebase/php-jwt 库,并生成了:
- 登录接口(验证用户名密码,返回 Token);
- JWT 验证中间件(解析请求头中的
Bearer Token,返回用户信息或拒绝访问); - 前端全局 Ajax 拦截器(自动附加 Token,401 时跳转登录页)。
4. 历史快照存档
存档功能需将当前排名结果完整冻结,并支持随时回溯。AI 为此设计了主从表结构,并生成了:
- 存档创建接口:执行实时查询后,将结果批量插入明细表,采用事务保证一致性;
- 查看接口:根据存档 ID 读取明细表数据;
- 前端卡片式列表,支持悬停删除(调用删除接口时需验证管理员权限)。
同时,AI 建议用 MySQL 多行 INSERT 替代循环插入,使 1000 条数据的保存时间从 8 秒缩至 1.2 秒。
六、总结与展望
通过这次实践,验证了 PHP + MySQL + AI 辅助开发 模式的巨大潜力:
开发效率大幅提升:原本数周的工作量在 AI 辅助下两天内完成; 代码质量可控:AI 生成的代码结构规范,且容易通过反馈迭代修正; 技术门槛降低:开发者可更专注于业务逻辑和架构,细节编码由 AI 承担。 特别地,科大模型 API 的引入让我们能够将大模型无缝嵌入开发流水线,使“AI 辅助”不再是聊天框里的尝鲜,而是真实提高生产力的日常工具。
未来,可计划进一步将 AI 应用于自动化测试、性能监控日志分析、接口文档自动生成等环节,持续探索人机协作的软件开发新范式。