pimenov.ai

База знаний

LiteLLM — модели по подписке вместо API-ключей для ваших агентов

LiteLLM как локальный шлюз для агентов: подписки ChatGPT, SuperGrok и Copilot вместо API-ключей, виртуальные ключи и раздача endpoint'ов.

Опубликовано Обновлено

LiteLLM — open-source шлюз между агентами и языковыми моделями. В этом руководстве показано, как подключить подписки ChatGPT и GitHub Copilot через OAuth, запустить OpenAI-совместимый прокси и направить через него клиента или агента.

📌
Материал актуализирован по официальной документации и репозиторию LiteLLM 8 сентября 2026 года. Собственный запуск автором не выполнялся: команды и конфигурации сверены с первоисточниками, но не проверены вживую. Подписочные провайдеры используют бэкенды официальных приложений, поэтому их поведение может меняться.

Как устроен подписочный доступ

LiteLLM Proxy принимает запросы в формате OpenAI API и передаёт их выбранному провайдеру. Клиенту достаточно знать адрес шлюза, ключ доступа и опубликованное в конфигурации имя модели.

Агент или скрипт
      │  OpenAI-совместимый запрос
      ▼
LiteLLM Proxy :4000
      │  локально сохранённые OAuth-данные
      ▼
ChatGPT или GitHub Copilot

При первом обращении к подключённому маршруту LiteLLM запускает OAuth device flow: выводит код и адрес страницы, где нужно войти в аккаунт и подтвердить доступ. Полученные данные сохраняются локально для последующих запросов.

Доступ и ограничения зависят от аккаунта и подписки соответствующей платформы. Для этих маршрутов LiteLLM получает авторизационные данные через OAuth, а отдельный API-ключ провайдера в конфигурации не задаётся.

Возможности LiteLLM помимо подписок

LiteLLM можно использовать как единый шлюз и для обычных API-подключений. Среди основных возможностей:

  • единый OpenAI-совместимый интерфейс для разных провайдеров;
  • маршрутизация запросов и балансировка;
  • резервные модели при сбоях;
  • виртуальные ключи с ограничением доступных моделей;
  • бюджеты и ограничения частоты запросов;
  • учёт расходов по ключам, пользователям и командам;
  • кэширование и проверки содержимого.

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

Какие подписки подтверждены документацией

ПодпискаМаршрут LiteLLMАвторизацияПодтверждённое состояние
ChatGPT Pro/Maxchatgpt/OAuth device flowОписана в официальной документации; поддерживает /responses и /chat/completions с преобразованием в Responses для поддерживаемых моделей
GitHub Copilotgithub_copilot/OAuth device flowОписана в официальной документации; поддерживает Chat Completions, Responses для Codex-моделей и векторные представления (embeddings)
SuperGrok / X Premium+xai_oauth/В задаче репозитория (issue) предложен OAuth с PKCE через litellm xai-oauth loginОтдельная страница документации не подтверждает маршрут; проверяйте его в установленной версии
⚖️
Для xai_oauth/ единственный переданный источник — задача (issue) официального репозитория с предложением добавить провайдер. Она описывает варианты маршрута, моделей и авторизации, но не заменяет отдельную страницу документации. Используйте этот маршрут как экспериментальный: сначала проверьте наличие команды и модели в своей версии LiteLLM, затем выполните один ручной запрос.

Доступ к подписке Claude через самостоятельный провайдер в актуальном наборе источников не подтверждён, поэтому это руководство не предлагает конфигурацию Claude Pro или Max.

Установка и запуск прокси

Установите LiteLLM с компонентами прокси:

uv tool install 'litellm[proxy]'

Альтернативный вариант:

pip install 'litellm[proxy]'

На 8 сентября 2026 года последним стабильным выпуском в официальном списке релизов указан LiteLLM v1.100.0. Выпуск v1.101.0-rc.1 в том же списке обозначен как предварительный.

Если поведение провайдера отличается от руководства, сначала проверьте установленную версию:

litellm --version

Создайте config.yaml. В базовую конфигурацию лучше включить только провайдеры с отдельной официальной документацией:

