Документация
Smart AIPI предоставляет API, совместимые и с OpenAI, и с Anthropic. Используйте наш сервис с любым существующим SDK, инструментом или приложением OpenAI или Anthropic, просто изменив base URL. Без изменений в коде.
Base URL OpenAI
https://api.smartaipi.com/v1
Base URL Anthropic
https://api.smartaipi.com
CLI и MCP инструменты
Smart AIPI предоставляет два npm-пакета, чтобы помочь разработчикам работать со своими аккаунтами:
Установить оба
npm install -g smart-aipi @smart-aipi/mcp
Установить по отдельности
npm install -g smart-aipi
npm install -g @smart-aipi/mcp
Аутентификация
Для всех API-запросов нужен API key. Один и тот же ключ работает с обоими способами аутентификации:
Authorization: Bearer YOUR_API_KEY
x-api-key: YOUR_API_KEY
Гид по миграции
Миграция занимает меньше минуты. Наш API на 100% совместим и с endpoint OpenAI, и с endpoint Anthropic.
С OpenAI
Получите ваш API key Smart AIPI
Зарегистрируйтесь и создайте API key в вашем dashboard.
Измените base URL
Замените https://api.openai.com/v1 на https://api.smartaipi.com/v1
Обновите ваш API key
Используйте ваш ключ Smart AIPI вместо ключа OpenAI. И всё!
С Anthropic
Получите ваш API key Smart AIPI
Зарегистрируйтесь и создайте API key в вашем dashboard.
Измените base URL
Замените https://api.anthropic.com на https://api.smartaipi.com
Обновите ваш API key
Используйте ваш ключ Smart AIPI вместо ключа Anthropic. Ваши существующие имена моделей Claude работают как есть.
Ваш существующий код, SDK и приложения, использующие Anthropic Messages API, будут работать без каких-либо изменений в коде. Имена моделей Claude (claude-opus-4-6, claude-sonnet-4-5-20250929, claude-haiku-4-5-20251001) автоматически направляются на высокопроизводительные модели GPT-5.4. Каждый ответ включает x-actual-model заголовок, показывающий реальную backend-модель для полной прозрачности.
Chat Completions
Создает chat completion для переданных messages и модели. Это основной endpoint для взаимодействия с языковыми моделями.
Параметры тела запроса
| Параметр | Тип | Обязательно | Описание |
|---|---|---|---|
| model | строка | Да | ID модели для использования (например, "gpt-6-astra", "gpt-5.6-sol") |
| messages | массив | Да | Массив объектов сообщений с role и content |
| temperature | число | Нет | Температура сэмплирования (0-2). Выше = случайнее. По умолчанию: 1 |
| max_tokens | целое число | Нет | Максимальное число tokens, генерируемых в ответе |
| top_p | число | Нет | Nucleus sampling. Учитывает tokens с вероятностью top_p. По умолчанию: 1 |
| frequency_penalty | число | Нет | Штрафует tokens по частоте (-2 до 2). По умолчанию: 0 |
| presence_penalty | число | Нет | Штрафует tokens по наличию (-2 до 2). По умолчанию: 0 |
| stop | строка/массив | Нет | Стоп-последовательности. До 4 последовательностей, на которых генерация останавливается. |
| stream | логический | Нет | Включить streaming-ответы через SSE. По умолчанию: false |
Роли сообщений
system- system - Задает поведение/персону ассистентаuser- user - Сообщения от пользователяassistant- assistant - Предыдущие ответы ассистента
Примеры кода
from openai import OpenAI
client = OpenAI(
base_url="https://api.smartaipi.com/v1",
api_key="your-api-key"
)
response = client.chat.completions.create(
model="gpt-6-astra",
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Hello!"}
],
temperature=0.7,
max_tokens=1000
)
print(response.choices[0].message.content)
Потоковая передача
Включите streaming, чтобы получать tokens по мере их генерации через Server-Sent Events (SSE). Это дает лучший пользовательский опыт для длинных ответов.
Установите "stream": true в вашем запросе, чтобы включить streaming.
Пример Streaming
from openai import OpenAI
client = OpenAI(
base_url="https://api.smartaipi.com/v1",
api_key="your-api-key"
)
# Enable streaming
stream = client.chat.completions.create(
model="gpt-6-astra",
messages=[{"role": "user", "content": "Write a poem"}],
stream=True
)
# Process chunks as they arrive
for chunk in stream:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="")
Усилие рассуждения
Управляйте глубиной reasoning с помощью параметра reasoning_effort для моделей GPT-5.
По умолчанию Smart AIPI использует reasoning.effort = "high" для всех запросов Responses API.
После обширного тестирования мы выяснили, что high — лучший reasoning effort для практического использования: он дает глубокую, надежную работу с инструментами и анализ без затрат по задержке уровня xhigh. Вы можете переопределить это, явно задав reasoning effort в запросе.
По умолчанию Smart AIPI использует store = false для всех запросов Responses API и WebSocket.
Upstream API требует store: false для GPT-5.4 и более новых моделей. Если вы явно зададите store: true в ваших запросах, вы получите ошибку "Store must be set to false". Уберите это поле или установите его в false.
Поддерживаемые модели
Responses API
gpt-5.4, gpt-5.3, gpt-5.1, gpt-5 и все варианты Codex
Только Chat Completions
gpt-5.4-nano — поддержка reasoning доступна только для /v1/chat/completions .
Уровни Reasoning Effort
none- Без reasoning. Полностью пропускает thinking.low- Минимальный reasoning. Отлично подходит для простых задач.medium- Баланс скорости и глубины.high- Глубокий анализ для сложных задач. (Значение по умолчанию в Smart AIPI)xhigh- Экстра-высокий. Максимальная глубина reasoning для самых сложных задач.
Fast Mode (приоритетная обработка)
Используйте service_tier: "priority" для приоритетной обработки с более низкой задержкой. Именно это использует команда /fast в Codex CLI. Это не меняет глубину reasoning — вы получаете то же качество, только быстрее.
Тарификация: Приоритетная обработка тарифицируется по ставке 1.5x от стандартной. Например, output у GPT-5.4 обычно стоит $3.75/1M tokens — с приоритетом это $5.625/1M tokens.
response = client.responses.create(
model="gpt-6-astra",
input="Refactor this function",
service_tier="priority" # priority processing, lower latency
)
API Chat Completions
response = client.chat.completions.create(
model="gpt-6-astra",
messages=[{"role": "user", "content": "Analyze this code for bugs..."}],
reasoning_effort="high" # or "xhigh" for maximum depth
)
API ответов
# Reasoning is set via the "reasoning" object
response = client.responses.create(
model="gpt-6-astra",
input=[{"role": "user", "content": "Refactor this function..."}],
reasoning={"effort": "high"} # defaults to "high" on Smart AIPI
)
Генерация изображений
Генерируйте изображения по текстовым prompts через наш endpoint генерации изображений.
/v1/images/variations ) пока не поддерживаются. Редактирование изображений доступно через /v1/images/edits.
Параметры тела запроса
| Параметр | Тип | Описание |
|---|---|---|
| prompt | строка | Текстовое описание изображения для генерации (обязательно) |
| model | строка | "gpt-image-2.5-flare" (frontier), "gpt-image-2.5-sunburst" или "gpt-image-2". По умолчанию: "gpt-image-2.5-flare" |
| n | целое число | Количество изображений для генерации (1-10). По умолчанию: 1 |
| size | строка | "1024x1024", "1024x1792" или "1792x1024". По умолчанию: "1024x1024" |
| quality | строка | "standard" или "hd". По умолчанию: "standard" |
Доступные модели
gpt-image-2.5-flare- Frontier модель, наивысшее качество (по умолчанию)gpt-image-2.5-sunburst- Точное редактирование и премиальная творческая работа (более медленная генерация)gpt-image-latest- Алиас для gpt-image-2.5-flaregpt-image-2- Флагман предыдущего поколенияgpt-image-1.5- Более старый флагман (поддерживает прозрачный фон)gpt-image-1- Генерация изображений в полном качествеgpt-image-1-mini- Быстрее, изображения меньшего размера
Пример
response = client.images.generate(
model="gpt-image-2.5-flare",
prompt="A futuristic city at sunset, cyberpunk style",
size="1024x1024",
n=1
)
# Response contains base64-encoded image
image_b64 = response.data[0].b64_json
# Save to file
import base64
with open("output.png", "wb") as f:
f.write(base64.b64decode(image_b64))
Редактирование изображений
Редактируйте существующие изображения с помощью текстового prompt. Поддерживаются и JSON (строка base64), и multipart/form-data (загрузка файла), поэтому OpenAI SDK работают сразу из коробки.
Параметры тела запроса
| Параметр | Тип | Описание |
|---|---|---|
| prompt | строка | Текстовое описание желаемого редактирования (обязательно) |
| image | строка | Изображение в base64 для редактирования (обязательно) |
| model | строка | "gpt-image-2.5-flare" (по умолчанию), "gpt-image-2.5-sunburst" или "gpt-image-2" |
| n | целое число | Количество редактируемых изображений для генерации (1-10). По умолчанию: 1 |
| size | строка | "1024x1024", "1024x1792" или "1792x1024". По умолчанию: "1024x1024" |
| quality | строка | "low", "medium", "high" или "auto". По умолчанию: "medium" |
image as an array of base64 strings (JSON) or as repeated image / image[] parts (multipart). Add a mask field alongside image to restrict edits to specific regions (white = edit, black = preserve). Works identically to the official OpenAI SDK.
Пример
import base64
response = client.images.edit(
model="gpt-image-2.5-flare",
image=open("input.png", "rb"),
prompt="Change the background to a sunset beach",
size="1024x1024",
n=1
)
# Save the edited image
edited_b64 = response.data[0].b64_json
with open("edited.png", "wb") as f:
f.write(base64.b64decode(edited_b64))
Realtime API с WebSocket
WebSocket-соединения — это широко поддерживаемый API для передачи данных в реальном времени и отличный выбор для подключения к Smart AIPI Realtime API в server-to-server приложениях.
В server-to-server интеграции ваша backend-система подключается по WebSocket напрямую к Realtime API. Используйте стандартный API key для аутентификации соединения, поскольку токен доступен только на вашем защищенном backend-сервере.
Подключение через WebSocket
Ниже приведено несколько примеров подключения через WebSocket. Помимо использования WebSocket URL, вам нужно передать заголовок аутентификации с вашим API key.
import WebSocket from "ws";
const url = "wss://api.smartaipi.com/v1/responses";
const ws = new WebSocket(url, {
headers: {
Authorization: "Bearer " + process.env.SMARTAIPI_API_KEY,
},
});
ws.on("open", function open() {
console.log("Connected to server.");
// Send a response.create event
ws.send(JSON.stringify({
type: "response.create",
response: {
model: "gpt-6-astra",
store: false,
input: [{ role: "user", content: "Hello!" }],
stream: true,
},
}));
});
ws.on("message", function incoming(message) {
const event = JSON.parse(message.toString());
console.log(event.type, event);
});
Отправка и получение событий
Сессии управляются через отправляемые клиентом и сервером JSON-события по WebSocket-соединению. Оберните ваш запрос в envelope response.create :
| Событие | Направление | Описание |
|---|---|---|
| response.create | Клиент | Отправить запрос (оборачивает вашу модель, input и параметры) |
| response.created | Сервер | Сессия принята, обработка началась |
| response.output_text.delta | Сервер | Потоковый фрагмент текста |
| response.completed | Сервер | Финальное событие с полным ответом и данными использования |
| response.failed | Сервер | Финальное событие, указывающее на ошибку |
"store": false в response envelope. Соединение сохраняется между несколькими turn — отправляйте дополнительные кадры response.create без повторного подключения.
Список моделей
Получите список всех доступных моделей. Используйте этот endpoint, чтобы динамически определять, какие модели доступны для вашего аккаунта.
Формат ответа
{
"object": "list",
"data": [
{
"id": "gpt-6-astra",
"object": "model",
"created": 1700000000,
"owned_by": "smart-aipi"
},
{
"id": "gpt-5.3-codex",
"object": "model",
"created": 1700000000,
"owned_by": "smart-aipi"
},
// ... more models
]
}
Пример
from openai import OpenAI
client = OpenAI(
base_url="https://api.smartaipi.com/v1",
api_key="your-api-key"
)
# List all available models
models = client.models.list()
for model in models.data:
print(model.id)
Доступные модели
Серия GPT
- gpt-6-astra Последнее
- gpt-5.6-sol
- gpt-5.6-terra
- gpt-5.6-luna
- gpt-5.5
- gpt-5.4-pro
- gpt-5.4
- gpt-5.4-mini
- gpt-5.4-nano только completions
Серия Codex
- gpt-5.3-codex
- gpt-5.2-codex
- gpt-5.2
- gpt-5.1
Anthropic Messages API
Полная совместимость с Anthropic Messages API. Используйте любой SDK Anthropic, Claude Code или приложение, которое работает по протоколу Anthropic — просто измените base URL.
Поддерживаемые возможности
- ✓ Streaming (полный протокол событий Anthropic SSE)
- ✓ Использование инструментов / вызов функций
- ✓ System messages (форматы string и array)
- ✓ Входные изображения (base64 и URL)
- ✓ Подсчет tokens (
/v1/messages/count_tokens) - ✓ Расширенное thinking / reasoning effort
Примеры кода
from anthropic import Anthropic
client = Anthropic(
base_url="https://api.smartaipi.com",
api_key="your-api-key"
)
response = client.messages.create(
model="claude-sonnet-4-5-20250929",
max_tokens=1024,
messages=[
{"role": "user", "content": "Hello!"}
]
)
print(response.content[0].text)
Сопоставление моделей
Имена моделей Claude принимаются и автоматически направляются на GPT-5.4 с многоуровневым reasoning effort. Каждый ответ включает заголовок x-actual-model , показывающий реальную backend-модель.
| Модель Claude | Бэкенд | Рассуждение | Лучше всего для |
|---|---|---|---|
| claude-opus-4-6 | gpt-5.4 | Высокий | Сложное reasoning, архитектура |
| claude-sonnet-4-5-20250929 | gpt-5.4 | Средний | Повседневное программирование, сбалансированное качество |
| claude-haiku-4-5-20251001 | gpt-5.4 | Низкий | Быстрые ответы, простые задачи |
Claude Code
Используйте Claude Code с Smart AIPI в качестве backend. Поддерживаются полное использование инструментов, streaming и агентные возможности.
Автоматическая настройка
npx smart-aipi claude
Это автоматически настроит ~/.claude/settings.json и ~/.claude.json Если у вас уже настроен Claude Code с аккаунтом Anthropic, вместо перезаписи будет показана ручная конфигурация.
Ручная настройка
Добавьте в ~/.claude/settings.json:
{
"env": {
"ANTHROPIC_BASE_URL": "https://api.smartaipi.com",
"ANTHROPIC_API_KEY": "sk-your-key",
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "claude-haiku-4-5-20251001"
},
"model": "opus"
}
Затем добавьте "hasCompletedOnboarding": true в ~/.claude.json чтобы пропустить мастер настройки.
После изменения настроек перезапустите Claude Code, чтобы изменения вступили в силу. Если Claude Code уже подключен к реальному аккаунту Anthropic, установка этих env vars переопределит это подключение — используйте project-level .claude/settings.json чтобы сохранить оба варианта.
Что делает каждая настройка
"model": "opus"— Основная модель. Использует claude-opus-4-6 (high reasoning) для всех основных задач.ANTHROPIC_DEFAULT_HAIKU_MODEL— Фоновая модель. Использует claude-haiku-4-5 (low reasoning) для быстрых фоновых задач, таких как индексация файлов.- Переключайтесь между моделями в середине сессии с помощью
/model sonnet,/model opus, или/model haiku.
| Алиас | Модель Claude | Бэкенд | Рассуждение |
|---|---|---|---|
| opus | claude-opus-4-6 | gpt-5.4 | Высокий |
| sonnet | claude-sonnet-4-5-20250929 | gpt-5.4 | Средний |
| haiku | claude-haiku-4-5-20251001 | gpt-5.4 | Низкий |
OpenCode
Используйте Smart AIPI как backend для OpenCode через OpenAI-совместимый SDK.
Настройка конфигурации
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"smart-aipi": {
"npm": "@ai-sdk/openai-compatible",
"name": "Smart AIPI",
"options": {
"baseURL": "https://api.smartaipi.com/v1",
"apiKey": "YOUR_API_KEY"
},
"models": {
"gpt-6-astra": {
"name": "GPT-6 Astra",
"reasoning": true,
"limit": { "context": 400000, "output": 128000 }
},
"gpt-5.3-codex": {
"name": "GPT-5.3 Codex",
"reasoning": true,
"limit": { "context": 400000, "output": 128000 }
},
"gpt-5.2-codex": {
"name": "GPT-5.2 Codex",
"reasoning": true,
"limit": { "context": 400000, "output": 128000 }
},
"gpt-5-codex": {
"name": "GPT-5 Codex",
"reasoning": true,
"limit": { "context": 400000, "output": 128000 }
}
}
}
},
"model": "smart-aipi/gpt-6-astra"
}
Codex CLI
Используйте Smart AIPI с инструментом Codex CLI от OpenAI. Нужно настроить три файла.
Автоматическая настройка
npx smart-aipi codex
Это автоматически настроит все три файла ниже. После запуска добавьте model_reasoning_effort в ваш config (см. шаг 2).
Ручная настройка
Настройте эти три файла:
1. API Key — ~/.codex/auth.json
{
"auth_mode": "apikey",
"OPENAI_API_KEY": "sk-your-key"
}
2. Модель и Reasoning — ~/.codex/config.toml
Всегда указывайте model_reasoning_effort — обязательно для пользовательских моделей.
Без этого Codex по умолчанию работает без reasoning и не будет работать корректно. Для лучших результатов используйте "high" .
model = "gpt-6-astra"
model_reasoning_effort = "high"
Допустимые уровни reasoning: low, medium, high (рекомендуется), xhigh.
3. Переменные окружения — ~/.zshrc
# Smart AIPI
export OPENAI_API_KEY="sk-your-key"
export OPENAI_BASE_URL="https://api.smartaipi.com/v1"
После редактирования профиля shell перезапустите терминал или выполните source ~/.zshrc чтобы изменения вступили в силу.
Затем используйте Codex как обычно:
codex "fix this bug"
Гид по скорости Codex WebSocket
Режим WebSocket обычно быстрее для агентных сценариев кодинга с большим количеством вызовов инструментов. Вместо постоянных переподключений по HTTP и повторной отправки полных request envelopes, Codex держит одно активное соединение и отправляет incremental turns, что снижает continuation overhead.
Включение WebSockets в Codex
Используйте feature flag WebSocket v2 в ~/.codex/config.toml: ~/.codex/config.toml:
model = "gpt-6-astra"
model_reasoning_effort = "high"
[features]
responses_websockets_v2 = true
Эквивалент в CLI:
codex --enable responses_websockets_v2
Старые сборки могут использовать legacy flag:
[features]
responses_websockets = true
Известное поведение Homebrew
В некоторых сборках, распространяемых через Homebrew, WebSocket-turns могут зависать во время долгих задач, а затем незаметно переключаться обратно на HTTP. Особенно часто мы замечали это в сложных циклах вызова инструментов. Пересборка из open-source кода с исправлениями ниже улучшила и стабильность, и скорость.
После merge: исправьте open-source WebSocket bug
После слияния вашей ветки используйте этот чеклист, чтобы убедиться, что исправление есть в локальном бинарнике:
# 1) Pull merged main
git checkout main
git pull --ff-only
# 2) Confirm websocket flags exist
codex features list | rg responses_websockets
# 3) Build and install
cd codex-rs
cargo build --release
install -m 0755 target/release/codex ~/.local/bin/codex-beta
# 4) Run with websocket enabled
CODEX_RS_RESPONSES_WS=true \
OPENAI_BASE_URL=https://api.smartaipi.com/v1 \
~/.local/bin/codex-beta --enable responses_websockets_v2
Если нужно патчить вручную, проверьте, что присутствуют эти исправления на уровне кода:
# A) Build websocket request with IntoClientRequest so required headers are set
let mut request = url.as_str().into_client_request()?;
request.headers_mut().extend(headers);
# B) Ensure TLS roots are enabled for tokio-tungstenite in Cargo.toml
tokio-tungstenite = { version = "...", features = ["rustls-tls-native-roots"] }
Cursor и Cline
Используйте Smart AIPI с Cursor IDE или расширением Cline для VS Code.
Cursor
- Откройте настройки Cursor
- Перейдите на вкладку
Modelsвкладка - Нажмите
+ Add Model - Установите Base URL:
https://api.smartaipi.com/v1 - Введите ваш API key
- Модель:
gpt-6-astra
Cline (VS Code)
- Откройте настройки Cline в VS Code
- Выберите
OpenAI Compatible - Base URL:
https://api.smartaipi.com/v1 - Введите ваш API key
- Модель:
gpt-6-astra
Чат
Используйте Smart AIPI Chat на chat.smartaipi.com. для текстовых, графических, видео, кодовых, поисковых и голосовых сценариев.
Возможности
- ✓ Чат — Текстовые диалоги общего назначения с моделями Smart AIPI.
- ✓ Изображения — Создавайте и редактируйте изображения по prompts.
- ✓ Видео — Создавайте видео из текста или изображений.
- ✓ Код — Помощь с кодом и редактирование в браузере.
- ✓ Поиск — Используйте веб-поиск для ответов с опорой на источники.
- ✓ Голос — Общайтесь с моделью с помощью голоса: ввод и ответы.
Быстрый старт
- 1. Откройте chat.smartaipi.com
- 2. Войдите или создайте аккаунт.
- 3. Начните общаться с текстом, изображениями, видео, кодом, поиском или голосом.
Биллинг: Использование списывается с ваших credits в Smart AIPI.
Тестер API
Проверьте API прямо из браузера: