Open weights
OpenThai-SystemOne
An open Thai and English model that decides instead of writing: a calibrated probability for every option, in one forward pass.
- Parameters0.8billion
- LicenceApache 2.0
- System One benchmark74.3macro
- Output tokens0
Download the weightsCall the hosted API
Released 20 September 2026; version 0.3 since 22 September 2026. The hosted API is a free preview: 100 requests a minute and 1,000 decisions a day per key.
What it does
- Answers typed questionsPicks one of up to 255 named options, places a text on a scale of 2 to 10 levels, or answers yes or no. Several questions go in one request.
- Says how sure it isEvery answer carries a calibrated probability: calibration error 0.043 on 60-way Thai intents and 0.004 on Thai news topics, so uncertain answers can go to a person.
- Decides in milliseconds40 to 70 ms for three questions on one H100 and 154 ms on a MacBook M3 Max, with no output tokens to generate.
- Reads Thai and English90.0% on 60-way Thai intents and 98.1% on Thai news topics, both held out from training.
Try it
Measured
Zero-shot on Bespoke Labs' public 13-subset System One benchmark, with the same subsets, splits, instructions and sampler; the other two models' figures are as published on 18 September 2026, and version 0.3 was measured with the released evaluation script. The Thai sets were held out from training. Per-subset results and the calibration tables are in the model card.
- System One benchmark
- Thai test sets
| Model | Macro average, 13 subsets |
|---|---|
| OpenThai-SystemOne 0.8B | 74.3 |
| Bespoke-Nimble-9B | 74.8 |
| Jev 1.13.0 | 76.0 |
Ahead of the 9B model on 8 of the 13 subsets; behind on PubMedQA, VitaminC and the two summary-rating tasks.
| Set | Type | Accuracy | Calibration error |
|---|---|---|---|
| MASSIVE-th intents (60-way) | choice | 90.0 | 0.043 |
| Prachathai67k news topics | choice | 98.1 | 0.004 |
| XNLI-th | choice | 77.1 | 0.045 |
| SIB-200 Thai topics (7-way) | choice | 77.9 | 0.084 |
| Wongnai review stars (1 to 5) | score | 63.5 | 0.039 |
| Wisesight sentiment (4-class) | choice | 51.6 | 0.353 |
Run it
- Hosted API
- curl
- Your own server
Call it with an iApp API key: register, then API Keys, Create New API Key. Free during the preview, at 100 requests a minute and 1,000 decisions a day per key; per-decision pricing will be announced. Full reference: OpenThai-SystemOne API.
import requests
r = requests.post(
"https://api.iapp.co.th/v3/store/openthai/systemone",
headers={"apikey": "YOUR_IAPP_API_KEY"},
json={
"state": {"ticket": "โดนหักเงินซ้ำสองครั้งเมื่อวานนี้ ขอเงินคืนด่วนนะครับ"},
"questions": {
"department": {"type": "choice", "instructions": "ทีมใดควรรับผิดชอบ",
"criteria": {"billing": "การเงิน/คืนเงิน", "technical": "ระบบใช้งานไม่ได้",
"sales": "สอบถามสินค้าและราคา"}},
"refund": {"type": "noul", "instructions": "ลูกค้าขอเงินคืนอย่างชัดเจนหรือไม่"},
},
},
)
answers = r.json()["answers"]
print(answers["department"]["choice"], answers["department"]["confidence"], answers["refund"]["noul"])
curl -s https://api.iapp.co.th/v3/store/openthai/systemone \
-H "Content-Type: application/json" -H "apikey: YOUR_IAPP_API_KEY" \
-d '{"state": "แอปโอนเงินใช้ไม่ได้ตั้งแต่เมื่อคืน", "questions": {"urgent": {"type": "noul", "instructions": "เรื่องนี้เร่งด่วนหรือไม่"}}}'
The open weights serve the same API on your own machine, at POST http://localhost:8000/v1/systemone with the same body.
pip install "git+https://github.com/iapp-technology/openthai-systemone"
OPENTHAI_SYSTEMONE_MODEL=iapp/OpenThai-SystemOne uvicorn openthai_systemone.server:app --port 8000
Reading the answer
| Field | Meaning |
|---|---|
choice | The most probable option; probabilities sum to 1 over the options you offered. |
score | The probability-weighted level, which can be fractional. |
noul | The probability of yes. |
confidence | 1 minus the normalised entropy; send low values to a larger model or a person. |
Limits
- Version 0.3: a 0.8B model, text only, not a reasoning model.
- It answers only the options you offer and can still choose wrongly; route low-confidence answers onward.
- Weakest on the two 5-level rating tasks (summary relevance 21.7, helpfulness 41.6), PubMedQA (64.0), Thai social-media sentiment (Wisesight 51.6) and 77-way English intents (banking77 45.4). Judging politeness in formal Thai is a known gap, targeted for version 0.4.
- At most 255 options per choice question, 2 to 10 levels per score question and 64K tokens per request.
How it works and the version history are in the launch post; a real-time game-playing demo is on GitHub.
Licence
Apache 2.0. Built on the text tower of Qwen3.5-0.8B, continued-pretrained on about 5B Thai tokens, with the language-model head replaced by a 256-way decision head. The training data, scripts and configs are in the GitHub repository.
Built by iApp Technology with the OpenThai community. Trained, evaluated and served on NVIDIA H100 GPUs provided by Siam AI Corporation.