AI gateway LLM proxy Архитектура API operations Мультипровайдер

LLM-прокси или AI-шлюз: какая архитектура вам нужна?

Сравнение обратного LLM-прокси и AI-шлюза: маршрутизация, аутентификация, биллинг, failover, наблюдаемость и подходящие сценарии.

AveMujica API 8 мин чтения

Обратный LLM-прокси пересылает OpenAI-образные запросы в один или несколько upstream API моделей с минимальным набором политик, тогда как AI-шлюз служит control plane и добавляет поверх транспорта аутентификацию, авторизацию, маршрутизацию, квоты, учёт использования, failover и операционную видимость. Если нужно лишь скрыть base URL, прокси может быть достаточно. Если один путь трафика разделяют несколько команд, ключей, провайдеров или бюджетов, вам нужны обязанности шлюза независимо от названия компонента.

Эта страница — руководство по выбору: какие задачи принадлежат промежуточному слою, что ломается при их отсутствии и как принять решение без рейтинга победителей. Практика самостоятельного размещения продолжается в статье о self-hosted LLM API gateway. Переносы SDK провайдеров остаются в статьях об OpenAI SDK для Claude и Gemini.

Начните с задач, которые действительно выполняет каждый слой

Команды часто используют слова «прокси» и «шлюз» взаимозаменяемо, потому что оба слоя находятся между клиентами и провайдерами. В production важно, какие обязанности принадлежат именно этому переходу.

Обратный LLM-прокси

Типичные задачи прокси:

  • завершать TLS и пересылать HTTP;
  • переписывать host-заголовки или базовые пути;
  • подставлять или заменять upstream API key;
  • при необходимости выполнять простые повторы после ошибок соединения;
  • при необходимости вести базовые журналы доступа.

Прокси оптимизирован для простоты транспорта. Он похож на nginx, Envoy, Caddy или небольшой Go-сервис, отправляющий запросы в /v1/chat/completions одного провайдера.

AI-шлюз

Типичные задачи шлюза:

  • выпускать и проверять API-ключи арендаторов или пользователей;
  • отображать логические имена моделей на каналы провайдеров;
  • обеспечивать rate limits, бюджеты и списки разрешённых моделей;
  • при необходимости переводить специфичные для провайдеров payload, например вход OpenAI tools в upstream Claude Messages;
  • записывать использование, оценки стоимости и audit trail;
  • выполнять маршрутизацию и failover с учётом здоровья;
  • предоставлять операторские UI для каналов, логов и ценового контекста.

Шлюз оптимизирован для управляемого многопользовательского или многокомандного доступа к моделям. Самостоятельно размещаемый Go-шлюз этого репозитория объединяет OpenAI-совместимый ingress с настройкой каналов, управлением пользователями и учётом использования, а не работает как простая труба.

Сравнение бок о бок

АспектОбратный LLM-проксиAI-шлюз
Основная цельПересылать запросыУправлять доступом к моделям
Модель аутентификацииЧасто один общий upstream-ключScoped-ключи, группы, элементы RBAC
ПровайдерыОбычно один, иногда статический набор upstreamПолноценная многоканальная маршрутизация
Имена моделейPass-throughAlias и каталог
Биллинг / квотыВнешние или отсутствуютВстроенные журналы использования и бюджеты
FailoverРучной или грубый retryРезервные каналы по политике
НаблюдаемостьЖурналы доступаИстория запросов, здоровье каналов, дашборды
Перевод payloadРедкоОбычно (формы OpenAI ↔ Claude / Gemini)
Лучший сценарийОдно приложение, один провайдер, пограничный hopПлатформенная команда обслуживает много приложений

Ни одна колонка не «правильнее». Бесконтрольно растущий прокси часто превращается в случайный шлюз без тестов и интерфейса, которыми обладает намеренно спроектированный шлюз.

Когда обратный прокси — правильный ответ

Выберите тонкий прокси, когда верно большинство условий:

  • одна команда приложения владеет и клиентом, и учётными данными;
  • один основной провайдер обслуживает почти весь трафик;
  • внутри прокси не нужны бюджеты по функциям;
  • failover реализован в приложении или простой допустим;
  • требования аудита закрываются существующим APM и счетами провайдера;
  • прокси меняют те же люди, которые выпускают приложение.

