feat: automatic Kokoro offline mode + daily update check
- On first load: model runs online (downloads .pt files), then stores the current HF commit SHA to /data/kokoro_commit_hash.txt and switches the process to offline mode (HF_HUB_OFFLINE) for all future requests - On subsequent restarts: presence of the commit file triggers offline mode before the pipeline loads, skipping all HuggingFace network validation - Daily at 03:00 UTC: scheduler temporarily lifts offline mode, fetches the latest commit SHA from HF, and only reloads the pipeline if the model has actually changed — then restores offline mode - Removed HF_HUB_OFFLINE from docker-compose.yml; behaviour is now automatic and not a hoster/user concern Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -343,6 +343,21 @@ async def start_briefing_scheduler(loop: asyncio.AbstractEventLoop) -> None:
|
||||
replace_existing=True,
|
||||
)
|
||||
|
||||
def _run_kokoro_update_check() -> None:
|
||||
from fabledassistant.services.tts import check_for_kokoro_updates
|
||||
future = asyncio.run_coroutine_threadsafe(check_for_kokoro_updates(), _loop)
|
||||
try:
|
||||
future.result(timeout=300)
|
||||
except Exception as exc:
|
||||
logger.error("Kokoro update check failed: %s", exc)
|
||||
|
||||
_scheduler.add_job(
|
||||
_run_kokoro_update_check,
|
||||
CronTrigger(hour=3, minute=0, timezone="UTC"),
|
||||
id="kokoro_update_check_daily",
|
||||
replace_existing=True,
|
||||
)
|
||||
|
||||
_scheduler.start()
|
||||
logger.info(
|
||||
"Briefing scheduler started with %d user(s) across %d job(s)",
|
||||
|
||||
Reference in New Issue
Block a user