黑石智算
产品 06 · 应用产品 · 出题与考试

试题生成器

AI 出题 · 实操靶场 · 自动判分的考试平台

从出题、组卷到考试、判分与评估,一条链路上跑完;实操题带真实靶场环境。

出题只是第一公里。真正难的是后面三件事:几百人同时开考时不崩、主观题和实操题判得下去、考完之后数据能说明问题。试题生成器把出题、题库、组卷、考试、判分与评估串成一条链路,AI 只负责它擅长的部分,每一次落库都要人点头。

产品矩阵
  • 6 种题型(含实操题)
  • 37 个权限点 · 12 个分组
  • 4 个实操场景模板
试题生成器:出题到评估出题与考试主链路1建分类按知识点组织题库,题目按分类归档;组卷与统计都走同一套分类。2出题或导入AI 按主题批量出题,或把历史 PDF / Word / Excel 拆成题;两条路都先落「未审核」。3审题逐题通过 / 退回,也可批量;未审核的题不会出现在任何试卷里。4组卷题库抽题、按试卷类型、AI 生成、手动选题四种来源混用;可生成考点不变的变种卷。5考试发布考试、考生入场;实操题按题目拓扑在 LinkNode 靶场里为考生起一套真实环境。6判分与评估客观题规则判、主观题 AI 判建议、实操题按考核目标回写;考后按题目与知识点出评估。两条入口(AI 生成 / 文档导入)都先落「未审核」这条链路交出什么已审题库分类 / 题型 / 难度试卷四种来源 + 变种卷实操环境每位考生一套靶场成绩与明细逐题逐点可查能力评估按一场考试出结论审计与指标改题与批改可回溯
结构示意 · 六步是真实模块的调用顺序:分类 → 出题/导入 → 审题 → 组卷 → 考试 → 判分评估。右侧是这套链路实际产出的东西,不含未交付的能力。

出题:题型、难度、语言、考点都是参数

AI 出题最容易出的两个毛病是「同一个考点换个说法出十遍」和「干扰项一眼假」。这两件事在提示词里就是硬约束,不靠事后人工筛。生成任务按主题 + 题型 + 数量 + 难度 + 语言下参数,产出落「未审核」,进不进题库由人决定。

试题生成器:出题管线① 下参数(一次生成任务)主题 / 分类 · 题型 · 数量 · 难度 1–5 档 · 出题语言 · 附加要求语言:简体中文 / 繁體中文 / English / Français / Español / Русский;难度从「概念记忆」到「高阶综合」五档,提示词逐档换写法② 提示词里就是硬约束(不是靠事后筛)每道题只考一个可区分的知识点 · 模板化问法不得出现两次以上干扰项必须合理有迷惑性 · 出题前先把主题拆成子领域再均匀分配③ 模型输出结构化题目纯 JSON 数组:题干 / 选项 / 答案 / 解析;多选答案是字母集合,填空用 ___ 标位解析与答案同批产出,不做事后补写④ 落「未审核」,人点头才进题库未审核的题不会出现在任何试卷里 · 逐题通过/退回,也可批量通过生成任务留记录:参数、模型与结果都可回溯,失败可重试
场景示意 · 四段就是一次 AI 出题的真实顺序。约束写在提示词里,产出先落未审核;AI 不直接往题库里写题,也不直接往试卷里放题。
能出的题型(6 种,含实操题)
判分方式随题型走,不是所有题都靠人看
01
单选题
四个选项 + 唯一正确答案,答案与解析同批产出。
按答案比对
02
多选题
答案字母拼接(如 AB / ACD),漏选、多选都算错,不给部分分。
按答案集合比对
03
填空题
题干用 ___ 标出填空位置,多空题按空位逐一核对。
按空位比对
04
简答题
参考答案是评分要点而不是逐字文本,判分走 AI 建议 + 人工确认。
AI 建议 + 人确认
05
写作题
给材料与写作要求,答案字段放写作要点与评分标准。
AI 建议 + 人确认
06
实操题
题目自带靶场拓扑:节点、链路、每台资源与考核目标;考生在真实环境里做,系统按目标校验。
按考核目标校验
5 档难度,逐档换写法
01
概念记忆
只考察最基本的概念记忆与简单识别;题干直白,选项区分度明显。
02
基本理解
考察基本理解与简单应用,需要一定的知识运用能力。
03
中等分析
考察中等难度的理解与分析,需要综合运用知识做判断。
04
较深推理
考察较深的理解与推理,需要分析复杂场景、辨别细微差别。
05
高阶综合
考察高阶思维:深度分析、综合判断或创造性作答。
出题语言(6 种)

