ข้ามไปยังเนื้อหาหลัก

วิธีการแปล

Champollion รองรับวิธีการแปลสิบวิธี แต่ละคู่ภาษาสามารถใช้วิธีการที่แตกต่างกันได้ — คุณไม่จำเป็นต้องยึดติดกับวิธีเดียวสำหรับทั้งโปรเจกต์

การเปรียบเทียบวิธีการ

ผู้ให้บริการ LLM

เน้นคุณภาพ รองรับ Markdown และ coaching เหมาะที่สุดสำหรับโปรเจกต์ที่มีเนื้อหาจำนวนมาก

วิธีการKeyสิ่งที่ทำ
llm (ค่าเริ่มต้น)OPENROUTER_API_KEYLLM ผ่าน OpenRouter — รองรับ 200+ โมเดล พร้อม auto-routing
llm-coachedOPENROUTER_API_KEYLLM + กฎไวยากรณ์ พจนานุกรม และหมายเหตุสไตล์
openaiOPENAI_API_KEYเรียกใช้ OpenAI API โดยตรง (gpt-4o, gpt-4o-mini)
anthropicANTHROPIC_API_KEYเรียกใช้ Anthropic API โดยตรง (Claude Sonnet, Haiku, Opus)
geminiGEMINI_API_KEYเรียกใช้ Google Gemini API โดยตรง (Flash, Pro) — มี free tier

MT แบบดั้งเดิม

เน้นความเร็วและต้นทุน เหมาะที่สุดสำหรับคู่ key-value ปริมาณสูง

วิธีการKeyสิ่งที่ทำ
google-translateGOOGLE_TRANSLATE_API_KEYGoogle Cloud Translation API v2 (130+ ภาษา)
deeplDEEPL_API_KEYDeepL API พร้อมรองรับ glossary (30+ ภาษา)
microsoft-translatorMICROSOFT_TRANSLATOR_API_KEYAzure Cognitive Services Translator (100+ ภาษา)
libretranslate(self-hosted)LibreTranslate แบบ self-hosted (AGPL, ฟรี)

โครงสร้างพื้นฐาน

วิธีการKeyสิ่งที่ทำ
api(per provider)HTTP client แบบบางสำหรับ REST endpoint การแปลใดก็ได้

แผนผังการตัดสินใจ


llm — การแปลด้วย LLM (ค่าเริ่มต้น)

แปลผ่าน LLM ใดก็ได้บน OpenRouter นี่คือวิธีการเริ่มต้นและมีความยืดหยุ่นสูงที่สุด

วิธีการทำงาน:

  1. จัดกลุ่ม key (ค่าเริ่มต้น 80 key/กลุ่ม) พร้อมคำสั่ง register และ context
  2. ส่งไปยัง OpenRouter ในรูปแบบ structured prompt
  3. แยกวิเคราะห์ JSON response
  4. ตรวจสอบการแปลแต่ละรายการผ่าน quality gate
  5. บันทึกการแปลที่ผ่านการตรวจสอบ ลองใหม่หรือปฏิเสธรายการที่ล้มเหลว

เมื่อใดควรใช้: เหมาะกับโปรเจกต์ส่วนใหญ่ โดยเฉพาะเว็บไซต์ที่มีเนื้อหา Markdown จำนวนมาก ซึ่ง code block และ shortcode จำเป็นต้องได้รับการป้องกัน

การกำหนดค่า:

{
"defaultMethod": "llm",
"model": "google/gemini-3.5-flash"
}

llm-coached — การแปลด้วย LLM แบบ Coached

เหมือนกับ llm แต่มีการฉีดกฎไวยากรณ์ พจนานุกรมคำศัพท์ และหมายเหตุสไตล์เข้าไปในทุก prompt

