Chico Notes
LLM Wiki / RAG

多模态 RAG:PDF、表格、图片和图表怎么进知识库

多模态 RAG 不是把图片丢给视觉模型,而是重构解析、分块、索引、引用、权限和评测链路。

持续修订的工程笔记

很多企业知识不是纯文本。PDF 里有版面结构,财务报表里有行列关系,产品文档里有流程图,工单里有截图。如果只做 OCR 再塞进向量库,多模态信息会被压扁成一段不可靠的文本。

多模态 RAG 的核心问题不是“支持图片上传”,而是如何把不同形态的信息变成可检索、可引用、可验证的知识单元。

判断标准

如果答案必须依赖图表、截图、表格结构、公式或版面位置,普通文本 RAG 就不够了。此时要把解析、索引、引用和评测一起升级。

总体架构

四类内容的处理方式

类型不推荐推荐
PDF整页 OCR 后直接切块保留页码、标题层级、段落、表格和图片坐标。
表格转成一长段文本同时保存表头、行列、单位、聚合口径和原始单元格。
图片只生成一句 caption保存图片、caption、OCR 文本、上下文段落和页面坐标。
图表只描述“柱状图显示增长”抽取指标、维度、时间、数值和图例,保留原图引用。

解析层:不要过早丢结构

解析阶段决定了系统上限。一个 PDF 页面至少要拆出这些信息:

Document
  Page
    Block: title / paragraph / table / image / chart / footer
    BoundingBox: x, y, width, height
    Text: OCR or native text
    Relations: caption, nearby paragraph, table header
    Permissions: tenant, user group, document ACL

如果只保留 text 字段,后面就很难回答“图 3 说明了什么”“第 4 页表格里哪个指标下降最多”“这个截图来自哪个功能模块”。

分块策略

多模态文档不能只按 token 切。更稳的方式是以对象为中心分块。

PDF 优先按标题层级、页面和版面块切分。每个 chunk 保存页码、坐标、上级标题和相邻对象。跨页表格要合并,不要按页硬切。

表格可以生成两类 chunk:结构 chunk 保存 schema、表头、单位;行级 chunk 保存关键记录。大表不要整表向量化,否则召回结果会非常粗。

图片和截图至少需要 caption、OCR 文本、附近段落和原始图片 URL。只有 caption 不够,因为很多关键信息在截图里的按钮、报错和数值中。

图表要同时保留图像、标题、轴、图例、数据点和解释文本。能抽取数据就抽取数据;不能抽取时至少保存视觉描述和原图证据。

索引设计

多模态 RAG 通常需要三类索引一起工作:

索引作用适合召回
全文索引精确匹配关键词、编号、术语、报错信息。表格字段、截图 OCR、文档标题。
向量索引召回语义相近内容。段落、caption、图表解释、FAQ。
对象存储保存原始图片、页面截图、PDF 坐标。引用、证据回放、人工复核。

在线检索时,不要只返回文本。更合理的结果结构是:

{
  "type": "chart",
  "text": "2025 Q4 API latency p95 increased from 420ms to 680ms.",
  "source": "ops-report.pdf",
  "page": 12,
  "bbox": [128, 220, 940, 610],
  "image_url": "object://pages/ops-report/12/chart-2.png",
  "permissions": ["team:platform"]
}

上下文组装

多模态上下文有两个常见错误:

一个可控的组装策略是:

先用全文和向量索引召回候选对象。
对候选对象做 rerank,优先保留和问题直接相关的块。
如果命中图片、表格或图表,拉取对应原始对象或裁剪区域。
按证据类型组装上下文:文本解释、结构化数据、视觉证据、来源引用。
要求模型回答时引用页码、图号、表格名或截图来源。

评测指标

多模态 RAG 评测不能只看答案对不对,还要看证据是否对。

层级指标说明
解析Object Recall页面中的表格、图片、图表是否被抽出来。
检索Evidence Recall@K正确证据对象是否进入候选集。
定位Region Accuracy引用的页码、坐标、表格行列是否正确。
生成Faithfulness答案是否忠实于文本和视觉证据。
成本Image Tokens / Latency图片上下文带来的 token 和延迟开销。

安全与权限

多模态内容的权限问题更容易被忽略。截图里可能有客户名称,表格里可能有价格、手机号、内部指标,PDF 页脚可能带有保密标识。

生产系统至少要做三件事:

  1. 权限绑定到对象级别,而不是只绑定到文档级别。
  2. OCR 文本、caption、结构化表格和原始图片使用同一套 ACL。
  3. 日志中避免落原图、完整 OCR 文本和敏感表格内容。

什么时候值得做多模态 RAG

场景是否值得
纯 FAQ、政策条款、API 文档通常先做文本 RAG。
财报、合同扫描件、审计材料值得,表格和版面信息很关键。
产品手册、故障截图、客服工单值得,截图和步骤说明经常一起出现。
数据看板、运营周报、实验报告值得,图表和指标解释是主要知识。

实用结论

多模态 RAG 的难点不在模型,而在数据结构。只要解析阶段保留对象、坐标、关系和权限,后面可以逐步升级检索、重排和视觉模型;如果一开始把所有内容压成普通文本,系统很快会遇到无法定位、无法引用、无法评测的问题。

讨论

继续讨论这篇笔记

有问题、补充案例或不同观点,可以通过 GitHub Discussions 继续交流。

On this page