model_list:
  - model_name: chatgpt-sub # Public name used by clients
    model_info:
      mode: responses # Native API surface for ChatGPT subscription models
    litellm_params:
      model: chatgpt/gpt-5.4

  - model_name: copilot-sub # Chat Completions model
    litellm_params:
      model: github_copilot/gpt-5.2

  - model_name: copilot-codex # Public name for a Codex model
    model_info:
      mode: responses # Responses API is required for GPT Codex models
    litellm_params:
      model: github_copilot/gpt-5.1-codex

Имена справа относятся к каталогам провайдеров и могут меняться. Сверяйте их с актуальной страницей провайдера и доступными именами в /v1/models установленной версии.

Запустите прокси:

litellm --config config.yaml --port 4000

При первом запросе к chatgpt/ или github_copilot/ LiteLLM выведет код и ссылку. Откройте ссылку, войдите в нужный аккаунт и подтвердите код. Учётные данные сохранятся локально для повторного использования.

Для экспериментального маршрута xAI сначала проверьте наличие команды:

litellm xai-oauth login

В задаче репозитория #29864 как предлагаемые имена перечислены xai_oauth/grok-4, xai_oauth/grok-4.1 и xai_oauth/grok-fast. Не добавляйте их в рабочую конфигурацию, пока установленная версия не подтвердит поддержку маршрута и авторизации.

Подключение агентов к прокси

OpenAI-совместимый клиент

Для клиента, который позволяет переопределить базовый URL, укажите адрес LiteLLM, ключ и имя из model_name:

OPENAI_BASE_URL=http://127.0.0.1:4000/v1
OPENAI_API_KEY='REPLACE_WITH_LITELLM_KEY'
OPENAI_MODEL=chatgpt-sub

Название переменной модели зависит от конкретного клиента. Значение должно совпадать с публичным model_name в config.yaml.

Codex CLI

Если установленная версия Codex CLI поддерживает конфигурацию OpenAI-совместимого провайдера, можно описать его так:

model = "chatgpt-sub"
model_provider = "litellm"

[model_providers.litellm]
name = "litellm"
base_url = "http://127.0.0.1:4000/v1"
wire_api = "responses"

Для ChatGPT-подписки Responses API является нативным интерфейсом. Запросы к /chat/completions LiteLLM преобразует в Responses для поддерживаемых моделей.

Виртуальные ключи для разных агентов

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

  • PostgreSQL;
  • переменную DATABASE_URL;
  • мастер-ключ прокси, начинающийся с sk-;
  • создание ключей через /key/generate или интерфейс администратора.

Пример переменных окружения:

export DATABASE_URL='postgresql://USER:PASSWORD@HOST:5432/DATABASE'
export LITELLM_MASTER_KEY='sk-replace-with-a-strong-secret'

Пример генерации ключа, ограниченного двумя моделями:

curl http://127.0.0.1:4000/key/generate -H "Authorization: Bearer $LITELLM_MASTER_KEY" -H "Content-Type: application/json" -d '{"models":["chatgpt-sub","copilot-sub"]}'

Ответ содержит новый ключ sk-.... Его можно выдать отдельному агенту вместо мастер-ключа.

⚠️
Не передавайте мастер-ключ агентам и не сохраняйте реальные OAuth-файлы, пароли или ключи в репозитории. Ограничивайте виртуальный ключ списком моделей и необходимыми маршрутами.

LiteLLM учитывает расход отдельно для ключа, а при наличии user_id или team_id также для пользователя или команды. Данные по ключу доступны через /key/info.

Полезные сценарии

Агент на подписке ChatGPT

Задача: направить OpenAI-совместимого агента в уже оплаченный ChatGPT Pro или Max.

Условия: LiteLLM установлен, в конфигурации есть модель с маршрутом chatgpt/, пользователь может пройти OAuth device flow.

Действия: запустите прокси, выполните первый запрос, подтвердите вход по показанному коду и укажите агенту адрес http://127.0.0.1:4000/v1.

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

Ограничение: бэкенд ChatGPT отклоняет поля max_tokens, max_output_tokens, max_completion_tokens и metadata. LiteLLM удаляет их для этого провайдера. Клиент, который зависит от точного управления лимитом ответа или метаданными, может вести себя иначе.

ChatGPT и Copilot за одним адресом

Задача: дать агентам разные подписочные модели без отдельных интеграций.

Условия: в config.yaml добавлены, например, chatgpt-sub и copilot-sub.

Действия: направьте клиентов на один URL и выбирайте провайдера именем модели в запросе.

Наблюдаемый результат: /v1/models показывает оба публичных имени, а запросы проходят через соответствующий маршрут.

Ограничение: для GPT Codex-моделей GitHub Copilot официальная документация указывает только Responses API. Для обычных chat-моделей доступен /chat/completions.

Раздельные лимиты для нескольких агентов

Задача: определить, какой агент расходует ресурсы, и ограничить доступ к моделям.

Условия: подключена PostgreSQL, настроены DATABASE_URL и мастер-ключ.

Действия: создайте для каждого агента отдельный виртуальный ключ, передав в /key/generate разрешённые модели и при необходимости идентификатор пользователя или команды.

Наблюдаемый результат: /key/info, /user/info или /team/info показывает накопленный расход соответствующего субъекта.

Ограничение: права ключа зависят от его собственных параметров, команды и владельца. Администраторскому ключу при создании нужно явно передавать user_id, если новый ключ должен наследовать ограничения пользователя.

Проверка результата

Сначала убедитесь, что прокси публикует модели из конфигурации:

curl http://127.0.0.1:4000/v1/models -H "Authorization: Bearer REPLACE_WITH_LITELLM_KEY"

Затем отправьте минимальный запрос к ChatGPT-подписке:

curl http://127.0.0.1:4000/v1/responses -H "Content-Type: application/json" -H "Authorization: Bearer REPLACE_WITH_LITELLM_KEY" -d '{"model":"chatgpt-sub","input":"Reply with OK only."}'

Для обычной Copilot chat-модели используйте Chat Completions:

curl http://127.0.0.1:4000/v1/chat/completions -H "Content-Type: application/json" -H "Authorization: Bearer REPLACE_WITH_LITELLM_KEY" -d '{"model":"copilot-sub","messages":[{"role":"user","content":"Reply with OK only."}]}'

Связка работает, если:

  1. /v1/models возвращает публичные имена из config.yaml.
  2. Первый запрос запускает авторизацию, а после подтверждения возвращает ответ модели.
  3. Повторный запрос использует сохранённые локальные данные без нового входа.
  4. В журнале LiteLLM видны выбранная модель и обработанный запрос.

Ограничения и риски

  • Ограничения подписки сохраняются. Несколько агентов, работающих через один аккаунт, зависят от ограничений этого аккаунта.
  • Провайдеры используют бэкенды официальных приложений. Изменение авторизации или формата запросов может временно нарушить работу маршрута.
  • ChatGPT-провайдер удаляет поля ограничения токенов и metadata, поскольку подписочный бэкенд их не принимает.
  • Разные модели поддерживают разные API. Для Codex-моделей GitHub Copilot нужен Responses API; это следует учитывать при настройке клиента.
  • Наличие модели в каталоге не гарантирует поддержку вызова инструментов (tool calling). Для агента с инструментами проверяйте эту возможность отдельным тестом.
  • OAuth-файлы дают доступ к аккаунту. Защитите каталог токенов правами файловой системы и не копируйте его в общие хранилища.
  • Для xai_oauth/ доступный источник описывает предложение добавить провайдера в репозитории, но не заменяет отдельную страницу документации. Проверяйте команду, модель и один запрос в своей версии.

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

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

Следующий шаг

Если нужно направить запросы через несколько аккаунтов ChatGPT/Codex, продолжите руководством codex-lb — балансировщик нескольких ChatGPT/Codex-подписок.

Связанные материалы

Если захотите обсудить, как это применить у себя или в команде — пишите в Telegram @pimenov