17 сентября 2026

red_mad_router: как устроен шлюз к языковым моделям

Мы запустили red_mad_router — единую точку доступа к большим языковым моделям. Изначально мы создавали его для наших внутренних клиентов, например, Билайна и ВкусВилла, которым нужен был доступ к моделям без VPN, оплата в рублях и понятный учёт расходов. Этой осенью мы расширили доступ к продукту и для внешних пользователей. Через один интерфейс приложение обращается к моделям разных провайдеров, от OpenAI, Gemini, Claude и xAI до китайских DeepSeek, Kimi и Qwen, а также к генераторам изображений и видео вроде Runway и VEO от Google. Всего в каталоге сейчас около 100 моделей, и популярных открытых, и проприетарных флагманских. Подобных решений, которые подходят для высоких нагрузок корпоративного сегмента, на российском рынке не так много. Мы расскажем, как обеспечиваем маршрутизацию к провайдерам моделей за счёт нашей архитектуры. Ниже — подробнее о том, как платформа устроена внутри, как работаем с данными и какие фичи отличают наш роутер от подобных ему платформ.

Архитектура

Платформу мы разделили на две плоскости:
  • Плоскость данных. Она выступает в качестве шлюза, и через неё идёт весь трафик к моделям. Шлюз авторизует запрос по API-ключу, проверяет бюджеты и частотные лимиты, выбирает провайдера и модель, считает стоимость и асинхронно фиксирует потребление.
  • Плоскость управления. В неё входят интерфейс и фоновый обработчик. Здесь мы заводим оргструктуру, задаём лимиты, проводим пополнения, формируем отчётность, а также выпускаем ключи.
Плоскости связаны только через общие хранилища, прямых вызовов между ними нет. Такое разделение мы сделали для того, чтобы была возможность обслуживать продуктовый трафик, даже если управляющая плоскость недоступна. С аналитическим контуром мы поступили похожим образом. Он не связан с тарификацией и влияет на работу с запросами.
01.png
Схема системы

Пользовательские запросы

Работа с запросами в платформе устроена стандартно. Клиентское приложение обращается к шлюзу с API-ключом, и запрос попадает на любую свободную реплику. Шлюз определяет права ключа и проверяет частотные лимиты по счётчикам в Valkey, общим для всех реплик. Решение о допуске — блокировки, срок ключа, бюджеты по всей иерархии, список разрешённых моделей — система принимает в памяти, без дополнительных обращений к хранилищам. Запрос уходит выбранному провайдеру; при отказе выполняется повтор, затем происходит переход на резервный доступ или альтернативную модель. Ответ возвращается клиенту, если необходимо — потоком. Покажем на цифрах текущий трафик, когда мы ещё не открыли личный кабинет для внешних пользователей:
  • среднее количество обработанных запросов за месяц — 2 млн;
  • суточный объём потребления токенов — более 10 млрд;
  • ежемесячный прирост трафика — 15–20%
Профиль потребления довольно однородный. Основная нагрузка приходится на кодинговые модели, то есть на задачи разработки. В топ-25 по обороту уверенно лидируют последний GPT, Opus и Claude Sonnet свежей версии. Заметнее всего при этом растёт оборот китайских провайдеров, в первую очередь DeepSeek, Kimi и GLM. Пользователи видят, какие высокие результаты они показывают на бенчмарках при существенно более низкой стоимости, поэтому мы активно расширяем предложение в эту сторону.
02.png
Список всех доступных моделей и их стоимость можно посмотреть на сайте

Данные и безопасность

Когда мы строили систему, мы столкнулись с тем, что работать с частью провайдеров напрямую из российского контура невозможно. Чтобы обойти это ограничение, в кластер мы включили внешние узлы в зарубежных облаках. На них работают прокси исходящего трафика, через которые шлюз выходит к нужному провайдеру. Весь остальной трафик идёт напрямую. Все данные мы храним на территории РФ. Путь замкнут внутри российского контура, а внешние провайдеры вынесены за прокси. Так мы решаем важную проблему. Благодаря такому подходу у пользователей есть возможность работать с моделям, недоступным в России, без средств обхода. Чтобы обеспечить безопасность, мы свели периметр к двум публичным точкам: защищённое соединение на балансировщике и служебный канал администрирования. Кластер находится в изолированной сети, а у узлов нет публичных адресов. При этом административный доступ к базам и оркестратору можно получить через узел доступа с многофакторной аутентификацией и записью сессий. С данными учётных записей мы работаем так же. API-ключи не хранятся в открытом виде, только в виде необратимого преобразования. Содержимое запросов и ответов система по умолчанию не сохраняет.

