黑石智算
产品 07 · 应用产品 · 教务与教学

Genius

AI 增强的教务与教学平台

把走班选课、智能排课、评教、考试与作业分析、课程与知识库放进一套教务平台。

教务最费人的两件事:把互相打架的约束排成一学期的课表,以及考完试之后没人看得懂数据。Genius 把这两件事交给求解器与模型,人只负责定规则和最后一次拍板。

覆盖教务到教学的 AI 增强平台:课程与教学班台账、走班选课与分层、智能排课(CSP 回溯 + GA 遗传优化,变量超过 350 切 OR-Tools CP-SAT)、评教评学、考试分析、题库组卷、作业学情、课程中心、知识库,以及实训、岗位、家长端与心理健康。排课约束是可配置的 7 类规则;20 个业务域 AI 端点负责排课解释、成绩归因与教学建议这类判断,AI 结果一律先进「待确认」再由人点头。

产品矩阵
  • 7 类可配置排课约束
  • 20 个业务域 AI 端点
  • 60 个权限点 · 模块级开关
Genius:教务主链路教务主链路1建台账课程、教学班、教师、教室、学部时段域先落库,作为排课的约束来源。2走班选课选课池定容量、志愿优先级与准入分数;选完直接进排课数据,不用二次整理。3求解排课硬约束回溯 + 软约束遗传优化;变量超过 350 切 OR-Tools CP-SAT 求解。4课表发布教师 / 班级 / 教室 / 学生多视角查询;AP、走班、行政班按优先级合并。5教学与评价作业、考试、评教在同一套口径下产生数据:题库组卷、成绩导入、评教问卷。6分析与回写班级分析、知识点得分率、教师画像回流到下一轮开课与排课决策。按真实模块顺序排,不是功能清单堆砌排完之后拿到什么课表(四视角)教师 / 班级 / 教室 / 学生冲突成因哪条约束卡住了谁分析数据评教 / 考试 / 知识点AI 待确认队列AI 建议等人点头审计留痕谁改了什么、什么时候导出与留档课表导出(xlsx / csv)
结构示意 · 六步是真实模块的调用顺序:台账 → 选课 → 排课 → 课表 → 教学评价 → 分析。右侧是这套链路实际产出的东西,不含未交付的能力。

排课:约束是配置出来的,不是写死的

排课排不出来的根因通常不是算法不行,而是规则只存在教务主任的脑子里。Genius 把硬约束与软偏好都做成可配置规则,再用三档求解器把它们解出来——解不出来时告诉你冲突在哪,而不是给一张空课表。

Genius:排课求解管线① 先有台账课程 · 教学班 · 教师 · 教室 · 学部时段域(regular / after_school / evening / elective)② 再配约束(7 类规则,带优先级权重)硬 4 类:禁排时段 · 相同时段 · 分离开 · 单日上限软 3 类:优先时段 · 尽量避开 · 铺开到多天(解冲突时按权重仲裁)③ 三档求解CSP 回溯(变量 ≤ 350)→ GA 优化软约束 → CP-SAT 子进程(变量 > 350)并行 worker 与岛屿按 CPU 自动开;结果回来后逐条二次校验硬约束,不合规不落库④ 出课表,也出解释冲突给成因(谁被哪条约束卡住)· 两版对比说差异 · 增量只重解受影响区间人工调课走事务校验:撞唯一约束返回 409 并说明撞谁,不静默覆盖
场景示意 · 四段就是一次排课的真实顺序。约束是配置项不是代码;解不出来时输出的是冲突成因,不是空白课表。
约束是可配置的 7 类规则
硬禁排时段
指定教师 / 班级 / 学科在若干星期 × 节次不可排:请假、教研、外聘时段都走这条。
硬相同时段
两门课必须同槽(合班课、日语同课时段),按课程节次逐节配对。
硬分离开
两门课不许落在同一时段:实验班与常规班错开、同一教师两门课互斥。
硬单日上限
某教师一天最多几节课;只统计常规课时,课后与晚间时段不计入上限。
软优先时段
希望排在哪些节次,带 0–100 优先级权重,解冲突时按权重仲裁。
软尽量避开
不希望排的节次,与优先时段共用同一套权重,避免硬拦造成无解。
软铺开到多天
同一学科一周内至少铺开 N 天,防止把四节课连堆在两天里。
三档求解器
CSP 回溯变量 ≤ 350
最少约束值优先排序 + 硬约束逐步检查,先把可行解找出来。
GA 遗传优化有可行解之后
按软约束权重给整张课表打分,交叉变异迭代提升;变异同样走时段域过滤,不越界。
OR-Tools CP-SAT变量 > 350
交给 Python 子进程求解;结果回来后逐条二次校验硬约束,任何一条不满足直接判失败,不落库。
解完之后还做什么
  • 并行求解:按 CPU 自动开 worker 与岛屿(GENIUS_SCHED_PARALLEL 默认开启),大规模学期不会排到超时
  • 约束学习:从历史排课里学出偏好权重,下一轮不用从零调规则
  • 增量调课:只重解受影响的部分,改一节课不会把整张课表推翻
  • 冲突可读:诊断给出「哪条约束卡住了谁」,方案对比给出两版差异,不在课表上留红块
  • 人工调课走事务校验:同时段撞唯一约束返回 409 并说明撞谁,不静默覆盖
