# 内容质量控制
**本文引用的文件**
- [feature_list_content_generate.json](file://feature_list_content_generate.json)
- [fault-tolerance.ts](file://server/src/modules/book-generator/fault-tolerance.ts)
- [FAULT_TOLERANCE.md](file://server/src/modules/book-generator/FAULT_TOLERANCE.md)
- [outline-quality.ts](file://server/src/modules/book-generator/utils/outline-quality.ts)
- [content.node.ts](file://server/src/modules/book-generator/nodes/content.node.ts)
- [book-generator.controller.ts](file://server/src/modules/book-generator/book-generator.controller.ts)
- [ai-generate-controller.ts](file://server/src/modules/book-generator/ai-generate-controller.ts)
- [book-generator.service.ts](file://server/src/modules/book-generator/book-generator.service.ts)
- [ai-content.service.js](file://deploy-package/server/modules/ai-content/ai-content.service.js)
## 目录
1. [简介](#简介)
2. [项目结构](#项目结构)
3. [核心组件](#核心组件)
4. [架构总览](#架构总览)
5. [详细组件分析](#详细组件分析)
6. [依赖关系分析](#依赖关系分析)
7. [性能考量](#性能考量)
8. [故障排查指南](#故障排查指南)
9. [结论](#结论)
10. [附录](#附录)
## 简介
本技术文档围绕“内容质量控制系统”展开,系统覆盖内容质量评估标准与指标、质量控制实现机制(敏感内容过滤、重复检测、合规检查)、故障容错设计(错误恢复、异常处理、数据完整性保障)、自动化流程(自动审核、人工复核、质量评分)、监控与报告(趋势分析、问题统计、改进建议)、配置与自定义规则,以及实际示例与调试技巧。文档基于仓库中的功能清单与实现文件进行梳理,帮助开发者与使用者快速理解并高效落地质量控制能力。
## 项目结构
质量控制相关能力主要分布在以下模块与文件:
- 功能清单与质量流程:feature_list_content_generate.json
- 容错与稳定性:fault-tolerance.ts、FAULT_TOLERANCE.md
- 大纲质量评估:outline-quality.ts
- 内容节点与预算控制:content.node.ts
- 批量生成编排与进度推送:book-generator.controller.ts、book-generator.service.ts
- 单次AI生成接口:ai-generate-controller.ts
- 质量服务(部署包演示):ai-content.service.js
```mermaid
graph TB
subgraph "前端"
UI["内容生成界面
进度查看"]
end
subgraph "后端"
BGCtrl["批量生成控制器
book-generator.controller.ts"]
BGService["批量生成编排器
book-generator.service.ts"]
FT["容错与恢复
fault-tolerance.ts"]
OQ["大纲质量评估
outline-quality.ts"]
CN["内容节点
content.node.ts"]
AICtrl["AI生成控制器
ai-generate-controller.ts"]
AISvc["质量服务(演示)
ai-content.service.js"]
end
UI --> BGCtrl
BGCtrl --> BGService
BGService --> FT
BGService --> OQ
BGService --> CN
UI --> AICtrl
AICtrl --> AISvc
```
**图表来源**
- [book-generator.controller.ts:1-199](file://server/src/modules/book-generator/book-generator.controller.ts#L1-L199)
- [book-generator.service.ts:1-549](file://server/src/modules/book-generator/book-generator.service.ts#L1-L549)
- [fault-tolerance.ts:1-387](file://server/src/modules/book-generator/fault-tolerance.ts#L1-L387)
- [outline-quality.ts:1-173](file://server/src/modules/book-generator/utils/outline-quality.ts#L1-L173)
- [content.node.ts:235-264](file://server/src/modules/book-generator/nodes/content.node.ts#L235-L264)
- [ai-generate-controller.ts:1-152](file://server/src/modules/book-generator/ai-generate-controller.ts#L1-L152)
- [ai-content.service.js:645-904](file://deploy-package/server/modules/ai-content/ai-content.service.js#L645-L904)
**章节来源**
- [feature_list_content_generate.json:640-668](file://feature_list_content_generate.json#L640-L668)
- [book-generator.controller.ts:1-199](file://server/src/modules/book-generator/book-generator.controller.ts#L1-L199)
- [book-generator.service.ts:1-549](file://server/src/modules/book-generator/book-generator.service.ts#L1-L549)
## 核心组件
- 质量评估与指标
- 大纲质量评估:章节数量、标题重复、摘要/知识点缺失、粒度合理性、节结构完整性
- 质量评分维度:语言流畅度、表达自然度、情感一致性、主题相关性、结构完整性
- 敏感词检测与合规检查:实时检测、规则库、问题定位与修复建议
- 质量控制实现机制
- 敏感内容过滤:实时检测与高亮、阻止生成、可配置忽略
- 重复检测:标题去重、知识点粒度校验
- 合规检查:行业规则匹配、问题列表与自动修复建议
- 故障容错系统
- AI调用重试(指数退避)、节点超时控制、进度监控、自动恢复
- 自动化流程
- 自动审核(敏感/合规/大纲质量)、人工复核(问题列表)、质量评分与报告
- 监控与报告
- 质量趋势、问题统计、改进建议、分析报告(词云、情感曲线、阅读时长)
**章节来源**
- [feature_list_content_generate.json:81-92](file://feature_list_content_generate.json#L81-L92)
- [feature_list_content_generate.json:239-284](file://feature_list_content_generate.json#L239-L284)
- [feature_list_content_generate.json:601-639](file://feature_list_content_generate.json#L601-L639)
- [outline-quality.ts:8-173](file://server/src/modules/book-generator/utils/outline-quality.ts#L8-L173)
- [fault-tolerance.ts:17-51](file://server/src/modules/book-generator/fault-tolerance.ts#L17-L51)
## 架构总览
内容质量控制贯穿“意图识别-内容规划-分步生成-质量控制-音频合成”的全流程。质量控制阶段对生成内容进行敏感词检测、合规检查与质量评分,并结合大纲质量评估与预算控制,确保内容完整性与一致性。
```mermaid
sequenceDiagram
participant U as "用户"
participant C as "批量生成控制器"
participant S as "批量生成编排器"
participant G as "LangGraph生成器"
participant Q as "质量控制模块"
participant F as "容错系统"
U->>C : 提交批量生成请求
C->>S : 创建编排器并启动
S->>G : 启动内容生成
G-->>S : 推送章节生成进度
S->>Q : 对章节内容执行质量控制
Q-->>S : 返回敏感/合规/评分结果
S->>F : 监控进度与节点超时
F-->>S : 超时/失败时自动恢复
S-->>U : 推送最终进度与结果
```
**图表来源**
- [book-generator.controller.ts:24-119](file://server/src/modules/book-generator/book-generator.controller.ts#L24-L119)
- [book-generator.service.ts:149-217](file://server/src/modules/book-generator/book-generator.service.ts#L149-L217)
- [fault-tolerance.ts:188-261](file://server/src/modules/book-generator/fault-tolerance.ts#L188-L261)
## 详细组件分析
### 大纲质量评估器
- 功能要点
- 章节数范围检查、标题重复检测、摘要/知识点缺失统计、粒度合理性评估、节结构完整性检查
- 输出通过性、得分与警告列表,支持不同生成层级的差异化校验
- 关键指标
- 章节数偏离度扣分、重复标题扣分、缺失摘要/知识点扣分、粒度过粗/过细则扣分
- 复杂度
- 时间复杂度 O(n)(n 为章节数),空间复杂度 O(k)(k 为唯一标题数量)
```mermaid
flowchart TD
Start(["开始评估"]) --> Validate["校验输入参数"]
Validate --> Empty{"章节为空?"}
Empty --> |是| Fail["返回失败与高严重度警告"]
Empty --> |否| Titles["统计标题出现次数"]
Titles --> Dup{"存在重复标题?"}
Dup --> |是| AddDupWarn["添加重复标题警告并扣分"]
Dup --> |否| ChaptersRange["检查章节数范围"]
ChaptersRange --> RangeWarn{"超出推荐范围?"}
RangeWarn --> |是| AddRangeWarn["添加范围警告并扣分"]
RangeWarn --> |否| SummaryKP["检查摘要与知识点"]
SummaryKP --> SummaryEmpty{"摘要缺失?"}
SummaryEmpty --> |是| AddSummaryWarn["添加摘要缺失警告并扣分"]
SummaryEmpty --> |否| KPEmpty{"知识点缺失?"}
KPEmpty --> |是| AddKPWarn["添加知识点缺失警告并扣分"]
KPEmpty --> |否| Granularity["检查粒度合理性"]
Granularity --> Fine{"粒度过细/过粗?"}
Fine --> |是| AddGranWarn["添加粒度警告并扣分"]
Fine --> |否| Sections{"检查节结构层级≥2"}
Sections --> PassScore["计算最终得分与通过性"]
PassScore --> End(["结束"])
```
**图表来源**
- [outline-quality.ts:37-172](file://server/src/modules/book-generator/utils/outline-quality.ts#L37-L172)
**章节来源**
- [outline-quality.ts:8-173](file://server/src/modules/book-generator/utils/outline-quality.ts#L8-L173)
### 内容节点与预算控制
- 功能要点
- 章节内容生成后进行字数统计与预算偏差检测,超过预算上限按智能边界截断,防止内容膨胀
- 三层安全防护:工具可用性降级、预算偏差截断、异常日志记录
- 关键流程
- LLM调用 → 清洗内容 → 统计字数 → 预算校验 → 截断处理(如需) → 更新进度
```mermaid
flowchart TD
Enter(["进入内容节点"]) --> CallLLM["调用LLM生成内容"]
CallLLM --> Clean["清洗内容"]
Clean --> Count["统计字数"]
Count --> Budget{"是否超出预算上限?"}
Budget --> |是| Truncate["按边界截断智能段落"]
Budget --> |否| Proceed["继续处理"]
Truncate --> Proceed
Proceed --> Update["更新章节统计与进度"]
Update --> Exit(["退出节点"])
```
**图表来源**
- [content.node.ts:235-264](file://server/src/modules/book-generator/nodes/content.node.ts#L235-L264)
**章节来源**
- [content.node.ts:235-264](file://server/src/modules/book-generator/nodes/content.node.ts#L235-L264)
### 故障容错系统
- 重试机制
- AI调用最多重试 N 次,采用指数退避策略,每次重试前通知用户
- 节点超时控制
- 不同节点配置不同超时阈值;超时后通知用户并触发恢复流程
- 进度监控
- 定期检查书籍进度,长时间无进展发出警告,第三次尝试自动恢复
- 自动恢复
- 限制最大恢复次数,超过则标记失败并提示手动重新生成
```mermaid
sequenceDiagram
participant S as "编排器"
participant FT as "容错系统"
participant LLM as "LLM服务"
participant WS as "WebSocket通知"
S->>FT : 调用带重试的LLM
loop 重试循环
FT->>LLM : 发起请求
alt 成功
LLM-->>FT : 返回结果
FT-->>S : 返回结果
else 失败
FT->>WS : 通知用户重试
FT->>FT : 指数退避等待
end
end
S->>FT : 节点执行带超时
FT-->>S : 超时/完成/失败
S->>FT : 启动进度监控
FT-->>S : 长时间无响应时尝试自动恢复
```
**图表来源**
- [fault-tolerance.ts:68-123](file://server/src/modules/book-generator/fault-tolerance.ts#L68-L123)
- [fault-tolerance.ts:131-180](file://server/src/modules/book-generator/fault-tolerance.ts#L131-L180)
- [fault-tolerance.ts:188-261](file://server/src/modules/book-generator/fault-tolerance.ts#L188-L261)
- [fault-tolerance.ts:268-323](file://server/src/modules/book-generator/fault-tolerance.ts#L268-L323)
**章节来源**
- [fault-tolerance.ts:17-51](file://server/src/modules/book-generator/fault-tolerance.ts#L17-L51)
- [FAULT_TOLERANCE.md:182-237](file://server/src/modules/book-generator/FAULT_TOLERANCE.md#L182-L237)
### 质量评分与合规检查(部署包演示)
- 质量评分
- 维度:流畅度、自然度、情感一致性、主题相关性、结构完整性
- 输出整体分数与维度明细,支持生成分析报告
- 合规检查
- 基于行业规则进行检查,输出问题列表与修复建议
- 敏感词检测
- 实时检测并高亮敏感词,提供替换建议
```mermaid
classDiagram
class QualityService {
+scoreQuality(text) QualityReport
+optimizeContent(text, target) OptimizeResult
+checkCompliance(text, industry) ComplianceResult
+checkSensitive(text) SensitiveResult
}
class QualityReport {
+number overall
+map dimensions
+string report
}
class ComplianceResult {
+boolean passed
+array issues
+array warnings
}
class SensitiveResult {
+boolean isClean
+array foundWords
+array positions
+array suggestions
}
QualityService --> QualityReport : "返回"
QualityService --> ComplianceResult : "返回"
QualityService --> SensitiveResult : "返回"
```
**图表来源**
- [ai-content.service.js:694-705](file://deploy-package/server/modules/ai-content/ai-content.service.js#L694-L705)
- [ai-content.service.js:877-883](file://deploy-package/server/modules/ai-content/ai-content.service.js#L877-L883)
- [ai-content.service.js:681-690](file://deploy-package/server/modules/ai-content/ai-content.service.js#L681-L690)
**章节来源**
- [feature_list_content_generate.json:260-284](file://feature_list_content_generate.json#L260-L284)
- [feature_list_content_generate.json:601-618](file://feature_list_content_generate.json#L601-L618)
- [feature_list_content_generate.json:240-257](file://feature_list_content_generate.json#L240-L257)
- [ai-content.service.js:694-705](file://deploy-package/server/modules/ai-content/ai-content.service.js#L694-L705)
### 批量生成与进度监控
- 批量生成编排器负责按步骤顺序执行:内容生成、音频生成、音频合并、视频生成、视频合并
- 每步执行前推送进度,支持取消标志与超时检查
- 通过 WebSocket 推送进度,便于前端实时展示
```mermaid
sequenceDiagram
participant C as "控制器"
participant O as "编排器"
participant P as "进度推送"
participant DB as "数据库"
C->>O : 创建并启动编排器
loop 每个步骤
O->>P : 推送步骤开始
O->>DB : 轮询检查状态/进度
alt 步骤完成
O->>P : 推送步骤完成
else 步骤失败/取消
O-->>C : 返回错误信息
end
end
O-->>C : 推送最终完成
```
**图表来源**
- [book-generator.controller.ts:24-119](file://server/src/modules/book-generator/book-generator.controller.ts#L24-L119)
- [book-generator.service.ts:77-143](file://server/src/modules/book-generator/book-generator.service.ts#L77-L143)
**章节来源**
- [book-generator.controller.ts:1-199](file://server/src/modules/book-generator/book-generator.controller.ts#L1-L199)
- [book-generator.service.ts:1-549](file://server/src/modules/book-generator/book-generator.service.ts#L1-L549)
## 依赖关系分析
- 模块耦合
- 编排器依赖容错系统与存储服务,确保生成过程稳定与可观测
- 大纲质量评估独立于生成流程,作为前置校验
- 质量服务(评分/合规/敏感词)可插拔接入,便于替换与扩展
- 外部依赖
- LLM 服务、WebSocket 通知、队列服务(用于恢复重试)
```mermaid
graph LR
BGService["编排器"] --> FT["容错系统"]
BGService --> Store["存储/进度"]
BGService --> WS["WebSocket通知"]
BGService --> OQ["大纲质量评估"]
BGService --> CN["内容节点"]
AISvc["质量服务(演示)"] --> LLM["LLM服务"]
```
**图表来源**
- [book-generator.service.ts:1-549](file://server/src/modules/book-generator/book-generator.service.ts#L1-L549)
- [fault-tolerance.ts:1-387](file://server/src/modules/book-generator/fault-tolerance.ts#L1-L387)
- [outline-quality.ts:1-173](file://server/src/modules/book-generator/utils/outline-quality.ts#L1-L173)
- [ai-content.service.js:645-904](file://deploy-package/server/modules/ai-content/ai-content.service.js#L645-L904)
**章节来源**
- [book-generator.service.ts:1-549](file://server/src/modules/book-generator/book-generator.service.ts#L1-L549)
- [fault-tolerance.ts:1-387](file://server/src/modules/book-generator/fault-tolerance.ts#L1-L387)
## 性能考量
- 重试与超时
- 指数退避降低对上游服务的压力峰值,避免雪崩效应
- 节点超时阈值按任务复杂度分级,平衡吞吐与稳定性
- 进度轮询
- 合理的轮询间隔与最大等待时间,避免过度占用资源
- 截断策略
- 智能边界截断减少无效内容,提升后续处理效率
[本节为通用指导,无需具体文件引用]
## 故障排查指南
- 常见问题
- 生成超时:检查节点超时配置与网络状况,确认容错监控是否触发自动恢复
- 重试失败:查看失败日志与错误消息,确认是否超过最大重试次数
- 进度停滞:确认数据库状态更新是否正常,检查取消标志与任务状态
- 调试技巧
- 启用详细日志,关注“容错”、“进度监控”、“自动恢复”关键节点
- 使用单步生成接口验证 LLM 调用与清洗逻辑
- 对比大纲质量评估结果,定位章节数量、标题重复、摘要/知识点缺失等问题
**章节来源**
- [fault-tolerance.ts:188-261](file://server/src/modules/book-generator/fault-tolerance.ts#L188-L261)
- [fault-tolerance.ts:268-323](file://server/src/modules/book-generator/fault-tolerance.ts#L268-L323)
- [ai-generate-controller.ts:16-95](file://server/src/modules/book-generator/ai-generate-controller.ts#L16-L95)
## 结论
内容质量控制系统通过“大纲质量评估 + 内容预算控制 + 敏感词/合规/评分 + 容错与恢复”的组合拳,实现了从结构到语义再到稳定性的一体化质量保障。配合批量生成编排与进度监控,系统具备良好的可观测性与可维护性。建议在生产环境中结合业务场景进一步细化规则与阈值,并持续迭代质量评估维度与恢复策略。
[本节为总结,无需具体文件引用]
## 附录
### 质量控制流程与API参考
- 批量生成
- POST /api/book-generator/books/:id/batch-generate
- POST /api/book-generator/books/:id/batch-generate/cancel
- GET /api/book-generator/books/:id/batch-generate/status
- 单次AI生成
- POST /api/book-generator/ai-generate
- POST /api/book-generator/ai-generate/sync
- 质量服务(部署包演示)
- 质量评分:scoreQuality(text)
- 合规检查:checkCompliance(text, industry)
- 敏感词检测:checkSensitive(text)
**章节来源**
- [book-generator.controller.ts:24-197](file://server/src/modules/book-generator/book-generator.controller.ts#L24-L197)
- [ai-generate-controller.ts:16-149](file://server/src/modules/book-generator/ai-generate-controller.ts#L16-L149)
- [ai-content.service.js:694-705](file://deploy-package/server/modules/ai-content/ai-content.service.js#L694-L705)
- [ai-content.service.js:877-883](file://deploy-package/server/modules/ai-content/ai-content.service.js#L877-L883)
- [ai-content.service.js:681-690](file://deploy-package/server/modules/ai-content/ai-content.service.js#L681-L690)
### 配置与自定义规则
- 容错配置
- AI重试次数、初始/最大延迟、指数退避倍数
- 节点超时阈值(按节点类型配置)
- 进度监控空闲时间阈值与检查间隔
- 自动恢复最大尝试次数与延迟
- 大纲质量评估
- 章节数范围(最小/最大)、摘要/知识点缺失阈值、粒度上下限
- 行业规则与敏感词库
- 合规规则按行业配置,敏感词库可动态更新与忽略列表
**章节来源**
- [fault-tolerance.ts:17-51](file://server/src/modules/book-generator/fault-tolerance.ts#L17-L51)
- [outline-quality.ts:71-91](file://server/src/modules/book-generator/utils/outline-quality.ts#L71-L91)
- [feature_list_content_generate.json:81-92](file://feature_list_content_generate.json#L81-L92)