Skip to main content

OpenThai-SystemOne ใหม่

ฟรี (ช่วงพรีวิว)
ตอนนี้: 0 IC ด้วย iApp API key ใดก็ได้ (สมัครฟรี) วันละ 1,000 การตัดสินใจต่อ keyต่อไป: ประกาศราคาต่อการตัดสินใจในเดือนตุลาคม 2569

OpenThai-SystemOne คือโมเดลตัดสินใจแบบ System One ภาษาไทย-อังกฤษ โอเพนซอร์ส (Apache 2.0) จาก iApp Technology และ OpenThaiGPT โมเดลนี้ไม่สร้างข้อความ คุณส่ง state (ข้อความหรือ JSON อะไรก็ได้: ticket ฝ่ายสนับสนุน คอมเมนต์ เอกสาร หรือ accessibility tree ของหน้าจอ) พร้อม คำถาม เชิงโครงสร้างหนึ่งข้อขึ้นไป แล้วได้ความน่าจะเป็นที่ผ่านการปรับเทียบแล้วของทุกตัวเลือกในทุกคำถาม ในการคำนวณรอบเดียว รูปแบบ HTTP เหมือนกับ POST /v1/systemone ของ Jev จาก TypeSafe AI ดังนั้นโค้ด SDK ที่เขียนไว้สำหรับ API นั้นชี้มาที่ endpoint นี้ได้โดยไม่ต้องแก้

ประเภทคำถามคุณให้คุณได้
choiceคำสั่งและตัวเลือกที่ตั้งชื่อไว้สูงสุด 255 ตัวเลือก (ใส่คำอธิบายได้)ตัวเลือกที่ดีที่สุด ความน่าจะเป็นต่อตัวเลือก confidence และ abstain
scoreคำสั่งและระดับเรียงลำดับ 2 ถึง 10 ระดับคะแนนถ่วงน้ำหนักด้วยความน่าจะเป็น (เป็นทศนิยมได้) และความน่าจะเป็นต่อระดับ
noulคำถามใช่/ไม่ใช่noul = P(ใช่)

เริ่มต้นใช้งาน

  1. สิ่งที่ต้องมี

    • iApp API key ฟรี: สมัคร แล้วไปที่ API Keys และ Create New API Key
    • state ที่ต้องการให้ตัดสินใจ และคำถามที่ต้องการคำตอบ
  2. Endpoint

    EndpointPOST https://api.iapp.co.th/v3/store/openthai/systemone
    การยืนยันตัวตนheader apikey: <key>
    BodyJSON: state (ข้อความหรือ JSON) และ questions (แผนที่ของคำถามแต่ละประเภท)
    ข้อจำกัด100 คำขอต่อนาที และ 1,000 การตัดสินใจต่อวันต่อ key ในช่วงพรีวิวฟรี; 255 ตัวเลือกต่อ choice, 2 ถึง 10 ระดับต่อ score, 64K โทเคนต่อคำขอ
    ผลลัพธ์JSON หนึ่งคำตอบต่อหนึ่งคำถาม usage.output_tokens เป็น 0 เสมอ
วิธีขอ API Key

ไปที่หน้า จัดการ API Key เพื่อดู API key ที่มีอยู่หรือขอ key ใหม่

ทดลองใช้

ตัวอย่างสี่แบบ: จัดเส้นทาง ticket ภาษาไทย คัดกรองคอมเมนต์ภาษาไทย เลือกองค์ประกอบหน้าจอให้ agent และตรวจความเกี่ยวข้องของ RAG ภาษาอังกฤษ แก้ state หรือคำถามได้ตามต้องการแล้วกดถาม เมื่อเข้าสู่ระบบ API key จะถูกใส่ให้อัตโนมัติ

ลองใช้ OpenThai-SystemOne
ส่งคำขอครั้งเดียว ได้คำตอบทุกข้อพร้อมความน่าจะเป็น ไม่มีการสร้างข้อความ
พรีวิวฟรี
ประเภท: choice (สูงสุด 255 ตัวเลือก), score (ระดับเรียงลำดับ 2 ถึง 10 ระดับ), noul (ใช่/ไม่ใช่)
เวอร์ชัน 0.1 โมเดลขนาด 0.8B ตอบได้เฉพาะตัวเลือกที่ให้ แต่ยังเลือกผิดได้ ใช้ค่า confidence ส่งเคสที่ไม่มั่นใจไปโมเดลใหญ่หรือคน