排课相关的 AI 端点(5)
自然语言调课
「周三下午数学别排连堂」→ 带真实课表上下文的调整建议,人确认后才改。
方案诊断
定位冲突成因:是教师时段、教室容量还是课时超标。
方案对比
两版排课逐格比对,说清差在哪、代价是什么。
增量建议
临时换教师 / 调课时,只给受影响区间的补排建议。
历史模式学习
从既有课表学出学科与时段的偏好分布,作为软约束初值。

走班选课:选完就能排,不用再整理一遍

选课与排课共用同一套数据。选课池负责规则与容量,分层负责把学生分进 A / B 层,课表负责把行政班、走班课与 AP 课合成一张学生看得懂的表。

Genius:走班选课与课表合并选课规则容量上限 · 每生限选志愿优先级:超容量按序入池准入分数:某科成绩下限学部范围 · 社团 / 实验班互斥分层拆班按成绩或人数拆 A / B 层人数低于阈值不拆班分层结果写回学生与走班课走班课进入课表合并课表合并AP 课 > 走班课 > 行政班同一时段只留优先级最高的一门跨学部同号段不误判(带时段类型)教师 / 班级 / 教室 / 学生四视角代课与调课候选打分:同学科 · 同年级 · 当日负载确认后写课表并留应用前快照回滚按快照恢复,不靠二次推导撞唯一约束 409,不静默覆盖
场景示意 · 选课与排课共用同一份数据:选课池定规则,分层决定走班课,课表按优先级合并,代课改的是同一张课表并可回滚。
01

选课池与规则

容量上限、每生限选、志愿优先级按池配置;重复提交幂等(跳过而非报错)。

02

准入分数

池可要求某科最近一次成绩不低于线(如英语 ≥ 85),不达标 409 并说明差在哪。

03

互斥校验

已进实验班的学生不能再选冲突课;社团成员与选课互斥;学部范围之外的学生直接被拒。

04

分层拆班

按成绩或人数把学生拆成 A / B 层,人数低于阈值不拆(避免出现 3 人一个班)。

05

开课门槛

选课人数不达标的教学班自动取消,学生按兜底规则重新入池,不留在无课状态。

06

代课匹配

教师临时缺席,按同学科、同年级、当日课时负载打分给候选,确认后写入并可一键回滚。

课表怎么合成一张
  • 学生课表按 AP 课 > 走班课 > 行政班 的优先级合并,同一时段只留一门
  • 跨学部同号段不误判(占用键带时段类型:常规 / 课后 / 晚间)
  • 教师、班级、教室、学生四个视角查同一份课表数据,不各自维护一份
  • 代课与调课都留应用前快照,回滚按快照恢复,不靠二次推导
选课相关的 AI 端点(4)
选课需求预测
按历史选课与开课情况预估各池报名量,提前发现会爆的池。
学生选课推荐
结合成绩与已选课程给建议,附推荐理由。
分层调整建议
按成绩分布建议 A / B 层边界往哪边挪。
冲突解决建议
选课冲突成组给出可选方案,而不是逐条报错。

考试、作业、评教:同一套口径出数

出题、组卷、成绩导入、批改、评教看起来是四件事,实际最怕的是口径不一致:及格率各算各的、知识点覆盖率各说各话。Genius 把它们收在同一套满分与及格线口径下。

