本文引用的文件
本技术文档围绕“内容质量控制系统”展开,系统覆盖内容质量评估标准与指标、质量控制实现机制(敏感内容过滤、重复检测、合规检查)、故障容错设计(错误恢复、异常处理、数据完整性保障)、自动化流程(自动审核、人工复核、质量评分)、监控与报告(趋势分析、问题统计、改进建议)、配置与自定义规则,以及实际示例与调试技巧。文档基于仓库中的功能清单与实现文件进行梳理,帮助开发者与使用者快速理解并高效落地质量控制能力。
质量控制相关能力主要分布在以下模块与文件:
质量服务(部署包演示):ai-content.service.js
graph TB
subgraph "前端"
UI["内容生成界面<br/>进度查看"]
end
subgraph "后端"
BGCtrl["批量生成控制器<br/>book-generator.controller.ts"]
BGService["批量生成编排器<br/>book-generator.service.ts"]
FT["容错与恢复<br/>fault-tolerance.ts"]
OQ["大纲质量评估<br/>outline-quality.ts"]
CN["内容节点<br/>content.node.ts"]
AICtrl["AI生成控制器<br/>ai-generate-controller.ts"]
AISvc["质量服务(演示)<br/>ai-content.service.js"]
end
UI --> BGCtrl
BGCtrl --> BGService
BGService --> FT
BGService --> OQ
BGService --> CN
UI --> AICtrl
AICtrl --> AISvc
图表来源
章节来源
章节来源
内容质量控制贯穿“意图识别-内容规划-分步生成-质量控制-音频合成”的全流程。质量控制阶段对生成内容进行敏感词检测、合规检查与质量评分,并结合大纲质量评估与预算控制,确保内容完整性与一致性。
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 : 推送最终进度与结果
图表来源
复杂度
时间复杂度 O(n)(n 为章节数),空间复杂度 O(k)(k 为唯一标题数量)
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(["结束"])
图表来源
章节来源
关键流程
LLM调用 → 清洗内容 → 统计字数 → 预算校验 → 截断处理(如需) → 更新进度
flowchart TD
Enter(["进入内容节点"]) --> CallLLM["调用LLM生成内容"]
CallLLM --> Clean["清洗内容"]
Clean --> Count["统计字数"]
Count --> Budget{"是否超出预算上限?"}
Budget --> |是| Truncate["按边界截断智能段落"]
Budget --> |否| Proceed["继续处理"]
Truncate --> Proceed
Proceed --> Update["更新章节统计与进度"]
Update --> Exit(["退出节点"])
图表来源
章节来源
自动恢复
限制最大恢复次数,超过则标记失败并提示手动重新生成
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 : 长时间无响应时尝试自动恢复
图表来源
章节来源
敏感词检测
实时检测并高亮敏感词,提供替换建议
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 : "返回"
图表来源
章节来源
通过 WebSocket 推送进度,便于前端实时展示
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 : 推送最终完成
图表来源
章节来源
外部依赖
LLM 服务、WebSocket 通知、队列服务(用于恢复重试)
graph LR
BGService["编排器"] --> FT["容错系统"]
BGService --> Store["存储/进度"]
BGService --> WS["WebSocket通知"]
BGService --> OQ["大纲质量评估"]
BGService --> CN["内容节点"]
AISvc["质量服务(演示)"] --> LLM["LLM服务"]
图表来源
章节来源
[本节为通用指导,无需具体文件引用]
章节来源
内容质量控制系统通过“大纲质量评估 + 内容预算控制 + 敏感词/合规/评分 + 容错与恢复”的组合拳,实现了从结构到语义再到稳定性的一体化质量保障。配合批量生成编排与进度监控,系统具备良好的可观测性与可维护性。建议在生产环境中结合业务场景进一步细化规则与阈值,并持续迭代质量评估维度与恢复策略。
[本节为总结,无需具体文件引用]
章节来源
章节来源