GPT API и «ChatGPT API»: что вы подключаете
GPT — модель, ChatGPT — приложение, а CLODEx — отдельный шлюз и баланс. Здесь запрос оплачивается по условиям CLODEx. Подписка ChatGPT не превращается в API-кредит, и ключ CLODEx не является ключом кабинета OpenAI.
Создайте ключ на странице API-ключей. Точное имя модели возьмите из каталога, доступного этому ключу: gpt-5.6-sol, gpt-5.6-terra и gpt-5.6-luna — разные ID, а не значения параметра качества одного запроса. Установите Python-пакет openai в окружение приложения.
Какой из двух протоколов нужен
Если приложение уже вызывает chat.completions.create, начните с его существующего формата. Для Codex нужен Responses. Переход между протоколами меняет не только путь, но и входное тело, обработку результата и инструментов.
| Клиент | Отправка | Чтение ответа |
|---|---|---|
| Chat Completions | messages; /v1/chat/completions | choices[].message и finish_reason |
| Responses / Codex | input; /v1/responses | output items и status |
Первый запрос через Responses API
Задайте CLODEX_API_KEY и CLODEX_MODEL в защищённом окружении процесса. Пример выполняет один платный текстовый запрос; он намеренно не включает инструменты и автоматические повторы. Успех проверяется по status и непустому тексту, а не только по HTTP 200.
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["CLODEX_API_KEY"],
base_url="https://clodex.xyz/v1",
timeout=60.0,
max_retries=0,
)
response = client.responses.create(
model=os.environ["CLODEX_MODEL"],
input="Reply with one word: ready",
stream=False,
)
if response.status != "completed" or not response.output_text.strip():
raise RuntimeError(f"Incomplete text response: {response.status}")
print(response.output_text)
print(response.usage)
Codex: настройки из нашей /docs
Сначала установите официальный Codex и сохраните копию текущего ~/.codex/config.toml. Внесите блок ниже в существующий файл: не создавайте второй раздел с тем же именем и не стирайте ваши MCP, проекты и разрешения. Ключ читается из CLODEX_API_KEY; значение секрета не нужно записывать в TOML.
Это минимальная ручная конфигурация CLI. Для Codex App используйте соответствующий установщик из /docs: он также настраивает каталог моделей. Если установщик уже создал model_catalog_json, сохраните его действительный абсолютный путь. Не копируйте буквальный /ABSOLUTE/PATH из учебного примера.
Полностью перезапустите приложение или VS Code после настройки окружения. Процесс, запущенный раньше, может не получить переменную. В /status сверяйте провайдера и модель; не отключайте sandbox и подтверждения команд ради подключения.
# Merge into ~/.codex/config.toml; do not overwrite other settings.
model = "gpt-5.6-sol"
model_provider = "clodex"
[model_providers.clodex]
name = "Clodex"
base_url = "https://clodex.xyz/v1"
wire_api = "responses"
env_key = "CLODEX_API_KEY"
supports_websockets = false
requires_openai_auth = false
Установщики Codex для вашей ОС · OpenAI: настройка провайдеров
Как сравнить расход, а не названия тарифов
Одна задача агента состоит из нескольких запросов: история, ответы инструментов и повторные проверки снова попадают во вход. Поэтому цена «одного ответа» не равна цене исправленной задачи. Сравнивайте журнал списаний за одинаковое задание и долю патчей, прошедших тесты.
Ставки, лимиты и условия оплаты в России смотрите в кабинете и /pricing. Наличие API не гарантирует поддержку любой банковской карты. CLODEx не продаёт официальный аккаунт OpenAI и не обещает обход сетевых ограничений или бесплатную работу Codex.
Документация и проверка примера
Адреса и настройки подключения сверены с документацией CLODEx. Примеры предназначены для указанного протокола; они не являются журналом выполненных запросов и не обещают одинаковые функции у всех моделей. Рабочий запрос на генерацию может списать средства.
Частые вопросы
Почему Responses не возвращает choices?
Это другой протокол. В Python SDK текст доступен в output_text, а сырой ответ содержит output items. Обработчик Chat Completions нельзя применить к нему без изменения.
Нужно ли менять ключ при переключении модели?
Не обязательно: один ключ может иметь доступ к нескольким моделям. Ограничения ключа и группы проверяются отдельно; новое имя не добавляет доступ автоматически.
Можно ли вставить ключ в frontend?
Нет. Публичный JavaScript и сетевые запросы браузера доступны пользователю. Отправляйте запрос через свой сервер с проверкой авторизации и лимитов.