วิธีการทำงาน:

  1. โหลดข้อมูล coaching จาก .champollion/coaching/<locale>.json หรือไดเรกทอรี coaching/ ของ plugin
  2. ฉีดกฎไวยากรณ์ คำศัพท์จากพจนานุกรม และหมายเหตุสไตล์เข้าไปใน system prompt
  3. คำศัพท์ในพจนานุกรมที่ตรงกับ source key จะถูกรวมเป็นคำศัพท์บังคับ
  4. การแปลดำเนินการเหมือนกับ llm โดยข้อมูล coaching ช่วยเพิ่มความแม่นยำ

เมื่อใดควรใช้: ภาษาที่มีทรัพยากรน้อย คำศัพท์เฉพาะทาง (กฎหมาย การแพทย์) ภาษาทางการ หรือกรณีที่ผลลัพธ์จาก LLM ทั่วไปไม่แม่นยำเพียงพอ

รูปแบบข้อมูล coaching:

.champollion/coaching/fr.json
{
"grammar_rules": [
"French adjectives agree in gender and number with the noun they modify",
"Use 'vous' for formal contexts, 'tu' for informal"
],
"dictionary": {
"dashboard": "tableau de bord",
"deployment": "déploiement",
"settings": "paramètres"
},
"style_notes": "Prefer active voice. Avoid anglicisms where a native French term exists."
}

ดูเพิ่มเติม: คู่มือภาษาที่มีทรัพยากรน้อย


openai — เรียกใช้ OpenAI API โดยตรง

แปลโดยตรงผ่าน OpenAI Chat Completions API โดยไม่ผ่าน OpenRouter — ใช้ key ของคุณเอง บัญชีของคุณเอง และ dashboard การใช้งานของคุณเอง

โมเดล: gpt-4o (ค่าเริ่มต้น), gpt-4o-mini

คุณสมบัติ:

  • ✅ รองรับ Markdown (การแปลเนื้อหา)
  • ✅ รองรับ coaching (กฎไวยากรณ์ การแทนที่คำในพจนานุกรม หมายเหตุสไตล์)
  • ✅ JSON mode สำหรับ output แบบ key-value ที่มีโครงสร้าง
  • ✅ Exponential backoff พร้อม retry

การกำหนดค่า:

{
"pairs": {
"en:fr": { "method": "openai", "model": "gpt-4o-mini" }
}
}
export OPENAI_API_KEY=sk-proj-...

รับ key ของคุณได้ที่ platform.openai.com/api-keys

anthropic — เรียกใช้ Anthropic API โดยตรง

แปลโดยตรงผ่าน Anthropic Messages API ใช้พารามิเตอร์ system สำหรับข้อมูล coaching เพื่อเปิดใช้งาน prompt caching ของ Anthropic

โมเดล: claude-sonnet-4-6 (ค่าเริ่มต้น), claude-haiku-4-5, claude-opus-4-7

คุณสมบัติ:

  • ✅ รองรับ Markdown (การแปลเนื้อหา)
  • ✅ รองรับ coaching (กฎไวยากรณ์ การแทนที่คำในพจนานุกรม หมายเหตุสไตล์)
  • ✅ System prompt caching (กระจายต้นทุน coaching ข้ามหลาย batch)
  • ✅ Exponential backoff พร้อม retry

การกำหนดค่า:

{
"pairs": {
"en:ja": { "method": "anthropic", "model": "claude-haiku-4-5" }
}
}
export ANTHROPIC_API_KEY=sk-ant-...

รับ key ของคุณได้ที่ console.anthropic.com

gemini — เรียกใช้ Google Gemini API โดยตรง

แปลโดยตรงผ่าน Google Gemini generateContent API มี free tier — จุดเริ่มต้นที่ดีที่สุดสำหรับการใช้งานโดยไม่มีค่าใช้จ่าย

โมเดล: gemini-2.5-flash (ค่าเริ่มต้น), gemini-2.5-pro

