Genius
把走班选课、智能排课、评教、考试与作业分析、课程与知识库放进一套教务平台。
教务最费人的两件事:把互相打架的约束排成一学期的课表,以及考完试之后没人看得懂数据。Genius 把这两件事交给求解器与模型,人只负责定规则和最后一次拍板。
覆盖教务到教学的 AI 增强平台:课程与教学班台账、走班选课与分层、智能排课(CSP 回溯 + GA 遗传优化,变量超过 350 切 OR-Tools CP-SAT)、评教评学、考试分析、题库组卷、作业学情、课程中心、知识库,以及实训、岗位、家长端与心理健康。排课约束是可配置的 7 类规则;20 个业务域 AI 端点负责排课解释、成绩归因与教学建议这类判断,AI 结果一律先进「待确认」再由人点头。
- 7 类可配置排课约束
- 20 个业务域 AI 端点
- 60 个权限点 · 模块级开关
排课:约束是配置出来的,不是写死的
排课排不出来的根因通常不是算法不行,而是规则只存在教务主任的脑子里。Genius 把硬约束与软偏好都做成可配置规则,再用三档求解器把它们解出来——解不出来时告诉你冲突在哪,而不是给一张空课表。
- 硬禁排时段
- 指定教师 / 班级 / 学科在若干星期 × 节次不可排:请假、教研、外聘时段都走这条。
- 硬相同时段
- 两门课必须同槽(合班课、日语同课时段),按课程节次逐节配对。
- 硬分离开
- 两门课不许落在同一时段:实验班与常规班错开、同一教师两门课互斥。
- 硬单日上限
- 某教师一天最多几节课;只统计常规课时,课后与晚间时段不计入上限。
- 软优先时段
- 希望排在哪些节次,带 0–100 优先级权重,解冲突时按权重仲裁。
- 软尽量避开
- 不希望排的节次,与优先时段共用同一套权重,避免硬拦造成无解。
- 软铺开到多天
- 同一学科一周内至少铺开 N 天,防止把四节课连堆在两天里。
- CSP 回溯变量 ≤ 350
- 最少约束值优先排序 + 硬约束逐步检查,先把可行解找出来。
- GA 遗传优化有可行解之后
- 按软约束权重给整张课表打分,交叉变异迭代提升;变异同样走时段域过滤,不越界。
- OR-Tools CP-SAT变量 > 350
- 交给 Python 子进程求解;结果回来后逐条二次校验硬约束,任何一条不满足直接判失败,不落库。
- 并行求解:按 CPU 自动开 worker 与岛屿(GENIUS_SCHED_PARALLEL 默认开启),大规模学期不会排到超时
- 约束学习:从历史排课里学出偏好权重,下一轮不用从零调规则
- 增量调课:只重解受影响的部分,改一节课不会把整张课表推翻
- 冲突可读:诊断给出「哪条约束卡住了谁」,方案对比给出两版差异,不在课表上留红块
- 人工调课走事务校验:同时段撞唯一约束返回 409 并说明撞谁,不静默覆盖
- 自然语言调课
- 「周三下午数学别排连堂」→ 带真实课表上下文的调整建议,人确认后才改。
- 方案诊断
- 定位冲突成因:是教师时段、教室容量还是课时超标。
- 方案对比
- 两版排课逐格比对,说清差在哪、代价是什么。
- 增量建议
- 临时换教师 / 调课时,只给受影响区间的补排建议。
- 历史模式学习
- 从既有课表学出学科与时段的偏好分布,作为软约束初值。
走班选课:选完就能排,不用再整理一遍
选课与排课共用同一套数据。选课池负责规则与容量,分层负责把学生分进 A / B 层,课表负责把行政班、走班课与 AP 课合成一张学生看得懂的表。
选课池与规则
容量上限、每生限选、志愿优先级按池配置;重复提交幂等(跳过而非报错)。
准入分数
池可要求某科最近一次成绩不低于线(如英语 ≥ 85),不达标 409 并说明差在哪。
互斥校验
已进实验班的学生不能再选冲突课;社团成员与选课互斥;学部范围之外的学生直接被拒。
分层拆班
按成绩或人数把学生拆成 A / B 层,人数低于阈值不拆(避免出现 3 人一个班)。
开课门槛
选课人数不达标的教学班自动取消,学生按兜底规则重新入池,不留在无课状态。
代课匹配
教师临时缺席,按同学科、同年级、当日课时负载打分给候选,确认后写入并可一键回滚。
- 学生课表按 AP 课 > 走班课 > 行政班 的优先级合并,同一时段只留一门
- 跨学部同号段不误判(占用键带时段类型:常规 / 课后 / 晚间)
- 教师、班级、教室、学生四个视角查同一份课表数据,不各自维护一份
- 代课与调课都留应用前快照,回滚按快照恢复,不靠二次推导
- 选课需求预测
- 按历史选课与开课情况预估各池报名量,提前发现会爆的池。
- 学生选课推荐
- 结合成绩与已选课程给建议,附推荐理由。
- 分层调整建议
- 按成绩分布建议 A / B 层边界往哪边挪。
- 冲突解决建议
- 选课冲突成组给出可选方案,而不是逐条报错。
考试、作业、评教:同一套口径出数
出题、组卷、成绩导入、批改、评教看起来是四件事,实际最怕的是口径不一致:及格率各算各的、知识点覆盖率各说各话。Genius 把它们收在同一套满分与及格线口径下。
- 题目按学科与知识点分类归档,AI 批量出题先落「AI 待确认」,教师逐题通过才进题库
- 也支持 AI 直接组卷:给定题型、数量、难度后出卷,同样要人过一遍
- 未审核的题不会出现在任何试卷里,避免 AI 生成的错题直接进考场
- 成绩支持 xlsx 导入,逐行校验(学号 / 科目 / 满分对不上就指到行)
- 考试分析按班级、学科、知识点三个维度出数,知识点得分率与班级横向对比同口径
- AI 两项:知识点掌握热力图解读、按薄弱点生成个性化学习计划
- 布置 → 提交 → AI 批改建议 → 教师确认,四步里第三步只是建议,确认后才计分
- 简答与主观题记录缺陷标签(论点缺失、计算错误等),统计可追到维度
- 作业学情统计:缺交名单、得分分布、维度薄弱项,按教师执教范围裁剪
- 评教模板 → 任务 → 学生问卷 → 结果,问卷可复用可复制
- AI 五项:文本情感分析、教师能力画像、异常评教检测、按需生成模板、生成评教报告
- 结果只对有权看的人可见:教师看自己的,教务看范围,学生看不到他人答卷
- 及格率与均分按题目满分归一化后计算,及格线在系统设置里配,不写死 60
- 统计窗口按学期与时间区间双重限定,期末最后一天的成绩不会被漏掉
- 同一学生同一科目有多次成绩时取最新一次,历史成绩保留可追溯
课程中心与知识库:教与学的内容底座
课程不是一堆附件:课程 → 章节 → 课时三级结构,视频走转码与加密分发,学习进度与评价回流到课程统计;知识库则把课标与案例变成可检索、可注入出题的条目。
- 上传视频进转码队列,输出多码率 MP4 与 HLS 分片
- HLS 分片用 AES-128 加密,播放走票据校验,浏览器拿不到可直接下载的地址
- 课时级学习进度、评论与评价、课程分类与 banner、精品课程位都在课程中心内维护
- 课程统计看播放量、学习进度分布、评价分布,按课程与时间区间筛
- 课标文档 AI 导入:长文档分段抽取条目,人工可修正
- 条目检索按中文分词 + 命中数排序(不走触发器,中文 trigram 在 PG 上恒 0 的坑已绕开)
- 出题时把相关课标条目注入 prompt;检索为空就静默降级,不编造课标
- 课堂随堂测验、掌握度、故障上报处理闭环、案例库(AI 可生成案例草稿)
AI 用在哪:20 个业务端点,五类判断
Genius 的 AI 不做「聊两句」,做的是原本要人翻数据才能下的判断:这节课为什么排不进去、这个班哪块知识没掌握、下学期哪科会缺教师。所有判断都落回具体业务动作,并且都可以被人推翻。
- 排课5
- 自然语言调课方案诊断方案对比增量建议历史模式学习
- 选课4
- 需求预测选课推荐分层调整冲突解决
- 考试2
- 知识点热力图个性化学习计划
- 评教5
- 情感分析教师画像异常检测模板生成报告生成
- 统计4
- 开课预测合规审计选课趋势教师缺口
- 只出建议,落库要人点头
- 题库与作业的 AI 结果先进「AI 待确认」中间态,教师确认才成为正式数据;统计与报告可一键重生成。
- 只读权限内的数据
- AI 助手走工具通道:7 个工具(6 读 + 1 写),参数按 JSON-Schema 严格校验,越权与不存在统一 404,不暴露「有没有」。
- 写工具只建任务
- 唯一的写工具只创建异步任务,目标态由服务端写死为「待确认」,客户端传的 status 一律忽略。
- 每次调用都留痕
- 工具调用记用户、工具名、状态与耗时,保留期限可配;AI 生成的记录与人工操作同表可查。
- 题库 AI 出题 · 组卷 AI 出卷(均落「AI 待确认」)
- 作业简答 AI 批改建议(教师确认后计分)
- 课程框架生成、课程文档解析、课程优化、教案复核
- 知识库课标导入、案例库案例生成
- 家长端学情报告、学生成长分析
- 教师画像与培训推荐、班级课堂分析
- 模型端点
- OpenAI 兼容端点,系统内可配(默认 DeepSeek,可指内网自建模型)
- 调用方式
- AI 生成一律异步:返回 task_id,前端轮询状态,长任务不占请求
- 检索增强
- 课标条目检索注入 prompt,无命中静默降级;不拿空结果编课标
一套系统里的其他模块
模块可以按学校需要开启或关闭;关掉的模块对所有角色不可见(含管理员),与「没有权限」分开记录。
实训中心
tp项目大厅、任务中心、打卡完成;交付版可只开需要的模块。
岗位中心
jp企业库、岗位发布与投递,学生端只看在招岗位。
心理健康
mental匿名倾诉(AI 分类 + 危机标记)→ 心理教师复核 → 干预记录;风险进预警,权重可配。
家长端
parent只看自己孩子:看板、成绩与成长、家校约谈、AI 学情报告。
教师发展
teacher_dev培训与报名、教师画像、按画像推荐培训。
学情报告
report学生学期报告与教师学期汇总,AI 增强,可重生成。
统计看板
stats驾驶舱 + 开课 / 选课 / 教学统计 + 班级课堂分析。
考勤与消息
attendance考勤记录、站内通知分类推送;异常考勤进预警。
系统管理
admin用户 / 角色 / 权限 / 模块开关 / 审计日志 / 运行环境。
权限、集成与运维:能交给学校自己管
教务系统的权限不是「管理员和非管理员」两档:主任要能看全校排课,教师只能动自己的课,家长只能看自己的孩子。这些边界在 Genius 里逐条落成权限点与数据范围。
60 个权限点、15 个业务分组
权限码按「模块:动作」授予角色,角色支持通配;新增模块必须同步权限目录,测试会拦住漏登记。
模块级开关
模块关闭后对所有角色不可见(含管理员),但「关闭」与「没有权限」是两件事,各自独立记录。
数据范围裁剪
教师按执教范围取数、家长按孩子取数、学生只能取自己;越权一律 403,不静默降级。
Spark 单点登录
RSA 公钥验签,换钥后热重载并重试一次;从 Spark 打开 Genius 不需要二次登录。
AI 助手嵌入
外部助手通过工具通道调用 Genius 的能力,读写分离、参数校验、调用审计一条不少。
安全与可观测
登录限流 5 次/分钟、连续失败锁 30 分钟、JWT 2 小时 + 刷新轮换、5xx 不回内部错误;Prometheus 指标 + 健康检查。
- 部署
- Docker Compose 私有化;需要统一入口与账号时由 Spark 承载
- 后端
- Go 1.24 + chi + pgx / PostgreSQL + Redis
- 前端
- React 19 + TypeScript + Tailwind CSS v4(Vite 构建)
- 排课引擎
- CSP 回溯 + GA 遗传优化;变量 > 350 走 OR-Tools CP-SAT 子进程,结果二次校验
- AI
- OpenAI 兼容端点(可指内网);五域 20 个业务端点,异步 task_id 轮询
- 权限
- 60 个权限点 / 15 组;管理员 / 教务主任 / 教师 / 学生 / 家长 / 心理教师 + 模块开关
- 数据
- PostgreSQL(迁移含 down 回滚);媒体走对象存储 + HLS 加密分片
申请 Genius 试用
官网不提供安装包下载,也没有自助注册或系统登录入口。所有产品一律邮件申请试用:说明使用场景,我们回复开通演示环境或安排演示。