FEATURED · 精选文章

重建 DocsGPT 镜像后扫描版 PDF 无法解析怎么排查并启用 tesseract OCR

发布时间 / 2026/9/15 16:36:00
来源 / 创域科博编辑部
栏目 / 资讯中心
重建 DocsGPT 镜像后扫描版 PDF 无法解析怎么排查并启用 tesseract OCR 重建 DocsGPT 镜像后扫描版 PDF 无法解析怎么排查并启用 tesseract OCR【免费下载链接】DocsGPTPrivate AI platform for agents, assistants and enterprise search. Built-in Agent Builder, Deep research, Document analysis, Multi-model support, and API connectivity for agents.项目地址: https://gitcode.com/GitHub_Trending/do/DocsGPT如果你在升级 DocsGPT 后重新构建了镜像随后发现扫描版无文字层PDF 上传时解析失败而带文字层的 PDF 一切正常问题大概率出在 OCR 依赖上。DocsGPT 的文档解析引擎默认DOC_PARSER_ENGINEanydoc本身不做 OCR它检测到扫描版 PDF 后会拒绝转换提示 OCR is required并交给 OCR 回退解析器处理。默认 OCR 引擎是tesseract但它只是一个约 35 MB 的系统包不在基础安装中——旧版镜像内置 docling连同 RapidOCR无需系统包即可 OCR而现在的默认镜像既不包含 docling 也不包含 tesseract。因此若你的部署以tesseract引擎默认配合OCR_ENABLEDtrue或OCR_ATTACHMENTS_ENABLEDtrue运行重建镜像后PATH上找不到 tesseract 二进制扫描页就会带安装提示失败。修复路径是在镜像里装入 tesseract、确认 OCR 开关、重启 API 和 Celery worker再验证解析结果。以下内容整理自 OCR 指南与 配置说明。先确认你命中的是哪一种失败三种典型现象对应不同原因先区分再动手扫描页失败并附带安装提示。OCR_ENABLEDtrue但容器内PATH上没有 tesseract 二进制。文字层文档不受影响只有扫描页报错——这正是重建镜像后突然坏掉的典型症状。每个扫描页都报语言包错误。tesseract 已安装但OCR_LANGS里列了未安装的语言包tesseract 退出时输出Error opening data file ... chi_sim.traineddatanative 与 docling 两个后端都会出现。上传直接失败而不是得到空文档。anydoc 拒绝扫描版 PDF 后如果回退解析器也几乎提不出文字OCR 关闭或无可用引擎上传会带着明确错误信息失败而不是静默入库一个空文档。判断依据就是文档给出的这条降级链OCR_ENGINE选定的引擎不可用时不会硬失败——docling 后端下缺失的二进制会带警告回退到auto而native后端下缺失的 tesseract 会让扫描文件失败并给出安装提示。在本地构建的镜像中启用 tesseract适用于使用deployment/docker-compose.yaml本地构建后端与 worker 镜像的部署。Dockerfile 通过构建参数INSTALL_TESSERACT控制是否烘焙 tesseract含英文包ARG INSTALL_TESSERACTfalse RUN if [ $INSTALL_TESSERACT true ]; then \ apt-get update \ apt-get install -y --no-install-recommends tesseract-ocr tesseract-ocr-eng \ rm -rf /var/lib/apt/lists/*; \ fideployment/docker-compose.yaml会透传同一个开关所以只需在.env或 shell 环境中设置INSTALL_TESSERACTtrue然后按 setup.sh 的方式执行构建docker compose --env-file .env -f deployment/docker-compose.yaml build注意 Compose 从 shell 或--env-file传入的.env读取构建参数而不是从容器内的env_file读取因此构建命令必须带--env-file .env。不走 compose 时等价于docker build -f docsgpt/Dockerfile --build-arg INSTALL_TESSERACTtrue .setup.sh在本地构建镜像的选项里询问Enable OCR for scanned PDFs and images?回答 yes 后它会替你在.env写入OCR_ENABLEDtrue并烘焙 tesseractINSTALL_TESSERACTtrue随后可选是否加装 docling 布局引擎。使用预构建镜像时切换-docling变体如果你的部署拉取的是预构建镜像而不是本地构建开关就变成镜像变体每个 tag 都会发布两个版本——slim 版arc53/docsgpt:tag不含 docling 与 tesseract和-docling版arc53/docsgpt:tag-docling烘焙了 tesseract、docling 引擎及其模型。在.env中设置DOCSGPT_IMAGE_VARIANT-docling该变体配合docker-compose-hub.yaml或docker-compose-standalone.yaml使用。setup.sh在使用 Docker Hub 镜像时回答 yes 也会替你写入这一行。可选分支如果不想装任何系统包文档给出的替代路径是把引擎指向 DeepSeek-OCR 端点OCR_ENGINEdeepseek OCR_DEEPSEEK_URLhttp://localhost:11434/v1/chat/completions # Ollama 默认地址 OCR_DEEPSEEK_MODELdeepseek-ocr:3b OCR_DEEPSEEK_TIMEOUT300Ollama 可开箱即用ollama pull deepseek-ocr:3b需要更高吞吐时在 GPU 上用 vLLM 部署deepseek-ai/DeepSeek-OCR并相应修改 URL。该路径与 tesseract 是或的关系不需要系统包。确认 OCR 开关与语言配置tesseract 就位后确认以下设置见 配置说明中的默认值OCR_ENABLEDtrue # Source Docs 摄取路径的 OCR OCR_ATTACHMENTS_ENABLEDtrue # 聊天附件路径的 OCR OCR_BACKENDauto # 默认值装了 docling 用 docling否则用 native OCR_ENGINEtesseract # 默认引擎 OCR_LANGSeng # tesseract 语言包 分隔如 engchi_sim两点限制值得留意INSTALL_TESSERACTtrue只安装英文包tesseract-ocr-eng。旧版 RapidOCR 部署默认覆盖英文和中文tesseract 默认只 OCROCR_LANGS中列出的语言出厂只有eng所以中文扫描在升级后会停止入库直到你安装对应语言包。语言包必须在镜像里安装后再列入OCR_LANGS在镜像中执行apt-get install tesseract-ocr-chi-simmacOS 则是把chi_sim.traineddata下载到$(brew --prefix)/share/tessdata。列了未装的语言包会让每一个扫描页都报Error opening data file错误。重启并验证修改这些环境变量后需要重启 API 和 Celery worker才生效——OCR 实际发生在异步摄取任务里只重启 API 不够。验证方式按文档给出的行为判断上传一个含扫描页的文档摄取完成后检查文档元数据混合文档文字页 扫描页在 OCR 开启时会逐页探测文字层对没有文字层的页面走当前 OCR 后端解析出的文字会追加进文档且元数据以ocr_pages记录被 OCR 的页数。ocr_pages大于 0 说明 tesseract 已经实际工作。OCR 关闭时同样上传只有文字页会被索引——对比两者的入库内容即可确认 OCR 路径已通。若 OCR 仍然没内容注意防空保护OCR_MIN_CHARS_PER_PAGE默认 20之下多页解析如果 OCR 什么都没产出会大声失败而不是索引空文档产出低于阈值但非空时带警告入库。看到明确的失败/警告信息比拿到一个空文档更容易定位问题。如果ocr_pages为 0 且报错含Error opening data file ... .traineddata回到语言包一节核对OCR_LANGS与已安装包是否一致。限制与边界本文路径针对OCR_ENGINEtesseract默认引擎。native后端把无文字层的页渲染在OCR_RENDER_DPI默认 200后送入 tesseract多栏扫描件依赖 tesseract 自身的页面分割表格输出是平铺行。需要把表格读成 Markdown 表格时文档建议用 docling 后端OCR_BACKENDdocling需pip install -r docsgpt/requirements-docling.txt或-docling镜像或 deepseek 引擎代价是更大的依赖树和模型资源。文字层文档不受 tesseract 缺失影响因此部分 PDF 正常、扫描版失败本身就是引擎缺件的定位信号而不是数据问题。旧别名DOCLING_OCR_ENABLED/DOCLING_OCR_ATTACHMENTS_ENABLED仍然被接受升级中遇到旧.env无需改名。更多配置项如OCR_RENDER_DPI、OCR_DEEPSEEK_TIMEOUT的完整默认值见 DocsGPT-Settings引擎选型的基准测试细节见 OCR 指南。【免费下载链接】DocsGPTPrivate AI platform for agents, assistants and enterprise search. Built-in Agent Builder, Deep research, Document analysis, Multi-model support, and API connectivity for agents.项目地址: https://gitcode.com/GitHub_Trending/do/DocsGPT创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED — 相关阅读

相关资讯

LATEST — 最新资讯

最新发布

TODAY — 本日精选

新闻

WEEKLY — 本周精选

新闻

MONTHLY — 本月精选

新闻