Dokumentasi
Smart AIPI menyediakan API yang kompatibel dengan OpenAI dan Anthropic. Gunakan layanan kami dengan SDK, tool, atau aplikasi OpenAI maupun Anthropic yang sudah ada hanya dengan mengganti base URL. Tanpa perlu perubahan kode.
Base URL OpenAI
https://api.smartaipi.com/v1
Base URL Anthropic
https://api.smartaipi.com
Alat CLI & MCP
Smart AIPI menyediakan dua package npm untuk membantu developer bekerja dengan akun mereka:
Install Keduanya
npm install -g smart-aipi @smart-aipi/mcp
Install Satu per Satu
npm install -g smart-aipi
npm install -g @smart-aipi/mcp
Autentikasi
Semua request API memerlukan API key. Key yang sama bisa digunakan untuk kedua metode autentikasi:
Authorization: Bearer YOUR_API_KEY
x-api-key: YOUR_API_KEY
Panduan Migrasi
Migrasi hanya butuh kurang dari satu menit. API kami 100% kompatibel dengan endpoint OpenAI dan Anthropic.
Dari OpenAI
Dapatkan Smart AIPI API key Anda
Daftar dan buat API key dari dashboard Anda.
Ubah base URL
Ganti https://api.openai.com/v1 dengan https://api.smartaipi.com/v1
Perbarui API key Anda
Gunakan key Smart AIPI Anda sebagai pengganti key OpenAI Anda. Selesai!
Dari Anthropic
Dapatkan Smart AIPI API key Anda
Daftar dan buat API key dari dashboard Anda.
Ubah base URL
Ganti https://api.anthropic.com dengan https://api.smartaipi.com
Perbarui API key Anda
Gunakan key Smart AIPI Anda sebagai pengganti key Anthropic Anda. Nama model Claude Anda yang sudah ada tetap bisa dipakai.
Kode, SDK, dan aplikasi Anda yang sudah ada yang menggunakan Anthropic Messages API akan berfungsi tanpa perubahan kode. Nama model Claude (claude-opus-4-6, claude-sonnet-4-5-20250929, claude-haiku-4-5-20251001) secara otomatis diarahkan ke model GPT-5.4 berperforma tinggi. Setiap respons menyertakan header x-actual-model header yang menampilkan model backend asli untuk transparansi penuh.
Chat Completions
Buat chat completion untuk messages dan model yang diberikan. Ini adalah endpoint utama untuk berinteraksi dengan model bahasa.
Parameter Request Body
| Parameter | Tipe | Wajib | Deskripsi |
|---|---|---|---|
| model | string | Ya | ID model yang digunakan (mis. "gpt-6-astra", "gpt-5.6-sol") |
| messages | array | Ya | Array objek message dengan role dan content |
| temperature | number | Tidak | Temperatur sampling (0-2). Lebih tinggi = lebih acak. Default: 1 |
| max_tokens | integer | Tidak | Jumlah maksimum tokens yang dihasilkan dalam respons |
| top_p | number | Tidak | Nucleus sampling. Pertimbangkan tokens dengan probabilitas top_p. Default: 1 |
| frequency_penalty | number | Tidak | Beri penalti pada tokens berdasarkan frekuensi (-2 hingga 2). Default: 0 |
| presence_penalty | number | Tidak | Beri penalti pada tokens berdasarkan kemunculan (-2 hingga 2). Default: 0 |
| stop | string/array | Tidak | Urutan stop. Maksimal 4 urutan tempat generasi berhenti. |
| stream | boolean | Tidak | Aktifkan streaming respons via SSE. Default: false |
Role Pesan
system- system - Mengatur perilaku/persona assistantuser- user - Pesan dari penggunaassistant- assistant - Respons sebelumnya dari assistant
Contoh Kode
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
Aktifkan streaming untuk menerima tokens saat dihasilkan melalui Server-Sent Events (SSE). Ini memberikan pengalaman pengguna yang lebih baik untuk respons panjang.
Atur "stream": true di request Anda untuk mengaktifkan streaming.
Contoh 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="")
Upaya Reasoning
Kontrol kedalaman reasoning dengan parameter reasoning_effort untuk model GPT-5.
Smart AIPI secara default menggunakan reasoning.effort = "high" untuk semua request Responses API.
Setelah pengujian ekstensif, kami menemukan bahwa high adalah effort reasoning terbaik untuk penggunaan praktis - ini memberikan penggunaan tool dan analisis yang mendalam dan andal tanpa biaya latensi dari xhigh. Anda bisa menimpa ini dengan secara eksplisit mengatur effort reasoning di request Anda.
Smart AIPI default ke store = false untuk semua request Responses API dan WebSocket.
API upstream mewajibkan store: false untuk GPT-5.4 dan model yang lebih baru. Jika Anda secara eksplisit mengatur store: true di request Anda, Anda akan menerima error "Store must be set to false". Hapus atau atur ke false.
Model yang Didukung
Responses API
gpt-5.4, gpt-5.3, gpt-5.1, gpt-5, dan semua varian Codex
Hanya Chat Completions
gpt-5.4-nano — dukungan reasoning hanya tersedia di /v1/chat/completions .
Level Reasoning Effort
none- Tanpa reasoning. Melewati proses berpikir sepenuhnya.low- Reasoning minimal. Cocok untuk tugas sederhana.medium- Kecepatan dan kedalaman yang seimbang.high- Analisis mendalam untuk masalah kompleks. (Default Smart AIPI)xhigh- Ekstra tinggi. Kedalaman reasoning maksimum untuk masalah tersulit.
Mode Cepat (Pemrosesan Prioritas)
Gunakan service_tier: "priority" untuk pemrosesan prioritas dengan latensi lebih rendah. Inilah yang digunakan perintah /fast di Codex CLI. Ini tidak mengubah kedalaman reasoning - kualitasnya sama, hanya lebih cepat.
Harga: Pemrosesan prioritas ditagihkan 1.5x tarif standar. Misalnya, output GPT-5.4 biasanya seharga $3.75/1M tokens - dengan prioritas menjadi $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
)
Responses 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
)
Pembuatan Gambar
Buat gambar dari prompt teks menggunakan endpoint pembuatan gambar kami.
/v1/images/variations ) belum didukung. Edit gambar tersedia melalui /v1/images/edits.
Parameter Request Body
| Parameter | Tipe | Deskripsi |
|---|---|---|
| prompt | string | Deskripsi teks dari gambar yang akan dibuat (wajib) |
| model | string | "gpt-image-2.5-flare" (frontier), "gpt-image-2.5-sunburst", atau "gpt-image-2". Default: "gpt-image-2.5-flare" |
| n | integer | Jumlah gambar yang akan dibuat (1-10). Default: 1 |
| size | string | "1024x1024", "1024x1792", atau "1792x1024". Default: "1024x1024" |
| quality | string | "standard" atau "hd". Default: "standard" |
Model yang Tersedia
gpt-image-2.5-flare- Model frontier, kualitas tertinggi (default)gpt-image-2.5-sunburst- Pengeditan presisi dan karya kreatif premium (pembuatan lebih lambat)gpt-image-latest- Alias untuk gpt-image-2.5-flaregpt-image-2- Flagship generasi sebelumnyagpt-image-1.5- Flagship lama (mendukung latar belakang transparan)gpt-image-1- Pembuatan gambar kualitas penuhgpt-image-1-mini- Lebih cepat, gambar lebih kecil
Contoh
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))
Edit Gambar
Edit gambar yang sudah ada menggunakan prompt teks. Mendukung JSON (string base64) dan multipart/form-data (upload file), jadi SDK OpenAI langsung bisa dipakai.
Parameter Request Body
| Parameter | Tipe | Deskripsi |
|---|---|---|
| prompt | string | Deskripsi teks dari edit yang diinginkan (wajib) |
| image | string | Gambar berkode base64 untuk diedit (wajib) |
| model | string | "gpt-image-2.5-flare" (default), "gpt-image-2.5-sunburst", atau "gpt-image-2" |
| n | integer | Jumlah gambar hasil edit yang akan dibuat (1-10). Default: 1 |
| size | string | "1024x1024", "1024x1792", atau "1792x1024". Default: "1024x1024" |
| quality | string | "low", "medium", "high", atau "auto". Default: "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.
Contoh
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 dengan WebSocket
WebSockets adalah API yang didukung luas untuk transfer data realtime, dan pilihan yang tepat untuk terhubung ke Smart AIPI Realtime API dalam aplikasi server-to-server.
Dalam integrasi server-to-server, sistem backend Anda terhubung via WebSocket langsung ke Realtime API. Gunakan API key standar untuk mengautentikasi koneksi, karena token hanya tersedia di server backend aman Anda.
Hubungkan via WebSocket
Di bawah ini ada beberapa contoh koneksi via WebSocket. Selain menggunakan URL WebSocket, Anda juga perlu mengirim header autentikasi menggunakan API key Anda.
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);
});
Mengirim dan Menerima Event
Sesi dikelola menggunakan event JSON yang dikirim client dan server melalui koneksi WebSocket. Bungkus request Anda dalam envelope response.create :
| Event | Arah | Deskripsi |
|---|---|---|
| response.create | Client | Kirim request (membungkus model, input, dan parameter Anda) |
| response.created | Server | Sesi diterima, pemrosesan dimulai |
| response.output_text.delta | Server | Potongan teks streaming |
| response.completed | Server | Event terminal dengan respons penuh dan penggunaan |
| response.failed | Server | Event terminal yang menunjukkan error |
"store": false di envelope respons. Koneksi tetap aktif untuk beberapa giliran - kirim frame response.create tambahan tanpa menyambung ulang.
Daftar Model
Ambil daftar semua model yang tersedia. Gunakan endpoint ini untuk mengetahui model mana yang tersedia untuk akun Anda secara dinamis.
Format Respons
{
"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
]
}
Contoh
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)
Model yang Tersedia
Seri GPT
- gpt-6-astra Terbaru
- 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 hanya completions
Seri Codex
- gpt-5.3-codex
- gpt-5.2-codex
- gpt-5.2
- gpt-5.1
Anthropic Messages API
Kompatibilitas penuh dengan Anthropic Messages API. Gunakan SDK Anthropic apa pun, Claude Code, atau aplikasi yang memakai protokol Anthropic - cukup ganti base URL.
Fitur yang Didukung
- ✓ Streaming (protokol event SSE Anthropic penuh)
- ✓ Penggunaan tool / function calling
- ✓ System messages (format string dan array)
- ✓ Input gambar (base64 dan URL)
- ✓ Penghitungan Token (
/v1/messages/count_tokens) - ✓ Pemikiran / reasoning lanjutan
Contoh Kode
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)
Pemetaan Model
Nama model Claude diterima dan secara otomatis diarahkan ke GPT-5.4 dengan effort reasoning bertingkat. Setiap respons menyertakan header x-actual-model yang menampilkan model backend asli.
| Model Claude | Backend | Reasoning | Paling Cocok Untuk |
|---|---|---|---|
| claude-opus-4-6 | gpt-5.4 | Tinggi | Reasoning kompleks, arsitektur |
| claude-sonnet-4-5-20250929 | gpt-5.4 | Sedang | Coding harian, kualitas seimbang |
| claude-haiku-4-5-20251001 | gpt-5.4 | Rendah | Respons cepat, tugas sederhana |
Claude Code
Gunakan Claude Code dengan Smart AIPI sebagai backend. Mendukung penuh penggunaan tool, streaming, dan kapabilitas agentic.
Setup Otomatis
npx smart-aipi claude
Ini akan mengonfigurasi ~/.claude/settings.json dan ~/.claude.json secara otomatis. Jika Anda sudah menyiapkan Claude Code dengan akun Anthropic, Anda akan melihat config manual alih-alih ditimpa.
Setup Manual
Tambahkan ke ~/.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"
}
Lalu tambahkan "hasCompletedOnboarding": true ke ~/.claude.json untuk melewati setup wizard.
Setelah mengedit pengaturan, restart Claude Code agar perubahan berlaku. Jika Anda sudah menghubungkan Claude Code ke akun Anthropic asli, mengatur env vars ini akan menimpa koneksi tersebut - gunakan .claude/settings.json tingkat proyek agar bisa memakai keduanya.
Fungsi Tiap Pengaturan
"model": "opus"— Model utama. Menggunakan claude-opus-4-6 (reasoning tinggi) untuk semua tugas utama.ANTHROPIC_DEFAULT_HAIKU_MODEL— Model latar belakang. Menggunakan claude-haiku-4-5 (reasoning rendah) untuk tugas latar belakang cepat seperti pengindeksan file.- Ganti model di tengah sesi dengan
/model sonnet,/model opus, atau/model haiku.
| Alias | Model Claude | Backend | Reasoning |
|---|---|---|---|
| opus | claude-opus-4-6 | gpt-5.4 | Tinggi |
| sonnet | claude-sonnet-4-5-20250929 | gpt-5.4 | Sedang |
| haiku | claude-haiku-4-5-20251001 | gpt-5.4 | Rendah |
OpenCode
Gunakan Smart AIPI sebagai backend OpenCode Anda melalui SDK kompatibel OpenAI.
Setup Config
{
"$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
Gunakan Smart AIPI dengan tool Codex CLI milik OpenAI. Tiga file perlu dikonfigurasi.
Setup Otomatis
npx smart-aipi codex
Ini akan mengonfigurasi ketiga file di bawah secara otomatis. Setelah dijalankan, tambahkan model_reasoning_effort ke config Anda (lihat langkah 2).
Setup Manual
Konfigurasikan tiga file ini:
1. API Key — ~/.codex/auth.json
{
"auth_mode": "apikey",
"OPENAI_API_KEY": "sk-your-key"
}
2. Model & Reasoning — ~/.codex/config.toml
Selalu sertakan model_reasoning_effort - wajib untuk model kustom.
Tanpanya, Codex default ke tanpa reasoning dan tidak akan bekerja dengan baik. Gunakan "high" untuk hasil terbaik.
model = "gpt-6-astra"
model_reasoning_effort = "high"
Level reasoning yang valid: low, medium, high (disarankan), xhigh.
3. Environment Variables — ~/.zshrc
# Smart AIPI
export OPENAI_API_KEY="sk-your-key"
export OPENAI_BASE_URL="https://api.smartaipi.com/v1"
Setelah mengedit profil shell Anda, restart terminal atau jalankan source ~/.zshrc agar perubahan berlaku.
Lalu gunakan Codex seperti biasa:
codex "fix this bug"
Panduan Kecepatan Codex WebSocket
Mode WebSocket biasanya lebih cepat untuk alur coding agentic dengan banyak tool call. Alih-alih berulang kali menyambung ulang lewat HTTP dan mengirim ulang envelope request penuh, Codex mempertahankan satu koneksi aktif dan mengirim giliran incremental, yang mengurangi overhead continuation.
Aktifkan WebSockets di Codex
Gunakan feature flag WebSocket v2 di ~/.codex/config.toml: ~/.codex/config.toml:
model = "gpt-6-astra"
model_reasoning_effort = "high"
[features]
responses_websockets_v2 = true
Versi CLI yang setara:
codex --enable responses_websockets_v2
Build yang lebih lama mungkin menggunakan flag lawas:
[features]
responses_websockets = true
Perilaku Homebrew yang Diketahui
Pada beberapa build yang didistribusikan lewat Homebrew, giliran WebSocket bisa macet selama tugas berjalan lama lalu diam-diam fallback ke HTTP. Kami terutama melihat ini pada loop tool-call yang kompleks. Membangun ulang dari kode open-source dengan perbaikan di bawah meningkatkan stabilitas dan kecepatan.
Setelah Merge: Perbaiki Bug WebSocket Open-Source
Setelah merge branch Anda, gunakan checklist ini untuk memastikan perbaikannya ada di binary lokal Anda:
# 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
Jika Anda perlu melakukan patch manual, pastikan perbaikan level kode ini ada:
# 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
Gunakan Smart AIPI dengan Cursor IDE atau ekstensi Cline VS Code.
Cursor
- Buka Cursor Settings
- Masuk ke tab
Modelstab - Klik
+ Add Model - Atur Base URL:
https://api.smartaipi.com/v1 - Masukkan API key Anda
- Model:
gpt-6-astra
Cline (VS Code)
- Buka pengaturan Cline di VS Code
- Pilih
OpenAI Compatible - Base URL:
https://api.smartaipi.com/v1 - Masukkan API key Anda
- Model:
gpt-6-astra
Chat
Gunakan Smart AIPI Chat di chat.smartaipi.com. untuk alur kerja teks, gambar, video, kode, pencarian, dan suara.
Fitur
- ✓ Chat — Percakapan teks serbaguna dengan model Smart AIPI.
- ✓ Gambar — Buat dan edit gambar dari prompt.
- ✓ Video — Buat video dari input teks atau gambar.
- ✓ Kode — Bantuan dan pengeditan kode di browser.
- ✓ Pencarian — Gunakan pencarian web untuk jawaban yang lebih grounded.
- ✓ Suara — Berbicara dengan model menggunakan input dan respons suara.
Memulai
- 1. Buka chat.smartaipi.com
- 2. Masuk atau buat akun.
- 3. Mulai chat dengan teks, gambar, video, kode, pencarian, atau suara.
Penagihan: Penggunaan ditagihkan ke kredit Smart AIPI Anda.
Penguji API
Uji API langsung dari browser Anda: