fix: Add new paths to config, fix Uvicorn logging, and update Storage settings
This commit is contained in:
parent
c26dabe296
commit
6ffba2d588
@ -37,8 +37,8 @@ _SETTINGS_KEYS = {
|
||||
"client_voice_bindings",
|
||||
"llm_url", "llm_model",
|
||||
# Browser-persistent UI state
|
||||
"engine_local_urls", "engine_container_names", "custom_engine_cards",
|
||||
"refine_llm_url", "conv_llm_url", "seed_finder_text",
|
||||
"seed_finder_dir", "pt_dir",
|
||||
}
|
||||
|
||||
# ── TTS stability defaults ────────────────────────────────────────────────────
|
||||
@ -276,6 +276,8 @@ def _load_settings() -> dict:
|
||||
"refine_llm_url": "",
|
||||
"conv_llm_url": "",
|
||||
"seed_finder_text": "",
|
||||
"seed_finder_dir": "",
|
||||
"pt_dir": "",
|
||||
}
|
||||
if CONFIG_FILE.exists():
|
||||
try:
|
||||
|
||||
@ -30,6 +30,8 @@ app.add_middleware(GZipMiddleware, minimum_size=1024)
|
||||
_buf_handler = _BufferHandler()
|
||||
_buf_handler.setLevel(logging.DEBUG)
|
||||
logging.getLogger().addHandler(_buf_handler)
|
||||
logging.getLogger("uvicorn.error").addHandler(_buf_handler)
|
||||
logging.getLogger("uvicorn.access").addHandler(_buf_handler)
|
||||
|
||||
# ── File log handler (rotates at 5 MB, keeps 3 files) ────────────────────────
|
||||
|
||||
@ -48,6 +50,8 @@ try:
|
||||
datefmt="%Y-%m-%d %H:%M:%S",
|
||||
))
|
||||
logging.getLogger().addHandler(_file_handler)
|
||||
logging.getLogger("uvicorn.error").addHandler(_file_handler)
|
||||
logging.getLogger("uvicorn.access").addHandler(_file_handler)
|
||||
except Exception as _log_err:
|
||||
logger.warning("Could not set up file logging at %s: %s", _LOG_DIR, _log_err)
|
||||
|
||||
|
||||
@ -343,7 +343,9 @@ const SETTINGS_FIELD_HELP = {
|
||||
's-tts-key': ['TTS API key', 'Optional. For local OpenAI-compatible servers, sk-local or empty usually works.'],
|
||||
's-vd-key': ['Voice Design API key', 'Optional. Use only if your Voice Design backend requires Authorization.'],
|
||||
's-whisper-key': ['Whisper API key', 'Optional. Needed for cloud STT, usually empty for local Whisper-compatible containers.'],
|
||||
's-seed-finder-text': ['Seed Finder text', 'Custom test sentence used when opening the Seed Finder. Leave empty to use language defaults.']
|
||||
's-seed-finder-text': ['Seed Finder text', 'Custom test sentence used when opening the Seed Finder. Leave empty to use language defaults.'],
|
||||
's-seed-finder-dir': ['Seed Finder Sample Files', 'Container path for seed finder sample storage.'],
|
||||
's-pt-dir': ['PT Files', 'Container path for .pt embedding storage.']
|
||||
};
|
||||
|
||||
|
||||
@ -460,6 +462,10 @@ async function loadSettings() {
|
||||
$('s-vd-key').value = s.voice_design_api_key || '';
|
||||
$('s-voices-scan-dir').value = s.voices_scan_dir || '';
|
||||
$('s-output-dir').value = s.output_dir || '';
|
||||
const seedFinderDirEl = $('s-seed-finder-dir');
|
||||
if (seedFinderDirEl) seedFinderDirEl.value = s.seed_finder_dir || '';
|
||||
const ptDirEl = $('s-pt-dir');
|
||||
if (ptDirEl) ptDirEl.value = s.pt_dir || '';
|
||||
const seedTextEl = $('s-seed-finder-text');
|
||||
if (seedTextEl) seedTextEl.value = s.seed_finder_text || '';
|
||||
const themeEl = $('s-theme-select');
|
||||
@ -560,6 +566,8 @@ document.addEventListener('click', async e => { if (!e.target.closest('.s-save-b
|
||||
voice_design_api_key: $('s-vd-key').value,
|
||||
voices_scan_dir: $('s-voices-scan-dir').value,
|
||||
output_dir: $('s-output-dir').value,
|
||||
seed_finder_dir: $('s-seed-finder-dir')?.value || '',
|
||||
pt_dir: $('s-pt-dir')?.value || '',
|
||||
stt_language: $('s-stt-language')?.value || '',
|
||||
stt_preferred_backend: $('s-stt-preferred-backend')?.value || '',
|
||||
auto_refine: $('s-auto-refine')?.value || 'off',
|
||||
|
||||
@ -422,6 +422,16 @@
|
||||
<input type="text" id="s-output-dir" placeholder="/voices/active_voices">
|
||||
<span class="s-hint">New cloned/exported voices are saved here.</span>
|
||||
</div>
|
||||
<div class="s-field">
|
||||
<label>Seed Finder Sample Files</label>
|
||||
<input type="text" id="s-seed-finder-dir" placeholder="/voices/seed_finder">
|
||||
<span class="s-hint">Directory containing generated seed finder samples.</span>
|
||||
</div>
|
||||
<div class="s-field">
|
||||
<label>PT Files</label>
|
||||
<input type="text" id="s-pt-dir" placeholder="/voices/pt_files">
|
||||
<span class="s-hint">Directory for saved embedding models (.pt files).</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="s-page-actions">
|
||||
<button class="btn-primary s-save-btn">Save settings</button>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user