Использование API-посредника в Codex

Как настроить своего провайдера моделей через ~/.codex/config.toml.

2 мин чтения

Codex CLI при запуске читает ~/.codex/config.toml. Настроив своего «провайдера моделей (model provider)», можно подключить Codex к API-посреднику, совместимому с интерфейсом OpenAI.

Что нужно подготовить

Получите у платформы API, которой вы пользуетесь, следующие данные:

  • Адрес API (Base URL): корневой адрес интерфейса, который предоставляет платформа, обычно заканчивается на /v1
  • Ключ API (Key): токен для аутентификации
  • Название модели: идентификатор модели, которую платформа поддерживает и которую вы собираетесь использовать

Настройка config.toml

Отредактируйте ~/.codex/config.toml, добавьте своего провайдера и сделайте его провайдером по умолчанию:

model = "your-model-name"        # замените на название модели, которую поддерживает платформа
model_provider = "thirdparty"    # свой идентификатор провайдера, любой на ваш выбор (не используйте openai/ollama/lmstudio)

[model_providers.thirdparty]
name = "Third-party API"
base_url = "https://example.com/v1"   # замените на адрес API, который предоставляет платформа
env_key = "THIRDPARTY_API_KEY"        # название переменной окружения, из которой читается ключ
wire_api = "chat"                      # сторонние совместимые эндпоинты обычно используют chat

В env_key указывается «название переменной окружения, в которой хранится ключ», а не сам ключ. Экспортируйте эту переменную в терминале:

export THIRDPARTY_API_KEY="your-key"

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

  • Ключ не проходит проверку: если префикс ключа платформы отличается от принятого у OpenAI и из-за этого ключ отклоняется, добавьте в настройки этого провайдера requires_openai_auth = false.
  • Выбор протокола: сторонние совместимые эндпоинты обычно используют wire_api = "chat" (соответствует /chat/completions).
  • Не записывайте ключ в config.toml: указывайте через env_key переменную окружения, чтобы ключ не утек вместе с файлом конфигурации.
  • Только временная замена: если адрес нужно изменить лишь на время, задайте переменную окружения OPENAI_BASE_URL — она переопределит его для текущей сессии.

Узнать больше