ตัวอย่างโค้ด

คำขอเดียวกันในทุกภาษา: ticket ฝ่ายสนับสนุนภาษาไทย สามคำถาม หนึ่งการเรียก

curl -s https://api.iapp.co.th/v3/store/openthai/systemone \
-H "apikey: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"state": {"ticket": "โดนหักเงินซ้ำสองครั้งเมื่อวานนี้ ขอเงินคืนด่วนนะครับ โทรไปสามรอบแล้วไม่มีใครรับ"},
"questions": {
"department": {"type": "choice", "instructions": "ทีมใดควรรับผิดชอบ",
"criteria": {"billing": "การเงิน/คืนเงิน", "technical": "ระบบใช้งานไม่ได้", "sales": null}},
"frustration": {"type": "score", "instructions": "ลูกค้าหงุดหงิดแค่ไหน",
"criteria": ["ใจเย็น", "หงุดหงิดแต่สุภาพ", "โกรธมาก"]},
"refund": {"type": "noul", "instructions": "ลูกค้าขอเงินคืนอย่างชัดเจนหรือไม่"}
}
}'

ผลลัพธ์

ผลลัพธ์ที่วัดจริงของคำขอด้านบน (166 โทเคนขาเข้า 0 โทเคนขาออก การคำนวณรอบเดียว):

{
"model": "openthai-systemone",
"answers": {
"department": {"type": "choice", "choice": "billing",
"probabilities": {"billing": 0.963, "technical": 0.011, "sales": 0.026},
"confidence": 0.83, "abstain": 0.085},
"frustration": {"type": "score", "score": 1.95,
"legend": {"0": "ใจเย็น", "1": "หงุดหงิดแต่สุภาพ", "2": "โกรธมาก"},
"probabilities": {"0": 0.012, "1": 0.031, "2": 0.957}, "confidence": 0.82},
"refund": {"type": "noul", "noul": 0.946}
},
"usage": {"input_tokens": 166, "output_tokens": 0}
}

การอ่านคำตอบ

  • choice: choice คือตัวเลือกที่ดีที่สุด probabilities รวมกันได้ 1 ในตัวเลือกที่คุณให้ confidence คือ 1 ลบด้วยเอนโทรปีที่ทำให้เป็นมาตรฐาน และ abstain คือความน่าจะเป็นที่ไม่มีตัวเลือกใดเหมาะ (ส่วนขยายของ iApp)
  • score: score คือดัชนีระดับถ่วงน้ำหนักด้วยความน่าจะเป็น (เป็นทศนิยมได้) probabilities คือต่อระดับ legend แปลงดัชนีเป็นป้ายชื่อ
  • noul: noul คือ P(ใช่)
  • ส่งคำตอบที่ confidence ต่ำไปโมเดลใหญ่หรือคน โมเดลตอบได้เฉพาะตัวเลือกที่ให้ แต่ยังผิดได้

กรณีใช้งาน

จัดเส้นทาง ticket คัดกรองคอมเมนต์ ตรวจว่าคำตอบของ LLM อ้างอิงข้อมูลจริงหรือไม่ เลือกองค์ประกอบหน้าจอที่ agent ควรกด จัดหมวดเอกสารและฟิลด์ ให้คะแนนรีวิว ทั้งหมดคือหนึ่งคำขอที่ตอบทุกคำถามพร้อมกันในหลักสิบมิลลิวินาทีบน GPU เซิร์ฟเวอร์

ประสิทธิภาพ

การตั้งค่าค่าที่วัดได้
ไป-กลับผ่านเกตเวย์ ticket ภาษาไทย 3 คำถาม (ตัวอย่างในหน้านี้ 20 ก.ย. 2569)0.23 วินาที
GPU เซิร์ฟเวอร์ (H100) batch 1, 3 คำถาม40 ถึง 70 มิลลิวินาที
GPU โน้ตบุ๊ก (MacBook M3 Max, MPS)154 มิลลิวินาที
โทเคนขาออก0 ทุกคำขอ

