请教下:长 PDF / Word 解析后喂给 LLM,结构丢失问题大家都怎么处理

4 月 30 日
 Tsang72

最近搞了个小项目,给一段 prompt 加一份长文档,自动出一版可以继续编辑的 PPT 草稿。本来以为最难的部分是 prompt 设计或者 PPT 渲染,结果 80% 的时间都耗在了文档解析上,记录一下踩过的坑,顺便想请教下各位在这块都是怎么处理的。

场景大概是这样:用户上传的资料是产品白皮书、研究报告、需求文档之类的,几十页起步,PDF 居多,也有 Word 和 Excel 。要做的事其实就一句话——把内容读懂,然后让 LLM 出一版 outline 加各页要点。

第一版我懒,直接把 PDF 转 base64 丢给 Gemini ,反正它号称百万 token 。跑了几次发现:

第二版自己写解析。pdf.js + mammoth + SheetJS 一套全上。理论上很美好,跑起来就是另一回事:

写到第二天凌晨看着满屏 if/else 兼容代码我开始怀疑这条路。这事本身就不是手搓能搞定的,它涉及版面识别、OCR 、表格还原、章节关系恢复,本质上是一个独立的工程问题,不是周末项目能糊出来的。

然后开始看现成的方案,目前我试过和了解过的:

选完之后问题没全解决,下游怎么用结构化结果也得想。我现在的做法:

这套改完之后同一份白皮书重新跑,10 页 PPT 之前有 4 页跑偏、2 个数据错,现在基本对得上原文。表格那块改善最明显,之前我都不敢让 LLM 直接看原始表格。

写下来还有几个事情没想清楚,想请教下大家:

  1. 多文档场景下,cross-document 的引用和对比怎么处理?现在简单按 section 对齐,但两份报告对同一指标给出不同结论这种,很难自动对得上
  2. 大表格(几百行)整块塞 prompt 里 token 吃不消,有没有比较成熟的"按列采样"或者"先 summary 再 drill down"的做法
  3. 自己拼开源 pipeline vs 直接调 API ,长期成本你们怎么算的?我现在用 API 主要是图省事,但跑量上去之后心里没底
  4. async job 这种模式,前端轮询和 SSE 你们更倾向哪种?我现在是混着来的,感觉不太干净

技术栈顺手记一下:Next.js 16 + Bun + Turborepo + oRPC + Drizzle + Postgres + Vercel AI SDK + Vercel Blob 。

https://github.com/Ontos-AI/knowhere-pitchpilot

1877 次点击
所在节点    程序员
3 条回复
mykaii
4 月 30 日
cxd8190102
4 月 30 日
我也发现了,大模型解析普通的文档还行,但涉及到 Excel 、PPT 和 PDF ,它的解析能力就迅速下滑。尤其是在文件比较大的时候,崩得更明显。用了你说的这个工具感觉好很多,以后看财报、做分析报表更靠谱了,不怕 AI 乱编。
YICHUJIFA
5 月 1 日
LLM 最喜欢 markdown ,还是得转 md ,就是数据准确性....

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1209630

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX