RAG 知识库问答实战(6):处理表格图片等多模态文档
上一篇用混合召回和重排提高了纯文本证据的覆盖率。然而财报中的数值关系、操作手册里的截图箭头、扫描合同上的印章都无法靠扁平文本完整表达。本篇把解析层扩展为版面元素、表格与图片并让它们仍能进入统一检索和引用链路。一、痛点把页面抽成一串字会丢失关系表格的含义来自行标题、列标题与单元格交叉。若 PDF 抽取结果按阅读顺序变成“华东 120 华南 98 2025 2026”模型无法判断数字属于哪个年份。图片可能承载架构连接、按钮位置或故障现象OCR 只能识别文字不能解释空间关系。扫描页甚至没有文本层需要先检测再 OCR。处理多模态文档的核心不是给每页生成一段长摘要而是建立页面坐标系中的元素模型。每个元素记录类型、边界框、页码、父级标题、原始资源 URI、抽取器版本和置信度。阅读顺序由版面模型决定表格保留二维结构图片保存原图与可检索描述。引用则链接到页码甚至高亮区域。二、原理检索表示与展示证据可以不同表格至少保存三种形式HTML 或二维数组用于忠实展示按行展开的自然语言用于嵌入原始截图用于复核。比如单元格 120 应展开为“2025 年华东区销售额为 120 万元”把表头补进每行。复杂合并单元格要先规范化单位与脚注不能丢失。图片可走两路OCR 文本用于精确词召回视觉语言模型生成的受控描述用于语义召回。若系统支持多模态嵌入也可直接编码图像但仍应保留文字描述以便审计。下面把二维表转换为自包含的行级证据验证表头、单位与来源稳定继承。fromdataclassesimportdataclassdataclass(frozenTrue)classTableEvidence:evidence_id:strtext:strpage:introw_index:intdeftable_to_evidence(headers:list[str],rows:list[list[str]],page:int,unit:str,)-list[TableEvidence]:ifany(len(row)!len(headers)forrowinrows):raiseValueError(ragged table)result[]forrow_index,rowinenumerate(rows,start1):pairs[f{key}{value}forkey,valueinzip(headers,row,strictTrue)]text.join(pairs)f单位{unit}result.append(TableEvidence(fp{page}-r{row_index},text,page,row_index))returnresult headers[地区,2025年,2026年]rows[[华东,120,138],[华南,98,105]]foritemintable_to_evidence(headers,rows,page7,unit万元):print(f{item.evidence_id}\t{item.text})运行输出p7-r1 地区华东2025年1202026年138单位万元 p7-r2 地区华南2025年982026年105单位万元行级证据适合“华东 2026 年是多少”整表证据适合比较与汇总。可以同时索引两种粒度通过parent_table_id关联命中某行后将相关表头与必要邻行一起送给模型。绝不能让模型凭摘要进行精确算术重要数值应从结构化单元格读取并由代码计算。三、实现建立检测、抽取、校验和降级队列PDF 页面先判断是否存在足够文本层没有则以合适分辨率渲染并 OCR。文本型页面也要做版面检测识别标题、正文、列表、表格、图片和脚注。常用工具包括 PyMuPDF、pdfplumber、Unstructured、PaddleOCR、Tesseract 与文档理解模型。选择时用自己的双栏、旋转页、中文表格和扫描质量测试。任何视觉抽取都带置信度。低置信页面进入人工复核或标记为不可回答不要静默写入索引。下例实现一组可自动化的页面质量门输出明确状态和原因便于路由到 OCR、复核或正常索引。fromdataclassesimportdataclassdataclass(frozenTrue)classPageStats:page:inttext_chars:intocr_confidence:float|Nonetable_cells:intmalformed_cells:intdefroute(page:PageStats)-tuple[str,str]:ifpage.text_chars20andpage.ocr_confidenceisNone:returnocr,text layer is nearly emptyifpage.ocr_confidenceisnotNoneandpage.ocr_confidence0.80:returnreview,low OCR confidenceifpage.table_cellsandpage.malformed_cells/page.table_cells0.10:returnreview,table structure is unreliablereturnindex,quality gate passedpages[PageStats(1,850,None,0,0),PageStats(2,0,None,0,0),PageStats(3,120,0.72,20,1),PageStats(4,300,0.95,40,2),]forpageinpages:status,reasonroute(page)print(fpage{page.page}status{status}reason{reason})运行输出page1 statusindex reasonquality gate passed page2 statusocr reasontext layer is nearly empty page3 statusreview reasonlow OCR confidence page4 statusindex reasonquality gate passed图片描述提示应要求陈述可见事实、文本、对象关系与不确定性禁止补猜看不清的数值。保存所用模型、提示版本和原图哈希模型升级后可只重算图片描述。敏感图像调用外部视觉 API 前须完成数据分级和脱敏不能因为“只是索引”绕过合规边界。元素之间的父子关系同样重要。正文中的“如下图所示”应通过页面距离、编号和标题关联到对应图片表格脚注必须挂到表格而非普通段落。检索命中图片描述时可同时取回前置说明和图注但要设置邻域上限。关系边应保存置信度低置信关联不自动用于高风险回答。四、踩坑跨页、单位和坐标变换最容易出错跨页表格可能在第二页重复表头也可能省略表头。合并时用列数、标题和几何位置判断保留原页范围不能仅因两页相邻就拼接。负号、千位分隔、百分号和脚注星号必须经过类型校验。OCR 常混淆0/O、1/l对于金额、日期和编号应加正则与业务范围检查。页面旋转、裁剪和缩放会改变坐标。引用高亮必须保存抽取时页面尺寸与坐标原点并在前端做明确变换。若只存截图坐标换渲染 DPI 后框会偏移。对图表不要仅提取图例文字趋势、轴单位和数据点关系需要视觉模型或专门解析器并在低置信时显示原图供用户核验。还要控制制品体积和重复计算。原始文件、页面渲染图、裁剪元素、OCR JSON 和缩略图分层存储以内容哈希去重并设置生命周期。索引只保存可检索文本与资源引用不把大图直接塞进元数据。处理任务记录 CPU、GPU 与页耗时才能识别某类复杂 PDF 是否拖垮整个队列。五、验证按元素类型分别建立黄金集测试集应包含普通文本、双栏、扫描、旋转页、合并单元格、跨页表、流程图和截图。表格评测单元格准确率、结构相似度及问答正确率OCR 看字符或词错误率图片描述看关键实体与关系覆盖引用验证页码和高亮框。最终还要检查“命中行—取回整表—回答数值”这一端到端路径。本篇让表格与图片成为可追踪证据而非不可见附件。下一篇将进一步约束生成阶段用证据充分性判断、引用校验和声明级溯源减少幻觉。参考来源Unstructured文档元素与 hi_res 策略PaddleOCRPP-Structure 文档分析PyMuPDF文本与图像抽取 觉得有用就点个赞 收藏方便回头查阅有疑问直接在评论区留言我看到都会回。 本文属于《RAG 知识库问答实战》系列持续更新关注不迷路。 文章里的代码都能直接跑。想要可直接 clone 的完整工程 配套部署脚本 / 踩坑清单评论一声或发邮件到cj2664qq.com我免费发你。如果你正好在做类似系统、或有工程化难题想找人做也欢迎邮件聊一句——我按实际情况评估能落地的就接单或出方案。评论和邮件都能直接找到我不用跳别的平台。

