Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Feature Request: Add PaddleOCR GPU support to Docker image

Aperta
#533 1 commento 1 reazione 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
35/100
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Tranquilla
Stack tecnologico
docker, python

Direzione di ricerca

Inizia esaminando il Dockerfile esistente e la configurazione di pubblicazione delle immagini, quindi leggi unstructured/partition/utils/ocr_models/paddle_ocr.py e OCR_AGENT_BUG_ISSUE.md. Determina se i tag delle immagini GPU o gli argomenti di build rientrano nell’ambito e verifica che l’immagine selezionata venga compilata con le dipendenze PaddleOCR richieste e supporti l’esecuzione su GPU.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Feature Request: Add PaddleOCR GPU support to unstructured-api Docker image

Summary

The official unstructured-api Docker image includes Tesseract but not PaddleOCR. Users who want to use PaddleOCR with GPU acceleration must build a custom image. It would be valuable to have an official GPU-enabled image with PaddleOCR pre-installed.

Current Behavior

  • The unstructured-api:latest image only includes Tesseract OCR
  • PaddleOCR must be manually installed via pip install paddlepaddle unstructured-paddleocr
  • There is no GPU-enabled variant of the image
  • The OCR_AGENT environment variable is ignored (see related issue: OCR_AGENT_BUG_ISSUE.md)

Proposed Solution

Option 1: Provide GPU-enabled image tags

Publish additional Docker image variants:

unstructured-api:latest-gpu-cu118  # CUDA 11.8
unstructured-api:latest-gpu-cu126  # CUDA 12.6

These images would include:

  • paddlepaddle-gpu from the appropriate CUDA index
  • unstructured-paddleocr
  • NVIDIA CUDA runtime
Option 2: Add build args to existing Dockerfile

Add build arguments to allow users to build GPU-enabled images:

ARG USE_GPU=false
ARG CUDA_VERSION=cu118

RUN if [ "$USE_GPU" = "true" ]; then \
        pip install --no-cache-dir \
            paddlepaddle-gpu -i https://www.paddlepaddle.org.cn/packages/stable/${CUDA_VERSION}/ \
            unstructured-paddleocr; \
    fi

Implementation Details

The unstructured library already supports GPU acceleration for PaddleOCR. In unstructured/partition/utils/ocr_models/paddle_ocr.py:

gpu_available = paddle.device.cuda.device_count() > 0
if gpu_available:
    logger.info(f"Loading paddle with GPU on language={language}...")

paddle_ocr = PaddleOCR(
    use_angle_cls=True,
    use_gpu=gpu_available,  # Auto-detects GPU
    lang=language,
    enable_mkldnn=True,
    show_log=False,
)

This means the library automatically uses GPU when available - the only requirement is installing paddlepaddle-gpu instead of paddlepaddle.

Workaround

Users can extend the official image:

FROM downloads.unstructured.io/unstructured-io/unstructured-api:latest

USER root

ARG USE_GPU=false
RUN if [ "$USE_GPU" = "true" ]; then \
        pip install --no-cache-dir \
            paddlepaddle-gpu -i https://www.paddlepaddle.org.cn/packages/stable/cu118/ \
            unstructured-paddleocr; \
    else \
        pip install --no-cache-dir \
            paddlepaddle \
            unstructured-paddleocr; \
    fi

USER notebook-user

ENV OCR_AGENT=unstructured.partition.utils.ocr_models.paddle_ocr.OCRAgentPaddle

Note: This also requires patching general.py to pass ocr_agent to partition() - see OCR_AGENT_BUG_ISSUE.md.

Benefits

  1. Performance: PaddleOCR with GPU is significantly faster than Tesseract for batch processing
  2. Accuracy: PaddleOCR (especially PP-OCRv4) provides better accuracy on many document types
  3. Ease of use: Official GPU images eliminate the need for custom Dockerfiles

Environment

  • unstructured-api: latest
  • unstructured: 0.18.18+
  • PaddlePaddle: 3.2.2
  • CUDA: 11.8 / 12.6

Related Issues

  • OCR_AGENT environment variable is ignored (see OCR_AGENT_BUG_ISSUE.md)

References

Lingua principale
Python
Stelle
953
Fork
192
Merge medio
1g 1h
PR unite (30g)
5

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di Unstructured-IO/unstructured-api

Tutte le issue di Unstructured-IO/unstructured-api

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.