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
|
#!/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] /') &
|
colorize() {
|
||||||
(cd qwen3-tts-frontend && npm run dev 2>&1 | sed 's/^/[frontend] /') &
|
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
|
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:
|
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)
|
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 voice_design:
|
||||||
if data.instruct is not None:
|
if data.instruct is not None:
|
||||||
voice_design.instruct = data.instruct
|
voice_design.instruct = data.instruct
|
||||||
voice_design.voice_cache_id = None
|
voice_design.voice_cache_id = None
|
||||||
db.commit()
|
db.commit()
|
||||||
|
logger.info(f"update_character: cleared voice_cache_id for design {voice_design.id}")
|
||||||
|
|
||||||
return _char_to_response(char, db)
|
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()
|
backend = await TTSServiceFactory.get_backend()
|
||||||
|
|
||||||
try:
|
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:
|
if not design.voice_cache_id:
|
||||||
logger.info(f"Local voice cache missing for char {char_id}. Bootstrapping now...")
|
logger.info(f"Local voice cache missing for char {char_id}. Bootstrapping now...")
|
||||||
from core.model_manager import ModelManager
|
from core.model_manager import ModelManager
|
||||||
|
|||||||
Reference in New Issue
Block a user