프로젝트 소개

paperless-paddle-ocr는 PaddleOCR PP-OCRv6를 외부 워커로 paperless-ngx와 통합합니다. 구성 가능한 입력 태그와 일치하는 문서를 paperless API에서 폴링하고, 처리 태그로 해당 문서를 선점한 뒤 파일을 다운로드하고, PyMuPDF를 사용해 PDF 페이지를 이미지로 렌더링하고, OCR을 실행한 다음, 추출된 텍스트를 문서 콘텐츠에 PATCH합니다. 완료된 문서에는 출력 태그가 지정되고, 실패한 문서에는 오류 태그가 지정됩니다. 이 프로젝트는 CPU 사용을 위해 설계되었으며 Intel 하드웨어용으로 PaddlePaddle, ONNX Runtime, 선택적 OpenVINO 백엔드를 제공합니다. 구성은 환경 변수를 통해 제공되며, 여기에는 paperless URL 및 API 토큰, OCR 언어, 모델 등급, DPI, 폴링 간격, 스레드 수, 처리 태그, 재처리 동작, 드라이 런 모드가 포함됩니다. 데몬으로 지속적으로 실행하거나 단일 패스를 수행할 수 있습니다. 배포는 Docker Compose와 일반 Docker 명령으로 문서화되어 있습니다. 이미지는 비루트 사용자로 실행되고, 상태 확인을 포함하며, linux/amd64 및 linux/arm64를 지원합니다. 로컬 개발 워크플로는 Ruff 린팅, mypy 타입 검사, 무거운 OCR 의존성을 스텁 처리한 pytest를 다룹니다. 이 워커는 HTTP API를 통해서만 paperless-ngx와 통신하며, paperless-ngx나 PaddleOCR 소스 코드를 번들로 포함하지 않습니다. 설계상 CPU 전용이며, 매우 큰 규모의 일치 문서 집합으로 부하 테스트를 거치지 않았고, OCR 결과는 스캔 품질, 모델 등급, DPI 설정에 따라 달라집니다. 저장소는 MIT 라이선스입니다.