跳到主要内容

ChindaMT 翻译 API

ChindaMT 在泰语和英语之间互译,并遵循您随文本一起发送的规则:使用哪个术语、采用何种语气、译文可以多长,以及必须保留什么格式。一份译文可能每个词都正确,却仍不适合实际用途:字幕需要贴合角色的口吻,合同需要固定的术语,群聊需要口语化的泰语,品牌需要自己的风格。ChindaMT 经过专门训练,能够在不损失翻译质量的前提下遵循此类指令。相关研究发表于 AACL-IJCNLP 2026(主会),模型权重以 Apache 2.0 许可开放。本 API 提供的是 ChindaMT-4B。

在线演示​

选择一个示例或输入您自己的文本,可按需添加规则,然后点击“翻译”。勾选“同时生成不带规则的译文以便对比”后,演示还会在不使用规则的情况下翻译同一段文本,便于您查看规则带来的变化。每次翻译按每 400 个字符 1 IC 计费。

62 个字符 · 1 IC
选择示例或输入文本,可按需添加规则,然后点击翻译。
cURL 请求
curl -X POST 'https://api.iapp.co.th/v3/store/text/mt/translate' \
  -H 'apikey: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"text":"The meeting has been moved to Friday because the boss is busy.","source_lang":"en","target_lang":"th","rules":["Use a casual, friendly tone"]}'

快速开始​

需要从 iApp AI Portal 获取 API key。以 JSON 格式发送文本,并带上 apikey 请求头:

curl -X POST https://api.iapp.co.th/v3/store/text/mt/translate \
-H "apikey: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"text": "The meeting has been moved to Friday because the boss is busy.",
"source_lang": "en",
"target_lang": "th",
"rules": ["Use a casual, friendly tone"]
}'
{
"translation": "ประชุมย้ายไปวันศุกร์แล้วนะ เพราะเจ้านายยุ่งมาก",
"source_lang": "en",
"target_lang": "th",
"warnings": []
}

不加这条规则时,同一句话会以中性的书面泰语返回:“การประชุมถูกเลื่อนไปเป็นวันศุกร์เนื่องจากเจ้านายยุ่ง”。Python 和 JavaScript 示例见技术参考。

接口与价格​

接口说明价格
POST /v3/store/text/mt/translate翻译一段文本,最多 100,000 个字符每 400 个字符 1 IC
POST /v3/store/text/mt/translate/batch在一次请求中翻译一组彼此独立的文本(界面字符串、表格单元格),合计最多 100,000 个字符每 400 个字符 1 IC

计费按您发送的 text(或全部 texts)的原样字符数统计,每次请求向上取整到 400 的整数倍:

  • 文本中的所有内容都计入:空格、换行,以及原样返回的行。
  • 规则不计费。
  • 字符按 Unicode 码位计算,因此每个泰语元音和声调符号都算作一个字符:ที่ 为 3 个字符。
  • 仅对成功的 200 响应计费。被拒绝和失败的请求免费。

一句 44 个字符的句子费用为 1 IC,一段 401 个字符的段落为 2 IC,一次满额 100,000 个字符的请求为 250 IC。计费字符数通过 iapp-input-chars 响应头返回。处理请求前,网关会检查您的余额是否足以支付其全部费用;若不足,则返回 402,不进行翻译。

规则​

规则是用简明英语写成的简短指令,以字符串列表的形式放在 rules 中发送。规则作用于整段文本(批量请求时作用于每一段文本),合计最多 2,000 个字符。ChindaMT 针对五类规则进行了训练:

类别规则示例
术语Translate บาท as THB, Keep product names such as iApp Portal in English
语气与语体Use a formal, polite tone suitable for a business email, Use a casual, friendly tone
长度Use exactly one sentence, Keep it short enough for a subtitle
格式Return only the translation, no quotes, Keep the numbering of the list
语言Avoid English contractions, Write numbers as digits

规则越具体、越能在输出中核验,效果越好。例如,使用规则 Keep product names such as iApp Portal, API Keys and Document OCR in English 时,句子“press Create Key to start using Document OCR”中的“Create Key”会保留英文;不使用该规则时,这个按钮名称会被翻译。对于较长的术语表,请只发送文本中实际出现的术语,而不是整份列表。