简体中文 · 繁體中文 · English · Français · Español · Русский

题干、选项、答案与解析同语种产出,不做二次翻译。

提示词里的硬约束
  • 考点去重:每道题必须考一个可明确区分的知识点,禁止同考点改句式凑数
  • 句式多样:模板化问法(「以下关于 X 的说法正确的是」)不得出现两次以上
  • 干扰项要合理:错误选项必须有迷惑性,不能是明显无关的内容
  • 覆盖均匀:出题前先把主题拆成子领域,按子领域分配题量,避免全挤在一处
  • 附加要求可注入:任务里能追加自定义要求,跟参数一起进提示词
生成任务怎么跑
01
生成任务留记录:主题、题型、数量、难度、语言与所用模型可回溯;失败的任务可以重试
02
默认未审核:AI 生成与文档导入两条路共用同一个审核队列,批量通过或逐题退回都支持
03
模型端点可换:OpenAI 兼容端点,可指内网自建模型;出题链路不绑定某一家

文档即题库:十几年的卷子不用重新敲一遍

学校手里最值钱的资产是历年卷子,多数躺在 Word 和 PDF 里。导入链路把「解析 → 切题 → AI 标注 → 人工复核 → 合并入库」做成批次:AI 给分类、题型、难度、答案与解析,还给每道题一个置信度,低置信度的排前面先看。

试题生成器:文档变题库① 解析文档PDF(文本层 / 扫描版 OCR)Word .docx · Excel .xlsx不依赖 Office 环境② 切题行首题号:1. / 1、/(1)/ 一、「第 1 题」这类写法也认无编号整块交 AI 分段兜底③ AI 标注分类 · 题型 · 难度答案 · 解析 · 语言逐题给 1–100 置信度④ 置信度与判重置信度低 → 排前面先复核(可按阈值筛)文本归一化:全角转半角、去题号与标点相似度 ≥ 0.85 → 疑似重复,只提示不删疑似重复可跳过 / 覆盖 / 保留,由人决定批次与题目都留状态待分析 · 已分析 · 分析失败(可重试,逐题可改)⑤ 审核与合并审核通过 → 并进题库(分类归档)未通过 → 留在批次里继续修,不进组卷池导入题与 AI 生成题同表,来源可追溯未审核 ≠ 不可修改状态是闸门,不是垃圾桶
场景示意 · 五段是导入批次的真实顺序。切题只做候选块,AI 给字段与置信度,判重只提示不自动删;人审通过的题才并进题库。
能读的格式
  • PDF:文本层直接抽取;扫描版转 OCR(逐页转图 + 中文识别包)
  • Word(.docx):直接读文档结构,不依赖 Office 环境
  • Excel(.xlsx):按行列读题干 / 选项 / 答案列,适合已有结构化题库
怎么切题
  • 题号启发式切题:1. / 1、/(1)/ 一、/ 第 1 题 这些行首编号都认
  • 没有编号的整块文本交给 AI 分段兜底,不在第一步就把内容丢掉
  • 切出来的是候选块,不是最终题目——必须过 AI 标注与人审
AI 标注与判重
  • AI 标注字段:分类、题型、难度、答案、解析、语言
  • 每道题带 1–100 的置信度,可按阈值筛出低置信度的优先复核
  • 判重:文本归一化(全角转半角、去题号与标点)后算相似度,≥ 0.85 视为疑似重复
  • 批次与题目都有状态:待分析 / 已分析 / 分析失败;失败可重试,逐题可改
审核与合并
  • 审核通过才并入题库,未通过的留在批次里继续修,不进组卷池
  • 疑似重复只提示,不自动删:可跳过、覆盖或保留,由人决定
  • 导入的题与 AI 生成的题在同一张表里,来源与生成任务都可追溯

