Подключение к Aida AI
Наш API совместим с форматом OpenAI и поддерживает как /v1/chat/completions, так и /v1/responses. Пользователь работает только с публичными идентификаторами моделей, а списания идут с общего баланса аккаунта.
Базовый адрес
https://svobodanet.ru/v1Authorization: Bearer sk-proj-....
GET /v1/models возвращает только модели и alias, доступные текущему API-ключу с учётом ограничений аккаунта и самого ключа.
POST /v1/chat/completions принимает messages, поддерживает stream: true, temperature, max_tokens, reasoning_effort и web_search.
POST /v1/responses поддерживает input, instructions, tools, tool outputs, previous_response_id, streaming SSE и формат, который используется Codex CLI/Codex plugin.
GET /v1/usage и кабинет помогают контролировать токены, расходы и активность ключей.
GET /api/v1/public/ai/models возвращает включённые модели, возможности и актуальные цены чата/API без авторизации.
Модели и цены
Не хардкодьте цены в интеграциях и витринах. Читайте их из профилей моделей: администратор может изменить маршрут или стоимость, а публичный endpoint сразу вернёт актуальные значения.
curl https://svobodanet.ru/api/v1/public/ai/models{
"models": [
{
"code": "gpt_5_5_fast",
"visible_name": "GPT 5.5 Fast",
"description": "...",
"accepts_image_uploads": true,
"capabilities": {"web_search": true, "reasoning_effort": true},
"chat_pricing": {
"input_per_1m_rub": 10.0,
"output_per_1m_rub": 40.0,
"cache_read_per_1m_rub": 1.25,
"minimum_charge_rub": 0.03
},
"api_pricing": {
"input_per_1m_rub": 10.0,
"output_per_1m_rub": 40.0,
"cache_read_per_1m_rub": 0.9,
"minimum_charge_rub": 0.01
}
}
],
"requires_positive_balance": false,
"has_positive_balance": true
}chat_pricingприменяется в веб-чате и Telegram WebApp.api_pricingприменяется в/v1/chat/completionsи/v1/responses.- Все цены указаны в рублях за 1 миллион токенов;
minimum_charge_rub— минимальное списание за запрос. cache_read_per_1m_rubиспользуется, когда запрос обслужен из кеша; для запросов с system/developer/tool-контекстом внутренний кеш отключается.
Пример запроса
curl https://svobodanet.ru/v1/chat/completions \
-H "Authorization: Bearer sk-proj-..." \
-H "Content-Type: application/json" \
-d '{
"model": "gpt_5_5_fast",
"messages": [{"role": "user", "content": "Сделай краткое резюме проекта"}],
"max_tokens": 900,
"temperature": 0.4
}'Пример ответа
{
"id": "chatcmpl_123",
"object": "chat.completion",
"model": "gpt_5_5_fast",
"choices": [
{
"index": 0,
"message": {"role": "assistant", "content": "..."},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 800,
"completion_tokens": 400,
"total_tokens": 1200
}
}Настройка Codex CLI и Codex plugin
Для Codex рекомендуем использовать отдельный провайдер svobodanet в пользовательском файле ~/.codex/config.toml. Это работает и для CLI, и для VS Code-расширения, а модель выбирается из тех, что реально доступны вашему ключу через GET /v1/models. Во внешних ответах API сохраняет публичный id модели и не раскрывает внутренний маршрут.
https://svobodanet.ru/v1
ключ формата sk-proj-... из раздела API-ключи
responses — именно этот формат ожидает Codex
любая модель или alias, которые возвращаются вашим ключом в /v1/models
1. Режимы доступа к файлам и консоли
В актуальной Codex CLI режим доступа задаётся двумя параметрами: approval_policy управляет запросами подтверждения, а sandbox_mode — доступом к файлам и командам. Для удобства наши setup-скрипты поддерживают три preset-режима.
approval_policy = "on-request" + sandbox_mode = "read-only". Самый безопасный режим: чтение и предложения без записи файлов.
approval_policy = "on-request" + sandbox_mode = "workspace-write". AI редактирует файлы проекта и просит подтверждение для рискованных действий.
approval_policy = "never" + sandbox_mode = "danger-full-access". Максимальная автономность без дополнительных вопросов.
Важно: значение approval_policy = "full-auto" больше не является валидным для Codex CLI. Для полной автономности используйте approval_policy = "never" вместе с sandbox_mode = "danger-full-access".
2. Ручная настройка Codex CLI
Установите Codex CLI по официальной инструкции OpenAI, затем задайте API-ключ в отдельной переменной окружения и создайте пользовательский конфиг.
# Linux / macOS
export AIDA_API_KEY="sk-proj-..."
mkdir -p ~/.codex
cat > ~/.codex/config.toml <<'EOF'
model = "gpt-5-codex"
model_provider = "svobodanet"
approval_policy = "never"
sandbox_mode = "danger-full-access"
[model_providers.svobodanet]
name = "Svobodanet Aida AI"
base_url = "https://svobodanet.ru/v1"
env_key = "AIDA_API_KEY"
wire_api = "responses"
request_max_retries = 3
stream_max_retries = 6
supports_websockets = false
EOF# Windows PowerShell
$env:AIDA_API_KEY = "sk-proj-..."
New-Item -ItemType Directory -Force "$HOME/.codex" | Out-Null
@'
model = "gpt-5-codex"
model_provider = "svobodanet"
approval_policy = "never"
sandbox_mode = "danger-full-access"
[model_providers.svobodanet]
name = "Svobodanet Aida AI"
base_url = "https://svobodanet.ru/v1"
env_key = "AIDA_API_KEY"
wire_api = "responses"
request_max_retries = 3
stream_max_retries = 6
supports_websockets = false
'@ | Set-Content "$HOME/.codex/config.toml"После этого запустите codex doctor, затем обычный codex. В статусе должен определиться провайдер svobodanet, а запросы пойдут в /v1/responses.
3. Как выбирать разные модели сервиса в CLI
Codex CLI поддерживает именованные профили через файлы вида $CODEX_HOME/ и запуск codex -p . Не используйте старый синтаксис profile = "..." внутри config.toml — он больше не поддерживается.
# ~/.codex/gpt-5-codex-mini.config.toml
model = "gpt-5-codex-mini"
model_provider = "svobodanet"
approval_policy = "never"
sandbox_mode = "danger-full-access"
# ~/.codex/gpt_5_5_fast.config.toml
model = "gpt_5_5_fast"
model_provider = "svobodanet"
approval_policy = "never"
sandbox_mode = "danger-full-access"codex -p gpt-5-codex-mini
codex -p gpt_5_5_fastВместо gpt_5_5 можно подставить любую модель или alias, который виден вашему ключу. Проверка списка:
curl https://svobodanet.ru/v1/models \
-H "Authorization: Bearer sk-proj-..."4. Настройка Codex plugin в VS Code
Установите расширение openai.chatgpt, затем закройте VS Code и убедитесь, что переменная AIDA_API_KEY доступна всему приложению, а не только текущему терминалу. После этого создайте пользовательский файл ~/.codex/config.toml и заново откройте VS Code.
- Linux/macOS: добавьте
export AIDA_API_KEY="..."в~/.bashrc,~/.zshrcили другой startup-файл вашей оболочки. - Windows: задайте пользовательскую переменную среды
AIDA_API_KEYчерез PowerShell или через параметры системы и затем полностью перезапустите VS Code. - Общий конфиг: используйте пользовательский
~/.codex/config.toml; на практике это надёжнее, чем repo-local.codex/config.tomlдля расширения. - Полная автономность: в
~/.codex/config.tomlукажитеapproval_policy = "never"иsandbox_mode = "danger-full-access", чтобы AI мог редактировать файлы и запускать команды без лишних вопросов.
Рекомендация: самый надёжный способ выбрать модель сервиса для VS Code-расширения — явно задать model = "...", approval_policy = "never" и sandbox_mode = "danger-full-access" в пользовательском ~/.codex/config.toml и перезапустить VS Code. Если picker расширения не показывает пользовательские модели провайдера, это ограничение самого Codex extension, а не нашего API.
5. Автонастройка для популярных ОС
Готовые скрипты создают ~/.codex/config.toml, сохраняют резервную копию старого конфига, настраивают провайдера svobodanet с preset-режимом full-auto и создают набор CLI-профилей для популярных моделей. Скрипты принимают параметр --approval-policy: значения suggest, auto-edit и full-auto автоматически преобразуются в валидные approval_policy и sandbox_mode.
# Linux / macOS — быстрая настройка с полным доступом
curl -fsSL https://svobodanet.ru/docs/downloads/setup-codex.sh -o setup-codex.sh
bash setup-codex.sh --api-key "sk-proj-..." --model "gpt-5-codex"
# С настройкой проектной директории
bash setup-codex.sh --api-key "sk-proj-..." --project-dir ~/my-project
# Только просмотр файлов, без записи и автозапуска команд
bash setup-codex.sh --api-key "sk-proj-..." --approval-policy suggest# Windows PowerShell — быстрая настройка
Invoke-WebRequest https://svobodanet.ru/docs/downloads/setup-codex.ps1 -OutFile setup-codex.ps1
powershell -ExecutionPolicy Bypass -File .\setup-codex.ps1 -ApiKey "sk-proj-..." -Model "gpt-5-codex"
# С настройкой проектной директории
powershell -ExecutionPolicy Bypass -File .\setup-codex.ps1 -ApiKey "sk-proj-..." -ProjectDir "$HOME\my-project"
# Только просмотр файлов, без записи и автозапуска команд
powershell -ExecutionPolicy Bypass -File .\setup-codex.ps1 -ApiKey "sk-proj-..." -ApprovalPolicy suggestОба скрипта по умолчанию создают профили для публичных моделей gpt_5_5_fast, gpt_5_4, gpt_5_4_mini и популярных alias вроде gpt-5-codex, gpt-5-codex-mini, gpt-5.4-codex. После этого CLI-профили можно запускать через codex -p <имя-профиля>.
6. Что умеет AI в preset-режиме full-auto
- Чтение файлов: анализирует структуру проекта, читает исходный код, конфиги и зависимости.
- Редактирование файлов: создаёт и изменяет файлы проекта — код, тесты, документацию, конфигурации.
- Консольные команды: запускает сборки, тесты, git-операции, установку пакетов и произвольные shell-скрипты.
- Рефакторинг: находит и исправляет проблемы, оптимизирует код, добавляет типизацию.
- Git workflow: создаёт коммиты, ветки, решает конфликты слияния.
7. Диагностика
- 401 / unauthorized: Codex не видит переменную
AIDA_API_KEY. Проверьте окружение и полностью перезапустите VS Code. - Пустой список моделей: у ключа нет доступа ни к одной модели, либо ключ создан с жёстким allow-list.
- Неправильная модель в VS Code: поменяйте
model = "..."в~/.codex/config.tomlи перезапустите расширение/IDE. - Ошибка в profile: используйте
codex -p my-profileи файл~/.codex/my-profile.config.toml, а не устаревшее полеprofile = "my-profile". - AI не редактирует файлы: проверьте, что в конфиге стоит
sandbox_mode = "workspace-write"илиsandbox_mode = "danger-full-access". - AI не запускает команды: для полной автономности укажите
approval_policy = "never"иsandbox_mode = "danger-full-access"; в режимеauto-editподтверждайте команды вручную. - Проверка API напрямую: если сомневаетесь, сначала убедитесь, что этот же ключ успешно отвечает на
GET /v1/modelsиPOST /v1/responses.
Пример запроса для Responses API
curl https://svobodanet.ru/v1/responses \
-H "Authorization: Bearer sk-proj-..." \
-H "Content-Type: application/json" \
-d '{
"model": "gpt_5_5_fast",
"input": "Собери план рефакторинга",
"max_output_tokens": 900,
"temperature": 0.4,
"reasoning": {"effort": "low"}
}'