AI Agent智能教务排课与教学质量分析系统
项目简介:基于 SpringAI Agent、Function Calling 和教务知识库检索,实现教师、班级、课程、教室等资源管理,支持排课规则维护、智能排课、冲突检测、课表发布、教学评价和质量分析,覆盖教务排课与质量管理核心闭环。
本项目覆盖的技术点
学完能答的面试题
学完这个项目,下面 23 道面试题你都能结合项目细节讲出来。题目在 AIGC 面试刷题网可以免费看。
系统架构
一张图看清整个系统的分层与核心链路,点开可缩放查看细节。
- 1接入层:三种角色学生看课表、评教;教师看自己的课表和评价;管理员七组菜单。边界由后端
AdminInterceptor控制,教师身份由 Token 决定。 - 2教务数据底座学期、校区、教师、班级、课程、教室、时间段、可用时间和排课规则,外加按关键词召回切片的教务知识库。
- 3Agent 多轮自主排课Spring AI 把启用的
@Tool包成 ToolCallbacks,模型先查资源、形成候选、写前确认再逐节写入,调几轮和顺序由模型定。 - 4操作范围在工具集上限死8 个工具里只有 1 个能写库,而且只能写排课明细;教师可用、教室可用、容量、时段占用全由代码判断。
- 5六类冲突检测 → 课表发布三类时间撞车按整个学期比对,加三类约束冲突;有未处理冲突不让发布,发布时复制生成版本快照。
- 6AI 教学质量分析评教数据按课程、教师、班级三个维度沉淀,代码先算均分和等级,再由模型生成摘要、优势、问题和改进建议。
- 7存储与观测模型与 Prompt 数据库化并支持连通性测试;
ai_usage_log统一记录调用,AI 调用记 Token 与耗时,工具调用按场景记为 Function 工具调用。
技术栈
用到的框架、中间件和模型。
技术难点与解法
每一项优化都针对一个真实问题,讲清楚问题、做法和背后的原理。
01AI 排课结果的约束正确性
- 问题
- 模型会编造不存在的教师、教室 ID,会跳过检测直接落课,排出来的课表互相撞车。
- 做法
- Prompt 写死执行步骤并要求 ID 必须来自查询工具;落课工具内部重复做占用校验;发布前全量冲突检测,有待处理冲突就不让发布。
- 原理
- 光靠 Prompt 约束是不够的:教师可用、教室可用、容量、时间占用四层硬约束全由代码确定性判断,模型只负责组合。
02让 Agent 真正写数据,又不越权
- 问题
- 只生成一段排课描述没用,要把课表写进数据库;可模型一旦能随便写库,风险不可控。
- 做法
- 8 个工具分查询、检测、写入三类,只有 1 个写入工具,而且只能写排课明细表;管理端的启用开关实时决定本次允许用哪些工具。
- 原理
- 权限收在工具集设计里:模型能做什么,由代码提供的工具决定,而不是由提示词决定。
03执行失败不能破坏已有数据
- 问题
- 重跑任务要先清空上次的课表,如果清空之后才发现 API Key 没填,上次排好、手工微调过的课表就白没了。
- 做法
- 模型配置、Prompt 模板、工具启用、ChatClient 构建四项检查全部放在「改任务状态」和「清空课表」之前,检查不过直接返回。
- 原理
- 注定失败的情况要在任何破坏性操作之前拦下来。
04六类冲突检测闭环
- 问题
- 排课冲突不只是时间撞车,还有教师不可用、教室不可用、容量不够,而且其他排课任务占掉的时间也要算。
- 做法
- 检测教师、班级、教室三类时间冲突和三类约束冲突,前三类按整个学期比对;冲突原因直接显示在明细行上,可一键跳过去修改,标记已处理必须写明处理方式。
- 原理
- AI 出方案、代码验约束:检测结果是确定的,发布门禁建立在检测之上。
05已发布课表的稳定性
- 问题
- 教师、教室等基础数据后续还会改,已经发布给学生的课表不能跟着变。
- 做法
- 发布时从排课明细复制生成版本快照,前台只读已发布版本。
- 原理
- 对外发布的数据要冻结成快照,和还在编辑的草稿数据分开存。
功能清单
按角色看这个系统都能做什么。
教务基础数据4 项
- 基础数据管理学期、校区、教师、班级、课程、教室、时间段管理
- 教师 / 教室可用时间维护教师和教室可用的星期与节次约束
- 排课规则管理维护硬规则、软规则、优先级、触发条件与处理动作
AI 能力配置3 项
- AI 模型配置与 Prompt 模板维护模型配置与 Prompt 模板,支持连通性测试
- Function 工具管理维护 8 个排课工具的启用状态,编码与后端 @Tool 方法一一对应
- 教务知识库维护教务制度、排课规则说明、调课流程等资料并自动切片
智能排课5 项
- 智能排课任务配置学期、模型、模板、任务目标、课程范围和规则策略
- Agent 排课执行模型自主调用工具查资源、做约束检测,逐节把课表写入数据库
- 排课明细管理查看 Agent 排出的课表,手工补课和改课都有三维占用校验
教学质量与观测3 项
- 教学评价管理维护结构化评分与文字反馈
- AI 教学质量分析基于评价数据生成结构化统计与 AI 质量分析报告
- 运行日志与调用观测聚合任务、AI 调用、冲突、发布与质量分析运行数据
页面截图
共 10 张真实运行截图,点击大图查看高清原图。
点击放大你将获得
购买后可以拿到的全部内容。
喂饭级学习教程27 章
从教务基础数据、排课约束讲起,到工具中心、Agent 排课、冲突检测、课表发布和教学质量分析,按开发顺序一章一章讲。
完整源码 + SQL
Spring Boot 后端 + Vue3 前端完整源码,MySQL 建表脚本和教务基础数据。
配套面试文档
电梯陈述、架构与选型、Agent 排课与工具中心深挖、高频面试题和难点包装,面试时照着讲。
环境安装文档
JDK、MySQL、Node.js、Maven 等开发环境的安装与配置。
项目运行文档
数据库初始化、前后端启动、模型配置,从零把项目跑起来。
常见问题
下单前最常被问到的几个问题。
这个项目是 Java 还是 Python?
后端是 Java(JDK 21 + Spring Boot 4 + Spring AI 2),前端是 Vue3。
模型需要自己准备吗?
需要一个 API Key,默认配置是 DeepSeek,导入 SQL 后在管理端「AI 模型配置」里填上自己的 Key 即可,改完立刻生效不用重启。通义千问、Kimi、智谱等 OpenAI 兼容服务商也能直接用。模型走接口调用,不需要显卡。
基础薄弱能学会吗?
教程是喂饭级的,从登录注册、统一返回这些工程底座讲起,每章都有验证步骤。基础不够的话,可以先按上面的「学习路径」从基础项目学起。
能写进简历、用作毕业设计吗?
可以,配套面试文档里有项目介绍、难点包装和高频追问,照着就能讲清楚。至于毕业设计,有小伙伴问过我,统一回答一下:AI 实战库板块的项目拿去做毕业设计,就四个字——降维打击。
源码能用于商业项目吗?
源码和教程本质上是给大家学习、提升技能的。如果需要商用,自己二次开发一下也没问题,但禁止原项目 + 教程转手倒卖。我是一个程序员,能看到你们学习我的教程提升能力,能听你们叫我一声大佬,挺幸福的!知足~
售后答疑
买完不是结束跟着教程学习,遇到问题不用自己硬扛。