|
|
2422303b36
|
前工程开发已经推进到 Phase 6 基础能力,但正式验收还没有完成。更准确地说:Phase 0~5 的主要代码链路已经落地,Phase 6 完成了治理框架,尚缺生产化和真实数据验收。
阶段 当前状态 说明
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)。
|
2026-08-02 16:34:06 +08:00 |
|
|
|
9939188a4b
|
主要修复:
海报 PDF 解析从 Gunicorn 后台线程迁移到 Celery Worker,消除 gevent/asyncio.run 冲突和任务卡死。
海报改为紧凑解析,只选择客户资料、保费和核心利益页;排除提领方案、悲观/乐观情景页。
LLM 调用由原来的约 27 次降为 1 次。
补充年缴保费、首年实缴、缴费期、总保费及第 1/5/10/15/20/25/30 年退保价值。
增加真实解析进度、错误信息、任务 ID、心跳和完成时间。
相同用户重复上传同一份计划书时复用现有任务或结果。
前端取消 180 秒本地假超时,改为串行轮询后端真实状态;网络波动不再误判解析失败。
增加服务重启后的过期任务恢复机制。
修复解析结果 JSON 序列化遗漏问题。
关键文件:
[extraction.py](D:/work/code/python/coding/baodanagent/api/insurance/ppt/extraction.py)
[tasks.py](D:/work/code/python/coding/baodanagent/api/insurance/poster/tasks.py)
[celery_tasks.py](D:/work/code/python/coding/baodanagent/api/insurance/generation/celery_tasks.py)
[service.py](D:/work/code/python/coding/baodanagent/api/insurance/poster/service.py)
[migrate_032.py](D:/work/code/python/coding/baodanagent/api/insurance/db/migrate_032.py)
[PosterSourcePanel.vue](D:/work/code/python/coding/baodanagent/frontend/src/components/poster/workspace/PosterSourcePanel.vue)
[回归测试](D:/work/code/python/coding/baodanagent/tests/ppt_poster_optimization_test.py)
|
2026-08-01 03:15:43 +08:00 |
|
|
|
fa67b83bbf
|
核心改进:
小册子解析:上传后3秒内返回,解析通过 Celery 异步执行,状态流转 pending → queued → parsing → parsed/failed,失败保留错误原因,启动时自动恢复卡住任务
保司Logo:支持多张图片上传、设主图、删除、排序,主图自动同步到 logo_url 保持向后兼容
文件存储:统一使用 get_storage_root() 持久化目录,Docker 重启不丢文件
|
2026-07-28 20:35:28 +08:00 |
|
|
|
c7df34d0cd
|
07-27 阶段 状态 进度
阶段 1:数据库与工作区 ✅ 完成 100%
阶段 2:Celery 后台任务 ✅ 完成 100%
阶段 3:前端刷新恢复与多工作区 ✅ 完成 100%
阶段 4:任务坞与任务中心 ✅ 完成 100%
阶段 5:版本化编辑 ✅ 完成 100%
阶段 6:测试与灰度 ❌ 未开始 0%
|
2026-07-28 17:53:14 +08:00 |
|
|
|
e3479f0546
|
上线阻断问题全部修复
# 问题 修复 文件
1 前端构建失败(引号错误) size="small type=" → size="small" type=" PosterHistoryPage.vue
2 migrate_014 ORM vs 缺失列 全部改为原始 SQL,不再引用 ORM 模型 migrate_014.py
3 cleanup 字段名错误 output_path → ppt_path cleanup.py
4 文案生成 case 越权 添加 case.user_id != user_id 校验 poster/service.py
5 存储路径未接通持久化卷 全部改用 get_storage_root()(默认 /app/api/storage/insurance) config.py, ppt/routes.py, poster/service.py, poster/tasks.py
高风险问题修复
# 问题 修复 文件
6 migrate_019 rollback 撤销成功字段 每个 ALTER 后立即 commit,失败只回滚当前语句 migrate_019.py
7 迁移锁 Windows 不兼容 + 句柄未持久化 全局变量保存锁句柄,支持 Windows msvcrt api/insurance/db/__init__.py
8 PDF 校验异常时放行 异常返回 False(文件损坏) security.py
9 健康检查始终返回成功 缺少关键资源时返回 503 + missing 列表 poster/routes.py
10 短密钥掩码泄露原值 ≤4 字符返回 **** ppt_admin_service.py
11 设置无键名白名单 添加 _ALLOWED_SETTING_KEYS 白名单 ppt_admin_service.py
12 容器重启任务永久 stuck 添加 recover_stale_tasks() 启动恢复函数 poster/tasks.py, ppt/parse_worker.py
|
2026-07-27 13:52:09 +08:00 |
|
|
|
5d28e4518e
|
0723 PPT加海报功能初步完成
|
2026-07-23 15:04:16 +08:00 |
|
|
|
4a556a1cc7
|
0723 PPT功能初步融合
|
2026-07-23 13:10:50 +08:00 |
|
|
|
bc4c339e0c
|
第一次提交。可以使用企微群消息
|
2026-07-02 23:13:23 +08:00 |
|