OpenThai 2.0 NEW
OpenThai 2.0 (iapp/openthai2.0-qwen3.8-27b) is an open-source Thai vision-language model (27B, Apache 2.0) built by iApp Technology and launched with AIEAT. One model reads Thai documents and handwriting at specialist level (0.261 CER on Thai handwriting versus 0.649 for its base model), answers Thai knowledge questions in natural Thai (0.842 on OpenThaiEval), and handles agentic tool use (BFCL 0.820). The hosted API accepts text and images on a single OpenAI-compatible endpoint.
- Model page & full benchmarks: OpenThai 2.0
- Open weights: huggingface.co/iapp/openthai2.0-qwen3.8-27b
- Run locally with Ollama: ollama.com/openthai/openthai2.0-qwen3.8-27b
- Try it free in the browser: chinda3.iapp.co.th
Getting Started
-
Prerequisites
- A free iApp API key — register → API Keys → Create New API Key
- A question in Thai, or a Thai document image
-
Endpoint
Base URL https://api.iapp.co.th/v3/llm/openthai2p0Endpoint POST /chat/completions(OpenAI-compatible)Model openthai2.0(the route always serves this model)Context length 262,144 tokens (256K) Auth apikey: <key>header orAuthorization: Bearer <key>(OpenAI SDK works as-is)Input text, or text + image ( image_urlcontent parts — base64 data URI or public URL, up to 50 MB)Rate limit 30 requests/minute per API key (free tier)
Please visit API Key Management page to view your existing API key or request a new one.
Try Demo
Chat with OpenThai 2.0 directly from this page. Sign in and your API key is filled in automatically.
Try Our AI Demo
Login or create a free account to use this AI service demo and explore our powerful APIs.
Get 100 Free Credits (IC) when you sign up!
Offer ends December 31, 2025
Start a conversation with the AI assistant
Type your message below and press Enter or click SendCode Examples
cURL — text
curl -X POST 'https://api.iapp.co.th/v3/llm/openthai2p0/chat/completions' \
-H 'apikey: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"model": "openthai2.0",
"messages": [
{"role": "user", "content": "อากรแสตมป์กับภาษีมูลค่าเพิ่มต่างกันอย่างไร"}
]
}'
Response (truncated)
{
"id": "chatcmpl-...",
"model": "openthai2.0-qwen3.8-27b",
"choices": [
{"message": {
"role": "assistant",
"content": "อากรแสตมป์และภาษีมูลค่าเพิ่มต่างกันทั้งฐานภาษีและวิธีจัดเก็บ ...",
"reasoning": "The user asks about the difference between stamp duty and VAT ..."
}}
],
"usage": {"prompt_tokens": 68, "completion_tokens": 84}
}
The model reasons before it answers. The server separates that reasoning into message.reasoning; message.content carries only the final answer, so existing OpenAI-SDK code works unchanged.
Python — OpenAI SDK (text and vision)
import base64
from openai import OpenAI
client = OpenAI(
base_url="https://api.iapp.co.th/v3/llm/openthai2p0",
api_key="YOUR_API_KEY",
)
# Text — ask anything in Thai
r = client.chat.completions.create(
model="openthai2.0",
messages=[{"role": "user", "content": "อากรแสตมป์กับภาษีมูลค่าเพิ่มต่างกันอย่างไร"}],
)
print(r.choices[0].message.content)
# Vision — read a Thai document (thinking off keeps reasoning out of transcriptions)
img = base64.b64encode(open("thai_document.jpg", "rb").read()).decode()
r = client.chat.completions.create(
model="openthai2.0",
messages=[{"role": "user", "content": [
{"type": "image_url", "image_url": {"url": f"data:image/jpeg;base64,{img}"}},
{"type": "text", "text": "อ่านข้อความในเอกสารนี้ทั้งหมด"},
]}],
temperature=0.0,
extra_body={"chat_template_kwargs": {"enable_thinking": False}},
)
print(r.choices[0].message.content)
Streaming (SSE)
stream = client.chat.completions.create(
model="openthai2.0",
messages=[{"role": "user", "content": "อธิบายขั้นตอนการจดทะเบียนบริษัทในประเทศไทย"}],
stream=True,
)
for chunk in stream:
if chunk.choices and chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)
Features & Capabilities
Core Features
- Thai document and handwriting reading — 0.126 CER on books and Royal Gazette pages, 0.261 on handwriting, 0.077 on printed documents; send the page as an image and ask about it in the same request.
- Thai knowledge in natural Thai — 0.842 on OpenThaiEval (Thai national exams); explanatory answers by default, terse or JSON output on request ("ตอบสั้น ๆ", "ตอบเป็น JSON เท่านั้น").
- Agentic tool use — standard OpenAI
tools=[...]function calling; BFCL 0.820 overall, ahead of its base model and Typhoon 2.5. - Open weights — the same model is downloadable (Apache 2.0) in five formats, from Ollama on a laptop to vLLM on an 80 GB GPU.
Use Cases
- Document Q&A and back-office automation — read a Thai government document, contract or handwritten form and extract or explain its content in one call.
- Thai chatbots and assistants — grounded Thai knowledge with instruction-following (IFEval-TH 0.795).
- Agents — reliable function calling lets the model drive tools and multi-turn workflows.
Recommended generation settings
| Task | temperature | thinking | notes |
|---|---|---|---|
| Assistant / knowledge Q&A | 1.0 (default) | on (default) | leave max_tokens unset, or set it to at least 8,192 |
| Image transcription (OCR) | 0.0 | off (enable_thinking: false) | returns clean text with no reasoning |
| Machine-parsed output | 0.0 | on | instruct "ตอบเป็น JSON เท่านั้น" |
Leave max_tokens unset whenever possible — the model reasons before it answers, and a small cap can starve the reply. The hosted engine already applies the recommended repetition_penalty of 1.05.
The model can still hallucinate on illegible input, and it is not evaluated for medical or legal advice. For tax, legal or compliance-sensitive work, pair it with retrieval over authoritative sources — for Thai law specifically, use the purpose-built OpenThai 2.0 Legal API.