Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

vLLM Semantic Router

Intelligent Router for Mixture-of-Models (MoM).

GitHub: https://github.com/vllm-project/semantic-router

Quick Start

Installation

# Install from PyPI
pip install vllm-sr

# Or install from source (development)
cd src/vllm-sr
pip install -e .

Usage

# Initialize vLLM Semantic Router Configuration
vllm-sr init

# Start the router (includes dashboard)
# Provide your HF_TOKEN to run the evaluation tests; this is required for downloading the necessary datasets
HF_TOKEN=hf_xxx vllm-sr serve

# Open dashboard in browser
vllm-sr dashboard

# View logs
vllm-sr logs router
vllm-sr logs envoy
vllm-sr logs dashboard

# Check status
vllm-sr status

# Stop
vllm-sr stop

Features

  • Router: Intelligent request routing based on intent classification
  • Envoy Proxy: High-performance proxy with ext_proc integration
  • Dashboard: Web UI for monitoring and testing (http://localhost:8700)
  • Metrics: Prometheus metrics endpoint (http://localhost:9190/metrics)

Endpoints

After running vllm-sr serve, the following endpoints are available:

Endpoint Port Description
Dashboard 8700 Web UI for monitoring and Playground
API 8888* Chat completions API (configurable in config.yaml)
Metrics 9190 Prometheus metrics
gRPC 50051 Router gRPC (internal)
Jaeger UI 16686 Distributed tracing UI
Grafana (embedded) 8700 Dashboards at /embedded/grafana
Prometheus UI 9090 Metrics storage and querying

*Default port, configurable via listeners in config.yaml

Observability

vllm-sr serve automatically starts the observability stack:

  • Jaeger: Distributed tracing embedded at http://localhost:8700/embedded/jaeger (also available directly at http://localhost:16686)
  • Grafana: Pre-configured dashboards embedded at http://localhost:8700/embedded/grafana
  • Prometheus: Metrics collection at http://localhost:9090

Note: Grafana is optimized for embedded access through the dashboard. For the best experience, use http://localhost:8700/embedded/grafana where anonymous authentication is pre-configured.

Tracing is enabled by default. Traces are visible in Jaeger under the vllm-sr service name.

Configuration

Plugin Configuration

The CLI supports configuring plugins in your routing decisions. Plugins are per-decision behaviors that customize request handling (security, caching, customization, debugging).

Supported Plugin Types:

  • semantic-cache - Cache similar requests for performance
  • jailbreak - Detect and block adversarial prompts
  • pii - Detect and enforce PII policies
  • system_prompt - Inject custom system prompts
  • header_mutation - Add/modify HTTP headers
  • hallucination - Detect hallucinations in responses
  • router_replay - Record routing decisions for debugging

Plugin Examples:

  1. semantic-cache - Cache similar requests:
plugins:
  - type: "semantic-cache"
    configuration:
      enabled: true
      similarity_threshold: 0.92  # 0.0-1.0, higher = more strict
      ttl_seconds: 3600  # Optional: cache TTL in seconds
  1. jailbreak - Block adversarial prompts:
plugins:
  - type: "jailbreak"
    configuration:
      enabled: true
      threshold: 0.8  # Optional: detection sensitivity 0.0-1.0
  1. pii - Enforce PII policies:
plugins:
  - type: "pii"
    configuration:
      enabled: true
      threshold: 0.7  # Optional: detection sensitivity 0.0-1.0
      pii_types_allowed: ["EMAIL_ADDRESS"]  # Optional: list of allowed PII types
  1. system_prompt - Inject custom instructions:
plugins:
  - type: "system_prompt"
    configuration:
      enabled: true
      system_prompt: "You are a helpful assistant."
      mode: "replace"  # "replace" (default) or "insert" (prepend)
  1. header_mutation - Modify HTTP headers:
plugins:
  - type: "header_mutation"
    configuration:
      add:
        - name: "X-Custom-Header"
          value: "custom-value"
      update:
        - name: "User-Agent"
          value: "SemanticRouter/1.0"
      delete:
        - "X-Old-Header"
  1. hallucination - Detect hallucinations:
plugins:
  - type: "hallucination"
    configuration:
      enabled: true
      use_nli: false  # Optional: use NLI for detailed analysis
      hallucination_action: "header"  # "header", "body", or "none"
  1. router_replay - Record decisions for debugging:
plugins:
  - type: "router_replay"
    configuration:
      enabled: true
      max_records: 200  # Optional: max records in memory (default: 200)
      capture_request_body: false  # Optional: capture request payloads (default: false)
      capture_response_body: false  # Optional: capture response payloads (default: false)
      max_body_bytes: 4096  # Optional: max bytes to capture (default: 4096)

Validation Rules:

  • Plugin Type: Must be one of: semantic-cache, jailbreak, pii, system_prompt, header_mutation, hallucination, router_replay
  • enabled: Must be a boolean (required for most plugins)
  • threshold/similarity_threshold: Must be a float between 0.0 and 1.0
  • max_records/max_body_bytes: Must be a positive integer
  • ttl_seconds: Must be a non-negative integer
  • pii_types_allowed: Must be a list of strings (if provided)
  • system_prompt: Must be a string (if provided)
  • mode: Must be "replace" or "insert" (if provided)

CLI Commands:

# Initialize config with plugin examples
vllm-sr init

# Validate configuration (including plugins)
vllm-sr validate config.yaml

# Generate router config with plugins
vllm-sr config router --config config.yaml

File Descriptor Limits

The CLI automatically sets file descriptor limits to 65,536 for Envoy proxy. To customize:

export VLLM_SR_NOFILE_LIMIT=100000  # Optional (min: 8192)
vllm-sr serve

License

Apache 2.0

Metadata

Release files for vllm-sr 0.1.0b2.dev20260210023909

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for vllm-sr 0.1.0b2.dev20260210023909
File Size Uploaded Provenance Actions
vllm_sr-0.1.0b2.dev20260210023909.tar.gz 61.5 kB Without provenance Details for vllm_sr-0.1.0b2.dev20260210023909.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for vllm-sr 0.1.0b2.dev20260210023909
File Interpreter ABI Platform Actions
vllm_sr-0.1.0b2.dev20260210023909-py3-none-any.whl Python 3 none any Details for vllm_sr-0.1.0b2.dev20260210023909-py3-none-any.whl

Total release size: 129.4 kB

Release files / vllm_sr-0.1.0b2.dev20260210023909.tar.gz

Download URL vllm_sr-0.1.0b2.dev20260210023909.tar.gz
Size 61.5 kB
Tags Source
SHA-256 checksum
How to use checksums
5ad2bc1d1580e13a23054a1d653c49f047224e191ae62bac2b282c509d5f41a8
BLAKE2b-256 checksum
How to use checksums
a8c6177c8a258695a3396bea0dced56c2683f2c3784d23735dc66b2da5bfdc67
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.14

Release files / vllm_sr-0.1.0b2.dev20260210023909-py3-none-any.whl

Download URL vllm_sr-0.1.0b2.dev20260210023909-py3-none-any.whl
Size 67.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e16839233df021b0c76ebc92713c18efab7d7b5eae3da4a9cb7178f3d51de90c
BLAKE2b-256 checksum
How to use checksums
d7468fb59ceff554cd02ae9d8172e64e3157579ef0849cc9d18aa2240b58f05f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.14

Security for vllm-sr 0.1.0b2.dev20260210023909

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page