核心思路:普通测验擅长检验的是能否认出正确选项,而口试迫使人自己把要求讲清楚。在这套方案中,AI的作用不是提示答案,而是进行统一的语义评估。
传统测验便于大规模开展知识考核,但有一个明显的弱点:员工能看到答案选项。即使题库质量很高,也有一部分分数可以靠认出熟悉的表述、排除明显错误的选项,或者干脆靠背题拿到。
口试则完全不同。考生必须自己组织答案,讲清操作顺序,说出危险因素、限制条件和强制性要求。这种形式更能看出他究竟是理解了规则,还是只是以前见过正确的表述。
但普通口试也有自己的问题——耗时,而且不同考官之间不可避免地存在差异。有的考官追问得更深,有的更快放行;有的看重措辞是否准确,有的看重意思是否到位。因此,2026年春天,我们开始探索把AI当作第二考官来用:不是取代考核委员会,而是作为一个统一的工具——由它提问、听取回答,并以同样的方式执行既定的评分标准。

最初的想法相当直接:把规程上传给AI,让它扮演考官,同时负责随机选取知识板块、拟定问题并评估回答。实践很快表明,生成式模型并不是实现真正随机的最佳工具。它擅长推理,但它所说的“随机问题”并不总是数学意义上的随机选择。
于是我们开始拆分职能。法规来源只负责知识;随机选择只负责题号;考官只负责考试流程和评估回答。这是第一个重要的架构结论:职能划分得越严格,系统运行就越稳定。
后文附录中的提示词也特意按照与本文相同的逻辑排列:先是历史方案,然后是题库,接着是当前的HTML版本、评分、Word/Excel以及数据保护。

当我们把知识库和考试本身分开之后,一套可行的方案才成型。我们在NotebookLM中按不同笔记本上传了法规来源:哈萨克斯坦共和国《民防法》、《劳动法典》以及各行业规程——涉及起重机械、露天采矿作业、压力容器、钻爆作业等多个方向。
Gemini Bot承担考官的角色。它收到的指令是:只依据已接入的法规库开展工作,一次只提一个问题,通过麦克风接收口头回答,评估的不是字面是否一致,而是意思——准确性、完整性和逻辑性。
在其中一个版本里,我们准备了一个包含300道编号题目的题库,每题都附有参考答案和对应的法规条款。我们需要杜绝由模型“自行决定”选题,于是有了我们自己的随机题号生成器。
参见提示词附录:Prompt 1——NotebookLM + Gemini考官的完整历史场景,包括三道题、题号生成器和回答评估;Prompt 2——依据法规文件编制题库。




我们有意设计了一种无需单独程序、可以描述和复现的机制。输入数据后,记录下当时的时、分、秒和毫秒。取值为零的替换为一。然后将这些数值相乘:
R = H × M × S × MS
如果结果大于300,就反复除以300,直到小于或等于300为止。然后将这个数向上取整,作为题库中的题号。第二题取第一题回答完毕的时刻,第三题取第二题回答完毕的时刻。如果算出的题号与已经提过的题目重复,就在其基础上加一,超过300则重新从一开始。
如今看来这套方案有些繁琐,但在当时它解决了一个重要问题:选题不再取决于AI的“意愿”。随机性成了一项独立的功能,考官拿到的是一个确定的题号。
参见附录:题号选取公式、每次作答后的重新计算以及避免重复的规则,都保留在Prompt 1中。

2026年4月,我们按照这套方案开展了试点,共有54人参加——包括工人、职员和工程技术人员。考试共三道题,及格线为70%。必考方向是《民防法》和《劳动法典》;此外,每位参考人员还要接受与其本职工作相关的行业规程考核。
回答以语音方式进行。AI将回答与法规库进行比对,给出的不仅是百分比,还有对回答的结构化分析:哪些内容答对了,哪些没有说全,哪里出了错,以及应当回头查阅哪项法规来源。
正是在这里,其主要优势显现出来:系统考查的不是对答案选项的记忆,而是一个人自己解释要求的能力。

