# README (ខ្មែរ)
🌐 **Languages:** 🇺🇸 [English](../../../README.md) · 🇪🇹 [am](../am/README.md) · 🇸🇦 [ar](../ar/README.md) · 🇦🇿 [az](../az/README.md) · 🇧🇬 [bg](../bg/README.md) · 🇧🇩 [bn](../bn/README.md) · 🇧🇦 [bs](../bs/README.md) · 🇨🇿 [cs](../cs/README.md) · 🇩🇰 [da](../da/README.md) · 🇩🇪 [de](../de/README.md) · 🇬🇷 [el](../el/README.md) · 🇪🇸 [es](../es/README.md) · 🇪🇪 [et](../et/README.md) · 🇮🇷 [fa](../fa/README.md) · 🇫🇮 [fi](../fi/README.md) · 🇫🇷 [fr](../fr/README.md) · 🇮🇪 [ga](../ga/README.md) · 🇮🇳 [gu](../gu/README.md) · 🇳🇬 [ha](../ha/README.md) · 🇮🇱 [he](../he/README.md) · 🇮🇳 [hi](../hi/README.md) · 🇭🇷 [hr](../hr/README.md) · 🇭🇺 [hu](../hu/README.md) · 🇦🇲 [hy](../hy/README.md) · 🇮🇩 [id](../id/README.md) · 🇳🇬 [ig](../ig/README.md) · 🇮🇹 [it](../it/README.md) · 🇯🇵 [ja](../ja/README.md) · 🇬🇪 [ka](../ka/README.md) · 🇮🇳 [kn](../kn/README.md) · 🇰🇷 [ko](../ko/README.md) · 🇱🇹 [lt](../lt/README.md) · 🇱🇻 [lv](../lv/README.md) · 🇮🇳 [ml](../ml/README.md) · 🇮🇳 [mr](../mr/README.md) · 🇲🇾 [ms](../ms/README.md) · 🇲🇹 [mt](../mt/README.md) · 🇲🇲 [my](../my/README.md) · 🇳🇵 [ne](../ne/README.md) · 🇳🇱 [nl](../nl/README.md) · 🇳🇴 [no](../no/README.md) · 🇮🇳 [or](../or/README.md) · 🇮🇳 [pa](../pa/README.md) · 🇵🇭 [phi](../phi/README.md) · 🇵🇱 [pl](../pl/README.md) · 🇵🇹 [pt](../pt/README.md) · 🇧🇷 [pt-BR](../pt-BR/README.md) · 🇷🇴 [ro](../ro/README.md) · 🇷🇺 [ru](../ru/README.md) · 🇱🇰 [si](../si/README.md) · 🇸🇰 [sk](../sk/README.md) · 🇸🇮 [sl](../sl/README.md) · 🇷🇸 [sr](../sr/README.md) · 🇸🇪 [sv](../sv/README.md) · 🇰🇪 [sw](../sw/README.md) · 🇮🇳 [ta](../ta/README.md) · 🇮🇳 [te](../te/README.md) · 🇹🇭 [th](../th/README.md) · 🇹🇷 [tr](../tr/README.md) · 🇺🇦 [uk-UA](../uk-UA/README.md) · 🇵🇰 [ur](../ur/README.md) · 🇺🇿 [uz](../uz/README.md) · 🇻🇳 [vi](../vi/README.md) · 🇳🇬 [yo](../yo/README.md) · 🇨🇳 [zh-CN](../zh-CN/README.md) · 🇹🇼 [zh-TW](../zh-TW/README.md)
---
# 🚀 OmniRoute — ច្រកផ្លូវ AI ឥតគិតថ្លៃ
**បង្កើតដោយ [Diego Souza](https://github.com/diegosouzapw)**
## 💰 ~1.62B ថូខិន / ខែ ពី Free Tier របស់អ្នកផ្តល់សេវាភាគីទីបី
> **ប្រើគណនីអ្នកផ្តល់សេវារបស់អ្នកផ្ទាល់។** នេះជាការប៉ាន់ស្មានសរុបពី free tier របស់អ្នកផ្តល់សេវាភាគីទីបី ដែលមានលក្ខខណ្ឌសិទ្ធិប្រើប្រាស់ដោយឡែកពីគ្នា មិនមែនជាការផ្តល់ថូខិនពី OmniRoute ទេ។ ចុះឈ្មោះ ទទួលយកព័ត៌មានសម្គាល់នៅពេលចាំបាច់ ហើយភ្ជាប់អ្នកផ្តល់សេវាដែលអ្នកអាចប្រើបាន; អ្នកផ្តល់សេវានីមួយៗជាអ្នកកំណត់ដែនកំណត់ ភាពមានប្រើ និងលក្ខខណ្ឌរបស់ខ្លួន។
>
> ការបូក free tier ដោយដៃគឺពិបាក — SDK រាប់សិប ដែនកំណត់អត្រារាប់សិប និងមិនដឹងថាអ្នកពិតជាមានប៉ុន្មានទេ។ OmniRoute រៀបចំកាតាឡុក **465 ធាតុ free-tier ក្នុង 34 recurring pool keys** ហើយគណនាតួលេខថូខិនពី **17 pools ដែលមានថវិកាប្រចាំខែវិជ្ជមានដែលបានបោះពុម្ពផ្សាយ បូកនឹងកម្រិត Groq តាមម៉ូដែលចំនួនប្រាំ** ដោយលុបការរាប់ស្ទួនតាម shared pool។ Quota ដែលបើកប្រើបានតែបន្ទាប់ពីការត្រួតពិនិត្យអត្តសញ្ញាណតាមតំបន់ (បច្ចុប្បន្ន៖ ModelScope) ត្រូវបានបង្ហាញដោយឡែក, +~6M បន្ទាប់ពីការផ្ទៀងផ្ទាត់អត្តសញ្ញាណតាមតំបន់ ហើយមិនត្រូវបានបូកចូលក្នុងតួលេខសរុបទេ។ លទ្ធផលនៅតែអាចមើលឃើញនៅលើ dashboard (`/dashboard/free-tiers`)។
> សេចក្តីសង្ខេបមានចលនានៃទំព័រ `/dashboard/free-tiers` ផ្ទាល់។ វិធីសាស្ត្រពេញលេញ (ការលុបការរាប់ស្ទួនតាម pool, កម្រិតឥណទាន, លក្ខខណ្ឌអ្នកផ្តល់សេវា)៖ **[docs/reference/FREE_TIERS.md](docs/reference/FREE_TIERS.md)**។
>
> តួលេខទាំងនេះត្រូវបានធ្វើសវនកម្មឡើងវិញរៀងរាល់ពីរសប្តាហ៍ ដោយប្រៀបធៀបនឹងកាតាឡុកផ្ទាល់ ហើយ **អាចប្រែប្រួលឡើង ឬចុះ** — អ្នកផ្តល់សេវាបញ្ចប់ free tier ហើយចំនួនធ្លាក់ចុះ; អ្នកផ្តល់សេវាថ្មីចូលមក ហើយចំនួនកើនឡើង។ យើងផ្សព្វផ្សាយអ្វីដែលកាតាឡុកគណនាបានពិតប្រាកដ មិនដែលបង្គត់ឡើងទៅករណីល្អបំផុតទេ។
⭐ សូមដាក់ផ្កាយឱ្យ repo ប្រសិនបើ OMNIROUTE បានជួយអ្នកសន្សំប្រាក់ និងធ្វើឱ្យការងាររបស់អ្នកកាន់តែងាយស្រួល។
[](https://github.com/diegosouzapw/OmniRoute)
[](https://www.star-history.com/diegosouzapw/omniroute)
[](https://olud.ai/project/diegosouzapw-omniroute.html)
### 💬 ចូលរួមសហគមន៍
**👋 តាមដានអ្នកថែទាំគម្រោង — ទទួលបានអ្នកផ្តល់សេវាថ្មី កំណែចេញផ្សាយ និងគន្លឹះជាមុនគេ៖**
[](https://www.linkedin.com/in/diegosouzapw/)
[](https://github.com/diegosouzapw)
[](https://discord.gg/U47eFqAXCn)
[](https://t.me/omnirouteOficial)
[](https://chat.whatsapp.com/FvuCbrpZmQ6I85n2vW5QIC?s=cl&p=a&mlu=4)
[](https://chat.whatsapp.com/KWgatljAjmbELQory59Oti?s=cl&p=a&mlu=4)
[](https://omniroute.online)
**សំណួរ គន្លឹះអំពីអ្នកផ្តល់សេវា ផែនទីអនាគត និងការគាំទ្រ → [Discord](https://discord.gg/U47eFqAXCn) · [Telegram](https://t.me/omnirouteOficial) · WhatsApp [🌍 Global](https://chat.whatsapp.com/FvuCbrpZmQ6I85n2vW5QIC?s=cl&p=a&mlu=4) / [🇧🇷 Brasil](https://chat.whatsapp.com/KWgatljAjmbELQory59Oti?s=cl&p=a&mlu=4) / [Portal](https://portal.sthub.com.br/communities/groups/st-hub/channels/Omniroute-World-8kRjmK)**
## 📈 Gateway កាន់តែរីកចម្រើន
| | v3.8.50 | **v3.8.51** | `v3.8.54+` |
| -------------------------------- | :--------------------------: | :---------: | :-------------------: |
| 🌐 អ្នកផ្តល់សេវា | 352 | **358** | 388 |
| 🧠 លេខសម្គាល់ម៉ូដែលជជែកតែមួយគត់ | 1320 | **1374** | 1491 |
| 🖼️ ស្ពានម៉ូឌាល់លីតេ | 🆕 រូបភាព + អូឌីយ៉ូ + វីដេអូ | ✓ | ✓ |
| 📡 កាតាឡុកឥតគិតថ្លៃរបស់ Radar | 🆕 ជ្រើសរើសចូលរួម | ✓ | ✓ |
| ⚖️ ការកំណត់កាលវិភាគដោយគិតគូរកូតា | 🆕 ការចែករំលែកកូតា | ✓ | ✓ |
| 📊 ទិន្នន័យតេឡេម៉ែត្រកូតា | 🆕 បន្តផ្ទាល់ | ✓ | ✓ |
| 🧰 របៀបគ្មានផ្ទាំងបញ្ជា | — | — | 🆕 `serve --headless` |
| 🛤️ ហេដ្ឋារចនាសម្ព័ន្ធផ្លូវ LTS | — | — | 🆕 បណ្តាញចេញផ្សាយ |
| 🔎 API ស្វែងរកម៉ូដែល | — | — | 🆕 `/v1/models/query` |
**→ [ផែនទីអភិវឌ្ឍន៍](ROADMAP.md) — ធ្វើដំណើរតាមផ្លូវឆ្ពោះទៅ `v3.9.0 LTS`**
## 🧩 មាន
[](https://www.npmjs.com/package/omniroute)

[](https://hub.docker.com/r/diegosouzapw/omniroute)
[](LICENSE)


## 🆓 ដំឡើង ភ្ជាប់អ្នកផ្តល់សេវា រួចបញ្ជូនតាម endpoint តែមួយ
```bash
# បន្ទាប់ពីភ្ជាប់អ្នកផ្តល់សេវា សូមចម្លង OmniRoute key របស់អ្នកពី Dashboard → Endpoints:
curl http://localhost:20128/v1/chat/completions \
-H "Authorization: Bearer YOUR_OMNIROUTE_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"auto","messages":[{"role":"user","content":"Hello!"}]}'
```
`auto` ត្រូវការផ្លូវបញ្ជូនដែលមានសិទ្ធិ។ ការដំឡើងថ្មីអាចមិនមានគោលដៅដែលមិនត្រូវការឃី និងមានសិទ្ធិណាមួយឡើយ ហើយអ្នកផ្តល់សេវាដែលមិនត្រូវការឃីអាចបដិសេធ client ភាគីទីបី។ អ្នកផ្តល់សេវាដែលមានស្លាក `tos: avoid` រួមទាំង Kiro ត្រូវបានដកចេញពីការបញ្ជូនដោយស្វ័យប្រវត្តិតាមលំនាំដើម។ ការភ្ជាប់គណនីមិនអាចប្តូរការកំណត់នោះបានទេ។ សូមមើល [មគ្គុទ្ទេសក៍ Free Tiers](docs/getting-started/FREE-TIERS-GUIDE.md) មុនពេលជ្រើសរើសអ្នកផ្តល់សេវា។
📦 ស្គ្រីបចាប់ផ្ដើមរហ័សសម្រាប់ចម្លងបិទភ្ជាប់ដោយផ្ទាល់ សម្រាប់ **Python, Node.js, PHP, និង cURL** → [`examples/quickstart/`](examples/quickstart/)
# 💥 ការសន្យា
# 🤔 ហេតុអ្វី OmniRoute?
## 🤝 គាំទ្រដោយមិត្តភក្តិប្រភពបើកចំហរបស់យើង
> **ចង់ចូលរួមជាមិត្តភក្តិប្រភពបើកចំហទេ?** ទាំងនេះគឺជាក្រុមហ៊ុនដែលគាំទ្រប្រភពបើកចំហ និងជួយរក្សា OmniRoute ឱ្យដំណើរការ — ហើយយើងប្រកាសជាសាធារណៈថាគ្រប់ token ដែលពួកគេផ្តល់ឱ្យយើងទៅណា។ ទាក់ទងមក៖ [diegosouza.pw@outlook.com](mailto:diegosouza.pw@outlook.com)
Kimi Moonshot AI
សូមអរគុណដល់ Kimi (Moonshot AI) ដែលជាមិត្តភក្តិប្រភពបើកចំហស្ថាបនិករបស់យើង សម្រាប់ការគាំទ្រគម្រោងនេះ! Kimi គឺជាមន្ទីរពិសោធន៍ AI នៅពីក្រោយគ្រួសារម៉ូដែល K2 និង K3 ដែលមានទម្ងន់បើកចំហ — Kimi K3 ផ្តល់នូវបង្អួចបរិបទ 1M-token, ចក្ខុវិស័យដើម និងការសរសេរកូដកម្រិតព្រំដែនក្នុងតម្លៃមួយភាគនៃតម្លៃម៉ូដែលបិទជិត ហើយដំណើរការចេញពីប្រអប់ជាមួយ Claude Code, Codex និងឧបករណ៍សរសេរកូដទាំងអស់ដែល OmniRoute ផ្តល់ជូន។
អ្វីដែលការគាំទ្ររបស់ Kimi ផ្តល់ថាមពល៖ ឥណទាន API របស់ Kimi ផ្តល់ថាមពលដល់បំពង់បង្ហូរចេញដែលបានផ្ទៀងផ្ទាត់ដោយ AI របស់ OmniRoute — ដំណាក់កាល ការផ្ទៀងផ្ទាត់ការបញ្ចូលគ្នាដែលផ្តល់ថាមពលដោយ Kimi K3 ដែលពិនិត្យមើលរាល់សំណើសុំទាញមុនពេលវាចេញផ្សាយ — បូករួមទាំងការអភិវឌ្ឍន៍មុខងារប្រចាំថ្ងៃ។ ការគាំទ្រ Kimi លំដាប់ទីមួយត្រូវបានដឹកជញ្ជូនលើផ្លូវដែកទាំងពីរ៖ Kimi API ដោយផ្ទាល់ (kimi-k3) និង គម្រោងសរសេរកូដ Kimi Code (OAuth និង API key)។ OmniRoute ក៏ជាគម្រោងប្រភពបើកចំហរបស់ប្រេស៊ីលដំបូងគេនៅក្នុងកម្មវិធីគាំទ្ររបស់ Kimi ផងដែរ។ ទទួលបាន Kimi API key ជាមួយនឹងឥណទានបន្ថែម 15% →
Cheaper Inference cheaperinference.com
សូមអរគុណដល់ Cheaper Inference ដែលជាមិត្តភក្តិប្រភពបើកចំហរបស់ OmniRoute សម្រាប់ការគាំទ្រគម្រោងនេះ! Cheaper Inference គឺជាច្រកទ្វារដែលត្រូវបានចាត់ថ្នាក់តាមតម្លៃដែលលក់បន្តម៉ូដែលព្រំដែនចំនួន 42 — Claude, GPT-5.x, Gemini, Kimi K3, GLM, DeepSeek, Grok និង MiniMax — នៅពីក្រោយចុងចំណុចដែលត្រូវគ្នាជាមួយ OpenAI មួយ ដោយបញ្ជូនសំណើនិមួយៗទៅកាន់អ្នកផ្តល់សេវាដែលមានសិទ្ធិថោកបំផុតដោយមិនគិតថ្លៃលើសពីតម្លៃបញ្ជីរបស់អ្នកបង្កើតម៉ូដែលឡើយ។
ការគាំទ្រលំដាប់ទីមួយនៅក្នុង OmniRoute៖ Chat Completions, ចុងចំណុច /v1/responses ដើម, ចក្ខុវិស័យ, ការហៅឧបករណ៍ និងម៉ូដែលរូបភាព 3 (grok-imagine, nano-banana-pro, nano-banana-2, អាចទៅដល់បានជា cheaperinference/<model>)។ ទទួលបាន API key →
តំណភ្ជាប់ដែលបានដាក់ស្លាក aff=omniroute គឺជាតំណភ្ជាប់ដៃគូ។ ពួកគេផ្តល់មូលនិធិដល់គម្រោងដោយមិនគិតថ្លៃបន្ថែមសម្រាប់អ្នក។
🎟️ ការផ្សព្វផ្សាយរបស់សាខា — ប័ណ្ណចុះឈ្មោះឥតគិតថ្លៃពីអ្នកផ្តល់សេវាដែលយើងមិនឧបត្ថម្ភ (ចុចដើម្បីពង្រីក)
ផ្នែកនេះគឺសម្រាប់តែកូដយោង/ប័ណ្ណប៉ុណ្ណោះ។ ភាពជាដៃគូដែលបានឧបត្ថម្ភមាននៅក្នុង 🤝 គាំទ្រដោយមិត្តភក្តិប្រភពបើកចំហរបស់យើង ខាងលើ។ OmniRoute មិនមានការឧបត្ថម្ភ ឬភាពជាដៃគូជាមួយអ្នកផ្តល់សេវាដែលបានរាយបញ្ជីនៅទីនេះទេ — ទាំងនេះគឺជាប័ណ្ណសាធារណៈដែលនរណាម្នាក់អាចប្រើបាន។
AgentRouter agentrouter.org
AgentRouter — ការចុះឈ្មោះសាខា · ឥណទានឥតគិតថ្លៃ $100 នៅពេលចុះឈ្មោះ (ម៉ាស៊ីនមេឥតគិតថ្លៃ រំពឹងថាមានភាពយឺតយ៉ាវខ្ពស់ — ល្អបំផុតសម្រាប់ការធ្វើតេស្ត មិនមែនសម្រាប់ការផលិតទេ)។ ការគាំទ្រលំដាប់ទីមួយនៅក្នុង OmniRoute ចាប់តាំងពី v3.8.50 ៖ Chat Completions, ទម្រង់ខ្សែដែលត្រូវគ្នាជាមួយ Anthropic និងផ្លូវដែលត្រូវគ្នាជាមួយ OpenAI។ ម៉ូដែលដែលមានរួមមាន claude-opus-4-8, claude-opus-5, gpt-5.6-sol និងច្រើនទៀត។ ចាប់យក $100 របស់អ្នក →
⚠️ តំណភ្ជាប់សាខា — OmniRoute មិនមានការឧបត្ថម្ភ ឬភាពជាដៃគូជាមួយអ្នកផ្តល់សេវានេះទេ។
ដឹងពីអ្នកផ្តល់សេវាផ្សេងទៀតដែលមានប័ណ្ណចុះឈ្មោះឥតគិតថ្លៃដ៏សប្បុរសដែលផ្តល់អត្ថប្រយោជន៍ដល់អ្នកប្រើប្រាស់ OmniRoute ទេ? បើកបញ្ហាហើយយើងនឹងបន្ថែមវានៅទីនេះ។
## 🎯 បន្សំ — មុខងារគោល
> **បន្សំ** គឺជាខ្សែសង្វាក់នៃម៉ូដែលដែល OmniRoute កំណត់ផ្លូវឆ្លងកាត់ដោយ **ស្វ័យប្រវត្តិ**។ ប្រសិនបើកូតាអស់ អ្នកផ្តល់សេវាបរាជ័យ ឬថ្លៃចំណាយកើនឡើងខ្លាំង បន្សំអាចប្តូរទៅម៉ូដែលដែលមានសុខភាពល្អ និងមានសិទ្ធិបន្ទាប់។ 🛡️
### ⚡ មិនបាច់កំណត់រចនាសម្ព័ន្ធ — គ្រាន់តែប្រើ `auto`
មិនចាំបាច់បង្កើតបន្សំទេ។ កំណត់ម៉ូដែលរបស់អ្នកទៅជា `auto` (ឬវ៉ារ្យ៉ង់មួយ) ហើយ OmniRoute នឹងបង្កើតបន្សំនិម្មិតពីអ្នកផ្តល់សេវាដែលបានភ្ជាប់របស់អ្នក ដោយដាក់ពិន្ទុផ្ទាល់៖
លេខសម្គាល់ម៉ូដែល អ្វីដែលវាបង្កើនប្រសិទ្ធភាព
auto🎯 លំនាំដើមមានតុល្យភាព (LKGP — បន្តប្រើអ្នកផ្តល់សេវាល្អចុងក្រោយរបស់អ្នក)
auto/coding🧑💻 ទម្ងន់ដែលផ្តល់អាទិភាពដល់គុណភាពសម្រាប់ការបង្កើតកូដ
auto/fast⚡ ភាពយឺតយ៉ាវទាបបំផុតមុនគេ
auto/cheap💰 ថោកបំផុតក្នុងមួយ token មុនគេ
auto/subscription🎟️ ប្រើតែកូតានៃការជាវដែលអ្នកបានបង់រួច — បិទនៅពេលបរាជ័យ និងមិនដែលប្តូរទៅជម្រើសបម្រុងដែលអាចគិតថ្លៃឡើយ (មគ្គុទ្ទេសក៍ )
auto/thrifty🪜 កូតាគម្រោងមុន បន្ទាប់មកឡើងម្តងមួយកាំទៅកាន់ជម្រើសបង់ប្រាក់ថោកបំផុត — ត្រឡប់ទៅគម្រោងវិញបន្ទាប់ពីកូតាកំណត់ឡើងវិញ (មគ្គុទ្ទេសក៍ )
auto/offline🔋 កូតា / ទំហំទំនេរនៃដែនកំណត់អត្រាច្រើនបំផុតមុនគេ
auto/smart🔭 ផ្តល់អាទិភាពដល់គុណភាព + ការសាកល្បង 10% ដើម្បីស្វែងរកម៉ូដែលល្អជាង
auto/lkgp📌 ការបន្តប្រើអ្នកផ្តល់សេវាល្អចុងក្រោយដែលបានស្គាល់យ៉ាងច្បាស់លាស់
auto/chaos🧪 បញ្ជូនសំណើចេញស្របគ្នាទៅក្រុមម៉ូដែល (មួយក្នុងអ្នកផ្តល់សេវានីមួយៗ និង 5 តាមលំនាំដើម) ហើយត្រឡប់ចម្លើយមួយ; ការហៅទៅប្រភពខាងលើមួយសម្រាប់ម៉ូដែលនីមួយៗក្នុងក្រុម មិនមែនជាការបញ្ចូលកំហុសសាកល្បងទេ
##
### 🔀 ឬបង្កើតដោយខ្លួនឯង — យុទ្ធសាស្ត្រកំណត់ផ្លូវ 20
យុទ្ធសាស្ត្រ **20** ទាំងអស់ — លាយបញ្ចូល និងផ្គូផ្គងតាមជំហាននីមួយៗនៃបន្សំ៖
#
យុទ្ធសាស្ត្រ
អ្វីដែលវាធ្វើ
1
priority
បញ្ជីតម្រៀបដែលផ្តល់អាទិភាពដល់គោលដៅទីមួយ — ប្រើគោលដៅនីមួយៗរហូតអស់ មុនបន្តទៅគោលដៅបន្ទាប់ 🥇
2
fill-first
ប្រើកូតារបស់គោលដៅនីមួយៗឱ្យពេញ មុនពេលបន្តទៅមុខ
3
weighted
ជ្រើសដោយចៃដន្យតាមទម្ងន់របស់គោលដៅនីមួយៗ
4
round-robin
បង្វិលឆ្លងកាត់គោលដៅតាមលំដាប់
5
p2c
ធ្វើតុល្យកម្មបន្ទុកដោយចៃដន្យតាមជម្រើសពីរក្នុងពេលមួយ
6
least-used
ជ្រើសគោលដៅដែលមានបន្ទុកបច្ចុប្បន្នទាបបំផុត
7
random
ជ្រើសដោយចៃដន្យស្មើៗគ្នា (ដកធាតុស្ទួនចេញ)
8
strict-random
ជ្រើសដោយចៃដន្យដោយមិនដកការជ្រើសស្ទួនចេញ 🎲
9
cost-optimized
កាត់បន្ថយតម្លៃ $ ក្នុងមួយសំណើ ដោយផ្អែកលើតម្លៃកាតាឡុកផ្ទាល់ 💸
10
headroom
ជ្រើសគោលដៅដែលមានកូតានៅសល់ច្រើនបំផុត
11
quota-weighted
រំលងគណនីដែលកូតាអស់ បន្ទាប់មកជ្រើសតាមសមាមាត្រនៃកូតានៅសល់ ÷ បន្ទុកដែលកំពុងដំណើរការ — ការសន្ទនាដែលមានស្រាប់នៅតែភ្ជាប់ជាប់នឹងគោលដៅដដែល ⚖️
12
reset-window
ផ្តល់អាទិភាពដល់គោលដៅដែលចន្លោះពេលកូតារបស់វានឹងកំណត់ឡើងវិញឆាប់បំផុត
13
reset-aware
ដាក់ចំណាត់ថ្នាក់តាមពេលវេលាកំណត់កូតាឡើងវិញ — ចន្លោះពេលខ្លីមុនគេ 📊
14
context-relay
ផ្ទេរបរិបទឆ្លងកាត់គោលដៅសម្រាប់ការសន្ទនាវែងៗ 🧠
15
context-optimized
ជ្រើសគោលដៅដែលសមបំផុតសម្រាប់ទំហំបរិបទបច្ចុប្បន្ន
16
cache-optimized
ភ្ជាប់បុព្វបទ prompt ដែលអាចប្រើឡើងវិញនីមួយៗទៅគណនីដដែល — បង្កើនការប្រើត្រូវ prompt-cache ឱ្យបានអតិបរមា 🎯
17
lkgp
ផ្លូវល្អចុងក្រោយដែលបានស្គាល់ — ភ្ជាប់ទៅអ្នកផ្តល់សេវាដែលជោគជ័យចុងក្រោយ បន្ទាប់មកប្តូរទៅច្បាប់បម្រុង
18
auto
ការដាក់ពិន្ទុផ្ទាល់ដោយកត្តា 16 ឆ្លងកាត់ការតភ្ជាប់ទាំងអស់ 🤖
19
fusion
បញ្ជូនសំណើចេញទៅក្រុមម៉ូដែល + ម៉ូដែលវិនិច្ឆ័យមួយសំយោគជាចម្លើយតែមួយ 🧬
20
pipeline
តភ្ជាប់ជំហានជាខ្សែសង្វាក់ — លទ្ធផលរបស់គោលដៅនីមួយៗត្រូវបញ្ជូនទៅគោលដៅបន្ទាប់ 🔗
ម៉ាស៊ីន Auto-Combo ដាក់ពិន្ទុបេក្ខភាពនីមួយៗដោយផ្អែកលើ **កត្តាចំនួន 16** (ស្ថានភាពល្អ កូតា ថ្លៃចំណាយ ភាពយឺតយ៉ាវ ភាពសមស្របនឹងភារកិច្ច គុណភាព លទ្ធភាពប្រើប្រាស់សម័យ…) — សូមមើល [`docs/routing/AUTO-COMBO.md`](docs/routing/AUTO-COMBO.md)។
##
### 🧱 ភាពធន់ត្រូវបានបង្កប់មកជាស្រេច (3 ស្រទាប់ឯករាជ្យ)
📖 [ម៉ាស៊ីន Auto-Combo](docs/routing/AUTO-COMBO.md) · [មគ្គុទ្ទេសក៍ភាពធន់](docs/architecture/RESILIENCE_GUIDE.md)
## 🏆 អ្វីដែលធ្វើឱ្យ OmniRoute ខុសប្លែក
📊 វិធីសាស្ត្រពេញលេញ និងព័ត៌មានលម្អិតតាមមុខងារ ប្រៀបធៀបជាមួយ 9router, OpenRouter, CLIProxyAPI និង LiteLLM → [`docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md`](docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md)
## 💚 គាំទ្រ OmniRoute
OmniRoute មានអាជ្ញាបណ្ណ MIT និងត្រូវបានថែទាំជាសាធារណៈ។ ប្រសិនបើវាជួយសន្សំពេលវេលា ឬថវិការបស់អ្នក នេះជាវិធីដែលអាចជួយរក្សាឯករាជ្យភាពរបស់វា — ជ្រើសរើសអ្វីដែលសមនឹងអ្នក។ ការឧបត្ថម្ភមិនដែលប៉ះពាល់ដល់អាទិភាពនៃការកំណត់ផ្លូវឡើយ វាផ្តល់តែភាពមើលឃើញ មិនមែនចំណាត់ថ្នាក់ទេ។
**🇧🇷 PIX** — ភ្លាមៗ ដោយមិនគិតថ្លៃ (ប្រេស៊ីល)
កូនសោ (ចៃដន្យ)៖ `5d865059-bc44-483a-962d-43ceb80126eb`
Pix copia-e-cola៖
```
00020101021126580014br.gov.bcb.pix01365d865059-bc44-483a-962d-43ceb80126eb5204000053039865802BR5922OMNIROUTE CONTRIBUICAO6006BRASIL62070503***630475DD
```
₿ រូបិយប័ណ្ណគ្រីបតូ — BTC · ETH · USDT-TRC20 · USDC-Solana (ចុចដើម្បីពង្រីក)
₿ BTC Bitcoin (SegWit) bc1qh00smz004sy85wyl28v77tenkt3ckl6eaep7fd
Ξ ETH Ethereum (ERC20) 0x64Cf6B68A6Ff34288e89172950a2d00102337a84
₮ USDT Tron (TRC20) TKAF41JpuQrHbKTnsQa9svJE2T192Hvsc2
$ USDC Solana 2emNNZzVVWQc3FQ2wk9M6qXUQmW8AKdjjL174fXR28Tu
⚠️ សូមផ្ញើកាក់នីមួយៗតែលើបណ្តាញដែលបានបង្ហាញប៉ុណ្ណោះ — ការផ្ញើលើបណ្តាញខុសអាចធ្វើឱ្យបាត់បង់ថវិកា។
🐛 បានរកឃើញកំហុស ឬមានមតិកែលម្អមែនទេ? បើក [ការពិភាក្សា](https://github.com/diegosouzapw/OmniRoute/discussions) មួយ។
កំណត់សម្គាល់សម្រាប់អ្នកអភិវឌ្ឍន៍៖ គម្រោងអាចបង្កើតឯកសារមូលដ្ឋាន .env អំឡុងពេល npm install/postinstall ដើម្បីផ្តល់ភាពងាយស្រួលដល់អ្នកអភិវឌ្ឍន៍។ ឯកសារនេះត្រូវបានមិនអើពើដោយចេតនាតាមរយៈ .gitignore (សូមមើល .gitignore) ហើយមិនត្រូវ commit ជាដាច់ខាត — ប្រសិនបើបាន commit ដោយចៃដន្យ សូមប្តូរព័ត៌មានសម្ងាត់ដែលបានបង្ហាញណាមួយ ហើយលុបឯកសារនោះចេញពីប្រវត្តិ។ សូមមើល docs/DEVELOPER-ENVIRONMENT.md សម្រាប់ការណែនាំអំពីការគ្រប់គ្រងឯកសារបរិស្ថានមូលដ្ឋាន និងព័ត៌មានសម្ងាត់។
## 📡 OmniRoute Radar
ចំណុចសំខាន់នៃកម្រិតឥតគិតថ្លៃនៅតែមាន **~1.62B tokens/ខែ** ពីកាតាឡុកដែលបានរៀបរាប់ខាងលើ និងបានលុបធាតុស្ទួនរវាងបណ្តុំរួច។ ក្រេឌីតបណ្តោះអាសន្នសម្រាប់ការចុះឈ្មោះជាមួយអ្នកផ្តល់សេវា អាចបង្កើនចំនួនសម្រាប់ខែដំបូងដោយឡែករហូតដល់ **~2.22B**។ Radar គឺជាស្រទាប់បន្ថែមលើកាតាឡុកដែលមានហត្ថលេខាផ្ទៀងផ្ទាត់ និងអាចជ្រើសរើសប្រើបាន សម្រាប់អ្នកដែលចង់ទទួលបានព័ត៌មានថ្មីជាងមុនអំពីភាពអាចប្រើបាននៃម៉ូដែលឥតគិតថ្លៃ នៅចន្លោះការចេញផ្សាយនីមួយៗរបស់ OmniRoute។ កាតាឡុកសហគមន៍ និងមុខងារឥតគិតថ្លៃដែលមានស្រាប់ទាំងអស់ នៅតែឥតគិតថ្លៃដដែល។
អ្នកគាំទ្រអាចទទួលបានកាតាឡុកបន្តផ្ទាល់ និងឱកាសបន្ថែមពីអ្នកផ្តល់សេវា។ ដែនកំណត់អតិបរមាដាច់ដោយឡែក និងអាចផ្លាស់ប្តូរបានរបស់វាគឺ **ប្រហែល 3B tokens/ខែ យ៉ាងច្រើនបំផុត** ដោយអាស្រ័យលើភាពអាចប្រើបានរបស់អ្នកផ្តល់សេវា។ ដែនកំណត់នេះមិនមែនជាការធានាទេ៖ អ្នកផ្តល់សេវាអាចផ្លាស់ប្តូរកូតា លក្ខខណ្ឌសិទ្ធិទទួលបាន ម៉ូដែល ឬតំបន់បានគ្រប់ពេល។
Radar គឺជាមុខងារដែលត្រូវជ្រើសរើសចូលប្រើ និងប្រើតែ GET ប៉ុណ្ណោះ។ កម្មវិធីអតិថិជន OmniRoute មិនបង្ហោះប្រូមត៍ ចរាចរណ៍ ការកំណត់រចនាសម្ព័ន្ធអ្នកផ្តល់សេវា ទិន្នន័យតេឡេមេទ្រីនៃការប្រើប្រាស់ ឬស្ថានភាពមូលដ្ឋាននៃការបិទការជូនដំណឹងឡើយ។ ស្វែងយល់អំពីលក្ខខណ្ឌសិទ្ធិទទួលបាន និងកាតាឡុកបច្ចុប្បន្ននៅ **[radar.omniroute.online/planos](https://radar.omniroute.online/planos)**។
## ✨ មានអ្វីថ្មី
> ចំណុចសំខាន់ៗថ្មីៗពី **v3.8.20 → v3.8.54**។ ប្រវត្តិពេញលេញនៅក្នុង [`CHANGELOG.md`](CHANGELOG.md)។
- **⚖️ ការកំណត់ផ្លូវ `quota-weighted`** — យុទ្ធសាស្ត្រ combo ទី 20 រំលងគណនីដែលកូតាអស់ ហើយជ្រើសរើសក្នុងចំណោមគណនីដែលនៅសល់តាមសមាមាត្រ កូតាដែលនៅសល់ ÷ បន្ទុកដែលកំពុងដំណើរការ ដោយរក្សាការភ្ជាប់សន្ទនាដែលមានស្រាប់ឱ្យនៅជាប់ដដែល។ → [Auto-Combo](docs/routing/AUTO-COMBO.md)
- **🧰 របៀប Headless** — `omniroute serve --headless` (ឬ `OMNIROUTE_HEADLESS=1`) ដំណើរការតែម៉ាស៊ីនប្រូកស៊ី `/v1/*` ប៉ុណ្ណោះ ដោយបិទ dashboard និងប្រព័ន្ធរងដែលមានសម្រាប់ dashboard តែប៉ុណ្ណោះ។ → [របៀប Headless](docs/guides/HEADLESS.md)
- **🔎 ការស្វែងរកម៉ូដែល** — `/v1/models` ត្រងតាមសមត្ថភាព បរិបទ ប្រភេទ និងអត្ថបទ ហើយ `POST /v1/models/query` ត្រឡប់បញ្ជីជម្រើសខ្លីដែលកំណត់លទ្ធផលបានដដែល ដោយប្រើភាពមើលឃើញតាម key ដូចគ្នា។ → [ឯកសារយោង API](docs/reference/API_REFERENCE.md)
- **🔑 ការគ្រប់គ្រងការកំណត់ផ្លូវតាម key** — បិទ API key មួយឱ្យប្រើម៉ូដែល ឬ combo មួយតាម `forcedModel` ហើយបន្ថែម ឬដកម៉ូដែល និង combo របស់ key មួយដោយប្រតិបត្តិការអាតូមិក (`/api/keys/{id}/access`)។ → [ឯកសារយោង API](docs/reference/API_REFERENCE.md) · [OpenAPI](docs/openapi.yaml)
- **🛡️ ការគ្រប់គ្រង PII លម្អិតជាងមុន** — ជ្រើសរើសតាមប្រភេទ លំនាំបិទបាំងផ្ទាល់ខ្លួនដែលបានផ្ទៀងផ្ទាត់រហូតដល់ 20 និងបញ្ជររកឃើញតាមប្រភេទ។ ការបិទបាំងនៅតែត្រូវបើកដោយជ្រើសរើស។ → [Guardrails](docs/security/GUARDRAILS.md)
- **🌍 67 ភាសា** — dashboard ឯកសារចម្លង និង CLI ដោយ `npm run i18n:add-locale` បន្ថែមភាសាមួយគ្រប់ទីកន្លែងតាមពាក្យបញ្ជាតែមួយ។ → [មគ្គុទ្ទេសក៍ i18n](docs/guides/I18N.md)
- **🎛️ OmniConductor** — ការផ្ទេរភារកិច្ច A2A ចូលទៅកាន់ក្រុម agent របស់អ្នក ជំនាញ Conductor នៅលើ Agent Card និងផ្ទាំង dashboard ជាមួយការជជែកជាសំឡេង push-to-talk របស់ Faro។ → [ម៉ាស៊ីនមេ A2A](docs/frameworks/A2A-SERVER.md)
- **🛂 ការទទួលសំណើសម្របខ្លួន និងការការពារការផ្ទុកលើស** — សំណើជជែកដែលប្រើធនធានច្រើនត្រូវបានដាក់ជួរ ជំនួសឱ្យឆ្លើយតបជា 503 ដោយមានសិទ្ធិជួល RPM rolling តាមការតភ្ជាប់ដោយអាតូមិក។ → [មគ្គុទ្ទេសក៍ភាពធន់](docs/architecture/RESILIENCE_GUIDE.md)
- **🗂️ លំដាប់ `/v1/models` ស្តង់ដារ** — ប្លុកជាប់គ្នាតែមួយដែលដាក់ជាក្រុមតាម provider សម្រាប់ provider នីមួយៗ (combo ត្រូវបានដាក់មុន) មានស្ថិរភាពនៅគ្រប់ប្រភព catalog។ → [ឯកសារយោង API](docs/reference/API_REFERENCE.md)
- **🗜️ ការពង្រឹងការបង្ហាប់** — ឧបករណ៍ការពារ inflation បើកតាមលំនាំដើម កញ្ចប់ Caveman សម្រាប់ DE / FR / JA + ភាសាចិន (wényán) និងតម្រង RTK សម្រាប់ Gradle & .NET។ → [ការបង្ហាប់](docs/compression/COMPRESSION_ENGINES.md)
- **💸 តម្លៃ flat-rate ប្រកបដោយភាពស្មោះត្រង់** — provider ប្រភេទ subscription / coding-plan បង្ហាញ **$0** ក្នុងការវិភាគថ្លៃដើម។ ការប៉ាន់ស្មានសម្រាប់ថវិកា កូតា និងការកំណត់ផ្លូវនៅតែដំណើរការ។ → [ឯកសារយោង API](docs/reference/API_REFERENCE.md)
- **⚖️ ការកំណត់ផ្លូវ Quota-Share** — បែងចែកកូតារបស់គណនីរួមមួយដោយយុត្តិធម៌ក្នុងចំណោម key ដែលដាក់ជាក្រុម ហើយអាចប្រើធនធានបានពេញលេញ ដោយខ្ចីចំណែកដែលទំនេរទៅអ្នកដទៃ។ → [មគ្គុទ្ទេសក៍ភាពធន់](docs/architecture/RESILIENCE_GUIDE.md)
- **🤖 ការរៀបចំ CLI/agent ដោយពាក្យបញ្ជាតែមួយ** — មានពាក្យបញ្ជា `setup-*` ដែលបានចុះបញ្ជីចំនួន 15; `omniroute run` បើកដំណើរការ CLI ចំនួន 7 (Claude Code, Codex, Aider, Goose, OpenCode, Qwen Code, Gemini CLI); `omniroute configure` គាំទ្រគោលដៅចំនួន 11 ជាមួយឧបករណ៍ជ្រើស provider+model អន្តរកម្ម និងចំណូលចិត្តតាមបរិបទ។ → [ការរួមបញ្ចូល CLI](docs/guides/CLI-INTEGRATIONS.md)
- **🛰️ របៀប Remote** — គ្រប់គ្រង OmniRoute ពីចម្ងាយដោយ token ដែលកំណត់វិសាលភាព (`connect` / `contexts` / `tokens`) រួមជាមួយជំនួយការ OAuth `antigravity` សម្រាប់ការដំឡើងលើ VPS។ → [របៀប Remote](docs/guides/REMOTE-MODE.md)
- **🧭 ការកំណត់ផ្លូវស្វ័យប្រវត្តិឆ្លាតវៃជាងមុន** — combo `auto/:`, **Fusion** (បន្ទះម៉ូដែល + អ្នកវិនិច្ឆ័យ), ការកំណត់ផ្លូវដឹងពីភារកិច្ច និងការបដិសេធម៉ូដែល / mode / ថវិកា USD តាមសំណើ។ → [Auto-Combo](docs/routing/AUTO-COMBO.md)
- **🗜️ ការបង្ហាប់ដែលអាចដោតបន្ថែមបាន** — ម៉ាស៊ីនដែលអាចផ្សំបានចំនួន 12 + Compression Studios: LLMLingua-2, Ultra ពីរកម្រិត, omniglyph, ច្រកត្រួតពិនិត្យភាពស្មោះត្រង់តាមជំហាន, GCF v3.2 និងកម្មវិធីកែសម្រួលអូស-រៀបលំដាប់។ → [ការបង្ហាប់](docs/compression/COMPRESSION_ENGINES.md)
- **🕵️ ការឌិគ្រីប MITM (TPROXY) ប្រកបដោយតម្លាភាព** — ចាប់យក CLI ដែលមិនអើពើនឹងអថេរបរិស្ថាន proxy ជាមួយ CA តាម SNI និងកម្មវិធីដំឡើង trust-store។ → [MITM/TPROXY](docs/security/MITM-TPROXY-DECRYPT.md)
- **💸 ទិន្នន័យថ្លៃដើមគ្រប់ទីកន្លែង** — បឋមកថា `X-OmniRoute-*` សម្រាប់ថ្លៃដើម/ការប្រើប្រាស់នៅគ្រប់ endpoint, បឋមកថាបង្ហាញការសន្សំពី cache-HIT និងកូតាចំណាយ USD តាម key។ → [ឯកសារយោង API](docs/reference/API_REFERENCE.md)
- **🧠 អង្គចងចាំដែលអ្នកអាចគ្រប់គ្រង** — បិទតាមលំនាំដើម បើកដោយជ្រើសរើសនូវការធ្វើ vector quantization int8 + typed decay និង `x-omniroute-no-memory` តាមសំណើ។ → [អង្គចងចាំ](docs/frameworks/MEMORY.md)
- **🛡️ សុវត្ថិភាព** — ឧបករណ៍ការពារការបញ្ចូល prompt នៅគ្រប់ផ្លូវ LLM (ឈុតសាកល្បង red-team), ឧបករណ៍ការពារបិទបាំងព័ត៌មានសម្ងាត់ដែលបើកដោយជ្រើសរើស (លាក់ API key/secret ដែលលេចធ្លាយទាំងទិសចូល និងទិសចេញ), ការស្វែងរកតាមបណ្តាញ DuckDuckGo ឥតគិតថ្លៃសម្រាប់ជម្រើសចុងក្រោយ និងច្រកចូល OIDC ជាជម្រើសសម្រាប់ dashboard (ការចូលដោយពាក្យសម្ងាត់នៅតែមានជានិច្ច)។ → [Guardrails](docs/security/GUARDRAILS.md)
- **🖼️ endpoint ថ្មី** — `/v1/ocr` (Mistral OCR) និង `/v1/audio/translations` (រចនាប័ទ្ម Whisper) បំពេញផ្ទៃប្រព័ន្ធផ្សព្វផ្សាយ។ → [ឯកសារយោង API](docs/reference/API_REFERENCE.md)
- **🎨 ការបង្កើតរូបភាព / វីដេអូ / សំឡេង** — API តែមួយសម្រាប់ប្រព័ន្ធផ្សព្វផ្សាយ៖ xAI Grok Imagine & Novita AI video, ComfyUI, Magnific, Adobe Firefly, Segmind និង provider សំឡេងដូចជា ElevenLabs។ → [ឯកសារយោង API](docs/reference/API_REFERENCE.md)
- **🌍 ការដាក់ឱ្យប្រើប្រាស់ និងប្រតិបត្តិការ** — reverse-proxy `basePath`, ការរកឃើញភាសាកម្មវិធីរុករកដោយស្វ័យប្រវត្តិ, ការតាមដានឧបករណ៍តាម key, MITM trust ដោយគ្មាន root និងការធ្វើមូលដ្ឋានីយកម្ម zh-TW។ → [បរិស្ថាន](docs/reference/ENVIRONMENT.md)
- **🤝 provider និង agent បន្ថែមទៀត** — cloud agent (Codex Cloud, Cursor, Devin, Jules), Grok Build (xAI) ជាមួយ browser + OAuth login, កាត Ollama ថ្នាក់ដំបូង, Claude Opus 5 & Sonnet 5, ភាពជាដៃគូផ្លូវការជាមួយ Kimi (Code/Web/Moonshot), Zed, Requesty, SenseNova, Yuanbao, Agnes AI… និង catalog provider ដែលបានធ្វើបច្ចុប្បន្នភាពមាន **388 provider**។ → [Provider](docs/reference/PROVIDER_REFERENCE.md)
- **📡 តម្លាភាពនៃការកំណត់ផ្លូវ** — រាល់ការឆ្លើយតបមានបឋមកថា `X-OmniRoute-Decision` ដែលបញ្ជាក់ឈ្មោះយុទ្ធសាស្ត្រ/provider/latency ដែលបានបម្រើវា, យុទ្ធសាស្ត្រ combo `cache-optimized` ថ្មី + កត្តា `cacheAffinity` របស់ Auto-Combo បញ្ជូនសំណើដដែលៗត្រឡប់ទៅ connection ដែលកាន់ cached prefix ហើយ endpoint `/v1/auto-combo/{channel}/candidates` ដែលអាចអានបានតែប៉ុណ្ណោះ បង្ហាញ candidate pool បច្ចុប្បន្នរបស់ channel `auto/*`។ → [Auto-Combo](docs/routing/AUTO-COMBO.md)
- **⚡ ប្រតិបត្តិការមូលដ្ឋាន និងហេដ្ឋារចនាសម្ព័ន្ធដែលមានប្រសិទ្ធភាព** — Redis មូលដ្ឋានដោយចុចតែម្តង, ឧបករណ៍ដាក់ឱ្យដំណើរការ relay សម្រាប់ Cloudflare Workers / Deno Deploy, និង Bifrost & Mux ជាសេវាកម្មបង្កប់ដែលមានការត្រួតពិនិត្យ។ → [សេវាកម្មបង្កប់](docs/frameworks/EMBEDDED-SERVICES.md)
- **🧩 មានភ្ជាប់មកជាមួយផងដែរ** — ក្របខណ្ឌកម្មវិធីជំនួយ + ទីផ្សារ, ក្របខណ្ឌជំនាញ Omni/Agent/GitHub, ការរួមបញ្ចូល Obsidian vault (ឧបករណ៍ MCP ចំនួន 22), Batch & Files APIs ដែលអាចប្រើជាមួយ OpenAI, ឃ្លាំងសម្ងាត់ការឆ្លើយតបតាមន័យ, ប្រព័ន្ធលេងហ្គេមជាមួយតារាងចំណាត់ថ្នាក់, ការស្វែងរកភ្នាក់ងារ ACP (ភ្នាក់ងារដែលមានស្រាប់ចំនួន 15), ការនាំចេញកំណត់ហេតុតាមកាលវិភាគទៅ BigQuery, ការបញ្ជូនបន្តម៉ូដែលច្រើនស្របគ្នាតាមរយៈ `auto/chaos`, ស្ពាន bot Telegram, កម្មវិធីគ្រប់គ្រងកំណែក្នុងកម្មវិធី និងចំណាត់ថ្នាក់អ្នកផ្តល់សេវាឥតគិតថ្លៃ LMArena-ELO។ → [ឯកសារ](docs/README.md)
## 🤖 CLI និង Agent កូដ ដែលអាចប្រើបាន
> កំណត់តែមួយ — `http://localhost:20128/v1` — ហើយ **IDE ឬ CLI AI** ទាំងអស់ដំណើរការលើម៉ូដែលឥតគិតថ្លៃ និងថ្លៃទាប។
+ ក៏អាចប្រើជាមួយ · Agent Deck · Kiro · Command Code · Antigravity · Windsurf · AMP · ឧបករណ៍ណាមួយដែលស្របជាមួយ OpenAI
📖 ការរៀបចំមួយៗសម្រាប់ឧបករណ៍ទាំង ៣៩ (២៨ CLI Code's + ១១ CLI Agents) → [`docs/reference/CLI-TOOLS.md`](docs/reference/CLI-TOOLS.md) · 🧩 OpenCode plugin → [`@omniroute/opencode-provider`](https://www.npmjs.com/package/@omniroute/opencode-provider)
**បើកដំណើរការឧបករណ៍ CLI ដែលគាំទ្រណាមួយតាមរយៈ OmniRoute ជាមួយពាក្យបញ្ជាតែមួយ** — មិនចាំបាច់សរសេរឯកសារ config,
សម្ងាត់ត្រូវបានបញ្ចូលក្នុងដំណើរការនីមួយៗ, Qwen/Gemini ទទួលបានផ្ទះបំបែកឯករាជ្យមួយ៖
```bash
omniroute run claude --model openai/gpt-5.4 # Claude Code
omniroute run codex --model glm/glm-5.2 # OpenAI Codex CLI
omniroute run aider --model glm/glm-5.2 -- --message "reply OK"
omniroute run goose --model glm/glm-5.2
omniroute run opencode --model glm/glm-5.2 -- run "reply OK"
omniroute run qwen --model glm/glm-5.2 -- -p "reply OK"
omniroute run gemini --model glm/glm-5.2 -- --skip-trust -p "reply OK"
# ឬជ្រើសរើស provider+model ដោយដៃ ហើយសរសេរ config ផ្ទាល់របស់ឧបករណ៍៖
omniroute configure codex # ក៏ដូចជា: claude opencode qwen aider goose gemini cline continue kilo 5dive
```
ពាក្យបញ្ជាទាំងអស់គោរពតាម context remote សកម្ម (`omniroute connect `), `--dry-run`
បង្ហាញមើលជាមុននូវ env/args ពិតប្រាកដដោយមិនដំណើរការ, ហើយ `--api-key-env NAME` រក្សាសម្ងាត់ឲ្យឆ្ងាយពីប្រវត្តិសShell របស់អ្នក។ → [CLI Integrations](docs/guides/CLI-INTEGRATIONS.md)
## 🌐 អ្នកផ្តល់សេវា AI ចំនួន 388 — 153 ត្រូវបានសម្គាល់ថាឥតគិតថ្លៃក្នុងកាតាឡុក
> **អ្នកផ្តល់សេវាដែលបានចុះបញ្ជីចំនួន 388** នៅទូទាំងបណ្តុំ canonical chat, media, search, local, cloud-agent និង system ដែលក្នុងនោះមាន **153 មានទិន្នន័យមេតាសម្រាប់ការស្វែងរក `hasFree: true`**។ បញ្ជីឈ្មោះម៉ូដែលជជែកគ្របដណ្តប់ **អ្នកផ្តល់សេវា 239 / គូអ្នកផ្តល់សេវា-ម៉ូដែលខុសគ្នា 3,059 / លេខសម្គាល់ម៉ូដែលដើម 1,475**; កាតាឡុកថវិកាឥតគិតថ្លៃដាច់ដោយឡែកមាន **ជួរតាមម៉ូដែល 471**, **pool ដែលកើតឡើងជាប្រចាំ 34** និង **អ្នកផ្តល់សេវាឥតគិតថ្លៃជារៀងរហូត ដែលកើតឡើងជាប្រចាំ/មិនត្រូវការសោ 52**។ ទាំងនេះជាភាគបែងខុសគ្នាតាមការរចនា; និយមន័យ និងការគណនាដែលបានដកស្ទួនតាម pool មាននៅក្នុង [ឯកសារយោងអ្នកផ្តល់សេវា](docs/reference/PROVIDER_REFERENCE.md) និង [កម្រិតឥតគិតថ្លៃ](docs/reference/FREE_TIERS.md)។
## 🖥️ កន្លែងដែល OmniRoute រត់ — នៅគ្រប់ទីកន្លែង
> កម្មវិធីដូចគ្នា ម៉ាស៊ីនរបស់អ្នក ច្បាប់របស់អ្នក។ ពី npm សកលដំឡើងទៅ** ទូរស័ព្ទរបស់អ្នក។** តាមរយៈ Termux ។
វេទិកា ដំឡើង
📦 npm (សកល) npm ដំឡើង -g omniroute ពាក្យបញ្ជាមួយ OS
⚡ Bun (សកល) bun បន្ថែម -g omniroute tarball បញ្ជីឈ្មោះដូចគ្នា ដំឡើងលឿនជាងមុន
🐳 Docker docker រត់ … diegosouzapw/omniroute ពហុarch AMD64 + ARM64
🖥️ ផ្ទៃតុ (Electron) npm ដំណើរការអេឡិចត្រុង៖ បង្កើត ផ្ទាំងប្រព័ន្ធ + បង្អួចដើម — Windows / macOS / Linux
🎩 Menu-bar (OmniRouteTray) brew ដំឡើង --cask zoispag/tap/omniroute-tray គ្រប់គ្រង & ធ្វើបច្ចុប្បន្នភាព លើម៉ាស៊ីនមេ — macOS
💪 ARM ដើមកំណើត arm64 Raspberry Pi, ម៉ាស៊ីនមេ ARM, Apple Silicon
📱 Android (Termux) pkg ដំឡើង nodejs && npx -y omniroute ដំណើរការ នៅលើទូរសព្ទរបស់អ្នក , 24/7, no root
📲 PWA "បន្ថែមទៅអេក្រង់ដើម" ពេញអេក្រង់ ក្រៅបណ្តាញ ដំឡើងពីកម្មវិធីរុករក
🧩 OpenCode កម្មវិធីជំនួយ @omniroute/opencode-provider ការរួមបញ្ចូល zqn OpenCode
🤖 VS កូដ Copilot ជជែក ដំឡើង OmniCopilot ផ្នែកបន្ថែម រាល់គំរូ OmniRoute នៅក្នុងកម្មវិធីជ្រើសរើស Copilot Chat ដើម — មានស្ថេរភាព & អ្នកខាងក្នុង
🛠️ ពីប្រភព npm ដំឡើង && npm ដំណើរការ dev Hack នៅលើវា រួមចំណែក
📖 [Docker Guide](docs/guides/DOCKER_GUIDE.md) · [ផ្ទៃតុ](electron/README.md) · [ថាសរបារម៉ឺនុយ](https://github.com/zoispag/omniroute-tray) · [Termux](docs/guides/TERMUX_GUIDE.md) · [PWA](docs/guides/PWA_GUIDE.md) · [OpenCode](docs/frameworks/OPENCODE.md)
### 🧩 ថ្មី៖ OmniRoute នៅខាងក្នុង VS Code ដើមរបស់ Copilot Chat
> គ្មានរបារចំហៀងថ្មី គ្មានការជជែកថ្មី UI — គ្រប់ម៉ូដែល OmniRoute បម្រើបង្ហាញឡើងនៅខាងស្ដាំ**Copilot កម្មវិធីជ្រើសរើសម៉ូដែលជជែកដែលអ្នកបានប្រើរួចហើយ** . ចាប់តាំងពីលេខកូដ VS 1.122 ម៉ូដែលអ្នកផ្តល់សេវាដំណើរការដោយគ្មានការចុះឈ្មោះ GitHub ឬការជាវ Copilot — របៀបភ្នាក់ងារ ការហៅឧបករណ៍ និងការមើលឃើញដោយឥតគិតថ្លៃ។
ដំឡើង** [OmniCopilot](https://github.com/diegosouzapw/OmniCopilot)** ផ្នែកបន្ថែម ចង្អុលវានៅម៉ាស៊ីន OmniRoute របស់អ្នក (លំនាំដើមទៅ `localhost:20128`) បន្ទាប់មកបើក Copilot Chat → model picker →** គ្រប់គ្រងម៉ូដែល...** →**OmniRoute** .
Store Link ធ្វើការជាមួយ
🧩 VS Code Marketplace ដំឡើង → < td តម្រឹម ="ឆ្វេង">VS កូដ — មានស្ថេរភាព & អ្នកខាងក្នុង
🔓 បើក VSX ចុះឈ្មោះ ដំឡើង → < td ="ឆ្វេង">Cursor, Windsurf, VSCodium Theia code-server, Gitpod, Antigravity, Kiro…
ពីខាងក្នុងកម្មវិធីនិពន្ធ៖ បើកឯកសារ** ផ្នែកបន្ថែម** មើល, ស្វែងរក** "OmniRoute"** , ចុច** ដំឡើង** - ដំណើរការដូចគ្នានៅលើហាងទាំងពីរ។ ប្រភព បញ្ហា និងសៀវភៅរត់ការបោះពុម្ពផ្សាយផ្ទាល់នៅ [diegosouzapw/OmniCopilot](https://github.com/diegosouzapw/OmniCopilot) ។
📖 [VS កូដ Copilot មគ្គុទ្ទេសក៍ជជែក](docs/guides/VSCODE-COPILOT.md) — ការរៀបចំ, អ្វីដែលអ្នកជ្រើសរើសបង្ហាញ, ផ្ទាំងគ្រប់គ្រង-in-a-tab, ការដោះស្រាយបញ្ហា
### 🎩 ថ្មី៖ OmniRouteTray — ច្រកផ្លូវរបស់អ្នក រស់នៅក្នុងរបារម៉ឺនុយ
> `omniroute serve` គឺសប្បាយចិត្តបំផុតនៅពេលដែលវាតែងតែបើក។** [OmniRouteTray](https://github.com/zoispag/omniroute-tray)** ប្រែក្លាយវាទៅជាកម្មវិធីរបារម៉ឺនុយកំណត់ហើយបំភ្លេចចោលសម្រាប់ macOS: វាចាប់ផ្តើមម៉ាស៊ីនមេ រក្សាវាឱ្យនៅរស់ឡើងវិញ ធ្វើឱ្យទាន់សម័យវានៅនឹងកន្លែង ហើយដាក់ថវិកាថូខឹនបន្តផ្ទាល់របស់អ្នកដោយចុចតែម្តង —** គ្មានបង្អួចស្ថានីយបានបើកទេ គ្មាន `npm install -g omniroute` សម្រាប់មើលកូនទេ។**
បង្កើតឡើងដោយ [Tauri v2](https://v2.tauri.app/) (ស្នូល Rust ទំហំនៃកំហុសបង្គត់) វាបញ្ជូនពេលវេលាដំណើរការ Node 24 ដែលបានចុះហត្ថលេខាដោយខ្លួនឯង និងគ្រប់គ្រងការដំឡើង OmniRoute ជាកម្មសិទ្ធិរបស់កម្មវិធី ដូច្នេះវាមិនដែលប្រឆាំងនឹង `node`/`bun` សកលរបស់អ្នកទេ។ វា។** ចែករំលែកការកំណត់រចនាសម្ព័ន្ធ `~/.omniroute/` ដែលមានស្រាប់ និងមូលដ្ឋានទិន្នន័យរបស់អ្នក។** - ដូច្នេះវាដូចគ្នានឹង OmniRoute ដែលអ្នកបានរត់រួចហើយ ដោយគ្រាន់តែពាក់មួក។ 🎩
របៀប
🟢 គ្រប់គ្រងម៉ាស៊ីនមេ Spawns omniroute បម្រើ ទទួលយកឧទាហរណ៍ដែលកំពុងដំណើរការរួចហើយជំនួសឱ្យការស្ទួនវា
📊 ការប្រើប្រាស់ផ្ទាល់ភ្លាមៗ របារកូតាអ្នកផ្តល់សេវា ដែនកំណត់ Claude session/weekly ជាមួយនឹងការកំណត់ការរាប់ថយក្រោយឡើងវិញ ការបំបែកការចំណាយរយៈពេល 30 ថ្ងៃ
🔄 ការធ្វើបច្ចុប្បន្នភាពដោយស្វ័យប្រវត្តិនៅកន្លែង ការដំឡើងជាដំណាក់កាល ការផ្លាស់ប្តូរអាតូមិក ការវិលត្រឡប់មកវិញនៅលើការបរាជ័យ — តែងតែនៅលើការចេញផ្សាយថ្មីបំផុត
🚀 ចាប់ផ្តើមនៅលើការចូល បើកដំណើរការស្រេចចិត្តនៅពេលចូល។ តែថាសប៉ុណ្ណោះ គ្មានរូបតំណាងចត
🩺 វេជ្ជបណ្ឌិត & កំណត់ហេតុ ការវិនិច្ឆ័យដោយចុចតែម្តង និងការចូលប្រើកំណត់ហេតុម៉ាស៊ីនមេ
```sh
brew install --cask zoispag/tap/omniroute-tray
```
ចូលចិត្តការទាញយក? ចាប់យក .dmg ចុងក្រោយបំផុតពី
ចេញផ្សាយ ។ ប្រភព បញ្ហា និងបង្កើត
ឯកសាររស់នៅ zoispag/omniroute-tray ។
💛 គម្រោងសហគមន៍ដោយ @zoispag — មិនមែនជាការចេញផ្សាយ OmniRoute ផ្លូវការទេ។
## 🔒 ឯកជនភាព និងផ្តោតលើការដំណើរការក្នុងម៉ាស៊ីនជាមុន
📖 [ការផ្តល់សិទ្ធិ](docs/architecture/AUTHZ_GUIDE.md) · [របាំងការពារ](docs/security/GUARDRAILS.md) · [ការអនុលោមតាមបទប្បញ្ញត្តិ](docs/security/COMPLIANCE.md)
## 🔌 CLI ពេញលេញ + A2A & MCP
> លើសពីម៉ាស៊ីនមេ OmniRoute គឺជា **ផ្ទាំងបញ្ជាបន្ទាត់ពាក្យបញ្ជាពេញលេញ** ដែលមាន **ពាក្យបញ្ជាជាង 80** ព្រមទាំងពិធីការភ្នាក់ងារបើកចំហ ដើម្បីឱ្យភ្នាក់ងារ AI អាចបញ្ជាវា **ដោយខ្លួនឯង**។
### ⌨️ CLI ពិតប្រាកដមួយ (មិនមែនមានតែ `start` ទេ)
```bash
omniroute # ដំណើរការ gateway + dashboard (ច្រក 20128)
omniroute chat # កម្មវិធីជជែក TUI អន្តរកម្ម (slash: /model /combo /skill /memory)
omniroute setup # អ្នកជំនួយការណែនាំសម្រាប់ការដំណើរការលើកដំបូង
omniroute doctor # វិនិច្ឆ័យ providers, ច្រក និង native deps
```
### 🛰️ របៀបពីចម្ងាយ — ដំណើរការ CLI នៅទីនេះ និង OmniRoute នៅលើ VPS
មាន OmniRoute នៅលើម៉ាស៊ីនមេមែនទេ? បញ្ជាវាពីកុំព្យូទ័រយួរដៃរបស់អ្នកដោយប្រើ **CLI ដូចគ្នា**។ ចូលប្រើម្តង
ដោយប្រើ access token ដែលមានវិសាលភាពកំណត់ បន្ទាប់មកពាក្យបញ្ជាទាំងអស់នឹងតម្រង់ទៅកាន់ម៉ាស៊ីនមេពីចម្ងាយ។
```bash
omniroute connect 192.168.0.15 # ពាក្យសម្ងាត់ → token ដែលមានវិសាលភាពកំណត់ និងរក្សាទុកជា context
omniroute models # ← ដំណើរការលើម៉ាស៊ីនមេពីចម្ងាយ
omniroute configure codex # ← ជ្រើសរើសម៉ូដែលពីចម្ងាយ និងសរសេរ profile Codex ក្នុងម៉ាស៊ីន
omniroute tokens create --name ci --scope read # បង្កើត token ដែលមានវិសាលភាពតូចជាង សម្រាប់ម៉ាស៊ីនផ្សេង
omniroute contexts use default # ← ប្តូរត្រឡប់ទៅម៉ាស៊ីនមេក្នុងម៉ាស៊ីន
```
Token មានវិសាលភាព `read` / `write` / `admin`; route ដែលបង្កើត process នៅតែអនុញ្ញាតតែ loopback ប៉ុណ្ណោះ។
📖 [របៀបពីចម្ងាយ](docs/guides/REMOTE-MODE.md)
### 🤝 ភ្ជាប់ភ្នាក់ងារមួយ — ហើយវាអាចគ្រប់គ្រង OmniRoute ដោយខ្លួនឯង
បើកឱ្យចូលប្រើ OmniRoute តាមរយៈ **MCP**, **A2A**, **REST API**, **webhooks** ឬ **CLI ពីចម្ងាយ** — ភ្នាក់ងារដែលមានសមត្ថភាពណាមួយ (ឬកូដផ្ទាល់ខ្លួនរបស់អ្នក) នឹងទទួលបានសិទ្ធិគ្រប់គ្រង gateway ទាំងមូល៖ routing, providers, combos, cache, compression និង memory — ដោយស្វ័យប្រវត្តិ។ Endpoint HTTP ខាងក្រោមត្រូវបានផ្តល់នៅក្រោម `http://localhost:20128`។
ចំណុចប្រទាក់ Endpoint / ពាក្យបញ្ជា ប្រើវាសម្រាប់
🧰 MCP (stdio) omniroute --mcpភ្ជាប់ទៅ Claude Desktop, Cursor ឬកម្មវិធី MCP ណាមួយ
🌊 MCP (HTTP) /api/mcp/streamMCP ពីចម្ងាយ — ឧបករណ៍ 110 , 33 វិសាលភាព (ការអនុវត្តតាមគឺជាជម្រើស), កំណត់ត្រាសវនកម្មពេញលេញ
📡 MCP (SSE) /api/mcp/sseមធ្យោបាយបញ្ជូន MCP ជាស្ទ្រីម
🤝 A2A /.well-known/agent.jsonភ្នាក់ងារទៅភ្នាក់ងារ, JSON-RPC 2.0 + SSE, ជំនាញ 6
🌐 REST API /v1/*ឆបគ្នាជាមួយ OpenAI — ការជជែក, embeddings, រូបភាព, សំឡេង និង OCR
🔔 Webhooks /api/webhooksបញ្ជូនព្រឹត្តិការណ៍សំណើ / កូតាទៅ Slack, Discord, Telegram ឬ URL ណាមួយ
🛰️ CLI ពីចម្ងាយ omniroute connect បញ្ជា instance ពីចម្ងាយដោយប្រើ access token ដែលមានវិសាលភាពកំណត់
```bash
# ផ្តល់សំណុំឧបករណ៍ OmniRoute ពេញលេញឱ្យ Claude Code តាមរយៈ MCP៖
claude mcp add-server omniroute --type http --url http://localhost:20128/api/mcp/stream
```
📖 [ម៉ាស៊ីនមេ MCP](docs/frameworks/MCP-SERVER.md) · [ម៉ាស៊ីនមេ A2A](docs/frameworks/A2A-SERVER.md) · [ពិធីការភ្នាក់ងារ](docs/frameworks/AGENT_PROTOCOLS_GUIDE.md)
## 🗜️ សន្សំ Tokens បាន 15–95% — ដោយស្វ័យប្រវត្តិ
### 📖 របៀបដំណើរការ — pipeline, architecture និងគណិតវិទ្យានៃការសន្សំ
ការរួមបញ្ចូល stacked តាមលំនាំដើមដំណើរការ `RTK → Caveman`។ នៅពេលទាំងពីរដំណើរការលើ payload របស់ tool/context ដូចគ្នា ការសន្សំនឹងត្រូវបានបូកផ្សំគ្នា៖
```txt
combined = 1 − (1 − RTK) × (1 − Caveman_input)
average = 1 − (1 − 0.80) × (1 − 0.46) = 89.2%
range = 78.4 – 94.6%
```
Code blocks, URLs, JSON និងទិន្នន័យដែលមានរចនាសម្ព័ន្ធ ត្រូវបាន **ការពារជានិច្ច** ដោយ preservation engine។
> **ហេតុអ្វីត្រូវប្រើ tokens ច្រើន នៅពេល tokens តិចក៏អាចបំពេញការងារបាន?** រាល់សំណើឆ្លងកាត់ compression pipeline របស់ OmniRoute **ដោយថ្លៃថ្នូរ** — មិនចាំបាច់កែប្រែ client ទេ។ ឥឡូវនេះវាជា **ជង់ engines ដែលអាចផ្សំបានចំនួន 12** ដែលដំណើរការតាមលំដាប់ និងអាច mix & match តាម routing combo — បន្តអភិវឌ្ឍលើគំនិតពី [RTK](https://github.com/rtk-ai/rtk), [Caveman](https://github.com/JuliusBrussee/caveman) (⭐ 90K+), [LLMLingua-2](https://github.com/microsoft/LLMLingua) និង [Troglodita](https://github.com/leninejunior/troglodita) (PT-BR)។
### 🧱 ជង់ engines ចំនួន 12
Engines ដំណើរការតាមលំដាប់ pipeline។ Engine នីមួយៗអាចបើក/បិទ និងកំណត់រចនាសម្ព័ន្ធដោយឯករាជ្យតាម combo៖
# Engine មុខងារ
1 Session-Dedup លុបមាតិកាដែលកើតឡើងដដែលៗឆ្លងកាត់ turns (content-addressed, cross-turn)
2 CCR រក្សាទុក blocks ធំៗនៅពីក្រោយ retrieve markers ហើយទាញយកតាមតម្រូវការ
3 Lite កាត់បន្ថយ whitespace និង image-URL (baseline ដែលមាន latency ទាប)
4 RTK ត្រងលទ្ធផល tool ឆ្លាតវៃ, dedup និង truncation (យល់ដឹងពី command)
5 Responses Tool Output JSON ដែលផ្តល់អាទិភាពដល់ lossless + ការបង្រួម diagnostic ដែលមានដែនកំណត់ សម្រាប់លទ្ធផល shell/patch/search/build (Responses API)
6 Headroom ការបង្រួម tabular របស់ JSON arrays ដោយមិនបាត់បង់ទិន្នន័យ (~30%) តាមរយៈ codec GCF ដែលបាន vendored
7 Relevance វាយតម្លៃប្រយោគតាមវិធី extractive ធៀបនឹងសំណួរចុងក្រោយរបស់ user
8 Caveman ការបង្រួម prose ផ្អែកលើ rules (~65–75% លើ output)
9 Aggressive ការសង្ខេប + ការធ្វើឱ្យ turns ចាស់ៗកាន់តែសង្ខេបជាបន្តបន្ទាប់
10 LLMLingua-2 ការកាត់បន្ថយ semantic ដោយ ML តាមរយៈ MobileBERT ONNX — មានសុវត្ថិភាពសម្រាប់ code, async
11 Ultra ការកាត់បន្ថយ token តាម heuristics ជាមួយជម្រើស small-model (SLM) tier
12 OmniGlyph ការអ៊ិនកូដ context-as-image សម្រាប់ការសាកល្បងលើ Claude Fable 5 ដែលបានវាស់វែងនៅ direct Anthropic wire; GPT 5.6 transformers នៅតែ fail-closed រង់ចាំ provider receipts។ មាន compression profiles ចំនួន 4 (aggressive ជាលំនាំដើម, balanced, coding-safe, passthrough) (ខ្លាំងបំផុត; ត្រូវ opt-in)
Code blocks, URLs និងទិន្នន័យដែលមានរចនាសម្ព័ន្ធ ត្រូវបាន **រក្សាទុកជានិច្ច** ដោយ byte-perfect។ **Presets ចុចតែម្តង** រួមបញ្ចូល engines ទាំងនេះ៖
Mode ការសន្សំ សាកសមសម្រាប់
🪶 Lite ~15% លំនាំដើមដែលមានសុវត្ថិភាព និងបើកជានិច្ច
🪨 Standard (Caveman) ~30% ការសរសេរ code ប្រចាំថ្ងៃ
⚡ Aggressive ~50% សម័យប្រើប្រាស់ដែលមាន tools ច្រើន និងអូសបន្លាយ
🔥 Ultra ~75% ការសន្សំអតិបរមា
🧰 RTK 60–90% លទ្ធផល Shell/test/build/git
🔗 Stacked (RTK → Caveman) 78–95% Prompts ចម្រុះ + tool logs
**ឧទាហរណ៍ជាក់ស្តែង — Standard mode៖**
> **មុន (69 tokens):** _"មូលហេតុដែល React component របស់អ្នកកំពុង re-render ប្រហែលជាមកពីអ្នកកំពុងបង្កើត object reference ថ្មីនៅរាល់ render cycle។ នៅពេលអ្នកបញ្ជូន inline object ជា prop, shallow comparison របស់ React មើលឃើញថាវាជា object ផ្សេងរាល់ពេល ដែលបណ្តាលឱ្យមាន re-render។ ខ្ញុំសូមណែនាំឱ្យប្រើ useMemo ដើម្បី memoize object។"_
>
> **បន្ទាប់ (19 tokens):** _"New object ref each render. Inline object prop = new ref = re-render. Wrap in useMemo."_
>
> **ចម្លើយដដែល។ តិចជាងមុន 72% tokens។ គ្មានការបាត់បង់ភាពត្រឹមត្រូវឡើយ។** ✅
**ឧទាហរណ៍ PT-BR — mode [Troglodita](https://github.com/leninejunior/troglodita)៖**
> **មុន (42 tokens):** _"បញ្ហាគឺ component កំពុង re-render ពីព្រោះ object reference ថ្មីមួយត្រូវបានបង្កើតនៅគ្រប់វដ្តនៃការបង្ហាញ។ ខ្ញុំសូមណែនាំឱ្យប្រើ useMemo។"_
>
> **បន្ទាប់ (12 tokens):** _"Re-render៖ ref ថ្មីគ្រប់វដ្ត (inline object ត្រូវបានបង្កើតឡើងវិញ)។ ប្រើ `useMemo`។"_
>
> **ចម្លើយដូចគ្នា។ កាត់បន្ថយប្រហែល 70% នៃ tokens។ ភាពត្រឹមត្រូវផ្នែកបច្ចេកទេសនៅដដែល។** ✅
### 🎚️ លើសពី engines — រចនាប័ទ្មលទ្ធផល ប្រដាប់លៃតម្រូវសម្របខ្លួន និងការគ្រប់គ្រងតាមសំណើ
12 engines ខាងលើកាត់បន្ថយអ្វីដែល **ចូល**។ ស្រទាប់បន្ថែម 3 ទៀតកំណត់ **របៀប**, **ពេលណា** និងអ្វីដែលត្រូវ **បញ្ចេញ**៖
- **🪄 រចនាប័ទ្មលទ្ធផល** _(ការដឹកនាំតាមអ័ក្សលទ្ធផល)_ — បញ្ចូលសេចក្តីណែនាំកំណត់ទម្រង់ចម្លើយដែលមានភាពច្បាស់លាស់ និងសមស្របសម្រាប់ cache; អាចផ្សំចូលគ្នា ហើយនីមួយៗមានកម្រិត `lite` / `full` / `ultra`។ ការបន្ថែមរចនាប័ទ្មមួយ គឺជាការចុះបញ្ជីមួយបន្ទាត់៖
- **អត្ថបទខ្លី** — លុបពាក្យបំពេញ / articles / ភាសាបង្ហាញភាពមិនប្រាកដប្រជា; រក្សាខ្លឹមសារបច្ចេកទេសឱ្យបានត្រឹមត្រូវពេញលេញ។
- **កូដតិចជាងមុន** — YAGNI របស់ "អ្នកអភិវឌ្ឍន៍ជាន់ខ្ពស់ដែលខ្ជិល": ការផ្លាស់ប្តូរតូចបំផុតដែលដំណើរការ ដោយគ្មាន scaffolding ដែលមិនបានស្នើ។
- **សក់កន្ទុយសេះ (អ្នកអភិវឌ្ឍន៍ជាន់ខ្ពស់ដែលខ្ជិល)** — ឡើងតាមជំហាន YAGNI ដោះស្រាយមូលហេតុដើម និងប្រើ diff តូចបំផុតដែលដំណើរការ។
- **ខ្ញុំមាន ADHD (ផ្តោតលើសកម្មភាពជាមុន)** — សកម្មភាពបន្ទាប់ត្រូវបានដាក់មុន ជំហានមានលេខរៀង មានជំហានបន្ទាប់ជាក់លាក់មួយ និងគ្មានសេចក្តីផ្តើមវែង។
- **CJK ខ្លី (文言)** — រចនាប័ទ្មខ្លីជ្រុលបែបចិនបុរាណ (កំណត់តាម locale សម្រាប់ `zh` ប៉ុណ្ណោះ)។
- **🎯 ថវិកា context ដែលសម្របខ្លួន** _(ប្រដាប់លៃតម្រូវ)_ — ជំនួសឱ្យកម្រិត token បើក/បិទតែមួយ វាបង្កើន engines ដែលមានតម្លៃថោក និងបាត់បង់ព័ត៌មានតិចបំផុត ត្រឹមកម្រិតដែលចាំបាច់ ដើម្បី **ឱ្យសមនឹងបង្អួច context របស់ model**។ គោលការណ៍៖ `reserve-output` (លំនាំដើម សម្របតាម model) · `percentage` · `absolute`។ របៀប៖ `floor` (ធានាថាសម) · `replace-autotrigger` (ជម្រើសច្បាស់លាស់របស់អ្នកមានអាទិភាព) · `off` (កម្រិតចាស់)។
- **🎛️ កន្លែងដែលការបង្ហាប់ត្រូវបានសម្រេច** _(អាទិភាព ខ្ពស់ → ទាប)_ — header `x-omniroute-compression` តាមសំណើ › override របស់ routing-combo › profile ដែលមានឈ្មោះសកម្ម › adaptive / auto-trigger › លំនាំដើមរបស់ panel › off។ ផែនការដែលបានអនុវត្តនឹងត្រូវបង្ហាញត្រឡប់មកវិញក្នុង response header `X-OmniRoute-Compression: ; source=`។
កំណត់ auto-trigger តាមកម្រិត token បើកប្រដាប់លៃតម្រូវសម្របខ្លួន កំណត់ profile ដែលមានឈ្មោះ បញ្ជាក់ជម្រើសតែមួយសម្រាប់សំណើនីមួយៗ ឬកំណត់ pipeline តាម routing combo — ជ្រើសរើសអ្វីដែលសមនឹង workload។ **eval harness** ក្រៅបណ្តាញដែលត្រូវបើកប្រើដោយស្ម័គ្រចិត្ត (`npm run eval:compression`) នឹងវាយតម្លៃភាពស្មោះត្រង់ប្រៀបធៀបនឹងការសន្សំ លើ corpus ដែលបានកំណត់ជាមុន មុនពេលអ្នកដាក់ការផ្លាស់ប្តូរឱ្យប្រើប្រាស់។
📖 [`COMPRESSION_GUIDE.md`](docs/compression/COMPRESSION_GUIDE.md) · [`RTK_COMPRESSION.md`](docs/compression/RTK_COMPRESSION.md) · [`COMPRESSION_ENGINES.md`](docs/compression/COMPRESSION_ENGINES.md)
# ⚡ ចាប់ផ្តើមរហ័ស
**1) ដំឡើង និងដំណើរការ**
```bash
npm install -g omniroute
omniroute
```
> 💡 ឃើញ `npm warn ERESOLVE` ឬការព្រមាន peer-dep មែនទេ? [វាមិនបង្កបញ្ហាទេ](docs/guides/TROUBLESHOOTING.md#npm-install-warnings-eresolve--peer--deprecated)។
> **កំពុងប្រើ npm 11 ឬថ្មីជាងនេះមែនទេ?** npm អាចរារាំងស្គ្រីប lifecycle របស់ package លុះត្រាតែបានអនុញ្ញាត។ `postinstall` របស់ OmniRoute (`node scripts/build/postinstall.mjs`) ត្រូវការសម្រាប់រៀបចំឯកសារ native runtime របស់វា។ អនុញ្ញាត packages ដែលមានឈ្មោះក្នុងការព្រមានរបស់ npm នៅពេលដំឡើងជាសកល។ សម្រាប់សំណុំ package ដែលបានរាយការណ៍ដោយ OmniRoute 3.8.54៖
>
> ```bash
> npm install -g --allow-scripts=omniroute,keytar,onnxruntime-node,@parcel/watcher,@swc/core,protobufjs,esbuild omniroute
> ```
>
> ដើម្បីប្រើបញ្ជីអនុញ្ញាតនេះឡើងវិញសម្រាប់ការដំឡើងជាសកលនាពេលអនាគត កំណត់វាម្តង បន្ទាប់មកដំឡើងជាធម្មតា៖
>
> ```bash
> npm config set allow-scripts=omniroute,keytar,onnxruntime-node,@parcel/watcher,@swc/core,protobufjs,esbuild --location=user
> npm install -g omniroute
> ```
>
> បញ្ជី dependency អាចផ្លាស់ប្តូររវាង release នីមួយៗ; ប្រសិនបើ npm រាយការណ៍បញ្ជីផ្សេង សូមប្រើឈ្មោះ package ពីការព្រមាននោះ។ ការអនុញ្ញាត package មួយ អនុញ្ញាតឱ្យស្គ្រីបដំឡើងរបស់វាដំណើរការ។
> **កំពុងប្រើ Gemini Web ឬអ្នកផ្តល់សេវា web-cookie ផ្សេងទៀតមែនទេ?** npm package រួមមាន
> Playwright ប៉ុន្តែមិនរួមមាន binary របស់ Chromium ទេ។ សូមមើល
> [ការរៀបចំ Playwright Chromium](docs/guides/TROUBLESHOOTING.md#gemini-web-and-playwright-chromium)
> មុនពេលធ្វើសំណើទៅកាន់ web-provider ជាលើកដំបូង។
ផ្ទាំងគ្រប់គ្រងនៅ `http://localhost:20128` · API នៅ `http://localhost:20128/v1`។
**2) ភ្ជាប់អ្នកផ្តល់សេវាដែលមានសិទ្ធិ ដោយប្រើគណនីផ្ទាល់ខ្លួនរបស់អ្នក**
ផ្ទាំងគ្រប់គ្រង → **អ្នកផ្តល់សេវា** → ជ្រើសរើសអ្នកផ្តល់សេវាដែលលក្ខខណ្ឌ និងកូតាបច្ចុប្បន្នសមនឹងករណីប្រើប្រាស់របស់អ្នក → បន្ថែម API key របស់អ្នក ឬបញ្ចប់ដំណើរការគណនីរបស់វា។ កម្រិតឥតគិតថ្លៃអាចតម្រូវឱ្យចុះឈ្មោះ ទទួលការអនុម័ត ឬផ្តល់វិធីបង់ប្រាក់។ ពិនិត្យ [មគ្គុទ្ទេសក៍កម្រិតឥតគិតថ្លៃ](docs/getting-started/FREE-TIERS-GUIDE.md); ការប្រើប្រាស់ដោយគ្មាន key មិនត្រូវបានធានាទេ ហើយអ្នកផ្តល់សេវាដែលមានស្លាក `tos: avoid` ត្រូវបានដកចេញពី `auto` តាមលំនាំដើម។
**3) កំណត់ឧបករណ៍សរសេរកូដរបស់អ្នក**
```txt
Base URL: http://localhost:20128/v1
API Key: [copy from Dashboard → Endpoints]
Model: auto (routes among eligible connections — or choose provider/model)
```
**4) ផ្ទៀងផ្ទាត់ថាវាដំណើរការ**
```bash
curl http://localhost:20128/v1/models -H "Authorization: Bearer YOUR_KEY"
```
អ្នកគួរតែឃើញ models ដែលបានភ្ជាប់របស់អ្នកក្នុងបញ្ជី។ 🎉 នោះហើយ — ចាប់ផ្តើមសរសេរកូដ ហើយ OmniRoute នឹង routing និង fallback ដោយស្វ័យប្រវត្តិសម្រាប់អ្នក។
ប្រសិនបើ client របស់អ្នកមិនអាចផ្ញើ custom headers បានទេ OmniRoute ក៏បង្ហាញ aliases សម្រាប់ភាពឆបគ្នាដែលមាន token ផងដែរ៖
```txt
OpenAI catalog: http://localhost:20128/vscode/YOUR_KEY/
OpenAI models: http://localhost:20128/vscode/YOUR_KEY/models
OpenAI chat: http://localhost:20128/vscode/YOUR_KEY/chat/completions
OpenAI responses: http://localhost:20128/vscode/YOUR_KEY/responses
Ollama chat: http://localhost:20128/vscode/YOUR_KEY/api/chat
Ollama tags: http://localhost:20128/vscode/YOUR_KEY/api/tags
```
ប្រើទាំងនេះសម្រាប់តែ client ដែលមិនអាចភ្ជាប់ `Authorization: Bearer ...` បានប៉ុណ្ណោះ។ ការផ្ទៀងផ្ទាត់តាម header នៅតែជារបៀបដែលបានណែនាំ។
## 📦 វិធីដំឡើងបន្ថែម — Docker, កូដប្រភព, pnpm, Arch
**🐳 Docker**
```bash
docker run -d --name omniroute --restart unless-stopped --stop-timeout 40 \
-p 127.0.0.1:20128:20128 -v omniroute-data:/app/data diegosouzapw/omniroute:latest
```
`:latest` ប្រើតាមកំណែ SemVer ស្ថិរភាពខ្ពស់បំផុតដែលបាន **ចេញផ្សាយ**។ វាមិនតាមដាន git `main` ទេ។ កំណត់ជាប់នឹង `:X.Y.Z` សម្រាប់ GitOps។ សូមមើល [ឆានែលចេញផ្សាយ Docker](docs/guides/DOCKER_GUIDE.md#release-channels)។ Image នេះកំណត់ **`OMNIROUTE_MEMORY_MB=1024`** ជាស្រេច។ ទំហំនេះគ្រប់គ្រាន់សម្រាប់ផ្ទាំងគ្រប់គ្រង និងការជជែកកម្រិតស្រាល។ **ភ្នាក់ងារសរសេរកូដ** (`POST /v1/responses` ពី Claude Code, Codex, Grok, …) ត្រូវការ V8 heap ធំជាងនេះខ្លាំង បើមិនដូច្នោះទេ process នឹងជួប `FATAL ERROR` នៅប្រហែល 12 GiB នៅពេលមាន context វែងពីរត្រួតស៊ីគ្នា។ កំណត់ទំហំ container ឱ្យធំជាង heap (native buffers ស្ថិតនៅខាងក្រៅ V8)៖
| បន្ទុកការងារ | Heap (`-e OMNIROUTE_MEMORY_MB`) | Container (`--memory`) |
| ----------------------------------------- | -------------------------------- | ---------------------- |
| ផ្ទាំងគ្រប់គ្រង / ការជជែកកម្រិតស្រាល | `1024` (តម្លៃលំនាំដើមរបស់ image) | ≥2 g |
| ភ្នាក់ងារសរសេរកូដមួយ | `8192` | ≥10 g |
| `/v1/responses` វែងពីរដែលដំណើរការព្រមគ្នា | `10240`–`12288` | ≥12–16 g |
```bash
docker run -d --name omniroute --restart unless-stopped --stop-timeout 40 \
-e OMNIROUTE_MEMORY_MB=8192 --memory=10g \
-p 127.0.0.1:20128:20128 -v omniroute-data:/app/data diegosouzapw/omniroute:latest
```
តារាងពេញលេញ៖ [មគ្គុទ្ទេសក៍ Docker — RAM ពេលដំណើរការ](docs/guides/DOCKER_GUIDE.md#runtime-ram-for-coding-agents)។
> **ឆានែល Docker មុនចេញផ្សាយ៖** `diegosouzapw/omniroute:next` និង
> `diegosouzapw/omniroute:next-web` ប្រើតាម branch លំនាំដើមបច្ចុប្បន្ន `release/v*`។
> tag ដែលអាចផ្លាស់ប្តូរទាំងនេះមានគោលបំណងសម្រាប់តែការសាកល្បងការកែតម្រូវដែលមិនទាន់ចេញផ្សាយប៉ុណ្ណោះ ហើយ
> **មិនត្រូវបានគាំទ្រសម្រាប់ production ទេ**។ សូមមើល
> [ឆានែលចេញផ្សាយ Docker](docs/guides/DOCKER_GUIDE.md#release-channels)។
**🥟 Bun**
ការដំឡើងស្តង់ដារដោយ `bun install` និងការដំឡើង global (`bun install -g omniroute`) ត្រូវបានគាំទ្រតាមរយៈការរកឃើញ Bun runtime៖
- **`bun:sqlite` ដែលភ្ជាប់មកស្រាប់**៖ OmniRoute ប្រើ driver `bun:sqlite` ដែលភ្ជាប់មកស្រាប់របស់ Bun នៅពេលដំណើរការក្រោម Bun ហើយប្តូរទៅប្រើ `better-sqlite3` នៅលើ Node.js ឬ `sql.js` ជាជម្រើសបម្រុង។
- **ការជ្រើសរើស Webpack bundler ដោយស្វ័យប្រវត្តិក្នុង dev**៖ បរិស្ថានអភិវឌ្ឍន៍ (`bun run dev`) រកឃើញ Bun ដោយស្វ័យប្រវត្តិ និងបិទ Turbopack ដើម្បីប្រើ Webpack ជំនួស ក្នុងគោលបំណងទប់ស្កាត់បញ្ហាមិនត្រូវគ្នាជាមួយ native V8 binding។ ការ build សម្រាប់ production (`bun run build`) អនុវត្តតាម `OMNIROUTE_USE_TURBOPACK` ដូចនៅលើ Node យ៉ាងពិតប្រាកដ៖ ប្រើ Turbopack តាមលំនាំដើម និងប្រើ `OMNIROUTE_USE_TURBOPACK=0` ដើម្បី build ជាមួយ Webpack (`Dockerfile.bun` បង្ហាញវាជា `--build-arg`)។
- **Bun Dockerfile ដាច់ដោយឡែក**៖ `Dockerfile.bun` ពហុដំណាក់កាល សម្រាប់ការដាក់ឱ្យដំណើរការ native Bun ក្នុង production (`docker build -f Dockerfile.bun -t omniroute:bun .`)។
```bash
# ដំឡើង និងដំណើរការជាមួយ Bun
bun install
bun run dev
```
**🛠️ ពីកូដប្រភព**
```bash
cp .env.example .env && npm install
PORT=20128 npm run dev
```
**📦 pnpm**
```bash
pnpm add -g omniroute@latest --allow-build=better-sqlite3 --allow-build=@swc/core && omniroute
```
**🐧 Arch Linux (AUR)**
```bash
yay -S omniroute-bin && systemctl --user enable --now omniroute.service
```
**🔧 Nix (Flake)**
```bash
# ប្រើ Nix flakes
nix develop
npm run dev
# ឬប្រើ devbox
devbox run npm run dev
```
📖 [មគ្គុទ្ទេសក៍ Docker](docs/guides/DOCKER_GUIDE.md) — Compose profiles, Caddy HTTPS និង Cloudflare tunnels។
**🦭 Podman**
```bash
# 1. រៀបចំថតទិន្នន័យដែលបាន bind-mount
mkdir -p data
# 2. សម្រាប់តែ Linux + Podman មូលដ្ឋានប្រភេទ rootless ប៉ុណ្ណោះ (កុំប្រើជាមួយ client របស់ Podman Machine ពីចម្ងាយ)៖
podman unshare chown 1000:1000 ./data
# 3. កំណត់ runtime hint, build Compose image មូលដ្ឋាន និងចាប់ផ្តើម
echo "CONTAINER_HOST=podman" >> .env
podman compose --profile base up -d --build
```
នៅលើ macOS ឬ Windows, Podman ប្រើ Podman Machine ពីចម្ងាយ៖ រំលង `podman unshare` ហើយ
អនុវត្តតាម [ការណែនាំអំពីថតទិន្នន័យសម្រាប់ topology នីមួយៗ](contrib/podman/README.md#data-directory-permissions-by-topology)។
📖 [មគ្គុទ្ទេសក៍ Podman](contrib/podman/README.md) — Compose builds, Podman Machine និង
ការកំណត់ Linux/systemd Quadlet។
**⚡ ការដំឡើងលឿនជាង / ស្រាលជាង (រំលង native build)**
ម៉ាស៊ីន SQLite ប្រភេទ native (`better-sqlite3`) គឺជា dependency **ជាជម្រើស** ដូច្នេះការដំឡើង
global មិនដែលត្រូវរង់ចាំការចងក្រងពីកូដប្រភពទេ៖ វាប្រើ binary ដែលបាន build ជាមុន នៅពេលមានកំណែត្រូវគ្នា
នឹង platform/Node របស់អ្នក ហើយបើមិនដូច្នោះទេ វានឹងប្តូរទៅប្រើម៉ាស៊ីន pure-JS ដោយស្វ័យប្រវត្តិ
(`node:sqlite` នៅលើ Node 22+ បើមិនដូច្នោះទេ ប្រើ `sql.js` WASM ដែលបានភ្ជាប់មកជាមួយ) — មិនត្រូវការឧបករណ៍ build ទេ។
ដើម្បីរំលង native warm-up ក្រោយការដំឡើងទាំងស្រុង (CI, headless ឬម៉ាស៊ីនយឺត)៖
```bash
OMNIROUTE_SKIP_POSTINSTALL=1 npm install -g omniroute # CI=1 ក៏រំលងវាដែរ
```
ដើម្បីទទួលបានការដំឡើងលឿនបំផុត សូមជ្រើសប្រើ **pnpm** (ឃ្លាំងផ្អែកលើអាសយដ្ឋានមាតិកា + hard links — សូមមើលខាងលើ)។
សម្រាប់ runtime ប្រភេទ headless ដែលគ្មានផ្ទាំងគ្រប់គ្រង សូមប្រើ Docker profile `base` (ខាងលើ) ឬ
[មគ្គុទ្ទេសក៍ Termux](docs/guides/TERMUX_GUIDE.md)។ CLI និងផ្ទាំងគ្រប់គ្រងតាមវេបត្រូវបានផ្តល់សេវាដោយ
process ដូចគ្នានៅលើ port តែមួយ ដូច្នេះបច្ចុប្បន្នមិនមាន package ដាច់ដោយឡែកសម្រាប់តែ CLI ទេ។
# 🎬 OmniRoute កំពុងដំណើរការ
## 📹 មគ្គុទ្ទេសក៍ជាវីដេអូ
រូបថតផ្ទាំងគ្រប់គ្រងនៅថ្ងៃទី 2026-10-18 · កាតាឡុកដើម៖ YT 1.352 | TT 334 | IG 290 · ភាពថ្មី (ថ្ងៃ)៖ YT 5 | TT 48 | IG 49
🎬 #1 — Instagram
nick_saraev — ការមើល 3,042,474 ដង
🎬 #2 — Instagram
nnapier7 — ការមើល 1,454,535 ដង
🎬 #3 — YouTube
Amidia AI & Tech — ការមើល 794,974 ដង
🎬 #4 — Instagram
theopenstack — ការមើល 692,419 ដង
🎬 #5 — TikTok
migue.baena — ការមើល 685,788 ដង
**ចំណាត់ថ្នាក់ពេញលេញ (URL ស្តង់ដារដែលបានលុបធាតុស្ទួនចេញ, `v > 0`, ការឈានដល់ខ្ពស់បំផុត)៖**
| #1 | #2 | #3 | #4 | #5 |
| -------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- |
| [nick_saraev — Instagram](https://www.instagram.com/reel/Da8ZthUPK98/) — **3,042,474** | [nnapier7 — Instagram](https://www.instagram.com/reel/Dbp7wv_CIO0/) — **1,454,535** | [Amidia AI & Tech — YouTube](https://www.youtube.com/watch?v=NJ0TQ-pyMDY) — **794,974** | [theopenstack — Instagram](https://www.instagram.com/reel/DaSs65mMrHk/) — **692,419** | [migue.baena — TikTok](https://www.tiktok.com/@migue.baena/video/7670919268216622358) — **685,788** |
| #6 | #7 | #8 | #9 | #10 |
| ------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- |
| [milesreevesai — TikTok](https://www.tiktok.com/@milesreevesai/video/7667980059189366019) — **620,400** | [nikothetech — TikTok](https://www.tiktok.com/@nikothetech/video/7671890769665477918) — **610,803** | [Vaibhav Sisinty — YouTube](https://www.youtube.com/watch?v=QucgvbO5gsM) — **509,281** | [buildwithai.club — Instagram](https://www.instagram.com/reel/DbIt9AjK7-U/) — **347,652** | [nivedan.ai — Instagram](https://www.instagram.com/reel/DbIrCksJiqq/) — **331,973** |
ម៉ែត្ររង្វាស់ស្តង់ដារនៅថ្ងៃទី 2026-10-18៖ **វីដេអូមិនស្ទួន 1.976** · **ការមើលដែលបានដឹង 20.220.289 ដង** (`v > 0`) · **ឆានែល/ប្រវត្តិរូបតាមបណ្ដាញ 1.210**។ ផ្ទាំងទិន្នន័យដើមមាន 1.976 ជួរ (YouTube 1.352 = វីដេអូវែង 740 + Shorts 612 · TikTok 334 · Instagram 290); មិនមានធាតុស្ទួននៅសល់ទេ បន្ទាប់ពីការធ្វើឱ្យមានស្តង់ដារតាម URL ស្តង់ដារ ដែលរក្សាទុកចំនួនមើលខ្ពស់បំផុតសម្រាប់វីដេអូនីមួយៗ។ ការប្រមូលទិន្នន័យពី YouTube ត្រូវបានផ្អាកនៅត្រឹមថ្ងៃទី 2026-10-13 (កូតា API ត្រូវបានប្រើអស់ចាប់ពីថ្ងៃទី 14 ដល់ 18/10) ហើយ TikTok/Instagram ចាប់តាំងពីថ្ងៃទី 2026-09-02 (គ្មានឥណទានសម្រាប់ការប្រមូលទិន្នន័យ); វីដេអូ 76 នៅមិនទាន់មានចំនួនមើលនៅឡើយ។
> 🎬 **បានបង្កើតវីដេអូអំពី OmniRoute មែនទេ?** បើក [បញ្ហា](https://github.com/diegosouzapw/OmniRoute/issues/new) ឬ [ការពិភាក្សា](https://github.com/diegosouzapw/OmniRoute/discussions) ដោយភ្ជាប់តំណ — យើងនឹងបង្ហាញវានៅទីនេះ។
# 📧 សហគមន៍ និងជំនួយ
> អ្វីៗទាំងអស់នៅកន្លែងតែមួយ — តាមដានអ្នកថែទាំ ជជែកជាមួយសហគមន៍ ឬបើកបញ្ហាមួយ។
| ឆានែល | ទីកន្លែង / របៀប |
| -------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
| 💼 **LinkedIn** — តាមដានអ្នកថែទាំ | [linkedin.com/in/diegosouzapw](https://www.linkedin.com/in/diegosouzapw/) |
| 🐙 **GitHub** — តាមដានដើម្បីទទួលបានការចេញផ្សាយ និងគន្លឹះ | [@diegosouzapw](https://github.com/diegosouzapw) |
| 💬 **Discord** | [discord.gg/U47eFqAXCn](https://discord.gg/U47eFqAXCn) |
| ✈️ **Telegram** | [t.me/omnirouteOficial](https://t.me/omnirouteOficial) |
| 🟢 **WhatsApp — 🌍 សកល** | [ចូលរួមក្រុម](https://chat.whatsapp.com/FvuCbrpZmQ6I85n2vW5QIC?s=cl&p=a&mlu=4) |
| 🟢 **WhatsApp — 🇧🇷 ប្រេស៊ីល** | [ចូលរួមក្រុម](https://chat.whatsapp.com/KWgatljAjmbELQory59Oti?s=cl&p=a&mlu=4) |
| 🌍 **គេហទំព័រ** | [omniroute.online](https://omniroute.online) |
| 🌍 **🌍សហគមន៍ StHub OmniRoute (ឥតគិតថ្លៃ)** | [វិបផតថល StHub](https://portal.sthub.com.br/communities/groups/st-hub/channels/Omniroute-World-8kRjmK) |
| 📦 **កូដប្រភព** | [github.com/diegosouzapw/OmniRoute](https://github.com/diegosouzapw/OmniRoute) |
| 🐛 **រាយការណ៍កំហុស** | [បើក issue មួយ](https://github.com/diegosouzapw/OmniRoute/issues) — ភ្ជាប់លទ្ធផលពី `npm run system-info` |
| 🤝 **ចូលរួមចំណែក** | [CONTRIBUTING.md](CONTRIBUTING.md) · [គំរូ Branching និង Release](docs/ops/BRANCHING_MODEL.md) · ជ្រើសរើស `good first issue` |
| 💚 **គាំទ្រគម្រោង** | [វិធីគាំទ្រ ↑](#-support-omniroute) · [GitHub Sponsors](https://github.com/sponsors/diegosouzapw) |
---
## 🛠️ ជង់បច្ចេកវិទ្យា
ស្រទាប់ បច្ចេកវិទ្យា
បរិស្ថានដំណើរការ Node.js 22.x / 24.x LTS — >=22.22.2 <23 || >=24.0.0 <27
ភាសា TypeScript 6.0 — TypeScript 100% នៅទូទាំង src/ និង open-sse/ (គ្មាន any ក្នុងស្នូល ចាប់ពី v2.0)
Framework Next.js 16 + React 19 + Tailwind CSS 4
មូលដ្ឋានទិន្នន័យ better-sqlite3 (SQLite, កំណត់ហេតុ WAL) + LowDB (JSON ចាស់) — ម៉ូឌុលដែន 147, migrations 233
អង្គចងចាំ អត្ថបទពេញលេញ SQLite FTS5 + vector embeddings ដែលបាន quantize ទៅជា int8, ការថយចុះតាមប្រភេទ
Schema Zod 4 — ការផ្ទៀងផ្ទាត់ I/O របស់ឧបករណ៍ MCP + កិច្ចសន្យា API
ពិធីការ MCP (stdio / HTTP / SSE) + A2A v0.3 (JSON-RPC 2.0 + SSE)
ការផ្សាយទិន្នន័យជាបន្ត Server-Sent Events (SSE) + ស្ពាន WebSocket (/v1/ws)
ការបង្រួមទិន្នន័យ បំពង់ដំណើរការ 12 ម៉ាស៊ីន — RTK, Caveman, LLMLingua-2 (MobileBERT ONNX), GCF, OmniGlyph
ការផ្ទៀងផ្ទាត់អត្តសញ្ញាណ & សុវត្ថិភាព OAuth 2.0 (PKCE) + JWT + API Keys + ការផ្ទៀងផ្ទាត់តាម scope របស់ MCP · AES-256-GCM នៅពេលទិន្នន័យសម្រាក · DOMPurify
ការលាក់អត្តសញ្ញាណ wreq-js — ការក្លែងធ្វើស្នាមម្រាមដៃ JA3 / JA4 TLS, proxy 3 កម្រិត
ភាពធន់ ឧបករណ៍បំបែកសៀគ្វី, exponential backoff, ការទប់ស្កាត់ thundering herd, ការជួសជុលដោយខ្លួនឯងសម្រាប់ auto-combo
ការកត់ត្រា pino — កំណត់ហេតុ JSON មានរចនាសម្ព័ន្ធ ជាមួយបរិបទសំណើ
ការធ្វើតេស្ត Node.js test runner + Vitest — ការប្រកាសតេស្តឋិតិវន្តជាង 60,000 នៅទូទាំងឯកសារតេស្តដែលបានតាមដានជាង 8,400 (unit, integration, E2E, security, ecosystem)
វេទិកា Desktop (Electron) · Android (Termux) · PWA (កម្មវិធីរុករកណាមួយ)
CI/CD GitHub Actions — បោះពុម្ព npm ដោយស្វ័យប្រវត្តិ + Docker Hub នៅពេលចេញផ្សាយ
តំណភ្ជាប់ គេហទំព័រ · npm · Docker Hub
## 📖 ឯកសារ
### 📘 ចាប់ផ្តើម
ឯកសារ ការពិពណ៌នា
មគ្គុទ្ទេសក៍អ្នកប្រើប្រាស់ អ្នកផ្តល់សេវា, បន្សំ, ការរួមបញ្ចូល CLI, ការដាក់ឱ្យប្រើប្រាស់
មគ្គុទ្ទេសក៍ដំឡើង វិធីដំឡើងពេញលេញ, ការកំណត់រចនាសម្ព័ន្ធឧបករណ៍ CLI, ការដំឡើងពិធីការ, ការកែតម្រូវអស់ពេល
មគ្គុទ្ទេសក៍ឧបករណ៍ CLI ការដំឡើងតាមឧបករណ៍សម្រាប់ Claude Code, Codex, Cursor, Cline, OpenClaw, Kilo, Copilot
របៀបពីចម្ងាយ គ្រប់គ្រង OmniRoute ពីចម្ងាយ (VPS) ពី CLI លើកុំព្យូទ័រយួរដៃរបស់អ្នក តាមរយៈ access token ដែលមានវិសាលភាពកំណត់
ការកំណត់រចនាសម្ព័ន្ធ Claude Code ភ្ជាប់ Claude Code ទៅ OmniRoute (ក្នុងម៉ាស៊ីន/ពីចម្ងាយ) ជាមួយ launch + ប្រវត្តិរូបតាមម៉ូដែល
ចាប់ផ្តើមរហ័ស ដំឡើង → ភ្ជាប់ → កំណត់រចនាសម្ព័ន្ធ ៣ ជំហាន
### 🔧 ប្រតិបត្តិការ និងការដាក់ឱ្យប្រើប្រាស់
### 🧠 មុខងារ និងស្ថាបត្យកម្ម
ឯកសារ ការពិពណ៌នា
ស្ថាបត្យកម្ម ស្ថាបត្យកម្មប្រព័ន្ធ, លំហូរទិន្នន័យ និងផ្នែកខាងក្នុង
មគ្គុទ្ទេសក៍បង្រួម បំពង់ដំណើរការ ៧ ជម្រើស៖ off / lite / standard / aggressive / ultra / RTK / stacked
ការបង្រួម RTK ការបង្រួមលទ្ធផលពាក្យបញ្ជា, តម្រង, ភាពគួរឱ្យទុកចិត្ត, ផ្ទៀងផ្ទាត់, ការស្តារលទ្ធផលដើម
ម៉ាស៊ីនបង្រួម Caveman, RTK, បំពង់ដំណើរការជង់, ផ្ទៃ dashboard/API/MCP
ទម្រង់ច្បាប់បង្រួម គ្រោង JSON សម្រាប់កញ្ចប់ច្បាប់ Caveman និងតម្រង RTK
កញ្ចប់ភាសាសម្រាប់ការបង្រួម ការរកឃើញភាសា និងការសរសេរកញ្ចប់ច្បាប់ Caveman
មគ្គុទ្ទេសក៍ភាពធន់ ឧបករណ៍បំបែកសៀគ្វី, រយៈពេលសម្រាក, ជួរ, ការទប់ស្កាត់ហ្វូងសំណើផ្ទុះឡើង, ការក្លែងបន្លំ TLS
ម៉ាស៊ីន Auto-Combo ការដាក់ពិន្ទុតាមកត្តា ១៦, កញ្ចប់របៀប, ការជួសជុលដោយខ្លួនឯង
មគ្គុទ្ទេសក៍ Proxy ប្រព័ន្ធ proxy ៣ កម្រិត, ទីផ្សារ 1proxy, CRUD បញ្ជីចុះឈ្មោះ
កម្រិតឥតគិតថ្លៃ បញ្ជីប្រមូលផ្តុំ៖ ក្រុមដែលមានការកត់ត្រា ៣៤ / ធាតុកម្រិតឥតគិតថ្លៃក្នុងកាតាឡុក ៤៦៥
វិចិត្រសាលមុខងារ ដំណើរទស្សនា dashboard ជារូបភាពជាមួយរូបថតអេក្រង់
ឯកសារកូដបេស ការណែនាំអំពីកូដបេសដែលងាយស្រួលសម្រាប់អ្នកចាប់ផ្តើម
### 🤖 ពិធីការ និង APIs
### 📋 គម្រោង និងគុណភាព
# ⭐ អ្នករួមចំណែកកំពូល
> OmniRoute ត្រូវបានបង្កើតឡើងដោយសហគមន៍ open-source ដ៏សកម្មមួយ។ បុគ្គលទាំងនេះបានរួមចំណែកយ៉ាងពិសេស ដែលជះឥទ្ធិពលដោយផ្ទាល់ដល់គុណភាព ស្ថិរភាព និងការរីកសាយភាយរបស់គម្រោង។ **សូមអរគុណ។**
### អ្នករួមចំណែកខាងក្រៅតាម pull requests ដែលបានបញ្ចូល
ចំណាត់ថ្នាក់ អ្នករួមចំណែក PRs ដែលបានបញ្ចូល បន្ទាត់ដែលបានផ្លាស់ប្តូរ~
1 maxmad64bis 418 25,367,739
2 HouMinXi 295 13,557,796
3 pacocartones 222 81,551
4 backryun 210 270,562
5 JxnLexn 198 3,570,623
6 oyi77 190 411,243
7 KooshaPari 151 5,972,314
8 rdself 145 80,663
9 RaviTharuma 123 500,065
10 herjarsa 88 230,872
11 hartmark 85 2,849,623
12 jonlwheat2-gif 68 69,097
13 artickc 62 43,502
14 xiaoyaner0201 59 126,220
15 chirag127 52 6,661
16 xz-dev 50 245,976
17 woodsonl 48 811,771
18 rqzbeh 46 151,229
19 MumuTW 43 28,166
19 QuangBlue 43 13,112
ការរាប់ស្ថិតិនៅថ្ងៃទី 2026-11-03 03:01:19 UTC ជាមួយ tip បច្ចុប្បន្នរបស់ release/v3.8.53 គឺ 05bc048d6c។ ការរាប់ស្ថិតិ GitHub GraphQL ដែលបែងចែកជាទំព័រ មាន PRs ដែលបានបញ្ចូលសរុប 9,947៖ 4,130 ដោយម្ចាស់ repository, 240 ដោយ Dependabot, 6 ដោយ bots/apps ផ្សេងទៀត និង 5,571 PRs ខាងក្រៅពីអ្នករួមចំណែកផ្សេងគ្នា 883 នាក់ ។ “បន្ទាត់ដែលបានផ្លាស់ប្តូរ” គឺជាចំនួន additions + deletions របស់ GitHub ហើយរួមបញ្ចូលឯកសារដែលបានបង្កើតដោយស្វ័យប្រវត្តិ ឯកសារ lockfiles catalogs ការបកប្រែ និងឯកសារណែនាំ។ វាគឺជាបរិមាណការផ្លាស់ប្តូរ មិនមែន LOC ដែលអ្នកនិពន្ធបានសរសេរទេ។ PRs ចំនួន 53 រាយការណ៍ថា diffs របស់ GitHub មានលើស 500,000 បន្ទាត់ (ឧទាហរណ៍ #13399 ដែលជាការបន្ថែម provider តែមួយ រាយការណ៍ថាមានឯកសារដែលបានផ្លាស់ប្តូរ 2,347) ដែលធ្វើឱ្យចំនួនសរុបមួយចំនួនខាងលើកើនឡើង។ ករណីស្មើគ្នាត្រូវបានដាក់ចំណាត់ថ្នាក់រួមគ្នា។
### Commits ដែល GitHub បានកំណត់ប្រភព
Dizzle
🥇 ការរួមចំណែកដែលបានកំណត់គុណតម្លៃដោយ GitHub ចំនួន 418
Bob.Hou
🥈 ការរួមចំណែកដែលបានកំណត់គុណតម្លៃដោយ GitHub ចំនួន 294
Paijo
🥉 ការរួមចំណែកដែលបានកំណត់គុណតម្លៃដោយ GitHub ចំនួន 229
Paco Cartones
🏅 ការរួមចំណែកដែលបានកំណត់គុណតម្លៃដោយ GitHub ចំនួន 222
backryun
🏅 ការរួមចំណែកដែលបានកំណត់គុណតម្លៃដោយ GitHub ចំនួន 202
Jan Leon
🏅 ការរួមចំណែកដែលបានកំណត់គុណតម្លៃដោយ GitHub ចំនួន 134
Ravi Tharuma
🏅 ការរួមចំណែកដែលបានកំណត់គុណតម្លៃដោយ GitHub ចំនួន 126
Markus Hartung
🏅 ការរួមចំណែកដែលបានកំណត់គុណតម្លៃដោយ GitHub ចំនួន 115
Randi
🏅 ការរួមចំណែកដែលបានកំណត់គុណតម្លៃដោយ GitHub ចំនួន 108
Chris
🏅 ការរួមចំណែកដែលបានកំណត់គុណតម្លៃដោយ GitHub ចំនួន 70
WebPerson
🏅 ការរួមចំណែកដែលបានកំណត់គុណតម្លៃដោយ GitHub ចំនួន 68
Koosha Paridehpour
🏅 ការរួមចំណែកដែលបានកំណត់គុណតម្លៃដោយ GitHub ចំនួន 68
បានពិនិត្យឡើងវិញនៅ 2026-11-03 02:09:16 UTC៖ ការរួមចំណែកដែលបានកំណត់គុណតម្លៃដោយ GitHub ដែលត្រូវបានរាយការណ៍ដោយ Contributors API របស់ឃ្លាំង សម្រាប់សាខាលំនាំដើម release/v3.8.53។ API បានបញ្ជូនអត្តសញ្ញាណចំនួន 903 (អ្នកប្រើប្រាស់ 429 នាក់, បូត 2 និងអនាមិក 472); តារាងនេះមិនរាប់បញ្ចូលអ្នកថែទាំ បូត និងអត្តសញ្ញាណអនាមិកទេ ហើយរក្សាទុកចំណាត់ថ្នាក់ដែលមានលទ្ធផលស្មើគ្នា។ វាខុសពីទាំងចំណាត់ថ្នាក់ PR ដែលបានបញ្ចូលខាងលើ និងការស្ទង់ជំរឿនទិន្នន័យមេតារបស់ Git ខាងក្រោម។
> 🙏 មុខងារ ការជួសជុលកំហុស និងការកែលម្អហេដ្ឋារចនាសម្ព័ន្ធរបស់អ្នករួមចំណែកទាំងនេះ គឺជា **ផ្នែកស្នូល** នៃអ្វីដែលធ្វើឱ្យ OmniRoute មានភាពអាចទុកចិត្តបាន និងសម្បូរមុខងារ។ រាល់សំណើបញ្ចូល រាល់ករណីសាកល្បង និងរាល់ឯកសារបកប្រែ i18n សុទ្ធតែមានសារៈសំខាន់។ ប្រភពបើកចំហត្រូវបានបង្កើតឡើងដោយមនុស្សដូចពួកគេ។
---
## 💖 អ្នកឧបត្ថម្ភ
សូមថ្លែងអំណរគុណយ៉ាងស្មោះស្ម័គ្រដល់អ្នកទាំងអស់ដែលបានផ្តល់មូលនិធិដល់ OmniRoute ពីហោប៉ៅផ្ទាល់ខ្លួនរបស់ពួកគេ — រាល់ការរួមចំណែកជួយឱ្យគម្រោងនេះនៅតែឥតគិតថ្លៃ ឯករាជ្យ និងបន្តរីកចម្រើនទៅមុខ។
… និងអ្នកផ្សេងទៀតដែលចង់រក្សាភាពឯកជន 💛
អ្នកឧបត្ថម្ភ GitHub ជាសាធារណៈត្រូវបានផ្ទៀងផ្ទាត់ឡើងវិញនៅថ្ងៃទី 2026-10-18 តាមរយៈ GitHub Sponsors GraphQL API៖ ការឧបត្ថម្ភជាសាធារណៈចំនួន 11 (សកម្ម 6 និងកាលពីមុន 5) ក្នុងចំណោមសរុប 14។ ស្ថានភាព isActive របស់ GitHub កំណត់ស្លាកសកម្មខាងលើ។ អ្នកគាំទ្រជាសាធារណៈដែលបានឧបត្ថម្ភម្តងកាលពីមុននៅតែទទួលបានការថ្លែងអំណរគុណ ហើយអ្នកឧបត្ថម្ភឯកជននៅតែរក្សាភាពអនាមិក។ ការបរិច្ចាគតាម Ko-fi, Buy Me a Coffee, Liberapay, PIX និងគ្រីបតូ មិនត្រូវបានរាយបញ្ជីឡើយ ព្រោះការបរិច្ចាគទាំងនោះមិនមានកំណត់ត្រាអ្នកឧបត្ថម្ភជាសាធារណៈ។
💖 ក្លាយជាអ្នកឧបត្ថម្ភ → — រាល់ដុល្លារជួយឱ្យ OmniRoute នៅតែឥតគិតថ្លៃ និងឯករាជ្យ។
## 👥 អ្នកចូលរួមជាង 1,000 នាក់
[](https://github.com/diegosouzapw/OmniRoute/graphs/contributors)
បានធ្វើសវនកម្មនៅថ្ងៃទី 2026-11-02 លើចំណុចចុងក្រោយនៃ release/v3.8.53 ដែលកំពុងដំណើរការ 1c7135e0fb (7,972 commits)៖ អត្តសញ្ញាណ Git របស់មនុស្សដែលបានធ្វើឱ្យមានស្តង់ដារចំនួន 1,074 — 759 លេចឡើងជាអ្នកនិពន្ធ commit (រួមទាំងអ្នកថែទាំ) និង 315 លេចឡើងតែនៅក្នុងបន្ទាត់បន្ថែម Co-authored-by ប៉ុណ្ណោះ។ ការរាប់នេះអនុវត្ត .mailmap ប្រៀបធៀបអាសយដ្ឋានអ៊ីមែលដោយមិនគិតពីអក្សរធំតូច ភ្ជាប់អាសយដ្ឋាន GitHub noreply ដែលមានលេខ និងគ្មានលេខ តែនៅពេលពួកវាបញ្ជាក់ពី handle ដូចគ្នាប៉ុណ្ណោះ ដកចេញអត្តសញ្ញាណ bot/agent/service/placeholder ចំនួន 29 ហើយមិនបញ្ចូលអាសយដ្ឋានអ៊ីមែលធម្មតាចូលគ្នា ដោយគ្រាន់តែឈ្មោះបង្ហាញដូចគ្នានោះទេ។ សវនកម្មនៅថ្ងៃទី 2026-08-24 បានផ្សព្វផ្សាយចំនួន 639; វិធីសាស្ត្រនេះដែលដំណើរការឡើងវិញលើ base ac02c5b42f របស់សវនកម្មនោះ ផ្តល់លទ្ធផល 619 ដូច្នេះការកើនឡើងនេះកើតចេញពីអ្នកចូលរួមថ្មី មិនមែនពីវិធីសាស្ត្រដែលធូររលុងជាងមុនទេ។
### របៀបចូលរួមចំណែក
1. Fork ឃ្លាំងកូដ
2. បង្កើត branch ពីចំណុចចុងក្រោយសកម្ម `release/vX.Y.Z` (មិនមែន `main` ទេ) — សូមមើល [គំរូ Branching និងការចេញផ្សាយ](docs/ops/BRANCHING_MODEL.md)
3. បង្កើត feature branch របស់អ្នក (`git checkout -b feat/amazing-feature`)
4. Commit ការផ្លាស់ប្តូររបស់អ្នក (`git commit -m 'feat: add amazing feature'`)
5. Push ទៅ branch (`git push origin feat/amazing-feature`)
6. បើក Pull Request ដោយ **base = branch `release/vX.Y.Z` នោះ**
សូមមើល [CONTRIBUTING.md](CONTRIBUTING.md) សម្រាប់គោលការណ៍ណែនាំលម្អិត។
### ការចេញផ្សាយកំណែថ្មី
```bash
# បង្កើតការចេញផ្សាយ — npm publish នឹងដំណើរការដោយស្វ័យប្រវត្តិ
VERSION=x.y.z
gh release create "v${VERSION}" --title "v${VERSION}" --generate-notes
```
## 📊 ផ្កាយ
## 🌍 StarMapper
## 🙏 ការថ្លែងអំណរគុណ
OmniRoute ឈរលើស្នាដៃរបស់អ្នកជំនាន់មុន។ វាបានចាប់ផ្តើមជាកំណែ fork របស់ **[9router](https://github.com/decolua/9router)** និងជាកំណែបម្លែងទៅជា TypeScript នៃគម្រោង Go **[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)** — ហើយចាប់ពីពេលនោះមក ប្រព័ន្ធរងនីមួយៗខាងក្រោមត្រូវបានបំផុសគំនិតដោយគម្រោងប្រភពបើកចំហមួយដែលបានអភិវឌ្ឍមុន។ គម្រោងនីមួយៗបានចូលរួមបង្កើតផ្នែកជាក់លាក់មួយរបស់ OmniRoute។ នេះគឺជាការថ្លែងអំណរគុណរបស់យើងចំពោះគម្រោងទាំងអស់នោះ។ 🙏
> ⭐ ចំនួនផ្កាយត្រូវបានផ្ទៀងផ្ទាត់ពី GitHub's REST API នៅថ្ងៃទី 3 ខែវិច្ឆិកា ឆ្នាំ 2026 — សូមចូលទៅផ្តល់ផ្កាយដល់គម្រោងទាំងនេះ។ ចំនួនទាំងនេះគឺជារូបថតស្ថានភាពជាក់លាក់តាមកាលបរិច្ឆេទ ហើយនឹងផ្លាស់ប្តូរតាមធម្មជាតិ។
### 🧬 ប្រភពដើម និង gateway
គម្រោង ⭐ របៀបដែលវាបានបំផុសគំនិតដល់ OmniRoute
9router 31,861 គម្រោងដើមដែល fork នេះត្រូវបានបង្កើតឡើងលើ — បានពង្រីកនៅទីនេះជាមួយ APIs ពហុទម្រង់ និងការសរសេរឡើងវិញពេញលេញជា TypeScript។
CLIProxyAPI 57,329 ការអនុវត្តជា Go ដែលបានបំផុសគំនិតដល់ការបម្លែងនេះទៅជា JavaScript / TypeScript។
LiteLLM 62,580 AI gateway ដែលសំណុំទិន្នន័យតម្លៃសាធារណៈរបស់វាត្រូវបានប្រើសម្រាប់ការធ្វើសមកាលកម្មតាមដានថ្លៃដើមរបស់យើង ហើយគំរូសម្រាប់ធ្វើឱ្យឈ្មោះ provider មានស្តង់ដាររបស់វាបានជួយណែនាំការកំណត់ផ្លូវរបស់យើង។
codex-chatgpt-web 15,435 ប្រភព MIT ដែលត្រូវបានកែសម្រួលទៅក្នុងស្ពាន ChatGPT Web → Codex Responses ដែលបានបញ្ចូលជាមួយគម្រោង រួមមានអាដាប់ទ័រសម្រាប់ browser-session, response-framing, usage និង web-search។
free-claude-code 65,966 លំនាំដែលបានបម្លែងទៅក្នុងការស្តារស្ទ្រីមឡើងវិញ, no-thinking aliases, ការស្វែងរកតាមបណ្តាញជាជម្រើសបម្រុង, ដែនកំណត់បង្អួចរអិល, ការលាក់បាំងកំណត់ហេតុ និងលំហូរដំណើរការ launcher ដែលមានការពង្រឹងសុវត្ថិភាព។
composer-api 347 លំនាំសម្រាប់ការជ្រើសរើស tool, ការកំណត់លទ្ធផល និងការបញ្ជាក់ tool របស់ Cursor Composer ត្រូវបានកែសម្រួលទៅក្នុង executor ដើមរបស់ Cursor។
codex-multi-auth 561 លំនាំសម្រាប់ការចូលថ្មី និងការបង្វិល refresh-token ត្រូវបានបម្លែងទៅក្នុងការផ្ទៀងផ្ទាត់ OAuth ឡើងវិញរបស់ Codex។
opencode-anthropic-auth 562 លំនាំដើម transform ដែលឆបគ្នាជាមួយ Claude Code និងឥរិយាបថ billing-header ត្រូវបានធ្វើឱ្យទូទៅទៅក្នុងស្ពានដែលដំណើរការតាមការកំណត់រចនាសម្ព័ន្ធរបស់ OmniRoute។
grok2api-merged 2 ការផ្គូផ្គង Grok model របស់វា, fake-TypeError Statsig generator, request និង device defaults និង NDJSON response processor ត្រូវបានកែសម្រួលយ៉ាងសំខាន់ទៅក្នុង Grok Web executor របស់ OmniRoute។
TQZHR/grok2api 707 ប្រភពកូដបន្តផ្ទាល់សំខាន់នៅពីក្រោយ grok2api-merged; ការអនុវត្ត model, header, payload, Statsig និង processor របស់វាត្រូវបានរក្សាទុកក្នុងខ្សែសង្វាក់ Grok Web។
chenyme/grok2api 7,874 ប្រភព MIT មូលដ្ឋានសម្រាប់ Grok payload និង device defaults, Statsig generator និង processor result.response ដែលត្រូវបានបន្តឆ្លងកាត់ TQZHR និង grok2api-merged។
grok2api-pro 27 ប្រភពបន្តផ្ទាល់ដែល grok2api-merged បានផ្តល់កិត្តិយសសម្រាប់ស្រទាប់ proxy-pool របស់វា; OmniRoute រក្សាទុកការជូនដំណឹងអំពីខ្សែសង្វាក់នេះ ប៉ុន្តែមិនអះអាងថាបានបម្លែង proxy-pool ចូលទៅក្នុង Grok Web executor ដែលមានព្រំដែនកំណត់របស់ខ្លួនទេ។
GrokProxy 52 Grok proxy ដែលផ្ទៀងផ្ទាត់តាម cookie និងលំនាំ streaming result.response.token របស់វាបានជួយណែនាំដល់ Grok Web transport របស់ OmniRoute។
GrokBridge 5 ការអនុវត្ត Grok Web ដើមរបស់វាត្រូវបានពិនិត្យយោងសម្រាប់ការរចនា HTTP/browser upstream; ផ្លូវ HTTP ដោយផ្ទាល់របស់វាមានប្រភពមកពី GrokProxy ដូច្នេះមិនមានការអះអាងអំពីការបម្លែងកូដដោយឯករាជ្យទេ។
### 🗜️ ការបង្រួមបរិបទ និង token — engines
គម្រោង ⭐ របៀបដែលវាបានបំផុសគំនិតដល់ OmniRoute
Caveman 116,957 គម្រោងដ៏ល្បីល្បាញ “ហេតុអ្វីប្រើ token ច្រើន នៅពេល token តិចក៏អាចធ្វើការងារបាន” — ទស្សនវិជ្ជានិយាយបែប caveman របស់វា ជំរុញរបៀបបង្រួមស្តង់ដាររបស់យើង និងច្បាប់បំពេញ/បង្រួមជាង 30។
RTK – Rust Token Killer 85,350 ការបង្រួមលទ្ធផលពាក្យបញ្ជាដែលមានប្រសិទ្ធភាពខ្ពស់ — បានបំផុសគំនិតដល់ម៉ាស៊ីន RTK, JSON filter DSL, ការស្តារលទ្ធផល raw និង pipeline RTK → Caveman ដែលតភ្ជាប់ជាស្រទាប់។
headroom 78,672 ការបង្រួម context ដែលអាចបញ្ច្រាសបាន (SmartCrusher) — បានបំផុសគំនិតដល់ម៉ាស៊ីន headroom របស់យើង និងលំនាំសញ្ញាសម្គាល់សម្រាប់ទាញយក ccr។
LLMLingua 6,797 ការស្រាវជ្រាវអំពីការបង្រួម prompt (LLMLingua / LLMLingua-2) — បានបំផុសគំនិតដល់ម៉ាស៊ីន llmlingua របស់យើង ដែលដំណើរការអសមកាល មានសុវត្ថិភាពសម្រាប់កូដ និងបើកចំហពេលបរាជ័យ។
llmlingua-2-js 33 port JS/ONNX (MobileBERT / XLM-RoBERTa) ដែលត្រូវបានប្រើជាកម្មវិធី backend សម្រាប់ worker-thread នៃម៉ាស៊ីន LLMLingua របស់យើង។
Troglodita 50 ការបង្រួម token សម្រាប់ PT-BR — ជំរុញ language pack pt-BR របស់យើង៖ កាត់បន្ថយពាក្យស្ទួន និងលុបពាក្យបំពេញ ដែលកែសម្រួលសម្រាប់វេយ្យាករណ៍ភាសាព័រទុយហ្គាល់ប្រេស៊ីល។
ponytail 182,929 ជំនាញសរសេរកូដ YAGNI របស់ “អ្នកអភិវឌ្ឍន៍ជាន់ខ្ពស់ខ្ជិល” ដ៏ល្បីល្បាញ — បានបំផុសគំនិតដល់ Output Style less-code របស់យើង៖ ការណែនាំអំពីការផ្លាស់ប្តូរដែលតូចបំផុតប៉ុន្តែអាចដំណើរការបាន ដែលកាត់បន្ថយកូដ _ដែលបានបង្កើត_ (ជាផ្នែកបងប្អូនតាមអ័ក្ស output របស់ពាក្យពេចន៍ខ្លីៗរបស់ Caveman)។
i-have-adhd 59,838 រចនាប័ទ្មឆ្លើយតបដែលផ្តោតលើសកម្មភាពជាមុន និងងាយស្រួលសម្រាប់ ADHD របស់វា ត្រូវបានកែសម្រួលទៅជារចនាប័ទ្ម output ខ្លីច្បាស់របស់ OmniRoute ក្នុងប្រាំភាសា។
### 🧩 ទម្រង់បង្រួម ការស្រាវជ្រាវ token និងឧបករណ៍ដែលយល់ដឹងអំពីកូដ
គម្រោង ⭐ របៀបដែលវាបានបំផុសគំនិតដល់ OmniRoute
TOON 25,602 Token-Oriented Object Notation — គំរូ columnar ដែលមាន header បូក rows របស់វា បានកំណត់រូបរាងដំណាក់កាលបង្រួមទិន្នន័យតារាងរបស់យើង។
GCF – Graph Compact Format 61 ទម្រង់ក្រាហ្វបង្រួម និងការរចនា generic-profile របស់វា បានផ្តល់ព័ត៌មានដល់ការបង្រួមទិន្នន័យតារាង និងទម្រង់ codec របស់ Headroom ក្នុង OmniRoute។
gcf-typescript 4 ការអនុវត្ត TypeScript ដែលមានអាជ្ញាបណ្ណ MIT ត្រូវបាន vendor ចូលដោយផ្ទាល់ និងពង្រីកជាកូដ codec generic-profile របស់ Headroom។
token-optimizer-mcp 566 ឃ្លាំងសម្ងាត់ Brotli/SQLite + context-delta តាម session — បានបំផុសគំនិតដល់ម៉ាស៊ីន session-dedup របស់យើង។
token-savior 1,203 ការបង្រួមលទ្ធផល Bash + MCP profiles — បានបំផុសគំនិតដល់វិន័យបញ្ឈប់ការបង្រួមរបស់យើង និងការកាត់បន្ថយ MCP tool-manifest។
token-saver 162 ការបង្រួម output តាមប្រភេទឯកសារ ដែលយល់ដឹងអំពីខ្លឹមសារ និងមានការបញ្ឈប់នៅពេលបរាជ័យ — បានផ្ទៀងផ្ទាត់ការបញ្ជូនតាមប្រភេទ និងការរំលងនៅពេលចំណេញអប្បបរមារបស់យើង។
token-optimizer 2,853 “ស្វែងរក token ខ្មោច” — លំនាំ offload + handle ដែលអាចស្តារបានរបស់វា បានផ្តល់ព័ត៌មានដល់គំនិត offload CCR របស់យើង។
TokenMizer 34 ប្លង់មេ session-graph + line-dedup ឆ្លងកាត់ turn ដែលបានផ្តល់ព័ត៌មានដល់ការរចនា session-dedup របស់យើង។
OmniCompress 3 Rust columnar-JSON + ការទាញយកតាម content-addressed + dedup ឆ្លងកាត់សារ — បានផ្ទៀងផ្ទាត់ការរចនាម៉ាស៊ីន headroom/ccr/session-dedup របស់យើង និង invariant ដែលមានស្ថិរភាពសម្រាប់ cache ថា “ទម្រង់ដែលបានបង្រួម មិនអាស្រ័យលើទីតាំង”។
mcp-compressor 140 ការបង្រួម MCP tool-schema/description — បានផ្តល់ព័ត៌មានដល់ការកាត់បន្ថយចំនួន MCP tool-manifest របស់យើង។
RepoMapper 218 ការរៀបចំចំណាត់ថ្នាក់ repo-map បែប Aider — បានផ្តល់ព័ត៌មានដល់ការស្វែងយល់របស់យើងអំពី repo-map / retrieval-ranking។
quiet-shell-mcp 4 ការកាត់បន្ថយលទ្ធផល shell តាមការកំណត់ប្រកាស លើ MCP — បានផ្ទៀងផ្ទាត់ការបង្រួមលទ្ធផល bash តាមការកំណត់ប្រកាសរបស់យើង។
ts-morph 6,222 ឧបករណ៍សម្រាប់ TypeScript Compiler API — បានបំផុសគំនិតដល់ការលុប comment ដោយផ្អែកលើ parser របស់យើង ដែលរក្សាទុក string, template និង regex literals។
### 🧠 អង្គចងចាំ និង RAG
គម្រោង ⭐ របៀបដែលវាបានបំផុសគំនិតដល់ OmniRoute
Mem0 68,294 ស្រទាប់អង្គចងចាំសកល — គំរូ proxy-as-write/read-boundary របស់វាបានកំណត់ទិសដៅស្ថាបត្យកម្មអង្គចងចាំរបស់យើង។
Letta (MemGPT) 25,321 ភ្នាក់ងារដែលរក្សាស្ថានភាពជាមួយអង្គចងចាំជាច្រើនកម្រិត — បានបំផុសគំនិតដល់គំរូជាច្រើនកម្រិតនៃ Context Control & Recovery (CCR) របស់យើង។
WFGY 1,804 ចំណាត់ថ្នាក់ ProblemMap នៃបញ្ហាបរាជ័យ RAG/LLM ដែលកើតឡើងដដែលៗចំនួន 16 — ជាវាក្យសព្ទរួមក្នុងមគ្គុទ្ទេសក៍ដោះស្រាយបញ្ហារបស់យើង។
### 🛰️ ការត្រួតពិនិត្យចរាចរណ៍, MITM និងប្រូកស៊ីថ្លា
គម្រោង ⭐ របៀបដែលវាបានបំផុសគំនិតដល់ OmniRoute
llm-interceptor 81 ការស្ទាក់ចាប់/វិភាគ MITM នៃចរាចរណ៍ coding-assistant ↔ LLM បានជួយកំណត់តម្រូវការដំបូងសម្រាប់ Traffic Inspector។ ម៉ូឌុលចំនួនបួនដែលបានមកពីមុន — ការបញ្ចូល SSE, ការធ្វើឱ្យការសន្ទនាមានទម្រង់ស្តង់ដារ, ការលាក់សម្ងាត់ និងការសម្អាតបឋមកថា — ត្រូវបានជំនួសដោយការអនុវត្ត clean-room ឯករាជ្យ ដែលផ្អែកលើស្តង់ដារពិធីការសាធារណៈ។ ផ្ទៃ host-passthrough ចំនួនពីរ (passthrough.ts និង _internal/bypass.cjs) នៅតែជាការអនុវត្តខាងក្នុងរបស់ OmniRoute ដែលត្រូវបានចាត់ថ្នាក់ដោយឡែក។ វាមិនត្រូវបានសរសេរឡើងវិញជាផ្នែកនៃការជំនួសនោះទេ។
ProxyBridge 6,978 ការបញ្ជូនប្រូកស៊ីតាមដំណើរការនីមួយៗដោយថ្លា — បានបំផុសគំនិតដល់ការបិទ MITM ដែលមានសុវត្ថិភាពពេលគាំង, socket idle-timeouts, ការកំណត់អត្តសញ្ញាណដំណើរការតាម /proc និងការចាប់យក TPROXY របស់យើង។
### 📚 ទិន្នន័យម៉ូដែល, ការអង្កេត និង UI
គម្រោង ⭐ របៀបដែលវាបានបំផុសគំនិតដល់ OmniRoute
models.dev 7,486 មូលដ្ឋានទិន្នន័យបើកចំហនៃលក្ខណៈបច្ចេកទេសម៉ូដែល AI, តម្លៃ និងសមត្ថភាព — ត្រូវបានធ្វើសមកាលកម្មដោយផ្ទាល់ទៅក្នុងកាតាឡុកម៉ូដែលរបស់យើង។
React Flow / xyflow 38,874 បណ្ណាល័យក្រាហ្វផ្អែកលើថ្នាំង ដែលផ្តល់ថាមពលដល់ Compression Studio និង Combo/Routing Studio តាមពេលវេលាជាក់ស្តែងរបស់យើង។
LangGraph 44,349 ការមើលឃើញក្រាហ្វលំហូរការងារផ្ទាល់របស់ LangGraph Studio បានបំផុសគំនិតដល់ទិដ្ឋភាព cascade តាមពេលវេលាជាក់ស្តែងរបស់ Studios របស់យើង។
Langfuse 36,907 គំរូការអង្កេត trace → span → generation របស់វាបានកំណត់ទិសដៅ waterfall របស់ Compression Studio របស់យើង។
Kiali 3,647 ការអង្កេត service-mesh របស់ Istio — បានបំផុសគំនិតដល់ផ្លាកសញ្ញា circuit-breaker និងរូបភាពគែមកំហុសរបស់យើងក្នុង Routing/Combo Studio។
lobe-icons 2,666 ឡូហ្គោម៉ាក AI/LLM ដែលបង្ហាញរូបតំណាងអ្នកផ្តល់សេវានៅទូទាំងផ្ទាំងគ្រប់គ្រងរបស់យើង។
flag-icons 12,499 ផ្តល់ SVG flags ដែលមានអាជ្ញាបណ្ណ MIT សម្រាប់ប្រើដោយឧបករណ៍ជ្រើសរើសភាសារបស់ README។
### 🛡️ សុវត្ថិភាព
គម្រោង ⭐ របៀបដែលវាបានបំផុសគំនិតដល់ OmniRoute
awesome-secure-defaults 723 បញ្ជីដែលបានជ្រើសរើសនៃបណ្ណាល័យដែលមានសុវត្ថិភាពតាមលំនាំដើម ដែលណែនាំជម្រើសសុវត្ថិភាពរបស់យើង (Helmet.js, DOMPurify, ssrf-req-filter, safe-regex, Google Tink)។
### 🧭 ឧបករណ៍បំពេញបន្ថែម
គម្រោង ⭐ របៀបដែលវាបានបំផុសគំនិតដល់ OmniRoute
ClawRouter 6,649 បានបំផុសគំនិតដល់ការលុបសំណើស្ទួន, ជម្រើសបម្រុងបន្ទាន់ដែលគ្មានថ្លៃ, យុទ្ធសាស្ត្រ Auto-Combo ដែលអាចដោតបន្ថែមបាន និងការចាត់ថ្នាក់ចេតនាពហុភាសា។
Antigravity-Manager 32,785 ការផ្គូផ្គងម៉ូដែលដែលយល់ដឹងពីគណនី, ការផ្ទៀងផ្ទាត់ផ្លូវ executable និងឥរិយាបថស្លាកគម្រោងរបស់វា បានជួយកំណត់ទិសដៅ runtime Antigravity របស់ OmniRoute។
vscode-antigravity-cockpit 4,852 ទម្រង់រាប់ថយក្រោយកំណត់ឡើងវិញនៃកូតាដែលមានភាពសង្ខេបរបស់វា បានបំផុសគំនិតដល់ការបង្ហាញកម្រិតអ្នកផ្តល់សេវាដែលត្រូវគ្នានៅក្នុង OmniRoute។
AionUi 33,996 ការរួមបញ្ចូល ACP របស់វា បានបំផុសគំនិតដល់ការរកឃើញដោយស្វ័យប្រវត្តិនូវភ្នាក់ងារ CLI ដែលបានដំឡើងរបស់ OmniRoute។
CodexBar 22,955 បានកំណត់អត្តសញ្ញាណផ្ទៃកូតា Grok Build; បន្ទាប់មក OmniRoute បានផ្ទៀងផ្ទាត់ និងកែតម្រូវទម្រង់ wire ផ្ទាល់ដោយឯករាជ្យ។
## 📄 អាជ្ញាបណ្ណ
អាជ្ញាបណ្ណ MIT - សូមមើល [LICENSE](LICENSE) សម្រាប់ព័ត៌មានលម្អិត។
---
**[⬆ ត្រឡប់ទៅកំពូល](#-omniroute)** · បង្កើតឡើងដោយ ❤️ សម្រាប់សហគមន៍ AI ប្រភពបើកចំហ។
បង្កើតដោយ Diego Souza · OmniRoute v3.8.54 · Node ≥22.22.2 · អាជ្ញាបណ្ណ MIT · omniroute.online