Switchyard - открытый LLM-роутер от NVIDIA (проект NeMo): единая точка входа для всего LLM-трафика. Приложение шлет запросы в привычном формате (OpenAI Chat, Anthropic Messages или OpenAI Responses), а Switchyard транслирует между форматами и маршрутизирует запрос на нужную модель или провайдера - по стоимости, по качеству ответа или по вашим правилам. Один base_url на все модели: меняете маршрут в конфиге, а не в коде приложений.
Роутер невесомый - это Rust-прокси, сам инференс он не держит, а проксирует к бэкенду (OpenRouter, vLLM, NVIDIA NIM, Ollama, любой OpenAI-совместимый API). В покое занимает около 15 МиБ RAM. Умеет llm_classifier (дешевая модель на простые запросы, сильная на сложные), stage_router по сигналам диалога и A/B. В каждом ответе отдает стоимость и токены, наружу - метрики Prometheus на /metrics.
Карта собирает switchyard-server из канонического апстрима (crates.io) прямо на вашей VM, поднимает его как systemd-сервис на 127.0.0.1:4000, а Caddy выпускает Let's Encrypt и открывает HTTPS. Роутер стартует сразу и держит health - модель провайдера (ключ) вы подставляете сами (BYOM), это ваш аккаунт и ваши лимиты.
Что внутри
switchyard-server- сам роутер (Rust), собирается из crates.io на буте, слушает127.0.0.1:4000, запускается как systemd-сервисswitchyard.- Caddy - reverse-proxy и авто-TLS (Let's Encrypt), наружу только
80/443, роутер напрямую недоступен. routes.toml- дефолтный маршрутllm_classifier(weak=gpt-4o-mini, strong=gpt-4oчерез OpenRouter); правится под ваши модели.
Как начать
- Адрес формируется из IP сервера: замените точки на дефисы и добавьте
.fatmetal.net. Пример: IP45.15.159.10->https://45-15-159-10.fatmetal.net/. Проверка живости:https://<адрес>/healthотдает{"status":"ok"}. - Роутер стартует с плейсхолдер-ключом - чтобы он начал реально ходить к моделям, впишите ключ вашего провайдера в
/etc/switchyard/switchyard.env(по умолчаниюOPENROUTER_API_KEY) и выполнитеsystemctl restart switchyard. - Дальше приложение указывает
https://<адрес>какbase_url(совместим с OpenAI Chat и Anthropic Messages), модель -switchyard. Маршруты между моделями меняются в/etc/switchyard/routes.toml.
Свой домен
Направьте CNAME на magic-DNS адрес сервера, пропишите домен в /etc/switchyard-mp/params.env (DOMAIN=ваш-домен) и перезапустите install.sh - выпустится Let's Encrypt. Полная памятка и адрес - на сервере: cat /root/switchyard-credentials.txt.
Требования
Ubuntu 24.04, открытые порты 80/443. Первый буст собирает роутер из исходников (Rust-тулчейн ставится и удаляется после сборки) - это 6-8 минут и требует тарифа от CPU2-RAM4-DISK30. Сам рантайм невесомый (15 МиБ RAM). Важно: Switchyard - экспериментальный проект NVIDIA (pre-alpha, v0.2.0), не для критичного продакшена. И egress: из РФ-IP публичные OpenRouter/OpenAI отвечают 403 - для реального инференса нужен провайдер, доступный с этой VM (свой egress вне РФ), либо локальная модель (vLLM/Ollama) как бэкенд.