阶段 当前状态 说明 Phase 0~3 基本完成 Document IR、证据链、人工确认、不可变 PlanData Snapshot、海报/PPT 投影已实现 Phase 4 代码完成 场景、策略、模板版本,校验/发布门禁,确定性 resolver 和严格槽位合并已实现 Phase 5 代码完成 输入冻结、PPTX/海报对账、失败关闭、幂等、心跳、重试和冻结输入重放已实现 Phase 6 基础完成 质量看板、结构化告警、Golden 审批、留存清理、孤儿检查和灰度开关已实现 正式上线 未完成 缺真实样本、生产模板、业务规则签字和灰度观察 目前验证基线: PPT/海报专项测试:107 passed, 1 skipped Vue TypeScript 检查:通过 前端生产构建:通过 代码变更仍在工作区,尚未提交 仓库全量测试仍有既有失败/挂起项,暂时不能宣称全仓测试完全绿色 仍未完成的代码任务主要有: 影子解析差异流水线 目前有灰度开关,但还没有完整的“新旧解析同时运行、字段差异入库、按保司/profile 聚合”的影子比较任务。 自动视觉回归 目前实现的是 DOM 模块、溢出、尺寸、文本和数值检查;还缺基于真实模板和标准图片的像素差异、字体缺失、遮挡和裁切回归。 告警通道接入 后台已经能产生结构化质量告警,但尚未自动推送到邮件、企微或其他通知通道。 留存任务生产化 dry-run、实删服务和失败审计已经具备,但尚未接入周期性 Celery/定时任务,也没有自动重试失败清理批次。 旧链路最终下线 旧 PPT 解析器和海报紧凑解析仍保留为回滚路径。需要全量灰度稳定后才能删除或彻底关闭写入口。 全仓测试收口 需要处理现有无关失败和挂起测试,建立真正全绿的 CI 基线。 仍需外部输入和生产环境完成的事项: 至少 30 份脱敏 Golden PDF,并完成双人标注和精确率验收。 业务专家确认派生公式、缺失值、可比较性和结论策略。 上传并标注真实生产 PPTX 的语义 shape、页面类型和容量。 安装生产字体并建立视觉基准图片。 实际执行数据库迁移 038~040。 完成留存 dry-run、实删演练以及 10% → 30% → 100% 灰度。 观察期通过后开启 SCENARIO_ENGINE_V2,目前它仍默认关闭;真实清理开关也默认关闭。 完整状态记录在 [PPT与海报Phase4至6补充实施记录](D:/work/code/python/coding/baodanagent/docs/PPT与海报Phase4至6补充实施记录_20260802.md)。
3.0 KiB
3.0 KiB
PPT 与海报生成全链路 Phase 2~5 阶段实施记录
日期:2026-08-02
依据:PPT与海报生成全链路详细修复计划书_20260802.md
已完成
Phase 2:候选、校验与复核基础
- 新增 FieldValue 创建、校验和候选合并;文件名/上下文提示不能静默覆盖 PDF 候选。
- 不同候选值保留为
conflict,证据质量只参与排序,不删除冲突候选。 - 新增通用 PlanData 结构校验;确认时阻断冲突、缺失基础身份字段和无证据导出金额。
- PPT 复核页递归记录字段/表格修改,人工修改必须填写原因并由后端持久化。
- 未写入任何未经业务确认的保险推导公式。
Phase 3:唯一不可变快照
- 新增
migrate_037.py:insurance_plan_snapshots、insurance_field_evidence、insurance_plan_overrides。 - 新增创建、查询、乐观锁编辑、校验、确认、证据、海报投影和 DeckContract API。
- confirmed 快照不可原地改值;编辑和重新确认始终创建新版本并保留 previous link。
- 海报确认生成 confirmed snapshot;海报文案和生成只消费 snapshot projection。
- PPT 复核确认生成每份文档的 confirmed snapshot;生成任务冻结所有 DeckContract。
- PPT Worker 不再读取
session.extractions_json作为生成事实输入。
Phase 4:服务端场景解析基础
- 新增
/insurance/ppt/scenarios/resolve,仅接受当前用户的 confirmed snapshots。 - 前端删除本地险种数量场景推断,展示服务端场景和 matchTrace。
- 用户明确场景不兼容时后端阻断,不再静默替换。
完整的 ScenarioDefinition、GenerationPolicy、TemplateDefinition 版本表和 draft/validate/publish 管理后台尚未落地;它们需要获批样本和保险公式口径。
Phase 5:任务冻结与输出门禁基础
- 新增
migrate_039.py,记录 snapshot/scenario/policy/template/renderer 版本、submit revision、对账和视觉检查结果。 - 任务完成时按 submit revision 标记
current或stale;stale 成品不覆盖当前工作区。 - 新增无 Office 依赖的 PPTX XML 数值/币种对账;检测到冻结契约之外的金额或币种时任务失败并阻止下载。
- 文档统一入口支持上传、表格查询和异步字段提取任务。
验证
- 后端目标回归:133 passed,3 skipped。
- Python compileall、Vue TypeScript、前端生产构建均纳入最终复跑。
仍受阻的发布门禁
- Goldens 仍为 0;无法声称达到 99.5% 标量精确率、99% 单元格精确率或 100% 导出证据覆盖率。
- 未确认各险种公式、强制字段、场景口径和跨产品可比条件,不能发布 GenerationPolicy。
- 未确认源 PDF、IR、快照、证据和成品留存期限,不能启用到期实删。
- 现有模板资产尚未逐个完成语义 slot 标注和真实样本渲染,不能把旧模板自动标记为 published。
- LibreOffice/Office/WPS 的最终打开和视觉回归仍需部署环境执行。