เอกสาร
Smart AIPI รองรับทั้ง APIs ที่เข้ากันได้กับ OpenAI และ Anthropic ใช้บริการของเราได้กับ OpenAI หรือ Anthropic SDK, tool หรือแอปที่มีอยู่เดิม เพียงแค่เปลี่ยน base URL โดยไม่ต้องแก้โค้ดเลย
OpenAI ฐาน URL
https://api.smartaipi.com/v1
Anthropic ฐาน URL
https://api.smartaipi.com
CLI และ MCP Tools
Smart AIPI มี npm packages สองตัวเพื่อช่วยให้นักพัฒนาจัดการบัญชีของตนได้สะดวกขึ้น:
ติดตั้งทั้งสองอย่าง
npm install -g smart-aipi @smart-aipi/mcp
ติดตั้งแยกกัน
npm install -g smart-aipi
npm install -g @smart-aipi/mcp
การยืนยันตัวตน
ทุก API request ต้องใช้ API key โดย key เดียวกันใช้ได้กับทั้งสองวิธีการยืนยันตัวตน:
Authorization: Bearer YOUR_API_KEY
x-api-key: YOUR_API_KEY
คู่มือการย้ายระบบ
การย้ายใช้งานใช้เวลาไม่ถึงหนึ่งนาที API ของเรารองรับทั้ง OpenAI และ Anthropic endpoints แบบเข้ากันได้ 100%
จาก OpenAI
รับ Smart AIPI API key ของคุณ
สมัครสมาชิกและสร้าง API key จาก dashboard ของคุณ
เปลี่ยน base URL
แทนที่ https://api.openai.com/v1 ด้วย https://api.smartaipi.com/v1
อัปเดต API key ของคุณ
ใช้ Smart AIPI key ของคุณแทน OpenAI key แค่นั้นเลย!
จาก Anthropic
รับ Smart AIPI API key ของคุณ
สมัครสมาชิกและสร้าง API key จาก dashboard ของคุณ
เปลี่ยน base URL
แทนที่ https://api.anthropic.com ด้วย https://api.smartaipi.com
อัปเดต API key ของคุณ
ใช้ Smart AIPI key ของคุณแทน Anthropic key ชื่อโมเดล Claude เดิมของคุณยังใช้ได้เหมือนเดิม
โค้ด, SDKs และแอปเดิมของคุณที่ใช้ Anthropic Messages API จะทำงานได้โดยไม่ต้องเปลี่ยนโค้ดเลย ชื่อโมเดล Claude (claude-opus-4-6, claude-sonnet-4-5-20250929, claude-haiku-4-5-20251001) จะถูก route อัตโนมัติไปยังโมเดล GPT-5.4 ประสิทธิภาพสูง ทุก response จะมี x-actual-model header ที่แสดง backend model จริงเพื่อความโปร่งใสเต็มรูปแบบ
เสร็จสิ้นการแชท
สร้าง chat completion จาก messages และ model ที่ระบุ นี่คือ endpoint หลักสำหรับการใช้งาน language models
พารามิเตอร์ใน Request Body
| พารามิเตอร์ | ประเภท | จำเป็น | คำอธิบาย |
|---|---|---|---|
| model | สตริง | ใช่ | Model ID ที่จะใช้ (เช่น "gpt-6-astra", "gpt-5.6-sol") |
| messages | อาร์เรย์ | ใช่ | array ของ message objects ที่มี role และ content |
| temperature | ตัวเลข | ไม่ | ค่า sampling temperature (0-2) ยิ่งสูง = ยิ่งสุ่มมากขึ้น ค่าเริ่มต้น: 1 |
| max_tokens | จำนวนเต็ม | ไม่ | จำนวน tokens สูงสุดที่จะสร้างใน response |
| top_p | ตัวเลข | ไม่ | Nucleus sampling พิจารณา tokens ตามความน่าจะเป็น top_p ค่าเริ่มต้น: 1 |
| frequency_penalty | ตัวเลข | ไม่ | ลงโทษ tokens ตามความถี่ (-2 ถึง 2) ค่าเริ่มต้น: 0 |
| presence_penalty | ตัวเลข | ไม่ | ลงโทษ tokens ตามการมีอยู่ (-2 ถึง 2) ค่าเริ่มต้น: 0 |
| stop | สตริง/อาร์เรย์ | ไม่ | ลำดับหยุด สูงสุด 4 ลำดับที่การสร้างจะหยุด |
| stream | บูลีน | ไม่ | เปิดใช้งาน streaming responses ผ่าน SSE ค่าเริ่มต้น: false |
บทบาทของข้อความ
system- system - กำหนดพฤติกรรม/บุคลิกของ assistantuser- user - ข้อความจากผู้ใช้assistant- assistant - responses ก่อนหน้าจาก 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) ซึ่งช่วยให้ประสบการณ์ผู้ใช้ดีขึ้นสำหรับ responses ที่ยาว
ตั้งค่า "stream": true ใน request ของคุณเพื่อเปิดใช้งาน 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 requests ทั้งหมด
หลังจากทดสอบอย่างกว้างขวาง เราพบว่า high คือ reasoning effort ที่ดีที่สุดสำหรับการใช้งานจริง — ให้การใช้ tools และการวิเคราะห์ที่ลึกและเชื่อถือได้ โดยไม่ต้องแลกกับ latency แบบ xhigh. คุณสามารถ override ได้โดยการตั้งค่า reasoning effort เองใน request
Smart AIPI ใช้ค่าเริ่มต้น store = false สำหรับ Responses API และ WebSocket requests ทั้งหมด
upstream API กำหนดให้ใช้ store: false สำหรับ GPT-5.4 และโมเดลใหม่กว่า ถ้าคุณตั้งค่า store: true ใน requests ของคุณ คุณจะได้รับข้อผิดพลาด "Store must be set to false" ให้ลบออกหรือตั้งค่าเป็น false.
โมเดลที่รองรับ
คำตอบ API
gpt-5.4, gpt-5.3, gpt-5.1, gpt-5 และ Codex variants ทั้งหมด
Chat Completions เท่านั้น
gpt-5.4-nano — รองรับ reasoning เฉพาะบน /v1/chat/completions .
ระดับ Reasoning Effort
none- ไม่มี reasoning ข้ามการคิดทั้งหมดlow- reasoning ขั้นต่ำ เหมาะมากสำหรับงานง่าย ๆmedium- สมดุลระหว่างความเร็วและความลึกhigh- การวิเคราะห์เชิงลึกสำหรับปัญหาที่ซับซ้อน (ค่าเริ่มต้นของ Smart AIPI)xhigh- สูงเป็นพิเศษ ความลึกของ reasoning สูงสุดสำหรับปัญหาที่ยากที่สุด
โหมดเร็ว (Priority Processing)
ใช้ service_tier: "priority" สำหรับ priority processing ที่มี latency ต่ำลง นี่คือสิ่งที่คำสั่ง /fast ใน Codex CLI ใช้งาน มันไม่ได้เปลี่ยนความลึกของ reasoning — คุณจะได้คุณภาพเท่าเดิม แต่เร็วขึ้น
ราคา: priority processing จะถูกคิดค่าบริการที่ 1.5x ของอัตรามาตรฐาน ตัวอย่างเช่น GPT-5.4 output ปกติราคา $3.75/1M tokens — ถ้าใช้ priority จะเป็น $5.625/1M tokens
response = client.responses.create(
model="gpt-6-astra",
input="Refactor this function",
service_tier="priority" # priority processing, lower latency
)
เสร็จสิ้นการแชท API
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
)
การสร้างรูปภาพ
สร้างรูปภาพจาก text prompts ด้วย image generation endpoint ของเรา
/v1/images/variations ) ยังไม่รองรับในตอนนี้ Image edits ใช้งานได้ผ่าน /v1/images/edits.
พารามิเตอร์ใน Request Body
| พารามิเตอร์ | ประเภท | คำอธิบาย |
|---|---|---|
| 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- Alias สำหรับ 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))
การแก้ไขรูปภาพ
แก้ไขรูปภาพที่มีอยู่ด้วย text prompt รองรับทั้ง JSON (สตริง base64) และ multipart/form-data (อัปโหลดไฟล์) ดังนั้น OpenAI SDKs จึงใช้งานได้ทันที
พารามิเตอร์ใน Request Body
| พารามิเตอร์ | ประเภท | คำอธิบาย |
|---|---|---|
| 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
WebSockets WebSockets เป็น API ที่รองรับอย่างกว้างขวางสำหรับการส่งข้อมูลแบบ realtime และเป็นตัวเลือกที่ยอดเยี่ยมสำหรับการเชื่อมต่อกับ Smart AIPI Realtime API ในแอปพลิเคชันแบบ server-to-server
ในการเชื่อมต่อแบบ server-to-server ระบบ backend ของคุณจะเชื่อมต่อผ่าน WebSocket ไปยัง Realtime API โดยตรง ใช้ API มาตรฐานเพื่อยืนยันตัวตนการเชื่อมต่อ เพราะ token นี้มีอยู่ได้เฉพาะบน backend server ที่ปลอดภัยของคุณเท่านั้น
เชื่อมต่อผ่าน WebSocket
ด้านล่างนี้เป็นตัวอย่างหลายแบบของการเชื่อมต่อผ่าน WebSocket นอกจากการใช้ WebSocket URL แล้ว คุณยังต้องส่ง authentication header โดยใช้ 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);
});
การส่งและรับ Events
sessions ถูกจัดการด้วย JSON events ที่ส่งจาก client และ server ผ่านการเชื่อมต่อ WebSocket ให้ครอบ request ของคุณไว้ใน response.create ซองจดหมาย:
| อีเวนต์ | ทิศทาง | คำอธิบาย |
|---|---|---|
| response.create | ไคลเอนต์ | ส่ง request (ครอบ model, input และพารามิเตอร์ของคุณ) |
| response.created | เซิร์ฟเวอร์ | session ได้รับการยอมรับแล้ว เริ่มประมวลผล |
| response.output_text.delta | เซิร์ฟเวอร์ | ข้อความแบบ streaming chunk |
| response.completed | เซิร์ฟเวอร์ | event สุดท้ายที่มี response และ usage แบบเต็ม |
| response.failed | เซิร์ฟเวอร์ | event สุดท้ายที่ระบุว่ามีข้อผิดพลาด |
"store": false ใน response envelope การเชื่อมต่อจะคงอยู่ต่อเนื่องได้หลาย turns — ส่ง response.create frames เพิ่มเติมได้โดยไม่ต้องเชื่อมต่อใหม่
รายการโมเดล
ดึงรายการโมเดลทั้งหมดที่พร้อมใช้งาน ใช้ endpoint นี้เพื่อค้นหาแบบ dynamic ว่ามีโมเดลใดบ้างสำหรับบัญชีของคุณ
รูปแบบ Response
{
"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 เท่านั้น
โคเด็กซ์ซีรีส์
- gpt-5.3-codex
- gpt-5.2-codex
- gpt-5.2
- gpt-5.1
Anthropic ข้อความ API
รองรับ Anthropic Messages API เต็มรูปแบบ ใช้ได้กับ Anthropic SDK, Claude Code หรือแอปใด ๆ ที่รองรับ Anthropic protocol ได้ทันที แค่เปลี่ยน base URL
ฟีเจอร์ที่รองรับ
- ✓ Streaming (รองรับ Anthropic SSE event protocol แบบเต็ม)
- ✓ การใช้ tools / function calling
- ✓ System messages (ทั้งรูปแบบ string และ array)
- ✓ Image inputs (base64 และ URL)
- ✓ การนับ Token (
/v1/messages/count_tokens) - ✓ การคิดแบบขยาย / 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 สามารถใช้ได้และจะถูก route อัตโนมัติไปยัง GPT-5.4 พร้อม reasoning effort แบบแบ่งระดับ ทุก response จะมี x-actual-model header ที่แสดง backend model จริง
| 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 รองรับการใช้ tools, streaming และความสามารถแบบ agentic เต็มรูปแบบ
ตั้งค่าอัตโนมัติ
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 เพื่อข้าม setup wizard
หลังแก้ไขการตั้งค่าแล้ว ให้รีสตาร์ท Claude Code เพื่อให้การเปลี่ยนแปลงมีผล ถ้าคุณเชื่อมต่อ Claude Code กับบัญชี Anthropic จริงอยู่แล้ว การตั้งค่า env vars เหล่านี้จะเขียนทับการเชื่อมต่อนั้น ให้ใช้แบบระดับโปรเจกต์ .claude/settings.json เพื่อให้ใช้ได้ทั้งสองแบบ
แต่ละการตั้งค่าทำอะไรบ้าง
"model": "opus"— โมเดลหลัก ใช้ claude-opus-4-6 (reasoning สูง) สำหรับงานหลักทั้งหมดANTHROPIC_DEFAULT_HAIKU_MODEL— โมเดลเบื้องหลัง ใช้ claude-haiku-4-5 (reasoning ต่ำ) สำหรับงานเบื้องหลังที่ต้องการความเร็ว เช่น การทำดัชนีไฟล์- สลับระหว่างโมเดลระหว่าง session ได้ด้วย
/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 เป็น OpenCode backend ของคุณผ่าน OpenAI-compatible SDK
ตั้งค่า 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"
}
โคเด็กซ์ CLI
ใช้ Smart AIPI กับเครื่องมือ Codex CLI ของ OpenAI ต้องตั้งค่า 3 ไฟล์
ตั้งค่าอัตโนมัติ
npx smart-aipi codex
วิธีนี้จะตั้งค่าทั้งสามไฟล์ด้านล่างให้อัตโนมัติ หลังจากรันแล้ว ให้เพิ่ม model_reasoning_effort ลงใน config ของคุณ (ดูขั้นตอนที่ 2)
ตั้งค่าด้วยตนเอง
ตั้งค่าทั้งสามไฟล์นี้:
1. API คีย์ — ~/.codex/auth.json
{
"auth_mode": "apikey",
"OPENAI_API_KEY": "sk-your-key"
}
2. Model และ 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 profile ของคุณแล้ว ให้รีสตาร์ท terminal หรือรัน source ~/.zshrc เพื่อให้การเปลี่ยนแปลงมีผล
จากนั้นใช้ Codex ตามปกติ:
codex "fix this bug"
คู่มือความเร็ว Codex WebSocket
โหมด WebSocket มักจะเร็วกว่าในการทำ agentic coding flows ที่มีการเรียก tools จำนวนมาก แทนที่จะเชื่อมต่อใหม่ซ้ำ ๆ ผ่าน HTTP และส่ง request envelopes แบบเต็มทุกครั้ง Codex จะคงการเชื่อมต่อเดียวไว้และส่ง turns แบบ incremental ซึ่งช่วยลด continuation overhead
เปิดใช้งาน WebSockets ใน Codex
ใช้ WebSocket v2 feature flag ใน ~/.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
build รุ่นเก่าอาจใช้ flag แบบ legacy:
[features]
responses_websockets = true
พฤติกรรมที่พบใน Homebrew
ในบาง build ที่แจกจ่ายผ่าน Homebrew, WebSocket turns อาจค้างระหว่างงานที่ใช้เวลานาน แล้ว fallback กลับไปใช้ HTTP แบบเงียบ ๆ เราพบสิ่งนี้โดยเฉพาะในลูป tool-call ที่ซับซ้อน การ build ใหม่จากโค้ดโอเพนซอร์สพร้อมการแก้ไขด้านล่างช่วยเพิ่มทั้งเสถียรภาพและความเร็ว
หลัง Merge: แก้บั๊ก Open-Source WebSocket
หลัง merge branch ของคุณแล้ว ให้ใช้ checklist นี้เพื่อยืนยันว่า fix อยู่ใน local 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
ถ้าคุณต้อง patch ด้วยตัวเอง ให้ตรวจสอบว่ามีการแก้ไขระดับโค้ดเหล่านี้อยู่:
# 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 - ฐาน URL:
https://api.smartaipi.com/v1 - กรอก API key ของคุณ
- แบบอย่าง:
gpt-6-astra
แชต
ใช้ Smart AIPI Chat ที่ chat.smartaipi.com. สำหรับ workflow ด้านข้อความ รูปภาพ วิดีโอ โค้ด การค้นหา และเสียง
ฟีเจอร์
- ✓ แชต — การสนทนาข้อความทั่วไปด้วยโมเดลของ Smart AIPI
- ✓ รูปภาพ — สร้างและแก้ไขรูปภาพจาก prompts
- ✓ วิดีโอ — สร้างวิดีโอจากข้อความหรือ image inputs
- ✓ โค้ด — ช่วยเขียนและแก้ไขโค้ดในเบราว์เซอร์
- ✓ ค้นหา — ใช้การค้นหาเว็บเพื่อคำตอบที่มีแหล่งอ้างอิง
- ✓ เสียง — พูดคุยกับโมเดลด้วยเสียงทั้ง input และ responses
เริ่มต้นใช้งาน
- 1. เปิด chat.smartaipi.com
- 2. เข้าสู่ระบบหรือสร้างบัญชี
- 3. เริ่มแชตด้วยข้อความ รูปภาพ วิดีโอ โค้ด การค้นหา หรือเสียง
การคิดค่าบริการ: การใช้งานจะถูกคิดค่าบริการจากเครดิต Smart AIPI ของคุณ
ตัวทดสอบ API
ทดสอบ API ได้โดยตรงจากเบราว์เซอร์ของคุณ: