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