试题生成器
从出题、组卷到考试、判分与评估,一条链路上跑完;实操题带真实靶场环境。
出题只是第一公里。真正难的是后面三件事:几百人同时开考时不崩、主观题和实操题判得下去、考完之后数据能说明问题。试题生成器把出题、题库、组卷、考试、判分与评估串成一条链路,AI 只负责它擅长的部分,每一次落库都要人点头。
- 6 种题型(含实操题)
- 37 个权限点 · 12 个分组
- 4 个实操场景模板
出题:题型、难度、语言、考点都是参数
AI 出题最容易出的两个毛病是「同一个考点换个说法出十遍」和「干扰项一眼假」。这两件事在提示词里就是硬约束,不靠事后人工筛。生成任务按主题 + 题型 + 数量 + 难度 + 语言下参数,产出落「未审核」,进不进题库由人决定。
- 单选题
- 四个选项 + 唯一正确答案,答案与解析同批产出。
- 按答案比对
- 多选题
- 答案字母拼接(如 AB / ACD),漏选、多选都算错,不给部分分。
- 按答案集合比对
- 填空题
- 题干用 ___ 标出填空位置,多空题按空位逐一核对。
- 按空位比对
- 简答题
- 参考答案是评分要点而不是逐字文本,判分走 AI 建议 + 人工确认。
- AI 建议 + 人确认
- 写作题
- 给材料与写作要求,答案字段放写作要点与评分标准。
- AI 建议 + 人确认
- 实操题
- 题目自带靶场拓扑:节点、链路、每台资源与考核目标;考生在真实环境里做,系统按目标校验。
- 按考核目标校验
- 概念记忆
- 只考察最基本的概念记忆与简单识别;题干直白,选项区分度明显。
- 基本理解
- 考察基本理解与简单应用,需要一定的知识运用能力。
- 中等分析
- 考察中等难度的理解与分析,需要综合运用知识做判断。
- 较深推理
- 考察较深的理解与推理,需要分析复杂场景、辨别细微差别。
- 高阶综合
- 考察高阶思维:深度分析、综合判断或创造性作答。
简体中文 · 繁體中文 · English · Français · Español · Русский
题干、选项、答案与解析同语种产出,不做二次翻译。
- 考点去重:每道题必须考一个可明确区分的知识点,禁止同考点改句式凑数
- 句式多样:模板化问法(「以下关于 X 的说法正确的是」)不得出现两次以上
- 干扰项要合理:错误选项必须有迷惑性,不能是明显无关的内容
- 覆盖均匀:出题前先把主题拆成子领域,按子领域分配题量,避免全挤在一处
- 附加要求可注入:任务里能追加自定义要求,跟参数一起进提示词
- 生成任务留记录:主题、题型、数量、难度、语言与所用模型可回溯;失败的任务可以重试
- 默认未审核:AI 生成与文档导入两条路共用同一个审核队列,批量通过或逐题退回都支持
- 模型端点可换:OpenAI 兼容端点,可指内网自建模型;出题链路不绑定某一家
文档即题库:十几年的卷子不用重新敲一遍
学校手里最值钱的资产是历年卷子,多数躺在 Word 和 PDF 里。导入链路把「解析 → 切题 → AI 标注 → 人工复核 → 合并入库」做成批次:AI 给分类、题型、难度、答案与解析,还给每道题一个置信度,低置信度的排前面先看。
- PDF:文本层直接抽取;扫描版转 OCR(逐页转图 + 中文识别包)
- Word(.docx):直接读文档结构,不依赖 Office 环境
- Excel(.xlsx):按行列读题干 / 选项 / 答案列,适合已有结构化题库
- 题号启发式切题:1. / 1、/(1)/ 一、/ 第 1 题 这些行首编号都认
- 没有编号的整块文本交给 AI 分段兜底,不在第一步就把内容丢掉
- 切出来的是候选块,不是最终题目——必须过 AI 标注与人审
- AI 标注字段:分类、题型、难度、答案、解析、语言
- 每道题带 1–100 的置信度,可按阈值筛出低置信度的优先复核
- 判重:文本归一化(全角转半角、去题号与标点)后算相似度,≥ 0.85 视为疑似重复
- 批次与题目都有状态:待分析 / 已分析 / 分析失败;失败可重试,逐题可改
- 审核通过才并入题库,未通过的留在批次里继续修,不进组卷池
- 疑似重复只提示,不自动删:可跳过、覆盖或保留,由人决定
- 导入的题与 AI 生成的题在同一张表里,来源与生成任务都可追溯
组卷:四种来源混着用,还能出变种卷
一张卷子通常不是一种来源凑出来的:老题从题库抽、新题型让 AI 生成、固定结构走试卷类型、临时补一道手工选题。四种来源能在同一次组卷里混用,按题型设数量与分值,出卷前先看命题比例。
- 题库抽题
- 按分类、题型、难度、关键词筛,可随机可指定;支持排除已用过的题(按试卷或按试卷类型排除),避免同一道题在平行班里反复出现。
- 按试卷类型
- 试卷类型预存题型结构与分值,组卷时按结构自动填充,保证每次考试的骨架一致。
- AI 生成
- 整卷交给 AI:给题型、数量、难度与范围,一次出完整套;产出同样落未审核,要人过一遍。
- 手动选题
- 从题库里逐题挑;也可以在卷内直接加本地题(不并进题库),适合临时补充材料。
- 命题比例:按题型、难度配目标占比,出卷时能看到实际比例与目标的差
- 实操题占比上限可配(超了就不让出卷),防止一份卷子全是起环境的实操题把考试拖垮
- 同一题在别处用过可以排除,平行班卷子不会大面积重题
- 对已有卷子逐题生成变种:考点与难度不变,题干、选项、数据换一遍
- 变种逐题调用模型、逐题记状态:某题失败可以单独重试,不用整卷重来
- 变种记录溯源:每道变种题都指向原题,考点是否真的没变可以回查
- 实操题变种不留明文答案:静态 flag 转成启动时注入的动态 flag,答案不随卷子外泄
- 导出按题型分组渲染,未知题型归入「其他题型」而不是被静默丢掉
- 卷面、答案与解析分开,导出前可选是否带答案
- 真题卷可归档:存档后仍能查原题与变种的关系
实操题:题目带一台真环境,不是一段描述
网维、渗透、应急这类岗位考不出选择题。实操题的题面里带拓扑:几台机、什么链路、每台多少资源,以及「做到什么算过」。考生进场时按题目的拓扑在 LinkNode 靶场里起一套环境,做完由系统按考核目标校验,不靠考官肉眼。
- Web 渗透测试
- SQL 注入、文件上传绕过、越权访问、命令注入这些攻击路径;flag 放在 Web 目录或数据库里。
- 内网横向移动
- 跳板机、口令复用、权限提升、内网服务探测;flag 落在核心业务服务器。
- 应急响应
- 按告警线索排查失陷主机,定位入口点与影响范围。
- 日志分析
- 从日志里还原攻击链,回答时间线、来源与影响面。
- 静态 flag
- 题目里写好期望值,考生在靶机里拿到同一个值即得分;适合答案固定的题,不希望暴露时改用动态 flag。
- 动态 flag
- 启动环境时随机生成并注入靶机环境变量,每场考试、每个考生都不同;题目与试卷里都不出现明文。
- 命令输出期望
- 在指定节点上执行命令,输出匹配期望值即得分;适合「查出某条配置 / 某个状态」这类任务。
- 模板权威:题目绑定拓扑模板时,结构以模板为准,AI 只出题面与考核目标
- 自由拓扑:没有模板时 AI 直接给节点与链路,启动前做结构校验(节点名唯一、链路两端存在)
- 智能匹配:拿题面去已有模板里挑最接近的几个,先预览差异再决定套用;预览阶段不创建任何环境对象
- 自动生成:没有合适模板时按题面生成一份新模板,确认后才落地成模板并回填题目
- 节点资源按类型估:VM 默认 1 核 / 1Gi,容器 0.5 核 / 512Mi;题目里可指定,超范围按边界钳制(0.25–16 核、128Mi–64Gi)
- 一套题的资源估算 = 各节点之和;考试入场前用它判断集群放不放得下
- 环境有完整生命周期:申请、占用、交卷回收、异常清理;长时间不动的会话会被回收
考试:几百人同时开考,先算容量再放人
实操题一开考就是几十上百套环境同时起来,这一步最容易把平台压垮。所以入场不是直接进,而是先算这台集群还放不放得下这一场,放不下就排队——排队状态对考生可见,而不是转圈等到超时。
- 入场先看考试行的容量快照:新鲜就直接用,过期就复评后再判,不在入场路径上反复查集群
- 名额判定、排队推进与占位在同一事务里完成(数据库顾问锁),不会两个人抢到最后一个名额
- 容量不可知时一律放行:宁可放进去排队,也不因为估不出来就直接拒绝考生
- 估值偏保守:模板拿不到时按上限估算节点资源,题目里超范围的值钳到边界
- 等待
- 已取号,等名额释放
- 占位
- 拿到名额,正在建环境
- 已入场
- 环境就绪,可以答题
- 过期 / 取消
- 超时未入场或主动取消,名额让给下一位
- 交卷前先结算:还在进行中的实操会话必须先算出分并回写——交卷之后再结算就改不动了
- 交卷后回收环境:结算完再销毁,不会把还没判完的环境先拆掉
- 超时交卷与手动交卷走同一套钩子,不出现「超时交的卷没判实操分」
- 考试状态机:未开始 / 进行中 / 已结束;进行中的考试要删得先确认,删除过程还会被挡住
判分:三条路径,一份成绩
客观题还要人批是浪费;主观题直接让 AI 定分是风险。所以判分按题型分三条路走,最后汇总成同一份成绩:客观题规则比对、主观题 AI 给建议、实操题按考核目标校验。
- 客观题 · 规则
- 单选、多选、填空按答案比对,即时出分;多选漏选多选都算错,不给部分分。
- 主观题 · 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 靶场;不上实操题时,出题、组卷、考试与判分可以独立部署。
申请试题生成器试用
官网不提供安装包下载,也没有自助注册或系统登录入口。所有产品一律邮件申请试用:说明使用场景,我们回复开通演示环境或安排演示。