本文档引用的文件
本文件为“生成策略系统”的综合性技术文档,聚焦于多策略生成流水线的设计与实现,涵盖策略选择逻辑、参数配置、执行流程控制、性能特征与资源消耗、策略切换与动态调整机制,以及策略对比与最佳实践。系统基于 LangGraph 工作流,结合容错与进度监控,支持多种生成策略(串行、一步大纲+并行内容、逐章内聚、深度规划+并发+连贯性编辑),并提供策略切换与运行时动态调整能力。
生成策略系统位于服务端模块的书籍生成子系统中,采用“策略 + 节点 + 容错 + 存储”的分层设计:
存储层:封装数据库访问与状态管理,维护书籍与章节的生命周期与阶段状态。
graph TB
subgraph "策略层"
S1["SequentialStrategy<br/>串行策略"]
S2["OneStepOutlineStrategy<br/>一步大纲+并行内容"]
S3["PerChapterStrategy<br/>逐章内聚"]
S4["DeepPlanParallelStrategy<br/>深度规划+并发+连贯性编辑"]
SEL["策略选择器<br/>selector.ts"]
end
subgraph "节点层"
N1["planBookNode<br/>规划节点"]
N2["generateFullOutlineNode<br/>一步大纲节点"]
N3["perChapterNode<br/>逐章节点"]
N4["generateOutlineNode<br/>章大纲节点"]
N5["generateSectionsNode<br/>节节点"]
N6["generateSubsectionsNode<br/>小节节点"]
N7["writeChaptersNode<br/>内容节点"]
FT["容错与监控<br/>fault-tolerance.ts"]
end
subgraph "状态与存储"
G["GraphState<br/>graph.ts"]
BS["BookStore<br/>book-generator.store.ts"]
BT["类型定义<br/>book-generator.types.ts"]
end
S1 --> N1
S1 --> N4
S1 --> N5
S1 --> N6
S1 --> N7
S2 --> N1
S2 --> N2
S2 --> N7
S3 --> N1
S3 --> N4
S3 --> N3
S4 --> N1
S4 --> N2
S4 --> N3
S4 --> N4
N1 --> G
N2 --> G
N3 --> G
N4 --> G
N5 --> G
N6 --> G
N7 --> G
G --> BS
BS --> BT
FT --> BS
SEL --> S1
SEL --> S2
SEL --> S3
SEL --> S4
图表来源
章节来源
章节来源
系统以 LangGraph 为核心,将“策略”抽象为不同的工作流编排,节点负责具体阶段的 AI 生成与数据持久化。策略选择器提供运行时切换能力,容错层贯穿执行全过程,确保稳定性与可观测性。
sequenceDiagram
participant Client as "客户端"
participant Selector as "策略选择器"
participant Strategy as "具体策略"
participant Graph as "LangGraph工作流"
participant Nodes as "节点集合"
participant Store as "BookStore"
participant Monitor as "容错监控"
Client->>Selector : 请求生成(参数)
Selector->>Strategy : 获取当前策略实例
Strategy->>Graph : 编译工作流(节点+边)
Strategy->>Graph : 初始化状态
Strategy->>Monitor : 启动进度监控
Graph->>Nodes : 流式执行各节点
Nodes->>Store : 持久化状态/大纲/内容
Nodes-->>Graph : 返回阶段性结果
Graph-->>Strategy : 完成或失败
Strategy->>Store : 更新书籍阶段与进度
Strategy->>Monitor : 停止监控
Strategy-->>Client : 返回执行结果
图表来源
章节来源
章节来源
适用场景
对生成质量与一致性要求高、并发风险敏感的场景。
flowchart TD
Start(["开始"]) --> Plan["规划节点"]
Plan --> Outline["生成章大纲"]
Outline --> Sections["生成节大纲"]
Sections --> Subsections["生成小节大纲"]
Subsections --> Content["生成章节内容"]
Content --> End(["结束"])
图表来源
章节来源
适用场景
大规模内容生成、追求效率优先的场景。
sequenceDiagram
participant Strat as "策略"
participant Plan as "规划节点"
participant Full as "一步大纲节点"
participant Write as "并行内容节点"
Strat->>Plan : 规划书籍
Plan-->>Strat : 返回规划结果
Strat->>Full : 生成完整大纲
Full-->>Strat : 返回树形大纲
Strat->>Write : 并行写各章节内容
Write-->>Strat : 更新章节内容与进度
图表来源
章节来源
适用场景
内容质量优先、章节间相对独立的场景。
flowchart TD
Start(["开始"]) --> Plan["规划节点"]
Plan --> Outline["生成章大纲"]
Outline --> PerChapter["逐章处理(并行)"]
PerChapter --> End(["结束"])
图表来源
章节来源
章节来源
章节来源
存储与类型
存储层提供 upsert 机制避免并发写入冲突,类型定义确保状态与数据结构一致性。
graph LR
Types["类型定义<br/>book-generator.types.ts"] --> Graph["状态模型<br/>graph.ts"]
Graph --> Base["基础执行框架<br/>base.ts"]
Base --> Strategies["策略实现<br/>sequential/one-step/per-chapter/deep-plan-parallel"]
Strategies --> Nodes["节点实现<br/>plan/full-outline/per-chapter"]
Strategies --> Store["存储封装<br/>book-generator.store.ts"]
Strategies --> FT["容错监控<br/>fault-tolerance.ts"]
图表来源
章节来源
章节来源
章节来源
生成策略系统通过“策略 + 节点 + 容错 + 存储”的分层设计,实现了灵活、可扩展且稳定的书籍生成流水线。不同策略在调用次数、并发度与质量保障方面各有侧重,策略选择器支持运行时切换,满足多样化业务需求。建议在追求效率时优先考虑一步大纲+并行内容或深度规划+并发策略,在强调质量与一致性时采用逐章内聚或深度规划+连贯性编辑策略,并结合容错与监控机制保障稳定性。
章节来源