)
离线索引文档-》清洗-》chunking-》Embedding-向量库在线检索生成问题-》向量化-》相似度检索-》Rerank/过滤-》上下文构造校验分层格式校验 文件上传之后校验参数错误等问题降级策略转换格式解析校验 识别文档完成之后是否提取到内容是否有明显乱码降级策略备用解析器重新解析或人工处理Chunking校验 切完文档后抽样检查块大小是否合理边界是否在合理位置明显的截断问题降级策略固定长度切分识别文档OCR识别问题字符错识别数字 0 和字母 O 混淆中文繁简体混淆解决方案采用支持神经网络的 OCR 引擎对关键文档会启用双 OCR 引擎交叉校验比对两个引擎的结果是否对的上切分Chunking)合适的Chunking策略切块小召回准确但上下文残缺切块大但召回噪声大固定长度切分按token切简单行为可预测 不懂段落表格代码块递归切分 按换行符拆大段落——》按句号切——》按空格切 在上下文精度和召回率之间取得不错的平衡语义切分 使用embedding模型判断句子间的语义 意思相近的聚在一起 容易产生超小块不能进行检索成本过高文档结构切 不同文档类型采用不同文档结构切分如MarkDown采用标题层级H1/H2切 PDF采用按章节或页的方式切 代码按照函数、类切 HTML按照标签层级切分如pdiv等标签Parent-Child 切分 先把文档切成 300 Token 左右的小块用于向量检索然后每个小块都挂载到一个 1200 Token 的父段落上 检索时先命中小块再把对应父段落放入上下文 既保证了召回精度又保留了必要的上下文 索引存储量会增加重叠控制 通用文本用 512 Token 的块大小加 50-100 Token 的重叠代码按函数和类的边界切更靠谱 表格密集的文档表格单独作为一块绝不能跨块切分 法规合同按条、款、项结构切语义丢失上下文依赖关系被损坏业务场景1.结构截断2.上下文蒸发 某文本内容可能有背景在上下文被切分导致理解出错误3.表格结构破坏4.专有名词变形 特定专业名词被切分检索时匹配不到解决方案1.给每个chunk生成摘要和问题变体一起写入索引2.保留层级信息记录章节路径父子标题段落变换等检索时可以按照层级过滤3.用额外的LLM分析文档对嵌套表格、混合图文等复杂文档结构处理能力更强结构丢失业务场景PDF多栏布局 用 Layout-Aware ParserLlamaParse、Docling、Marker-PDF 等解析器会识别文本的物理位置Word标题层级 用python-docx解析器读取文档的样式信息按样式层级重建文档树然后按标题层级切分保证每个 Chunk 都知道自己属于哪个章节。切分之后把章节路径写入 Metadata供检索和生成时使用Excel字段 字段与字段间有关联有文字有表格的表格 文字部分按段落处理表格部分按结构化数据处理数据表格 按行或按数据区域提取为结构化 JSON每行作为一条记录。配置表格参数表、映射表 把表头和值配对提取保留字段名。多模态内容处理方式图片内容CLIP 向量化 原始图片回传 把图片转成向量和文本向量一起存入向量库 检索时如果命中图片向量就从对象存储里拉取原始图片MLLM 描述 文本检索 用多模态大模型如 GPT-4o生成图片的文本描述把描述文本和原始图片一起存储 检索时直接匹配文本命中后再用原始图片做生成增强多向量索引 先用 MLLM 生成图片的结构化摘要摘要入文本向量索引原图存在 docstore 里。检索时先命中摘要再通过 doc_id 关联拉取原图把原图 base64 编码后一起塞给多模态 LLM 生成表格内容1.用专门的表格解析工具提取表格结构之后转化成MarkDown表格格式2.转成JSON格式数值型表格3.上下文感知的表格描述 识别表格所在章节和主题之后用背景信息丰富表格描述图表如折线图柱状图等1.提取完整的图表元信息2.生成描述性caption3.识别图表与其他内容的关系摘要用于检索原文用于生成向量索引里存的是结构化摘要或描述而原始的多模态内容存在 docstore 检索命中取出来交给LLM综合RAG检索的优化手段有哪些索引构建阶段文档清洗/同时建立句子级和段落级索引对于每一个chunk用LLM生成它可能回答用户什么问题在索引构建时决定上限Chunking策略 语义分块/滑动窗口重叠/递归分块/文档结构感知嵌入模型与多路召回混合检索 语义检索和关键词检索多模型嵌入融合 通用嵌入模型和领域微调模型细粒度多路召回 查询改写—变体-各自检索—合并去重提到RRF时强调它不需要调参直接倒数求和在多个检索系统融合时尤其好用检索后处理重排对初召回的Top-K重排序上下文补全去重与融合查询测优化查询改写/多查询生成用户的原始问法可能模糊、过简或有歧义通常从索引构建、分块策略、检索策略、检索后处理和查询优化5个层面来看; 索引阶段我会做文档清洗和元数据增强分块用语义分块加滑动窗口检索用混合检索向量BM25加RRF融合后处理加Rerank精排查询侧做query改写和多query生成。如何从零搭建文档处理管线1.先把文本类文档Markdown、HTML、TXT走通让它能稳定跑完解析、切分、索引、入库全流程。2.文本稳了之后再攻坚 PDF建议:引入 Layout-Aware ParserLlamaParse 或 Docling先在少量文档上验证表格和图片提取质量再逐步扩大覆盖范围注意别拿全量 PDF 直接上生产先拿 样本跑通再说3.当文本链路稳定后再引入图片和表格的多模态处理。4.质量闭环 用一批真实用户 查询 定期跑召回对比解析前后的内容保真度持续迭代解析器和切分策略RAG和微调如何选择知识变动频繁、需要引用来源优先 RAG输出风格和任务行为不稳定考虑微调既要懂领域表达又要查实时知识可以两者结合知识库更新要解决的问题知识库更新要解决的不是“怎么写一个同步任务”而是更新之后系统回答还能保持准、快、不越权并且出了问题能定位、能恢复。增量更新负责日常变化定期全量重建负责长期健康增量更新应用场景文档变更频率适中、对实时性有要求、知识库规模较大生产中比较稳妥的实现方式事件驱动 轮询兜底。事件驱动处理日常增量轮询用来防漏检。中间加消息队列全量更新应用场景Embedding模型变化Chunking策略调整数据结构变化定期健康维护生产索引别名切换实时增量 定期全量重建 事件驱动的紧急重建