75 lines
1.8 KiB
Python
75 lines
1.8 KiB
Python
"""Constants and enums for E2E test infrastructure."""
|
|
|
|
from enum import Enum
|
|
|
|
|
|
class ConnectionMode(str, Enum):
|
|
"""Worker connection protocol."""
|
|
|
|
HTTP = "http"
|
|
GRPC = "grpc"
|
|
|
|
|
|
class WorkerType(str, Enum):
|
|
"""Worker specialization type."""
|
|
|
|
REGULAR = "regular"
|
|
PREFILL = "prefill"
|
|
DECODE = "decode"
|
|
|
|
|
|
class Runtime(str, Enum):
|
|
"""Inference runtime/backend."""
|
|
|
|
SGLANG = "sglang"
|
|
VLLM = "vllm"
|
|
OPENAI = "openai"
|
|
XAI = "xai"
|
|
GEMINI = "gemini"
|
|
|
|
|
|
# Convenience sets
|
|
LOCAL_MODES = frozenset({ConnectionMode.HTTP, ConnectionMode.GRPC})
|
|
LOCAL_RUNTIMES = frozenset({Runtime.SGLANG, Runtime.VLLM})
|
|
CLOUD_RUNTIMES = frozenset({Runtime.OPENAI, Runtime.XAI, Runtime.GEMINI})
|
|
|
|
# Fixture parameter names (used in @pytest.mark.parametrize)
|
|
PARAM_SETUP_BACKEND = "setup_backend"
|
|
PARAM_BACKEND_ROUTER = "backend_router"
|
|
PARAM_MODEL = "model"
|
|
|
|
# Default model
|
|
DEFAULT_MODEL = "llama-8b"
|
|
|
|
# Environment variable names
|
|
ENV_MODELS = "E2E_MODELS"
|
|
ENV_BACKENDS = "E2E_BACKENDS"
|
|
ENV_MODEL = "E2E_MODEL"
|
|
ENV_STARTUP_TIMEOUT = "E2E_STARTUP_TIMEOUT"
|
|
ENV_SKIP_MODEL_POOL = "SKIP_MODEL_POOL"
|
|
ENV_SKIP_BACKEND_SETUP = "SKIP_BACKEND_SETUP"
|
|
ENV_SHOW_ROUTER_LOGS = "SHOW_ROUTER_LOGS"
|
|
ENV_SHOW_WORKER_LOGS = "SHOW_WORKER_LOGS"
|
|
|
|
# Network
|
|
DEFAULT_HOST = "127.0.0.1"
|
|
|
|
# Timeouts (seconds)
|
|
DEFAULT_STARTUP_TIMEOUT = 300
|
|
DEFAULT_ROUTER_TIMEOUT = 60
|
|
HEALTH_CHECK_INTERVAL = 2 # Check every 2s (was 5s)
|
|
|
|
# Model loading configuration
|
|
INITIAL_GRACE_PERIOD = 30 # Wait before first health check (model loading time)
|
|
LAUNCH_STAGGER_DELAY = (
|
|
10 # Delay between launching multiple workers (avoid I/O contention)
|
|
)
|
|
|
|
# Retry configuration
|
|
MAX_RETRY_ATTEMPTS = (
|
|
6 # Max retries with exponential backoff (total ~63s: 1+2+4+8+16+32)
|
|
)
|
|
|
|
# Display formatting
|
|
LOG_SEPARATOR_WIDTH = 60 # Width for log separator lines (e.g., "="*60)
|