# DocSummarizer ' MS K1 年轻一点的MSSK2 聪明点的兄弟

<!--category-- AI, LLM, RAG, C#, Deep Research, Lucene, Knowledge Graph, Time Boxed Tool -->
<datetime class="hidden">2026-01-29T10:00</datetime>

没有深口袋的深度研究 @.

当“"”Dep Institute Research's " 降落在AID高级工具里时,我很好奇这是什么? “, 实际上是什么呢?”所以我把它拆开了。 当我理解到这个结构后, 我意识到I' 已经建造了大部分的.?

### DoomSummarizer 利用相似的工作流程@,,但其设计优化了“"read {+} 减少<"}进程,使其多半具有确定性和局部性},,使用大语言模型{(LLMMS K6,主要用于合成_.}

在这一方法中,削减步骤的力度消除了需要大型, 昂贵模式以产生令人满意的结果的必要性。

包括多-源代码检索@,}实体提取_, 知识图表\ ,}和嵌入{- 基础排名*,}它们与清晰RAG和DocSummerizer系列分享

缺失的部分并非缺乏能力 @,, 而是理解如何有效运用这些现有元素@.什么?

在商业工具中, “,”““”“Deep Research”“””通常是指一种工作模式。

或

重要

或

请注意计划研究方法@,是否多-step search @/browsing}MS K3}在很多源头中讀 *{((通常在網上) <+}你上传的>/}连接文件),}然後寫一份更長的報告 引用<.

此值的一大部分是改进输入“:”的拉动, 使其在新产品中比任何型号@-+#信号源都高 #’+#培训数据切除“MS K4_off date @,}(证据)<,>和减少模型转换的可能性\.{

例如 @: [OpenAI 深层研究](https://openai.com/index/introducing-deep-research/), [双子深层研究](https://blog.google/products/gemini/new-gemini-app-features-march-2025/),和 [双重深层研究](https://www.perplexity.ai/hub/blog/introducing-perplexity-deep-research) “( ”也称为““ 研究模式 ” ” 在他们的UIQ/ docs @). }

DoomSummarizer 遵循相同的工作流程@, @ but it’_%s 设计完成, 因此大部分的“ “” 读@MS K3} 减少 “ ”” 的工作是确定性的和本地的 @,} 而LLM主要用于合成 •.}

如果降级的步数是坚挺的 , 你不需要一个大的’ 昂贵的模型来取得好的结果吗?

之间 [更清晰](https://github.com/scottgal/lucidrag) 和DocSummarizer系列\,我已经拥有了大部分的建筑块 ': moto\ - source recreaking ,\ 实体提取>,\ 知识图形@,\ 嵌入-\ 以排名'.#

丢失的碎片是 @' @t 能力@.}它就是 *管弦*“.”你如何接收所有这些信号 并把它们结合到某种与一个小型号“?”一致的东西?

由末日滚动 *,* 命名为 .* 因为它是末日卷轴 所以您不必按末日翻滚 *MSSK3* 指向您的源头*,* 设置一个旋律\ MS K6}获得合成=. *

但是这篇文章是关于这个工具的“.”和“It's '”的内容。

[![释放GitHub](https://img.shields.io/github/v/release/scottgal/lucidrag?filter=doomsummarizer*&label=doomsummarizer)](https://github.com/scottgal/lucidrag/releases?q=doomsummarizer)

这是 **部分#5** 调制解压缩器序列@. @

如果您想要第一个基础文件“ :” : @ info/ plain

- [部分#1:_建筑](/blog/building-a-document-summarizer-with-rag)
- [使用此工具的“ 2:” 部件](/blog/docsummarizer-tool)
- [部分: 3:高级概念](/blog/docsummarizer-advanced-concepts)
- [建筑RAG管道](/blog/docsummarizer-rag-pipeline)

这也是 [时框工具](/blog/timeboxedtool-consoleimage).

---


[-=YTET -伊甸园字幕组=- 翻译:

## 核心Idea=:}减少的RAG

标准 RAG 已使用语义检索@ : @ 块文档\ ,} 嵌入它们 @ MS K2, 并获取最相似的区块的顶部@ MISK3Qk@ MPK4}

痛苦是最后一步: 你最终还是把一堆吵闹的',\"重叠块扔进一个LLM, 要求它调和重复的,"重量来源\," . 并保持一条连贯的线"MS K4" 这管用, 但是它把你推向大环境窗口和昂贵的模式"MSC6"

如果你做了更多的工作 *之前* LLM看到任何东西 ?

这个图案就是这个模式 : **在生成前减少**“.” 使用原始文件,并明确将其减少到基本信号“:” 嵌入“MS K2” 级别 ,” 突出部分 “,” 实体概况“MSC5” 当LLM看到任何东西时 “MS K6” 辛勤工作完成后

```mermaid
flowchart TD
    subgraph REDUCE["REDUCE: Distil to Signals"]
        Q[Query] --> Decompose[Composite Decomposition]
        Decompose --> S1[Subquery 1]
        Decompose --> S2[Subquery 2]
        S1 & S2 --> Fetch[Multi-Source Fetch]
        Fetch --> Embed[ONNX Embed Each Item]
        Embed --> Rank[6-Signal RRF Fusion]
        Rank --> TextRank[TextRank Extraction]
        TextRank --> NER[Entity Extraction]
        NER --> Profile[Entity Profile Vectors]
        Profile --> Segments[Salient Segment Extraction]
    end

    subgraph SYNTH["SYNTHESIZE"]
        Segments --> Standard["Standard Path - 1 LLM Call"]
        Segments --> LongForm["Long-Form Path - N+3 LLM Calls"]
    end

    style REDUCE fill:#1a1a2e,color:#e0e0e0
    style SYNTH fill:#162447,color:#e0e0e0
```

降低的阶段是确定性=:嵌入,排名 ,实体提取_,TextRank},段评分=MS K5没有LLM调用吗?.

合成是唯一的LLM step. 对于标准查询来说,减少的信号足够干净 **一通呼叫** 对于长@ - for longQMSK1_form documents MS K2}一个寄件器计划结构和主模型生成的区块, 以平行的 @( please**{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}N+3** 调用N区-).+

有关此模式的更多详情@,}请查看 [减少的RAG](/blog/reduced-rag).

## 从查询到来源的地图阶段@:

查询需要成为搜索动作@. @%

本地小型监控模式 @(0.6B 在我的情况下@, JSON mode\,°C温度#0.1) 将原始查询解释成结构化的意向{,}然后由YAML-驱动的来源路由器将该意图转换为具体的抓取_.}

```mermaid
flowchart TD
    Q["User Query"] --> Sentinel["Sentinel: JSON Interpretation - categories, intent, entities, - temporal hints, tone"]
    Sentinel --> Router["Source Router - YAML category → source mapping"]
    Router --> S1["gnews:AI safety"]
    Router --> S2["search:AI regulation"]
    Router --> S3["bbc:technology"]
    Router --> S4["reddit • hn"]
    S1 & S2 & S3 & S4 --> Fetch["Parallel Fetch - circuit breaking + rate limiting"]
    Fetch --> Merge["Merge + Deduplicate - → reduce phase"]

    style Sentinel fill:#1e3a5f,color:#e0e0e0
    style Router fill:#0d3b2e,color:#e0e0e0
```

监控器提取结构化字段@: @%

- 主题类别 @(# 有自信的权重@)}
- 质询意图 @(news,QAMS K2研究@,比较 @, howto})
- 时间敏感度: @(#破碎@/_今天#/}星期:){
- 命名实体
- 对于复质问题, :已解组合的子queries {(}fn方正黑体简体\fs18\b1\bord1\shad1\3cH2F2F3F}

**源选择** 在六个阶段发生 :

1. **公开来源**@: @% 用户说 `"from HackerNews"` → `hn` 直接进去
2. **查询**: @Sentinel@'}最理想的搜索條目 變成了「MSSK2」 符合資格的 API 呼叫 「({DuckDuckGo,Brave,}谷歌新聞RSQ)}
3. **类别路由**由 YAML config.}提供RSS feed 主题权重地图, *和* 政策反馈
4. **浓缩研究**: `research` 或 `deep_dive` 增加 arxiv
5. **致富实体**@:_NER的命名实体 自己去查询自己的信息@"_OpenAI"}#→_ `gnews:OpenAI`)
6. **底层多样性**:} 如果小于 @3}源选择\,}默认填充

与 per-}来源电路破解@.}同步获取的源标识符

Vibes 在点击任何 API . 之前修改搜索条件 `--vibe doom` 查询前缀 *“"”与“..."”中的问题有关。*@, 重塑在任何排名发生之前会回来的东西 #.#

