Files
vllm-omni/vllm_omni/host/routes.py
T
tzhouam 723c550209 Integrate portable edge graph backends with Omni runtime
Extract versioned stage contracts, model shared CPU/iGPU/NPU memory constraints, and add explicit graph routes, reservations, output acknowledgements, and worker retirement. Fix native Windows shared-buffer lifetime and host paths. Document qualified hardware paths and remaining rollout gates.
2026-09-22 13:12:33 +08:00

33 lines
1.5 KiB
Python

# SPDX-License-Identifier: Apache-2.0
"""Deployment-owned worker routes, independent of model and physical device."""
from __future__ import annotations
import os
from collections.abc import Mapping
from pathlib import Path
from vllm_omni.edge.local.external.launch import Route, is_wsl, resolve
def resolve_route(spec: str | Mapping) -> Route:
"""Names retain compatibility; explicit profiles have no machine-local defaults."""
if isinstance(spec, str):
return resolve(spec)
required = {"name", "interpreter", "worker", "ep", "os_domain"}
if not required <= set(spec) or set(spec) - required:
raise ValueError(f"explicit route requires exactly {sorted(required)}")
if spec["os_domain"] not in {"windows", "posix"}:
raise ValueError("route os_domain must be windows or posix")
windows = spec["os_domain"] == "windows"
interpreter = Path(os.path.expandvars(str(spec["interpreter"]))).expanduser()
worker = Path(os.path.expandvars(str(spec["worker"]))).expanduser()
reason = ""
if windows and os.name != "nt" and not is_wsl():
reason = "Windows route requires Windows or WSL interop on this machine"
elif not windows and os.name == "nt":
reason = "POSIX route needs a POSIX controller; no implicit remote/WSL launch"
elif not interpreter.is_file() or not worker.is_file():
reason = "configured interpreter or worker script is missing"
return Route(str(spec["name"]), str(interpreter), str(worker), str(spec["ep"]), windows, not reason, reason)