相关新闻

为什么选择Quelpa?探索Emacs Lisp包即时构建的核心优势

为什么选择Quelpa?探索Emacs Lisp包即时构建的核心优势

为什么选择Quelpa?探索Emacs Lisp包即时构建的核心优势 【免费下载链接】quelpa Build and install your Emacs Lisp packages on-the-fly directly from source 项目地址: https://gitcode.com/gh_mirrors/qu/quelpa Quelpa是一款专为Emacs用户设计的包管理…

2026/8/9 22:39:26 阅读更多 →
华为MetaERP Oracle Fusion SCM DOO(Distributed Order Orchestration)销售订单管理核心业务基表全集前置说明Fusion OM 底层模块全称

华为MetaERP Oracle Fusion SCM DOO(Distributed Order Orchestration)销售订单管理核心业务基表全集前置说明Fusion OM 底层模块全称

Oracle Fusion SCM DOO(Distributed Order Orchestration)销售订单管理核心业务基表全集前置说明Fusion OM 底层模块全称DOO 分布式订单编排,对标 EBS R12 OE销售订单模块;全部业务基表均带_ALL行级多组织隔离(ORG_ID&…

2026/8/9 22:38:25 阅读更多 →
告别传统WiFi4!ESP32C6 WiFi6如何让小智AI助手性能翻倍?

告别传统WiFi4!ESP32C6 WiFi6如何让小智AI助手性能翻倍?

告别传统WiFi4!ESP32C6 WiFi6如何让小智AI助手性能翻倍? 【免费下载链接】xiaozhi-esp32 An MCP-based chatbot | 一个基于MCP的聊天机器人 项目地址: https://gitcode.com/GitHub_Trending/xia/xiaozhi-esp32 还在为你的AI语音助手反应迟钝、网络…

2026/8/9 22:38:25 阅读更多 →

最新新闻

【万字总结】2025 前端+大前端+全栈 知识体系(上)

【万字总结】2025 前端+大前端+全栈 知识体系(上)

各位在场群体, 我名为双越, 身为曾在百度、滴滴任职的资深前端工程师, 是慕课网的金牌讲师, 拥有PMP资质, 我的具有代表性的作品列表如下:开始2025 应该思考两个问题:所以, 在这篇文稿当中, 我打算去尝试着归纳一番当下 2025 年时期前端开发里相对比较常用的一系列知…

2026/8/10 8:30:16 阅读更多 →
GPT Codex与Vibe Coding:沉浸式AI编程助手的原理与IDE实战接入

GPT Codex与Vibe Coding:沉浸式AI编程助手的原理与IDE实战接入

最近在开发者圈子里,一个高频出现的问题是: “ChatGPT 和 Codex 现在模型完全一样吗?为什么感觉 GPT 更好用些?” 这背后,其实是大家对 AI 编程助手能力边界的一次集体困惑。我们习惯了用 ChatGPT 对话解决逻辑问题&…

2026/8/10 8:30:16 阅读更多 →
详解基于朴素贝叶斯的情感分析及 Python 实现

详解基于朴素贝叶斯的情感分析及 Python 实现

朴素贝叶斯1、贝叶斯定理要是假定针对某一个数据集而言, 随机变量称作为C的这个, 它所表示的是样本归属于C类的概率, 还有F1, 它所表示的是测试样本里某特征出现的概率, 然后去套用基本贝叶斯公式, 那么情况就如下所展示的那样:此式子用以表明, 针对于某一样本而言, 当特征F1出…

2026/8/10 8:30:15 阅读更多 →
微信生态文化信息管理系统:从零部署到二次开发实战指南

微信生态文化信息管理系统:从零部署到二次开发实战指南

这次我们来看一个基于微信生态的综合文化信息管理系统,项目直接提供了完整的源码。对于开发者、文化机构或内容创业者来说,这提供了一个快速搭建自有文化信息平台的起点。核心价值在于,它不是一个概念,而是一套可以直接部署、二次…

2026/8/10 8:30:15 阅读更多 →
Replit自定义注册体验:打造品牌化用户认证流程的完整指南

Replit自定义注册体验:打造品牌化用户认证流程的完整指南

如果你正在寻找一个能让用户注册流程变得丝滑、提升转化率,同时又能让开发者从繁琐的认证逻辑中解脱出来的方案,那么 Replit 最新推出的“自定义注册体验”功能,绝对值得你花十分钟深入了解。 过去,在 Replit 上构建一个需要用户…

2026/8/10 8:30:15 阅读更多 →
魔域工具:游戏辅助与效率提升利器

魔域工具:游戏辅助与效率提升利器

1. 什么是魔域工具?魔域工具,通常指为网络游戏《魔域》795魔域发布开发的各类辅助软件或脚本。它们旨在帮助玩家自动化重复性操作、提升游戏效率、优化资源管理,从而在游戏中获得更佳体验或竞争优势。这类工具功能多样,从简单的自…

2026/8/10 8:29:15 阅读更多 →

日新闻

GraphQL-CSS API全解析:useGqlCSS、GqlCSS组件与getStyles实用指南

GraphQL-CSS API全解析:useGqlCSS、GqlCSS组件与getStyles实用指南

GraphQL-CSS API全解析:useGqlCSS、GqlCSS组件与getStyles实用指南 【免费下载链接】graphql-css A blazing fast CSS-in-GQL™ library. 项目地址: https://gitcode.com/gh_mirrors/gr/graphql-css GraphQL-CSS是一个基于GraphQL的CSS-in-GQL™库&#xff0…

2026/8/10 0:00:02 阅读更多 →
告别语言障碍:KISS Translator 双语翻译插件终极指南

告别语言障碍:KISS Translator 双语翻译插件终极指南

告别语言障碍:KISS Translator 双语翻译插件终极指南 【免费下载链接】kiss-translator A simple, open source bilingual translation extension & Greasemonkey script (一个简约、开源的 双语对照翻译扩展 & 油猴脚本) 项目地址: https://gitcode.com/…

2026/8/10 0:00:02 阅读更多 →
BepInEx配置管理器:游戏插件配置的终极可视化解决方案

BepInEx配置管理器:游戏插件配置的终极可视化解决方案

BepInEx配置管理器:游戏插件配置的终极可视化解决方案 【免费下载链接】BepInEx.ConfigurationManager Plugin configuration manager for BepInEx 项目地址: https://gitcode.com/gh_mirrors/be/BepInEx.ConfigurationManager 你是否曾经因为游戏插件的复杂…

2026/8/10 0:00:02 阅读更多 →

周新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/10 1:05:29 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/10 1:05:29 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/10 1:05:29 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/9 17:05:02 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/10 1:05:29 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/9 17:05:02 阅读更多 →