คุณสมบัติ:

  • ✅ รองรับ Markdown (การแปลเนื้อหา)
  • ✅ รองรับ coaching (กฎไวยากรณ์ การแทนที่คำในพจนานุกรม หมายเหตุสไตล์)
  • ✅ JSON response mode ผ่าน responseMimeType
  • ✅ Free tier (โควต้ารายวันที่ใจกว้าง)
  • ✅ Exponential backoff พร้อม retry

การกำหนดค่า:

{
"pairs": {
"en:ko": { "method": "gemini", "model": "gemini-2.5-pro" }
}
}
export GEMINI_API_KEY=AI...

รับ key ของคุณได้ที่ aistudio.google.com/apikey

การตรวจสอบโมเดล

ผู้ให้บริการ LLM โดยตรง (openai, anthropic, gemini) จะตรวจสอบ string โมเดลของคุณในการใช้งานครั้งแรก ซึ่งช่วยตรวจจับข้อผิดพลาดสามประเภท:

รูปแบบ method ไม่ถูกต้อง — ใช้ path โมเดลแบบ OpenRouter กับผู้ให้บริการโดยตรง:

[WARN] OpenAI: model "google/gemini-3.5-flash" looks like an OpenRouter path.
Direct providers use bare model names (e.g., "gpt-4o").
To use OpenRouter models, set method to 'llm' instead.

ผู้ให้บริการไม่ถูกต้อง — ใช้โมเดลจากผู้ให้บริการอื่น:

[WARN] Gemini: model "claude-sonnet-4-6" is an Anthropic model.
This provider (gemini) cannot serve Anthropic models.
Use --method anthropic or set "method": "anthropic" in config.

โมเดลที่เลิกใช้แล้วหรือสะกดผิด — เมื่อเรียก API ครั้งแรก champollion จะดึงรายการโมเดลล่าสุดจากผู้ให้บริการและตรวจสอบโมเดลของคุณกับรายการนั้น:

[WARN] Gemini: model "gemini-1.5-flash" not found in available models.
Similar models: gemini-2.0-flash, gemini-2.5-flash, gemini-2.5-pro
The API call will proceed — the provider will give the final verdict.

:::note สิ่งเหล่านี้คือคำเตือน ไม่ใช่ข้อผิดพลาด การตรวจสอบโมเดลจะบันทึกคำเตือนแต่ไม่บล็อกการเรียก API การตัดสินขั้นสุดท้ายมาจาก provider API — ชื่อโมเดลในอนาคตอาจตรงกับรูปแบบที่แตกต่างออกไป และเราไม่ต้องการให้ heuristics เป็นตัวกำหนด :::


google-translate — Google Cloud Translation API

การเชื่อมต่อโดยตรงกับ Google Cloud Translation API v2 ใช้ REST API — ไม่ต้องใช้ SDK หรือ service account เพียงแค่ API key

เมื่อใดควรใช้: คู่ string key-value ปริมาณสูงที่ความเร็วและต้นทุนสำคัญกว่าความละเอียดอ่อน รองรับ 130+ ภาษาทันที

ข้อจำกัด:

  • ⚠️ ไม่รองรับ Markdown จะทำให้ code block, shortcode และตัวแปร interpolation เสียหาย
  • ไม่มีการควบคุม register/tone
  • ไม่มี coaching หรือการบังคับใช้คำศัพท์
npx champollion sync --method google-translate

:::tip การตรวจจับอัตโนมัติ หากตั้งค่าเฉพาะ GOOGLE_TRANSLATE_API_KEY (ไม่มี OpenRouter key) champollion จะสลับไปใช้ Google Translate โดยอัตโนมัติ ไม่จำเป็นต้องเปลี่ยนการกำหนดค่า :::

deepl — DeepL API

การเชื่อมต่อโดยตรงกับ DeepL translation API รองรับ glossary สำหรับคำศัพท์ที่สอดคล้องกัน

