摘要流流水线 — 汇总文档,发现矛盾
多文档摘要流水线取一个档案内的页面/文档集合并产出汇总后的 wiki 页面:每一页都在总结来源,标注来源之间不一致的地方(矛盾检测),遵守每次运行的 token/调用/页面预算,并且只在选择性批准之后才真正触及文件系统写入想引入的内容。
多文档摘要流水线取一个档案内的页面/文档集合并产出汇总后的 wiki 页面:每一页都在总结来源,标注来源之间不一致的地方(矛盾检测),遵守每次运行的 token/调用/页面预算,并且只在选择性批准之后才真正触及文件系统写入想引入的内容。
Community 功能(该流水线运行在与聊天编排器相同的基础设施上;每次运行有预算上限)。来源:docs/SERVICES.md(Synthesis 领域,synthesisPageWriter.ts)、README.md:33。来源行:FACT-CENSUS.mdF-SYNTH-1。
流水线如何运行
流水线由 runSynthesisPipeline 编排(门面 synthesisService.ts;本体在 synthesis/synthesisStages.ts — runPipelineStages、callSynthesisLLMStage、…):
| 步骤 | 做什么 |
|---|---|
| 1. 实体抽取 | 从选定的语料中抽取(synthesisStages.ts:569) |
| 2. 每个档案一页 | 每页运行 generatePageSummary(:282) |
| 3-4. 汇底与决策 | 结尾块连着 system prompt(wiki 块注入:Pass 4 只挂在 SYSTEM 角色上,synthesisStages.ts:784-788) |
| 矛盾 | synthesisContradictionService.ts:候选配对经 Jaccard(阈值 0.15)+ 每对交由 LLM 裁判(judgePairContradiction)+ 在页面上标记矛盾 |
| 孤儿页与断链 | synthesisOrphanService.ts(detectOrphanPages、detectBrokenWikilinks) |
| 写入 | synthesisPageWriter.ts:applyApprovedChanges 只持久化已批准的改动;来源 frontmatter(buildSourceFrontmatter)引用其出处 |
预算追踪
BudgetTracker(synthesisBudgetService.ts)约束每次运行的 token / LLM 调用 / 页面(配置经 loadBudgetConfig):预算耗尽时流水线停下 — 已写出的输出仍然有效。预算监视犬与聊天编排器的同一级别。
选择性批准
摘要建议的改动不会自动落入 wiki:它们经过批准流程(applyApprovedChanges 只持久化批准人确认过的内容)。确定性预览(与 wikiWriteService 同一台机器)先于每次写入;提案页面携带来源 frontmatter。
矛盾检测
候选配对按相似度组成(Jaccard,阈值 0.15),可疑配对交给 LLM 裁判(judgePairContradiction):结果 = 相关页面上的矛盾标记(buildContradictionMarker)+ 断言的摘要(extractClaimSummary)。流程的保真度每周采样(runFidelitySample,周日 03:00 — synthesisFidelityService.ts)。
触发器与工作队列
- Post-OCR:队列
synthesisTriggerService(onOcrJobCompleted)在 OCR 完成后把摘要运行排入队列,带冷却时间(isCooldownActive)。 - Reaper:调度器
synthesisReaperJob(每 15 分钟)把孤儿的PROCESSING运行翻转到FAILED。
本指南介绍摘要流流水线的操作面;工程深潜见孪生博文:
Provenance
| 章节 | 来源 |
|---|---|
| 门面 / 步骤 / 预算 / 矛盾 | docs/SERVICES.md(§ Synthesis + synthesis* 各模块)— F-SYNTH-1 |
| 触发器 / reaper | docs/SERVICES.md(§ Schedulers & jobs — synthesisTriggerService、synthesisReaperJob) |
| README 那一行 | README.md:33(摘要的那一行)— F-SYNTH-1 |
| wiki 注入 / Pass 4 | docs/WIKI_SCHEMA_LAYER.md(§ Injection seams — synthesisStages.ts:784-788) |
---
运维参考 — Simmetric Chat v0.28.1(文档更新于 2026-10-02,普查 SHA `aca5b8ff`)。