准确度​

在配套论文中,ChindaMT 与其他同规模的开源翻译模型进行了对比评测,覆盖两个翻译方向(每项测试包含 200 条英译泰和 200 条泰译英样本),并分别在有规则和无规则的条件下进行。表中数字为评审模型更偏好 ChindaMT-4B 译文的对比所占比例,已针对回答长度进行校正(50% 表示持平)。

ChindaMT-4B 的对比对象普通翻译带规则翻译
Typhoon-Translate-1.5-4B61.8%68.4%
TranslateGemma-4B87.2%
MiLMMT-46-4B89.5%

在盲测中,三位以泰语为母语的评审在 64% 的普通翻译和 69% 的带规则翻译中更偏好 ChindaMT-4B,而非 Typhoon-Translate-1.5-4B(总体 67%,每项 100 条)。不使用规则时质量并未下降:在公开基准 FLORES-200 上,ChindaMT-4B 在 CometKiwi、GEMBA-DA 和 GEMBA-MQM 三项指标上的平均分为 90.7,是所测 4B 至 9B 模型中最高的;在 WMT24++ 新闻测试集上得分 87.8,仅次于一个得分 89.4 的 7B 模型。完整表格、评测方法和评测集见论文。

已知限制:

  • 模型仅支持泰语和英语。
  • 它遵循的是一份优质参考译文能够满足的规则。严格的占位符标记和大型强制术语表不在其训练范围内;此类输出请在使用前进行检查。
  • 与任何机器翻译一样,它可能生成流畅但错误的文本。用于法律、医疗等高风险场景的译文请经人工审核。warnings 字段会标出可能有误的部分。

性能​

2026 年 9 月 29 日经 API 网关测得,单请求串行,取 3 至 9 次运行的中位数,包含从曼谷发起请求的网络时间:

请求字符数往返时间
一句,泰译英820.36 秒
两句,英译泰1830.38 秒
同上,附带两条规则1830.40 秒
一个段落,英译泰6530.60 秒
约一页,英译泰2,0280.71 秒
约一页,泰译英2,0440.61 秒
约五页,英译泰10,0711.72 秒
限制数值
每次请求的文本100,000 个字符(text,或全部 texts 合计)
每次请求的规则合计 2,000 个字符
每次请求的时间90 秒,超时返回 504
速率限制(每个 API key)每秒 5 次,每分钟 120 次,每小时 3,000 次

耗时的增长远慢于文本长度:五页文本的耗时约为一句话的四倍。翻译大量短字符串时,一次 /translate/batch 请求比多次单独请求更快。

开放模型​

该模型系列及其训练数据和评测集均已公开发布,任何人都可以运行或在此基础上进行开发:

发布内容链接
ChindaMT-4B、2B 和 0.8B 权重(Apache 2.0)huggingface.co/iapp/ChindaMT-4B, 2B, 0.8B
训练数据,197 万条记录huggingface.co/datasets/iapp/ChindaMT-Grounded
评测集ChindaMT-CoreEval, ChindaMT-BroadEval
数据整理代码github.com/iapp-technology/ChindaMT-RGDC
论文arxiv.org/abs/2609.34770

托管 API 是无需自备 GPU 即可使用 ChindaMT-4B 的最快方式。如需结合自有术语进行本地部署,请联系 sale@iapp.co.th。

数据安全与合规​

  • 本服务符合 GDPR 和 PDPA。
  • 文本在 iApp 运营的泰国服务器上翻译,不会发送给任何第三方服务商。
  • 您发送的文本不会被存储。服务日志仅记录翻译方向和字符数,不记录内容。

技术参考​

认证​

基础 URL:https://api.iapp.co.th/v3/store/text/mt。每个请求都需在 apikey 请求头中携带您的 API key。

POST /translate​

翻译一段文本。

字段类型必填说明
textstring是待翻译的文本,最多 100,000 个字符,可包含多行。
source_lang"th" 或 "en"是text 的语言。
target_lang"th" 或 "en"是目标语言,必须与 source_lang 不同。
rulesarray of strings否给模型的指令,例如要使用的术语、语气或输出格式,如 ["Use a formal tone", "Translate บาท as THB"]。合计最多 2,000 个字符。
{
"text": "The weather is nice today.\nSee you tomorrow.",
"source_lang": "en",
"target_lang": "th"
}

