主要完成: PPT/海报统一“数据可信度”摘要、缺失/冲突/人工修改统计:[ReviewStatusSummary.vue (line 5)](D:/work/code/python/coding/baodanagent/frontend/src/components/generation/ReviewStatusSummary.vue:5) PPT 证据原文查看、页码定位和 PDF bbox 区域高亮:[PptDataReview.vue (line 464)](D:/work/code/python/coding/baodanagent/frontend/src/pages/components/ppt/PptDataReview.vue:464)、[PdfPagePreview.vue (line 59)](D:/work/code/python/coding/baodanagent/frontend/src/pages/components/ppt/PdfPagePreview.vue:59) 场景匹配原因、场景/模板版本及配置异常阻断:[PptGenerate.vue (line 95)](D:/work/code/python/coding/baodanagent/frontend/src/pages/components/ppt/PptGenerate.vue:95) 任务版本、生成哈希、输出一致性、当前/历史结果追溯:[GenerationTracePanel.vue (line 1)](D:/work/code/python/coding/baodanagent/frontend/src/components/generation/GenerationTracePanel.vue:1)、[TasksPage.vue (line 70)](D:/work/code/python/coding/baodanagent/frontend/src/pages/TasksPage.vue:70) PPT/海报历史页增加“任务与版本追溯”视图:[PptHistoryPage.vue (line 13)](D:/work/code/python/coding/baodanagent/frontend/src/pages/PptHistoryPage.vue:13)、[PosterHistoryPage.vue (line 9)](D:/work/code/python/coding/baodanagent/frontend/src/pages/PosterHistoryPage.vue:9) 治理后台增加 JSON 实时校验、格式化、校验报告、失败重试和移动端适配:[PptGovernanceAdmin.vue (line 206)](D:/work/code/python/coding/baodanagent/frontend/src/pages/admin/PptGovernanceAdmin.vue:206) 恢复此前被注释、点击无反应的产品推荐弹窗:[ChatPage.vue (line 65)](D:/work/code/python/coding/baodanagent/frontend/src/pages/ChatPage.vue:65) 后端 PDF 信息接口补充页面尺寸,用于准确绘制证据框:[routes.py (line 1737)](D:/work/code/python/coding/baodanagent/api/insurance/ppt/routes.py:1737) 验证结果: 全量 ESLint:通过 Vue TypeScript 类型检查:通过 生产构建:通过 PPT 相关定向测试:21 项通过 项目测试:296 项通过、3 项跳过;另有 2 项既有测试环境问题,与本次修改无关 API 健康检查:HTTP 200,数据库、Redis、存储、数据表均正常 前端容器已确认挂载最新 frontend/dist,当前最新资源已通过 9080 端口提供 现在直接访问 http://localhost:9080 即可。容器使用目录挂载,不需要重新构建镜像;如果仍然看到旧界面,请按 Ctrl+F5 强制刷新浏览器缓存。
85 lines
5.4 KiB
Markdown
85 lines
5.4 KiB
Markdown
# PPT 与海报 Phase 4~6 补充实施记录
|
||
|
||
> 日期:2026-08-02
|
||
> 对应计划:`PPT与海报生成全链路详细修复计划书_20260802.md`
|
||
> 结论:代码层已具备版本治理、冻结重放、输出失败关闭、留存清理和灰度观测能力;生产验收尚不能用“代码已完成”替代。
|
||
|
||
## 1. 本轮已实现
|
||
|
||
### Phase 4:场景、策略与模板可执行化
|
||
|
||
- 新增 `migrate_038` 及场景、生成策略、PPT 模板三类不可变版本模型;生命周期统一为 `draft -> validated -> published -> retired`。
|
||
- 发布门禁要求使用已批准 Golden snapshot 试跑;发布后定义不可原地修改,只能复制为新草稿。
|
||
- 场景 resolver 使用文件数、险种、保司、产品、优先级和特异度确定唯一结果;无匹配和同优先级多匹配均失败关闭并返回 `matchTrace`。
|
||
- 运行时严格按 Scenario `pageSpecs`、Template `pageSlots` 和 GenerationPolicy 合并;缺页、重复槽位、容量溢出、资产 SHA 变化和不兼容版本均阻断。
|
||
- 管理后台已支持版本创建、JSON 编辑、校验、发布、试跑、复制、停用及失败原因查看。
|
||
|
||
### Phase 5:冻结、对账与任务可靠性
|
||
|
||
- `migrate_039` 为统一任务补齐 snapshot/scenario/policy/template/asset/renderer、提交版本、对账、视觉检查和结果状态字段。
|
||
- PPT 与海报任务按实际使用的快照和配置完整冻结;重放只复用原任务冻结输入,不重新读取当前后台配置。
|
||
- PPTX 输出按 XML 可见文本和字段清单核对金额、币种和缺失字段;失败不产生可下载成功成品。
|
||
- 海报在生成背景前核对 `renderDocument`;最终浏览器合成时再次提交 DOM 导出清单,服务端校验:
|
||
- PNG 实际尺寸;
|
||
- DOM 与 PNG 尺寸一致性;
|
||
- 必需模块存在且非空;
|
||
- 文本裁切/溢出;
|
||
- 可见文本 SHA-256;
|
||
- 冻结文档与计划投影中的金额、币种。
|
||
- 最终校验失败时前端不再绕过服务端直接下载。
|
||
- 任务支持稳定幂等键、心跳、暂时性错误重试、冻结输入重放和 current/stale 结果标记。
|
||
- 旧 PPT 线程解析器已标记 deprecated;海报紧凑解析仅在关闭 `DOCUMENT_IR_V1` 时作为短期回滚路径,默认不再承担新链路事实职责。
|
||
|
||
### Phase 6:质量、留存与灰度基础
|
||
|
||
- `migrate_040` 增加 Golden 审批字段和脱敏清理审计表。
|
||
- 管理后台可审批/撤销 Golden snapshot,并汇总文档、页面、OCR、表格、跨页表、冲突、快照、覆盖、版本、任务、重试、心跳、延迟、对账及视觉检查指标。
|
||
- 新增结构化质量告警:输出对账失败、视觉检查失败、运行任务无心跳、文档阻断和 Golden 数量不足。
|
||
- 留存策略覆盖 Document、Snapshot、GenerationTask、Poster、PPT History 和审计日志;支持 dry-run、批次上限、脱敏审计、存储根目录保护和失败记录。
|
||
- 新增只读孤儿文件检查,结果仅返回相对路径和 hash,不执行自动删除。
|
||
- 灰度开关支持按 profile 白名单和稳定百分比分桶:
|
||
- `DOCUMENT_IR_V1`
|
||
- `PLAN_SNAPSHOT_V1`
|
||
- `SCENARIO_ENGINE_V2`
|
||
- `OUTPUT_RECONCILIATION_V1`
|
||
- `RETENTION_CLEANUP_V1`
|
||
|
||
## 2. 数据库迁移顺序
|
||
|
||
部署时须按现有迁移注册顺序执行,新增部分为:
|
||
|
||
1. `migrate_038`:场景、策略、模板版本;
|
||
2. `migrate_039`:任务冻结与输出审计;
|
||
3. `migrate_040`:Golden 与留存审计。
|
||
|
||
真实清理默认关闭。必须先执行 dry-run,核对候选及孤儿文件,再设置 `INSURANCE_RETENTION_CLEANUP_V1=true` 执行实删。
|
||
|
||
## 3. 建议上线顺序
|
||
|
||
1. 收集并脱敏不少于 30 份真实 PDF,完成双人标注,在“生成治理”页面批准为 Golden。
|
||
2. 由业务 SME 固化各险种允许的派生公式、缺失值和结论策略,创建并校验 GenerationPolicyVersion。
|
||
3. 上传带语义 shape name 的真实 PPTX 模板,逐页声明 `pageType`、slot 和容量,使用 Golden 试跑后发布。
|
||
4. 保持 `SCENARIO_ENGINE_V2` 默认关闭,按保司/profile 依次灰度 10% -> 30% -> 100%。
|
||
5. 每个阶段观察对账失败、视觉失败、无心跳和人工修改率;出现 P0 告警立即回退对应开关。
|
||
6. 连续观察期通过后关闭旧写路径;旧数据只允许只读查看和冻结输入重放。
|
||
|
||
## 4. 尚需外部输入或生产环境完成的验收
|
||
|
||
以下事项不能由仓库代码自动代替,因此当前不标记正式里程碑完成:
|
||
|
||
- 30 份获批脱敏 Golden 的双人标注及强制精确率门槛;
|
||
- 业务 SME 对公式、可比较性、缺失值和结论规则的签字;
|
||
- 真实生产模板的语义槽位标注、字体安装、图片差异基线和人工视觉验收;
|
||
- 生产队列、对象存储、数据库和告警通道上的 dry-run/实删演练;
|
||
- 10%/30%/100% 灰度及全量切换后的连续观察期。
|
||
|
||
因此,当前准确表述是:工程能力已覆盖 Phase 0~6 的主要代码任务并具备 M5 能力及 M6 基础,但 M2、M4、M6 的正式验收仍受真实样本、业务签字、模板资产和生产观察约束。
|
||
|
||
## 5. 本轮验证基线
|
||
|
||
- 后端计划相关专项回归:107 passed,1 skipped;
|
||
- 前端 TypeScript 检查:通过;
|
||
- 前端生产构建:通过;
|
||
- 治理页与海报页静态 UI 审查:无阻断项;
|
||
- 仓库全量 `tests/` 中另有 2 个与本轮无关的既有失败,详见交付说明,不能计入本轮回归失败。
|