Tài liệu
Smart AIPI cung cấp cả API tương thích OpenAI và Anthropic. Dùng dịch vụ của chúng tôi với bất kỳ OpenAI hoặc Anthropic SDK, công cụ hay ứng dụng hiện có nào chỉ bằng cách đổi base URL. Không cần thay đổi code.
Base URL của OpenAI
https://api.smartaipi.com/v1
Base URL của Anthropic
https://api.smartaipi.com
Công cụ CLI & MCP
Smart AIPI cung cấp hai package npm để giúp developer làm việc với tài khoản của họ:
Cài cả hai
npm install -g smart-aipi @smart-aipi/mcp
Cài riêng lẻ
npm install -g smart-aipi
npm install -g @smart-aipi/mcp
Xác thực
Tất cả API request đều yêu cầu API key. Cùng một key hoạt động với cả hai phương thức xác thực:
Authorization: Bearer YOUR_API_KEY
x-api-key: YOUR_API_KEY
Hướng dẫn chuyển đổi
Việc chuyển đổi mất chưa đến một phút. API của chúng tôi tương thích 100% với cả endpoint OpenAI và Anthropic.
Từ OpenAI
Lấy Smart AIPI API key của bạn
Đăng ký và tạo API key từ dashboard của bạn.
Đổi base URL
Thay thế https://api.openai.com/v1 bằng https://api.smartaipi.com/v1
Cập nhật API key của bạn
Dùng key Smart AIPI của bạn thay cho key OpenAI. Chỉ vậy thôi!
Từ Anthropic
Lấy Smart AIPI API key của bạn
Đăng ký và tạo API key từ dashboard của bạn.
Đổi base URL
Thay thế https://api.anthropic.com bằng https://api.smartaipi.com
Cập nhật API key của bạn
Dùng key Smart AIPI của bạn thay cho key Anthropic. Tên model Claude hiện tại vẫn hoạt động như cũ.
Code, SDK và ứng dụng hiện tại của bạn dùng Anthropic Messages API sẽ hoạt động mà không cần thay đổi code. Tên model Claude (claude-opus-4-6, claude-sonnet-4-5-20250929, claude-haiku-4-5-20251001) được tự động định tuyến đến các model GPT-5.4 hiệu năng cao. Mỗi phản hồi đều bao gồm một x-actual-model header hiển thị model backend thực để minh bạch hoàn toàn.
Hoàn thành cuộc trò chuyện
Tạo chat completion cho messages và model được cung cấp. Đây là endpoint chính để tương tác với language models.
Tham số phần thân request
| Tham số | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
| model | chuỗi | Có | ID model cần dùng (ví dụ: "gpt-6-astra", "gpt-5.6-sol") |
| messages | mảng | Có | Mảng object message gồm role và content |
| temperature | số | Không | Nhiệt độ lấy mẫu (0-2). Cao hơn = ngẫu nhiên hơn. Mặc định: 1 |
| max_tokens | số nguyên | Không | Số tokens tối đa để tạo trong phản hồi |
| top_p | số | Không | Nucleus sampling. Xét các tokens có xác suất top_p. Mặc định: 1 |
| frequency_penalty | số | Không | Phạt tokens dựa trên tần suất (-2 đến 2). Mặc định: 0 |
| presence_penalty | số | Không | Phạt tokens dựa trên sự hiện diện (-2 đến 2). Mặc định: 0 |
| stop | chuỗi/mảng | Không | Chuỗi dừng. Tối đa 4 chuỗi nơi quá trình sinh sẽ dừng lại. |
| stream | boolean | Không | Bật phản hồi streaming qua SSE. Mặc định: false |
Vai trò của message
system- system - Thiết lập hành vi/persona của assistantuser- user - Tin nhắn từ người dùngassistant- assistant - Các phản hồi trước đó từ assistant
Ví dụ code
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
Bật streaming để nhận tokens ngay khi chúng được tạo qua Server-Sent Events (SSE). Điều này mang lại trải nghiệm người dùng tốt hơn cho các phản hồi dài.
Đặt "stream": true trong request của bạn để bật streaming.
Ví dụ 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="")
Mức độ Reasoning
Kiểm soát độ sâu reasoning bằng tham số reasoning_effort cho các model GPT-5.
Smart AIPI mặc định dùng reasoning.effort = "high" cho tất cả request của Responses API.
Sau khi thử nghiệm rộng rãi, chúng tôi nhận thấy rằng high là reasoning effort tốt nhất cho việc sử dụng thực tế - nó cung cấp khả năng dùng tool và phân tích sâu, đáng tin cậy mà không phải trả giá về độ trễ như xhigh. Bạn có thể ghi đè điều này bằng cách đặt reasoning effort rõ ràng trong request của mình.
Smart AIPI mặc định đặt store = false cho tất cả request của Responses API và WebSocket.
API upstream yêu cầu store: false cho GPT-5.4 và các model mới hơn. Nếu bạn đặt rõ ràng store: true trong request của bạn, bạn sẽ nhận lỗi "Store must be set to false". Hãy xóa nó hoặc đặt thành false.
Model được hỗ trợ
Phản hồi API
gpt-5.4, gpt-5.3, gpt-5.1, gpt-5 và tất cả biến thể Codex
Chỉ Chat Completions
gpt-5.4-nano — hỗ trợ reasoning chỉ khả dụng trên /v1/chat/completions .
Các mức Reasoning Effort
none- Không reasoning. Bỏ qua việc suy nghĩ hoàn toàn.low- Reasoning tối thiểu. Rất phù hợp cho tác vụ đơn giản.medium- Cân bằng giữa tốc độ và độ sâu.high- Phân tích sâu cho các vấn đề phức tạp. (Mặc định của Smart AIPI)xhigh- Cực cao. Độ sâu reasoning tối đa cho những vấn đề khó nhất.
Fast Mode (Xử lý ưu tiên)
Sử dụng service_tier: "priority" để xử lý ưu tiên với độ trễ thấp hơn. Đây là thứ mà lệnh /fast trong Codex CLI dùng đến. Nó không thay đổi độ sâu reasoning - bạn vẫn có cùng chất lượng, chỉ nhanh hơn.
Giá: Xử lý ưu tiên được tính phí ở mức 1.5x so với mức chuẩn. Ví dụ, output của GPT-5.4 thông thường có giá $3.75/1M tokens - với ưu tiên sẽ là $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
)
Phản hồi 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
)
Tạo ảnh
Tạo ảnh từ prompt văn bản bằng endpoint tạo ảnh của chúng tôi.
/v1/images/variations ) hiện chưa được hỗ trợ. Chỉnh sửa ảnh có sẵn qua /v1/images/edits.
Tham số phần thân request
| Tham số | Kiểu | Mô tả |
|---|---|---|
| prompt | chuỗi | Mô tả văn bản của ảnh cần tạo (bắt buộc) |
| model | chuỗi | "gpt-image-2.5-flare" (frontier), "gpt-image-2.5-sunburst", hoặc "gpt-image-2". Mặc định: "gpt-image-2.5-flare" |
| n | số nguyên | Số ảnh cần tạo (1-10). Mặc định: 1 |
| size | chuỗi | "1024x1024", "1024x1792", hoặc "1792x1024". Mặc định: "1024x1024" |
| quality | chuỗi | "standard" hoặc "hd". Mặc định: "standard" |
Các model có sẵn
gpt-image-2.5-flare- Model frontier, chất lượng cao nhất (mặc định)gpt-image-2.5-sunburst- Chỉnh sửa chính xác và công việc sáng tạo cao cấp (tạo ảnh chậm hơn)gpt-image-latest- Bí danh cho gpt-image-2.5-flaregpt-image-2- Mẫu flagship thế hệ trướcgpt-image-1.5- Mẫu flagship cũ hơn (hỗ trợ nền trong suốt)gpt-image-1- Tạo ảnh chất lượng đầy đủgpt-image-1-mini- Nhanh hơn, ảnh nhỏ hơn
Ví dụ
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))
Chỉnh sửa ảnh
Chỉnh sửa ảnh hiện có bằng prompt văn bản. Hỗ trợ cả JSON (chuỗi base64) và multipart/form-data (upload file), nên OpenAI SDKs hoạt động ngay.
Tham số phần thân request
| Tham số | Kiểu | Mô tả |
|---|---|---|
| prompt | chuỗi | Mô tả văn bản cho chỉnh sửa mong muốn (bắt buộc) |
| image | chuỗi | Ảnh mã hóa base64 để chỉnh sửa (bắt buộc) |
| model | chuỗi | "gpt-image-2.5-flare" (mặc định), "gpt-image-2.5-sunburst", hoặc "gpt-image-2" |
| n | số nguyên | Số ảnh chỉnh sửa cần tạo (1-10). Mặc định: 1 |
| size | chuỗi | "1024x1024", "1024x1792", hoặc "1792x1024". Mặc định: "1024x1024" |
| quality | chuỗi | "low", "medium", "high" hoặc "auto". Mặc định: "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.
Ví dụ
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 với WebSocket
WebSockets là một API được hỗ trợ rộng rãi cho truyền dữ liệu thời gian thực, và là lựa chọn tuyệt vời để kết nối tới Smart AIPI Realtime API trong các ứng dụng server-to-server.
Trong tích hợp server-to-server, hệ thống backend của bạn kết nối qua WebSocket trực tiếp tới Realtime API. Hãy dùng một phím API chuẩn để xác thực kết nối, vì token chỉ khả dụng trên backend server bảo mật của bạn.
Kết nối qua WebSocket
Dưới đây là một số ví dụ kết nối qua WebSocket. Ngoài việc dùng WebSocket URL, bạn cũng cần truyền header xác thực bằng API key của mình.
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);
});
Gửi và nhận sự kiện
Các phiên được quản lý bằng các sự kiện JSON do client gửi và server gửi qua kết nối WebSocket. Gói request của bạn trong một response.create phong bì:
| Sự kiện | Hướng | Mô tả |
|---|---|---|
| response.create | Khách hàng | Gửi một request (gói model, input và tham số của bạn) |
| response.created | Máy chủ | Phiên được chấp nhận, bắt đầu xử lý |
| response.output_text.delta | Máy chủ | Đoạn văn bản streaming |
| response.completed | Máy chủ | Sự kiện kết thúc với phản hồi đầy đủ và mức sử dụng |
| response.failed | Máy chủ | Sự kiện kết thúc cho biết có lỗi |
"store": false trong response envelope. Kết nối sẽ được giữ qua nhiều lượt - gửi thêm các frame response.create mà không cần kết nối lại.
Danh sách model
Lấy danh sách tất cả model hiện có. Dùng endpoint này để khám phá động các model khả dụng cho tài khoản của bạn.
Định dạng phản hồi
{
"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
]
}
Ví dụ
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)
Các model có sẵn
Dòng GPT
- gpt-6-astra Mới nhất
- 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 chỉ completions
Dòng Codex
- gpt-5.3-codex
- gpt-5.2-codex
- gpt-5.2
- gpt-5.1
Anthropic Tin nhắn API
Tương thích đầy đủ với Anthropic Messages API. Dùng bất kỳ Anthropic SDK, Claude Code hoặc ứng dụng nào dùng giao thức Anthropic - chỉ cần đổi base URL.
Tính năng được hỗ trợ
- ✓ Streaming (đầy đủ giao thức sự kiện Anthropic SSE)
- ✓ Dùng tool / function calling
- ✓ System messages (định dạng string và array)
- ✓ Input hình ảnh (base64 và URL)
- ✓ Đếm token (
/v1/messages/count_tokens) - ✓ Suy nghĩ mở rộng / reasoning effort
Ví dụ code
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)
Ánh xạ model
Tên model Claude được chấp nhận và tự động định tuyến đến GPT-5.4 với reasoning effort theo tầng. Mỗi phản hồi đều bao gồm một x-actual-model header hiển thị model backend thực.
| Claude Mẫu | Phần phụ trợ | Lý luận | Phù hợp nhất cho |
|---|---|---|---|
| claude-opus-4-6 | gpt-5.4 | Cao | Reasoning phức tạp, kiến trúc |
| claude-sonnet-4-5-20250929 | gpt-5.4 | Trung bình | Lập trình hằng ngày, chất lượng cân bằng |
| claude-haiku-4-5-20251001 | gpt-5.4 | Thấp | Phản hồi nhanh, tác vụ đơn giản |
Claude Code
Dùng Claude Code với Smart AIPI làm backend. Hỗ trợ đầy đủ tool use, streaming và khả năng agentic.
Thiết lập tự động
npx smart-aipi claude
Thiết lập này sẽ tự động cấu hình ~/.claude/settings.json và ~/.claude.json Nếu bạn đã thiết lập Claude Code với tài khoản Anthropic, hệ thống sẽ hiển thị cấu hình thủ công thay vì ghi đè.
Thiết lập thủ công
Thêm vào ~/.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"
}
Sau đó thêm "hasCompletedOnboarding": true vào ~/.claude.json để bỏ qua trình hướng dẫn thiết lập.
Sau khi chỉnh sửa cài đặt, hãy khởi động lại Claude Code để thay đổi có hiệu lực. Nếu bạn đã kết nối Claude Code với tài khoản Anthropic thật, việc đặt các env vars này sẽ ghi đè kết nối đó - hãy dùng .claude/settings.json ở cấp dự án để giữ cả hai.
Ý nghĩa của từng thiết lập
"model": "opus"— Model chính. Dùng claude-opus-4-6 (reasoning cao) cho tất cả tác vụ chính.ANTHROPIC_DEFAULT_HAIKU_MODEL— Model nền. Dùng claude-haiku-4-5 (reasoning thấp) cho các tác vụ nền nhanh như đánh chỉ mục file.- Chuyển model giữa chừng trong phiên bằng
/model sonnet,/model opus, hoặc/model haiku.
| Bí danh | Claude Mẫu | Phần phụ trợ | Lý luận |
|---|---|---|---|
| opus | claude-opus-4-6 | gpt-5.4 | Cao |
| sonnet | claude-sonnet-4-5-20250929 | gpt-5.4 | Trung bình |
| haiku | claude-haiku-4-5-20251001 | gpt-5.4 | Thấp |
OpenCode
Dùng Smart AIPI làm backend OpenCode của bạn thông qua SDK tương thích OpenAI.
Thiết lập 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
Dùng Smart AIPI với công cụ Codex CLI của OpenAI. Cần cấu hình ba file.
Thiết lập tự động
npx smart-aipi codex
Thiết lập này sẽ tự động cấu hình cả ba file dưới đây. Sau khi chạy, thêm model_reasoning_effort vào config của bạn (xem bước 2).
Thiết lập thủ công
Cấu hình ba file này:
1. API Chìa khóa — ~/.codex/auth.json
{
"auth_mode": "apikey",
"OPENAI_API_KEY": "sk-your-key"
}
2. Mô hình & Lý luận — ~/.codex/config.toml
Luôn bao gồm model_reasoning_effort - bắt buộc cho custom models.
Nếu không có, Codex mặc định sẽ không reasoning và sẽ không hoạt động đúng. Hãy dùng "high" để có kết quả tốt nhất.
model = "gpt-6-astra"
model_reasoning_effort = "high"
Các mức reasoning hợp lệ: low, medium, high (khuyên dùng), xhigh.
3. Biến môi trường — ~/.zshrc
# Smart AIPI
export OPENAI_API_KEY="sk-your-key"
export OPENAI_BASE_URL="https://api.smartaipi.com/v1"
Sau khi chỉnh sửa shell profile của bạn, hãy khởi động lại terminal hoặc chạy source ~/.zshrc để thay đổi có hiệu lực.
Sau đó dùng Codex như bình thường:
codex "fix this bug"
Hướng dẫn tăng tốc Codex WebSocket
Chế độ WebSocket thường nhanh hơn cho các luồng lập trình agentic có nhiều tool call. Thay vì liên tục kết nối lại qua HTTP và gửi lại toàn bộ request envelope, Codex giữ một kết nối sống duy nhất và gửi các lượt tăng dần, giúp giảm overhead continuation.
Bật WebSockets trong Codex
Dùng cờ tính năng WebSocket v2 trong ~/.codex/config.toml: ~/.codex/config.toml:
model = "gpt-6-astra"
model_reasoning_effort = "high"
[features]
responses_websockets_v2 = true
Tương đương trong CLI:
codex --enable responses_websockets_v2
Các bản build cũ có thể dùng cờ legacy:
[features]
responses_websockets = true
Hành vi Homebrew đã biết
Trên một số bản build được phân phối qua Homebrew, các lượt WebSocket có thể bị treo trong các tác vụ chạy dài rồi âm thầm rơi về HTTP. Chúng tôi thấy điều này đặc biệt xảy ra trong các vòng lặp tool-call phức tạp. Build lại từ mã nguồn mở với các bản sửa bên dưới đã cải thiện cả độ ổn định lẫn tốc độ.
Sau khi merge: Sửa lỗi WebSocket mã nguồn mở trong Codex
Sau khi merge nhánh của bạn, dùng checklist này để đảm bảo bản sửa đã có trong binary cục bộ:
# 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
Nếu bạn cần vá thủ công, hãy xác minh các bản sửa cấp code này có mặt:
# 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"] }
Con trỏ & Cline
Dùng Smart AIPI với Cursor IDE hoặc extension Cline cho VS Code.
Cursor
- Mở Cursor Settings
- Đi tới tab
Modelsthẻ - Nhấp
+ Add Model - Đặt Base URL:
https://api.smartaipi.com/v1 - Nhập API key của bạn
- Người mẫu:
gpt-6-astra
Cline (VS Code)
- Mở cài đặt Cline trong VS Code
- Chọn
OpenAI Compatible - Cơ sở URL:
https://api.smartaipi.com/v1 - Nhập API key của bạn
- Người mẫu:
gpt-6-astra
Trò chuyện
Sử dụng Smart AIPI Chat tại chat.smartaipi.com. cho các workflow văn bản, ảnh, video, code, search và giọng nói.
Tính năng
- ✓ Trò chuyện — Hội thoại văn bản đa dụng với các model Smart AIPI.
- ✓ Hình ảnh — Tạo và chỉnh sửa ảnh từ prompt.
- ✓ Băng hình — Tạo video từ văn bản hoặc hình ảnh đầu vào.
- ✓ Mã số — Hỗ trợ và chỉnh sửa code ngay trong trình duyệt.
- ✓ Tìm kiếm — Dùng tìm kiếm web để có câu trả lời bám sát thực tế.
- ✓ Giọng nói — Nói chuyện với model bằng giọng nói và nhận phản hồi bằng giọng nói.
Bắt đầu
- 1. Mở chat.smartaipi.com
- 2. Đăng nhập hoặc tạo tài khoản.
- 3. Bắt đầu chat với văn bản, ảnh, video, code, search hoặc giọng nói.
Thanh toán: Mức sử dụng sẽ được tính vào credits Smart AIPI của bạn.
Trình kiểm tra API
Test API trực tiếp từ trình duyệt của bạn: