feat: add unified generation entrypoint

This commit is contained in:
2026-04-18 12:55:20 +08:00
parent 9e1a17fa67
commit e201fa3358
10 changed files with 358 additions and 67 deletions

View File

@@ -53,14 +53,20 @@
- 已新增数据库迁移:
- `0009_add_story_generation_statuses.py`
- `0010_add_story_audio_cache_path.py`
- 已完成一轮后端回归验证:`backend/``pytest -q` 结果为 `53 passed`
- 已完成一轮后端回归验证:`backend/``pytest -q` 结果为 `63 passed`
- 已完成全量后端 lint 清理:`ruff check app tests` 可通过
- 已修复 admin-frontend 构建阻塞,主前端与管理端前端均可生产构建
- 已落地首版统一资产重试入口:`POST /api/stories/{story_id}/assets/retry`
- 已建立目标态统一生成入口:
- `POST /api/generations`
- `GET /api/generations/{story_id}`
- `POST /api/generations/{story_id}/retry-assets`
- 用户前端与 admin 前端创建弹窗已切换到统一生成入口
### What Is In Progress
- 统一状态模型已落地,但统一 service workflow 仍未真正收束成单一路径
- 普通故事、完整生成、绘本生成仍存在多条 service / API 路径
- 统一状态模型与统一外部 API 已落地,但内部 service workflow 仍未真正收束成单一路径
- 旧生成 API 仍保留为兼容层,后续需要继续降低重复实现
- 资产补全已经具备统一重试入口首版,但仍需要继续抽象统一补全过程和 generation job 边界
### What Is Still Pending

View File

@@ -17,7 +17,7 @@ DreamWeaver 当前同时支持普通故事生成、完整故事生成和绘本
## Implementation Snapshot
**Updated**: 2026-04-18 morning
**Updated**: 2026-04-18 afternoon
当前代码已经从“纯目标态设计”进入“部分落地”阶段,主要进展如下:
@@ -34,13 +34,17 @@ DreamWeaver 当前同时支持普通故事生成、完整故事生成和绘本
- 故事音频已支持首次生成后缓存复用
- `degraded_completed` 已在服务层和前端语义中落地
- 已新增首版统一资产重试入口:`POST /api/stories/{story_id}/assets/retry`
- 已新增目标态统一生成 API
- `POST /api/generations`
- `GET /api/generations/{story_id}`
- `POST /api/generations/{story_id}/retry-assets`
- 用户前端与 admin 前端创建弹窗已切换到 `POST /api/generations`
- 故事详情页封面补全已切换到统一资产重试入口
- 管理端前端构建阻塞已修复,主前端与 admin 前端均可完成生产构建
### Still Missing
- 统一的 `POST /api/generations` 风格入口尚未建立
- 普通故事、完整生成、绘本生成仍通过多条 service 路径实现
- 普通故事、完整生成、绘本生成已有统一外部入口,但内部仍通过兼容 service 路径编排
- 统一资产重试入口仍是首版:已覆盖普通故事封面、绘本缺失插图、故事音频,但尚未抽象成完整 generation job 模型
- `partial_ready``retryable_assets` 等更细粒度状态仍停留在目标态
@@ -56,8 +60,8 @@ DreamWeaver 当前同时支持普通故事生成、完整故事生成和绘本
DreamWeaver 当前存在以下工作流层面问题:
1. **生成入口统一**
普通故事走 `/api/stories/generate`,完整故事走 `/api/stories/generate/full`,绘本走 `/api/storybook/generate`,前端对结果的处理也不同
1. **生成入口正在统一**
当前前端已切到 `/api/generations`,旧的 `/api/stories/generate``/api/stories/generate/full``/api/storybook/generate` 仍作为兼容入口保留。下一步重点是继续收束 service 内部路径
2. **保存与资产补全过程不统一**
有的流程先存文本再补图,有的流程只返回绘本对象并依赖前端 store有的流程不考虑音频状态。