fix: PaddleOCR 3.4.0 compatibility — use lang=en with PP-OCRv5
Some checks failed
Deploy to Coolify / deploy (push) Has been cancelled

PaddleOCR 3.4.0 removed 'latin' language support, causing ValueError
at startup. Now uses lang='en' with ocr_version='PP-OCRv5' and falls
back to lang='latin' for older PaddleOCR versions.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Benjamin Admin
2026-03-13 09:54:52 +01:00
parent 778c44226e
commit 8003dcac39

View File

@@ -1,4 +1,4 @@
"""PaddleOCR Remote Service — PP-OCRv4 Latin auf x86_64.""" """PaddleOCR Remote Service — PP-OCRv5 Latin auf x86_64."""
import io import io
import logging import logging
@@ -24,11 +24,20 @@ def get_engine():
from paddleocr import PaddleOCR from paddleocr import PaddleOCR
logger.info("Loading PaddleOCR model...") logger.info("Loading PaddleOCR model...")
_engine = PaddleOCR( # PaddleOCR >= 3.x: use ocr_version param; fallback for older API
lang="latin", try:
use_angle_cls=True, _engine = PaddleOCR(
show_log=False, lang="en",
) ocr_version="PP-OCRv5",
use_angle_cls=True,
show_log=False,
)
except (ValueError, TypeError):
_engine = PaddleOCR(
lang="latin",
use_angle_cls=True,
show_log=False,
)
logger.info("PaddleOCR model loaded successfully") logger.info("PaddleOCR model loaded successfully")
return _engine return _engine
@@ -48,7 +57,7 @@ def startup_load_model():
@app.get("/health") @app.get("/health")
def health(): def health():
if _ready: if _ready:
return {"status": "ok", "model": "PP-OCRv4-latin"} return {"status": "ok", "model": "PP-OCRv5-latin"}
return {"status": "loading"} return {"status": "loading"}