# 批量生成系统 **本文引用的文件** - [server/src/modules/book-generator/book-generator.controller.ts](file://server/src/modules/book-generator/book-generator.controller.ts) - [server/src/modules/book-generator/book-generator.service.ts](file://server/src/modules/book-generator/book-generator.service.ts) - [server/src/modules/book-generator/book-queue.processor.ts](file://server/src/modules/book-generator/book-queue.processor.ts) - [server/src/services/queue.service.ts](file://server/src/services/queue.service.ts) - [server/src/services/memory-queue.ts](file://server/src/services/memory-queue.ts) - [server/src/modules/book-generator/fault-tolerance.ts](file://server/src/modules/book-generator/fault-tolerance.ts) - [server/src/modules/book-generator/stage-manager.ts](file://server/src/modules/book-generator/stage-manager.ts) - [server/src/modules/book-generator/graph.ts](file://server/src/modules/book-generator/graph.ts) - [server/src/modules/book-generator/strategies/sequential.strategy.ts](file://server/src/modules/book-generator/strategies/sequential.strategy.ts) - [server/src/modules/book-generator/strategies/one-step-outline.strategy.ts](file://server/src/modules/book-generator/strategies/one-step-outline.strategy.ts) - [server/src/modules/book-generator/strategies/per-chapter.strategy.ts](file://server/src/modules/book-generator/strategies/per-chapter.strategy.ts) - [server/src/modules/book-generator/book-generator.types.ts](file://server/src/modules/book-generator/book-generator.types.ts) - [server/src/modules/book-generator/book-generator-optimizations.ts](file://server/src/modules/book-generator/book-generator-optimizations.ts) ## 目录 1. [简介](#简介) 2. [项目结构](#项目结构) 3. [核心组件](#核心组件) 4. [架构总览](#架构总览) 5. [详细组件分析](#详细组件分析) 6. [依赖关系分析](#依赖关系分析) 7. [性能考虑](#性能考虑) 8. [故障排查指南](#故障排查指南) 9. [结论](#结论) 10. [附录:API 接口文档](#附录api-接口文档) ## 简介 本技术文档面向“批量生成系统”,聚焦于书籍生成的端到端流程:从任务创建、队列调度与执行监控,到生成步骤的组合与执行策略、状态跟踪与容错恢复、以及性能优化与 API 使用说明。系统采用“线性步骤编排 + LangGraph 工作流”的双层架构,既保证生成步骤的可控性,又通过工作流图实现复杂节点的条件流转与并行化。 ## 项目结构 批量生成系统主要分布在以下模块与服务中: - 控制器层:提供批量生成、取消与状态查询的 HTTP 接口 - 编排层:负责生成步骤的顺序执行、进度推送与取消检查 - 队列层:基于 Bull/Redis 的任务队列与内存队列回退 - 容错层:AI 调用重试、节点超时、进度监控与自动恢复 - 状态层:章节/书籍阶段管理与安全状态迁移 - 工作流层:LangGraph 图结构与多种生成策略 ```mermaid graph TB subgraph "控制器层" C1["book-generator.controller.ts
批量生成/取消/状态接口"] end subgraph "编排层" S1["book-generator.service.ts
BatchGenerationOrchestrator
步骤编排与进度推送"] end subgraph "队列层" Q1["queue.service.ts
Bull 队列封装"] Q2["memory-queue.ts
内存队列回退"] QP["book-queue.processor.ts
书籍生成队列处理器"] end subgraph "容错层" F1["fault-tolerance.ts
重试/超时/监控/恢复"] end subgraph "状态层" SM["stage-manager.ts
章节/书籍阶段迁移"] end subgraph "工作流层" G1["graph.ts
LangGraph 状态定义"] ST1["sequential.strategy.ts"] ST2["one-step-outline.strategy.ts"] ST3["per-chapter.strategy.ts"] end C1 --> S1 S1 --> QP QP --> Q1 QP --> Q2 S1 --> F1 S1 --> SM QP --> G1 G1 --> ST1 G1 --> ST2 G1 --> ST3 ``` 图表来源 - [server/src/modules/book-generator/book-generator.controller.ts:1-199](file://server/src/modules/book-generator/book-generator.controller.ts#L1-L199) - [server/src/modules/book-generator/book-generator.service.ts:1-549](file://server/src/modules/book-generator/book-generator.service.ts#L1-L549) - [server/src/modules/book-generator/book-queue.processor.ts:1-124](file://server/src/modules/book-generator/book-queue.processor.ts#L1-L124) - [server/src/services/queue.service.ts:1-266](file://server/src/services/queue.service.ts#L1-L266) - [server/src/services/memory-queue.ts:1-99](file://server/src/services/memory-queue.ts#L1-L99) - [server/src/modules/book-generator/fault-tolerance.ts:1-387](file://server/src/modules/book-generator/fault-tolerance.ts#L1-L387) - [server/src/modules/book-generator/stage-manager.ts:1-202](file://server/src/modules/book-generator/stage-manager.ts#L1-L202) - [server/src/modules/book-generator/graph.ts:1-83](file://server/src/modules/book-generator/graph.ts#L1-L83) - [server/src/modules/book-generator/strategies/sequential.strategy.ts:1-60](file://server/src/modules/book-generator/strategies/sequential.strategy.ts#L1-L60) - [server/src/modules/book-generator/strategies/one-step-outline.strategy.ts:1-56](file://server/src/modules/book-generator/strategies/one-step-outline.strategy.ts#L1-L56) - [server/src/modules/book-generator/strategies/per-chapter.strategy.ts:1-56](file://server/src/modules/book-generator/strategies/per-chapter.strategy.ts#L1-L56) 章节来源 - [server/src/modules/book-generator/book-generator.controller.ts:1-199](file://server/src/modules/book-generator/book-generator.controller.ts#L1-L199) - [server/src/modules/book-generator/book-generator.service.ts:1-549](file://server/src/modules/book-generator/book-generator.service.ts#L1-L549) - [server/src/modules/book-generator/book-queue.processor.ts:1-124](file://server/src/modules/book-generator/book-queue.processor.ts#L1-L124) - [server/src/services/queue.service.ts:1-266](file://server/src/services/queue.service.ts#L1-L266) - [server/src/services/memory-queue.ts:1-99](file://server/src/services/memory-queue.ts#L1-L99) - [server/src/modules/book-generator/fault-tolerance.ts:1-387](file://server/src/modules/book-generator/fault-tolerance.ts#L1-L387) - [server/src/modules/book-generator/stage-manager.ts:1-202](file://server/src/modules/book-generator/stage-manager.ts#L1-L202) - [server/src/modules/book-generator/graph.ts:1-83](file://server/src/modules/book-generator/graph.ts#L1-L83) - [server/src/modules/book-generator/strategies/sequential.strategy.ts:1-60](file://server/src/modules/book-generator/strategies/sequential.strategy.ts#L1-L60) - [server/src/modules/book-generator/strategies/one-step-outline.strategy.ts:1-56](file://server/src/modules/book-generator/strategies/one-step-outline.strategy.ts#L1-L56) - [server/src/modules/book-generator/strategies/per-chapter.strategy.ts:1-56](file://server/src/modules/book-generator/strategies/per-chapter.strategy.ts#L1-L56) ## 核心组件 - 批量生成编排器:负责按顺序执行生成步骤,推送进度,检查取消信号,并在完成后清理标志 - 书籍生成队列处理器:使用 Bull/Redis 或内存队列处理书籍生成任务,支持并发控制与事件监听 - 队列服务:封装 Bull 队列,提供任务状态查询与进度更新能力 - 容错层:提供 AI 调用重试、节点超时控制、进度监控与自动恢复 - 阶段管理器:确保章节/书籍状态的线性迁移与资源清理 - 工作流与策略:LangGraph 状态图与多种生成策略(串行、一步大纲+并行内容、逐章内聚) 章节来源 - [server/src/modules/book-generator/book-generator.service.ts:45-143](file://server/src/modules/book-generator/book-generator.service.ts#L45-L143) - [server/src/modules/book-generator/book-queue.processor.ts:16-83](file://server/src/modules/book-generator/book-queue.processor.ts#L16-L83) - [server/src/services/queue.service.ts:48-266](file://server/src/services/queue.service.ts#L48-L266) - [server/src/modules/book-generator/fault-tolerance.ts:68-180](file://server/src/modules/book-generator/fault-tolerance.ts#L68-L180) - [server/src/modules/book-generator/stage-manager.ts:100-198](file://server/src/modules/book-generator/stage-manager.ts#L100-L198) - [server/src/modules/book-generator/graph.ts:23-82](file://server/src/modules/book-generator/graph.ts#L23-L82) ## 架构总览 系统采用“控制器-编排-队列-工作流-容错-状态”分层架构: - 控制器接收请求,创建批量任务并异步执行 - 编排器驱动生成步骤,向前端推送进度 - 队列层负责任务排队与并发控制;当 Redis 不可用时回退到内存队列 - 工作流层通过 LangGraph 管理复杂节点与条件边 - 容错层保障稳定性,包括重试、超时与自动恢复 - 阶段管理器确保状态迁移合法与资源清理 ```mermaid sequenceDiagram participant Client as "客户端" participant Ctrl as "控制器
book-generator.controller.ts" participant Orchestrator as "编排器
book-generator.service.ts" participant Queue as "队列处理器
book-queue.processor.ts" participant WS as "WebSocket
进度推送" participant Store as "状态/存储
stage-manager.ts" Client->>Ctrl : POST /books/ : id/batch-generate Ctrl->>Orchestrator : 创建任务并启动后台执行 Orchestrator->>WS : 推送步骤进度 Orchestrator->>Queue : 添加书籍生成任务 Queue-->>Queue : 并发处理任务 Queue->>Store : 更新书籍/章节阶段 Queue-->>Orchestrator : 任务完成/失败事件 Orchestrator->>WS : 推送完成/异常 Ctrl-->>Client : 返回任务状态 ``` 图表来源 - [server/src/modules/book-generator/book-generator.controller.ts:24-119](file://server/src/modules/book-generator/book-generator.controller.ts#L24-L119) - [server/src/modules/book-generator/book-generator.service.ts:77-143](file://server/src/modules/book-generator/book-generator.service.ts#L77-L143) - [server/src/modules/book-generator/book-queue.processor.ts:16-83](file://server/src/modules/book-generator/book-queue.processor.ts#L16-L83) - [server/src/modules/book-generator/stage-manager.ts:158-198](file://server/src/modules/book-generator/stage-manager.ts#L158-L198) ## 详细组件分析 ### 批量生成编排器(BatchGenerationOrchestrator) - 职责:顺序执行生成步骤(内容、音频、合并音频、视频、合并视频),推送进度,检查取消,处理异常 - 关键点: - 步骤验证与默认执行顺序 - 每步进度计算与推送 - 取消检查与清理 - 轮询等待子任务完成(如内容/音频/视频生成) - 完成后更新书籍进度 ```mermaid flowchart TD Start(["开始执行"]) --> Init["初始化与校验"] Init --> StepLoop{"遍历生成步骤"} StepLoop --> |内容生成| GenContent["生成内容LangGraph
轮询等待完成"] StepLoop --> |音频生成| GenAudio["批量生成叶节点音频
轮询等待完成"] StepLoop --> |合并音频| MergeAudio["按父节点合并音频
更新章节音频URL"] StepLoop --> |视频生成| GenVideo["为有音频的叶节点生成视频
轮询等待完成"] StepLoop --> |合并视频| MergeVideo["按父节点合并/简化视频处理"] GenContent --> Next["推进到下一步"] GenAudio --> Next MergeAudio --> Next GenVideo --> Next MergeVideo --> Next Next --> StepLoop StepLoop --> |完成| Finish["更新书籍进度=100
清理取消标志"] Finish --> End(["结束"]) ``` 图表来源 - [server/src/modules/book-generator/book-generator.service.ts:77-536](file://server/src/modules/book-generator/book-generator.service.ts#L77-L536) 章节来源 - [server/src/modules/book-generator/book-generator.service.ts:45-143](file://server/src/modules/book-generator/book-generator.service.ts#L45-L143) - [server/src/modules/book-generator/book-generator.service.ts:149-536](file://server/src/modules/book-generator/book-generator.service.ts#L149-L536) ### 书籍生成队列处理器(Bull/内存队列) - 职责:处理书籍生成任务,设置初始状态,捕获完成/失败事件,更新书籍状态 - 并发控制:Redis 队列最大并发 3;内存队列同构实现 - 回退机制:当 Redis 不可用时自动切换到内存队列 - 恢复机制:启动时扫描数据库中处于生成中的书籍并重新入队 ```mermaid sequenceDiagram participant QS as "队列服务
queue.service.ts" participant MQ as "内存队列
memory-queue.ts" participant Proc as "处理器
book-queue.processor.ts" participant LG as "LangGraph生成器" participant DB as "数据库/存储" QS->>Proc : getQueue(BOOK_GENERATION) alt Redis可用 Proc->>QS : redisQueue.process(3, handler) else Redis不可用 Proc->>MQ : memoryQueue.process(3, handler) end Proc->>DB : 更新书籍状态为 outling Proc->>LG : generate(bookId, topic, scale, level) LG-->>Proc : 完成/异常 Proc->>DB : 成功则标记完成;失败则标记失败 ``` 图表来源 - [server/src/modules/book-generator/book-queue.processor.ts:48-83](file://server/src/modules/book-generator/book-queue.processor.ts#L48-L83) - [server/src/services/queue.service.ts:88-133](file://server/src/services/queue.service.ts#L88-L133) - [server/src/services/memory-queue.ts:48-99](file://server/src/services/memory-queue.ts#L48-L99) 章节来源 - [server/src/modules/book-generator/book-queue.processor.ts:16-124](file://server/src/modules/book-generator/book-queue.processor.ts#L16-L124) - [server/src/services/queue.service.ts:48-133](file://server/src/services/queue.service.ts#L48-L133) - [server/src/services/memory-queue.ts:17-99](file://server/src/services/memory-queue.ts#L17-L99) ### 队列服务(Bull 封装) - 职责:提供队列实例、任务状态查询、进度更新回调注册 - 设计原则:队列只负责排队与并发控制,失败重试、超时管理交由上层业务与容错层处理 - 状态映射:waiting/active/completed/failed/delayed 映射到统一 TaskStatus 章节来源 - [server/src/services/queue.service.ts:48-266](file://server/src/services/queue.service.ts#L48-L266) ### 容错层(重试/超时/监控/恢复) - AI 调用重试:最多 3 次,指数退避,失败记录与用户通知 - 节点超时:按节点类型配置超时阈值,超时后通知并触发恢复 - 进度监控:超过阈值无进度更新时发出告警,必要时自动恢复 - 自动恢复:重新入队并通知用户 ```mermaid flowchart TD A["开始节点执行"] --> Timeout["设置超时定时器"] Timeout --> Exec["执行节点函数"] Exec --> Ok{"执行成功?"} Ok --> |是| NotifyOk["通知用户完成"] Ok --> |否| Retry["AI重试指数退避"] Retry --> MaxRetry{"超过最大重试?"} MaxRetry --> |是| MarkFail["标记失败并记录错误"] MaxRetry --> |否| Exec NotifyOk --> Done(["结束"]) MarkFail --> Done ``` 图表来源 - [server/src/modules/book-generator/fault-tolerance.ts:68-180](file://server/src/modules/book-generator/fault-tolerance.ts#L68-L180) 章节来源 - [server/src/modules/book-generator/fault-tolerance.ts:17-180](file://server/src/modules/book-generator/fault-tolerance.ts#L17-L180) - [server/src/modules/book-generator/fault-tolerance.ts:188-323](file://server/src/modules/book-generator/fault-tolerance.ts#L188-L323) ### 阶段管理器(线性阶段与安全迁移) - 章节阶段:从 idle 到 outline_completed → content_generating → content_completed → audio_generating → audio_completed → video_generating → video_completed → failed - 安全迁移:验证转移矩阵、乐观锁更新、回退时清理下游资源 - 上层封装:advanceChapter(只能前进)、regenerateChapter(可回退并清理) ```mermaid stateDiagram-v2 [*] --> idle idle --> content_generating : "开始内容生成" content_generating --> content_completed : "完成" content_completed --> audio_generating : "推进" audio_generating --> audio_completed : "完成" audio_completed --> video_generating : "推进" video_generating --> video_completed : "完成" content_generating --> failed : "失败" audio_generating --> failed : "失败" video_generating --> failed : "失败" failed --> content_generating : "重新生成" failed --> idle : "重置" ``` 图表来源 - [server/src/modules/book-generator/stage-manager.ts:57-147](file://server/src/modules/book-generator/stage-manager.ts#L57-L147) 章节来源 - [server/src/modules/book-generator/stage-manager.ts:100-198](file://server/src/modules/book-generator/stage-manager.ts#L100-L198) ### 工作流与策略(LangGraph) - 状态定义:包含 bookId、topic、bookScale、genLevel、progress、completedChapters、failedChapters 等 - 策略实现: - 串行策略:plan → outline → sections → subsections → write_chapters - 一步大纲+并行内容:plan → full_outline → write_chapters(并行) - 逐章内聚:plan → outline → per_chapter(每章独立并行) 章节来源 - [server/src/modules/book-generator/graph.ts:23-82](file://server/src/modules/book-generator/graph.ts#L23-L82) - [server/src/modules/book-generator/strategies/sequential.strategy.ts:21-59](file://server/src/modules/book-generator/strategies/sequential.strategy.ts#L21-L59) - [server/src/modules/book-generator/strategies/one-step-outline.strategy.ts:21-55](file://server/src/modules/book-generator/strategies/one-step-outline.strategy.ts#L21-L55) - [server/src/modules/book-generator/strategies/per-chapter.strategy.ts:21-55](file://server/src/modules/book-generator/strategies/per-chapter.strategy.ts#L21-L55) ## 依赖关系分析 - 控制器依赖编排器与 WebSocket 进度推送 - 编排器依赖队列处理器、阶段管理器与容错层 - 队列处理器依赖队列服务与 LangGraph 生成器 - 容错层依赖 LLM 服务与队列服务 - 工作流层依赖 LangGraph 与多种策略实现 ```mermaid graph LR Ctrl["book-generator.controller.ts"] --> Orchestrator["book-generator.service.ts"] Orchestrator --> QueueProc["book-queue.processor.ts"] QueueProc --> QueueSvc["queue.service.ts"] QueueProc --> MemQ["memory-queue.ts"] Orchestrator --> FT["fault-tolerance.ts"] Orchestrator --> StageMgr["stage-manager.ts"] QueueProc --> Graph["graph.ts"] Graph --> StratSeq["sequential.strategy.ts"] Graph --> StratOne["one-step-outline.strategy.ts"] Graph --> StratPer["per-chapter.strategy.ts"] ``` 图表来源 - [server/src/modules/book-generator/book-generator.controller.ts:1-199](file://server/src/modules/book-generator/book-generator.controller.ts#L1-L199) - [server/src/modules/book-generator/book-generator.service.ts:1-549](file://server/src/modules/book-generator/book-generator.service.ts#L1-L549) - [server/src/modules/book-generator/book-queue.processor.ts:1-124](file://server/src/modules/book-generator/book-queue.processor.ts#L1-L124) - [server/src/services/queue.service.ts:1-266](file://server/src/services/queue.service.ts#L1-L266) - [server/src/services/memory-queue.ts:1-99](file://server/src/services/memory-queue.ts#L1-L99) - [server/src/modules/book-generator/fault-tolerance.ts:1-387](file://server/src/modules/book-generator/fault-tolerance.ts#L1-L387) - [server/src/modules/book-generator/stage-manager.ts:1-202](file://server/src/modules/book-generator/stage-manager.ts#L1-L202) - [server/src/modules/book-generator/graph.ts:1-83](file://server/src/modules/book-generator/graph.ts#L1-L83) - [server/src/modules/book-generator/strategies/sequential.strategy.ts:1-60](file://server/src/modules/book-generator/strategies/sequential.strategy.ts#L1-L60) - [server/src/modules/book-generator/strategies/one-step-outline.strategy.ts:1-56](file://server/src/modules/book-generator/strategies/one-step-outline.strategy.ts#L1-L56) - [server/src/modules/book-generator/strategies/per-chapter.strategy.ts:1-56](file://server/src/modules/book-generator/strategies/per-chapter.strategy.ts#L1-L56) 章节来源 - 同上 ## 性能考虑 - 内存队列:在 Redis 不可用时提供基本并发与处理能力,适合小规模场景 - 并发控制:队列处理器最大并发 3,避免资源争用;策略层面的并行(如逐章内聚)可进一步提升吞吐 - 轮询等待:内容/音频/视频生成采用轮询检查,间隔与超时时间可调,平衡实时性与负载 - 指数退避:AI 调用重试采用指数退避,降低对上游服务的压力峰值 - 模型角色:通过环境变量为不同任务选择合适模型,优化质量与成本 - 后处理:内容清洗与格式化减少后续处理开销 章节来源 - [server/src/services/memory-queue.ts:17-99](file://server/src/services/memory-queue.ts#L17-L99) - [server/src/modules/book-generator/book-queue.processor.ts:52-82](file://server/src/modules/book-generator/book-queue.processor.ts#L52-L82) - [server/src/modules/book-generator/book-generator.service.ts:178-217](file://server/src/modules/book-generator/book-generator.service.ts#L178-L217) - [server/src/modules/book-generator/book-generator.service.ts:257-285](file://server/src/modules/book-generator/book-generator.service.ts#L257-L285) - [server/src/modules/book-generator/book-generator.service.ts:424-453](file://server/src/modules/book-generator/book-generator.service.ts#L424-L453) - [server/src/modules/book-generator/fault-tolerance.ts:68-123](file://server/src/modules/book-generator/fault-tolerance.ts#L68-L123) - [server/src/modules/book-generator/book-generator-optimizations.ts:29-47](file://server/src/modules/book-generator/book-generator-optimizations.ts#L29-L47) - [server/src/modules/book-generator/book-generator-optimizations.ts:49-54](file://server/src/modules/book-generator/book-generator-optimizations.ts#L49-L54) ## 故障排查指南 - 任务状态查询:通过控制器接口查询任务是否在运行 - 取消任务:向控制器发送取消请求,编排器会在步骤间检查取消标志 - 队列不可用:Redis 不可用时自动回退到内存队列;检查队列处理器日志 - 进度无更新:容错层会发出“长时间无响应”告警,必要时触发自动恢复 - 失败重试:AI 调用失败会自动重试并记录错误,查看书籍错误信息字段 章节来源 - [server/src/modules/book-generator/book-generator.controller.ts:125-197](file://server/src/modules/book-generator/book-generator.controller.ts#L125-L197) - [server/src/modules/book-generator/book-generator.service.ts:24-40](file://server/src/modules/book-generator/book-generator.service.ts#L24-L40) - [server/src/modules/book-generator/book-queue.processor.ts:77-82](file://server/src/modules/book-generator/book-queue.processor.ts#L77-L82) - [server/src/modules/book-generator/fault-tolerance.ts:188-261](file://server/src/modules/book-generator/fault-tolerance.ts#L188-L261) - [server/src/modules/book-generator/fault-tolerance.ts:268-323](file://server/src/modules/book-generator/fault-tolerance.ts#L268-L323) ## 结论 批量生成系统通过清晰的分层设计实现了高可靠与高扩展性:编排器确保步骤可控,队列层提供并发与回退,容错层保障稳定性,阶段管理器维护一致性,工作流层支持多种策略。结合性能优化与完善的监控告警,系统能够在复杂生成任务中保持稳定与高效。 ## 附录:API 接口文档 ### 1. 一键完整生成书籍 - 方法与路径:POST /api/book-generator/books/:id/batch-generate - 请求体 - steps: GenerationStep[](可选,默认全部步骤) - 可选值:generate_content, generate_audio, merge_audio, generate_video, merge_video - 响应 - code: 0 表示成功,非 0 表示错误 - data.taskId: 任务 ID - data.bookId: 书籍 ID - data.status: started - data.steps: 实际执行的步骤列表 章节来源 - [server/src/modules/book-generator/book-generator.controller.ts:24-119](file://server/src/modules/book-generator/book-generator.controller.ts#L24-L119) ### 2. 取消批量生成任务 - 方法与路径:POST /api/book-generator/books/:id/batch-generate/cancel - 响应 - code: 0 表示成功 - data.taskId: 任务 ID - data.bookId: 书籍 ID 章节来源 - [server/src/modules/book-generator/book-generator.controller.ts:125-156](file://server/src/modules/book-generator/book-generator.controller.ts#L125-L156) ### 3. 查询批量生成任务状态 - 方法与路径:GET /api/book-generator/books/:id/batch-generate/status - 响应 - data.isRunning: 是否有正在运行的任务 - data.taskId: 任务 ID(若在运行) - data.bookId: 书籍 ID(若在运行) 章节来源 - [server/src/modules/book-generator/book-generator.controller.ts:162-197](file://server/src/modules/book-generator/book-generator.controller.ts#L162-L197) ### 4. 书籍生成队列任务(内部) - 方法与路径:队列处理器处理 book:generation 队列 - 数据结构 - bookId: 书籍 ID - topic: 书籍主题/描述 - bookScale: 书籍规模 - genLevel: 生成层级 - 事件 - progress: 进度回调 - completed: 任务完成 - failed: 任务失败(更新书籍状态为 failed) 章节来源 - [server/src/modules/book-generator/book-queue.processor.ts:16-83](file://server/src/modules/book-generator/book-queue.processor.ts#L16-L83) ### 5. 数据模型与类型 - 书籍生成阶段(BookGenStage):draft, outlining, outline_completed, content_generating, content_completed, audio_generating, audio_completed, video_generating, video_completed, failed - 章节生成阶段(ChapterGenStage):idle, outline_completed, content_generating, content_completed, audio_generating, audio_completed, video_generating, video_completed, failed - 生成步骤(GenerationStep):generate_content, generate_audio, merge_audio, generate_video, merge_video 章节来源 - [server/src/modules/book-generator/book-generator.types.ts:8-138](file://server/src/modules/book-generator/book-generator.types.ts#L8-L138)