Skip to content

Commit 033b70d

Browse files
authored
fix: honor server hub for default Nano model (#3324)
Co-authored-by: LauraGPT <lauragpt@users.noreply.github.com>
1 parent 9ee0550 commit 033b70d

2 files changed

Lines changed: 21 additions & 6 deletions

File tree

funasr/bin/_server_app.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -137,9 +137,10 @@ def _load_vllm_engine():
137137

138138
logger.info("Loading Fun-ASR-Nano vLLM engine...")
139139
t0 = time.time()
140-
# Use custom model_path if provided, otherwise default
140+
# Use custom model_path if provided, otherwise default. In both
141+
# cases, honor the server-level hub selection.
141142
vllm_model = app.state.model_path if app.state.model_path else "FunAudioLLM/Fun-ASR-Nano-2512"
142-
vllm_hub = app.state.hub if app.state.model_path else "hf"
143+
vllm_hub = app.state.hub
143144
app.state.engine = FunASRNanoVLLM.from_pretrained(
144145
model=vllm_model,
145146
hub=vllm_hub,
@@ -160,7 +161,7 @@ def _load_vllm_engine():
160161
from funasr import AutoModel
161162
cfg = {
162163
"model": app.state.model_path if app.state.model_path else "FunAudioLLM/Fun-ASR-Nano-2512",
163-
"hub": app.state.hub if app.state.model_path else "hf",
164+
"hub": app.state.hub,
164165
"trust_remote_code": True,
165166
"vad_model": "fsmn-vad",
166167
"vad_kwargs": {"max_single_segment_time": 30000},

tests/test_server_app_openai_segments.py

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,13 +55,15 @@ def __init__(self, **kwargs):
5555
return DummyAutoModel
5656

5757

58-
def install_dummy_vllm(monkeypatch):
58+
def install_dummy_vllm(monkeypatch, raise_on_load=False):
5959
class DummyVLLM:
6060
calls = []
6161

6262
@classmethod
6363
def from_pretrained(cls, **kwargs):
6464
cls.calls.append(kwargs)
65+
if raise_on_load:
66+
raise RuntimeError("vllm unavailable")
6567
return object()
6668

6769
monkeypatch.setitem(sys.modules, "funasr.models", types.ModuleType("funasr.models"))
@@ -101,18 +103,30 @@ def test_fallback_segments_keep_short_text_single_cue(monkeypatch):
101103
]
102104

103105

104-
def test_default_fun_asr_nano_uses_huggingface_hub(monkeypatch):
106+
def test_default_fun_asr_nano_uses_requested_modelscope_hub(monkeypatch):
105107
module = load_server_app(monkeypatch)
106108
DummyAutoModel = install_dummy_funasr(monkeypatch)
107109
DummyVLLM = install_dummy_vllm(monkeypatch)
108110

109111
module.create_app(device="cuda", preload_model="fun-asr-nano", hub="ms")
110112

111113
assert DummyVLLM.calls[0]["model"] == "FunAudioLLM/Fun-ASR-Nano-2512"
112-
assert DummyVLLM.calls[0]["hub"] == "hf"
114+
assert DummyVLLM.calls[0]["hub"] == "ms"
113115
assert DummyAutoModel.instances[0]["model"] == "fsmn-vad"
114116

115117

118+
def test_default_fun_asr_nano_fallback_uses_requested_modelscope_hub(monkeypatch):
119+
module = load_server_app(monkeypatch)
120+
DummyAutoModel = install_dummy_funasr(monkeypatch)
121+
install_dummy_vllm(monkeypatch, raise_on_load=True)
122+
123+
module.create_app(device="cuda", preload_model="fun-asr-nano", hub="ms")
124+
125+
fallback = DummyAutoModel.instances[-1]
126+
assert fallback["model"] == "FunAudioLLM/Fun-ASR-Nano-2512"
127+
assert fallback["hub"] == "ms"
128+
129+
116130
def test_custom_model_path_fallback_uses_empty_config_and_requested_hub(monkeypatch):
117131
module = load_server_app(monkeypatch)
118132
DummyAutoModel = install_dummy_funasr(monkeypatch)

0 commit comments

Comments
 (0)