docs: record pdf deeptest closure

This commit is contained in:
Codex
2026-05-03 23:45:14 +08:00
parent 12614ba38b
commit ad0e1b967a
@@ -0,0 +1,172 @@
# PDF 深测问题闭环记录(2026-05-03)
## 对应文档
- `project-docs/pdf_deeptest_report_2026-05-03.md`
- `project-docs/pdf_deeptest_api_round9.json`
- `project-docs/reverify_report_2026-05-03_round7.md`
## 本轮目标
针对这三份文档里仍未闭环的问题继续修复:
1. 报告型 PDF 被当作合同正文再次审查,形成“伪成功”结果
2. 页眉 / 页脚 / 页码噪声混入 PDF 正文抽取和条款摘要
3. 登录页仍保留“本地环境 / 联调 / 初始化”语义
## 实际修复
### 1. 报告型 PDF 识别
后端 `ReviewService` 新增两层识别:
- **内容识别**
- `审查任务:`
- `任务编号:`
- `风险汇总:`
- `审查意见:`
- `原始文本摘要:`
- **文件名识别**
- `review-report`
- `report-review`
- `审查报告`
命中后不再进入“成功审查”链路,而是直接返回:
- `code = 40002`
- `message = 检测到疑似平台审查报告 PDF,请上传合同原文 PDF / DOCX / TXT,或直接粘贴合同正文后再审查。`
### 2. 页眉 / 页脚 / 页码噪声清洗
后端 `ReviewService` 在 `pdfplumber` 抽取后增加:
- 跨页重复页眉/页脚识别
- `Page 1 / 2` / `Page X of Y` 这类页码模式过滤
- 仅对跨页重复、且位于页首/页尾的短行进行保守清洗
修复目标不是“让所有 PDF 完美抽取”,而是先把最明显的分页噪声和固定页眉页脚从 `source_text_preview` 与 `clauses` 中剥离掉。
### 3. 登录页正式化文案收口
登录页对外可见文案已不再显式包含:
- `本地初始化`
- `联调`
- `本地环境`
保留本地按钮能力,但不再把这些开发语义作为正式页面说明文案暴露给普通用户。
## 本轮代码范围
- `backend/app/api/reviews.py`
- `backend/app/services/review_service.py`
- `backend/app/services/legal_review_execution_gateway.py`
- `backend/app/services/legal_review_local_engine.py`
- `backend/tests/test_review_service.py`
- `backend/tests/test_reviews_api.py`
- `frontend/src/app/login/page.tsx`
## 本地验证
### 后端定向
- `backend/.venv/Scripts/python.exe -m unittest tests.test_review_service tests.test_reviews_api tests.test_contracts_api`
- `50 tests OK`
### 后端全量
- `backend/.venv/Scripts/python.exe -m unittest discover -s tests`
- `354 tests OK`
### 前端
- `frontend/npm.cmd run lint`
- `PASS`
- `frontend/npm.cmd run build`
- `PASS`
## Docker 服务器部署
目标环境:
- 前端:`http://192.168.3.90:3003`
- API:`http://192.168.3.90:8001/api/v1`
部署方式:
- 将 `HEAD` 的 `backend/` 与 `frontend/` 归档上传至 `192.168.3.90`
- 覆盖 `/opt/ai-contract-platform`
- 重建 Docker `backend + frontend`
补充处理:
- 服务器一度因 Docker 旧镜像与构建缓存占满磁盘导致构建失败
- 已执行镜像/构建缓存清理
- 根分区从仅剩约 `92MB` 恢复到约 `20GB` 可用
## 服务器定向复验
产物目录:
- `project-docs/qa-artifacts/pdf-deeptest-fix/2026-05-03T23-26-32`
关键产物:
- `pdf-fix-smoke.json`
- `pdf-fix-smoke-recheck.json`
### 1. 干净 PDF
结果:
- 上传成功
- 生成 `review_id`
- `source_text_preview` 为真实正文
- 审查结果可正常生成
### 2. 报告型 PDF
最终结果:
- `code = 40002`
- `message = 检测到疑似平台审查报告 PDF,请上传合同原文 PDF / DOCX / TXT,或直接粘贴合同正文后再审查。`
结论:
- 已不再产生“把报告 PDF 当合同正文二次审查”的伪成功结果
### 3. 页眉页脚边界 PDF
最终结果:
- 上传成功
- 可生成审查结果
- `source_text_preview` 不再出现:
- `Page 1 / 2`
- `Page 2 / 2`
- `PDF extraction boundary sample`
- `clauses` 摘要中也不再混入这些噪声行
### 4. 登录页文案
直接抓取服务器登录页 HTML 复验:
- `本地初始化`:`false`
- `联调`:`false`
- `本地环境`:`false`
## 结论
本轮针对 PDF 深测和 Round7 复验报告中剩余问题的闭环结果为:
1. **报告型 PDF 误审查**:已修复
2. **页眉页脚 / 页码噪声污染摘要**:已修复
3. **登录页联调语义未收口**:已修复
当前这批文档里继续要求跟进的 bug,已经完成:
- 本地代码修复
- 本地测试通过
- Docker 服务器部署完成
- 服务器定向复验通过