feat: enhance logging for character updates and voice cache management
This commit is contained in:
26
dev.sh
26
dev.sh
@@ -1,7 +1,27 @@
|
||||
#!/bin/bash
|
||||
trap 'kill 0' EXIT
|
||||
trap 'kill 0' EXIT INT TERM
|
||||
|
||||
(cd qwen3-tts-backend && DEV_MODE=true LOG_LEVEL=debug /home/bdim/miniconda3/envs/qwen3-tts/bin/uvicorn main:app --host 0.0.0.0 --port 8000 --reload --log-level debug 2>&1 | sed 's/^/[backend] /') &
|
||||
(cd qwen3-tts-frontend && npm run dev 2>&1 | sed 's/^/[frontend] /') &
|
||||
colorize() {
|
||||
local color="$1" name="$2"
|
||||
local R=$'\033[0m' DIM=$'\033[90m' YEL=$'\033[33m' RED=$'\033[31m'
|
||||
local prefix="${color}[${name}]${R} "
|
||||
while IFS= read -r line; do
|
||||
if [[ "$line" =~ ^DEBUG ]]; then
|
||||
printf '%s%s%s%s\n' "$prefix" "$DIM" "$line" "$R"
|
||||
elif [[ "$line" =~ ^WARNING ]]; then
|
||||
printf '%s%s%s%s\n' "$prefix" "$YEL" "$line" "$R"
|
||||
elif [[ "$line" =~ ^(ERROR|CRITICAL) ]]; then
|
||||
printf '%s%s%s%s\n' "$prefix" "$RED" "$line" "$R"
|
||||
else
|
||||
printf '%s%s\n' "$prefix" "$line"
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
BLUE=$'\033[34m'
|
||||
MAGENTA=$'\033[35m'
|
||||
|
||||
(cd qwen3-tts-backend && DEV_MODE=true LOG_LEVEL=debug /home/bdim/miniconda3/envs/qwen3-tts/bin/uvicorn main:app --host 0.0.0.0 --port 8000 --reload --log-level debug 2>&1 | colorize "$BLUE" "backend") &
|
||||
(cd qwen3-tts-frontend && npm run dev 2>&1 | colorize "$MAGENTA" "frontend") &
|
||||
|
||||
wait
|
||||
|
||||
@@ -745,11 +745,13 @@ async def update_character(
|
||||
|
||||
if (data.instruct is not None or data.gender is not None) and char.voice_design_id:
|
||||
voice_design = crud.get_voice_design(db, char.voice_design_id, current_user.id)
|
||||
logger.info(f"update_character: char_id={char_id}, voice_design_id={char.voice_design_id}, found={voice_design is not None}")
|
||||
if voice_design:
|
||||
if data.instruct is not None:
|
||||
voice_design.instruct = data.instruct
|
||||
voice_design.voice_cache_id = None
|
||||
db.commit()
|
||||
logger.info(f"update_character: cleared voice_cache_id for design {voice_design.id}")
|
||||
|
||||
return _char_to_response(char, db)
|
||||
|
||||
|
||||
@@ -1474,6 +1474,12 @@ async def generate_character_preview(project_id: int, char_id: int, user: User,
|
||||
backend = await TTSServiceFactory.get_backend()
|
||||
|
||||
try:
|
||||
if force_recreate and design.voice_cache_id:
|
||||
design.voice_cache_id = None
|
||||
db.commit()
|
||||
db.refresh(design)
|
||||
logger.info(f"Cleared voice_cache_id for char {char_id} (force_recreate)")
|
||||
|
||||
if not design.voice_cache_id:
|
||||
logger.info(f"Local voice cache missing for char {char_id}. Bootstrapping now...")
|
||||
from core.model_manager import ModelManager
|
||||
|
||||
Reference in New Issue
Block a user