[Question]: Error: module ‘xgboost’ has no attribute ‘Booster’ during PDF parsing

该报错通常发生在 RAGFlow 解析大 PDF 时,内部调用的 xgboost 版本与项目要求的 1.6.0 不兼容或安装损坏。优先检查并固定 xgboost 版本为 1.6.0。

快速结论:该报错通常发生在 RAGFlow 解析大 PDF 时,内部调用的 xgboost 版本与项目要求的 1.6.0 不兼容或安装损坏。优先检查并固定 xgboost 版本为 1.6.0。

适用环境:RAGFlow;Issue 中提及在 Docker 部署环境中多次出现,xgboost 可能在容器初始化时被覆盖或损坏。

最快修复方案:将 xgboost 卸载后安装 1.6.0 版本。该方案来自 Issue 中的回复。

注意事项:该方案为 Issue 回复中给出的解决方案,并未在 Issue 中明确标注已完成验证;若在 Docker 环境下,建议确认镜像内 Python 环境中的 xgboost 版本是否符合要求。

问题场景

用户在 RAGFlow 中上传 200 页以上的大 PDF 文档并触发解析。论文解析工具在解析部分页面(如第 229~241 页)成功后,继续解析后续页面时失败,报错内容为 xgboost 缺少 Booster 属性。回复中指出 PDF 解析器会调用 xgb.Booster() 进行文本拼接预测,若 xgboost 版本不为 1.6.0 则会带来兼容问题。

报错原文

[ERROR]Internal server error while chunking: module xgboost has no attribute Booster
[ERROR][Exception]: module 'xgboost' has no attribute 'Booster'

原因分析

可能原因如下:

  • xgboost 版本不匹配:RAGFlow 在 pyproject.toml 中锁定 xgboost 版本必须为 1.6.0。如果环境中安装的是 2.x 等其它版本,就会导致 Booster 属性不可用,从而出现该报错。
  • xgboost 安装损坏:在 Docker 容器构建或运行过程中,xgboost 可能被覆盖或损坏。Issue 回复提到该问题在其他 Docker 部署用户中已有出现。

环境排查

  • 确认 Python 环境中 xgboost 的当前版本:python -c “import xgboost; print(xgboost.__version__)”
  • 如果是 Docker 部署,需检查容器内 Python 环境的 xgboost 版本,确保与项目要求的 1.6.0 一致,而非宿主机或系统全局版本。

解决步骤

  1. 确认当前环境中的 xgboost 版本。若在 Docker 中,请先进入容器或通过执行命令确认版本。
  2. 卸载当前 xgboost:pip uninstall xgboost。若在 Docker 中,请确保在正确的 Python 环境中卸载。
  3. 安装 1.6.0 版本:pip install xgboost==1.6.0。此方案为 Issue 回复中明确建议的固定版本。
  4. 验证安装结果;如验证失败,需检查 Docker 镜像文件中是否在后续步骤再次覆盖 xgboost 版本。

验证方法

安装完成后,用 Python 验证:

import xgboost as xgb
print(xgb.__version__)   # 应显示 1.6.0
print(hasattr(xgb, 'Booster'))  # 应显示 True

如果两次输出均符合预期,可以重新上传原来的大 PDF 试跑,确认解析过程不再中断、不再出现 xgboost has no attribute 'Booster' 报错。

参考来源

infiniflow/ragflow #13568

GamsGo AI

AI 工具推荐

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

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

了解 GamsGo AI

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

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 21648

发表回复

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