试点验证了这一原则本身,但也暴露出薄弱环节。考试记录需要复制出来,另存到Word中;最终百分比随后还要手工录入Excel。不同方向使用各自独立的笔记本和机器人,专业人员不得不在它们之间来回切换。
此外,第一版是通过姓名、职务和部门来识别考生的。对于内部试点来说这可以理解,但随着进一步推进,问题变得显而易见:如果部分处理由云端模型完成,最好把个人数据从这条数据流中剔除。
于是有了下一个阶段——不再只是又一条提示词,而是我们自己的软件外壳。
新版本以可移植的HTML/JavaScript应用形式,在独立的浏览器窗口中运行。它不需要Python、Node.js、数据库,也不需要管理员权限。题库、法规来源、考试历史和设置都保存在本地计算机上。
必须准确区分本地部分和云端部分。界面本身、本地数据库、选题、最终百分比的计算、Word考试记录和Excel导出都在用户的计算机上完成。但语音识别、回答的语义评估、云端语音播报以及根据法规文件生成题目草案,则需要调用云端模型。也就是说,这不是“完全离线的AI”,而是一个本地的安全外壳,只保留最低限度的必要云端环节。
短短几天,这套架构就给了我们第一次试点中所欠缺的东西:用一个界面取代一堆机器人,统一的已审定题库,自动生成的考试记录,以及持续累积的成绩历史。
如果读者想从零开始复现当前版本,主要的起步请求是Prompt 3。它正是为氛围编程而设计的:AI一步一步地引导不懂编程的人,每次只做一个动作,并检查每一步的结果。

在新版本中,员工无需输入姓名和工号。考试前使用形如RSS 1256的化名RSS代码。RSS ↔ 姓名的对应关系单独保存在企业内部网络中,之后可以在本地与考试结果合并。
无需向云端数据流传送姓名或工号。模型进行语义评估时,只需要题目本身、参考答案、评分标准和员工的语音回答。界面上还专门提示:不得对着麦克风说出任何个人数据。
Word考试记录保存RSS代码,姓名和考核科目两栏留空,待下载后再填写。每日Excel导出同样只包含RSS代码、职务、部门、语言、题目数量和结果——不含姓名和工号。
参见附录:Prompt 8——个人数据审计,以及如实划分本地环节与云端环节。Word/Excel结果自动生成的逻辑见Prompt 7。

这是与第一版的又一个根本区别。现在不必再提前手工准备整整300道题。可以把法规来源直接导入程序:Word、PDF、RTF、ODT、TXT或Markdown格式均可。随后,AI会从文档各处挑选有实质内容的片段,生成题目草案、参考答案以及2–8条带权重的评分标准。
但自动生成的题目不会直接进入正式考试,而是先处于草案状态。专业人员必须核对题目表述、参考答案、评分标准和来源出处,确认无误后才能审定该题。考试只使用已审定的题目。
也可以从CSV或XLSX导入事先准备好的题库。每道题都记录主题、语言、来源、难度、参考答案和评分标准。因此,不同的考核方向可以在同一个应用中管理,而不必分散在不同的机器人里。
随机选题的方式也变了。程序不再使用我们以前那套基于时间的公式,而是调用系统的密码学随机数生成器,抽取所需数量的已审定题目。这样更简单、更可靠,也不需要AI去假装随机。
参见附录:Prompt 4——从法规来源生成题目草案,并必须经过方法审核;Prompt 9——在同一界面中整合多个考试方向。



考生可选择俄语或哈萨克语。题目既可以在屏幕上阅读,也可以收听。每种语言都使用单独的语音播报指令,使发音自然、规范,不带多余的外国口音。
整场考试只需申请一次麦克风权限。作答可以手动点击按钮开始,也可以在准备30秒、1分钟、2分钟或3分钟后自动开始。录音结束后,系统识别语音、显示转写文本,并允许在评分前核对文本。
用自己的话作答并不算缺点。评估方看的不是字面是否一致,而是意思。每条评分标准可能处于以下状态之一:完全阐明、部分阐明、缺失,或与要求相矛盾。随后,程序算法按预先设定的权重计算百分比。如果出现严重的危险性错误,还可以单独对最高得分设置上限。
这样一来,生成式模型负责理解意思,而最终百分比则依据评分标准的结构以确定性方式计算。这是一个重要的分工:AI不应随意“编造分数”。
参见附录:Prompt 5——按评分标准对回答进行语义评估;Prompt 6——单独的程序化百分比计算。这样,由模型判定回答的内容,而最终分数以确定性方式计算。


