快速结论:这个报错通常出现在用 Go 版 DeepDOC 解析 PDF 版面时,图注(caption)被错误挂到附近的公式上,而不是挂到上方的图上。优先排查 MergeCaptions 的父级选择逻辑(nearestFigureIn)是否按中心距离而非边缘距离排序。
适用环境:RAGFlow Go DeepDOC 解析器,代码提交 a485a564f(基于上游 65f543a63),本地 Go 源码构建,未使用 Docker 镜像;Issue 中的几何复现位于 internal/deepdoc/parser/pdf/table,该几何用例不需要 PDF 模型推理。Issue 未提供操作系统、Python、CUDA、显卡信息。
最快修复方案:暂无确认的一步修复方案。该问题已由 PR #21448(572eb775e,2026-10-29 合并)修复,图注归属改为按边缘间距距离计算,并补充了回归测试覆盖。升级到包含该提交的版本即可验证。
注意事项:Issue 明确说明整篇文档的解析结果会随上游文本/几何改进而变化,可复现的是文中给出的同页几何用例;该问题与 #15872 的排版编号冲突无关。是否升级后仍需针对自己的 PDF 复测,Issue 未对此作出说明。
问题场景
用户在用 RAGFlow 的 Go DeepDOC 解析 PDF 版面、调用 MergeCaptions 合并图注时触发问题。同一页上存在三个 pdf.Section:上方的总线图(LayoutTypeFigure)、下方的公式(在标注阶段同样被映射为 LayoutTypeFigure),以及位于两者之间的图注 Figure 12. I2C bus(DLALabelFigureCaption)。调用 MergeCaptions 后,图注被追加到公式上,而预期应归属到紧邻其上的图。
报错原文
[Bug]: Go DeepDOC can attach diagram captions to nearby equations
原因分析
可能原因:nearestFigureIn 按候选框的中心点平方距离排序,而不是按与图注边缘的间距排序。在 Issue 给出的坐标中,图注下边缘距下方公式上边缘约 31 点,距上方图上边缘仅约 12 点;但由于公式尺寸更小、中心点更靠近图注中心,公式反而在中心距离排序中胜出,被错误选为图注父级。DLA 公式在标注时被映射为 LayoutTypeFigure,因此和图一样有资格成为父级,放大了该排序缺陷的影响。
环境排查
- 确认 Go DeepDOC 解析器的代码版本,Issue 对应提交
a485a564f,上游基线65f543a63。 - 确认是否本地源码构建(Issue 中未使用 Docker 镜像)。
- 确认修改涉及
internal/deepdoc/parser/pdf/table/merge_captions.go,重点查看nearestFigureIn的距离计算方式。 - 确认目标版本是否已包含修复提交
572eb775e(PR #21448)。 - Issue 未涉及 Python、CUDA、PyTorch、显卡等依赖版本,无需排查这些项。
解决步骤
- 先用 Issue 提供的同页几何用例复现:构造三个
pdf.Section,坐标分别为图(左 260、右 420、上 132、下 201)、公式(左 279、右 399、上 257、下 283)、图注(左 280、右 388、上 213、下 226),每个位置都设置PageNumbers: []int{10}。 - 文本分别设为
Bus diagram、Rp(min) = ...、Figure 12. I2C bus,调用MergeCaptions(sections)。 - 检查图注被追加到哪个 Section:缺陷存在时第二个 Section(公式)会获得图注,第一个 Section 缺少
Figure 12.。 - 升级到包含 PR #21448(
572eb775e)的版本;该 PR 将图注归属改为按边缘间距距离计算,并加入回归测试。 - 升级后重新执行上述几何用例,确认图注归属到图而非公式。
验证方法
对 Issue 中的几何用例断言第一个 Section 包含 Figure 12.,且第二个 Section 不再收到该图注;缺陷版本下该断言会失败。也可以查看修复提交附带的回归测试是否覆盖此场景。若用真实 PDF 复测(如 an0590scv140.pdf 第 11 页图 12),结果可能因上游文本/几何改进而变化,应以几何用例的断言为准。
参考来源
AI 工具推荐
想把多个 AI 模型放在一个入口?
GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。
推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。
这个方案解决了吗?
可以继续搜索完整报错,或查看同一工具的其他排查指南。
![[bug]: Interrupted model download restarts from the beginning for download retry option](https://www.chat-gpts.plus/wp-content/uploads/2026/10/9841-d2866b93-768x403.jpg)
![[Bug]: provider-reported usage.cost is ignored on non-streaming calls for OpenAI-compatible upstreams (spend/budget reads $0)](https://www.chat-gpts.plus/wp-content/uploads/2026/10/47533-531d79a5-768x403.jpg)
![[Bug]: Claude models on Vertex AI fail at batch creation (404 batchPredictionJobs) — OpenAI batch translation doesn't cover Anthropic's nati](https://www.chat-gpts.plus/wp-content/uploads/2026/10/45671-ea844db1-768x403.jpg)