如果您想要回弹性比特的背景@ ,\ 查看 [使用 Polly 重试](/blog/usingpollyforretries) (路断路器)和 [排队系统中的后压](/blog/backpressure-queueing-systems) ( 速率限制和后压 *).*

## 解开查询

多数搜索系统都将新的 Internal 安全规则视为“?"”,

监控器分解化合物查询“:”

```json
{
  "is_composite": true,
  "subqueries": [
    "What's new in AI safety?",
    "What are the latest AI regulations?"
  ]
}
```

有趣的选择是,接下来会发生什么? “. ” 每个子查询都有自己的ONX嵌入的“(se”。 [ONNX:}本地运行 ML 模型](/blog/docsummarizer-advanced-concepts#onnx-running-ml-models-locally)当评分文章时 , 我接受 **最大余弦相近性** 在所有子拼贴嵌入中 @ , @ not the busic=. @

为什么最大=? 一篇完美解答 @"_AAI Security@"应该被惩罚? *任何* 您问题的一部分 @ , @ it suggests@ MS K1} 替代的, @ 平均=\ ,} # 奖励那些模糊地触碰了一切的粗俗文章 @ MPK4 @

## 引信使用异种信号

我有6个排名的信号 . 它们有完全不同的规模

```mermaid
flowchart LR
    subgraph Signals
        BM25[BM25 - Keyword Match]
        Fresh[Freshness - 48h Half-Life]
        Auth[Authority - HN/Reddit Score]
        QSim[Query Similarity - Cosine]
        Vibe[Vibe Alignment - Cosine]
        Qual[Quality - Clickbait Detector]
    end

    subgraph RRF[RRF Fusion]
        direction TB
        R[Rank Each Signal - Independently]
        F["score = Σ weight × 1/(60 + rank)"]
    end

    BM25 & Fresh & Auth & QSim & Vibe & Qual --> R --> F

    style RRF fill:#1e3a5f,color:#e0e0e0
```

HN点指向千兆赫. 孔径相似度为 @-1 新鲜度衰减指数=%. 你可以安全地将这些相加和成*.

这里的关键信号是 BM25} 横跨多个字段的 BMZ(BM_BM25FMS K3}如果您想要 BM{25,}的背景, 请查看 [DocSummarizer 部件 *\ 3 {](/blog/docsummarizer-advanced-concepts#bm25-the-sparse-retrieval-workhorse).

**[相互排名融合](/blog/docsummarizer-advanced-concepts#hybrid-search-with-rrf)** (Cormack 和 al., @ @ MS K2通过忽略原始分数来解决这个问题@:每个信号列项目独立=,}然后您将它合并起来 *列内*: `score = Σ weight × 1/(k + rank)` MSKO 与 `k=60`).

如果您想要全背景的 RRF, part @ 3 覆盖它@.}这里是扭曲 **适应查询类型**哨兵侦测到意图 , 和计分器重塑自己

- 时间线查询 @("}今天发生的一切 ∮?")∮ 曲柄清新,质量下降
- 解析器查询 @("} 量子计算如何工作?") 做相反的MS K2 深度事项比新奇更重要
- 围捕和比较有他们自己的调控剖面图

## 维比为检索维度

开始于一个笑话 @. @ 现在它#'}是我最喜欢的功能@.

@ "vibe"是{'没有提示性措辞@.It'}a **第一级- 级排名信号** 嵌入回收管道@: @%

```mermaid
flowchart LR
    V["--vibe doom"] --> Expand["Query Expansion - 'concerning risks issues in...'"]
    V --> Embed["Vibe Embedding - 'vulnerability breach layoffs - recession crisis warning...'"]
    Embed --> Score["Cosine Similarity - per article"]
    Score --> RRF["RRF Signal - weight: 0.4"]

    style V fill:#8b0000,color:#e0e0e0
```

当你设置一个氛围时 发生了三件事情

1. **查询扩展** - 搜尋會以心情 - 相宜的限定符前置
2. **虚拟嵌入中** - 代表文本被嵌入为 @ MS K1\dim 目标
3. **排名信号** @- 文章评分,

自定义感应效果相同@ . @ `--vibe "contemplative philosophical"`-}您的文字既成为查询前缀,也成为排序目标.}这个系统与自定义的'没有区别 它只是嵌入您给它的任何内容

## 实体配置,非实体计数

这里的' @%s a mistake I first_:}计算文档中共享的实体=.}

