129 lines
6.5 KiB
Markdown
129 lines
6.5 KiB
Markdown
# 文枢·数学法官 (Judge) · 产品说明书与逻辑指南
|
||
|
||
**版本**: V1.0
|
||
**适用对象**: 产品经理、研发工程师、数学教研专家
|
||
**文档密级**: 内部公开
|
||
|
||
---
|
||
|
||
## 1. 前置说明:核心设计决策 (Preamble)
|
||
|
||
在构建这位AI“法官”之前,我们针对数学评分的特殊性,做出了四项核心技术决策。理解这些决策,有助于您理解法官的行为逻辑。
|
||
|
||
### 决策一:“所见即所得”的视觉感知
|
||
* **问题**: 以前的系统先用OCR把图片转成文字再评分,但在数学中,根号、分数、矩阵如果OCR转错了,后面全错。
|
||
* **法官逻辑**: 我们采用 **Vision First (视觉优先)** 策略。法官拥有“眼睛”,直接阅读学生答卷的原图,就像真人老师阅卷一样。OCR仅作为辅助参考。
|
||
* *这意味着:学生划掉的、涂改的痕迹,法官都能看见并自动忽略,只看有效作答区域。*
|
||
|
||
### 决策二:ECF(错误传递)的智能推演
|
||
* **问题**: 学生第一步算出 $x=3$ (答案是2),第二步用 $2x$ 算出 $6$。传统机器会判全错(因为答案不对),但真人老师会给第二步的分(因为逻辑对)。
|
||
* **法官逻辑**: 我们赋予了法官 **“反事实推理”** 能力。当发现结果错误时,法官会在思维中假设“如果学生这一步算对了”,然后推演后续步骤。如果后续逻辑成立,且计算符合学生自己的错误数据,法官会判给 **“过程分”**。
|
||
|
||
### 决策三:多解法“择优录取”
|
||
* **问题**: 一道立体几何题,学生可能用几何法,也可能用向量法,甚至混着用。
|
||
* **法官逻辑**: 法官会尝试将学生的答案与“检察官”提供的所有可能解法路径(Path A, Path B...)进行匹配,并**取其中得分最高**的一条路径作为最终判决依据。
|
||
|
||
### 决策四:颗粒度的“模糊对齐”
|
||
* **问题**: 评分标准是按“步”给分的,但学生写字不一定一行一步,有时三步并作一行写。
|
||
* **法官逻辑**: 不强制要求物理行号的一一对应。只要法官在学生的答案中识别出了评分点要求的**逻辑要素**(公式、关键结论),即使书写格式不规范,也会给予 **“模糊匹配”** 分数。
|
||
|
||
---
|
||
|
||
## 2. 角色定义:法官是谁?
|
||
|
||
**文枢·数学法官 (Math Judge)** 不是出题人,也不是做题家,他是一位严格的**逻辑状态机执行者**。
|
||
|
||
* **他的职责**: 依据《评分细则》(由检察官Agent生成)和《数学逻辑宪法》,对学生的答卷进行比对、判定、给分。
|
||
* **他的权力边界**: 他不能发明规则。如果学生用了一种极其冷门且未在规则中定义的“超纲解法”,法官的职责不是瞎判,而是**报警**(标记为“需人工复核”)。
|
||
|
||
---
|
||
|
||
## 3. 法官的“判案”流程 (Workflow)
|
||
|
||
对于数学老师而言,理解法官的思维过程至关重要。
|
||
|
||
### 第一步:视觉扫描与语义提取
|
||
法官“阅读”学生答卷图片。他会自动过滤掉被划掉的墨迹,识别出数学符号(如 $\int$, $\sum$, $\Delta$),并在脑海中构建出学生的解题流。
|
||
|
||
### 第二步:路径锁定
|
||
法官拿着“检察官”给出的几套标准解法(例如:解法A-通项公式法,解法B-累加法),去套学生的答案。
|
||
* *判定*: “该考生的解题特征与【解法A】匹配度90%,锁定使用【解法A】标准进行评分。”
|
||
|
||
### 第三步:逐级判定 (Step-by-Step Check)
|
||
法官按照锁定的解法,一步步核对。每一步会给出以下四种判定之一:
|
||
|
||
| 判定状态 | 数学含义 | 得分操作 | 示例 |
|
||
| :--- | :--- | :--- | :--- |
|
||
| **VALID (有效)** | 步骤正确,逻辑严密,结果无误。 | **满分** | 标准答案。 |
|
||
| **JUMP_VALID (合理跳步)** | 省略了显而易见的中间运算,但逻辑通顺,符合该年级认知。 | **满分** | 高三生直接写出 $\sin 30^\circ = 1/2$ 而未列式。 |
|
||
| **ECF (错误传递)** | **"算错但理对"**。引用了前一步的错误数据,但本步的方法公式完全正确。 | **给过程分** | 第一问公差求错,导致第二问结果错,但求和公式用对了。 |
|
||
| **GAP/INVALID (断层/无效)** | 关键推导缺失,或使用了错误的原理/公式。 | **扣分/零分** | 立体几何未证线面垂直,直接用线线垂直。 |
|
||
|
||
### 第四步:生成判决书
|
||
最后,法官输出一份包含总分、每一步得分详情、扣分原因以及**错误诊断**(如:计算失误、概念不清)的报告。
|
||
|
||
---
|
||
|
||
## 4. 特殊机制说明 (For Experts)
|
||
|
||
### 关于 ECF (Error Carried Forward) 的执行红线
|
||
为了防止“滥发同情分”,法官执行 ECF 必须同时满足两个条件:
|
||
1. **方法论正确**: 这一步的公式、定理引用必须是正确的。
|
||
2. **非原理性错误**: 导致错误的源头必须是“计算/数值错误”,而非“概念/原理错误”。
|
||
* *例如:公式记错了导致算错,后续步骤通常不给 ECF 分;单纯是 $1+1=3$ 导致的错误,后续给 ECF 分。*
|
||
|
||
### 关于“人工复核”的触发
|
||
法官并非万能。当出现以下情况时,法官会暂停判决,请求人类老师介入:
|
||
* **图像无法识别**: 答卷空白、模糊不清、墨团覆盖。
|
||
* **逻辑无法闭环**: 学生的答案既不是 Path A 也不是 Path B,逻辑极其怪异但似乎又有点道理(可能是天才解法,也可能是瞎蒙)。
|
||
|
||
---
|
||
|
||
## 5. 技术规格 (For Developers)
|
||
|
||
此部分供系统对接参考。
|
||
|
||
### 输入 (Input)
|
||
```json
|
||
{
|
||
"input_data": {
|
||
"student_image_url": "https://...", // 试卷切片图
|
||
"scoring_rules_json": { ... } // 来自检察官的评分标准
|
||
}
|
||
}
|
||
```
|
||
|
||
### 输出 (Output - Verdict JSON)
|
||
```json
|
||
{
|
||
"verdict": {
|
||
"total_score": 8,
|
||
"max_score": 12,
|
||
"is_manual_review_needed": false,
|
||
"step_details": [
|
||
{
|
||
"step_id": 1,
|
||
"status": "VALID",
|
||
"score": 4
|
||
},
|
||
{
|
||
"step_id": 2,
|
||
"status": "INVALID", // 计算错误
|
||
"score": 0,
|
||
"deduction_reason": "二次项系数运算错误"
|
||
},
|
||
{
|
||
"step_id": 3,
|
||
"status": "ECF_GRANTED", // 错误传递
|
||
"score": 4,
|
||
"deduction_reason": "引用了Step 2的错误数值,但求导公式正确",
|
||
"ecf_active": true
|
||
}
|
||
],
|
||
"diagnosis": {
|
||
"comments": "该生掌握了导数基本运算法则,但在初等代数运算(系数处理)上存在薄弱环节。"
|
||
}
|
||
}
|
||
}
|
||
```
|