# Parakeet ASR stack tunables. Copy to `.env` on fv-ml1 before deploying. # # cp .env.example .env # # edit as needed # docker compose build # docker compose up -d # Image tag. Bump when you change the Dockerfile / app.py so docker caches # cleanly. PARAKEET_TAG=sherpa-onnx-v4 # Which GPU to pin. The container sees whichever card this names as cuda:0. # # ⚠ GPU 0, deliberately, NOT the empty GPU 3. This seat is ~800 MiB and GPU 0 has # the most uncommitted headroom of the three working cards (its seats commit # util 0.88, ~13 GB spare; GPU 1 is at 0.975, GPU 2 at 0.96). Leaving GPU 3 # untouched keeps a full 96 GB card available for a real seat — vLLM sizes KV # cache against TOTAL VRAM, so even a 1 GB tenant eats into a big seat's margin. PARAKEET_GPU=0 # Host port for the FastAPI server (container listens on 8000). 8300 is # fv-ml1's established parakeet port; the 80xx range belongs to the vLLM seats. PARAKEET_PORT=8300 # Bind address. 0.0.0.0 exposes on all interfaces. Use 127.0.0.1 to restrict # to local-only — but LiteLLM on ana-docker reaches this over the LAN, so it # has to be 0.0.0.0 for the gateway alias to work. PARAKEET_BIND=0.0.0.0 # Host path for the ONNX model files — encoder/decoder/joiner/tokens.txt. # Downloaded by the entrypoint on first run if absent. Must exist before # first `up` (directory, not files). Regenerable — exclude from restic. PARAKEET_MODELS_DIR=/tank/parakeet/models # Which sherpa-onnx release tarball to fetch on first boot. # v3 (default, 464 MiB) — 25 European languages # v2 — English only, swap the URL below # https://github.com/k2-fsa/sherpa-onnx/releases/download/asr-models/sherpa-onnx-nemo-parakeet-tdt-0.6b-v2-int8.tar.bz2 PARAKEET_MODEL_URL=https://github.com/k2-fsa/sherpa-onnx/releases/download/asr-models/sherpa-onnx-nemo-parakeet-tdt-0.6b-v3-int8.tar.bz2 # ONNX Runtime execution provider. `cuda` uses the GPU (requires the nvidia # container runtime + matching CUDA/cuDNN in the image). `cpu` falls back to # CPU. # # ⚠ ORT's CUDA EP FALLS BACK TO CPU SILENTLY when it cannot initialise — the # server still answers 200 and still returns correct text, just slowly. So # `PROVIDER=cuda` is a REQUEST, not a guarantee, and the only honest check is # to watch `nvidia-smi` during a transcription and confirm a process appears on # the pinned card. See README § Verifying the GPU is actually in use. PARAKEET_PROVIDER=cuda # CPU threads per recognizer session. Irrelevant when provider=cuda; # only matters for provider=cpu. PARAKEET_NUM_THREADS=1 # Log level: DEBUG | INFO | WARNING | ERROR PARAKEET_LOG_LEVEL=INFO