两篇文章都提到 @"_California}":

1. *加州办事处宣布成立安全小组*
2. *@"#California杏仁农面临干旱 #"#*

共享实体计数@: @ @ @ 1. @ 因此相关Q!}显然错误 @.

修正的目的是将实体视为矢量=% ,}而不是字符串=.

这是 [限制的模糊模式](/blog/constrained-fuzziness-pattern)@:_NER模式提议实体@,}但确定权重决定什么重要

每个文件都得到一个 **加权实体概况** (a 384-dim 矢量编码 *减去* 实体的出现和它们的独特性

```
weight = TF × IDF × confidence × type_weight
profile = L2_normalize(Σ entity_embedding × weight)
```

```mermaid
flowchart TD
    subgraph Doc1["Article: OpenAI Safety Team"]
        E1["OpenAI (ORG) - IDF: high - weight: 2.1"]
        E2["California (LOC) - IDF: low - weight: 0.3"]
        E3["Safety Team (MISC) - IDF: high - weight: 1.8"]
    end

    subgraph Doc2["Article: Almond Farming"]
        E4["California (LOC) - IDF: low - weight: 0.3"]
        E5["Almond Farmers (MISC) - IDF: high - weight: 1.9"]
        E6["Drought (MISC) - IDF: medium - weight: 1.2"]
    end

    Doc1 --> P1["Profile Vector - Dominated by OpenAI + Safety"]
    Doc2 --> P2["Profile Vector - Dominated by Farming + Drought"]
    P1 -. "low similarity" .- P2

    style Doc1 fill:#1a1a2e,color:#e0e0e0
    style Doc2 fill:#2d1a2e,color:#e0e0e0
```

@"_California"}以国防军为主的关键是 .}{MSK01#MSK1}(在文章的吨数中出现*-}低度以色列国防军},弱小信号{.{posible sign *"*OpenAIMSNSKQK7}是不同的{MS K8}高度的USDRZK9}

聪明的部份 : **饱和 TF**“. ”而不是原始提及计数“, ”我使用 `1 + log(mentions)`@._Q_BARBAR_一个实体在长篇文章中提到“50}('})多次,

## 语义图发现

实体概况是 @'}不只是用于理解文档@.}它们='re a **检索尺寸**“. ” 每个多普伦%🥱t's实体配置文件都以 HNSW 图“ (DuckDB}#'s VSS 延伸域=), 启用 OZ(log Nñ) 发现关键字搜索会完全错失的语义相关文章@.}

如果您想要更多关于 HNSW 和 DuckDB 的详细信息, 请查看 [图图RAG 部分 *2: 最低可视图形](/blog/graphrag-minimum-viable-implementation).

```mermaid
flowchart TD
    subgraph Retrieval["Three-Layer Retrieval (UNION)"]
        L1["Lucene FTS - keyword matches"]
        L2["Embedding HNSW - semantic similarity"]
        L3["Entity Profile HNSW - entity fingerprint match"]
        L1 & L2 & L3 --> Union["Union of all candidates"]
    end

    subgraph Enrich["Post-RRF Enrichment"]
        Top["Top 5 Ranked Items"] --> Agg["Aggregate Profile - mean of entity profiles"]
        Agg --> Graph["HNSW Search - min similarity: 0.30"]
        Graph --> Related["+3 Related Articles - scored below existing items"]
    end

    Union --> RRF["RRF Fusion"] --> Enrich

    style Retrieval fill:#1a1a2e,color:#e0e0e0
    style Enrich fill:#0d3b2e,color:#e0e0e0
```

这在两个阶段起作用 :

**检索期间**@: @ @% laginel 在寄件人从查询 < , > 中提取 < MPK1> 实体时 , 使用相同的 TF}{×} IMS4} 公式@ ._ 此搜索 HNSW 索引中带有类似实体指纹的物品 MS K5} * 最小相似的 _0.25.} 关于 " OpenAI 安全问题的一篇文章@" 表面 即使它从未提及确切的查询术语\ MEK9 因为它的实体配置“ MSKO10” 由高端的 MS- K11 & IDF "* OpentAI MSQ13}\ k14 MSC15\ security # MSG16}

**排位后**: 排名前端的5项目中,其实体概况已平均成一个总矢量□.。 对于关键字和嵌入层完全遗漏了\. 创称文章得分略低于排位最低的项目MS K4,并按所发现的标记 *"*via实体 *"**@.}这抓住了新闻文章提到的主要消息来源,

