[Core] Graduate MiniCPM-o 4.5 and PersonaPlex full-duplex serving out of experimental (#6196)
Signed-off-by: chickeyton <ngton2014@gmail.com> Signed-off-by: Gao Han <hgaoaf@connect.ust.hk> Co-authored-by: Claude Fable 5 <noreply@anthropic.com> Co-authored-by: Gao Han <hgaoaf@connect.ust.hk>
This commit is contained in:
179 files changed
+6462
-3832
No files matched your search
@@ -1,3 +1,6 @@
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
# SPDX-FileCopyrightText: Copyright contributors to the vLLM-Omni project
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import ast
|
||||
@@ -7,13 +10,37 @@ import pytest
|
||||
|
||||
pytestmark = [pytest.mark.core_model, pytest.mark.cpu]
|
||||
|
||||
_REPO_ROOT = Path(__file__).parents[3]
|
||||
_CLIENTS_PACKAGE = "vllm_omni.clients"
|
||||
|
||||
def test_api_server_does_not_import_experimental_duplex_at_module_load() -> None:
|
||||
api_server = Path(__file__).parents[3] / "vllm_omni/entrypoints/openai/api_server.py"
|
||||
module = ast.parse(api_server.read_text())
|
||||
|
||||
top_level_imports = {
|
||||
node.module for node in module.body if isinstance(node, ast.ImportFrom) and isinstance(node.module, str)
|
||||
}
|
||||
def _imports_clients_package(path: Path) -> bool:
|
||||
"""True if the module imports the client-side package at module level.
|
||||
|
||||
assert not any(module.startswith("vllm_omni.experimental.fullduplex") for module in top_level_imports)
|
||||
``vllm_omni.clients`` is client-side by construction: the serving stack
|
||||
(imported eagerly by the API server) must never depend on it.
|
||||
"""
|
||||
module = ast.parse(path.read_text(encoding="utf-8"))
|
||||
for node in module.body:
|
||||
if isinstance(node, ast.Import):
|
||||
if any(
|
||||
alias.name == _CLIENTS_PACKAGE or alias.name.startswith(_CLIENTS_PACKAGE + ".") for alias in node.names
|
||||
):
|
||||
return True
|
||||
elif isinstance(node, ast.ImportFrom):
|
||||
if node.module and (node.module == _CLIENTS_PACKAGE or node.module.startswith(_CLIENTS_PACKAGE + ".")):
|
||||
return True
|
||||
if node.module == "vllm_omni" and any(alias.name == "clients" for alias in node.names):
|
||||
return True
|
||||
return False
|
||||
|
||||
|
||||
def test_api_server_does_not_import_client_package() -> None:
|
||||
api_server = _REPO_ROOT / "vllm_omni/entrypoints/openai/api_server.py"
|
||||
assert not _imports_clients_package(api_server)
|
||||
|
||||
|
||||
def test_duplex_serving_stack_does_not_import_client_package() -> None:
|
||||
duplex_pkg = _REPO_ROOT / "vllm_omni/entrypoints/duplex"
|
||||
offenders = [path.name for path in sorted(duplex_pkg.glob("*.py")) if _imports_clients_package(path)]
|
||||
assert not offenders, f"duplex serving modules import the client package: {offenders}"
|
||||
Reference in new issue
Block a user