Genius:考试、作业与评教题库与组卷AI 出题 / AI 组卷落到「AI 待确认」教师逐题通过未审核不进试卷题目按知识点归档考试成绩 xlsx 导入逐行校验到行班级 / 学科 / 知识点AI 热力图解读AI 个性化学习计划作业布置 → 提交AI 批改建议教师确认才计分缺陷标签可统计缺交 / 得分 / 维度评教与统一口径模板 → 任务 → 学生问卷 → 结果;AI 五项:情感分析 / 教师画像 / 异常检测 / 模板生成 / 报告生成及格率与均分按题目满分归一化,及格线在系统设置里配;统计窗口按学期 + 时间区间双重限定教师只看自己的评教,教务看执教范围,学生看不到他人答卷
场景示意 · 三段共用一个口径:AI 的结果先落在「待确认」,教师点头才成为正式数据;评教结论与考试成绩按同一套满分与及格线归一化。
题库与组卷
  • 题目按学科与知识点分类归档,AI 批量出题先落「AI 待确认」,教师逐题通过才进题库
  • 也支持 AI 直接组卷:给定题型、数量、难度后出卷,同样要人过一遍
  • 未审核的题不会出现在任何试卷里,避免 AI 生成的错题直接进考场
考试与成绩
  • 成绩支持 xlsx 导入,逐行校验(学号 / 科目 / 满分对不上就指到行)
  • 考试分析按班级、学科、知识点三个维度出数,知识点得分率与班级横向对比同口径
  • AI 两项:知识点掌握热力图解读、按薄弱点生成个性化学习计划
作业与批改
  • 布置 → 提交 → AI 批改建议 → 教师确认,四步里第三步只是建议,确认后才计分
  • 简答与主观题记录缺陷标签(论点缺失、计算错误等),统计可追到维度
  • 作业学情统计:缺交名单、得分分布、维度薄弱项,按教师执教范围裁剪
评教评学
  • 评教模板 → 任务 → 学生问卷 → 结果,问卷可复用可复制
  • AI 五项:文本情感分析、教师能力画像、异常评教检测、按需生成模板、生成评教报告
  • 结果只对有权看的人可见:教师看自己的,教务看范围,学生看不到他人答卷
口径说明
  • 及格率与均分按题目满分归一化后计算,及格线在系统设置里配,不写死 60
  • 统计窗口按学期与时间区间双重限定,期末最后一天的成绩不会被漏掉
  • 同一学生同一科目有多次成绩时取最新一次,历史成绩保留可追溯

课程中心与知识库:教与学的内容底座

课程不是一堆附件:课程 → 章节 → 课时三级结构,视频走转码与加密分发,学习进度与评价回流到课程统计;知识库则把课标与案例变成可检索、可注入出题的条目。

Genius:课程中心与知识库课程结构课程 → 章节 → 课时上传后进转码队列多码率 MP4 + HLS 分片分类 / banner / 精品课程位播放与防下载HLS 分片 AES-128 加密播放走票据校验浏览器拿不到直链地址课时级进度与评论学习与运营进度分布 / 评价分布播放量按课程与区间筛评论与评价可运营统计回流课程中心知识库课标文档 AI 导入(分段抽取)条目检索:中文分词 + 命中排序出题注入课标;空结果静默降级课堂测验 · 掌握度 · 故障上报
场景示意 · 课程走「结构 → 转码 → 加密播放 → 学习数据」这条链;知识库把课标与案例变成可检索、可注入出题的条目,检索不到时不编造。
课程中心
  • 上传视频进转码队列,输出多码率 MP4 与 HLS 分片
  • HLS 分片用 AES-128 加密,播放走票据校验,浏览器拿不到可直接下载的地址
  • 课时级学习进度、评论与评价、课程分类与 banner、精品课程位都在课程中心内维护
  • 课程统计看播放量、学习进度分布、评价分布,按课程与时间区间筛
知识库
  • 课标文档 AI 导入:长文档分段抽取条目,人工可修正
  • 条目检索按中文分词 + 命中数排序(不走触发器,中文 trigram 在 PG 上恒 0 的坑已绕开)
  • 出题时把相关课标条目注入 prompt;检索为空就静默降级,不编造课标
  • 课堂随堂测验、掌握度、故障上报处理闭环、案例库(AI 可生成案例草稿)

AI 用在哪:20 个业务端点,五类判断

