Skip to main content

Подключение Codex в приложении ChatGPT

Только модели OpenAI

Приложение ChatGPT работает только с моделями OpenAI и auto. Модели Anthropic доступны в Codex CLI.

  1. На экране входа нажмите Войти другим способом

    • Не нажимайте Продолжите, чтобы войти: это вход через аккаунт ChatGPT, с ним запросы к шлюзу будут отклонены
    • Если вы уже вошли через аккаунт ChatGPT, выйдите из него и войдите заново

    Codex в ChatGPT: экран входа

  2. Вставьте API-ключ из личного кабинета в поле API-ключ OpenAI и нажмите Продолжить

    • Ключ находится в личном кабинете в блоке Подключение к Veai, кнопка Скопировать ключ. Подробнее: где взять URL и ключ
    • Аккаунт OpenAI не нужен: ключ используется только для запросов к шлюзу Veai

    Codex в ChatGPT: ввод API-ключа

  3. Откройте настройки приложения (Cmd/Ctrl + ,) → раздел Конфигурация → нажмите Открыть config.toml

    Codex в ChatGPT: кнопка «Открыть config.toml» в настройках

  4. В открывшемся файле уже есть настройки самого приложения — не удаляйте их. Добавьте в самое начало файла три строки:

    model = "auto"
    model_provider = "veai"
    model_catalog_json = "./model-catalog.json"
  5. Добавьте в самый конец того же файла блок ниже:

    [model_providers.veai]
    name = "veai"
    base_url = "https://api.veai.ru/openai/api"
    wire_api = "responses"
    requires_openai_auth = true
    • В поле base_url уже указан OpenAI-совместимый URL https://api.veai.ru/openai/api
  6. Создайте рядом с config.toml файл model-catalog.json со списком моделей Veai

    Скачать готовый файл model-catalog.json — или скопируйте его содержимое вручную:

    Содержимое файла model-catalog.json
    {
    "models": [
    {
    "slug": "auto",
    "id": "auto",
    "display_name": "Veai Auto",
    "description": "Автоматический выбор модели: высокое качество при максимальной доступности",
    "context_window": 372000,
    "max_output_tokens": 32768,
    "base_instructions": "default",
    "shell_type": "default",
    "visibility": "list",
    "supported_in_api": true,
    "priority": 1,
    "support_verbosity": false,
    "truncation_policy": {
    "mode": "bytes",
    "limit": 10000
    },
    "experimental_supported_tools": [],
    "supported_reasoning_levels": [
    {
    "effort": "low",
    "description": "low"
    },
    {
    "effort": "medium",
    "description": "medium"
    },
    {
    "effort": "high",
    "description": "high"
    },
    {
    "effort": "xhigh",
    "description": "xhigh"
    }
    ]
    },
    {
    "slug": "OpenAI/gpt-5.6-sol",
    "id": "OpenAI/gpt-5.6-sol",
    "display_name": "OpenAI GPT-5.6 Sol",
    "description": "Самое высокое качество среди моделей OpenAI",
    "context_window": 372000,
    "max_output_tokens": 32768,
    "base_instructions": "default",
    "shell_type": "default",
    "visibility": "list",
    "supported_in_api": true,
    "priority": 2,
    "support_verbosity": false,
    "truncation_policy": {
    "mode": "bytes",
    "limit": 10000
    },
    "experimental_supported_tools": [],
    "supported_reasoning_levels": [
    {
    "effort": "low",
    "description": "low"
    },
    {
    "effort": "medium",
    "description": "medium"
    },
    {
    "effort": "high",
    "description": "high"
    },
    {
    "effort": "xhigh",
    "description": "xhigh"
    }
    ]
    },
    {
    "slug": "OpenAI/gpt-5.6-terra",
    "id": "OpenAI/gpt-5.6-terra",
    "display_name": "OpenAI GPT-5.6 Terra",
    "description": "Баланс качества и скорости среди моделей OpenAI",
    "context_window": 372000,
    "max_output_tokens": 32768,
    "base_instructions": "default",
    "shell_type": "default",
    "visibility": "list",
    "supported_in_api": true,
    "priority": 3,
    "support_verbosity": false,
    "truncation_policy": {
    "mode": "bytes",
    "limit": 10000
    },
    "experimental_supported_tools": [],
    "supported_reasoning_levels": [
    {
    "effort": "low",
    "description": "low"
    },
    {
    "effort": "medium",
    "description": "medium"
    },
    {
    "effort": "high",
    "description": "high"
    },
    {
    "effort": "xhigh",
    "description": "xhigh"
    }
    ]
    },
    {
    "slug": "OpenAI/gpt-5.6-luna",
    "id": "OpenAI/gpt-5.6-luna",
    "display_name": "OpenAI GPT-5.6 Luna",
    "description": "Самая быстрая и дешёвая среди моделей OpenAI",
    "context_window": 372000,
    "max_output_tokens": 32768,
    "base_instructions": "default",
    "shell_type": "default",
    "visibility": "list",
    "supported_in_api": true,
    "priority": 4,
    "support_verbosity": false,
    "truncation_policy": {
    "mode": "bytes",
    "limit": 10000
    },
    "experimental_supported_tools": [],
    "supported_reasoning_levels": [
    {
    "effort": "low",
    "description": "low"
    },
    {
    "effort": "medium",
    "description": "medium"
    },
    {
    "effort": "high",
    "description": "high"
    },
    {
    "effort": "xhigh",
    "description": "xhigh"
    }
    ]
    },
    {
    "slug": "OpenAI/gpt-5.5",
    "id": "OpenAI/gpt-5.5",
    "display_name": "OpenAI GPT-5.5",
    "description": "Модель OpenAI прошлого поколения",
    "context_window": 272000,
    "max_output_tokens": 16384,
    "base_instructions": "default",
    "shell_type": "default",
    "visibility": "list",
    "supported_in_api": true,
    "priority": 5,
    "support_verbosity": false,
    "truncation_policy": {
    "mode": "bytes",
    "limit": 10000
    },
    "experimental_supported_tools": [],
    "supported_reasoning_levels": [
    {
    "effort": "low",
    "description": "low"
    },
    {
    "effort": "medium",
    "description": "medium"
    },
    {
    "effort": "high",
    "description": "high"
    },
    {
    "effort": "xhigh",
    "description": "xhigh"
    }
    ]
    }
    ]
    }

    Чтобы добавить модель, скопируйте любой блок и подставьте своё значение slug.

    • Поле priority задаёт порядок в списке выбора модели: чем меньше число, тем выше модель в списке
    • Полный список моделей: https://api.veai.ru/openai/api/models
    • Если после обновления Codex появилась ошибка failed to parse model_catalog_json, добавьте в каждую модель поле, указанное в тексте ошибки
  7. Полностью закройте и снова откройте приложение

    • Настройки считываются только при запуске
  8. В правом нижнем углу поля ввода нажмите кнопку с названием модели, затем — строку с названием модели и стрелкой в появившемся окне

    Codex в ChatGPT: переход к выбору модели

  9. Выберите модель из списка

    • Veai Auto – автоматический выбор модели: высокое качество при максимальной доступности
    • OpenAI GPT-5.6 Sol – самое высокое качество среди моделей OpenAI
    • OpenAI GPT-5.6 Terra – баланс качества и скорости среди моделей OpenAI
    • OpenAI GPT-5.6 Luna – самая быстрая и дешёвая среди моделей OpenAI
    • OpenAI GPT-5.5 – модель OpenAI прошлого поколения
    • Если в списке нет моделей Veai, значит Codex не прочитал каталог: проверьте, что строки из шага 4 стоят в начале файла, а строки из шага 5 находятся в конце файла

    Codex в ChatGPT: список моделей Veai

  10. Отправьте любое сообщение и убедитесь, что модель отвечает

    • Если появляется ошибка 404 Not Found, значит ключ неверный или отозванный. Проверьте, что вы вошли по API-ключу, а не через аккаунт ChatGPT. Если это не помогло, перевыпустите ключ в личном кабинете (ссылка Перевыпустить в блоке Подключение к Veai) и вставьте новый

Запросы из Codex расходуют минуты подписки Veai так же, как запросы из плагина. Остаток виден в личном кабинете.

В случае ошибок см. Значения ошибок.