视频《浏览器版口试》见文末。
视频展示的是已经完成的成果:启动考试、语音作答、评分、生成并下载考试记录、历史记录以及后续导出。创建这样一个应用的分步逻辑从Prompt 3开始。
考试结束后,专业人员会得到一份现成的Word考试记录。其中保存了题目、回答转写文本、评分、法规来源、答得好的方面、缺失的要点和错误。姓名一栏留空,RSS代码予以保留。
与此同时,每场考试都会写入本地历史记录。一天结束时,专业人员选择日期,点击“按日期导出Excel”,即可生成一张汇总所有考试的表格:日期、时间、RSS代码、职务、部门、语言、题目数量、及格线、最终百分比、结果和状态。
这份Excel导出已经可以汇入累计台账,再进一步接入交互式仪表盘。也就是说,我们得到的正是此前几篇文章中用过的同一原则:先是单项操作,然后积累结构化数据,最后形成管理分析。
参见附录:Prompt 7——Word考试记录和每日Excel导出的结构,不含姓名和工号。
这样的考官并不只局限于工业安全领域。按同样的逻辑,还可以开展劳动保护要求、行业规程、操作规程、工艺规程、企业内部标准以及其他文件的知识考核——凡是重要的不在于选对字母,而在于用自己的话讲清要求的场合,都可以使用。
它可以用作考核委员会考核前的预考,可以作为培训的一个环节,可以用于特定方向的口头考评,也可以作为抽查员工是否理解要求的工具。但凡是法律或企业内部程序要求由考核委员会和授权人员作出决定的地方,最终决定权仍在人手中。
与第一次试点相比,最主要的变化在于:我们告别了一堆各自独立的AI机器人和手工搬运结果的做法,转向一个统一、可重复的流程:来源 → 已审定题目 → 语音作答 → 语义评估 → 考试记录 → Excel → 分析。
这个项目最有价值的部分,既不是语音,也不是漂亮的界面,而是知识考核逻辑本身的转变。
测验问的是:“你能认出正确选项吗?”口试问的是:“你能自己讲清楚该做什么、为什么这样做吗?”
AI让这种形式得以规模化。它不会免除考核委员会的责任,也不会取代法规要求。它能让每个人被以同样的方式提问、以同样的方式剖析回答的意思,并立即指出需要弥补的具体短板。
第一版的历史逻辑 + 面向可移植浏览器端考官的更新版提示词
附录有意将新旧两种做法分开。前面的提示词展示演进过程;后面的则是更实用的当前架构,其中来源、题库生成、方法审核、语音作答、评分、Word和Excel各自独立。
与正文的关联:“第二阶段:NotebookLM作为知识库,Gemini Bot作为考官”和“我们最初的随机数生成器是如何工作的”两节。
角色
你是一名严格的考官,负责考核对工业安全、民防和劳动保护要求的掌握情况。
只依据已接入的法规库和已审定的题库开展工作。不要使用互联网和外部知识。不要臆造要求。
语言
考试使用所选语言进行:RU或KZ。不要混用语言。
结构
考试共3道题。每次只提一个问题。只有在上一题作答并评分之后,才能提出下一题。
及格线:70%。
第1题的选取
输入数据后,记录本地时间:
H——时;M——分;S——秒;MS——毫秒。
如果任一数值为0,将其替换为1。
R1 = H × M × S × MS。
当R1 > 300时:R1 = R1 / 300。
INDEX1 = ceil(R1)。如果INDEX1 = 0,则取1。
从已审定的300题题库中提出第INDEX1号题。
第2题
收到第1题的回答后,再次记录H、M、S、MS并重复计算。
如果新题号已被使用,则加1。如果题号变为>300,则取1。
第3题
收到第2题的回答后,重复同样的步骤。不得重复已提过的题目。
回答评估
评估意思,而非字面是否一致。
1. 准确性——最高60%。
2. 完整性——最高25%。
3. 逻辑性——最高15%。
如出现危险的表述、被禁止的操作或与法规要求严重矛盾之处,该题得分不得超过30%。
每道题须列出:
- 题号和题目表述;
- 法规来源;
- 哪些内容阐述正确;
- 哪些内容没有提到;
- 哪些内容说错了;
- 该题得分百分比。
最终结果
RESULT = (Q1 + Q2 + Q3) / 3。
将结果四舍五入为整数。
≥70%——通过。
<70%——未通过。
第三题作答后,生成最终考试记录。与正文的关联:第二阶段中的300题历史题库。如果需要事先依据法规文件准备题库,就使用这条提示词。
我上传一份法规文件。
需要为口试准备一个题库。
规则:
1. 只依据上传的文件开展工作。
2. 不要使用外部知识。
3. 不要为了考记忆而问条款编号——要考查对要求的实际理解。
4. 题目要分布在整份文件中,而不是只集中在前几章。
5. 剔除重复和几乎相同的题目。
6. 为每道题准备参考答案和来源出处。
7. 在参考答案中标出必备要素,缺少这些要素的回答不能算完整。
8. 单独标注严重错误——可能导致危险操作的表述。
表格格式:
序号 | 主题 | 题目 | 参考答案 | 必备要素 | 严重错误 | 文件 | 条/款 | 页码 | 语言
最多准备300道题。如果法规文件中没有足够的素材支撑300道内容各不相同的题目,不要人为制造重复:以实际有依据的数量为准。与正文的关联:“第三阶段:可移植的浏览器端考官”一节。这是写给想要复现当前版本的读者的主要提示词。
我不是程序员。请一步一步地带我创建一个可移植的AI口试考官。
不要一下子给出20个操作。每一步都要:
1. 解释我们在做什么、为什么这样做。
2. 只给出一个具体操作,或者一个现成的代码块/文件。
3. 等我发来截图或结果。
4. 检查截图,确认无误后再进入下一步。
目标架构
- 可移植的HTML/JavaScript应用;
- 在Windows上运行,无需Python、Node.js和管理员权限;
- 题库、来源和历史记录均在本地存储;
- 考试数据流中不含姓名和工号;
- 必须使用形如RSS 1256的化名RSS代码;
- 支持俄语和哈萨克语;
- 从XLSX/CSV导入题库;
- 上传DOC/DOCX/PDF/RTF/ODT/TXT/MD格式的法规来源;
- 按来源中随机分布的板块生成题目草案;
- 每道生成的题目在用于考试前,都必须经专业人员审核并审定;
- 每道题记录主题、题目表述、参考答案、2–8条带权重的评分标准、来源以及条款出处;
- 考试只使用已审定的题目;
- 随机选题通过密码学随机数生成器以程序方式实现,而不是依赖模型的“随机性”;
- 题目数量和及格线可配置;
- 通过麦克风语音作答;
- 作答开始方式:手动开始,或在准备30/60/120/180秒后自动开始;
- 整场考试只申请一次麦克风权限;
- 由云端模型进行语音识别;
- 按评分标准对回答进行语义评估;
- 按评分标准的权重以确定性方式计算百分比;
- 出现严重错误时,套用可配置的得分上限;
- RU/KZ题目采用自然的语音播报,系统语音作为备用;
- 自动生成Word考试记录;
- 本地历史记录;
- 按所选日期将全部考试导出为Excel;
- 本地数据库备份,不含API密钥。
安全
明确区分本地环节和云端环节。说明哪些数据会发送到云端。不得向云端传送姓名和工号。在语音界面中直接显示警示:不要说出个人数据。
先从架构和文件结构开始。只有在我确认之后才编写代码。与正文的关联:“题库现在如何生成”一节——从上传的法规来源生成题目草案。
你只负责生成考试题目的草案。任何生成的题目都不自动视为已审定。
输入:
- 法规文件;
- 语言:RU或KZ;
- 所需题目草案数量;
- 由程序生成的随机数/seed。
任务:
1. 利用seed,在文件各处选取有实质内容的板块,尽量不要前后相连。
2. 只依据该文件开展工作。
3. 每个板块拟定一道具有实际意义的题目。
4. 不要为问条款编号而问条款编号。
5. 准备简明的参考答案。
6. 准备2至8条评分标准。每条标准应考查一个独立的意义要素。
7. 为各条标准分配权重,使总和恰好为100。
8. 注明主题、难度、页码/条/款或其他来源出处。
9. 不要与相邻片段的题目重复。
10. 如果某个板块中没有足以构成一道实质性题目的要求,就跳过它,另选一个。
返回结构化结果:
主题 | 题目 | 参考答案 | 带权重的评分标准 | 来源 | 出处 | 难度 | 语言
每条结果的状态:草案,需经方法审核。与正文的关联:“考试过程:语音出题——语音作答”一节——由模型判定每条评分标准的意思阐明到了什么程度。
你是一名严格而客观的劳动保护与工业安全考官。
评估意思,而非字面是否一致。
如果同义词和口语化表述能够明确无误地传达法规要求,应予认可。
只依据提供的题目、参考答案、评分标准和法规片段开展工作。
不要凭记忆或从互联网添加要求。
对每一条评分标准,只返回一个状态:
- FULL——完全阐明;
- PARTIAL——阐明了主要部分,但有遗漏;
- MISSING——该要素缺失;
- INCORRECT——回答与要求相矛盾。
对每条评分标准,给出员工回答中的简短依据,并附上说明。
仅当回答中包含会造成不可接受风险、且与法规要求相矛盾的危险表述或行为时,才设定CRITICAL_ERROR = true。
不要仅仅因为回答不完整就使用critical_error。
另外单独生成:
- WELL_SAID——哪些内容阐述得好;
- PARTLY_SAID——哪些内容只阐述了一部分;
- MISSING——哪些内容没有说到;
- INCORRECT——哪些内容说错了;
- SUMMARY——用考试语言写出的简短结论。
不要“凭感觉”估算最终百分比。百分比必须在收到你给出的各项状态之后,由程序算法按评分标准的权重计算得出。与正文的关联:同样是“考试过程:语音出题——语音作答”一节——百分比由程序计算,而不是由模型“凭感觉”给出。
分数计算不要依靠模型的自由评估,而要通过程序实现。
每条评分标准都有一个以百分比表示的权重weight。
系数:
FULL = 1.0
PARTIAL = 0.5
MISSING = 0
INCORRECT = 0
SCORE = 所有评分标准的(weight × 系数)之和。
将结果限制在0–100范围内,并四舍五入到0.1。
如果AI评估器返回critical_error=true:
SCORE = min(SCORE, CRITICAL_CAP),其中CRITICAL_CAP在设置中设定(例如40%)。
所有题目完成后:
TOTAL_SCORE = 各题得分的算术平均值。
PASSED = TOTAL_SCORE >= 设定的及格线。
重要:
- 模型判定评分标准的语义状态;
- 程序计算百分比;
- 模型不得自行给出任意的最终分数。与正文的关联:“考试记录与历史现已自动生成”一节——Word考试记录和每日Excel导出。
完善口试考官程序。
WORD考试记录
考试结束后,自动生成.docx文件。
考试记录中应包含:
- 日期;
- RSS代码;
- 职务/工种;
- 部门;
- 语言;
- 及格线;
- 最终结果:通过/未通过;
- 每道题目;
- 回答的转写文本;
- 该题得分百分比;
- 法规来源及出处;
- 哪些内容阐述得好;
- 哪些内容没有说到;
- 错误。
“姓名”和“考核科目”两栏留空,待下载后在本地填写。
文件名:Protocol_RSS_1256_YYYY-MM-DD.docx。
按日期导出EXCEL
在“历史记录”栏目中添加日期选择和“按日期导出Excel”按钮。
列:
序号 | 考试日期 | 开始时间 | RSS代码 | 职务/工种 | 部门 | 语言 | 题目数量 | 及格线 % | 最终得分 % | 结果 | 状态 | 结束时间 | 考试ID。
不得包含姓名和工号。
Excel只能根据当前计算机上的本地历史记录生成。
RSS <-> 姓名的对应关系只能在企业内部网络中离线与结果合并。与正文的关联:“第三阶段:可移植的浏览器端考官”和“个人数据保护:用RSS代码替代姓名”两节。
对口试考官应用进行一次技术审计。
需要如实区分本地操作和云端操作。
检查并说明:
1. 哪些数据保存在IndexedDB/localStorage中。
2. 语音转写时,哪些数据会发送到云端模型。
3. 语义评估时,哪些数据会被发送。
4. 生成题目草案时,哪些数据会被发送。
5. 是否会传送姓名、工号、员工名单或RSS <-> 姓名对照表。
6. API密钥保存在哪里。
7. 备份中是否包含API密钥。
8. 应用完全关闭后还会留下什么。
9. 如何删除本地历史记录和来源。
10. 试点运行期间还存在哪些风险。
对结果表述的要求:
如果语音识别、评分、TTS或题目生成使用了云端API,不得把应用称为“完全离线”。
正确的表述是:“带有本地数据库和受控云端AI环节的本地可移植外壳”。与正文的关联:“题库现在如何生成”一节——在同一个考官中容纳多部规程和多个方向,无需在不同机器人之间切换。
改进题库和考试启动界面,使之不再需要为每部规程单独创建一个机器人。
每道题都已有“主题/方向”字段。
在考试界面中添加方向选择:
- 单个主题板块;
- 同时选择多个主题板块;
- “全部所选方向”模式。
启动考试时:
1. 只筛选已审定的题目;
2. 考虑所选语言;
3. 考虑所选方向;
4. 使用程序化的密码学随机数生成器,随机抽取设定数量的题目;
5. 尽可能在所选方向之间均匀分配题目;
6. 不得出现重复;
7. 如果所选范围内的题目数量不足,停止启动并显示清晰易懂的提示信息。
在Word考试记录和Excel中另外保存所选的考试方向。以下编号与正文同步。在正文中相应阶段旁边有直接指向的“参见Prompt …”,而这里每条提示词下方都注明了它对应正文的哪一节。
评论 2
🤝