Files
WiseGrade/docs/EVIDENCE_POLICY_BATCH3.md
T

114 lines
5.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 证据政策上线与批次 3 复核清单
本文记录把页面类型证据政策应用到**业务环境**的步骤,以及批次 3 需要教师复核的项目。文中的业务数据操作**均未执行**,请由教师确认后按顺序操作。
## 一、诊断基线
在业务数据库只读检查确认:
- 批次 3 的 77 条评分引文中,**14 条来自目录页**,涉及 **9 个评分项**。
- 会话 6 保存的 20 条引用中,**5 条**指向阶段报告 1 的目录页。
这些数字是诊断基线。本次改动不自动改写批次 3 的既有分数,也不改写会话 6 的历史消息。
## 二、改动后的行为
| 情形 | 改动前 | 改动后 |
|---|---|---|
| 目录页命中 | 作为正文证据送入模型并计入候选 | 只作导航,不进入内容证据 |
| 内容目标证据 | 目录、摘要、章节标题均可 | 仅正文与附录的实质段落、数据、表格 |
| 结构目标证据 | 与其他证据等同 | 封面、目录、参考文献可用,明确标注来源 |
| 正文补检不足 | 仍可能给出较低模型分 | `needs_review`,模型分为 `null`,总分待处理 |
| 历史引文 | 与正文证据无区别 | 标记"历史评分引用" |
## 三、业务环境应用步骤
以下步骤**尚未执行**。
### 1. 备份
```bash
docker compose exec -T db pg_dump -U wisegrade -Fc wisegrade > data/backups/wisegrade-pre-0006-$(date +%Y%m%d-%H%M%S).dump
chmod 600 data/backups/wisegrade-pre-0006-*.dump
```
### 2. 隔离库演练(推荐)
把备份还原到隔离数据库,先在隔离库执行升级和重建,核对页面分类与检索结果,再动业务库。`backend/tests/test_evidence_pages.py` 已用真实报告覆盖这几类情形。
### 3. 应用迁移
迁移在 API 容器启动时自动执行(`alembic upgrade head`)。如需手工执行:
```bash
docker compose exec api alembic upgrade head
docker compose exec -T db psql -U wisegrade -c "SELECT version_num FROM alembic_version;"
# 期望:0006
```
`0006` 会:
- 为 `knowledge_pages` 添加 `page_type`、`mixed`、`section`、`chapter`、`confidence`、`classification`;
- 为 `knowledge_chunks` 添加 `chapter`、`page_type`、`block_type`;
- 为 `score_evidences` 添加 `target_id`、`target_label`、`page_type`、`source_role`、`historical`;
- 为 `criterion_scores` 添加 `evidence_gaps`;
- 把**已有**评分引文全部标记为 `historical = true`;
- 按已保存的解析结果重新分类所有页面,写入审计日志。
重新分类不需要嵌入模型,因此在迁移中直接完成。`downgrade` 可撤销上述列。
### 4. 重建索引
分块方式已改变,旧索引不会被当作已分类正文使用。查看待重建清单:
```bash
curl -s http://127.0.0.1:18080/api/knowledge/stale/1 | python -m json.tool
```
重建(课程版本 1):
```bash
curl -s -X POST http://127.0.0.1:18080/api/knowledge/reindex/1
docker compose logs -f worker
```
重建任务可重复执行:已是最新版本的文档跳过,源文件哈希变化的文档跳过并说明原因,失败项记录具体错误。结束后再次查询 `/api/knowledge/stale/1`,`documents` 应为空。
### 5. 核对页面分类
```bash
curl -s "http://127.0.0.1:18080/api/knowledge/documents/<document_id>/pages" | python -m json.tool
```
预期(仓库示例报告):阶段报告 1 第 1 页 `cover`、第 2–3 页 `toc`、第 4–21 页 `body`、第 22 页 `references`;阶段报告 3 第 2–3 页 `toc`、第 11–12 页 `body`;最终报告第 2–3 页 `abstract`、第 4–5 页 `toc`、第 49 页 `references`、第 50–53 页 `appendix`。分类有疑义的页面为 `unknown`,不会当作正文。
### 6. 新批次验证
新建一个评分批次(不要重跑批次 3),确认真实模型下的表现:已评分项的引文来源为正文或附录;只检索到目录的内容项进入"待教师复核"。
## 四、批次 3 复核清单
只读检查得到的 9 个涉及目录页引文的评分项。**建议教师逐项核对**,不需要重跑批次:
| 处理方式 | 说明 |
|---|---|
| 查看该评分项证据 | 界面中旧引文显示"历史评分引用"标签,不能当作报告正文证据 |
| 在原始报告中定位正文 | 用引用卡片上的"查看页面文字"/"查看图像"跳转,或按下方章节提示查找 |
| 填写教师复核分 | 输入框不预填 0;填写后状态变为"教师已复核",模型原始分与检索记录保留 |
复核时可直接检查的正文位置(仓库示例报告):
- **阶段报告 1 第 6–7 页**:文献调研与技术现状正文,含控制方法对比表和技术现状总结。涉及 `stage1.literature`。
- **阶段报告 3 第 11–12 页**:系统测试与验证正文,含自主巡线测试、控制实时性、光照影响。涉及 `stage3.data`、`stage3.verification`。
- **最终报告第 6 页起**:正文各章;第 50–53 页为附录,可用作内容证据。
- **最终报告第 2–3 页为摘要**:可用于"摘要称……"这类明确归属的概述,不能单独证明方法已实现或指标已达标。
教师也可选择保留原有分数:本次改动不自动改写批次 3,历史分数在导出和界面中维持原值,仅在引文旁标明其来源类型。
## 五、注意事项
- 迁移和重建只改动页面分类、索引与引文元数据,**不改动**学生原件、评分批次、教师复核记录和会话历史。
- 重建过程可重试;失败项保留具体错误,重试入口在项目的"解析与索引任务"中。
- 迁移后旧评分引文的原始分数不会改变,但界面与导出会标明它们是历史引用。
- 若教师希望批次 3 的引文重新落在正文页,需要新建批次并重新评分;该操作会消耗模型调用,请先确认。