使用Union=:Lucene Keyword的三层引信匹配“∪嵌入HNSW”匹配“MSC2实体配置文件 HNSW match.联盟有意扩大范围,超过交叉点@. 它捕捉到任何单一信号都可能浮现\.RF聚变的项目

后退路径 @ ( @ for corpora 没有实体剖面图@ MS K1}使用 SQL 实体co- @ acurence 计数 @ MPK3 @`HAVING shared_count >= 2`“). ”它管用,但“'”和“Os Os ( N²) ”代替了“OZ( log Nó). ” `--backfill-entity-profiles` 将现有的公司迁移到 HNSW 路径@. @%

## 标准合成=: 1 LLM 呼叫

这是正常路径 @ . @ `scroll "AI safety and regulation"` 选中此项@ . @% 在缩小阶段后将您的源代码切入到排序@ I, dedudiplated,}实体 @ MS K3 profiled seclue@ MPK4}合成为单一调用@:}

```mermaid
flowchart TD
    subgraph REDUCE["Reduce Phase (ALL DETERMINISTIC)"]
        Items[Fetched Items] --> Embed[ONNX Embed All Items]
        Embed --> RRF[6-Signal RRF Fusion]
        RRF --> TR[TextRank Compression]
        TR --> Seg[Segment Extraction + Salience Scoring]
        Seg --> Dedup[Deduplication + Relevance Floor]
    end

    subgraph SYNTH["Synthesis (1 LLM CALL)"]
        Dedup --> Rerank["Semantic Re-Rank - by query similarity"]
        Rerank --> Budget["Smart Evidence Budgeting - redistribute unused chars"]
        Budget --> Gen["Single LLM Call - with curated evidence"]
        Gen --> Output[Final Summary]
    end

    style REDUCE fill:#0d3b2e,color:#e0e0e0
    style SYNTH fill:#1e3a5f,color:#e0e0e0
```

减让阶段是辛勤工作的时候 当LLM看到任何东西时 它会收到:

- **仅顶端项目**@ :_ 最佳项目中的“ 30%” 相关下层@ MS K2s 得分 @ MPK3 URL-drediced
- **来源多样性**@ : 盖在每个网域的 & MS K1\ 项, 用于补全查询
- **语义性re-级**:}项目重新-}按与查询嵌入相似的余弦排序
- **智能实证预算编制**@:_ 短项目将未使用的字符预算捐赠给长的项目@,}所以证据空间是#'}没有浪费
- **结构证据区块**: `[E1] Title | topic | relevance` 内容已缩短到预算

一个LLM调用". that' 来支付 [削减的RAG](/blog/reduced-rag)@:# 选择@,_ 排名 @ ,% dedudition},和预算编制都发生在LLM看到什么之前

## 长-Form PipelineMS K1受约束的平行一代

长-Form (`--template blog-article`,})是另外一种野兽 MS K1 你' 正在生成一个来自数十个来源的多@-剖面文档。 您需要各区间的一致性, 而无需昂贵的LLM压缩电话 =.

答案是 **[限制的模糊背景拖动](/blog/constrained-fuzzy-context-dragging)**@.}这些确定性机制 保持了交叉的-}部门一致性,同时允许平行一代人\.}

```mermaid
flowchart TD
    subgraph Phase1["Phase 1: Evidence Preparation (DETERMINISTIC)"]
        Articles[Top 20 Articles] --> Segments[Chunk into Segments]
        Segments --> Salience[Score Salience per Segment]
        Salience --> EmbedSeg[Embed Each Segment]
    end

    subgraph Phase2["Phase 2: Document Planning (1 SENTINEL CALL)"]
        EmbedSeg --> Summary[Build Evidence Summary]
        Summary --> Sentinel["Sentinel: Generate Outline - with theme keywords per section"]
        Sentinel --> EmbedThemes[Embed Section Themes]
    end

    subgraph Phase3["Phase 3: Evidence Assignment (DETERMINISTIC)"]
        EmbedThemes --> Assign["Score: 60% theme similarity - + 25% salience + 15% relevance"]
        Assign --> Dedup[Cross-Section Deduplication]
        Dedup --> Gate["Quality Gates - • Min salience 0.35 - • Min theme sim 0.45 - • Max 2 per source per section"]
    end

    subgraph Phase4["Phase 4: Section Generation (N+2 LLM CALLS)"]
        Gate --> Intro["Intro (sequential)"]
        Intro --> Body["N Body Sections (parallel) - max 3 concurrent"]
        Body --> Conclusion["Conclusion (sequential)"]
    end

    subgraph Phase5["Phase 5: Validation (DETERMINISTIC)"]
        Conclusion --> Validate[Citation Validation - URL + Entity Grounding]
    end

    subgraph Phase6["Phase 6: Assembly (DETERMINISTIC)"]
        Validate --> Assemble[Final Document Assembly]
    end

    style Phase1 fill:#0d3b2e,color:#e0e0e0
    style Phase2 fill:#1e3a5f,color:#e0e0e0
    style Phase3 fill:#0d3b2e,color:#e0e0e0
    style Phase4 fill:#1e3a5f,color:#e0e0e0
    style Phase5 fill:#0d3b2e,color:#e0e0e0
    style Phase6 fill:#0d3b2e,color:#e0e0e0
```