Genius 的 AI 不做「聊两句」,做的是原本要人翻数据才能下的判断:这节课为什么排不进去、这个班哪块知识没掌握、下学期哪科会缺教师。所有判断都落回具体业务动作,并且都可以被人推翻。

Genius:AI 落点与闸门业务域 AI 端点 20 个排课 5 · 选课 4 · 考试 2 · 评教 5 · 统计 4 | 另有题库 / 组卷 / 批改 / 课程 / 知识库 / 家长 / 教师画像AI 服务OpenAI 兼容端点(可指内网)异步任务:task_id + 轮询RAG 课标检索,空命中降级建议不做主题库与作业落「AI 待确认」教师确认才成为正式数据报告与统计可一键重生成三道闸门权限裁剪:AI 助手工具通道 7 个工具(6 读 + 1 写),参数按 JSON-Schema 严格校验,越权与不存在统一 404写工具只建异步任务,目标态服务端写死「待确认」,客户端传的 status 一律忽略审计:用户 / 工具 / 状态 / 耗时全留痕,保留期限可配;AI 生成记录与人工操作同表可查范围裁剪:教师只看执教范围、家长只看自己的孩子、学生只看自己
场景示意 · AI 落点是具体业务动作,不是聊天框:给出建议 → 人确认 → 落库,每一步都有权限裁剪与审计;写工具只建异步任务。
业务域 AI 端点按域分
共 20 个,另有题库 / 课程 / 知识库 / 家长 / 教师画像等域
排课5
自然语言调课
方案诊断
方案对比
增量建议
历史模式学习
选课4
需求预测
选课推荐
分层调整
冲突解决
考试2
知识点热力图
个性化学习计划
评教5
情感分析
教师画像
异常检测
模板生成
报告生成
统计4
开课预测
合规审计
选课趋势
教师缺口
三条不越界的规矩
01
只出建议,落库要人点头
题库与作业的 AI 结果先进「AI 待确认」中间态,教师确认才成为正式数据;统计与报告可一键重生成。
02
只读权限内的数据
AI 助手走工具通道:7 个工具(6 读 + 1 写),参数按 JSON-Schema 严格校验,越权与不存在统一 404,不暴露「有没有」。
03
写工具只建任务
唯一的写工具只创建异步任务,目标态由服务端写死为「待确认」,客户端传的 status 一律忽略。
04
每次调用都留痕
工具调用记用户、工具名、状态与耗时,保留期限可配;AI 生成的记录与人工操作同表可查。
其余 AI 落点
  • 题库 AI 出题 · 组卷 AI 出卷(均落「AI 待确认」)
  • 作业简答 AI 批改建议(教师确认后计分)
  • 课程框架生成、课程文档解析、课程优化、教案复核
  • 知识库课标导入、案例库案例生成
  • 家长端学情报告、学生成长分析
  • 教师画像与培训推荐、班级课堂分析
模型端点
OpenAI 兼容端点,系统内可配(默认 DeepSeek,可指内网自建模型)
调用方式
AI 生成一律异步:返回 task_id,前端轮询状态,长任务不占请求
检索增强
课标条目检索注入 prompt,无命中静默降级;不拿空结果编课标

一套系统里的其他模块

模块可以按学校需要开启或关闭;关掉的模块对所有角色不可见(含管理员),与「没有权限」分开记录。

01

实训中心

tp

项目大厅、任务中心、打卡完成;交付版可只开需要的模块。

02

岗位中心

jp

企业库、岗位发布与投递,学生端只看在招岗位。

03

心理健康

mental

匿名倾诉(AI 分类 + 危机标记)→ 心理教师复核 → 干预记录;风险进预警,权重可配。

04

家长端

parent

只看自己孩子:看板、成绩与成长、家校约谈、AI 学情报告。

05

教师发展

teacher_dev

培训与报名、教师画像、按画像推荐培训。

06

学情报告

report

学生学期报告与教师学期汇总,AI 增强,可重生成。

07

统计看板

stats

驾驶舱 + 开课 / 选课 / 教学统计 + 班级课堂分析。

08

考勤与消息

attendance

考勤记录、站内通知分类推送;异常考勤进预警。

09

系统管理

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 试用

官网不提供安装包下载,也没有自助注册或系统登录入口。所有产品一律邮件申请试用:说明使用场景,我们回复开通演示环境或安排演示。