From 2972c98a59f8b12e4727a5fcce2637652ccafdf5 Mon Sep 17 00:00:00 2001 From: faltiska Date: Sun, 13 Jul 2025 13:47:55 +0300 Subject: [PATCH] Added ability to set log level with env vars. --- api/src/main.py | 3 --- docker/cpu/Dockerfile | 7 +++++-- docker/gpu/Dockerfile | 9 ++++++--- docker/scripts/entrypoint.sh | 6 +----- start-gpu.ps1 | 8 +++++--- start-gpu.sh | 4 +++- start-gpu_mac.sh | 4 +++- 7 files changed, 23 insertions(+), 18 deletions(-) diff --git a/api/src/main.py b/api/src/main.py index 23299cf..4fb2242 100644 --- a/api/src/main.py +++ b/api/src/main.py @@ -2,10 +2,8 @@ FastAPI OpenAI Compatible API """ -import os import sys from contextlib import asynccontextmanager -from pathlib import Path import torch import uvicorn @@ -31,7 +29,6 @@ def setup_logger(): "{module}:{line} | " "{message}", "colorize": True, - "level": "DEBUG", }, ], } diff --git a/docker/cpu/Dockerfile b/docker/cpu/Dockerfile index 1549542..4546416 100644 --- a/docker/cpu/Dockerfile +++ b/docker/cpu/Dockerfile @@ -40,9 +40,12 @@ ENV PATH="/home/appuser/.cargo/bin:/app/.venv/bin:$PATH" \ PHONEMIZER_ESPEAK_PATH=/usr/bin \ PHONEMIZER_ESPEAK_DATA=/usr/share/espeak-ng-data \ ESPEAK_DATA_PATH=/usr/share/espeak-ng-data \ - DEVICE="cpu" + DEVICE="cpu" \ + DOWNLOAD_MODEL=true \ + UVICORN_LOG_LEVEL=warning \ + LOGURU_LEVEL=WARNING \ + NUM_WORKERS=2 -ENV DOWNLOAD_MODEL=true # Download model if enabled RUN if [ "$DOWNLOAD_MODEL" = "true" ]; then \ python download_model.py --output api/src/models/v1_0; \ diff --git a/docker/gpu/Dockerfile b/docker/gpu/Dockerfile index 572540c..bff5365 100644 --- a/docker/gpu/Dockerfile +++ b/docker/gpu/Dockerfile @@ -39,9 +39,12 @@ ENV PATH="/app/.venv/bin:$PATH" \ PHONEMIZER_ESPEAK_PATH=/usr/bin \ PHONEMIZER_ESPEAK_DATA=/usr/share/espeak-ng-data \ ESPEAK_DATA_PATH=/usr/share/espeak-ng-data \ - DEVICE="gpu" - -ENV DOWNLOAD_MODEL=true + DEVICE="gpu" \ + DOWNLOAD_MODEL=true \ + UVICORN_LOG_LEVEL=warning \ + LOGURU_LEVEL=WARNING \ + NUM_WORKERS=2 + # Download model if enabled RUN if [ "$DOWNLOAD_MODEL" = "true" ]; then \ python download_model.py --output api/src/models/v1_0; \ diff --git a/docker/scripts/entrypoint.sh b/docker/scripts/entrypoint.sh index a578495..f38e167 100644 --- a/docker/scripts/entrypoint.sh +++ b/docker/scripts/entrypoint.sh @@ -1,8 +1,4 @@ #!/bin/bash set -e -if [ "$DOWNLOAD_MODEL" = "true" ]; then - python download_model.py --output api/src/models/v1_0 -fi - -exec uv run --extra $DEVICE --no-sync python -m uvicorn api.src.main:app --host 0.0.0.0 --port 8880 --log-level debug \ No newline at end of file +exec uv run --extra $DEVICE --no-sync python -m uvicorn api.src.main:app --host 0.0.0.0 --port 8880 --log-level $UVICORN_LOG_LEVEL --workers $NUM_WORKERS \ No newline at end of file diff --git a/start-gpu.ps1 b/start-gpu.ps1 index 7b161a5..09418bb 100644 --- a/start-gpu.ps1 +++ b/start-gpu.ps1 @@ -1,5 +1,5 @@ -$env:PHONEMIZER_ESPEAK_LIBRARY="C:\Program Files\eSpeak NG\libespeak-ng.dll" -$env:PYTHONUTF8=1 +$Env:PHONEMIZER_ESPEAK_LIBRARY="C:\Program Files\eSpeak NG\libespeak-ng.dll" +$Env:PYTHONUTF8=1 $Env:PROJECT_ROOT="$pwd" $Env:USE_GPU="true" $Env:USE_ONNX="false" @@ -7,7 +7,9 @@ $Env:PYTHONPATH="$Env:PROJECT_ROOT;$Env:PROJECT_ROOT/api" $Env:MODEL_DIR="src/models" $Env:VOICES_DIR="src/voices/v1_0" $Env:WEB_PLAYER_PATH="$Env:PROJECT_ROOT/web" +$Env:UVICORN_LOG_LEVEL="warning" +$Env:LOGURU_LEVEL="WARNING" uv pip install -e ".[gpu]" uv run --no-sync python docker/scripts/download_model.py --output api/src/models/v1_0 -uv run --no-sync uvicorn api.src.main:app --host 0.0.0.0 --port 8880 \ No newline at end of file +uv run --no-sync uvicorn api.src.main:app --host 0.0.0.0 --port 8880 --log-level $env:UVICORN_LOG_LEVEL --workers 2 \ No newline at end of file diff --git a/start-gpu.sh b/start-gpu.sh index a3a2e68..2cc56ed 100755 --- a/start-gpu.sh +++ b/start-gpu.sh @@ -10,9 +10,11 @@ export PYTHONPATH=$PROJECT_ROOT:$PROJECT_ROOT/api export MODEL_DIR=src/models export VOICES_DIR=src/voices/v1_0 export WEB_PLAYER_PATH=$PROJECT_ROOT/web +export UVICORN_LOG_LEVEL=debug +export LOGURU_LEVEL=DEBUG # Run FastAPI with GPU extras using uv run # Note: espeak may still require manual installation, uv pip install -e ".[gpu]" uv run --no-sync python docker/scripts/download_model.py --output api/src/models/v1_0 -uv run --no-sync uvicorn api.src.main:app --host 0.0.0.0 --port 8880 +uv run --no-sync uvicorn api.src.main:app --host 0.0.0.0 --port 8880 --log-level $UVICORN_LOG_LEVEL --workers 2 diff --git a/start-gpu_mac.sh b/start-gpu_mac.sh index 9d00063..4cc53e0 100755 --- a/start-gpu_mac.sh +++ b/start-gpu_mac.sh @@ -10,6 +10,8 @@ export PYTHONPATH=$PROJECT_ROOT:$PROJECT_ROOT/api export MODEL_DIR=src/models export VOICES_DIR=src/voices/v1_0 export WEB_PLAYER_PATH=$PROJECT_ROOT/web +export UVICORN_LOG_LEVEL=debug +export LOGURU_LEVEL=DEBUG export DEVICE_TYPE=mps # Enable MPS fallback for unsupported operations @@ -18,4 +20,4 @@ export PYTORCH_ENABLE_MPS_FALLBACK=1 # Run FastAPI with GPU extras using uv run uv pip install -e . uv run --no-sync python docker/scripts/download_model.py --output api/src/models/v1_0 -uv run --no-sync uvicorn api.src.main:app --host 0.0.0.0 --port 8880 +uv run --no-sync uvicorn api.src.main:app --host 0.0.0.0 --port 8880 --log-level $UVICORN_LOG_LEVEL --workers 2