计数LLM 调用: **1** (_sentinel大纲)}MS K2 **1** @(#intro@)} +# **N 内** -=YTET -伊甸园字幕组=- 翻译: **1** ( -结论 -) _= **{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}N+3**六个阶段中的四个是决定性的

### 受限制的模糊环境拖拉

平行区段生成的问题是一致性 . 如果各区位不知道其他区块是怎么说的 你就会重复和流传\ , 通常的方法就是相继代 MS K4,这"'慢且废弃上下文窗口\ .}

取代, 每一部分都得到 a **环境受限情况** {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}然后'Qs建立起来

```mermaid
flowchart LR
    subgraph Context["Per-Section Context (ALL DETERMINISTIC)"]
        RS["Running Summary - 1400 char budget - recent 2 sections: full - older: heading only"]
        NP["Negative Prompts - 'Do NOT discuss: X, Y, Z' - from covered concepts"]
        EC["Entity Continuity - re-introduce entities - last seen 2+ sections ago"]
        Props["Propositions - ~15 atomic facts - per section"]
        Evidence["Curated Evidence - max 12 segments - quality-gated"]
    end

    Context --> LLM["LLM generates - with full awareness - of document state"]

    style Context fill:#1a1a2e,color:#e0e0e0
```

- **运行中摘要**“:”在每一节之后,“,” 上方的“MS K2” 字元“Salience evidence section ” @(200}查尔斯・马斯卡4 被记录为‘.’ 最新版《2 》 片段获得完整摘要@; 旧版部分获得标题“#+ ” 第一句“. ” 总预算 = : 字符 •1400 MAK12 没有LM summmarization\".}
- **负速率**“:”所覆盖的概念被摘录为“( propernouns @,}技术术语,}标题关键词{,}最大{MS K5}按#).}后部分获得<:} *@"#不要讨论这些议题,*
- **实体的连续性**“:”中未提及的实体在“2+”部分被标注为「-」和“Introduction”或“MS K3 ”活动实体。 最近提到的“MSSK4”被追踪到‘.’ LLM得到指导 •: *@"_Re-}(若相关) :}实体 *1}{(}最后一次提到 <:}部分:#2)"}*
- **漂流探测**@ : @ @ 在每一部分生成@ MS K1 @ 首个 1000} 字符被嵌入, 并且与 plan+'%s 主题进行对比 嵌入\ . @ 如果相近性降低到 @ I0.35 @ 连续各节@ MPK7 @ 主题嵌入从第一个 #2# 区重新校准 *

在平行模式“,”中,Intro 生成第一个 “(”设置了基线“MS K2”机体部分,同时运行“(”至“MSC4” `SemaphoreSlim` 每一个都排除了内向主题,但互不相容...")," 而结论是最后一个"MS K2\" 不包括所有东西"=).\"

序列模式给予更紧密的一致性@(each 节将所有先前的概念合并排除,但对于大文档来说,平行是\~3x

### 减少的RAG之心

每个章节都需要证据 *,* 但不是 *任何* 每个区段都有复合分数 : **60%主题相似** @(cosine 距离区域@'}主题嵌入#),} **M25% 显著** @(#该部分内容如何? **15%文章关联性** 这个评分完全是决定性的 . 没有LLM决定什么是相关的

然后是大门

- **礼堂地板** 低端的-品質區段從未達到LLM
- **主题相似最低标准** {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}
- **Crossó- 区划** @(0.80@ comsine @ ):}同样的事实已经出现两次了
- **来源上限** (2  §): 沒有單一的源支配
- **科的作用意识**@:_Intro sections 惩罚技术细节@(-0.3);}后来的章节奖励它#(+0.15)
- **查询凝固门** (0.30): 证据必须和原始查询有关, 而不仅仅是部分主题

LLM 目标字数根据证据质量调整. 坚固的证据 @( @salience @ @s≥}#0.6,} @sIMK4}来源@,}{*4+}片段 200)}♪→}完整单词计数 *.弱点证据=Z({\saliense @sak K11{z0.45,spirent)}→}_}MPK14〞这防止了在证据不足时产生幻觉

### 实际中提要

在证据到达LLM ,之前 它被原子化成 [Dense-X检索纸](https://arxiv.org/abs/2312.06648)每个部分被打破 分为六类原子事实 **索偿** * 一般性事实陈述* **引用引号** @(_ 直接来自源@),} **统计统计** *( 数和量度*), **定义定义的定义** ("X是Y"),{ **进程** {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080} **列入实体名称的事实** “(”重点针对一个特定实体“).”

“~15” 提议=,}使用语义相似性 @(not字符串匹配\). 将每一节的“MSKO}提案”改为“MSk0 proposes@MSK 1 ” 。 LLM 接收按源{,}分类的结构化圆点,而不是原始段落_.

当LLM写下一节,时 削减阶段已经给了它"MS K1"

- 清晰的标题和主题
- 缩放证据区段 @ (@ lequality @ MPK1_ gated+,}( 已切换) @ I)
- -=YTET -伊甸园字幕组=- 翻译:
- 前几节已经涵盖的内容的运行中摘要
- 消极促使什么 *否* 重复
- 实体连续性指导

一个小模型可以做出色的工作 使用这种预兆- programing.

## TextRankM: 确定性总结

当文章太长 证据管道,我需要压缩它们\.}但是我想用一个LLM电话来概括=.>

TextRank {(}米哈塞亚& TarauMS K2 2004) 它有决定性的吗?

```mermaid
flowchart LR
    Text[Article Text] --> Split[Split into Sentences]
    Split --> EmbedS[Embed Each Sentence]
    EmbedS --> Graph["Build Similarity Graph - (cosine > 0.15 = edge)"]
    Graph --> PR["PageRank - (20 iterations, d=0.85)"]
    PR --> Select["Select Top-K - in Original Order"]

    style Graph fill:#1e3a5f,color:#e0e0e0
```

每个句子都有一个嵌入的“.”和“0.15”上的相近之处, 成为图表边缘@.PageRank发现最多的 *中央中心* 这些是最能代表文档的句子。

关键细节@: @% 选中的句子被返回 **按原始文件顺序排列**. 这保留了叙事流程. 你得到一个一致的总结\, 不是一袋随机的重要句子_.

以毫秒.\}°C的相近性通过 SIMD@-+Q加速运行 `TensorPrimitives` (`System.Numerics.Tensors`“) (AVX2, AVX□-512,或ARM近地物体,在运行时选中的“).”

## One -Hop 链接

文章提到其他条款, 这些提及常常包含最佳证据: 新闻文章总结的最佳来源@-}

DoomSummarizer 跟随链接@,}但有选择性地 @. – 每个候选链接都得分\:

```
link_score = 0.7 × query_relevance(anchor_context) + 0.3 × segment_salience
```

片段显著结合的地方 @: @%

- **职位位置** (60%) - 颠倒金字塔 : 前几段重要得多
- **物质** (40%)-}段落长度与信息密度

在相关楼层以下的链接 @(0.15) 被跳过@. 系统沿循新闻反向金字塔黑字塔#:}重要连接往往在早期出现在井中\-写文章_.

含有内容杂交的缓存结果和 ETags @ .} 第二次运行是快速@ MS K1 见 [回应 Caching @,ETags,和有条件请求](/blog/ASPNET-STATE-BETWEEN-REQUESTS).

## 建立本地知识库

但您可以完全跳过网路 .

`crawl` 将网站输入本地知识库@. @ 它从种子 URL=,}(尊重深度和页数限制)中,

```bash
doomsummarizer crawl https://docs.example.com --name example-docs --depth 3 --max-pages 200
```