响应:

{
"translation": "วันนี้สภาพอากาศดีครับ\nพบกันพรุ่งนี้ครับ",
"source_lang": "en",
"target_lang": "th",
"warnings": []
}
字段说明
translation译文。
source_lang, target_lang实际使用的翻译方向。
warnings译文中可能有误的部分。见警告。

POST /translate/batch​

在一次请求中翻译多段彼此独立的文本,例如界面字符串或表格单元格。所有文本均按相同的方向和相同的规则翻译。

字段类型必填说明
textsarray of strings是至少一段文本,合计最多 100,000 个字符。每段文本可包含多行。
source_lang, target_lang, rules与 /translate 相同,作用于每一段文本。
{
"texts": ["The weather is nice today.", "See you\ntomorrow."],
"source_lang": "en",
"target_lang": "th"
}

响应:

{
"translations": [
{"translation": "วันนี้สภาพอากาศดีครับ", "warnings": []},
{"translation": "พบกันใหม่\nพรุ่งนี้", "warnings": []}
],
"source_lang": "en",
"target_lang": "th"
}

translations 中每段文本对应一个条目,顺序与 texts 相同,每个条目携带其自身文本的警告。批量请求整体成功或整体失败:若失败,则不返回任何译文,也不计费,请重新发送整个批次。

文本处理方式​

  • 行: 每一行单独翻译。换行以及每行首尾的空格都会保留。
  • 原样保留的行: 不含源语言字母的行会原样返回,例如空行、纯数字行,或已是目标语言的行。此类行仍计入计费。

警告​

警告标出您的文本中译文可能有误的部分。请求仍然成功,translation 中包含该部分的最佳结果。

{"reason": "truncated", "source": "…", "translation": "…"}
reason含义
truncated译文在完成前被截断。
too_short译文明显短于原文,可能缺失部分内容。
wrong_language译文不是目标语言。

source 为您文本中的对应部分,translation 为该部分返回的译文。

响应头​

响应头说明
iapp-input-chars本次请求计费的字符数(仅在 200 时返回)。
X-Request-ID请求标识。报告问题时请附上。

错误​

状态码原因处理方式
401缺少或无效的 apikey。在 Portal 的 API Keys 页面检查 key。
402余额不足以支付本次请求的字符数。充值,或减少每次请求的文本量。
413text 超过 100,000 个字符,或 texts 合计超过该上限。将文本拆分为多次请求。
422请求体无效:语言不是 th 或 en、源语言与目标语言相同、rules 超过 2,000 个字符、texts 为空,或缺少字段。修正请求。
429该 API key 超过速率限制。稍候重试。
503翻译模型不可用。稍后重试。
504翻译未在 90 秒内完成。稍后重试,或减少每次请求的文本量。

对于 413、503 和 504,detail 为一条消息:

{"detail": "text must be at most 100,000 characters"}

对于 422,detail 为请求体问题的列表:

{
"detail": [
{
"type": "literal_error",
"loc": ["body", "target_lang"],
"msg": "Input should be 'th' or 'en'",
"input": "jp",
"ctx": {"expected": "'th' or 'en'"}
}
]
}

错误不计费。

代码示例​

# One text, with rules
curl -X POST https://api.iapp.co.th/v3/store/text/mt/translate \
-H "apikey: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"text": "ผู้ซื้อต้องชำระเงินจำนวน 5,000 บาท ภายใน 7 วัน", "source_lang": "th", "target_lang": "en", "rules": ["Translate บาท as THB", "Use a formal tone"]}'

# Several texts in one request
curl -X POST https://api.iapp.co.th/v3/store/text/mt/translate/batch \
-H "apikey: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"texts": ["Save changes", "Delete account", "Are you sure?"], "source_lang": "en", "target_lang": "th", "rules": ["Use short, polite UI wording"]}'

更新日志​

版本日期变更
v0.2.0-202609292026 年 9 月 29 日首次公开发布:支持带规则的泰英双向翻译,提供 /translate 和 /translate/batch、警告信息,每次请求最多 100,000 个字符。每 400 个字符 1 IC。