114 lines
5.7 KiB
Markdown
114 lines
5.7 KiB
Markdown
# 证据政策上线与批次 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 的引文重新落在正文页,需要新建批次并重新评分;该操作会消耗模型调用,请先确认。
|