Кейсы

Node.js Fastify LLM API

Похожие кейсы:

ИИ
2026 год

Прокси-сервер для маршрутизации LLM-запросов

Разработка собственного прокси-сервера для маршрутизации запросов между LLM-провайдерами. Решение выступает единой точкой входа для всех ИИ-модулей, обеспечивает биллинг, кэширование, фолбэки между моделями и независимость от изменений политик отдельных провайдеров. Поддерживает Claude, GPT, YandexGPT, GigaChat.

Прокси-сервер построен на Node.js + Fastify с использованием PostgreSQL для учёта запросов и Redis для кэширования и rate limiting. Сервер реализует унифицированный REST API: клиентские модули отправляют запрос в едином формате, а прокси сам выбирает провайдера, форматирует запрос под его API и приводит ответ к общему виду.
Особое внимание уделено наблюдаемости: каждый запрос логируется с полным контекстом (промпт, ответ, модель, токены, стоимость, время отклика). Это даёт возможность анализировать качество и стоимость работы на уровне сценариев, моделей и отдельных клиентов.

Решить проблему vendor lock-in для ИИ-модулей: при работе напрямую с провайдером модуль становится уязвимым к изменению цен, политик, доступности сервиса в РФ. Дополнительно нужно было решить вопросы централизованного биллинга, лимитирования по клиентам и оптимизации расходов через кэширование типовых запросов.

Создана прослойка между ИИ-модулями и LLM-провайдерами с тремя ключевыми функциями: роутинг (выбор модели под задачу с учётом стоимости и качества), надёжность (фолбэк на резервную модель при недоступности основной), оптимизация (кэширование одинаковых запросов на основе хэша промпта).
Аутентификация реализована через API-ключи с привязкой к домену клиента. Биллинг ведётся по фактическому расходу токенов с маржой относительно себестоимости. Клиенты получают доступ к личному кабинету со статистикой использования, журналом запросов и управлением лимитами.
Архитектура спроектирована с расчётом на горизонтальное масштабирование: несколько экземпляров прокси за балансировщиком, общая БД и кэш. Это позволяет обслуживать большое количество клиентов с минимальной задержкой.

Основные возможности

  • Унифицированный REST API над разными LLM-провайдерами
  • Фолбэк при недоступности провайдера
  • Биллинг по токенам с учётом маржи
  • Личный кабинет с аналитикой использования
  • Защита от утечки ключей через привязку к домену
  • Автоматический роутинг запросов к оптимальной модели
  • Кэширование типовых запросов через хэш промпта
  • Гранулярные лимиты по клиентам и сценариям
  • Полное логирование запросов и ответов
  • Готовность к горизонтальному масштабированию