All checks were successful
Deploy to Staging / Build Images (pull_request) Successful in 5m59s
Deploy to Staging / Deploy to Staging (pull_request) Successful in 31s
Deploy to Staging / Verify Staging (pull_request) Successful in 2m19s
Deploy to Staging / Notify Staging Ready (pull_request) Successful in 7s
Deploy to Staging / Notify Staging Failure (pull_request) Has been skipped
OCR Service (Python/FastAPI):
- POST /extract for synchronous OCR extraction
- POST /jobs and GET /jobs/{job_id} for async processing
- Image preprocessing (deskew, denoise) for accuracy
- HEIC conversion via pillow-heif
- Redis job queue for async processing
Backend (Fastify):
- POST /api/ocr/extract - authenticated proxy to OCR
- POST /api/ocr/jobs - async job submission
- GET /api/ocr/jobs/:jobId - job polling
- Multipart file upload handling
- JWT authentication required
File size limits: 10MB sync, 200MB async
Processing time target: <3 seconds for typical photos
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
28 lines
413 B
Plaintext
28 lines
413 B
Plaintext
# API Framework
|
|
fastapi>=0.100.0
|
|
uvicorn[standard]>=0.23.0
|
|
python-multipart>=0.0.6
|
|
pydantic>=2.0.0
|
|
|
|
# File Detection & Handling
|
|
python-magic>=0.4.27
|
|
pillow>=10.0.0
|
|
pillow-heif>=0.13.0
|
|
|
|
# Image Preprocessing
|
|
opencv-python-headless>=4.8.0
|
|
numpy>=1.24.0
|
|
|
|
# OCR Engines
|
|
pytesseract>=0.3.10
|
|
|
|
# Redis for job queue
|
|
redis>=5.0.0
|
|
|
|
# HTTP client for callbacks
|
|
httpx>=0.24.0
|
|
|
|
# Testing
|
|
pytest>=7.4.0
|
|
pytest-asyncio>=0.21.0
|