ผลการวัด

วัดแบบ zero-shot บน public benchmark 13 ชุดของ Bespoke Labs สำหรับโมเดล System One ใช้ชุดข้อมูล การแบ่ง คำสั่ง และตัวสุ่มเดียวกัน ตัวเลขของ Nimble-9B และ Jev เป็นตัวเลขที่ Bespoke Labs เผยแพร่เมื่อ 18 ก.ย. 2569 ส่วนของเราวัดด้วยสคริปต์ประเมินผลที่เปิดเผยพร้อมโมเดล choice และ noul รายงานความแม่นยำ score รายงานการตรงระดับพอดี ตัวหนาคือชุดที่โมเดล 0.8B นำโมเดล 9B

SubsetTypenOpenThai-SystemOne 0.8BNimble-9BJev 1.13.0
aegis2noul25058.081.280.4
boolqnoul30063.786.089.7
civil_commentsnoul30078.070.381.0
helpsteer2score25042.839.034.1
massive-de-DEchoice35064.683.486.9
massive-en-USchoice35075.786.987.4
multinlichoice29985.685.382.9
pawsnoul25067.282.889.2
pubmedqachoice25053.675.677.2
squad2noul29950.280.682.9
summeval-consistencyscore14484.075.781.2
summeval-relevancescore24013.849.235.0
vitaminc-devchoice59967.176.680.1
Macro average61.974.876.0

Qwen3.5-0.8B ดิบที่ prompt ด้วย letter log-probs ได้ 45.4 บนชุดเดียวกัน อ่านตามจริง: โมเดล 0.8B นำโมเดล 9B ใน 4 จาก 13 ชุด (NLI, ความสอดคล้องของบทสรุป, การให้คะแนนความช่วยเหลือ, ข้อความเป็นพิษ) และตามหลังชัดเจนในงานใช่/ไม่ใช่แบบอ่านจับใจความ (squad2 เท่าการสุ่ม, boolq, pubmedqa) และการให้คะแนนความเกี่ยวข้องของบทสรุป ซึ่งหัวคะแนนของโมเดลยังปรับเทียบไม่ดี (ECE 0.79)

ชุดทดสอบภาษาไทยที่กันไว้ ไม่เคยใช้เทรน ECE คือค่าความคลาดเคลื่อนของการปรับเทียบ ยิ่งต่ำยิ่งดี:

SetTypenAccuracyECE
MASSIVE-th intent (60-way)choice5,00786.40.048
Prachathai67k topicschoice3,50197.70.005
XNLI-thchoice2,49076.50.028
SIB-200 Thai topic (7-way), whole dataset held outchoice20477.50.074
Wongnai review stars (1 to 5)score6,20363.30.010
xLAM tool selection (English)choice88499.40.007
Wisesight sentiment (4-class), whole dataset held outchoice2,67138.70.341
banking77 intent (77-way, English), whole dataset held outchoice3,07632.70.165

ค่า confidence เชื่อถือได้บนชุดภาษาไทยและงาน NLI/หัวข้อ (ECE ไม่เกิน 0.05 หลังปรับเทียบ) บน public benchmark ภาษาอังกฤษ ECE มัธยฐานอยู่ที่ 0.15 จึงควรส่งการตัดสินใจใช่/ไม่ใช่ภาษาอังกฤษที่ความมั่นใจต่ำไปโมเดลใหญ่ ตารางเต็ม Brier score และการเปรียบเทียบก่อน/หลังปรับเทียบอยู่ในmodel card

ข้อจำกัด

  • เวอร์ชัน 0.1 โมเดลขนาด 0.8B ไม่ใช่โมเดลคิดวิเคราะห์
  • ตอบได้เฉพาะตัวเลือกที่ให้ และยังผิดได้ ใช้ค่า confidence ส่งเคสที่ไม่มั่นใจต่อ
  • จุดอ่อนที่รู้แล้วใน v0.1 (ตัวเลขด้านบน): ความรู้สึกในโซเชียลไทย (Wisesight 38.7), เจตนาภาษาอังกฤษละเอียด 77 หมวด (banking77 32.7), ใช่/ไม่ใช่แบบถาม-ตอบจากข้อความ (squad2 เท่าการสุ่ม) และการให้คะแนนความเกี่ยวข้องของบทสรุป v0.2 มุ่งแก้ข้อแรก
  • รับข้อความอย่างเดียว ไม่รับรูป
  • สูงสุด 255 ตัวเลือกต่อ choice, 2 ถึง 10 ระดับต่อ score, 64K โทเคนต่อคำขอ

