[Bug]: Division by zero error with knowledge graph

用户在 RAGFlow v0.22.1 中,通过 DeepDOC 解析 TXT 或 PDF 文档后,尝试生成知识图谱(Knowledge Graph)。报错发生在以下多种配置组合下:

[Bug]: Division by zero error with knowledge graph

[Bug]: Division by zero error with knowledge graph

快速结论:在 RAGFlow v0.22.1 生成知识图谱时,无论使用哪种解析方法、实体类型或文档格式,都可能触发 division by zero 错误。优先建议升级到最新镜像版本;若无法升级,可尝试手动修补分块分页逻辑。

问题场景

用户在 RAGFlow v0.22.1 中,通过 DeepDOC 解析 TXT 或 PDF 文档后,尝试生成知识图谱(Knowledge Graph)。报错发生在以下多种配置组合下:

  • 方法:Light / General
  • 实体类型:最少 2 种(如 organization, person)
  • 分辨率:关闭
  • 社区发现:关闭
  • 文件类型:TXT、PDF
  • 文件大小:30KB 至 6.5MB
  • LLM 模型:Mistral-Small-3.2-24B、llama-3-70B(通过 DeepInfra)

报错原文

2025-12-16 03:25:41,369 INFO     29 set_progress(...), progress: None, progress_msg: 03:25:41 [GraphRAG] build_subgraph doc:... FAILED: ExceptionGroup('Exceptions from Trio nursery', [Exception('Maximum error count (3) reached. Last errors: division by zero'), ...])
2025-12-16 03:25:41,382 INFO     29 set_progress(...), progress: None, progress_msg: 03:25:41 [GraphRAG] kb:... no subgraphs generated successfully, end.

原因分析

该问题是一个已知的、在多个版本中反复出现的错误,可能原因有两个:

  • 可能原因 1(可优先尝试):RAGFlow 的分块分页逻辑存在 Bug,对于大文档可能导致分块处理不完整,进而使图谱构建失败。相关信息见 #11687
  • 可能原因 2:在 RAPTOR 组件中,如果所有相关性分数(relevance scores)完全相同,归一化步骤中 max_rank - min_rank 为 0 时会触发除零错误。相关信息见 #6685

注意:截至 Issue 关闭时,没有合并的 PR 直接修复 v0.22.1 中的知识图谱除零错误。

环境排查

  • 确认 RAGFlow 镜像版本:用户当前版本为 v0.22.1
  • 确认工作区提交 ID:7ca3e11
  • 确认操作系统:Linux

解决步骤

  1. 升级镜像版本(推荐):拉取最新版 RAGFlow 镜像,因为较新的代码已包含 RAPTOR 归一化的修复(参考 #6685)。
  2. 手动修补分页逻辑(临时方案,可优先尝试):
    • 编辑 rag/nlp/search.py 文件,修补分块分页逻辑。
    • 或在调用分页的位置增大 max_count 参数值。具体补丁步骤参考 #11687

验证方法

使用之前失败的相同文档和配置,在应用上述任一步骤后重新生成知识图谱。如果日志中不再出现 division by zero 错误且子图成功构建,则说明问题已解决。

参考来源

infiniflow/ragflow #11961

GamsGo AI

AI 工具推荐

想把多个 AI 模型放在一个入口?

GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。

了解 GamsGo AI

推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。

celebrityanime
celebrityanime
文章: 10572

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注