RAG 技术
RAG(检索增强生成)是让大模型"读到自己没学过的知识"的核心技术。这一章会从源头到工程,把一条完整的 RAG 流水线拆开讲:怎么把各种格式文件提取成文本、怎么按照模型的 Token 限制切片、怎么为切片生成检索元数据、怎么存储和召回向量,最后再把这些零件组装成一个工程上站得住的系统。
讲解会结合 Microsoft Agent Framework(MAF)、Microsoft KernelMemory,以及笔者原创的 MoAI 项目设计。
章节目录
1. 文件提取文字
RAG 的第 0 公里:怎么把 PDF、Word、Excel、PPT、图片、HTML 等各种格式,稳定地提取成文本。讲解自研维护的 Maomi.ToMarkdown(替代已停止更新的 Kernel Memory 解码器),围绕"识别 MIME → 路由抽取器 → 输出 Markdown → 抽取图片"的完整链路,说明为什么输出结构化 Markdown 比扁平纯文本更适合后续切片与向量化,以及常见坑(扫描件 OCR、中文乱码、表格结构、大文件内存、伪造后缀)。
2. 文本切片
文件提取完成后,怎样根据 Token 数量把长文本拆成适合向量化的 Chunk。基于 Kernel Memory 的 PlainTextChunker 和 MarkDownChunker,讲清楚 Tokenizer、最大 Token、重叠窗口和 Chunk Header 的作用,以及 MoAI 为什么让切片结果先进入预览流程。
3. 元数据生成
在原始 Chunk 之外生成提纲、问题、关键词、摘要和语义段落,为同一段内容建立多种检索入口。讲解四种生成策略、DocumentPreprocessor 调度方式,以及派生元数据怎样通过 ChunkId 关联原文并分别向量化。