รันบนเครื่องของคุณ

น้ำหนักโมเดลเปิด สามบรรทัดได้คำตอบเดียวกันบนเครื่องของคุณเอง:

pip install "git+https://github.com/iapp-technology/openthai-systemone"
OPENTHAI_SYSTEMONE_MODEL=iapp/OpenThai-SystemOne uvicorn openthai_systemone.server:app --port 8000
curl -s http://localhost:8000/v1/systemone -H "Content-Type: application/json" -d '{"state": "...", "questions": {...}}'

ข้อมูลอ้างอิงทางเทคนิค

คำขอ

POST https://api.iapp.co.th/v3/store/openthai/systemone, header apikey, body application/json:

ฟิลด์ประเภทคำอธิบาย
statestring หรือ JSONสิ่งที่ต้องตัดสินใจ รับ JSON ใดก็ได้และแปลงเป็นข้อความให้โมเดล
questionsobjectแผนที่ของชื่อคำถามไปยังคำถาม ทุกคำถามถูกตอบในการคำนวณรอบเดียวกัน
questions.<name>.typechoice, score หรือ noulประเภทคำถาม
questions.<name>.instructionsstringสิ่งที่ต้องตัดสินใจ ภาษาไทยหรืออังกฤษ
questions.<name>.criteriaobject หรือ arraychoice: object ของชื่อตัวเลือกไปยังคำอธิบาย (null ถ้าไม่มี) สูงสุด 255. score: array ของป้ายชื่อระดับ 2 ถึง 10 ระดับตามลำดับ. noul ไม่ใช้

ผลลัพธ์

ฟิลด์คำอธิบาย
modelตัวระบุโมเดล
answers.<name>หนึ่ง object ต่อคำถาม type ตรงกับคำขอ ดูการอ่านคำตอบ
usage.input_tokensโทเคนขาเข้าที่ใช้
usage.output_tokens0 เสมอ

ข้อผิดพลาด

สถานะความหมาย
401ไม่มีหรือ apikey ไม่ถูกต้อง
422คำขอผิดรูปแบบ เช่น score ที่มีน้อยกว่า 2 ระดับ หรือ choice ที่มีมากกว่า 255 ตัวเลือก
429เกินอัตราที่กำหนด: 100 คำขอต่อนาที หรือ 1,000 การตัดสินใจต่อวันต่อ key ในช่วงพรีวิวฟรี

สถาปัตยกรรม

โมเดลคือส่วนประมวลผลข้อความของ Qwen3.5-0.8B ที่เทรนต่อด้วยข้อความไทยราว 5 พันล้านโทเคน แล้วเปลี่ยนหัวโมเดลภาษาเป็นหัวตัดสินใจ 256 ช่อง ตัวเลือกถูกแนะนำด้วยโทเคนควบคุม ทุกตำแหน่งคำตอบถูกฉายเป็น 256 logit ช่องที่เกินจำนวนตัวเลือกถูกปิด และ softmax ให้การแจกแจง ช่อง 255 คือ "ไม่มีตัวเลือกใดเหมาะ" ลำดับตัวเลือกถูกสลับระหว่างเทรน จึงไม่มีอคติตามตำแหน่ง

บันทึกการเปลี่ยนแปลง

วันที่เวอร์ชันการเปลี่ยนแปลง
20 ก.ย. 2569v0.1-20260920เปิดตัวสู่สาธารณะ API แบบโฮสต์บน api.iapp.co.th พรีวิวฟรีจำกัด 1,000 การตัดสินใจต่อวันต่อ key เปิดน้ำหนักโมเดลและสูตรการเทรนภายใต้ Apache 2.0