[CI] Reducing mithril-h100-pool in ready&merge CI, optimize ready CI duration (#4354)
Signed-off-by: [Your Name] <your.email@example.com> Signed-off-by: wangyu <410167048@qq.com> Signed-off-by: wangyu <53896905+yenuo26@users.noreply.github.com> Signed-off-by: Hongsheng Liu <liuhongsheng4@huawei.com> Signed-off-by: [Your Name] <[Your Email]> Co-authored-by: Hongsheng Liu <liuhongsheng4@huawei.com>
This commit is contained in:
1 parent
e4026a50ad
commit
7619ed6b82
84 files changed
+1718
-2428
No files matched your search
@@ -1,6 +1,6 @@
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
# SPDX-FileCopyrightText: Copyright contributors to the vLLM project
|
||||
"""HTTP + WebSocket validation for Qwen3-TTS Base: ``/v1/audio/speech``, ``/v1/audio/speech/stream``, batch, voices."""
|
||||
"""HTTP + WebSocket validation for Qwen3-TTS Base and Higgs Audio V3 ``/v1/audio/speech`` (and related routes)."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
@@ -57,6 +57,19 @@ _QWEN3_TTS_SPEECH = [
|
||||
),
|
||||
]
|
||||
|
||||
_HIGGS_AUDIO_V3_SPEECH = [
|
||||
pytest.param(
|
||||
OmniServerParams(
|
||||
model="bosonai/higgs-audio-v3-tts-4b",
|
||||
stage_config_path=get_deploy_config_path("higgs_multimodal_qwen3.yaml"),
|
||||
server_args=_SPEECH_SERVER_ARGS,
|
||||
env_dict={"VLLM_USE_DEEP_GEMM": "0", "VLLM_MOE_USE_DEEP_GEMM": "0"},
|
||||
),
|
||||
id="higgs_audio_v3",
|
||||
marks=_L4_SPEECH_HW,
|
||||
),
|
||||
]
|
||||
|
||||
|
||||
def _apply_batch_overrides(body: dict[str, object], *, loc: str, overrides: dict[str, object]) -> None:
|
||||
if loc == "batch":
|
||||
@@ -240,6 +253,78 @@ def test_speech_invalid_field_values(
|
||||
)
|
||||
|
||||
|
||||
# Higgs Audio V3: ``references[]`` cookbook alias and serving-layer 400 rejections.
|
||||
# Raw HTTP keeps JSON bodies intact (OpenAI SDK strips unknown fields such as ``references``).
|
||||
@pytest.mark.parametrize(
|
||||
"extra_json, err_message",
|
||||
[
|
||||
pytest.param({"input": "", "response_format": "wav"}, ("input", "empty"), id="input_empty"),
|
||||
pytest.param({"input": " ", "response_format": "wav"}, ("input", "empty"), id="input_whitespace_only"),
|
||||
pytest.param(
|
||||
{"input": "Hello world.", "max_new_tokens": 0}, ("max_new_tokens", "least 1"), id="max_new_tokens_below_min"
|
||||
),
|
||||
pytest.param(
|
||||
{
|
||||
"input": "Hello world.",
|
||||
"references": [
|
||||
{"audio_path": REF_AUDIO_URL, "text": REF_TEXT},
|
||||
{"audio_path": REF_AUDIO_URL, "text": REF_TEXT},
|
||||
],
|
||||
"response_format": "wav",
|
||||
},
|
||||
("references", "only supports a single reference"),
|
||||
id="multi_reference_payload",
|
||||
),
|
||||
pytest.param(
|
||||
{"input": "Hello world.", "references": [], "response_format": "wav"},
|
||||
("references", "non-empty"),
|
||||
id="references_empty_array",
|
||||
),
|
||||
pytest.param(
|
||||
{"input": "Hello world.", "references": [{"text": REF_TEXT}], "response_format": "wav"},
|
||||
("audio_path", "required"),
|
||||
id="references_missing_audio_path",
|
||||
),
|
||||
pytest.param(
|
||||
{"input": "Hello world.", "references": [1], "response_format": "wav"},
|
||||
("references[0]", "must be an object"),
|
||||
id="references_bad_element_type",
|
||||
),
|
||||
pytest.param(
|
||||
{
|
||||
"input": "Hello world.",
|
||||
"ref_audio": REF_AUDIO_URL,
|
||||
"references": [{"audio_path": "https://example.com/other.wav"}],
|
||||
"response_format": "wav",
|
||||
},
|
||||
("mutually exclusive", "ref_audio", "references"),
|
||||
id="ref_audio_and_references_exclusive",
|
||||
),
|
||||
pytest.param(
|
||||
{
|
||||
"input": "Hello world.",
|
||||
"ref_text": "different transcript",
|
||||
"references": [{"audio_path": REF_AUDIO_URL, "text": REF_TEXT}],
|
||||
"response_format": "wav",
|
||||
},
|
||||
("references[0].text", "ref_text", "conflict"),
|
||||
id="references_text_conflicts_ref_text",
|
||||
),
|
||||
],
|
||||
)
|
||||
@pytest.mark.parametrize("omni_server", _HIGGS_AUDIO_V3_SPEECH, indirect=True)
|
||||
def test_speech_higgs_invalid_field_values(
|
||||
omni_server: OmniServer,
|
||||
openai_client: OpenAIClientHandler,
|
||||
extra_json: dict[str, object],
|
||||
err_message: str | tuple[str, ...],
|
||||
) -> None:
|
||||
body = {"model": omni_server.model, **extra_json}
|
||||
openai_client.send_audio_speech_http_request(
|
||||
{"json": body, "timeout": 120, "err_code": 400, "err_message": err_message}
|
||||
)
|
||||
|
||||
|
||||
# ─────────────────────────────────────────────────────────────────────────────
|
||||
# POST /v1/audio/speech/batch (JSON)
|
||||
# ─────────────────────────────────────────────────────────────────────────────
|
||||
|
||||
Reference in new issue
Block a user