รูปแบบ
ใช้ server-sent events (SSE) แบบเดียวกับ OpenAI โดยข้อมูลจะทยอยส่งมาในรูปแบบ data: และจบสตรีมแบบเดียวกัน โดยช่อง model ในแต่ละ chunk จะแสดงชื่อโมเดลที่คุณเรียกใช้
เอกสาร
ใช้ OpenAI SDK อยู่แล้วใช่ไหม? แค่เปลี่ยน base URL กับ key 2 บรรทัด ก็ใช้งานกับเราได้ทันที
เริ่มเร็ว
เริ่มใช้งานได้ทันที ไม่ต้องย้ายระบบใหม่ แค่เปลี่ยนไม่กี่บรรทัด
สร้างคีย์ได้ที่เมนู API Keys ในพอร์ทัลสมาชิก โดยคีย์จะแสดงให้ดูแค่ครั้งเดียวตอนสร้าง อย่าลืมเก็บไว้ เพราะหลังจากนั้นจะไม่สามารถเปิดดูหรือกู้คืนคีย์เดิมได้
ตั้งค่า Base URL ให้เป็น Endpoint ของเรา แล้วใช้คีย์ที่สร้างไว้เป็น API key ส่วนชื่อโมเดลที่ใช้ได้ ดูได้จาก GET /v1/models
คำตอบจะทยอยส่งกลับมาทีละส่วนระหว่างที่ระบบกำลังสร้าง ไม่ต้องรอให้ตอบเสร็จทั้งหมดก่อน
ตัวอย่าง
ใช้งานเหมือน OpenAI Chat Completions API โดยส่ง model และ messages ตามปกติ ส่วนพารามิเตอร์อื่นๆ บางโมเดลอาจไม่รองรับทุกตัว ถ้าต้องการ Streaming ให้เพิ่ม stream: true ในคำขอเดิม
# pip install openai
import os
from openai import OpenAI
client = OpenAI(
base_url="https://api.ic-lueur.ai/v1",
api_key=os.environ["LLMR_API_KEY"],
)
resp = client.chat.completions.create(
model="gpt-5-mini",
messages=[{"role": "user", "content": "Sawasdee!"}],
) เชื่อมต่อเครื่องมือ
ใช้ Base URL และ API Key เพื่อเชื่อมต่อเครื่องมือที่รองรับ OpenAI API ตั้งค่าเพียงไม่กี่ขั้นตอนก็เริ่มใช้งานได้
https://api.ic-lueur.ai/v1 สร้างหรือจัดการ API Key ได้ที่ Member Portal → API Keys
เชื่อมต่อ AI Coding Tools ด้วย Base URL และ API Key ชุดเดียว
Sidebar ของ Roo Code แสดง dropdown API Provider ที่เลือก OpenAI Compatible
Sidebar ของ Cline แสดง dropdown API Provider ที่เลือก OpenAI Compatible
// ~/.continue/config.json (เพิ่มใน "models": [...])
{
"title": "IC Lueur Ai",
"provider": "openai",
"model": "claude-sonnet-4-6",
"apiBase": "https://api.ic-lueur.ai/v1",
"apiKey": "YOUR_API_KEY"
} // settings.json
{
"languageModels": {
"openAI": {
"baseURL": "https://api.ic-lueur.ai/v1",
"apiKey": "YOUR_API_KEY"
}
}
} เชื่อมต่อแอปแชต AI ที่รองรับ OpenAI API ได้ง่าย ๆ
หน้า Settings ของ Cherry Studio แสดงฟอร์ม Add Provider
หน้า Settings ของ NextChat แสดงช่อง Custom Endpoint URL
# .env
OPENAI_REVERSE_PROXY=https://api.ic-lueur.ai/v1
OPENAI_API_KEY=YOUR_API_KEY หน้า Language Model ของ LobeChat แสดงช่อง Custom Endpoint
ตั้งค่า CLI และ SDK ให้เรียกใช้งานโมเดลผ่าน IC Lueur Ai
export ANTHROPIC_BASE_URL="https://api.ic-lueur.ai/v1"
export ANTHROPIC_API_KEY="YOUR_API_KEY"
claude curl https://api.ic-lueur.ai/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-4-6",
"messages": [{"role": "user", "content": "สวัสดี"}]
}' from openai import OpenAI
client = OpenAI(
base_url="https://api.ic-lueur.ai/v1", # ← เปลี่ยนตรงนี้
api_key="YOUR_API_KEY", # ← และตรงนี้
)
response = client.chat.completions.create(
model="claude-sonnet-4-6",
messages=[{"role": "user", "content": "สวัสดี"}],
)
print(response.choices[0].message.content) import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.ic-lueur.ai/v1", // ← เปลี่ยนตรงนี้
apiKey: "YOUR_API_KEY", // ← และตรงนี้
});
const res = await client.chat.completions.create({
model: "claude-sonnet-4-6",
messages: [{ role: "user", content: "สวัสดี" }],
});
console.log(res.choices[0].message.content); เชื่อมต่อ IC Lueur Ai กับ Workflow และเครื่องมือ no-code
{
"model": "app/ชื่อผู้ช่วยของคุณ",
"messages": [{ "role": "user", "content": "{{escapeJSON(1.text)}}" }]
} {
"model": "app/ชื่อผู้ช่วยของคุณ",
"messages": [{ "role": "user", "content": {{ JSON.stringify($json.text) }} }]
} Base URL: https://api.ic-lueur.ai/v1
Assistant: app/ชื่อผู้ช่วยของคุณ
API key: YOUR_API_KEY (คีย์ที่สร้างเฉพาะชีตนี้) ใช้ stream: true เพื่อรับคำตอบแบบ Streaming ได้ แต่ถ้าตัดการเชื่อมต่อระหว่างทาง คำขออาจยังทำงานต่อและมีค่าใช้จ่ายตามปกติ
stream: true [DONE] ใช้ server-sent events (SSE) แบบเดียวกับ OpenAI โดยข้อมูลจะทยอยส่งมาในรูปแบบ data: และจบสตรีมแบบเดียวกัน โดยช่อง model ในแต่ละ chunk จะแสดงชื่อโมเดลที่คุณเรียกใช้
ถ้าตัดการเชื่อมต่อระหว่างทาง token ที่สร้างไปแล้วจะยังถูกคิดตามการใช้งานจริง เหมือนกับคำขอที่ทำงานจนจบ
Error Response ใช้โครงสร้างเดียวกับ OpenAI คือ {"error": {"message": "<ข้อความ>"}} พร้อม HTTP status แต่ค่า type และ code อาจไม่ตรงกับของ OpenAI ทุกกรณี หากต้องแยกประเภท Error ให้ดูจาก HTTP status และข้อความใน message แทน
ไม่พบโมเดลที่เรียกใช้ หรือโมเดลนั้นยังไม่ได้ตั้งค่าไว้ ตรวจสอบชื่อโมเดลได้ที่ GET /v1/models หรือคำขอใส่ฟิลด์ที่เกตเวย์ไม่รับ ได้แก่ extra_body, kwargs, litellm_params หรือ custom_llm_provider ให้ส่งตัวเลือกของโมเดลเป็นฟิลด์ระดับบนสุดของ body แทน (OpenAI SDK ทำให้อยู่แล้วเมื่อใช้ extra_body ของ SDK)
ไม่พบ API key หรือคีย์ที่ใช้ไม่ถูกต้องหรือถูกยกเลิกแล้ว
ยอดเงินคงเหลือไม่พอสำหรับคำขอนี้ โดยระบบจะแจ้งยอดคงเหลือเป็นเงินบาท
องค์กรถูกระงับการใช้งาน คีย์ที่ใช้เป็นคีย์ของผู้ดูแลระบบ (Master key) ซึ่งใช้เรียกโมเดลไม่ได้ หรือผู้สร้างคีย์ใช้งานครบวงเงินรายวันหรือรายเดือนที่เจ้าของหรือ Admin ขององค์กรกำหนดไว้
Prompt มีขนาดเกินที่กำหนดสำหรับโมเดลฟรีประจำสัปดาห์
ส่งคำขอเกินลิมิตที่กำหนดไว้ ให้ดู Retry-After และข้อความที่ระบบส่งกลับมาก่อนลองใหม่
สำหรับ 429 อาจเกิดได้จากหลายสาเหตุ ถ้าต้องการแยกว่าเกิดจากอะไร ให้ดูคำขึ้นต้นของข้อความที่ระบบส่งกลับมาแทนการดูแค่ status code และเทียบแบบตรงตัวพิมพ์เล็ก-ใหญ่ ได้แก่ ลิมิตของคีย์ขึ้นต้นด้วย rate limit exceeded: (ตัวพิมพ์เล็ก) ภูมิภาคที่ใช้ได้ไม่ว่างชั่วคราวขึ้นต้นด้วย no region available ส่วนลิมิตของโมเดลฟรีขึ้นต้นด้วย QUOTA_EXCEEDED, REQUEST_LIMIT_EXCEEDED หรือ RATE_LIMIT_EXCEEDED (ตัวพิมพ์ใหญ่)
ระบบไม่สามารถตรวจสอบคีย์ได้ชั่วคราว หรือโมเดลนั้นยังไม่ได้ตั้งราคา จึงยังไม่สามารถทำคำขอนี้ได้
โมเดลไหนก็ตามอาจมีช่วงเวลาที่ฟรีชั่วคราวได้ — คำขอแบบเดิม ไม่เสียเงิน ตลอดช่วงที่ยังฟรีอยู่
15 คำขอ / นาที ต่อคีย์
ลิมิตนี้นับแยกจากลิมิตปกติของคีย์ และจะจำกัดมากกว่าปกติ
1,000,000 tokens หรือ 1,000 คำขอ
นับรวมต่อองค์กร โดยจะยึดตามลิมิตที่ถึงก่อน
ทุกวันจันทร์
เวลา 00:00 น. (เวลาไทย)
32,000 tokens
ถ้าเกินจากนี้ ระบบจะไม่รับคำขอนั้น และจะไม่มีการคิดเงิน
16,000 tokens
ตอบได้สูงสุด 16,000 tokens หรือตาม max_tokens ที่ตั้งไว้
ใช้งานได้อีกครั้งวันจันทร์
หากเปิด Auto-fallback ไว้ ระบบจะสลับไปใช้ยอดคงเหลือให้อัตโนมัติ
เช็คได้ว่าตอนนี้โมเดลไหนฟรีอยู่จากตารางแคตตาล็อกราคา — กรองด้วยตัวเลือก "Free" ได้เลย
องค์กรของคุณมี Routing Policy ที่ทีมงานเป็นผู้ตั้งค่าให้เมื่อคุณแจ้งขอ API key ใหม่จะได้รับค่านี้ตอนสร้าง และระบบจะใช้กับทุกคำขอของคีย์นั้น หากเปลี่ยน Routing Policy ภายหลัง คีย์ที่สร้างไว้ก่อนจะยังใช้ค่าเดิม ดูรายละเอียดด้านล่างว่าตอนนี้คำขอจะถูกส่งไปประมวลผลที่ไหน
คำขอส่วนใหญ่ประมวลผลที่สิงคโปร์และโตเกียว บางโมเดลให้บริการจากภูมิภาค global ของผู้ให้บริการ ซึ่งอาจอยู่นอกเอเชีย เช่น สหรัฐอเมริกา และองค์กรที่ใช้ Routing Policy แบบ available จะเข้าถึงผู้ให้บริการในจีนแผ่นดินใหญ่ได้ด้วย
ข้อมูลบัญชี ยอดเงิน และใบกำกับภาษีจัดเก็บบน AWS ในประเทศไทย ไม่ว่าคำขอจะถูกประมวลผลที่ไหน
ทุกคำขอตัดเงินจากเครดิตเงินบาทแบบเติมล่วงหน้าขององค์กร เติมได้ในพอร์ทัลสมาชิกที่เมนูกระเป๋าเครดิต และเครดิตจะเข้าเมื่อยืนยันการชำระเงินแล้ว
00000 ถ้าเป็นสาขาให้กรอกชื่อสาขาด้วยผู้ช่วยคืองานที่ตั้งไว้ครั้งเดียว เช่น จัดหมวดค่าใช้จ่าย สรุปอีเมล คัดรีวิว หรือดึงข้อมูลออกจากข้อความ คุณเลือกงาน ตั้งชื่อ และเลือกโมเดล ส่วนคำสั่งเราเก็บไว้ให้ จากนั้นระบบของคุณเรียกด้วยชื่อ app/ชื่อของคุณ ในโปรแกรมใดก็ได้ที่มีช่องโมเดลแบบ OpenAI
a–z, 0–9 และ - ยาว 3–40 ตัว ชื่อที่ใช้เรียกจะเป็น app/<ชื่อ> และเปลี่ยนไม่ได้ภายหลัง เพราะระบบของคุณอ้างถึงชื่อนี้ ใช้ Base URL และ API key เดียวกับคำขออื่น แล้วใส่ชื่อผู้ช่วยในช่องโมเดล ส่งเฉพาะข้อความที่ต้องการให้ผู้ช่วยทำงานด้วย คำสั่งที่เก็บไว้จะถูกใส่นำหน้าให้เอง
resp = client.chat.completions.create(
model="app/accounting-helper",
messages=[{"role": "user", "content": "ค่าแท็กซี่ไปพบลูกค้า 250 บาท"}],
)
print(resp.choices[0].message.content) max_tokens ที่คุณส่ง ถ้าผู้ช่วยกำหนด temperature หรือรูปแบบคำตอบไว้ ค่าของผู้ช่วยมีผลก่อนค่าในคำขอGET /v1/models แสดงผู้ช่วยขององค์กรคุณในรูป app/<ชื่อ> ต่อจากรายการโมเดล ส่วนการเรียกดูผู้ช่วยตัวเดียวด้วย GET /v1/models/app/<ชื่อ> ยังไม่รองรับ หน้าการใช้งานในพอร์ทัลแสดงว่าแต่ละคำขอผ่านผู้ช่วยตัวไหนชื่อผิด ผู้ช่วยถูกปิดหรือลบแล้ว หรือเป็นของอีกองค์กร คำตอบเหมือนกันทุกกรณีโดยตั้งใจ หลังสร้างหรือเปิดใช้ให้รอได้ถึงประมาณ 30 วินาที ไม่คิดเงิน
ผู้ช่วยใช้ได้กับ chat completions เท่านั้น คำขอต้องมีรายการ messages ไม่คิดเงิน
มีผู้ช่วยนี้อยู่ แต่นำคำสั่งที่เก็บไว้มาใช้ไม่ได้ เราไม่รันคำขอโดยไม่มีคำสั่งของผู้ช่วย จึงไม่คิดเงิน ลองใหม่อีกครั้งในอีกสักครู่
ข้อผิดพลาดตอบกลับในรูป {"error": {"message": …}} พร้อมรหัส HTTP ส่วนข้อผิดพลาดเรื่องเครดิต (402) และการจำกัดอัตรา (429) เหมือนที่อธิบายไว้ด้านบน
อัปเดตล่าสุด