AI Models
ตำแหน่งในแผงผู้ดูแลระบบ: System › Admin › License & updates (
/license) เพื่อเปิดโมดูล จากนั้นไปที่ Services › AI Models: Providers (/ai/providers), Models (/ai/models), Profit (/ai/profit) และ Audit (/ai/audit) ลูกค้าจะใช้งานผ่าน AI › API ในพอร์ทัลลูกค้า
What it does
AI Models คือเกตเวย์และเลเยอร์ระบบคิดเงินบนแผงควบคุมของคุณเอง ลูกค้าของคุณจะได้รับคีย์ API และเรียกใช้ endpoint เดียวบนโดเมนของคุณ ในรูปแบบที่เข้ากันได้กับ OpenAI หรือ Anthropic คุณสามารถเลือกได้ว่าจะให้บริการโมเดลใดและคิดค่าบริการเท่าใดต่อ 1 ล้านโทเค็น NexCMP จะตรวจสอบคีย์ ขีดจำกัด และวอลเล็ต จากนั้นส่งคำขอไปยังผู้ให้บริการที่คุณเพิ่มไว้ วัดปริมาณโทเค็น และหักเงินจากวอลเล็ตแบบเติมเงินของลูกค้า
คุณต้องจัดเตรียมแหล่งโมเดลเอง NexCMP ไม่มีผู้ให้บริการ ไม่มีโมเดล ไม่มีที่อยู่เริ่มต้น และไม่มีการตั้งราคามาให้ในตัว ทั้งยังไม่ได้จัดหาโมเดล, คีย์ API, โทเค็น หรือบัญชีผู้ให้บริการใดๆ
ตรวจสอบข้อกำหนดของแหล่งโมเดลของคุณก่อน
แหล่งโมเดลหลายแห่งจำกัดการขายต่อหรือการส่งต่อสิทธิ์การเข้าถึงให้แก่บุคคลที่สาม โปรดใช้เฉพาะแหล่งที่คุณได้รับอนุญาตให้ใช้งานและขายต่อได้เท่านั้น พร้อมทั้งปฏิบัติตามข้อกำหนดและกฎหมายที่บังคับใช้กับคุณ หน้านี้ไม่ใช่คำแนะนำทางกฎหมาย
AI Models เป็นผลิตภัณฑ์คนละตัวกับ AI Chat and AI Agent (โมดูล AI โปรดดู AI providers) โดยทั้งสองโมดูลนี้ไม่ขึ้นต่อกัน
ข้อกำหนด
| Item | Requirement |
|---|---|
| โมดูล | เปิดใช้งาน AI Models ภายใต้ License & updates, Modules โดยค่าเริ่มต้นจะปิดอยู่ |
| Providers | แหล่งโมเดลตั้งแต่หนึ่งแห่งขึ้นไปที่คุณได้รับอนุญาตให้จำหน่ายต่อ โดยแต่ละแห่งมี API ที่เข้ากันได้กับ OpenAI (/chat/completions), API ที่เข้ากันได้กับ Anthropic (/messages) หรือทั้งสองแบบ ซึ่งแต่ละแห่งต้องมี base URL และ API key |
| Network | แผงควบคุมต้องสามารถเข้าถึงผู้ให้บริการแต่ละรายผ่าน HTTPS บนพอร์ต 443 ที่ชื่อโดเมนสาธารณะได้ หากผู้ให้บริการอยู่บนโฮสต์ภายใน, ใช้พอร์ตอื่น หรือใช้ HTTP ธรรมดา จะต้องระบุไว้ใต้ Allowed internal hosts (การตั้งค่า ai_endpoint_allow) |
| ลูกค้า | บัญชีลูกค้าที่มียอดเงินในวอลเล็ตและยืนยันที่อยู่อีเมลแล้ว |
| ฮาร์ดแวร์ | ไม่มี NexCMP ทำหน้าที่ส่งต่อคำขอเท่านั้น จึงไม่ต้องใช้ GPU และไม่มีไฟล์โมเดล |
เตรียมโครงสร้างพื้นฐาน
- รับคีย์ API จากแหล่งโมเดลแต่ละแห่งที่คุณจะใช้งาน และจดบันทึก base URL ของแหล่งนั้นไว้ (เช่น
https://api.example.com/v1) - ตรวจสอบข้อกำหนดและเงื่อนไขของแหล่งให้บริการเกี่ยวกับการจำหน่ายต่อ
- หากแหล่งให้บริการทำงานอยู่ภายในเครือข่ายของคุณ ให้กำหนดที่อยู่ เช่น
http://10.0.0.5:8000/v1โดยคุณจะต้องระบุ10.0.0.5:8000ไว้ใต้ Allowed internal hosts
เชื่อมต่อใน NexCMP
1. เปิดใช้งานโมดูล
เปิด System › Admin › License & updates ค้นหาการ์ด Module แล้วเปิดสวิตช์ AI Models จากนั้นเมนูจะโหลดใหม่และมี Services › AI Models ปรากฏขึ้นมา ในขณะที่โมดูลยังปิดอยู่ หน้าของลูกค้า หน้าของผู้ดูแลระบบ และ gateway ทั้งหมดจะตอบกลับเป็น 404 module_disabled และจะไม่มีการติดต่อไปยัง provider ใดๆ

2. เพิ่ม provider
- เปิด AI Models › Providers แล้วเลือก Add provider
- ป้อน slug แบบสั้น, name (มีเพียงคุณเท่านั้นที่เห็น), type (OpenAI-compatible, Anthropic-compatible หรือ Both), base URL และ API key พร้อมทั้ง priority (ตัวเลขที่น้อยกว่าจะได้รับการทดลองใช้งานก่อน)
- บันทึกข้อมูล key จะถูกจัดเก็บแบบเข้ารหัสและจะแสดงเฉพาะ 4 ตัวอักษรสุดท้ายในภายหลังเท่านั้น key จะสามารถป้อนได้จากเซสชันของผู้ดูแลระบบที่เข้าสู่ระบบแล้วเท่านั้น
ใช้ Both เฉพาะกับ gateway ที่รองรับทั้งสองรูปแบบอย่างแท้จริงเท่านั้น NexCMP ไม่ แปลงข้อมูลข้ามระหว่างสองรูปแบบนี้: โมเดลที่ให้บริการโดย provider ที่เป็น OpenAI-compatible จะเข้าถึงได้ที่ /ai/v1/chat/completions และโมเดลที่ให้บริการโดย provider ที่เป็น Anthropic-compatible จะเข้าถึงได้ที่ /ai/v1/messages

3. ทดสอบการเชื่อมต่อ
เลือก Test connection ที่ provider โดย NexCMP จะอ่าน GET <base URL>/models ด้วย key และรายงานผลเป็น ok หรือระบุสาเหตุที่ล้มเหลว: auth (key ไม่ถูกต้อง), blocked, billing หรือ unreachable การทดสอบจำกัดอยู่ที่ 6 ครั้งต่อนาที
4. ซิงค์โมเดล
เลือก Sync models โดย NexCMP จะอ่านรายชื่อโมเดลของ provider และเพิ่มแต่ละโมเดลใหม่ในสถานะ ปิดใช้งานและไม่มีการกำหนดราคา โมเดลที่ provider ไม่มีในรายการอีกต่อไปจะถูกทำเครื่องหมายไว้ ในขณะที่โมดูลเปิดอยู่ รายการจะได้รับการซิงค์โดยอัตโนมัติทุกๆ 6 ชั่วโมง (การตั้งค่า ai_models_sync_hours)
5. กำหนดราคาและเปิดใช้งานโมเดล
- เปิด AI Models › Models.
- สำหรับแต่ละโมเดลที่คุณต้องการขาย ให้กำหนด selling price เป็นสกุลเงินดอลลาร์สหรัฐต่อ 1 ล้าน token: input, cached input และ output
- คุณสามารถเลือกป้อน cost ของคุณสำหรับโมเดลได้ จากนั้น Profit จะแสดงรายได้เทียบกับต้นทุนตามรายวันและตามโมเดล และ selling price ที่ต่ำกว่าต้นทุนบวกมาร์จิ้นขั้นต่ำของคุณ (การตั้งค่า
ai_min_margin_pctค่าเริ่มต้นคือ 10) จะถูกปฏิเสธ เว้นแต่คุณจะยืนยันว่ายอมรับการขาดทุนโดยเจตนา ทั้งนี้ Set price from cost จะใช้ส่วนต่างราคา (markup) ที่คุณเลือก โดยไม่มี markup เริ่มต้น - เปิดใช้งานโมเดล โมเดลที่ไม่ได้กำหนด selling price จะไม่สามารถเปิดใช้งานได้ ราคา cached input ที่ปล่อยว่างไว้ที่ศูนย์จะถูกคิดค่าบริการในราคา input

6. Routes และ failover
ในแต่ละโมเดล ส่วน Routes จะแสดงรายการ provider ที่ให้บริการตามลำดับ ให้เพิ่ม provider รายที่สองเป็น fallback กำหนดลำดับ และสามารถเลือกตั้งชื่อโมเดลที่แตกต่างกันสำหรับแต่ละ provider ได้ (ชื่อที่ส่งไปยัง provider อาจแตกต่างจากชื่อที่คุณเผยแพร่) เมื่อ provider ส่งกลับข้อผิดพลาดของเซิร์ฟเวอร์, ข้อผิดพลาดด้านสิทธิ์การใช้งานหรือการเรียกเก็บเงิน, ไม่พบโมเดล หรือติด rate limit ทาง NexCMP จะลองใช้เส้นทางถัดไป หากการอ่านข้อมูลหมดเวลาหลังจากส่งคำขอไปแล้ว ระบบจะ ไม่ ส่งคำขอไปยัง provider รายอื่น เพื่อที่คุณจะได้ไม่ต้องจ่ายเงินซ้ำซ้อน
provider แต่ละรายจะถูกจำกัดอัตราคำขอไว้ที่ ai_provider_rpm คำขอต่อนาที (ค่าเริ่มต้นคือ 50) หาก provider ยังคงส่งกลับข้อผิดพลาดด้านสิทธิ์การใช้งานหรือการเรียกเก็บเงินอย่างต่อเนื่อง NexCMP จะแจ้งเตือนผู้ดูแลระบบทาง Telegram เมื่อมีการตั้งค่า Telegram ไว้
7. เปิดสวิตช์การขาย
ที่ด้านบนของหน้า AI Models ส่วน sale switch (การตั้งค่า feature_ai_models) จะปิดอยู่โดยค่าเริ่มต้น ในขณะที่ปิดอยู่ ลูกค้าจะเห็นว่าบริการยังไม่เปิดให้บริการ และรายการราคาสาธารณะจะแสดงสถานะว่าไม่พร้อมให้บริการ โปรดตรวจสอบว่ามีโมเดลอย่างน้อยหนึ่งโมเดลที่เปิดใช้งาน มีการกำหนดราคาขาย และมีเส้นทางพร้อม key เรียบร้อยแล้ว จากนั้นจึงเปิดสวิตช์
สิ่งที่ลูกค้าทำได้
ในพอร์ทัลลูกค้า AI › API:
- Models แสดงโมเดลและราคาของคุณ base URL และตัวอย่างคำสั่งที่พร้อมใช้งาน
- API Keys: สร้าง เปลี่ยนชื่อ หมุนเวียน ปิดใช้งาน และลบคีย์ ข้อมูลลับจะแสดงเพียงครั้งเดียว และจัดเก็บเฉพาะค่าแฮชเท่านั้น การตั้งค่าต่อคีย์: โมเดลที่อนุญาต วันหมดอายุ งบประมาณแบบ soft budget (แจ้งเตือน) และ hard budget (บล็อกด้วย
402) รวมถึงจำนวนคำขอต่อนาทีและโทเคนต่อนาที - Usage ตามโมเดล คีย์ และวัน พร้อมการส่งออกข้อมูล
- Logs: ประวัติคำขอที่สามารถกรองได้ (เวลา, คีย์, โมเดล, โทเคน, ค่าใช้จ่าย, สถานะ, latency) ไม่มีการบันทึกพรอมต์และการตอบกลับ บันทึกจะถูกเก็บไว้ 90 วันตามค่าเริ่มต้น (
ai_log_retention_days) - Settings: งบประมาณของบัญชีและที่อยู่อีเมลสำหรับการแจ้งเตือนงบประมาณ
- Playground: สนทนากับโมเดล เปรียบเทียบโมเดลแบบเคียงข้างกัน และคัดลอกโค้ดที่เกี่ยวข้อง

เอนด์พอยต์เกตเวย์ บนโดเมนของคุณ:
text
POST /ai/v1/chat/completions OpenAI-compatible
POST /ai/v1/messages Anthropic-compatible (also /ai/v1/messages/count_tokens)
GET /ai/v1/models model list
GET /ai/v1/models/pricing public price list, no key neededวอลเล็ตและการเรียกเก็บเงิน
การใช้งาน AI จะถูกหักจากวอลเล็ตแบบเติมเงินใบเดียวกับบริการอื่นๆ ทั้งหมด ก่อนที่คำขอจะถูกส่งไปยังผู้ให้บริการ NexCMP จะกันเงินไว้สำหรับค่าใช้จ่ายสูงสุดที่อาจเกิดขึ้นของคำขอนั้น หากยอดคงเหลือต่ำกว่าเกณฑ์ขั้นต่ำ (ai_min_balance_cents ค่าเริ่มต้นคือ 20 เซนต์) หรือมีไม่เพียงพอ คำขอจะถูกปฏิเสธด้วย 402 insufficient_balance และจะไม่มีการเรียกไปยังผู้ให้บริการ การใช้งานจะถูกรวบรวมเป็นรายบัญชีและบันทึกลงในรายการบัญชีแยกประเภทวอลเล็ตหลังจบแต่ละชั่วโมง โดยมีการกวาดข้อมูลทุก 5 นาที การใช้งานที่ยังไม่ได้ชำระจะถูกหักออกจากยอดคงเหลือที่เกตเวย์เห็นแล้ว
Reseller สามารถขาย AI Models บนโดเมนของตนเองได้ โดยมาร์กอัปหรือส่วนลดของพวกเขาจะมีผลกับราคาขายของคุณ และวอลเล็ตขายส่งของพวกเขาจะถูกหักตามราคาขายส่ง สวิตช์ AI แบบราย reseller ซึ่งเปิดไว้ตามค่าเริ่มต้น จะทำหน้าที่ควบคุมว่าใครสามารถขายได้บ้าง
ตรวจสอบ
หลังขั้นตอนที่ 3 Test connection จะแสดง ok และจำนวนโมเดล
หลังขั้นตอนที่ 4 โมเดลใหม่จะแสดงในรายการ โดยมีสถานะปิดอยู่และไม่มีราคา
ในฐานะลูกค้าที่มีเงินในวอลเล็ต ให้สร้างคีย์แล้วเรียกใช้งานเกตเวย์:
bashcurl https://your-domain/ai/v1/chat/completions \ -H "Authorization: Bearer sk-ai-…" -H "Content-Type: application/json" \ -d '{"model":"model-one","messages":[{"role":"user","content":"hello"}]}'การตอบกลับ
200จะส่งคำตอบของโมเดลกลับมา Usage จะแสดงคำขอ และ Profit จะแสดงรายการนี้หากคุณป้อนต้นทุนไว้เมื่อยอดเงินในวอลเล็ตเป็นศูนย์ การเรียกเดียวกันจะส่งกลับ
402 insufficient_balance
ข้อจำกัดและหมายเหตุ
- โมดูลนี้ไม่มีผู้ให้บริการ โมเดล หรือราคาในตัว และไม่มีการอ่านรายการราคาจากผู้ให้บริการแต่อย่างใด
- เครื่องมือที่ทำงานบนฝั่งผู้ให้บริการและคิดค่าบริการตามจำนวนครั้งที่เรียก เช่น การค้นหาเว็บ จะถูกปฏิเสธเนื่องจากไม่สามารถวัดปริมาณการใช้งานได้ และจะส่งต่อเฉพาะพารามิเตอร์คำขอตามรายการสั้นๆ เท่านั้น
- การใช้โทเคนจะอ้างอิงจากการตอบกลับของผู้ให้บริการ หากไม่มีการตอบกลับมา NexCMP จะประเมินยอดให้และทำเครื่องหมายเรคคอร์ดนั้นว่าเป็นการประเมิน
- ข้อผิดพลาดจากผู้ให้บริการจะถูกล้างข้อมูลก่อนส่งไปถึงลูกค้า (ชื่อ โฮสต์ ที่อยู่ และชื่อโมเดลของผู้ให้บริการจะถูกนำออก) ลูกค้าจะไม่เห็นว่าผู้ให้บริการรายใดเป็นผู้ประมวลผลคำขอ
- ลูกค้าเข้าถึงเกตเวย์ผ่านโดเมนของพาเนลคุณ ดังนั้น TLS ของโดเมนดังกล่าวจะต้องทำงานได้อย่างถูกต้อง
- NexCMP ไม่ได้ให้บริการข้อตกลงระดับการบริการ, การ fine-tuning หรือ GPU โฮสติ้งสำหรับโมดูลนี้
การแก้ Problme
| อาการ | สาเหตุและวิธีแก้ไข |
|---|---|
ทุกหน้า AI Models และเกตเวย์ตอบกลับเป็น 404 module_disabled | โมดูลปิดอยู่ ให้เปิด AI Models ภายใต้ License & updates, Modules |
การเพิ่มผู้ให้บริการล้มเหลวด้วย endpoint_host_not_allowed, endpoint_must_be_https หรือ invalid_endpoint_port | base URL ต้องเป็น HTTPS บนพอร์ต 443 ที่โดเมนเนมสาธารณะ สำหรับโฮสต์ภายใน พอร์ตอื่น หรือ HTTP ธรรมดา ให้ระบุ host:port ภายใต้ Allowed internal hosts |
blocked_endpoint | ที่อยู่ดังกล่าวเป็น IP หรือชื่อนั้นแปลงเป็นที่อยู่ส่วนตัว ให้ระบุไว้ภายใต้ Allowed internal hosts หากคุณต้องการใช้งานเช่นนั้น |
Test connection แสดงข้อความ auth | คีย์ไม่ถูกต้องหรือไม่มีสิทธิ์การเข้าถึง โปรดป้อนคีย์ใหม่อีกครั้ง |
ไม่สามารถเปิดใช้งานโมเดลได้ (no_price) | กำหนดราคาขายก่อน |
ลูกค้าได้รับ 503 ai_unavailable | สวิตช์การขายปิดอยู่ หรือสวิตช์ AI ของตัวแทนจำหน่ายปิดอยู่ |
ลูกค้าได้รับ 503 upstream_unavailable | ไม่มีเส้นทางที่เปิดใช้งานพร้อมคีย์ที่ให้บริการโมเดลดังกล่าวในรูปแบบที่ร้องขอ ตรวจสอบเส้นทางของโมเดลและประเภทผู้ให้บริการ |
ลูกค้าได้รับ 402 insufficient_balance | ยอดเงินในวอลเล็ตต่ำกว่าเกณฑ์ขั้นต่ำหรือไม่เพียงพอสำหรับคำขอ แจ้งให้ลูกค้าเติมเงิน |