Направте OpenAI Codex на проксі LiteLLM для маршрутизованих моделей та бюджетів
Направте OpenAI Codex на одну URL-адресу проксі LiteLLM, щоб отримати доступ до багатьох моделей, централізовані журнали витрат та віртуальні ключі для кожного розробника з власними бюджетами.
Цей посібник показує, як налаштувати OpenAI Codex з використанням проксі LiteLLM, який ви запускаєте (або який вже хоститься у вашій команди). Codex читає одну базову URL з конфігурації, тож проксі дозволяє здійснювати маршрутизацію до різних моделей, об’єднувати журнали та витрати, створювати ключі для кожного розробника з бюджетами, а також мати один ключ від постачальника моделей на сервері.
Вимоги
Docker (або вже існуючий кінцевий пункт LiteLLM), CLI чи десктопний додаток Codex, а також доступ до принаймні одного постачальника моделей.
1. Встановіть OpenAI Codex
Дотримуйтесь актуальної інструкції з встановлення для CLI чи десктопного додатку. Переконайтеся, що codex працює локально, перш ніж під’єднувати проксі.
2. Налаштуйте LiteLLM для маршрутизації моделей
config.yaml
npm install -g @openai/codex
model_list:
# `codex -m <id>` works with any of them.
- model_name: gpt-5.6-terra
litellm_params:
model: openai/gpt-5.6-terra
api_key: os.environ/OPENAI_API_KEY
- model_name: gpt-5.6-luna
litellm_params:
model: openai/gpt-5.6-luna
api_key: os.environ/OPENAI_API_KEY
- model_name: gpt-5.6-sol
litellm_params:
model: openai/gpt-5.6-sol
api_key: os.environ/OPENAI_API_KEY
# Anything from another provider goes in the same list.
- model_name: claude-sonnet-5
litellm_params:
model: anthropic/claude-sonnet-5
api_key: os.environ/ANTHROPIC_API_KEY
# Catch-all, so `codex -m <anything>` reaches OpenAI without editing
# this file. Delete this entry to restrict a fleet to the list above.
- model_name: "*"
litellm_params:
model: openai/*
api_key: os.environ/OPENAI_API_KEY
litellm_settings:
drop_params: true
general_settings:
master_key: os.environ/LITELLM_MASTER_KEY
# Coding turns stream for a long time. Do not cut them off.
request_timeout: 600
name: litellm-coding-agents
services:
litellm:
image: ghcr.io/berriai/litellm:main-stable
restart: unless-stopped
command: ["--config", "/app/config.yaml", "--port", "4000"]
ports:
- "4000:4000"
volumes:
- ./config.yaml:/app/config.yaml:ro
env_file:
- .env
environment:
DATABASE_URL: postgresql://litellm:litellm@postgres:5432/litellm
STORE_MODEL_IN_DB: "True"
depends_on:
postgres:
condition: service_healthy
healthcheck:
test: ["CMD-SHELL", "python -c \"import urllib.request,sys; sys.exit(0 if urllib.request.urlopen('http://localhost:4000/health/liveliness').status==200 else 1)\""]
interval: 10s
timeout: 5s
retries: 12
start_period: 30s
postgres:
image: postgres:16-alpine
restart: unless-stopped
# Deliberately not published to the host. Nothing outside this
# network needs it, and 5432 is usually already taken.
environment:
POSTGRES_USER: litellm
POSTGRES_PASSWORD: litellm
POSTGRES_DB: litellm
volumes:
- litellm-pgdata:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U litellm -d litellm"]
interval: 5s
timeout: 5s
retries: 20
volumes:
name: litellm-pgdata
OPENAI_API_KEY=... ANTHROPIC_API_KEY=... LITELLM_MASTER_KEY=sk-1234
docker compose up -d
curl -s http://localhost:4000/health/liveliness
curl -s http://localhost:4000/v1/models -H "Authorization: Bearer sk-1234" | head -c 400
lsof -nP -iTCP:4000 -sTCP:LISTEN
cp ~/.codex/config.toml ~/.codex/config.toml.bak 2>/dev/null || true
model = "gpt-5.6-terra" model_provider = "litellm" model_reasoning_effort = "medium" [model_providers.litellm] name = "LiteLLM Gateway" base_url = "http://localhost:4000/v1" # More on setting up LITELLM_API_KEY towards the end env_key = "LITELLM_API_KEY" # Codex talks the Responses API. wire_api = "responses" # A coding turn can stream for long time, hence the setting below stream_idle_timeout_ms = 7200000 stream_max_retries = 5 request_max_retries = 4 # Codex cli complains if not in a trusted folder [projects."/path/to/your/project"] trust_level = "trusted"
codex exec "reply with the word CONNECTED and nothing else"
launchctl setenv LITELLM_API_KEY "sk-1234"
export LITELLM_API_KEY=""
codex -m gpt-5.6-luna
# Optional profiles # Saved model plus reasoning-effort pairs. `codex --profile deep`. [profiles.fast] model = "gpt-5.6-luna" model_reasoning_effort = "low" [profiles.deep] model = "gpt-5.6-sol" model_reasoning_effort = "high"
codex --profile deep
Пов’язайте псевдоніми моделей, придатні для карти, із відповідними розгортаннями. Зберігайте конфіденційну інформацію у змінних середовища, а не у YAML-файлах, які зберігаються в Git.
3. Запустіть проксі LiteLLM
docker-compose.yml
Запустіть проксі та перевірте стан кінцевої точки /models.
4. Налаштуйте Codex для використання LiteLLM
~/.codex/config.toml
Встановіть базову URL вашого проксі та використовуйте віртуальний ключ, виданий LiteLLM, а не сирі ключі постачальника.
5. Запустіть Codex
Виконайте просте завдання з програмування та переконайтеся, що у журналах LiteLLM відображається використовувана модель та токени.
6. Десктопний додаток
Налаштуйте клієнта на робочому столі на ту саму базову URL/ключ, щоб CLI та UI ділилися бюджетом.
Розширені опції
Віртуальні ключі
Ключі для кожного розробника зі списками дозволених моделей та лімітами витрат запобігають тому, щоб одна неконтрольована сесія спалювала бюджет організації.
Використання різних моделей
Змініть псевдонім у налаштуваннях Codex або для кожного запиту; LiteLLM бере на себе вирішення проблем, пов’язаних із різницею моделей.
Додаткові ресурси
Зберігайте фіксовані версії LiteLLM та Codex; автентифікація проксі та зміни псевдонімів моделей є поширеними проблемами після тишливого місяця.
Примітка щодо безпеки: ставтеся до проксі як до сервісу у продакшені — використовуйте TLS, списки дозволених мереж та ротацію ключів, оскільки він концентрує облікові дані постачальника та бачить кожен запит.
Примітка щодо безпеки: ставтеся до проксі як до сервісу у продакшені — використовуйте TLS, списки дозволених мереж та ротацію ключів, оскільки він концентрує облікові дані постачальника та бачить кожен запит.
Примітка щодо безпеки: ставіться до проксі як до сервісу у продакшені — використовуйте TLS, списки дозволених мереж та заміну ключів — оскільки він концентрує облікові дані постачальника та бачить кожен запит.
Примітка щодо безпеки: ставіться до проксі як до сервісу у продакшені — використовуйте TLS, списки дозволених мереж та заміну ключів — оскільки він концентрує облікові дані постачальника та бачить кожен запит.
Примітка щодо безпеки: ставіться до проксі як до сервісу у продакшені — використовуйте TLS, списки дозволених мереж та заміну ключів — оскільки він концентрує облікові дані постачальника та бачить кожен запит.
Примітка щодо безпеки: ставіться до проксі як до сервісу у продакшені — використовуйте TLS, списки дозволених мереж та заміну ключів — оскільки він концентрує облікові дані постачальника та бачить кожен запит.
Примітка щодо безпеки: ставіться до проксі як до сервісу у продакшені — використовуйте TLS, списки дозволених мереж та заміну ключів — оскільки він концентрує облікові дані постачальника та бачить кожен запит.
Примітка щодо безпеки: ставіться до проксі як до сервісу у продакшені — використовуйте TLS, списки дозволених мереж та заміну ключів — оскільки він концентрує облікові дані постачальника та бачить кожен запит.
Примітка щодо безпеки: ставіться до проксі як до сервісу у продакшені — використовуйте TLS, списки дозволених мереж та заміну ключів — оскільки він концентрує облікові дані постачальника та бачить кожен запит.
Примітка щодо безпеки: ставіться до проксі як до сервісу у продакшені — використовуйте TLS, списки дозволених мереж та заміну ключів — оскільки він концентрує облікові дані постачальника та бачить кожен запит.
Примітка щодо безпеки: ставіться до проксі як до сервісу у продакшені — використовуйте TLS, списки дозволених мереж та заміну ключів — оскільки він концентрує облікові дані постачальника та бачить кожен запит.
Примітка щодо безпеки: ставіться до проксі як до сервісу у продакшені — використовуйте TLS, списки дозволених мереж та заміну ключів — оскільки він концентрує облікові дані постачальника та бачить кожен запит.
Примітка щодо безпеки: ставіться до проксі як до сервісу у продакшені — використовуйте TLS, списки дозволених мереж та ротацію ключів, оскільки він концентрує облікові дані постачальника та бачить кожен запит.
Примітка щодо безпеки: ставіться до проксі як до сервісу у продакшені — використовуйте TLS, списки дозволених мереж та ротацію ключів, оскільки він концентрує облікові дані постачальника та бачить кожен запит.