เมื่อใดควรใช้: ภาษายุโรปที่ DeepL เชี่ยวชาญ (เยอรมัน ฝรั่งเศส สเปน ดัตช์ โปแลนด์ ฯลฯ) การรองรับ glossary ช่วยบังคับใช้คำศัพท์ที่สอดคล้องกันโดยไม่ต้องใช้ข้อมูล coaching

คุณสมบัติ:

  • ✅ ตรวจจับ endpoint แบบ free/pro โดยอัตโนมัติ (suffix :fx บน free key)
  • ✅ การสร้างและจัดการ glossary
  • ✅ การควบคุมระดับความเป็นทางการ
  • ⚠️ ไม่รองรับ Markdown — เฉพาะคู่ key-value เท่านั้น

การกำหนดค่า:

{
"pairs": {
"en:de": { "method": "deepl" }
}
}
export DEEPL_API_KEY=your-key-here

รับ key ของคุณได้ที่ deepl.com/pro-api

microsoft-translator — Azure Cognitive Services

การเชื่อมต่อโดยตรงกับ Microsoft Translator Text API v3

เมื่อใดควรใช้: สภาพแวดล้อมองค์กรที่มีโครงสร้างพื้นฐาน Azure อยู่แล้ว รองรับ 100+ ภาษา รวมถึงหลายภาษาที่ Google Translate ไม่ครอบคลุม

คุณสมบัติ:

  • ✅ รองรับสูงสุด 100 segment ต่อ request (throughput สูง)
  • ✅ พารามิเตอร์ region แบบเลือกได้สำหรับการปรับ latency
  • ⚠️ ไม่รองรับ Markdown — เฉพาะคู่ key-value เท่านั้น
  • ⚠️ ไม่รองรับการแปลเนื้อหา — เฉพาะคู่ key-value เท่านั้น

การกำหนดค่า:

{
"pairs": {
"en:ar": { "method": "microsoft-translator" }
}
}
export MICROSOFT_TRANSLATOR_API_KEY=your-key
export MICROSOFT_TRANSLATOR_REGION=global # optional

รับ key ของคุณได้จาก Azure Portal → Cognitive Services → Translator

libretranslate — การแปลแบบ Self-Hosted

การแปลแบบ open-source ที่ host เอง โดยใช้ LibreTranslate รันในเครื่องหรือบนโครงสร้างพื้นฐานของคุณเอง — ไม่มีค่าใช้จ่าย API และข้อมูลอยู่ในความควบคุมของคุณอย่างสมบูรณ์

เมื่อใดควรใช้: โปรเจกต์ที่ต้องการการแปลแบบออฟไลน์ การปฏิบัติตามข้อกำหนดความเป็นส่วนตัวของข้อมูล (GDPR) หรือการดำเนินงานโดยไม่มีค่าใช้จ่าย มีประโยชน์อย่างยิ่งสำหรับ CI pipeline ที่ไม่ควรพึ่งพา external API

คุณสมบัติ:

  • ✅ Self-hosted — ไม่มีการเรียก external API
  • ✅ ฟรีและ open source (AGPL-3.0)
  • ✅ รองรับการ deploy ด้วย Docker
  • ⚠️ ไม่รองรับ Markdown — เฉพาะคู่ key-value เท่านั้น
  • ⚠️ ไม่รองรับการแปลเนื้อหา — เฉพาะคู่ key-value เท่านั้น
  • ⚠️ คุณภาพแตกต่างกันตามคู่ภาษา

การตั้งค่า:

# Run LibreTranslate locally with Docker
docker run -d -p 5000:5000 libretranslate/libretranslate

# Configure (optional — defaults to localhost:5000)
export LIBRETRANSLATE_API_URL=http://localhost:5000/translate
{
"pairs": {
"en:es": { "method": "libretranslate" }
}
}

api — Remote Translation API