组卷:四种来源混着用,还能出变种卷

一张卷子通常不是一种来源凑出来的:老题从题库抽、新题型让 AI 生成、固定结构走试卷类型、临时补一道手工选题。四种来源能在同一次组卷里混用,按题型设数量与分值,出卷前先看命题比例。

试题生成器:组卷与变种卷题库抽题分类 / 题型 / 难度可排除已用过的题按试卷类型预存题型结构骨架每次一致AI 生成给范围与题量整卷一次出完手动选题逐题挑可加卷内本地题变种卷:考点不变,题面换一遍逐题调用模型 · 逐题记状态:某题失败只重试那一题溯源:每道变种题都指向原题,考点是否真没变可回查实操题变种不留明文答案:静态 flag → 启动时注入的动态 flag变种卷不是「换一批新题」同一份卷子的平行版本,考点与难度保持不变,这样不同场次之间才有可比性。出卷前先校验命题比例:题型与难度的目标占比 vs 实际占比实操题占比上限可配超限就不让出卷导出按题型分组渲染未知题型归「其他」不丢题卷面 / 答案 / 解析分开导出组卷之后(可选)
场景示意 · 四种来源可在同一次组卷里混用;命题比例与实操题上限先校验再出卷,变种卷逐题调用模型、逐题记状态,失败只重试那一题。
四种来源,可以在同一次组卷里混用
题库抽题
按分类、题型、难度、关键词筛,可随机可指定;支持排除已用过的题(按试卷或按试卷类型排除),避免同一道题在平行班里反复出现。
按试卷类型
试卷类型预存题型结构与分值,组卷时按结构自动填充,保证每次考试的骨架一致。
AI 生成
整卷交给 AI:给题型、数量、难度与范围,一次出完整套;产出同样落未审核,要人过一遍。
手动选题
从题库里逐题挑;也可以在卷内直接加本地题(不并进题库),适合临时补充材料。
出卷前的比例校验
  • 命题比例:按题型、难度配目标占比,出卷时能看到实际比例与目标的差
  • 实操题占比上限可配(超了就不让出卷),防止一份卷子全是起环境的实操题把考试拖垮
  • 同一题在别处用过可以排除,平行班卷子不会大面积重题
变种卷:平行版本而不是一批新题
  • 对已有卷子逐题生成变种:考点与难度不变,题干、选项、数据换一遍
  • 变种逐题调用模型、逐题记状态:某题失败可以单独重试,不用整卷重来
  • 变种记录溯源:每道变种题都指向原题,考点是否真的没变可以回查
  • 实操题变种不留明文答案:静态 flag 转成启动时注入的动态 flag,答案不随卷子外泄
导出与归档
  • 导出按题型分组渲染,未知题型归入「其他题型」而不是被静默丢掉
  • 卷面、答案与解析分开,导出前可选是否带答案
  • 真题卷可归档:存档后仍能查原题与变种的关系

实操题:题目带一台真环境,不是一段描述

网维、渗透、应急这类岗位考不出选择题。实操题的题面里带拓扑:几台机、什么链路、每台多少资源,以及「做到什么算过」。考生进场时按题目的拓扑在 LinkNode 靶场里起一套环境,做完由系统按考核目标校验,不靠考官肉眼。

