Документація
Smart AIPI надає API, сумісні і з OpenAI, і з Anthropic. Використовуйте наш сервіс із будь-яким наявним OpenAI або Anthropic SDK, інструментом чи застосунком, просто змінивши base URL. Жодних змін у коді не потрібно.
OpenAI Base URL
https://api.smartaipi.com/v1
Anthropic Base URL
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 header, який показує реальну backend модель для повної прозорості.
Chat Completions
Створіть chat completion для переданих повідомлень і моделі. Це основний endpoint для взаємодії з мовними моделями.
Параметри тіла запиту
| Параметр | Тип | Обов’язково | Опис |
|---|---|---|---|
| model | string | Так | ID моделі для використання (наприклад, "gpt-6-astra", "gpt-5.6-sol") |
| messages | масив | Так | Масив об’єктів повідомлень із role і content |
| temperature | number | Ні | Температура sampling (0-2). Вище = більш випадково. Типово: 1 |
| max_tokens | integer | Ні | Максимальна кількість tokens для генерації у відповіді |
| top_p | number | Ні | Nucleus sampling. Враховувати tokens з імовірністю top_p. Типово: 1 |
| frequency_penalty | number | Ні | Штрафувати tokens залежно від частоти (-2 до 2). Типово: 0 |
| presence_penalty | number | Ні | Штрафувати tokens залежно від присутності (-2 до 2). Типово: 0 |
| stop | string/array | Ні | Stop-послідовності. До 4 послідовностей, на яких генерація зупиняється. |
| stream | boolean | Ні | Увімкнути 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
Увімкніть 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 за допомогою параметра reasoning_effort для моделей GPT-5.
Smart AIPI за замовчуванням використовує reasoning.effort = "high" для всіх запитів Responses API.
Після великої кількості тестів ми з’ясували, що high є найкращим reasoning effort для практичного використання — він забезпечує глибоке, надійне використання tool та аналіз без витрат на затримку, як у 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.
Підтримувані моделі
API Responses
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 від стандартної. Наприклад, вихід 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 Responses
# 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 | string | Текстовий опис зображення для генерації (обов’язково) |
| model | string | "gpt-image-2.5-flare" (frontier), "gpt-image-2.5-sunburst" або "gpt-image-2". Типово: "gpt-image-2.5-flare" |
| n | integer | Кількість зображень для генерації (1-10). Типово: 1 |
| size | string | "1024x1024", "1024x1792" або "1792x1024". Типово: "1024x1024" |
| quality | string | "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 | string | Текстовий опис бажаного редагування (обов’язково) |
| image | string | Зображення в base64 для редагування (обов’язково) |
| model | string | "gpt-image-2.5-flare" (типово), "gpt-image-2.5-sunburst" або "gpt-image-2" |
| n | integer | Кількість відредагованих зображень для генерації (1-10). Типово: 1 |
| size | string | "1024x1024", "1024x1792" або "1792x1024". Типово: "1024x1024" |
| quality | string | "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
WebSockets — це широко підтримуваний API для передачі даних у realtime і чудовий вибір для підключення до Smart AIPI Realtime API у server-to-server застосунках.
У server-to-server інтеграції ваша backend система підключається через WebSocket безпосередньо до Realtime API. Використовуйте стандартний API key для автентифікації з’єднання, оскільки token доступний лише на вашому захищеному 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 events, надіслані клієнтом і сервером, поверх WebSocket-з’єднання. Загорніть свій запит у response.create envelope:
| Подія | Напрямок | Опис |
|---|---|---|
| response.create | Клієнт | Надішліть запит (обгортає вашу модель, input і параметри) |
| response.created | Сервер | Сесію прийнято, обробку розпочато |
| response.output_text.delta | Сервер | Потоковий текстовий фрагмент |
| response.completed | Сервер | Фінальна подія з повною відповіддю та usage |
| response.failed | Сервер | Фінальна подія, що вказує на помилку |
"store": false у response envelope. З’єднання зберігається між кількома ходами — надсилайте додаткові response.create frames без повторного підключення.
Список моделей
Отримайте список усіх доступних моделей. Використовуйте цей 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. Використовуйте будь-який Anthropic SDK, Claude Code або застосунок, що працює за Anthropic protocol — просто змініть base URL.
Підтримувані можливості
- ✓ Streaming (повний Anthropic SSE event protocol)
- ✓ Використання tool / function calling
- ✓ System messages (формати string та array)
- ✓ Вхідні зображення (base64 та URL)
- ✓ Підрахунок token (
/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 із tiered reasoning effort. Кожна відповідь містить x-actual-model header, який показує реальну 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. Підтримуються повне використання tool, streaming і agentic capabilities.
Автоматичне налаштування
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 з інструментом OpenAI Codex CLI. Потрібно налаштувати три файли.
Автоматичне налаштування
npx smart-aipi codex
Це автоматично налаштовує всі три файли нижче. Після запуску додайте model_reasoning_effort до своєї конфігурації (див. крок 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 за замовчуванням використовує no 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 зазвичай швидший для agentic coding flow із великою кількістю викликів tool. Замість постійного повторного підключення через HTTP і повторного надсилання повних request envelope, Codex тримає одне активне з’єднання й надсилає інкрементальні ходи, що зменшує 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
Старіші збірки можуть використовувати застарілий прапорець:
[features]
responses_websockets = true
Відома поведінка Homebrew
У деяких збірках, розповсюджених через Homebrew, WebSocket-переходи можуть зависати під час довготривалих задач, а потім непомітно повертатися до HTTP. Ми особливо спостерігали це у складних циклах викликів tool. Перезбірка з open-source коду з виправленнями нижче покращила і стабільність, і швидкість.
Після merge: виправте open-source WebSocket bug
Після злиття вашої гілки використайте цей checklist, щоб упевнитися, що виправлення є у вашому локальному binary:
# 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
Якщо потрібно виправити вручну, переконайтеся, що присутні такі code-level виправлення:
# 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 Settings
- Перейдіть на вкладку
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. для текстових, графічних, відео, кодових, пошукових і голосових workflow.
Можливості
- ✓ Чат — Текстові розмови загального призначення з моделями Smart AIPI.
- ✓ Зображення — Створюйте й редагуйте зображення за prompts.
- ✓ Відео — Генеруйте відео з тексту або вхідних зображень.
- ✓ Код — Допомога з кодом і редагування в браузері.
- ✓ Пошук — Використовуйте вебпошук для відповідей з опорою на джерела.
- ✓ Голос — Спілкуйтеся з моделлю голосом — із voice input і відповідями.
Початок роботи
- 1. Відкрийте chat.smartaipi.com
- 2. Увійдіть або створіть акаунт.
- 3. Почніть спілкуватися текстом, зображеннями, відео, кодом, пошуком або голосом.
Оплата: Використання списується з ваших кредитів Smart AIPI.
Тестер API
Протестуйте API прямо у браузері: