- Integrar Tesseract OCR para leer PDFs escaneados automáticamente - Detectar automáticamente si el PDF tiene texto o requiere OCR - Agregar servicio ocr_service.py con funciones de OCR - Actualizar Dockerfile con tesseract-ocr, tesseract-ocr-spa y poppler-utils - Agregar variables de configuración OCR (OCR_ENABLED, OCR_LANGUAGE, OCR_DPI, OCR_TIMEOUT) - Crear endpoint de debug para ver texto extraído (/api/v1/debug/extract-text) - Agregar scripts de instalación y prueba (install_ocr.ps1, test_ocr.py, debug_pdf.ps1) - Documentación completa (OCR_SETUP.md, DOCKER_OCR.md, COMO_PROBAR.md) - Actualizar docker-compose.yml con variables de entorno OCR - Modificar pdf_text.py para usar OCR cuando sea necesario - Actualizar requirements.txt con pytesseract, Pillow, pdf2image
81 lines
2.3 KiB
YAML
81 lines
2.3 KiB
YAML
version: '3.8'
|
|
|
|
services:
|
|
redis:
|
|
image: redis:7-alpine
|
|
container_name: mve-redis
|
|
ports:
|
|
- "16379:6379"
|
|
volumes:
|
|
- redis_data:/data
|
|
restart: unless-stopped
|
|
healthcheck:
|
|
test: ["CMD", "redis-cli", "ping"]
|
|
interval: 10s
|
|
timeout: 3s
|
|
retries: 3
|
|
|
|
mve-incrementables-parser:
|
|
build: .
|
|
container_name: mve-incrementables-parser
|
|
ports:
|
|
- "9876:9876"
|
|
environment:
|
|
- AUTH_USERNAME=${AUTH_USERNAME:-admin}
|
|
- AUTH_PASSWORD_HASH=${AUTH_PASSWORD_HASH}
|
|
- JWT_SECRET=${JWT_SECRET}
|
|
- JWT_EXPIRES_MINUTES=${JWT_EXPIRES_MINUTES:-60}
|
|
- MAX_FILE_MB=${MAX_FILE_MB:-10}
|
|
- LOG_LEVEL=${LOG_LEVEL:-INFO}
|
|
- SERVICE_NAME=mve-incrementables-parser
|
|
- SERVICE_VERSION=1.0.0
|
|
- REDIS_URL=redis://redis:6379/0
|
|
- CELERY_BROKER_URL=redis://redis:6379/0
|
|
- CELERY_RESULT_BACKEND=redis://redis:6379/0
|
|
- OCR_ENABLED=${OCR_ENABLED:-true}
|
|
- OCR_LANGUAGE=${OCR_LANGUAGE:-spa}
|
|
- OCR_DPI=${OCR_DPI:-300}
|
|
- OCR_TIMEOUT=${OCR_TIMEOUT:-300}
|
|
volumes:
|
|
- ./app:/app/app
|
|
depends_on:
|
|
redis:
|
|
condition: service_healthy
|
|
restart: unless-stopped
|
|
healthcheck:
|
|
test: ["CMD", "curl", "-f", "http://localhost:9876/health"]
|
|
interval: 30s
|
|
timeout: 3s
|
|
retries: 3
|
|
start_period: 5s
|
|
|
|
celery-worker:
|
|
build: .
|
|
container_name: mve-celery-worker
|
|
command: celery -A app.core.celery_app worker --loglevel=info --concurrency=2
|
|
environment:
|
|
- AUTH_USERNAME=${AUTH_USERNAME:-admin}
|
|
- AUTH_PASSWORD_HASH=${AUTH_PASSWORD_HASH}
|
|
- JWT_SECRET=${JWT_SECRET}
|
|
- JWT_EXPIRES_MINUTES=${JWT_EXPIRES_MINUTES:-60}
|
|
- MAX_FILE_MB=${MAX_FILE_MB:-10}
|
|
- LOG_LEVEL=${LOG_LEVEL:-INFO}
|
|
- SERVICE_NAME=mve-incrementables-parser
|
|
- SERVICE_VERSION=1.0.0
|
|
- REDIS_URL=redis://redis:6379/0
|
|
- CELERY_BROKER_URL=redis://redis:6379/0
|
|
- CELERY_RESULT_BACKEND=redis://redis:6379/0
|
|
- OCR_ENABLED=${OCR_ENABLED:-true}
|
|
- OCR_LANGUAGE=${OCR_LANGUAGE:-spa}
|
|
- OCR_DPI=${OCR_DPI:-300}
|
|
- OCR_TIMEOUT=${OCR_TIMEOUT:-300}
|
|
volumes:
|
|
- ./app:/app/app
|
|
depends_on:
|
|
redis:
|
|
condition: service_healthy
|
|
restart: unless-stopped
|
|
|
|
volumes:
|
|
redis_data:
|