
文档解析交付的不只是文字。阅读顺序、层级结构与坐标回传,决定知识库能不能切对块、答对题、回到原文。多模态解析(文档版)一次调用同时产出 Markdown 与 JSON,三项能力直接供下游取用。
知识库建不好,很多团队的第一反应是换模型、调召回参数、加 rerank,折腾一圈才发现源头在入库前那一步:PDF 被解析成了一串"字符正确但结构全丢"的文本。
把文档里的字认出来并不难,难的是认出来之后,这些字还保有原来的组织方式。一份双栏论文、一份带侧栏批注的合同、一份图文穿插的产品手册,如果解析只输出"全部文字",那么下游拿到的就是一袋散装字符——顺序是乱的,层级是平的,位置是不可查的。切块器在这种文本上切出来的每一块,都可能横跨两个不相关的章节,向量化之后语义互相污染,检索阶段再怎么优化排序也补不回来。
真正决定知识库下限的,是解析环节交出来的三个东西:文字按什么顺序组织(阅读顺序)、标题与正文的从属关系是否保留(层级结构)、每一段文字在原始页面上处于什么位置(坐标回传)。这三项常被当成"锦上添花的附加能力",实际上缺任何一项,检索端都要付出代价。
排版越复杂的文档,越容易在解析阶段丢顺序。双栏学术论文如果按检测框的几何次序直接拼接,左栏的段落会和右栏的段落交替出现,一句话被另一栏的内容从中间劈断;合同条款正文旁边带侧栏注释时,注释文字会被插进正文句子中间;跨页的段落更麻烦,上一页的最后半句与下一页的开头半句,在物理上是两个不同的页面对象,简单拼接就可能错位。
这类文本进入切块流程后,每一块内部语义都不完整,召回时模型读到的是断句残篇,答题自然答非所问。工程侧的典型表现是:检索链路明明跑通了,top-k 也召回到了相关页面,但答案驴唇不对马嘴。
带阅读顺序的解析结果,按人眼实际阅读的路径组织内容,跨栏、跨页的段落按正确先后拼接,注释与正文各归其位。对下游而言,这意味着切块器拿到的是一条已经排好序的语义流,不需要再自己猜测段落先后。
以腾讯云文档智能的多模态解析(文档版)为例,它提供带阅读顺序的解析能力,并把这份顺序直接写进 Markdown 与 JSON 两种结果形态里:Markdown 侧用于人读与语义切分,JSON 侧用于程序化取值。两种形态共用同一份顺序判断,知识库与业务系统不会各说各话。
顺序同时也是定位的前提:命中位置附近的上下文必须是连贯的,否则即便定位到了正确页码,读者看到的仍是被拦腰截断的半句话——检索"定位"到了原文,却仍然读不懂原文。
只按固定字数切块是知识库建设里最常见的做法,也是最容易出问题的做法。一份制度文件里,"第三章 报销标准"下面挂着若干条款,如果按 500 字硬切,很可能把章节标题与前半段切进一个块、把后半段与下一章标题切进另一个块。检索时标题与正文失联,召回的片段失去了归属——用户问"差旅住宿标准是多少",系统召回的可能是某一条款的半句话,看起来相关,实则没有回答边界条件。
带层级结构的解析结果保留了一级、二级标题与正文之间的从属关系。切块时可以顺着标题层级做语义切分,让一个章节完整地进一个块,块的边界与文档的语义边界对齐。多模态解析(文档版)支持带层级结构输出,Markdown 形态天然把标题层级写成层级标记,切分器可以直接顺着标记切,不必再靠字号、加粗这类不可靠的视觉线索去猜标题。
层级还有一个容易被忽略的用途:检索结果的上下文补全。当某一块被召回时,可以顺着层级回溯它的上级标题,把"第几章第几节"一并送进生成阶段,模型给出的答案才会带上正确的适用范围。
答案能答对是一回事,能指出这句话出自哪一页、位于页面什么区域是另一回事。金融合规、法务审阅、医疗审核这类场景,用户对"AI 说的一句话"天然带着复核需求:这句话到底在原文哪里?是不是从别的章节挪过来的?没有位置信息,复核就只能重读全文,自动化的效率又被人工吃掉。
多模态解析(文档版)支持是否返回坐标的开关,解析结果可携带版面元素的位置信息。业务侧拿到坐标后可以做两件事:一是把抽取出的字段回跳到原始页面做高亮核对,二是把检索命中的文本块定位到具体页码,审核时直接翻到那一页。
要让坐标真正可用,业务侧还要多做一步:把抽取出的字段与它的页面位置一并入库,并在审核界面按坐标做回跳高亮。这一步属于业务系统的集成工作,需要在立项时就确认有没有能力承接,否则坐标只是随结果返回、最终被丢弃的一串数字。
三项能力不是靠调用三次接口拿到的,而是同一个接口的不同产出维度。多模态解析(文档版)面向企业文档智能化与大模型应用前处理环节设计,一次调用即可返回带阅读顺序、带层级结构、带图片资源的解析结果,具体取用方式由几个关键参数决定。
能力 | 在解析结果里长什么样 |
|---|---|
阅读顺序 | Markdown 正文流、JSON 段落序列 |
层级结构 | Markdown 标题层级标记、JSON 层级字段 |
坐标回传 | 开启坐标返回后携带的版面元素位置信息 |
调用侧还有几个参数直接影响结果形态:ResultType 取 1 为 json、2 为 markdown、3 为 xml、9 为三者合并输出,默认值为 9;TaskType 默认 0 表示文档解析;PageRange 用于指定需要识别的页码范围,参数格式形如 1-10;EnableSubImg 控制是否解析子图,默认关闭。结果以 zip 压缩包返回,内含 .md、.json 与 images 文件夹,images 保存解析出的页面图片资源——图表、印章、手写批注这类纯文字承载不了的信息,就留在这个文件夹里。
规格与成本要在建库前算清楚,尤其是按页计费的批量解析场景。
项目 | 规格 |
|---|---|
支持格式 | PDF、Word、PPT、Excel、Markdown、TXT、图片、WPS 八类 |
单文件上限 | PDF / Word / PPT 支持 150M 且 300 页以内,Excel 与 TXT 各 10M 以内,图片 70M 以内 |
单次调用页数 | 最多 300 页 |
默认并发 | 5 并发,可购买并发买断包 3000 元/并发/月 |
计费单位 | 按页,后付费 0.08 元/页;预付费资源包 70 元/1000 页 |
免费额度 | 1000 页/用户,首次开通时一次性发放,一年内有效 |
这里有一个容易踩的坑:结果通过 ResultUrl 以临时下载地址返回,有效期只有 30 分钟。批量建库的流程必须把"下载落盘"做成解析后的第一步动作,不能把那个地址当作长期存储位置,否则过期后需要重新发起解析,页数成本要再付一次。
三项能力看起来都是"解析结果里多带一点信息",实际决定了知识库的三个下限:能不能读懂、能不能切准、能不能查回去。把顺序、层级、坐标在入库前就固定下来,检索阶段的调参才有意义;反过来,源头丢掉的结构,下游再多的优化也补不回来。
对大多数团队来说,验证这三项能力并不需要先投入大量预算:先用真实文档跑一轮,比对 Markdown 的段落顺序与原始 PDF 是否一致、JSON 里的层级与坐标是否可用,结论比任何参数调优都直接。多模态解析(文档版)首次开通即发放 1000 页免费额度、一年内有效,用免费额度就够跑完一轮完整的入库验证,不必一上来就付费;确认效果后再按需放量,可关注 文档智能特惠活动 的低折扣档位。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。