试题生成器:实操题与环境题目里的拓扑(随题走)attacker1C / 1Giweb-012C / 2Gidb-011C / 1Gi内网区 · vxlan链路带类型考核目标(随题走,答案不写题面)静态 flag · 动态 flag(env_key)· 命令输出期望每项带分值,逐项校验累加环境生命周期(每位考生一套)① 申请按题目拓扑与资源在靶场起环境② 注入动态 flag 随机生成后写入靶机变量③ 答题考生在真环境里完成任务,不做选择题④ 校验按考核目标逐项判定,回写分数⑤ 回收交卷结算后销毁;久不动也会被回收
场景示意 · 左图是题目里真实带的那份拓扑(节点、链路、资源),右图是考生进场后的环境生命周期;判分不看过程,只看考核目标是否达成。
内置实操场景模板(4 个)
场景模板决定「出什么类型的题」,可被系统配置覆盖
Web 渗透测试
SQL 注入、文件上传绕过、越权访问、命令注入这些攻击路径;flag 放在 Web 目录或数据库里。
内网横向移动
跳板机、口令复用、权限提升、内网服务探测;flag 落在核心业务服务器。
应急响应
按告警线索排查失陷主机,定位入口点与影响范围。
日志分析
从日志里还原攻击链,回答时间线、来源与影响面。
「做到什么算过」有三种写法
01
静态 flag
题目里写好期望值,考生在靶机里拿到同一个值即得分;适合答案固定的题,不希望暴露时改用动态 flag。
02
动态 flag
启动环境时随机生成并注入靶机环境变量,每场考试、每个考生都不同;题目与试卷里都不出现明文。
03
命令输出期望
在指定节点上执行命令,输出匹配期望值即得分;适合「查出某条配置 / 某个状态」这类任务。
拓扑从哪来
  • 模板权威:题目绑定拓扑模板时,结构以模板为准,AI 只出题面与考核目标
  • 自由拓扑:没有模板时 AI 直接给节点与链路,启动前做结构校验(节点名唯一、链路两端存在)
  • 智能匹配:拿题面去已有模板里挑最接近的几个,先预览差异再决定套用;预览阶段不创建任何环境对象
  • 自动生成:没有合适模板时按题面生成一份新模板,确认后才落地成模板并回填题目
资源与容量
  • 节点资源按类型估:VM 默认 1 核 / 1Gi,容器 0.5 核 / 512Mi;题目里可指定,超范围按边界钳制(0.25–16 核、128Mi–64Gi)
  • 一套题的资源估算 = 各节点之和;考试入场前用它判断集群放不放得下
  • 环境有完整生命周期:申请、占用、交卷回收、异常清理;长时间不动的会话会被回收

考试:几百人同时开考,先算容量再放人

实操题一开考就是几十上百套环境同时起来,这一步最容易把平台压垮。所以入场不是直接进,而是先算这台集群还放不放得下这一场,放不下就排队——排队状态对考生可见,而不是转圈等到超时。

试题生成器:考试入场与容量考生入场考试大厅 → 取号同一考试一个名额池不是先建环境再判容量快照判定新鲜 → 直接读落库结论过期 → 复评后再判,不在入场路径上反复查集群结论放得下 → 入座答题放不下 → 进队列等名额估不出 → 放行排队(不错杀)等待已取号占位正在建环境已入场可以答题过期 / 取消名额释放两件容易被忽略的事资源估算:VM 默认 1C/1Gi、容器 0.5C/512Mi;题目可指定,超范围钳到 0.25–16 核、128Mi–64Gi名额判定 + 占位在同一事务里(数据库顾问锁),不会两人抢到最后一个名额交卷前先结算实操分(交卷后就改不动了),结算完再回收环境,不拆还没判完的靶场超时交卷与手动交卷走同一套钩子;进行中的考试要删得先确认,删除过程还会被挡住
场景示意 · 入场先判容量快照,放不下就排队(状态对考生可见);名额判定与占位在同一事务里完成。交卷前先结算实操分,结算完再回收环境。
入场怎么判
  • 入场先看考试行的容量快照:新鲜就直接用,过期就复评后再判,不在入场路径上反复查集群
  • 名额判定、排队推进与占位在同一事务里完成(数据库顾问锁),不会两个人抢到最后一个名额
  • 容量不可知时一律放行:宁可放进去排队,也不因为估不出来就直接拒绝考生
  • 估值偏保守:模板拿不到时按上限估算节点资源,题目里超范围的值钳到边界
排队状态对考生可见
等待
已取号,等名额释放
占位
拿到名额,正在建环境
已入场
环境就绪,可以答题
过期 / 取消
超时未入场或主动取消,名额让给下一位
交卷与考试状态
  • 交卷前先结算:还在进行中的实操会话必须先算出分并回写——交卷之后再结算就改不动了
  • 交卷后回收环境:结算完再销毁,不会把还没判完的环境先拆掉
  • 超时交卷与手动交卷走同一套钩子,不出现「超时交的卷没判实操分」
  • 考试状态机:未开始 / 进行中 / 已结束;进行中的考试要删得先确认,删除过程还会被挡住

