Introduce support for external compute worker mode (`COMPUTE_MODE=worker`) using a new `WorkerComputeBackend`. This enables offloading heavy ONNX Whisper alignment and PDF layout parsing to a standalone worker service (Redis + BullMQ), improving scalability and compatibility with serverless/limited environments. - Add `@openreader/compute-core` as a shared package for ONNX inference and PDF parsing logic. - Implement `WorkerComputeBackend` and worker contract/types for remote job execution. - Update compute backend selection logic and remove previous worker mode guards. - Extend `WhisperAlignInput` and `PdfLayoutInput` types to support object keys for remote data access. - Refactor local compute backend to use `@openreader/compute-core` and support both buffer and object key inputs. - Update job runner, TTS segment alignment, and PDF layout parsing flows to use new compute backend APIs. - Add scripts, Docker workflow, and documentation for deploying and running the compute worker. - Update environment variable docs and examples for worker mode, including storage requirements and configuration. - Document published images and stack changes to reflect the new compute worker architecture. BREAKING CHANGE: `COMPUTE_MODE=worker` now requires an external compute worker service and S3-compatible object storage. Embedded SeaweedFS (`weed mini`) is not supported in worker mode. See the new documentation for deployment and configuration details.
25 lines
620 B
Text
25 lines
620 B
Text
# Compute worker bind
|
|
COMPUTE_WORKER_HOST=0.0.0.0
|
|
COMPUTE_WORKER_PORT=8081
|
|
COMPUTE_LOG_FORMAT=pretty
|
|
# COMPUTE_LOG_LEVEL=info
|
|
|
|
# App <-> worker auth
|
|
COMPUTE_WORKER_TOKEN=local-compute-token
|
|
|
|
# Redis/BullMQ
|
|
REDIS_URL=redis://redis:6379
|
|
|
|
# Shared object storage (must be reachable from worker)
|
|
S3_BUCKET=openreader-documents
|
|
S3_REGION=us-east-1
|
|
S3_ACCESS_KEY_ID=devkey
|
|
S3_SECRET_ACCESS_KEY=devsecret
|
|
S3_PREFIX=openreader
|
|
# Optional for non-AWS S3-compatible endpoints:
|
|
S3_ENDPOINT=http://host.docker.internal:8333
|
|
S3_FORCE_PATH_STYLE=true
|
|
|
|
# Queue + execution tuning
|
|
COMPUTE_QUEUE_MAX_DEPTH=64
|
|
COMPUTE_PREWARM_MODELS=true
|