HTTP client แบบบางสำหรับ endpoint การแปลที่ host โดยชุมชนหรือที่ได้รับการคุ้มครองทรัพย์สินทางปัญญา Champollion ส่ง key ออกไปและรับการแปลกลับมา — ไม่มี logic การแปลอยู่ภายใน

เมื่อใดควรใช้: เมื่อวิธีการแปลถูก host ฝั่ง server (เช่น ข้อมูล coaching ที่เป็นกรรมสิทธิ์ โมเดลที่ fine-tune แล้ว หรือ FST pipeline ที่ไม่สามารถแจกจ่ายได้)

{
"pairs": {
"en:crk": {
"method": "api",
"endpoint": "https://api.example.com/v1/translate",
"apiKey": "your-key"
}
}
}

:::note การแปลโดยชุมชนที่รองรับ OCAP วิธีการ api คือสะพานเชื่อมสู่ การแปลที่ host โดยชุมชนซึ่งรองรับ OCAP ชุมชนภาษาพื้นเมืองและภาษาชนกลุ่มน้อยสามารถ host endpoint การแปลของตนเอง — รักษาข้อมูล coaching โมเดลที่ fine-tune แล้ว และทรัพย์สินทางภาษาศาสตร์ไว้ภายใต้การควบคุมของชุมชน — ในขณะที่ Champollion เชื่อมต่อกับพวกเขาในฐานะ thin client

ดู การสนับสนุนภาษาที่มีทรัพยากรน้อย สำหรับคำแนะนำการ host โดยชุมชนฉบับสมบูรณ์ และ การให้บริการ Method ผ่าน API สำหรับข้อกำหนด endpoint :::


การกำหนดค่าแบบรายคู่ภาษา

พลังที่แท้จริงอยู่ที่การผสมวิธีการตามคู่ภาษา:

champollion.config.json
{
"version": 3,
"pairs": {
"en:fr": { "method": "deepl" },
"en:ja": { "method": "openai", "model": "gpt-4o" },
"en:ko": { "method": "gemini" },
"en:ar": { "method": "microsoft-translator" },
"en:crk": { "methodPlugin": "crk-coached-v1" }
}
}

ตัวอย่างนี้แปลภาษาฝรั่งเศสผ่าน DeepL (รองรับ glossary) ญี่ปุ่นผ่าน OpenAI (คุณภาพ) เกาหลีผ่าน Gemini (free tier) อาหรับผ่าน Microsoft Translator (ครอบคลุม) และ Plains Cree ผ่าน coached plugin (เฉพาะทาง)

Plugin

Plugin คือสูตรการแปลที่บรรจุไว้ล่วงหน้าสำหรับคู่ภาษาเฉพาะ เป็น JSON manifest — ไม่ใช่โค้ด — ที่บอก champollion ว่าจะใช้วิธีการใด ด้วยการตั้งค่าอะไร และคุณภาพที่ผ่านการ benchmark มาแล้วเป็นอย่างไร

:::tip จาก eval harness สู่ production ด้วยคำสั่งเดียว Plugin ที่พัฒนาและพิสูจน์แล้วใน eval harness สามารถติดตั้งได้โดยตรง — วิธีการที่คุณตรวจสอบที่นั่นจะ deploy ที่นี่ด้วยคำสั่ง plugin install เพียงคำสั่งเดียว ดู MT Evaluation สำหรับขั้นตอนการประเมินฉบับสมบูรณ์ :::

champollion plugin install ./french-formal-v1/
champollion plugin list
champollion plugin remove french-formal-v1

ดู Plugin Specification สำหรับรูปแบบ manifest ฉบับสมบูรณ์


การสลับผู้ให้บริการ

ต้องการย้ายระหว่างวิธีการ? รูปแบบโมเดลและ env var จะเปลี่ยนไป — นี่คือแผนที่:

OpenRouter → ผู้ให้บริการโดยตรง

