Pin remaining unbounded deps, drop stale JS model-list fallback, add smoke test

pyannote.audio was still `>=3.1` — the same unbounded-constraint pattern
that silently broke qwen3 (transformers>=4.45.0 resolving to a version
without qwen3_asr support on a later rebuild). Confirmed it had already
drifted once this session (4.0.4 -> 4.0.7). Pinned to the exact version
the current diarization code (token=, .speaker_diarization) is verified
against.

asr.js's config-fetch failure path fabricated a hardcoded backend/model
list that could silently drift from the server's real one (this is
exactly how the wrong Qwen3-ASR-2B/8B model IDs stuck around). Replaced it
with a visible error instead of a second source of truth.

Added scripts/smoke_test.sh: hits every backend's /transcribe or
/synthesize directly with a synthetic clip. Every regression found this
session (wrong model IDs, pyannote API drift, cuDNN path conflict) would
have shown up here immediately instead of waiting for a user to hit it.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
du5t
2026-07-23 23:29:30 +09:00
parent 9472387d1b
commit 89f8643426
4 changed files with 59 additions and 12 deletions

View File

@@ -2,5 +2,5 @@ fastapi==0.115.0
uvicorn[standard]==0.30.6
python-multipart==0.0.9
faster-whisper==1.1.1
pyannote.audio>=3.1
pyannote.audio==4.0.7
numpy

View File

@@ -2,7 +2,7 @@
fastapi==0.115.0
uvicorn[standard]==0.30.6
python-multipart==0.0.9
transformers>=4.45.0
transformers==5.14.1
accelerate>=0.30.0
librosa>=0.10.0
soundfile>=0.12.0