全部内容@: @ 完整内容 @ , @ ONNX 嵌入% I, @ 实体配置 @ MPK3 @ SQLite FTS5}关键索引 *({full}-} text search*),}情绪和主题分数 @}通过嵌入锚=,# 没有 LLMZMS K10} 递增-_crawls send `If-None-Match` / `If-Modified-Since` 在没有 ETag 支持的服务器上返回 HTTP {304}和跳过后处理. CHA\ ,}\ SHA=256}*内容 hashhes catch plus {.}

曾经完全在离线下爬过,查询 :

```bash
doomsummarizer scroll "how does authentication work?" --name example-docs
```

缩略 `--name` 本地 KB 而不是网络源@. @% 同三-_Slayer recreditionfire:}FTSQMZ5}完整的-{text pre _-Filter},}嵌入 HNSW 搜索的HNS

没有外部服务@,No Docker @,}没有 API 键#.}一个数百页的爬行知识库,以几兆字节和毫秒时间进行查询。

## 将它结合在一起

```bash
doomsummarizer scroll "AI safety and regulation" --vibe doom --debug

Composite query detected: 2 subqueries
  • What's new in AI safety?
  • What are the latest AI regulations?

Searching...
├─ Lucene: 18 keyword matches (regulation^3, safety^2)
├─ Embedding: 12 semantic matches (max-sim across 2 subqueries)
├─ RRF fusion: 22 candidates, 6 signals
├─ Entity HNSW: +3 related via entity profiles
├─ TextRank: compressed 4 long articles
└─ Final: 12 items

Long-form: Phase 1 - 187 segments from 12 articles
Long-form: Phase 2 - "AI Safety Landscape" - 5 sections
Long-form: Phase 3 - Evidence assigned (cross-section dedup: 8 removed)
Long-form: Phase 4 - Generating sections...
```

## 产生效果的理念

这些是洞察力 . 带他们去使用 在你自己的系统里

1. **在产生之前减少**@: 标准路径需要 只要@1LLM调用,因为输油管 所有重型起重起重的确定性#. [减少的RAG](/blog/reduced-rag) 是“:嵌入”的图案,PageRank, PageRankMS K2 超自然=,,高质量的门可以产生如此干净的投入,甚至小型模型合成好@.。
2. **Sentinel - 驱动源路由**@ : @ a small model 将查询解释成结构化的意向@, @ 然后YAML-}驱动路由选择并同步 *-#QQQqualized @~10}来源\. 监控器便宜到可以调用每一个查询@MS K6}
3. **复类查询最大相同**“: ” Don't 平均分数“,采取最匹配的 . 文章钉定你问题的一部分比半个"-吻合所有东西"\ .
4. **组合队列 @,# 未得分**:RRF允许您将信号与不相容的缩略语连接,
5. **以嵌入为嵌入**: 任何文字都可以是一个检索维度@. 嵌入它 @, 与RRF. 重量相比的评分*,
6. **作为矢量的实体配置**“: USD- 重量级实体嵌入”“, 不是实体字符串计数’. Rare 实体在配置中占据主导地位,
7. **限制模糊的上下文拖动**: [确定性环境管理](/blog/constrained-fuzzy-context-dragging) 启用平行区段生成@.运行摘要 @,负加速度 @MS K2实体连续性 @,和漂移探测保持一致性而不使用 LLM 压缩呼叫@MS K4
8. **尽可能确定**“:”在六个长的“-”阶段中,4个是确定性’, 4个文本Rank 取代LLM 概括=. 证据分配代替LL M 选择@.

## 资源资源资源 资源和资源资源资源

- **[DoomSummarize 释放器](https://github.com/scottgal/lucidrag/releases?q=doomsummarizer)**: 單一二進位@, 不需要執行時間
- **[清晰RAG 主库](https://github.com/scottgal/lucidrag)**: 父项目
- **[源代码](https://github.com/scottgal/lucidrag/tree/main/src/DoomSummarizer)**

### 相关条款

- [减少的RAG](/blog/reduced-rag)@ : 深度在 < MS K2 generate status > 前
- [受限制的模糊环境拖拉](/blog/constrained-fuzzy-context-dragging): 如何平行的款次生成保持一致性
- [受限制的模糊模式](/blog/constrained-fuzziness-pattern)@:_BARBAR_+ 概率建议背后更广泛的确定控制模式

### 还

- [控制台图像 @ ( @ 时间盒式工具@ MS K1 @ *](/blog/timeboxedtool-consoleimage)