Guardrails

Вместе с роутером мы подключили Guardrails — набор комплексный фильтр, через который проходят все входящие запросы. Фильтр мы построили на комбинации лёгких NER-моделей и проверок регулярных выражений (RegExp) в сочетании с использованием малых локальных моделей, где это необходимо. Такая комбинация является легковесной и подходящей для большой потоковой нагрузки при сохранении высокой точности маскирования и фильтрации, в отличие классического использования больших LLM в роли подобных фильтров. Ключевых задач, стоящих перед Guardrails, всего три:
  • Анонимизация персональных данных. Модуль маскирует чувствительные данные до отправки провайдеру, заменяя их на плейсхоледры, когда модель возвращает ответ, происходит их обратная подстановка происходит на стороне платформы.
  • Модерация. Запрос с запрещённым содержимым (NSFW-контент) сразу блокируется и до провайдера не доходит и обеспечивает безопасность конечных пользователей, особенно, когда речь о корпоративных клиентах.
  • Работа с изображениями. Guardrails находит фрагменты персональных данных на картинке — например, паспорт на фото — и замыливает тот участок, где есть чувствительная информация.

Агенты

Многие пользователи уже привыкли к интерфейсу приложений вроде Claude Code или Codex и не хотят от них отказываться. Им удобнее работать через них, но при этом они часто сталкиваются с необходимостью использовать средства обхода. Отличительная особенность нашей платформы от других подобных ей — поддержка агентских приложений. Пользователь продолжает работать в оригинальном интерфейсе, используя наш API-ключ. Устроено это так: роутер работает по OpenAI-совместимому интерфейсу, поэтому подключается к кодинг-агентам подстановкой адреса и ключа. Агенты поддерживают работу только своих моделей, но зато пользователям больше не нужно прибегать к средствам обхода. С агентами связка работает неровно у большинства агрегаторов — тот же OpenRouter отрабатывает не все сценарии. Поддержка агентов у нас в приоритете: сейчас работает связка с Codex и Claude Code, дальше запустим в работу Gemini и остальные.

Тарификация

Стоимость обращения к модели складывается из количества затраченных токенов, и за подписку платить не нужно. Помимо них платформа считает:
  • кэш чтения и записи — кэширование снижает стоимость повторного контекста примерно в десять раз и особенно заметно в агентских сценариях, где один и тот же контекст уходит в модель многократно;
  • tool calling — встроенные инструменты провайдера тарифицируются отдельно от генерации.
На кэшировании остановимся отдельно. Часть агрегаторов делает ставку на низкую наценку в 10–15% и заявляет её как главное преимущество, но при этом не поддерживает кэш. Однако пользователи обычно не знают, что агентских сценариях на кэш может приходиться до 90% всего объёма токенов, а у самих провайдеров кэшированные токены тарифицируются в разы дешевле обычных. Клиент экономит на наценке и переплачивает на объёме. Мы выбрали другой подход и придерживаемся той же тарификации, которую выстроили сами провайдеры. Если провайдер поддерживает кэш, мы поддерживаем его на тех же условиях, добавляя только собственную наценку. За счёт этого клиент работает с унифицированным интерфейсом, а логика расчёта и подход к работе остаются такими же, как при прямом обращении к провайдеру.

Куда движемся дальше

Этой осенью мы планируем подключать к системы новых пользователей через личный кабинет. Планов у нас много, и прямо сейчас мы работаем над двумя приоритетными направлениями. Первое из них — агенты. Связка с Codex и Claude Code уже работает, на очереди стоят Gemini и остальные. Второе направление — расширение каталога провайдеров. Смотрим мы в первую очередь на китайских провайдеров, спрос на которые растёт быстрее всего.