Примеры:

  • staging-среда, переписывающая api.openai.com на региональное зеркало;
  • sidecar, подставляющий секреты, чтобы контейнеры не хранили сырые ключи провайдера;
  • временный переход при смене DNS или сертификатов.

В этих случаях функции шлюза добавят операционную поверхность, не улучшив качество решения.

Когда нужен AI-шлюз

Несколько потребителей используют один путь

Внутренний чат, пакетная оценка, агенты поддержки и продуктовые функции не должны встраивать один и тот же неограниченный ключ провайдера. Scoped-ключи, role-based access control и групповые политики уменьшают радиус поражения.

Несколько провайдеров входят в продуктовую стратегию

Если Claude, Gemini и OpenAI — реальные варианты, каждый клиент не должен отдельно реализовывать SDK провайдеров и ad hoc failover. OpenAI-совместимый API-шлюз сохраняет один контракт клиента, а каналы содержат разнообразие upstream. Это особенно важно, когда прямые режимы «совместимости с OpenAI» у провайдеров ориентированы на оценку — как Anthropic указывает для своего пути OpenAI SDK, — а production требует нативного upstream-отображения под одним ingress.

Стоимость нужно атрибутировать и ограничивать

Счета провайдеров приходят слишком поздно для управления на уровне функций. Шлюзы с использованием по запросам, ценовым контекстом и кошельками или квотами позволяют ответить «кто, сколько и на какую модель потратил» без археологии в таблицах. Дополните это журналами использования LLM и отслеживанием затрат.

Надёжность — SLA платформы

Если менеджеры продукта ожидают, что чат останется доступен при сбое провайдера A, общая политика failover должна находиться в одном слое. См. стратегию failover LLM API. Приложения всё равно отвечают за видимую пользователю деградацию, когда здоровых каналов не осталось.

Безопасность и tenancy имеют значение

Агенты с tools, данные клиентов в промптах и multi-tenant SaaS повышают цену общего мастер-ключа. Области ключей шлюза, списки разрешённых моделей и audit logs отделяют контролируемую платформу от бесконтрольного reverse proxy.

Схемы архитектуры

Путь прокси

App  --Bearer provider key or injected secret-->  Reverse proxy  -->  Single provider API
                                      \
                                       access log (optional)

Путь шлюза

Apps / agents / eval jobs
        |  HTTPS + gateway key
        v
 AI gateway
   - authN/authZ, quotas, aliases
   - OpenAI-compatible /v1/*
   - usage logs + operator UI
        |
        +--> Channel: OpenAI
        +--> Channel: Anthropic (native Messages)
        +--> Channel: Gemini
        +--> Channel: Azure / Bedrock / others

Клиенты продолжают использовать OpenAI SDK. Разнообразие upstream становится конфигурацией. Поэтому программы переносимого tool calling и мультипровайдерной оценки обычно выращивают шлюз, а не ещё три прокси.

Чек-лист функций для решения

Ответьте письменно на эти десять вопросов. Если более половины ответов — «не определено» или «каждое приложение делает по-своему», вам уже нужна семантика шлюза, даже если трафик пока идёт к одному провайдеру.

  1. Identity — вызывающие стороны аутентифицируются как сервисы, пользователи или арендаторы?
  2. Authorization — может ли любой вызывающий использовать любую модель?
  3. Budget — есть ли жёсткая остановка до того, как runaway-агент исчерпает средства?
  4. Routing — скрывают ли логические имена моделей переименования провайдера?
  5. Translation — нужно ли нормализовать tool calls или streaming между провайдерами?
  6. Failover — кто владеет выбором резервной модели?
  7. Audit — можно ли восстановить тарифицируемый запрос после инцидента?
  8. Operator UX — нужен ли инженерам вне on-call UI каналов и логов?
  9. Data boundaries — должен ли некоторый трафик оставаться у определённых провайдеров или в регионах?
  10. Change velocity — как часто меняются ID моделей и цены?

Распространённые ошибки

Ловушка «умного прокси»

Прокси накапливает одноразовые Lua-скрипты, нестандартные заголовки и недокументированные правила retry. Его понимает один инженер. Когда провайдер меняет формат streaming-ошибок, ломаются все клиенты, а логов недостаточно. Если эти правила нужны, перенесите их в тестируемый шлюз с явной конфигурацией.

Два control plane

Некоторые организации запускают прокси для «простых» приложений и шлюз для «платформенных». Появляются две системы ключей и два формата логов. Предпочитайте один ingress-контракт, даже если расширенные политики отключены для простых tenants.

Gatewaying на стороне клиента

Каждый микросервис реализует собственную абстракцию провайдеров, бюджеты и retries. Это распределённый шлюз без общей видимости. Централизуйте слой политик или примите повторяющиеся инциденты.

Операции по счёту

Если финансы впервые видят расходы на модели в ежемесячном счёте, шлюзового учёта не было. Даже небольшой self-hosted шлюз с логами по ключам лучше последующей очистки CSV.

Использование слоёв совместимости провайдеров как платформы

Направление каждого микросервиса на OpenAI-совместимый base URL Anthropic или Google может выглядеть как мультипровайдерная стратегия. Обычно это пять копий оценочной проводки: без общих квот, единых alias и с разными молча отброшенными полями у каждого вендора. Endpoint совместимости полезны, но не заменяют control plane.

Как AveMujica API относится к стороне шлюза

AveMujica API ориентирован на обязанности шлюза: OpenAI-совместимые endpoint /v1/chat/completions и /v1/responses, каналы провайдеров, каталог моделей, историю использования и обзорный дашборд. Перед ним можно поставить обычный reverse proxy для TLS или IP allowlist; эти сетевые задачи дополняют AI control plane, а не заменяют его.

После выбора шлюза используйте каталог моделей, конфигурацию каналов и представления истории использования вашего deployment. Для внешних участников подойдут эквивалентные публичные страницы моделей и цен. Не помещайте глубокие ссылки аутентифицированной консоли в архитектурные документы для неоператоров.

Руководство по выбору

Ваша ситуацияПредпочтительно
Одно приложение, один провайдер, временный пограничный hopReverse proxy
Только подстановка секретаReverse proxy или sidecar
Много приложений, одна платформенная командаAI-шлюз
Мультипровайдерная маршрутизация и aliasAI-шлюз
Бюджеты и аудит по командамAI-шлюз
Тяжёлые агенты с tools и общей политикойAI-шлюз
Не уверены, но ожидаете роста агентовAI-шлюз, начните узко

Если сомнения остаются, сначала реализуйте шлюз с одним провайдером и одной командой. Маршрутизация может оставаться простой, а ключи, логи и квоты уже окажутся в правильном слое.

Официальные и проектные источники

Последняя проверка: 2026-07-15.

Частые вопросы

AI-шлюз — это просто маркетинговое название reverse proxy?

Нет. Маркетинг иногда размывает термины, но операционная разница реальна: шлюзы владеют identity, политиками, учётом и многоканальной маршрутизацией; прокси в основном пересылают байты и иногда подставляют учётные данные.

Можно ли поставить reverse proxy перед AI-шлюзом?

Да. Сетевые прокси обрабатывают TLS, WAF или IP-ограничения. AI-шлюз за этим краем по-прежнему владеет политикой моделей и учётом использования.

Нужен ли шлюз, если используется только OpenAI?

Не всегда. Одной команде с сильной аутентификацией на уровне приложения может быть достаточно текущей схемы. Шлюз становится полезен, когда несколько продуктов делят расходы, нужен более строгий scope ключей или скоро появятся дополнительные провайдеры.

Какой ранний сигнал показывает, что прокси уже недостаточно?

Обычно это либо несколько команд, использующих один ключ провайдера, либо запрос финансов на атрибуцию AI-затрат по функциям, на который журналы доступа не отвечают.

Где должен жить failover: в приложении или шлюзе?

Общая политика failover принадлежит шлюзу, чтобы все клиенты наследовали одинаковые классы retry и резервные модели. Приложения всё равно обрабатывают видимую пользователю деградацию, когда здоровых каналов нет.

Напишите таблицу ответственности

Задокументируйте identity, бюджет, маршрутизацию, логи и failover для текущего AI-слоя. Если более половины строк не определены или расходятся между приложениями, поднимите конфигурацию каналов шлюза и перенесите один реальный workflow на scoped-ключи до добавления новых провайдеров.