判分:三条路径,一份成绩

客观题还要人批是浪费;主观题直接让 AI 定分是风险。所以判分按题型分三条路走,最后汇总成同一份成绩:客观题规则比对、主观题 AI 给建议、实操题按考核目标校验。

试题生成器:三条判分路径客观题 · 规则单选 / 多选 / 填空按答案比对,即时出分多选漏选多选都算错不给部分分↓主观题 · AI 建议简答 / 写作按要点给分与理由AI 失败记数,可重试教师可改分↓实操题 · 目标校验按考核目标逐项判未达成不计分交卷前统一结算分数回写成绩单↓同一份成绩:逐题得分 + 总分 + 答题明细交卷自动判 / 教师手动判,共用一段评分逻辑会话锁同一场批改串行:不双倍调用、不互相覆盖只批已交卷的会话兜底重扫交卷 5 分钟未批完 → 补批单轮 ≤ 50 场、后台并发 5
场景示意 · 三条判分路径最终汇到同一份成绩。手动批改与自动批改共用同一段评分逻辑,同一场会话串行批改,交卷超过 5 分钟没批完会被兜底重扫。
三条路径各判什么
客观题 · 规则
单选、多选、填空按答案比对,即时出分;多选漏选多选都算错,不给部分分。
主观题 · AI 建议
简答、写作按参考答案要点让模型给分与理由;AI 失败不吞掉这道题,记失败数后可重试或人工改。
实操题 · 目标校验
按考核目标逐项校验并回写分数;未完成的目标不计分,交卷前统一结算。
批改纪律
  • 一次批改只有一个实现:手动批量改与交卷自动改共用同一段评分逻辑,不允许出现第二份口径
  • 同一场会话的批改串行化:自动批改与教师手点同时发生时不双倍调用模型,也不互相覆盖成绩
  • 只批已交卷的会话:进行中的会话拒绝批改,避免把半场成绩写死
  • 兜底重扫:交卷超过 5 分钟还没批完的会话会被补批;单轮上限 50 场、后台并发 5,防一次扫描吃满连接池
  • 自动批改还是手动批改按考试配,两种模式都能事后重批
评估与记录
  • 成绩与答题明细按考试、考生、题目三个维度可查
  • 能力评估按一场考试的作答生成结论,和成绩一起留档
  • 实操记录(起过哪些环境、提交了哪些目标)与成绩单对得上

权限、审计与运维:出题系统也得能交给别人管

题库是学校的资产,谁能出题、谁能看卷、谁能批改必须分开。权限点按「模块:动作」拆到 37 个,菜单与接口用的是同一批 key——界面上看不到的入口,接口也调不通。

37 个权限点 / 12 个分组

题库、试卷、考试、分类、拓扑、导入、用户、角色、权限、配置、审计、系统;角色按需组合授予。

菜单与接口同源

侧边栏按权限裁剪,后端每个写接口同样做权限校验;两边共用同一批 key,改一处必须改另一处。

考试管理面单独设门

发布考试、改时间、删考试走独立权限点;普通出题人看不到管理面,也不会误删进行中的考试。

实操命令白名单

靶场里的命令执行有策略与白名单,题目可以再收紧一层;命令输出经过清洗再入库。

统一登录

可接 Spark 单点登录(RSA 验签),也可用系统内账号;登录限流、失败锁定、Token 轮换都在。

可观测与审计

生成、批改、环境回收链路上都有指标计数;关键写操作留审计,谁改的题、谁批的卷可回查。

部署与集成要求
部署
Linux + Docker Compose 私有化;也可托管试用
后端
Go(chi + pgx)+ PostgreSQL 16
前端
React + TypeScript + Vite
模型
OpenAI 兼容端点,系统内可配;可指内网自建模型
实操环境
对接 LinkNode 靶场(Kubernetes),按题目拓扑起环境
文档导入
PDF / Word / Excel;扫描版 PDF 需 poppler + tesseract 中文识别包
权限
37 个权限点 / 12 个分组;可接 Spark 单点登录

需要实操题就必须有 LinkNode 靶场;不上实操题时,出题、组卷、考试与判分可以独立部署。

申请试题生成器试用

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