champollion.config.json
{
"pairs": {
"en:fr": {
- "method": "llm",
- "model": "openai/gpt-4o"
+ "method": "openai",
+ "model": "gpt-4o"
}
}
}
Environment variables
- export OPENROUTER_API_KEY=sk-or-v1-...
+ export OPENAI_API_KEY=sk-proj-...

ความแตกต่างหลัก:

  • OpenRouter ใช้รูปแบบ provider/model (เช่น openai/gpt-4o) ผู้ให้บริการโดยตรงใช้ชื่อโมเดลแบบเรียบ (เช่น gpt-4o)
  • ผู้ให้บริการโดยตรงแต่ละรายมี env var ของตนเอง (OPENAI_API_KEY, ANTHROPIC_API_KEY, GEMINI_API_KEY)
  • หากคุณใช้รูปแบบโมเดลที่ไม่ถูกต้อง champollion จะแจ้งเตือนคุณ — ดู การตรวจสอบโมเดล

ผู้ให้บริการโดยตรง → OpenRouter

champollion.config.json
{
"pairs": {
"en:ja": {
- "method": "anthropic",
- "model": "claude-sonnet-4-6"
+ "method": "llm",
+ "model": "anthropic/claude-sonnet-4-6"
}
}
}

:::tip เมื่อใดควรใช้ OpenRouter เทียบกับผู้ให้บริการโดยตรง ใช้ OpenRouter เมื่อต้องการสลับระหว่างโมเดลโดยไม่ต้องเปลี่ยน env var หรือเมื่อต้องการเข้าถึง 200+ โมเดลจาก key เดียว ใช้ผู้ให้บริการโดยตรง เมื่อต้องการการเรียกเก็บเงินที่เรียบง่ายกว่า latency ต่ำกว่า (ไม่มีตัวกลาง) หรือเข้าถึงคุณสมบัติเฉพาะของผู้ให้บริการ เช่น prompt caching ของ Anthropic :::


การเปรียบเทียบต้นทุน

ต้นทุนโดยประมาณต่อ 1,000 key ที่แปล (สมมติ ~10 token ต่อ key, 80 key ต่อ batch):

วิธีการต้นทุน / 1K Keyความเร็วคุณภาพเหมาะที่สุดสำหรับ
gemini (Flash)ฟรี (ภายใน tier)เร็วดีเริ่มต้นใช้งาน โปรเจกต์ส่วนตัว
google-translate~$0.02เร็วที่สุดพอใช้ปริมาณสูง ภาษายุโรป
deepl~$0.02เร็วดีภาษายุโรป คำศัพท์เฉพาะ
microsoft-translator~$0.01เร็วพอใช้สภาพแวดล้อม Azure ครอบคลุมภาษาหลากหลาย
libretranslateฟรี (self-hosted)แตกต่างกันพอใช้Air-gapped, GDPR, CI pipeline
gemini (Pro)~$0.07ปานกลางดีมากเน้นคุณภาพ มี free quota
openai (GPT-4o-mini)~$0.01เร็วดีLLM ประหยัดงบ
openai (GPT-4o)~$0.10ปานกลางดีมากเน้นคุณภาพ
anthropic (Haiku)~$0.01เร็วดีLLM ประหยัดงบ
anthropic (Sonnet)~$0.10ปานกลางดีมากเน้นคุณภาพ
anthropic (Opus)~$0.50ช้ายอดเยี่ยมคุณภาพสูงสุด
llm (OpenRouter)แตกต่างตามโมเดลแตกต่างกันแตกต่างกันเปรียบเทียบโมเดล ทดลองใช้งาน

:::note ตัวเลขเหล่านี้เป็นการประมาณการ ต้นทุนจริงขึ้นอยู่กับความยาวของ source text ขนาด batch และการเปลี่ยนแปลงราคาของผู้ให้บริการ ตรวจสอบหน้าราคาปัจจุบันของผู้ให้บริการแต่ละรายสำหรับอัตราที่แน่นอน :::


ดูเพิ่มเติม