1,104 mirrors rewritten over five passes of run-translation on the 22-source core set: the 14 sources edited since their translation, the 322 mirrors that were still English copies, and the frontmatter the old extractor leaked into the newer locales' bodies. The pipeline now caches per-`## `-section hashes and retranslates only changed sections, never reuses a section that is still English, rebuilds English-copy / leaked mirrors even when the source is unchanged, merges the state on save (parallel runs), and the drift gate (scoped to the core set) is blocking. Final audit: 0 stale, 0 English copies, 0 leaked frontmatter across 1,430 core mirrors. ⚠️ base-red inherited: #12732
121 KiB
User Guide (ខ្មែរ)
🌐 Languages: 🇺🇸 English · 🇪🇹 am · 🇸🇦 ar · 🇦🇿 az · 🇧🇬 bg · 🇧🇩 bn · 🇨🇿 cs · 🇩🇰 da · 🇩🇪 de · 🇬🇷 el · 🇪🇸 es · 🇪🇪 et · 🇮🇷 fa · 🇫🇮 fi · 🇫🇷 fr · 🇮🇪 ga · 🇮🇳 gu · 🇳🇬 ha · 🇮🇱 he · 🇮🇳 hi · 🇭🇷 hr · 🇭🇺 hu · 🇦🇲 hy · 🇮🇩 id · 🇳🇬 ig · 🇮🇹 it · 🇯🇵 ja · 🇬🇪 ka · 🇮🇳 kn · 🇰🇷 ko · 🇱🇹 lt · 🇱🇻 lv · 🇮🇳 ml · 🇮🇳 mr · 🇲🇾 ms · 🇲🇹 mt · 🇲🇲 my · 🇳🇵 ne · 🇳🇱 nl · 🇳🇴 no · 🇮🇳 or · 🇮🇳 pa · 🇵🇭 phi · 🇵🇱 pl · 🇵🇹 pt · 🇧🇷 pt-BR · 🇷🇴 ro · 🇷🇺 ru · 🇱🇰 si · 🇸🇰 sk · 🇸🇮 sl · 🇷🇸 sr · 🇸🇪 sv · 🇰🇪 sw · 🇮🇳 ta · 🇮🇳 te · 🇹🇭 th · 🇹🇷 tr · 🇺🇦 uk-UA · 🇵🇰 ur · 🇺🇿 uz · 🇻🇳 vi · 🇳🇬 yo · 🇨🇳 zh-CN · 🇹🇼 zh-TW
🌐 ភាសា: 🇺🇸 English | 🇪🇹 አማርኛ | 🇸🇦 العربية | 🇦🇿 Azərbaycan dili | 🇧🇬 Български | 🇧🇩 বাংলা | 🇨🇿 Čeština | 🇩🇰 Dansk | 🇩🇪 Deutsch | 🇬🇷 Ελληνικά | 🇪🇸 Español | 🇪🇪 Eesti | 🇮🇷 فارسی | 🇫🇮 Suomi | 🇫🇷 Français | 🇮🇪 Gaeilge | 🇮🇳 ગુજરાતી | 🇳🇬 Hausa | 🇮🇱 עברית | 🇮🇳 हिन्दी | 🇭🇷 Hrvatski | 🇭🇺 Magyar | 🇦🇲 Հայերեն | 🇮🇩 Bahasa Indonesia | 🇳🇬 Igbo | 🇮🇹 Italiano | 🇯🇵 日本語 | 🇬🇪 ქართული | 🇰🇭 ខ្មែរ | 🇮🇳 ಕನ್ನಡ | 🇰🇷 한국어 | 🇱🇹 Lietuvių | 🇱🇻 Latviešu | 🇮🇳 മലയാളം | 🇮🇳 मराठी | 🇲🇾 Bahasa Melayu | 🇲🇹 Malti | 🇲🇲 မြန်မာ | 🇳🇵 नेपाली | 🇳🇱 Nederlands | 🇳🇴 Norsk | 🇮🇳 ଓଡ଼ିଆ | 🇮🇳 ਪੰਜਾਬੀ | 🇵🇭 Filipino | 🇵🇱 Polski | 🇵🇹 Português (Portugal) | 🇧🇷 Português (Brasil) | 🇷🇴 Română | 🇷🇺 Русский | 🇱🇰 සිංහල | 🇸🇰 Slovenčina | 🇸🇮 Slovenščina | 🇷🇸 Српски | 🇸🇪 Svenska | 🇰🇪 Kiswahili | 🇮🇳 தமிழ் | 🇮🇳 తెలుగు | 🇹🇭 ไทย | 🇹🇷 Türkçe | 🇺🇦 Українська | 🇵🇰 اردو | 🇺🇿 Oʻzbekcha | 🇻🇳 Tiếng Việt | 🇳🇬 Yorùbá | 🇨🇳 中文 (简体) | 🇹🇼 中文 (繁體)
មគ្គុទ្ទេសក៍ពេញលេញសម្រាប់កំណត់រចនាសម្ព័ន្ធអ្នកផ្តល់សេវា បង្កើតបន្សំ រួមបញ្ចូលឧបករណ៍ CLI និងដាក់ឱ្យប្រើប្រាស់ OmniRoute។
មាតិកា
- តម្លៃសង្ខេប
- ករណីប្រើប្រាស់
- ការដំឡើងអ្នកផ្តល់សេវា
- ការរួមបញ្ចូល CLI
- ការដាក់ឱ្យដំណើរការ
- ម៉ូដែលដែលមាន
- មុខងារកម្រិតខ្ពស់
- ការកំណត់ផ្លូវដោយស្វ័យប្រវត្តិ (មិនចាំបាច់កំណត់រចនាសម្ព័ន្ធ)
- ការរួមបញ្ចូល MCP និង A2A
- ប្រព័ន្ធជំនាញ
- ប្រព័ន្ធអង្គចងចាំ
- Webhooks
- Cloud Agents
- ការគ្រប់គ្រងតាមកម្មវិធី
- CLI ផ្ទៃក្នុង
- កម្មវិធីកុំព្យូទ័រលើតុ (Electron)
💰 តម្លៃសង្ខេប
| កម្រិត | អ្នកផ្តល់សេវា | តម្លៃ | ការកំណត់កូតាឡើងវិញ | សមស្របបំផុតសម្រាប់ |
|---|---|---|---|---|
| 💳 ការជាវ | Claude Code (Pro) | $20/ខែ | 5 ម៉ោង + រៀងរាល់សប្តាហ៍ | អ្នកដែលបានជាវរួចហើយ |
| Codex (Plus/Pro) | $20-200/ខែ | 5 ម៉ោង + រៀងរាល់សប្តាហ៍ | អ្នកប្រើប្រាស់ OpenAI | |
| GitHub Copilot | $10-19/ខែ | រៀងរាល់ខែ | អ្នកប្រើប្រាស់ GitHub | |
| 🔑 API KEY | DeepSeek | បង់តាមការប្រើប្រាស់ | គ្មាន | ការវិភាគហេតុផលតម្លៃទាប |
| Groq | បង់តាមការប្រើប្រាស់ | គ្មាន | ការសន្និដ្ឋានលឿនខ្លាំង | |
| xAI (Grok) | បង់តាមការប្រើប្រាស់ | គ្មាន | ការវិភាគហេតុផលរបស់ Grok 4 | |
| Mistral | បង់តាមការប្រើប្រាស់ | គ្មាន | ម៉ូដែលដែលបង្ហោះនៅសហភាពអឺរ៉ុប | |
| Perplexity | បង់តាមការប្រើប្រាស់ | គ្មាន | បង្កើនសមត្ថភាពដោយការស្វែងរក | |
| Together AI | បង់តាមការប្រើប្រាស់ | គ្មាន | ម៉ូដែលប្រភពបើកចំហ | |
| Fireworks AI | បង់តាមការប្រើប្រាស់ | គ្មាន | រូបភាព FLUX លឿន | |
| Cerebras | បង់តាមការប្រើប្រាស់ | គ្មាន | ល្បឿនកម្រិតវ៉េហ្វឺរ | |
| Cohere | បង់តាមការប្រើប្រាស់ | គ្មាន | Command R+ RAG | |
| NVIDIA NIM | បង់តាមការប្រើប្រាស់ | គ្មាន | ម៉ូដែលសម្រាប់សហគ្រាស | |
| Baidu Qianfan | បង់តាមការប្រើប្រាស់ | គ្មាន | ម៉ូដែល ERNIE | |
| 💰 តម្លៃទាប | GLM-4.7 | $0.6/1M | រៀងរាល់ថ្ងៃ ម៉ោង 10 ព្រឹក | ជម្រើសបម្រុងតម្លៃទាប |
| MiniMax M2.1 | $0.2/1M | វិលជុំរៀងរាល់ 5 ម៉ោង | ជម្រើសថោកបំផុត | |
| Kimi K2 | $9/ខែ ថេរ | 10M tokens/ខែ | តម្លៃអាចព្យាករបាន | |
| 🆓 ឥតគិតថ្លៃ | Qoder | $0 | អនុវត្តតាមដែនកំណត់របស់អ្នកផ្តល់សេវា | ផ្ទៀងផ្ទាត់កាតាឡុកបច្ចុប្បន្ន |
| Kiro | $0 | ~50 credits/ខែ | Claude ឥតគិតថ្លៃ |
🎯 ករណីប្រើប្រាស់
ករណីទី 1៖ "ខ្ញុំមានការជាវ Claude Pro"
បញ្ហា៖ កូតាផុតកំណត់ដោយមិនបានប្រើ និងជួបដែនកំណត់អត្រាក្នុងអំឡុងពេលសរសេរកូដខ្លាំង
បន្សំ៖ "maximize-claude"
1. cc/claude-opus-4-7 (ប្រើការជាវឱ្យអស់លទ្ធភាព)
2. glm/glm-4.7 (ជម្រើសបម្រុងតម្លៃទាប នៅពេលកូតាអស់)
3. if/qwen3.8-max-preview (ជម្រើសបម្រុងបន្ទាន់ឥតគិតថ្លៃ)
តម្លៃប្រចាំខែ៖ $20 (ការជាវ) + ~$5 (ជម្រើសបម្រុង) = សរុប $25
ធៀបនឹង $20 + ការប៉ះដែនកំណត់ = ភាពធុញថប់
ករណីទី 2៖ "ខ្ញុំចង់បានតម្លៃសូន្យ"
បញ្ហា៖ មិនមានលទ្ធភាពបង់ថ្លៃការជាវ និងត្រូវការ AI សរសេរកូដដែលអាចទុកចិត្តបាន
បន្សំ៖ "zero-cost"
1. if/kimi-k2.7-code (បានរាយថាមានការចូលប្រើឥតគិតថ្លៃ; អាចមានដែនកំណត់អត្រា)
2. kr/qwen3-coder-next (ជម្រើសបម្រុង Kiro ឥតគិតថ្លៃ)
តម្លៃប្រចាំខែ៖ $0
គុណភាព៖ ផ្ទៀងផ្ទាត់ម៉ូដែល ដែនកំណត់ ឯកជនភាព និង SLA សម្រាប់បន្ទុកការងាររបស់អ្នក
ករណីទី 3៖ "ខ្ញុំត្រូវការការសរសេរកូដ 24/7 ដោយគ្មានការរំខាន"
បញ្ហា៖ មានកាលកំណត់ និងមិនអាចទទួលយកពេលវេលាផ្អាកដំណើរការបាន
បន្សំ៖ "always-on"
1. cc/claude-opus-4-7 (គុណភាពល្អបំផុត)
2. cx/gpt-5.5 (ការជាវទីពីរ)
3. glm/glm-4.7 (តម្លៃទាប កំណត់ឡើងវិញរៀងរាល់ថ្ងៃ)
4. minimax/MiniMax-M2.1 (ថោកបំផុត កំណត់ឡើងវិញរៀងរាល់ 5 ម៉ោង)
5. if/deepseek-v4-flash (បានរាយថាមានការចូលប្រើឥតគិតថ្លៃ; អាចមានដែនកំណត់អត្រា)
លទ្ធផល៖ ជម្រើសបម្រុង 5 ស្រទាប់បង្កើនភាពធន់; ភាពអាចប្រើបានពីប្រភពខាងលើមិនត្រូវបានធានាទេ
តម្លៃប្រចាំខែ៖ $20-200 (ការជាវ) + $10-20 (ជម្រើសបម្រុង)
ករណីទី 4៖ "ខ្ញុំចង់បាន AI ឥតគិតថ្លៃក្នុង OpenClaw"
បញ្ហា៖ ត្រូវការជំនួយការ AI ក្នុងកម្មវិធីផ្ញើសារ ដោយឥតគិតថ្លៃទាំងស្រុង
បន្សំ៖ "openclaw-free"
1. if/qwen3.8-max-preview (បានរាយថាមានការចូលប្រើឥតគិតថ្លៃ; អាចមានដែនកំណត់អត្រា)
2. if/deepseek-v4-flash (បានរាយថាមានការចូលប្រើឥតគិតថ្លៃ; អាចមានដែនកំណត់អត្រា)
3. if/kimi-k2.7-code (បានរាយថាមានការចូលប្រើឥតគិតថ្លៃ; អាចមានដែនកំណត់អត្រា)
តម្លៃប្រចាំខែ៖ $0
ចូលប្រើតាមរយៈ៖ WhatsApp, Telegram, Slack, Discord, iMessage, Signal...
📖 ការដំឡើងអ្នកផ្តល់សេវា
ដើម្បីបន្ថែមការតភ្ជាប់ API key ជាច្រើនពីឯកសារ CSV ឬ JSON សូមប្រើ ផ្ទាំងគ្រប់គ្រង → អ្នកផ្តល់សេវា → នាំចូលពីឯកសារ។ ជួរឈរត្រូវបានកំណត់តាមលំដាប់ (provider,name,apiKey,baseUrl,priority) ហើយ provider ត្រូវតែមានរួចជាអ្នកផ្តល់សេវាដែលបានគ្រប់គ្រង ឬជា node ដែលឆបគ្នា។ សូមមើល នាំចូលអ្នកផ្តល់សេវាពីឯកសារ CSV ឬ JSON។
🔐 អ្នកផ្តល់សេវាតាមការជាវ
Claude Code (Pro/Max)
ផ្ទាំងគ្រប់គ្រង → អ្នកផ្តល់សេវា → ភ្ជាប់ Claude Code
→ ចូលតាម OAuth → ផ្ទុក token ឡើងវិញដោយស្វ័យប្រវត្តិ
→ តាមដានកូតារយៈពេល 5 ម៉ោង + ប្រចាំសប្តាហ៍
ម៉ូដែល:
cc/claude-opus-4-7
cc/claude-sonnet-4-6
cc/claude-haiku-4-5-20251001
គន្លឹះសម្រាប់អ្នកជំនាញ: ប្រើ Opus សម្រាប់កិច្ចការស្មុគស្មាញ និង Sonnet សម្រាប់ល្បឿន។ OmniRoute តាមដានកូតាតាមម៉ូដែលនីមួយៗ!
ផ្លូវដែលឆបគ្នាជាមួយ Claude និង Claude Code រក្សាកម្រិតការគិត max សម្រាប់ម៉ូដែល Opus និង Sonnet។ ម៉ូដែល Haiku មិនទទួលយកកម្រិតការគិត max ទេ ដូច្នេះ OmniRoute នឹងបន្ថយសំណើនោះទៅជាថវិកាការគិតកម្រិតខ្ពស់ មុនពេលបញ្ជូនវាទៅ upstream។
OpenAI Codex (Plus/Pro)
ផ្ទាំងគ្រប់គ្រង → អ្នកផ្តល់សេវា → ភ្ជាប់ Codex
→ ចូលតាម OAuth (port 1455)
→ កំណត់ឡើងវិញរៀងរាល់ 5 ម៉ោង + ប្រចាំសប្តាហ៍
ម៉ូដែល:
cx/gpt-5.5
cx/gpt-5.4
cx/gpt-5.3-codex
cx/gpt-5.3-codex-spark
GitHub Copilot
ផ្ទាំងគ្រប់គ្រង → អ្នកផ្តល់សេវា → ភ្ជាប់ GitHub
→ OAuth តាមរយៈ GitHub
→ កំណត់ឡើងវិញប្រចាំខែ (ថ្ងៃទី 1 នៃខែ)
ម៉ូដែល:
gh/gpt-5.5
gh/gpt-5.4
gh/claude-sonnet-4.6
gh/claude-opus-4.7
gh/gemini-3.1-pro-preview
💰 អ្នកផ្តល់សេវាដែលមានតម្លៃថោក
GLM-4.7 (កំណត់ឡើងវិញប្រចាំថ្ងៃ, $0.6/1M)
- ចុះឈ្មោះ៖ Zhipu AI
- ទទួលយក API key ពី Coding Plan
- ផ្ទាំងគ្រប់គ្រង → បន្ថែម API Key៖ អ្នកផ្តល់សេវា៖
glm, API Key៖your-key
ប្រើ៖ glm/glm-4.7 — គន្លឹះសម្រាប់អ្នកជំនាញ: Coding Plan ផ្តល់កូតា 3 ដង ក្នុងតម្លៃត្រឹម 1/7! កំណត់ឡើងវិញជារៀងរាល់ថ្ងៃនៅម៉ោង 10:00 ព្រឹក។
MiniMax M2.1 (កំណត់ឡើងវិញរៀងរាល់ 5 ម៉ោង, $0.20/1M)
- ចុះឈ្មោះ៖ MiniMax
- ទទួលយក API key → ផ្ទាំងគ្រប់គ្រង → បន្ថែម API Key
ប្រើ៖ minimax/MiniMax-M2.1 — គន្លឹះសម្រាប់អ្នកជំនាញ: ជម្រើសថោកបំផុតសម្រាប់ context វែង (1M tokens)!
Kimi K2 (តម្លៃថេរ $9/ខែ)
- ជាវ៖ Moonshot AI
- ទទួលយក API key → ផ្ទាំងគ្រប់គ្រង → បន្ថែម API Key
ប្រើ៖ kimi/kimi-k2.5 — គន្លឹះសម្រាប់អ្នកជំនាញ: តម្លៃថេរ $9/ខែ សម្រាប់ 10M tokens = ថ្លៃដើមជាក់ស្តែង $0.90/1M!
Baidu Qianfan / ERNIE
- ចុះឈ្មោះ៖ Baidu AI Cloud Qianfan
- បង្កើត Qianfan API key → ផ្ទាំងគ្រប់គ្រង → បន្ថែម API Key៖ អ្នកផ្តល់សេវា៖
qianfan
ប្រើ៖ qianfan/ernie-5.1, qianfan/ernie-x1.1 ឬ ID ម៉ូដែលផ្សេងទៀតរបស់ Qianfan ដែលឆបគ្នាជាមួយ OpenAI។
🆓 អ្នកផ្តល់សេវាឥតគិតថ្លៃ
អ្នកផ្តល់សេវាឥតគិតថ្លៃដែលមិនតម្រូវឱ្យផ្ទៀងផ្ទាត់អត្តសញ្ញាណ មានកុងតាក់នៅជាប់ មិនតម្រូវឱ្យផ្ទៀងផ្ទាត់អត្តសញ្ញាណ នៅលើទំព័រអ្នកផ្តល់សេវារបស់ពួកគេ។
ការបិទវានឹងបិទដំណើរការអ្នកផ្តល់សេវានោះ ដកវាចេញពីទិដ្ឋភាពដែលបានកំណត់រចនាសម្ព័ន្ធ/បង្រួមរបស់អ្នកផ្តល់សេវា និងដកម៉ូដែលរបស់វាចេញពី /v1/models។
Qoder (ម៉ូដែលឥតគិតថ្លៃ 9)
ផ្ទាំងគ្រប់គ្រង → ភ្ជាប់ Qoder → ចូលតាម OAuth → ការចូលប្រើស្ថិតក្រោមដែនកំណត់បច្ចុប្បន្នរបស់អ្នកផ្តល់សេវា
ម៉ូដែល: if/qwen3.8-max-preview, if/qwen3.7-max, if/qwen3.7-plus, if/kimi-k3, if/kimi-k2.7-code, if/glm-5.2, if/deepseek-v4-pro, if/deepseek-v4-flash, if/minimax-m3
Kiro (Claude ឥតគិតថ្លៃ)
ផ្ទាំងគ្រប់គ្រង → ភ្ជាប់ Kiro → AWS Builder ID ឬ Google/GitHub → ~50 credits/ខែ
ម៉ូដែល: kr/claude-sonnet-4.5, kr/claude-haiku-4.5
🎨 បន្សំ
អ្នកអាចរៀបលំដាប់កាតបន្សំឡើងវិញដោយផ្ទាល់នៅក្នុង ផ្ទាំងគ្រប់គ្រង → បន្សំ ដោយអូសចំណុចទាញនៅលើកាតនីមួយៗ។ លំដាប់នេះត្រូវបានរក្សាទុកក្នុង SQLite ហើយត្រូវបានស្ដារឡើងវិញនៅពេលផ្ទុកម្ដងទៀត។
ឧទាហរណ៍ទី 1៖ ប្រើការជាវឱ្យបានអតិបរមា → ជម្រើសបម្រុងតម្លៃថោក
ផ្ទាំងគ្រប់គ្រង → បន្សំ → បង្កើតថ្មី
ឈ្មោះ៖ premium-coding
ម៉ូដែល៖
1. cc/claude-opus-4-7 (ការជាវជាជម្រើសចម្បង)
2. glm/glm-4.7 (ជម្រើសបម្រុងតម្លៃថោក, $0.6/1M)
3. minimax/MiniMax-M2.7 (ជម្រើសបម្រុងចុងក្រោយដែលថោកបំផុត, $0.3/1M)
ប្រើក្នុង CLI៖ premium-coding
ឧទាហរណ៍ទី 2៖ ឥតគិតថ្លៃតែប៉ុណ្ណោះ (គ្មានការចំណាយ)
ឈ្មោះ៖ free-combo
ម៉ូដែល៖
1. if/kimi-k2.7-code (បានរាយបញ្ជីថាអាចចូលប្រើដោយឥតគិតថ្លៃ; អាចមានដែនកំណត់ពីអ្នកផ្តល់សេវា)
2. kr/qwen3-coder-next (ជម្រើសបម្រុង Kiro ឥតគិតថ្លៃ)
តម្លៃ៖ បច្ចុប្បន្នត្រូវបានរាយបញ្ជីជា $0; លក្ខខណ្ឌ និងភាពអាចប្រើបានអាចផ្លាស់ប្តូរ
🔧 ការរួមបញ្ចូល CLI
Cursor IDE
ការប្រើ Cursor ជាម៉ាស៊ីនភ្ញៀវ OmniRoute (បញ្ជូនការជជែក Cursor តាមរយៈ OmniRoute)៖
ការកំណត់ → ម៉ូដែល → កម្រិតខ្ពស់៖
OpenAI API Base URL: http://localhost:20128/v1
OpenAI API Key: [ពីផ្ទាំងគ្រប់គ្រង omniroute]
Model: cc/claude-opus-4-7
ការប្រើ OmniRoute ជាអ្នកផ្តល់សេវា Cursor (OmniRoute ហៅទៅ Cursor ខ្សែខាងលើ)៖ គួរប្រើ
ផ្ទាំងគ្រប់គ្រង → អ្នកផ្តល់សេវា → Cursor → ចូលប្រើជាមួយ Cursor។ ក្នុង Docker សូមមើល
docs/providers/CURSOR-DOCKER.md។
Claude Code
កែសម្រួល ~/.claude/settings.json៖
{
"env": {
"ANTHROPIC_BASE_URL": "http://localhost:20128",
"ANTHROPIC_AUTH_TOKEN": "your-omniroute-api-key"
}
}
ប្រើ endpoint ឫសដែលឆបគ្នាជាមួយ Claude នៅទីនេះ។ កុំបន្ថែម /v1 ទៅ ANTHROPIC_BASE_URL។
Codex CLI
export OPENAI_BASE_URL="http://localhost:20128"
export OPENAI_API_KEY="your-omniroute-api-key"
codex "your prompt"
OpenClaw
កែសម្រួល ~/.openclaw/openclaw.json៖
{
"agents": {
"defaults": {
"model": { "primary": "omniroute/if/kimi-k2.7-code" }
}
},
"models": {
"providers": {
"omniroute": {
"baseUrl": "http://localhost:20128/v1",
"apiKey": "your-omniroute-api-key",
"api": "openai-completions",
"models": [{ "id": "if/kimi-k2.7-code", "name": "Kimi K2.7 Code" }]
}
}
}
}
ឬប្រើផ្ទាំងគ្រប់គ្រង៖ ឧបករណ៍ CLI → OpenClaw → កំណត់រចនាសម្ព័ន្ធដោយស្វ័យប្រវត្តិ
Cline / Continue / RooCode
អ្នកផ្តល់សេវា៖ ឆបគ្នាជាមួយ OpenAI
Base URL: http://localhost:20128/v1
API Key: [ពីផ្ទាំងគ្រប់គ្រង]
ម៉ូដែល៖ cc/claude-opus-4-7
🚀 ការដាក់ឱ្យដំណើរការ
ការដំឡើង npm ជាសកល (បានណែនាំ)
npm install -g omniroute
# បង្កើតថតកំណត់រចនាសម្ព័ន្ធ
mkdir -p ~/.omniroute
# បង្កើតឯកសារ .env (សូមមើល .env.example)
cp .env.example ~/.omniroute/.env
# ចាប់ផ្តើមម៉ាស៊ីនមេ
omniroute
# ឬប្រើច្រកផ្ទាល់ខ្លួន៖
omniroute --port 3000
CLI ផ្ទុក .env ដោយស្វ័យប្រវត្តិពី ~/.omniroute/.env ឬ ./.env។
របៀប Tray
ចាប់ផ្តើម OmniRoute ក្នុងថាសប្រព័ន្ធ៖
omniroute serve --tray
ពាក្យបញ្ជានឹងបញ្ចប់បន្ទាប់ពីម៉ាស៊ីនមេ និង tray រួចរាល់។
ម៉ាស៊ីនមេបន្តដំណើរការដោយមិនចាំបាច់មាន terminal។
របៀប Tray គាំទ្រ macOS, Windows និងសម័យ Linux ដែលមានចំណុចប្រទាក់ក្រាហ្វិក។ របៀប Tray មិនបើកផ្ទាំងគ្រប់គ្រងដោយស្វ័យប្រវត្តិទេ។
ប្រើម៉ឺនុយ tray សម្រាប់សកម្មភាពទាំងនេះ៖
- បើកផ្ទាំងគ្រប់គ្រង។
- បើក
/dashboard/logs។ - ផ្លាស់ប្តូរការចាប់ផ្តើមដោយស្វ័យប្រវត្តិ។
- បញ្ឈប់ OmniRoute។
កុំប្រើ --tray រួមជាមួយជម្រើសទាំងនេះ៖
--daemon--log--no-recovery
របៀបទាំងនេះតម្រូវឱ្យមានការគ្រប់គ្រងកម្មសិទ្ធិដំណើរការខុសៗគ្នា។
បើកការចាប់ផ្តើមនៅពេលចូលប្រើម៉ាស៊ីនលើកក្រោយ៖
omniroute autostart enable
ការចាប់ផ្តើមដោយស្វ័យប្រវត្តិប្រើរបៀប tray នៅលើ macOS, Windows និងសម័យ Linux ដែលមានចំណុចប្រទាក់ក្រាហ្វិក។ Linux ដែលគ្មានចំណុចប្រទាក់ក្រាហ្វិកប្រើសេវាអ្នកប្រើ systemd ដែលមានស្រាប់។
បិទការចាប់ផ្តើមនៅពេលចូលប្រើ៖
omniroute autostart disable
ការលុបការដំឡើង
នៅពេលអ្នកលែងត្រូវការ OmniRoute យើងផ្តល់ស្គ្រីបរហ័សពីរសម្រាប់ការលុបចេញឱ្យស្អាត៖
| ពាក្យបញ្ជា | សកម្មភាព |
|---|---|
npm run uninstall |
លុបកម្មវិធីប្រព័ន្ធ ប៉ុន្តែ រក្សាទុក DB និងការកំណត់រចនាសម្ព័ន្ធរបស់អ្នក ក្នុង ~/.omniroute។ |
npm run uninstall:full |
លុបកម្មវិធី ហើយ លុបជាអចិន្ត្រៃយ៍នូវការកំណត់រចនាសម្ព័ន្ធ សោ និងមូលដ្ឋានទិន្នន័យទាំងអស់។ |
ចំណាំ៖ ដើម្បីដំណើរការពាក្យបញ្ជាទាំងនេះ សូមចូលទៅកាន់ថតគម្រោង OmniRoute (ប្រសិនបើអ្នកបាន clone វា) រួចដំណើរការពួកវា។ ជាជម្រើស ប្រសិនបើបានដំឡើងជាសកល អ្នកអាចដំណើរការ
npm uninstall -g omnirouteបានដោយផ្ទាល់។
ការដាក់ឱ្យដំណើរការលើ VPS
git clone https://github.com/diegosouzapw/OmniRoute.git
cd OmniRoute && npm install && npm run build
export JWT_SECRET="your-secure-secret-change-this"
export INITIAL_PASSWORD="your-password"
export DATA_DIR="/var/lib/omniroute"
export PORT="20128"
export HOSTNAME="0.0.0.0"
export NODE_ENV="production"
export NEXT_PUBLIC_BASE_URL="http://localhost:20128"
export API_KEY_SECRET="endpoint-proxy-api-key-secret"
npm run start
# ឬ៖ pm2 start npm --name omniroute -- start
ការដាក់ឱ្យដំណើរការជាមួយ PM2 (អង្គចងចាំទាប)
សម្រាប់ម៉ាស៊ីនមេដែលមាន RAM កំណត់ សូមប្រើជម្រើសកំណត់អង្គចងចាំ៖
# ជាមួយដែនកំណត់ 512MB (លំនាំដើម)
pm2 start npm --name omniroute -- start
# ឬជាមួយដែនកំណត់អង្គចងចាំផ្ទាល់ខ្លួន
OMNIROUTE_MEMORY_MB=512 pm2 start npm --name omniroute -- start
# ឬប្រើ ecosystem.config.js
pm2 start ecosystem.config.js
បង្កើត ecosystem.config.js៖
module.exports = {
apps: [
{
name: "omniroute",
script: "npm",
args: "start",
env: {
NODE_ENV: "production",
OMNIROUTE_MEMORY_MB: "512",
JWT_SECRET: "your-secret",
INITIAL_PASSWORD: "your-password",
},
node_args: "--max-old-space-size=512",
max_memory_restart: "300M",
},
],
};
Docker
# បង្កើត image (លំនាំដើម = runner-cli ដែលបានដំឡើង codex/claude/droid ជាមុន)
docker build -t omniroute:cli .
# របៀបចល័ត (បានណែនាំ)
docker run -d --name omniroute -p 20128:20128 --env-file ./.env -v omniroute-data:/app/data omniroute:cli
សម្រាប់របៀបរួមបញ្ចូលជាមួយ host ដែលមាន CLI binaries សូមមើលផ្នែក Docker ក្នុងឯកសារចម្បង។
Void Linux (xbps-src)
អ្នកប្រើប្រាស់ Void Linux អាចវេចខ្ចប់ និងដំឡើង OmniRoute ដោយផ្ទាល់តាមប្រព័ន្ធ ដោយប្រើក្របខណ្ឌចងក្រងឆ្លងវេទិកា xbps-src។ វាធ្វើស្វ័យប្រវត្តិកម្មលើការបង្កើត Node.js standalone រួមជាមួយ native bindings របស់ better-sqlite3 ដែលត្រូវការ។
មើលគំរូ xbps-src
# ឯកសារគំរូសម្រាប់ 'omniroute'
pkgname=omniroute
version=3.8.0
revision=1
hostmakedepends="nodejs python3 make"
depends="openssl"
short_desc="Universal AI gateway with smart routing for multiple LLM providers"
maintainer="zenobit <zenobit@disroot.org>"
license="MIT"
homepage="https://github.com/diegosouzapw/OmniRoute"
distfiles="https://github.com/diegosouzapw/OmniRoute/archive/refs/tags/v${version}.tar.gz"
checksum=009400afee90a9f32599d8fe734145cfd84098140b7287990183dde45ae2245b
system_accounts="_omniroute"
omniroute_homedir="/var/lib/omniroute"
export NODE_ENV=production
export npm_config_engine_strict=false
export npm_config_loglevel=error
export npm_config_fund=false
export npm_config_audit=false
do_build() {
# កំណត់ស្ថាបត្យកម្ម CPU គោលដៅសម្រាប់ node-gyp
local _gyp_arch
case "$XBPS_TARGET_MACHINE" in
aarch64*) _gyp_arch=arm64 ;;
armv7*|armv6*) _gyp_arch=arm ;;
i686*) _gyp_arch=ia32 ;;
*) _gyp_arch=x64 ;;
esac
# 1) ដំឡើង dependencies ទាំងអស់ – រំលង scripts
NODE_ENV=development npm ci --ignore-scripts
# 2) បង្កើត Next.js standalone bundle
npm run build
# 3) ចម្លង static assets ទៅក្នុង standalone
cp -r .next/static .next/standalone/.next/static
[ -d public ] && cp -r public .next/standalone/public || true
# 4) ចងក្រង native binding របស់ better-sqlite3
local _node_gyp=/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js
(cd node_modules/better-sqlite3 && node "$_node_gyp" rebuild --arch="$_gyp_arch")
# 5) ដាក់ binding ដែលបានចងក្រងទៅក្នុង standalone bundle
local _bs3_release=.next/standalone/node_modules/better-sqlite3/build/Release
mkdir -p "$_bs3_release"
cp node_modules/better-sqlite3/build/Release/better_sqlite3.node "$_bs3_release/"
# 6) លុប sharp bundles ដែលជាក់លាក់ចំពោះស្ថាបត្យកម្ម
rm -rf .next/standalone/node_modules/@img
# 7) ចម្លង runtime dependencies របស់ pino ដែលការវិភាគ static របស់ Next.js បានរំលង៖
for _mod in pino-abstract-transport split2 process-warning; do
cp -r "node_modules/$_mod" .next/standalone/node_modules/
done
}
do_check() {
npm run test:unit
}
do_install() {
vmkdir usr/lib/omniroute/.next
vcopy .next/standalone/. usr/lib/omniroute/.next/standalone
# ទប់ស្កាត់ការលុបថត app router ទទេរបស់ Next.js ដោយ post-install hook
for _d in \
.next/standalone/.next/server/app/dashboard \
.next/standalone/.next/server/app/dashboard/settings \
.next/standalone/.next/server/app/dashboard/providers; do
touch "${DESTDIR}/usr/lib/omniroute/${_d}/.keep"
done
cat > "${WRKDIR}/omniroute" <<'EOF'
#!/bin/sh
export PORT="${PORT:-20128}"
export DATA_DIR="${DATA_DIR:-${XDG_DATA_HOME:-${HOME}/.local/share}/omniroute}"
export APP_LOG_TO_FILE="${APP_LOG_TO_FILE:-false}"
mkdir -p "${DATA_DIR}"
exec node /usr/lib/omniroute/.next/standalone/server.js "$@"
EOF
vbin "${WRKDIR}/omniroute"
}
post_install() {
vlicense LICENSE
}
អថេរបរិស្ថាន
| អថេរ | តម្លៃលំនាំដើម | ការពិពណ៌នា |
|---|---|---|
JWT_SECRET |
omniroute-default-secret-change-me |
ពាក្យសម្ងាត់សម្រាប់ចុះហត្ថលេខា JWT (ត្រូវប្តូរនៅក្នុងបរិស្ថានផលិតកម្ម) |
INITIAL_PASSWORD |
CHANGEME |
ពាក្យសម្ងាត់សម្រាប់ការចូលប្រើលើកដំបូង |
DATA_DIR |
~/.omniroute |
ថតទិន្នន័យ (មូលដ្ឋានទិន្នន័យ ការប្រើប្រាស់ កំណត់ហេតុ) |
PORT |
លំនាំដើមរបស់ framework | ច្រកសេវា (20128 នៅក្នុងឧទាហរណ៍) |
HOSTNAME |
លំនាំដើមរបស់ framework | ម៉ាស៊ីនមេដែលត្រូវភ្ជាប់ (Docker ប្រើ 0.0.0.0 ជាលំនាំដើម) |
NODE_ENV |
លំនាំដើមរបស់ runtime | កំណត់ជា production សម្រាប់ការដាក់ឱ្យប្រើប្រាស់ |
NEXT_PUBLIC_BASE_URL |
http://localhost:20128 |
URL មូលដ្ឋានសាធារណៈដែលបង្ហាញទៅកាន់ dashboard និងបើកឱ្យ server ប្រើប្រាស់ (ជំនួស BASE_URL ចាស់) |
NEXT_PUBLIC_CLOUD_URL |
https://omniroute.dev |
URL មូលដ្ឋាននៃ endpoint សមកាលកម្ម cloud (ជំនួស CLOUD_URL ចាស់) |
API_KEY_SECRET |
endpoint-proxy-api-key-secret |
ពាក្យសម្ងាត់ HMAC សម្រាប់ API key ដែលបានបង្កើត |
REQUIRE_API_KEY |
false |
តម្រូវឱ្យប្រើ Bearer API key នៅលើ /v1/* |
ALLOW_API_KEY_REVEAL |
false |
អនុញ្ញាតឱ្យអ្នកប្រើ dashboard ដែលបានផ្ទៀងផ្ទាត់ភាពត្រឹមត្រូវ បង្ហាញតម្លៃ API key ដែលបានរក្សាទុកពេញលេញតាមតម្រូវការ |
PROVIDER_LIMITS_SYNC_INTERVAL_MINUTES |
70 |
ចន្លោះពេលធ្វើបច្ចុប្បន្នភាពពីផ្នែក server សម្រាប់ទិន្នន័យ Provider Limits ដែលបាន cache; ប៊ូតុងធ្វើបច្ចុប្បន្នភាពក្នុង UI នៅតែបង្កឱ្យមានការធ្វើសមកាលកម្មដោយដៃ |
DISABLE_SQLITE_AUTO_BACKUP |
false |
បិទ snapshot SQLite ដោយស្វ័យប្រវត្តិមុនពេលសរសេរ/នាំចូល/ស្ដារឡើងវិញ; ការបម្រុងទុកដោយដៃនៅតែដំណើរការ |
APP_LOG_TO_FILE |
true |
បើកការសរសេរកំណត់ហេតុកម្មវិធី និងកំណត់ហេតុសវនកម្មទៅកាន់ថាស |
AUTH_COOKIE_SECURE |
false |
បង្ខំឱ្យ cookie ផ្ទៀងផ្ទាត់ភាពត្រឹមត្រូវប្រើ Secure (នៅពីក្រោយ HTTPS reverse proxy) |
CLOUDFLARED_BIN |
មិនបានកំណត់ | ប្រើ binary cloudflared ដែលមានស្រាប់ ជំនួសឱ្យការទាញយកដែលបានគ្រប់គ្រង |
CLOUDFLARED_PROTOCOL |
http2 |
ការដឹកជញ្ជូនសម្រាប់ Quick Tunnels ដែលបានគ្រប់គ្រង (http2, quic ឬ auto) |
OMNIROUTE_MEMORY_MB |
512 |
ដែនកំណត់ heap របស់ Node.js គិតជា MB |
PROMPT_CACHE_MAX_SIZE |
50 |
ចំនួនធាតុអតិបរមាក្នុង prompt cache |
SEMANTIC_CACHE_MAX_SIZE |
100 |
ចំនួនធាតុអតិបរមាក្នុង semantic cache |
សម្រាប់ឯកសារយោងពេញលេញអំពីអថេរបរិស្ថាន សូមមើល README។
📊 ម៉ូដែលដែលមាន
មើលម៉ូដែលដែលមានទាំងអស់
បញ្ជីខាងក្រោមត្រូវបានជ្រើសរើស និងរៀបចំពី
open-sse/config/providerRegistry.tsសម្រាប់ v3.8.0។ កាតាឡុកលើក្លោដ (Gemini, OpenRouter ជាដើម) ត្រូវបានធ្វើសមកាលកម្មដោយស្វ័យប្រវត្តិ — ដើម្បីមើលកាតាឡុកពេញលេញបច្ចុប្បន្ន សូមបើក ផ្ទាំងគ្រប់គ្រង → អ្នកផ្តល់សេវា → [provider] → ម៉ូដែលដែលមាន ឬហៅGET /api/models/catalog។ប្រសិនបើបញ្ជីដែលភ្ជាប់មកជាមួយរបស់អ្នកផ្តល់សេវាលែងត្រូវគ្នានឹងបញ្ជីបច្ចុប្បន្ន សូមប្រើ នាំចូលពី /models នៅលើទំព័រនោះ (ឬបើក ធ្វើសមកាលកម្មដោយស្វ័យប្រវត្តិ) ដើម្បីទាញយកកាតាឡុកបច្ចុប្បន្នពីប្រភពដើម។ ចំណុចនេះត្រូវបានផ្ទៀងផ្ទាត់ក្នុង v3.8.50 សម្រាប់ LLM7.io (
gemini-3.1-flash-lite) និង UncloseAI (solidrust/Hermes-3-Llama-3.1-8B-AWQ); ការចូលប្រើ Pollinations ដោយអនាមិកនៅតែត្រូវបានកម្រិតដោយប្រភពដើម ក្នុងអំឡុងពេលធ្វើតេស្តដូចគ្នា។
Claude Code (cc/) — Pro/Max OAuth: cc/claude-opus-4-8, cc/claude-opus-4-7, cc/claude-opus-4-6, cc/claude-opus-4-5-20251101, cc/claude-sonnet-4-6, cc/claude-sonnet-4-5-20250929, cc/claude-haiku-4-5-20251001
Codex (cx/) — Plus/Pro OAuth: cx/gpt-5.5 (+ កម្រិតការប្រឹងប្រែង: gpt-5.5-xhigh, gpt-5.5-high, gpt-5.5-medium, gpt-5.5-low), cx/gpt-5.4, cx/gpt-5.4-mini, cx/gpt-5.3-codex, cx/gpt-5.3-codex-spark
GitHub Copilot (gh/) — OAuth: gh/gpt-5.5, gh/gpt-5.4, gh/gpt-5.4-mini, gh/gpt-5-mini, gh/gpt-5.3-codex, gh/claude-opus-4.7, gh/claude-opus-4.6, gh/claude-opus-4-5-20251101, gh/claude-sonnet-4.6, gh/claude-sonnet-4.5, gh/claude-haiku-4.5, gh/gemini-3.1-pro-preview, gh/gemini-3-flash-preview, gh/oswe-vscode-prime
Kiro (kr/) — OAuth ឥតគិតថ្លៃ: ប្រើកាតាឡុកបច្ចុប្បន្នដែលបង្ហាញនៅក្រោម ផ្ទាំងគ្រប់គ្រង → អ្នកផ្តល់សេវា → Kiro → ម៉ូដែលដែលមាន។ ភាពអាចប្រើបានអាស្រ័យលើគណនី និងគម្រោង។
Qoder (if/) — OAuth ឥតគិតថ្លៃ: if/qwen3.8-max-preview, if/qwen3.7-max, if/qwen3.7-plus, if/kimi-k3, if/kimi-k2.7-code, if/glm-5.2, if/deepseek-v4-pro, if/deepseek-v4-flash, if/minimax-m3
GLM (glm/, glm-cn/, zai/, glmt/) — $0.2–0.6/1M: glm/glm-5.1, glm/glm-5, glm/glm-5-turbo, glm/glm-4.7, glm/glm-4.7-flash, glm/glm-4.6, glm/glm-4.6v, glm/glm-4.5, glm/glm-4.5v, glm/glm-4.5-air
MiniMax (minimax/, minimax-cn/) — $0.2/1M: minimax/MiniMax-M2.7, minimax/MiniMax-M2.7-highspeed, minimax/MiniMax-M2.5, minimax/MiniMax-M2.5-highspeed
Kimi (kimi/, kimi-coding/, kimi-coding-apikey/) — $9/ខែ ថ្លៃថេរ ឬបង់តាមការប្រើប្រាស់: kimi/kimi-k2.6, kimi/kimi-k2.5
DeepSeek (ds/) — កូនសោ API: ds/deepseek-v4-pro, ds/deepseek-v4-flash
Groq (groq/) — ល្បឿនលឿនខ្លាំង: groq/llama-3.3-70b-versatile, groq/meta-llama/llama-4-maverick-17b-128e-instruct, groq/qwen/qwen3-32b, groq/openai/gpt-oss-120b
xAI (xai/) — Grok ដើម: xai/grok-4.3, xai/grok-4.20-multi-agent-0309, xai/grok-4.20-0309-reasoning, xai/grok-4.20-0309-non-reasoning
Mistral (mistral/) — បង្ហោះនៅសហភាពអឺរ៉ុប: mistral/mistral-large-latest, mistral/mistral-medium-3-5, mistral/mistral-small-latest, mistral/devstral-latest, mistral/codestral-latest
Perplexity (pplx/) — បន្ថែមសមត្ថភាពដោយការស្វែងរក: pplx/sonar-deep-research, pplx/sonar-reasoning-pro, pplx/sonar-pro, pplx/sonar
Together AI (together/) — ប្រភពបើកចំហ: together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free (ឥតគិតថ្លៃ), together/meta-llama/Llama-Vision-Free, together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free, together/deepseek-ai/DeepSeek-R1, together/Qwen/Qwen3-235B-A22B, together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8
Fireworks AI (fireworks/) — ការអនុមានលឿន: fireworks/accounts/fireworks/models/kimi-k2p6, fireworks/accounts/fireworks/models/minimax-m2p7, fireworks/accounts/fireworks/models/qwen3p6-plus, fireworks/accounts/fireworks/models/glm-5p1, fireworks/accounts/fireworks/models/deepseek-v4-pro
Cerebras (cerebras/) — មាត្រដ្ឋានវេហ្វឺរ: cerebras/zai-glm-4.7, cerebras/gpt-oss-120b
Cohere (cohere/) — ផ្តោតលើ RAG: cohere/command-a-reasoning-08-2025, cohere/command-a-vision-07-2025, cohere/command-a-03-2025, cohere/command-r-08-2024
NVIDIA NIM (nvidia/) — សម្រាប់សហគ្រាស: nvidia/z-ai/glm-5.1, nvidia/minimaxai/minimax-m2.7, nvidia/google/gemma-4-31b-it, nvidia/mistralai/mistral-small-4-119b-2603, nvidia/mistralai/mistral-large-3-675b-instruct-2512, nvidia/qwen/qwen3.5-397b-a17b, nvidia/deepseek-ai/deepseek-v4-pro, nvidia/openai/gpt-oss-120b, nvidia/nvidia/nemotron-3-super-120b-a12b
Baidu Qianfan (qianfan/) — ERNIE: qianfan/ernie-5.1, qianfan/ernie-5.0-thinking-latest, qianfan/ernie-x1.1
Ollama Cloud (ollama-cloud/): ollama-cloud/deepseek-v4-pro, ollama-cloud/deepseek-v4-flash, ollama-cloud/kimi-k2.6, ollama-cloud/glm-5.1, ollama-cloud/minimax-m2.7, ollama-cloud/gemma4:31b, ollama-cloud/qwen3.5:397b
Gemini (Google Cloud gemini/): ធ្វើសមកាលកម្មបច្ចុប្បន្នតាមកូនសោ API ពី Google — មិនមានបញ្ជីថេរទេ។ ភ្ជាប់កូនសោមួយនៅក្នុង ផ្ទាំងគ្រប់គ្រង → អ្នកផ្តល់សេវា បន្ទាប់មកប្រើ ម៉ូដែលដែលមាន ដើម្បីនាំចូលកាតាឡុកបច្ចុប្បន្ន (ឧ. gemini/gemini-3-pro, gemini/gemini-3-flash)។
អ្នកផ្តល់សេវាដែលត្រូវគ្នាផ្សេងទៀត (បានជ្រើសរើស): cohere, databricks, snowflake, together, vertex, alibaba, alibaba-cn, bedrock (តាមរយៈ aws-bedrock), azure-ai, openrouter (កាតាឡុកឆ្លងកាត់ដោយផ្ទាល់), siliconflow, hyperbolic, huggingface, featherless-ai, cloudflare-ai, scaleway, deepinfra, vercel-ai-gateway, bazaarlink, friendliai, nous-research, reka, volcengine, ai21, gigachat។ អ្នកផ្តល់សេវានីមួយៗរក្សាបញ្ជីម៉ូដែលផ្ទាល់ខ្លួននៅក្នុង providerRegistry.ts ហើយអាចធ្វើសមកាលកម្មដោយស្វ័យប្រវត្តិ នៅពេលអ្នកផ្តល់សេវាបង្ហាញ endpoint /models។
កំណត់ចំណាំអំពីលេខសម្គាល់ម៉ូដែល: OmniRoute ប្រើលេខសម្គាល់ដើមរបស់អ្នកផ្តល់សេវា (claude-opus-4-8, gpt-5.5, glm-5.1, MiniMax-M2.7, kimi-k2.5, grok-4.20-0309-reasoning)។ លេខសម្គាល់ខ្លះមានកំណែប្រើសញ្ញាចុច ពីព្រោះ API ប្រភពដើមតម្រូវឱ្យប្រើទម្រង់នោះ។ ប្រសិនបើម៉ូដែលមួយមិនមានក្នុងបញ្ជីខាងលើ សូមដំណើរការ omniroute models --search <term> ឬហៅ GET /api/models/catalog ដើម្បីបញ្ជាក់ភាពអាចប្រើបាន។
🧩 មុខងារកម្រិតខ្ពស់
ម៉ូដែលផ្ទាល់ខ្លួន
បន្ថែម ID ម៉ូដែលណាមួយទៅកាន់អ្នកផ្តល់សេវាណាមួយ ដោយមិនចាំបាច់រង់ចាំការអាប់ដេតកម្មវិធី៖
# តាមរយៈ API
curl -X POST http://localhost:20128/api/provider-models \
-H "Content-Type: application/json" \
-d '{"provider": "openai", "modelId": "gpt-5.2", "modelName": "GPT-5.2"}'
# បញ្ជី៖ curl http://localhost:20128/api/provider-models?provider=openai
# លុប៖ curl -X DELETE "http://localhost:20128/api/provider-models?provider=openai&model=gpt-5.2"
ឬប្រើផ្ទាំងគ្រប់គ្រង៖ អ្នកផ្តល់សេវា → [អ្នកផ្តល់សេវា] → ម៉ូដែលផ្ទាល់ខ្លួន។
ចំណាំ៖
- អ្នកផ្តល់សេវាដែលឆបគ្នាជាមួយ OpenRouter និង OpenAI/Anthropic ត្រូវបានគ្រប់គ្រងតែពី ម៉ូដែលដែលមាន ប៉ុណ្ណោះ។ ការបន្ថែមដោយដៃ ការនាំចូល និងការធ្វើសមកាលកម្មដោយស្វ័យប្រវត្តិ សុទ្ធតែត្រូវបញ្ចូលទៅក្នុងបញ្ជីម៉ូដែលដែលមានដូចគ្នា ដូច្នេះគ្មានផ្នែកម៉ូដែលផ្ទាល់ខ្លួនដាច់ដោយឡែកសម្រាប់អ្នកផ្តល់សេវាទាំងនោះទេ។
- ផ្នែក ម៉ូដែលផ្ទាល់ខ្លួន ត្រូវបានបង្កើតឡើងសម្រាប់អ្នកផ្តល់សេវាដែលមិនផ្តល់ការនាំចូលម៉ូដែលដែលមានដោយមានការគ្រប់គ្រង។
ការតភ្ជាប់ OmniRoute ជាច្រវាក់
ច្រក OmniRoute មួយផ្សេងទៀតអាចត្រូវបានបន្ថែមជាអ្នកផ្តល់សេវា ផ្ទាល់ខ្លួនដែលឆបគ្នាជាមួយ OpenAI។ ប្រើ URL មូលដ្ឋាន /v1 របស់ដៃគូ និង API key ដាច់ដោយឡែកដែលមានសិទ្ធិតិចបំផុត និងត្រូវបានចេញដោយដៃគូនោះ។
សម្រាប់ច្រវាក់ដែលមានការតភ្ជាប់ទៅវិញទៅមក ឬឆ្លងកាត់ច្រើនតំណ បើកមុខងារការពាររង្វិលជុំដែលតម្រូវឱ្យជ្រើសប្រើនៅលើច្រកនីមួយៗ៖
# gateway-a
OMNIROUTE_INSTANCE_ID=gateway-a
OMNIROUTE_PEER_URLS=http://gateway-b:20128/v1
OMNIROUTE_PEER_MAX_HOPS=4
# gateway-b
OMNIROUTE_INSTANCE_ID=gateway-b
OMNIROUTE_PEER_URLS=http://gateway-a:20128/v1
OMNIROUTE_PEER_MAX_HOPS=4
មានតែសំណើដែលផ្ញើទៅកាន់ URL របស់ដៃគូដែលបានដាក់ក្នុងបញ្ជីអនុញ្ញាតយ៉ាងច្បាស់ប៉ុណ្ណោះ ដែលនឹងទទួលបាន header X-OmniRoute-Peer-Trace។ ច្រកមួយនឹងបដិសេធ instance ID ដែលត្រូវបានប្រើម្តងទៀត ឬចំនួនតំណដែលអនុញ្ញាតត្រូវបានប្រើអស់ ដោយប្រើ HTTP 508 Loop Detected; អ្នកផ្តល់សេវាខាងលើធម្មតានឹងមិនទទួលបាន metadata របស់ដៃគូឡើយ។
ការតភ្ជាប់ដៃគូជាច្រវាក់ មិនមែនជាការចម្លងមូលដ្ឋានទិន្នន័យ ឬការផ្ទេរបន្ទុកពេល host បរាជ័យនោះទេ។ ច្រកនីមួយៗរក្សាទុកស្ថានភាព SQLite, cache, កម្មវិធីរាប់អត្រា និង session ដោយឯករាជ្យ។ ប្រើ reverse proxy ដែលមានការត្រួតពិនិត្យសុខភាព ឬការផ្ទេរទៅជម្រើសបម្រុងនៅផ្នែក client សម្រាប់ភាពអាចប្រើបានបែប active/passive ឬ active/active ហើយកុំភ្ជាប់មូលដ្ឋានទិន្នន័យ SQLite តែមួយទៅក្នុង instance OmniRoute ជាច្រើនដែលកំពុងដំណើរការ។
Route ផ្ទាល់សម្រាប់អ្នកផ្តល់សេវា
បញ្ជូនសំណើដោយផ្ទាល់ទៅកាន់អ្នកផ្តល់សេវាជាក់លាក់មួយ ដោយមានការផ្ទៀងផ្ទាត់ម៉ូដែល៖
POST http://localhost:20128/v1/providers/openai/chat/completions
POST http://localhost:20128/v1/providers/openai/embeddings
POST http://localhost:20128/v1/providers/fireworks/images/generations
បុព្វបទរបស់អ្នកផ្តល់សេវាត្រូវបានបន្ថែមដោយស្វ័យប្រវត្តិ ប្រសិនបើបាត់។ ម៉ូដែលដែលមិនត្រូវគ្នានឹងត្រឡប់ 400។
ការកំណត់រចនាសម្ព័ន្ធ Proxy បណ្ដាញ
# កំណត់ proxy សកល
curl -X PUT http://localhost:20128/api/settings/proxy \
-d '{"global": {"type":"http","host":"proxy.example.com","port":"8080"}}'
# proxy តាមអ្នកផ្តល់សេវានីមួយៗ
curl -X PUT http://localhost:20128/api/settings/proxy \
-d '{"providers": {"openai": {"type":"socks5","host":"proxy.example.com","port":"1080"}}}'
# សាកល្បង proxy
curl -X POST http://localhost:20128/api/settings/proxy/test \
-d '{"proxy":{"type":"socks5","host":"proxy.example.com","port":"1080"}}'
លំដាប់អាទិភាព៖ ជាក់លាក់តាម key → ជាក់លាក់តាម combo → ជាក់លាក់តាមអ្នកផ្តល់សេវា → សកល → Environment។
API កាតាឡុកម៉ូដែល
curl http://localhost:20128/api/models/catalog
ត្រឡប់ម៉ូដែលដែលបានដាក់ជាក្រុមតាមអ្នកផ្តល់សេវា ជាមួយប្រភេទ (chat, embedding, image)។
ការធ្វើសមកាលកម្មលើ Cloud
- ធ្វើសមកាលកម្មអ្នកផ្តល់សេវា combo និងការកំណត់នៅទូទាំងឧបករណ៍
- ការធ្វើសមកាលកម្មផ្ទៃខាងក្រោយដោយស្វ័យប្រវត្តិ ជាមួយ timeout + fail-fast
- នៅក្នុង production គួរប្រើ
NEXT_PUBLIC_BASE_URL/NEXT_PUBLIC_CLOUD_URLនៅផ្នែក server
Cloudflare Quick Tunnel
- មាននៅក្នុង ផ្ទាំងគ្រប់គ្រង → Endpoint សម្រាប់ Docker និងការដាក់ឱ្យដំណើរការដែលបង្ហោះដោយខ្លួនឯងផ្សេងទៀត
- បង្កើត URL
https://*.trycloudflare.comបណ្តោះអាសន្ន ដែលបញ្ជូនបន្តទៅកាន់ endpoint/v1បច្ចុប្បន្នរបស់អ្នកដែលឆបគ្នាជាមួយ OpenAI - ការបើកជាលើកដំបូងនឹងដំឡើង
cloudflaredតែនៅពេលចាំបាច់ប៉ុណ្ណោះ; ការចាប់ផ្ដើមឡើងវិញនៅពេលក្រោយនឹងប្រើ binary ដែលបានគ្រប់គ្រងដដែល - Quick Tunnel មិនត្រូវបានស្ដារឡើងវិញដោយស្វ័យប្រវត្តិបន្ទាប់ពី OmniRoute ឬ container ចាប់ផ្ដើមឡើងវិញទេ; បើកវាឡើងវិញពីផ្ទាំងគ្រប់គ្រងនៅពេលចាំបាច់
- URL របស់ tunnel គឺបណ្តោះអាសន្ន ហើយផ្លាស់ប្តូររាល់ពេលដែលអ្នកបញ្ឈប់/ចាប់ផ្តើម tunnel
- ជាលំនាំដើម Quick Tunnel ដែលបានគ្រប់គ្រងប្រើការបញ្ជូនតាម HTTP/2 ដើម្បីជៀសវាងការព្រមានអំពី QUIC UDP buffer ដែលរំខាន នៅក្នុង container ដែលមានធនធានកំណត់
- កំណត់
CLOUDFLARED_PROTOCOL=quicឬautoប្រសិនបើអ្នកចង់កំណត់ជំនួសជម្រើសការបញ្ជូនដែលបានគ្រប់គ្រង - កំណត់
CLOUDFLARED_BINប្រសិនបើអ្នកចង់ប្រើ binarycloudflaredដែលបានដំឡើងជាមុន ជំនួសឱ្យការទាញយកដែលបានគ្រប់គ្រង - ផ្ទាំង Cloudflare Quick Tunnel, Tailscale Funnel និង ngrok Tunnel អាចត្រូវបានបង្ហាញ ឬលាក់នៅក្នុង ការកំណត់ → រូបរាង។ ការលាក់ផ្ទាំងមួយមិនបញ្ឈប់ tunnel ដែលកំពុងដំណើរការទេ។
ភាពឆ្លាតវៃរបស់ LLM Gateway (ដំណាក់កាលទី 9)
- Semantic Cache — រក្សាទុកក្នុង cache ដោយស្វ័យប្រវត្តិនូវ response ដែលមិនមែនជា streaming និងមាន temperature=0 (រំលងដោយប្រើ
X-OmniRoute-No-Cache: true) - Request Idempotency — លុបសំណើស្ទួនក្នុងរយៈពេល 5s តាមរយៈ header
Idempotency-KeyឬX-Request-Id - ការតាមដានវឌ្ឍនភាព — ព្រឹត្តិការណ៍ SSE
event: progressដែលតម្រូវឱ្យជ្រើសប្រើ តាមរយៈ headerX-OmniRoute-Progress: true
កន្លែងសាកល្បងកម្មវិធីបកប្រែ
ចូលប្រើតាមរយៈ ផ្ទាំងគ្រប់គ្រង → កម្មវិធីបកប្រែ។ បំបាត់កំហុស និងមើលឃើញពីរបៀបដែល OmniRoute បកប្រែសំណើ API រវាងអ្នកផ្តល់សេវា។
| របៀប | គោលបំណង |
|---|---|
| កន្លែងសាកល្បង | ជ្រើសទម្រង់ប្រភព/គោលដៅ បិទភ្ជាប់សំណើ និងមើលលទ្ធផលដែលបានបកប្រែភ្លាមៗ |
| កម្មវិធីសាកល្បងការជជែក | ផ្ញើសារជជែកផ្ទាល់តាមរយៈ proxy និងពិនិត្យវដ្តសំណើ/ការឆ្លើយតបទាំងមូល |
| វេទិកាសាកល្បង | ដំណើរការការសាកល្បងជាបាច់លើបន្សំទម្រង់ជាច្រើន ដើម្បីផ្ទៀងផ្ទាត់ភាពត្រឹមត្រូវនៃការបកប្រែ |
| កម្មវិធីត្រួតពិនិត្យផ្ទាល់ | មើលការបកប្រែតាមពេលវេលាជាក់ស្ដែង នៅពេលសំណើឆ្លងកាត់ proxy |
ករណីប្រើប្រាស់៖
- បំបាត់កំហុសថាហេតុអ្វីបានជាបន្សំ client/អ្នកផ្តល់សេវាជាក់លាក់មួយបរាជ័យ
- ផ្ទៀងផ្ទាត់ថា thinking tag, tool call និង system prompt ត្រូវបានបកប្រែយ៉ាងត្រឹមត្រូវ
- ប្រៀបធៀបភាពខុសគ្នានៃទម្រង់រវាង OpenAI, Claude, Gemini និងទម្រង់ Responses API
យុទ្ធសាស្ត្របញ្ជូនសំណើ
កំណត់រចនាសម្ព័ន្ធតាមរយៈ ផ្ទាំងគ្រប់គ្រង → ការកំណត់ → ការកំណត់ផ្លូវ។ ផ្ទាំងគ្រប់គ្រងបង្ហាញយុទ្ធសាស្ត្រចំនួនប្រាំមួយដែលប្រើញឹកញាប់បំផុត។ បន្សំ និងកម្មវិធីកំណត់ផ្លូវស្វ័យប្រវត្តិ គាំទ្រយុទ្ធសាស្ត្រជាច្រើនទៀតនៅផ្នែកខាងក្នុង។
យុទ្ធសាស្ត្រដែលអាចមើលឃើញក្នុងផ្ទាំងគ្រប់គ្រង (ការកំណត់ផ្លូវកម្រិតគណនី):
| យុទ្ធសាស្ត្រ | សេចក្ដីពិពណ៌នា |
|---|---|
| បំពេញគណនីដំបូងជាមុន | ប្រើគណនីតាមលំដាប់អាទិភាព — គណនីចម្បងដោះស្រាយសំណើទាំងអស់ រហូតដល់មិនអាចប្រើបាន |
| ប្ដូរវេនជុំគ្នា | ប្ដូរវេនតាមគណនីទាំងអស់ ដោយមានដែនកំណត់ភាពជាប់លាប់ដែលអាចកំណត់បាន (លំនាំដើម៖ 3 ការហៅក្នុងមួយគណនី) |
| P2C (ជម្រើសពីរក្នុងចំណោមពីរ) | ជ្រើសគណនីចៃដន្យ 2 ហើយកំណត់ផ្លូវទៅគណនីដែលមានស្ថានភាពល្អជាង — ធ្វើតុល្យកម្មបន្ទុកដោយគិតគូរអំពីស្ថានភាព |
| ចៃដន្យ | ជ្រើសគណនីដោយចៃដន្យសម្រាប់សំណើនីមួយៗ ដោយប្រើការសាប់ Fisher-Yates |
| ប្រើប្រាស់តិចបំផុត | កំណត់ផ្លូវទៅគណនីដែលមានត្រាពេលវេលា lastUsedAt ចាស់បំផុត ដើម្បីចែកចាយចរាចរណ៍ឱ្យស្មើគ្នា |
| បង្កើនប្រសិទ្ធភាពថ្លៃដើម | កំណត់ផ្លូវទៅគណនីដែលមានតម្លៃអាទិភាពទាបបំផុត ដើម្បីបង្កើនប្រសិទ្ធភាពសម្រាប់អ្នកផ្ដល់សេវាដែលមានថ្លៃដើមទាបបំផុត |
យុទ្ធសាស្ត្របន្សំកម្រិតខ្ពស់ និងយុទ្ធសាស្ត្រស្វ័យប្រវត្តិ (អាចកំណត់រចនាសម្ព័ន្ធតាមបន្សំនីមួយៗ ឬតាមរយៈបុព្វបទ auto/* — សូមមើល AUTO-COMBO.md)៖
priority— លំដាប់តឹងរ៉ឹង មិនដែលប្ដូរវេនជុំគ្នាទេweighted— បែងចែកចរាចរណ៍តាមសមាមាត្រ ដោយផ្អែកលើទម្ងន់របស់ម៉ូដែលនីមួយៗfill-first— ប្រើម៉ូដែលទីមួយរហូតដល់ដែនកំណត់របស់វាround-robin/strict-random/randomp2c(ជម្រើសពីរក្នុងចំណោមពីរ)least-usedនិងcost-optimizedauto— កំណត់ផ្លូវដោយផ្អែកលើពិន្ទុ ក្នុងចំណោមបេក្ខភាពទាំងអស់lkgp(អ្នកផ្ដល់សេវាល្អចុងក្រោយដែលបានស្គាល់) — ភ្ជាប់ទៅអ្នកផ្ដល់សេវាដែលជោគជ័យចុងក្រោយ បន្ទាប់មកត្រឡប់ទៅប្រើច្បាប់ជំនួសcontext-optimized— ជ្រើសម៉ូដែលដែលមានបង្អួចបរិបទទំនេរធំបំផុតcontext-relay— តភ្ជាប់ម៉ូដែលបរិបទវែងជាបន្តបន្ទាប់ សម្រាប់វេនតាមដានបន្ទាប់
បឋមកថាសម័យជាប់លាប់ខាងក្រៅ
សម្រាប់ភាពជាប់លាប់នៃសម័យខាងក្រៅ (ឧទាហរណ៍ ភ្នាក់ងារ Claude Code/Codex នៅពីក្រោយប្រូកស៊ីបញ្ច្រាស) សូមផ្ញើ៖
X-Session-Id: your-session-key
OmniRoute ក៏ទទួលយក x_session_id និងត្រឡប់សោសម័យដែលមានប្រសិទ្ធភាពក្នុង X-OmniRoute-Session-Id ផងដែរ។
ប្រសិនបើអ្នកប្រើ Nginx និងផ្ញើបឋមកថាទម្រង់សញ្ញាគូសក្រោម សូមបើក៖
underscores_in_headers on;
ឈ្មោះក្លែងក្លាយម៉ូដែលដែលមានតួអក្សរជំនួស
បង្កើតលំនាំតួអក្សរជំនួស ដើម្បីផ្គូផ្គងឈ្មោះម៉ូដែលឡើងវិញ៖
លំនាំ៖ claude-sonnet-* → គោលដៅ៖ cc/claude-sonnet-4-6
លំនាំ៖ gpt-* → គោលដៅ៖ gh/gpt-5.3-codex
តួអក្សរជំនួសគាំទ្រ * (តួអក្សរណាមួយ) និង ? (តួអក្សរតែមួយ)។
ខ្សែសង្វាក់ជំនួស
កំណត់ខ្សែសង្វាក់ជំនួសសកល ដែលអនុវត្តចំពោះសំណើទាំងអស់៖
ខ្សែសង្វាក់៖ production-fallback
1. cc/claude-opus-4-7
2. gh/gpt-5.3-codex
3. glm/glm-4.7
ភាពធន់ និងឧបករណ៍ផ្ដាច់សៀគ្វី
កំណត់រចនាសម្ព័ន្ធតាមរយៈ ផ្ទាំងគ្រប់គ្រង → ការកំណត់ → ភាពធន់។
OmniRoute អនុវត្តភាពធន់កម្រិតអ្នកផ្ដល់សេវា ដោយមានសមាសភាគចំនួនប្រាំ៖
-
ជួរសំណើ និងការកំណត់ចង្វាក់ — ការរៀបចំលំហូរសំណើកម្រិតប្រព័ន្ធ៖
- សំណើក្នុងមួយនាទី (RPM) — ចំនួនសំណើអតិបរមាក្នុងមួយនាទី សម្រាប់គណនីនីមួយៗ
- ពេលវេលាអប្បបរមារវាងសំណើ — ចន្លោះអប្បបរមាគិតជាមិល្លីវិនាទីរវាងសំណើ
- សំណើដំណាលគ្នាអតិបរមា — ចំនួនសំណើដំណាលគ្នាអតិបរមាសម្រាប់គណនីនីមួយៗ
-
រយៈពេលរង់ចាំការតភ្ជាប់ — ការកំណត់រចនាសម្ព័ន្ធតាមប្រភេទការផ្ទៀងផ្ទាត់ សម្រាប់ការតភ្ជាប់តែមួយ បន្ទាប់ពីការបរាជ័យដែលអាចសាកល្បងម្ដងទៀត៖
- រយៈពេលរង់ចាំមូលដ្ឋាន — ចន្លោះពេលរង់ចាំលំនាំដើម សម្រាប់ការបរាជ័យពីប្រភពខាងលើដែលអាចសាកល្បងម្ដងទៀត
- ប្រើព័ត៌មានណែនាំអំពីការសាកល្បងម្ដងទៀតពីប្រភពខាងលើ — គោរពតាម
Retry-Afterដែលមានសុពលភាព ឬព័ត៌មានណែនាំអំពីការកំណត់ឡើងវិញ នៅពេលមានផ្ដល់ជូន - ជំហានពន្យារពេលអតិបរមា — កម្រិតពន្យារពេលកើនទ្វេគុណអតិបរមា សម្រាប់ការបរាជ័យកើតឡើងដដែលៗ
-
ឧបករណ៍ផ្ដាច់សៀគ្វីអ្នកផ្ដល់សេវា — តាមដានការបរាជ័យពីដើមដល់ចប់របស់អ្នកផ្ដល់សេវា សម្គាល់អ្នកផ្ដល់សេវាថាមានស្ថានភាពធ្លាក់ចុះនៅកម្រិតព្រមានដែលបានកំណត់ និងបើកឧបករណ៍ផ្ដាច់ នៅពេលដល់កម្រិតបរាជ័យដែលបានកំណត់៖
- កម្រិតភាពធ្លាក់ចុះ — ចំនួនការបរាជ័យជាប់ៗគ្នារបស់អ្នកផ្ដល់សេវា មុនពេលចូលទៅស្ថានភាព
DEGRADED - កម្រិតបរាជ័យ — ចំនួនការបរាជ័យជាប់ៗគ្នារបស់អ្នកផ្ដល់សេវា មុនពេលចូលទៅស្ថានភាព
OPEN - ពេលវេលាផុតកំណត់សម្រាប់ការកំណត់ឡើងវិញ — ចន្លោះពេលមុនពេលសាកល្បងអ្នកផ្ដល់សេវាម្ដងទៀត
- CLOSED (មានស្ថានភាពល្អ) — សំណើដំណើរការជាធម្មតា
- DEGRADED — សំណើនៅតែដំណើរការ ខណៈដែលការបរាជ័យកើនឡើងត្រូវបានតាមដាន
- OPEN — អ្នកផ្ដល់សេវាត្រូវបានទប់ស្កាត់ជាបណ្ដោះអាសន្ន បន្ទាប់ពីការបរាជ័យកើតឡើងដដែលៗ
- HALF_OPEN — កំពុងសាកល្បងថាតើអ្នកផ្ដល់សេវាបានស្ដារឡើងវិញឬអត់
ដែនកំណត់អត្រា
429ដែលមានវិសាលភាពត្រឹមការតភ្ជាប់ នៅតែស្ថិតក្នុង រយៈពេលរង់ចាំការតភ្ជាប់ ហើយមិនត្រូវបានរាប់បញ្ចូលក្នុងឧបករណ៍ផ្ដាច់សៀគ្វីអ្នកផ្ដល់សេវាទេ។ស្ថានភាពពេលដំណើរការរបស់ឧបករណ៍ផ្ដាច់សៀគ្វីអ្នកផ្ដល់សេវា ត្រូវបានបង្ហាញតែនៅលើ ផ្ទាំងគ្រប់គ្រង → ស្ថានភាព ប៉ុណ្ណោះ។
- កម្រិតភាពធ្លាក់ចុះ — ចំនួនការបរាជ័យជាប់ៗគ្នារបស់អ្នកផ្ដល់សេវា មុនពេលចូលទៅស្ថានភាព
-
រង់ចាំរយៈពេលត្រជាក់ — ប្រសិនបើការតភ្ជាប់បេក្ខភាពទាំងអស់កំពុងស្ថិតក្នុងរយៈពេលរង់ចាំរួចហើយ OmniRoute អាចរង់ចាំរហូតដល់រយៈពេលរង់ចាំឆាប់បំផុតបានបញ្ចប់ ហើយសាកល្បងសំណើអតិថិជនដដែលម្ដងទៀតដោយស្វ័យប្រវត្តិ។
-
ការរកឃើញដែនកំណត់អត្រាដោយស្វ័យប្រវត្តិ — នៅពេលអ្នកផ្ដល់សេវាប្រភពខាងលើត្រឡប់ចន្លោះពេលរង់ចាំជាក់លាក់ ព័ត៌មានណែនាំទាំងនោះនឹងជំនួសរយៈពេលរង់ចាំការតភ្ជាប់មូលដ្ឋាន ប្រសិនបើបានបើកការកំណត់នេះ។
គន្លឹះសម្រាប់អ្នកជំនាញ៖ ប្រើទំព័រ ស្ថានភាព ដើម្បីត្រួតពិនិត្យ និងកំណត់ឧបករណ៍ផ្ដាច់សៀគ្វីអ្នកផ្ដល់សេវាដែលកំពុងដំណើរការឡើងវិញ បន្ទាប់ពីមានការដាច់សេវា។ ទំព័រភាពធន់គ្រាន់តែផ្លាស់ប្ដូរការកំណត់រចនាសម្ព័ន្ធប៉ុណ្ណោះ។
ការនាំចេញ / នាំចូលមូលដ្ឋានទិន្នន័យ
គ្រប់គ្រងការបម្រុងទុកមូលដ្ឋានទិន្នន័យក្នុង ផ្ទាំងគ្រប់គ្រង → ការកំណត់ → ប្រព័ន្ធ និងការផ្ទុក។
| សកម្មភាព | ការពិពណ៌នា |
|---|---|
| នាំចេញមូលដ្ឋានទិន្នន័យ | ទាញយកមូលដ្ឋានទិន្នន័យ SQLite បច្ចុប្បន្នជាឯកសារ .sqlite |
| នាំចេញទាំងអស់ (.tar.gz) | ទាញយកប័ណ្ណសារបម្រុងទុកពេញលេញ ដែលរួមមាន៖ មូលដ្ឋានទិន្នន័យ ការកំណត់ combos ការតភ្ជាប់អ្នកផ្តល់សេវា (មិនរួមបញ្ចូលព័ត៌មានសម្ងាត់) និងទិន្នន័យមេតារបស់ API key |
| នាំចូលមូលដ្ឋានទិន្នន័យ | ផ្ទុកឡើងឯកសារ .sqlite ដើម្បីជំនួសមូលដ្ឋានទិន្នន័យបច្ចុប្បន្ន។ ការបម្រុងទុកមុននាំចូលត្រូវបានបង្កើតដោយស្វ័យប្រវត្តិ លុះត្រាតែ DISABLE_SQLITE_AUTO_BACKUP=true |
# API៖ នាំចេញមូលដ្ឋានទិន្នន័យ
curl -o backup.sqlite http://localhost:20128/api/db-backups/export
# API៖ នាំចេញទាំងអស់ (ប័ណ្ណសារពេញលេញ)
curl -o backup.tar.gz http://localhost:20128/api/db-backups/exportAll
# API៖ នាំចូលមូលដ្ឋានទិន្នន័យ
curl -X POST http://localhost:20128/api/db-backups/import \
-F "file=@backup.sqlite"
ការផ្ទៀងផ្ទាត់ការនាំចូល៖ ឯកសារដែលបាននាំចូលត្រូវបានផ្ទៀងផ្ទាត់ភាពត្រឹមត្រូវ (ការត្រួតពិនិត្យ SQLite pragma) តារាងចាំបាច់ (provider_connections, provider_nodes, combos, api_keys) និងទំហំ (អតិបរមា 100MB)។
ករណីប្រើប្រាស់៖
- ផ្ទេរ OmniRoute រវាងម៉ាស៊ីន
- បង្កើតការបម្រុងទុកខាងក្រៅសម្រាប់ការស្ដារឡើងវិញក្រោយគ្រោះមហន្តរាយ
- ចែករំលែកការកំណត់រចនាសម្ព័ន្ធរវាងសមាជិកក្រុម (នាំចេញទាំងអស់ → ចែករំលែកប័ណ្ណសារ)
ផ្ទាំងគ្រប់គ្រងការកំណត់
ទំព័រការកំណត់ត្រូវបានរៀបចំជា 7 ផ្ទាំង ដើម្បីងាយស្រួលរុករក៖
| ផ្ទាំង | មាតិកា |
|---|---|
| ទូទៅ | ឧបករណ៍ផ្ទុកទិន្នន័យប្រព័ន្ធ ឥរិយាបថលំនាំដើម និងភាពមើលឃើញនៃ Endpoint tunnel |
| រូបរាង | ការគ្រប់គ្រងស្បែក (ភ្លឺ/ងងឹត/ប្រព័ន្ធ) ភាពមើលឃើញរបស់របារចំហៀង និងប៊ូតុងបិទបើកផ្ទាំងសម្រាប់កាត Cloudflare/Tailscale/ngrok tunnel |
| AI | ថវិកាសម្រាប់ការគិត (បញ្ជូនបន្ត / ដកចេញដោយស្វ័យប្រវត្តិ / ផ្ទាល់ខ្លួន / សម្របខ្លួន — សូមមើល THINKING_BUDGET.md) system prompt សកល និងស្ថិតិ prompt cache |
| សុវត្ថិភាព | ការកំណត់ការចូលប្រើ/ពាក្យសម្ងាត់ ការគ្រប់គ្រងការចូលប្រើតាម IP ការផ្ទៀងផ្ទាត់ API សម្រាប់ /models ការទប់ស្កាត់អ្នកផ្តល់សេវា និងរបាំងការពារ prompt-injection |
| ការកំណត់ផ្លូវ | យុទ្ធសាស្ត្រកំណត់ផ្លូវសកល (បំពេញមុន / Round Robin / P2C / ចៃដន្យ / ប្រើតិចបំផុត / បង្កើនប្រសិទ្ធភាពចំណាយ) ឈ្មោះក្លែងក្លាយ wildcard របស់ម៉ូដែល ខ្សែសង្វាក់ fallback និងលំនាំដើមរបស់ combo |
| ភាពធន់ | ជួរសំណើ រយៈពេលសម្រាកការតភ្ជាប់ ការកំណត់រចនាសម្ព័ន្ធ provider breaker និងឥរិយាបថរង់ចាំឱ្យរយៈពេលសម្រាកបញ្ចប់ |
| កម្រិតខ្ពស់ | ការកំណត់រចនាសម្ព័ន្ធ proxy សកល (HTTP/SOCKS5) និងការកំណត់ជំនួស proxy សម្រាប់អ្នកផ្តល់សេវានីមួយៗ |
ផ្នែកទូទៅលែងបង្ហាញស្ទួននូវកំណត់ត្រា និងកំណត់សម្គាល់ cache ដែលអាចបានតែអានទៀតហើយ។ ការកំណត់រយៈពេលរក្សាទុក និង
ការបង្កើនប្រសិទ្ធភាពមូលដ្ឋានទិន្នន័យត្រូវបានរក្សាទុកតាមរយៈ /api/settings/database; ការសម្អាត cache ដោយដៃប្រើ
DELETE /api/cache។ ចំនួនអតិបរមានៃជួរដេកក្នុងកំណត់ត្រាសំណើ និង proxy ត្រូវបានគ្រប់គ្រងដោយ
CALL_LOGS_TABLE_MAX_ROWS និង PROXY_LOGS_TABLE_MAX_ROWS។
ការគ្រប់គ្រងថ្លៃចំណាយ និងថវិកា
ចូលប្រើតាមរយៈ ផ្ទាំងគ្រប់គ្រង → ថ្លៃចំណាយ។
| ផ្ទាំង | គោលបំណង |
|---|---|
| ថវិកា | កំណត់ដែនកំណត់ចំណាយសម្រាប់ API key នីមួយៗ ដោយមានថវិកាប្រចាំថ្ងៃ/ប្រចាំសប្ដាហ៍/ប្រចាំខែ និងការតាមដានក្នុងពេលជាក់ស្ដែង |
| តម្លៃ | មើល និងកែសម្រួលធាតុតម្លៃរបស់ម៉ូដែល — ថ្លៃចំណាយក្នុងមួយ 1K input/output tokens សម្រាប់អ្នកផ្តល់សេវានីមួយៗ |
# API៖ កំណត់ថវិកា
curl -X POST http://localhost:20128/api/usage/budget \
-H "Content-Type: application/json" \
-d '{"keyId": "key-123", "limit": 50.00, "period": "monthly"}'
# API៖ ទទួលយកស្ថានភាពថវិកាបច្ចុប្បន្ន
curl http://localhost:20128/api/usage/budget
ការតាមដានថ្លៃចំណាយ៖ រាល់សំណើកត់ត្រាការប្រើប្រាស់ token និងគណនាថ្លៃចំណាយដោយប្រើតារាងតម្លៃ។ មើលការបែងចែកលម្អិតនៅក្នុង ផ្ទាំងគ្រប់គ្រង → ការប្រើប្រាស់ តាមអ្នកផ្តល់សេវា ម៉ូដែល និង API key។
ការបម្លែងសំឡេងទៅជាអត្ថបទ
OmniRoute គាំទ្រការបម្លែងសំឡេងទៅជាអត្ថបទតាមរយៈ endpoint ដែលឆបគ្នាជាមួយ OpenAI៖
POST /v1/audio/transcriptions
Authorization: Bearer your-api-key
Content-Type: multipart/form-data
# ឧទាហរណ៍ជាមួយ curl
curl -X POST http://localhost:20128/v1/audio/transcriptions \
-H "Authorization: Bearer your-api-key" \
-F "file=@audio.mp3" \
-F "model=openai/whisper-1"
deepgram/nova-3 គឺជាផ្លូវដើមរបស់ Deepgram ហើយត្រូវការ Deepgram API key។
ប្រសិនបើមានតែ OpenRouter ប៉ុណ្ណោះដែលត្រូវបានកំណត់រចនាសម្ព័ន្ធ សូមប្រើ openrouter/deepgram/nova-3។
អ្នកផ្តល់សេវា ការបម្លែងសំឡេងទៅជាអត្ថបទ (ការចម្លងសំឡេង)៖
openai/(ឆបគ្នាជាមួយ whisper)groq/(Groq Whisper Turbo)deepgram/(ត្រកូល Nova)assemblyai/nvidia/(Parakeet, Canary)huggingface/(កំណែផ្សេងៗនៃ whisper)qwen/
អ្នកផ្តល់សេវា ការបម្លែងអត្ថបទទៅជាសំឡេង (POST /v1/audio/speech)៖
openai/(tts-1, tts-1-hd)hyperbolic/deepgram/(Aura)nvidia/(Magpie TTS)elevenlabs/huggingface/inworld/cartesia/playht/kie/aws-polly/xiaomi-mimo/coqui/,tortoise/qwen/
ទ្រង់ទ្រាយអូឌីយ៉ូដែលគាំទ្រសម្រាប់ការចម្លងសំឡេង៖ mp3, wav, m4a, flac, ogg, webm។ ទ្រង់ទ្រាយលទ្ធផល TTS អាស្រ័យលើអ្នកផ្តល់សេវា (mp3, wav, opus, pcm, mulaw)។
យុទ្ធសាស្ត្រតុល្យភាព Combo
កំណត់រចនាសម្ព័ន្ធតុល្យភាពសម្រាប់ combo នីមួយៗនៅក្នុង ផ្ទាំងគ្រប់គ្រង → Combos → បង្កើត/កែសម្រួល → យុទ្ធសាស្ត្រ។
| យុទ្ធសាស្ត្រ | ការពិពណ៌នា |
|---|---|
| Round-Robin | ប្តូរវេនឆ្លងកាត់ម៉ូដែលតាមលំដាប់ |
| Priority | តែងតែសាកល្បងម៉ូដែលទីមួយជាមុន ហើយប្តូរទៅម៉ូដែលបម្រុងតែក្នុងករណីមានកំហុសប៉ុណ្ណោះ |
| Random | ជ្រើសរើសម៉ូដែលដោយចៃដន្យពី combo សម្រាប់សំណើនីមួយៗ |
| Weighted | បញ្ជូនតាមសមាមាត្រដោយផ្អែកលើទម្ងន់ដែលបានកំណត់សម្រាប់ម៉ូដែលនីមួយៗ |
| Least-Used | បញ្ជូនទៅម៉ូដែលដែលមានសំណើថ្មីៗតិចបំផុត (ប្រើម៉ែត្រវាស់វែងរបស់ combo) |
| Cost-Optimized | បញ្ជូនទៅម៉ូដែលដែលមានតម្លៃថោកបំផុត និងអាចប្រើបាន (ប្រើតារាងតម្លៃ) |
តម្លៃលំនាំដើមសកលរបស់ combo អាចកំណត់បាននៅក្នុង Dashboard → Settings → Routing → Combo Defaults។ តាមលំនាំដើម ពេលអស់កំណត់របស់គោលដៅ combo ទទួលបន្តពីពេលអស់កំណត់របស់សំណើបច្ចុប្បន្ន។ ប្រើ Target timeout (seconds) លើតម្លៃលំនាំដើមរបស់ combo ឬលើ combo នីមួយៗ តែនៅពេលដែលចង់ឱ្យដែនកំណត់ខ្លីជាងសម្រាប់គោលដៅនីមួយៗ បង្កឱ្យមានការប្តូរទៅគោលដៅបម្រុងបានលឿនជាងមុន។
ការបង្កើនប្រសិទ្ធភាព combo ដែលគ្មានភាពយឺតយ៉ាវ តម្រូវឱ្យអ្នកជ្រើសរើសបើក។ ទុកឱ្យ Zero-latency optimizations បិទ ដើម្បី ទប់ស្កាត់មុខងារពាក់ព័ន្ធនឹងភាពយឺតយ៉ាវទាំងនេះពីការប្រជែងជាមួយគោលដៅបម្រុង ការរំលងគោលដៅដោយផ្អែកលើប្រវត្តិ TTFT ឬការបង្រួមសំណើបម្រុង។ ការបើកវាអនុញ្ញាតឱ្យការបញ្ជូនសំណើបន្ថែមដែលបានកំណត់ ការរំលងដោយព្យាករណ៍ TTFT និងការបង្រួមការប្តូរទៅគោលដៅបម្រុងជាមុន ផ្លាស់ប្តូរភាពស្មោះត្រង់នៃការបញ្ជូន/សំណើ ដើម្បីកាត់បន្ថយ ភាពយឺតយ៉ាវនៅផ្នែកចុង។
បិទ Reasoning token buffer នៅពេលដែលអ្នកផ្តល់សេវាខាងដើមទាមទារដែនកំណត់
max_tokens / maxOutputTokens យ៉ាងតឹងរ៉ឹង។ នៅពេលបើក ការបញ្ជូន combo បន្ថែមតែទំហំបន្ថែមសម្រាប់ម៉ូដែល reasoning
ចំពោះម៉ូដែលដែលមានកម្រិតអតិបរមាលទ្ធផលដែលបានដឹងប៉ុណ្ណោះ ហើយរក្សាដែនកំណត់ token របស់ client ឱ្យនៅដដែល នៅពេលដែល
តម្លៃ buffer ដែលមានសុវត្ថិភាពនឹងលើសកម្រិតអតិបរមានោះ។ ប្រសិនបើដែនកំណត់របស់ client លើសកម្រិតអតិបរមាដែលបានដឹងរួចហើយ
OmniRoute នឹងកាត់បន្ថយវាមកត្រឹមកម្រិតអតិបរមានោះ មុនពេលផ្ញើសំណើទៅខាងដើម។
ផ្ទាំងព័ត៌មានសុខភាពប្រព័ន្ធ
ចូលប្រើតាមរយៈ Dashboard → Health។ ទិដ្ឋភាពទូទៅអំពីសុខភាពប្រព័ន្ធតាមពេលវេលាជាក់ស្តែង ដែលមានកាតចំនួន 6៖
| កាត | អ្វីដែលវាបង្ហាញ |
|---|---|
| System Status | រយៈពេលដំណើរការ កំណែ ការប្រើប្រាស់អង្គចងចាំ និងថតទិន្នន័យ |
| Provider Health | ស្ថានភាពពេលដំណើរការរបស់ circuit breaker សកលសម្រាប់អ្នកផ្តល់សេវា |
| Rate Limits | រយៈពេលរង់ចាំនៃការតភ្ជាប់សកម្មសម្រាប់គណនីនីមួយៗ ជាមួយនឹងពេលវេលាដែលនៅសល់ |
| Active Lockouts | ការចាក់សោដែលមានវិសាលភាពតាមម៉ូដែល និងការដកចេញបណ្តោះអាសន្នដែលកំពុងសកម្ម |
| Signature Cache | ស្ថិតិ cache សម្រាប់ការលុបទិន្នន័យស្ទួន (key សកម្ម និងអត្រា hit) |
| Latency Telemetry | ការបូកសរុបភាពយឺតយ៉ាវ p50/p95/p99 សម្រាប់អ្នកផ្តល់សេវានីមួយៗ |
គន្លឹះអ្នកជំនាញ៖ ទំព័រ Health ធ្វើឱ្យទិន្នន័យស្រស់ដោយស្វ័យប្រវត្តិរៀងរាល់ 10 វិនាទី។ ប្រើកាត circuit breaker ដើម្បីកំណត់ថាអ្នកផ្តល់សេវាណាខ្លះកំពុងជួបបញ្ហា។
🤖 ការកំណត់ផ្លូវដោយស្វ័យប្រវត្តិ (មិនបាច់កំណត់រចនាសម្ព័ន្ធ)
OmniRoute ភ្ជាប់មកជាមួយ កម្មវិធីកំណត់ផ្លូវដោយស្វ័យប្រវត្តិផ្អែកលើពិន្ទុ ដែលជ្រើសរើសម៉ូដែលល្អបំផុតសម្រាប់សំណើនីមួយៗ ក្នុងចំណោមគ្រប់អ្នកផ្តល់សេវាដែលបានភ្ជាប់ — មិនចាំបាច់ថែទាំបន្សំណាមួយឡើយ។ គ្រាន់តែផ្ញើសំណើដោយប្រើបុព្វបទ auto/* ណាមួយ ហើយ OmniRoute នឹងបង្កើតបន្សំនិម្មិតភ្លាមៗ ដោយដាក់ពិន្ទុបេក្ខភាពផ្អែកលើភាពយឺតយ៉ាវ តម្លៃ អត្រាជោគជ័យ ភាពសមស្របនៃបរិបទ ភាពស័ក្តិសមរបស់ម៉ូដែលសម្រាប់កិច្ចការ ការបរាជ័យថ្មីៗ កូតា និងស្ថានភាព circuit-breaker។
| បុព្វបទ | បង្កើនប្រសិទ្ធភាពសម្រាប់ |
|---|---|
auto |
លំនាំដើមមានតុល្យភាព (ភាពយឺតយ៉ាវ × តម្លៃ × អត្រាជោគជ័យ) |
auto/coding |
កិច្ចការសរសេរកូដ៖ ផ្តល់អាទិភាពដល់ Claude, GPT-5, GLM, Kimi, Qwen Coder និងអ្នកសរសេរកូដ DeepSeek |
auto/cheap |
តម្លៃទាបបំផុតក្នុងមួយ token និងទទួលយកភាពយឺតយ៉ាវខ្ពស់ជាងមុន |
auto/fast |
ភាពយឺតយ៉ាវទាបបំផុត ដោយមិនគិតពីតម្លៃ |
auto/offline |
អ្នកផ្តល់សេវាក្នុងម៉ាស៊ីនតែប៉ុណ្ណោះ (Ollama, vLLM, llama.cpp) — មានប្រយោជន៍សម្រាប់បរិស្ថានដែលផ្តាច់ចេញពីបណ្តាញ |
auto/smart |
ផ្តល់អាទិភាពដល់គុណភាពនៃការវែកញែក (Opus, GPT-5 xhigh, R1, GLM 5.1 reasoning) |
auto/lkgp |
"អ្នកផ្តល់សេវាដែលដំណើរការល្អចុងក្រោយ" — ភ្ជាប់ទៅអ្នកផ្តល់សេវាដែលជោគជ័យចុងក្រោយ បន្ទាប់មកត្រឡប់ទៅប្រើច្បាប់ជំនួស |
ឧទាហរណ៍៖
curl -X POST http://localhost:20128/v1/chat/completions \
-H "Authorization: Bearer $OMNIROUTE_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "auto/coding",
"messages": [{ "role": "user", "content": "Refactor this Python function" }],
"stream": true
}'
កម្មវិធីកំណត់ផ្លូវដោយស្វ័យប្រវត្តិត្រូវបានពិពណ៌នាយ៉ាងពេញលេញនៅក្នុង AUTO-COMBO.md — រួមទាំងរបៀបកែសម្រួលទម្ងន់ពិន្ទុ ដាក់អ្នកផ្តល់សេវាក្នុងបញ្ជីខ្មៅ និងពិនិត្យមើលការសម្រេចចិត្តកំណត់ផ្លូវនៅក្នុង ផ្ទាំងគ្រប់គ្រង → បន្សំស្វ័យប្រវត្តិ។
🔌 ការរួមបញ្ចូល MCP និង A2A
OmniRoute គឺជា ម៉ាស៊ីនមេ MCP (Model Context Protocol) និងជា ម៉ាស៊ីនមេ A2A (Agent-to-Agent JSON-RPC 2.0)។ IDE ឬម៉ាស៊ីនទទួលភ្នាក់ងារណាមួយដែលត្រូវគ្នាជាមួយ MCP អាចហៅឧបករណ៍ OmniRoute ដោយផ្ទាល់ — មិនចាំបាច់មាន wrapper បន្ថែមឡើយ។
មធ្យោបាយដឹកជញ្ជូន MCP
- SSE៖
http://localhost:20128/api/mcp/sse - HTTP ដែលអាចស្ទ្រីមបាន៖
http://localhost:20128/api/mcp/stream - stdio៖
omniroute --mcp(សម្រាប់កម្មវិធីជំនួយ IDE ដែលផ្តល់អាទិភាពដល់ stdio)
ភ្ជាប់ Claude Desktop
កែសម្រួល ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) ឬឯកសារដែលមានតួនាទីសមមូលនៅលើ Windows/Linux៖
{
"mcpServers": {
"omniroute": {
"command": "omniroute",
"args": ["--mcp"]
}
}
}
ភ្ជាប់ Cursor / Continue / VS Code MCP
ប្រើ URL របស់ SSE http://localhost:20128/api/mcp/sse និងសោ Bearer API ដែលបានបង្កើតនៅក្នុង ផ្ទាំងគ្រប់គ្រង → សោ API។
វិសាលភាព
បច្ចុប្បន្ន MCP កំណត់វិសាលភាពដែលមានឈ្មោះចំនួន 32។ សោ Bearer នីមួយៗអាចត្រូវបានកំណត់ឱ្យប្រើតែវិសាលភាពជាក់លាក់ — សូមមើល MCP-SERVER.md សម្រាប់បញ្ជីវិសាលភាព និងឧបករណ៍ផ្លូវការ និង A2A-SERVER.md សម្រាប់គ្រោងការណ៍ JSON-RPC។
🧠 ប្រព័ន្ធជំនាញ
OmniRoute ផ្តល់នូវ ក្របខណ្ឌជំនាញ ដែលអាចពង្រីកបាន (src/lib/skills/) ដើម្បីឱ្យភ្នាក់ងារ និង endpoint A2A អាចដំណើរការទម្រង់ការងារជាក់លាក់តាមដែន (ឧ. code-review, summarize, extract-facts, web-research)។
- ចំណុចប្រទាក់ Marketplace — រុករក និងដំឡើងជំនាញពី Dashboard → Skills
- វិសាលភាពតាម key នីមួយៗ — កំណត់ថា API key ណាខ្លះអាចហៅប្រើជំនាញណាខ្លះ
- ជំនាញផ្ទាល់ខ្លួន — ដាក់ឯកសារ TypeScript មួយក្នុង
src/lib/a2a/skills/ចុះឈ្មោះវា ហើយវានឹងអាចត្រូវបានហៅប្រើភ្លាមៗតាមរយៈ A2A
ឯកសារយោងពេញលេញ៖ SKILLS.md។
💾 ប្រព័ន្ធអង្គចងចាំ
OmniRoute រក្សាទុក អង្គចងចាំការសន្ទនារយៈពេលវែង ជាមួយការទាញយកបែបកូនកាត់៖
- SQLite FTS5 សម្រាប់ស្វែងរកតាមពាក្យគន្លឹះក្នុងវេនសន្ទនាកន្លងមក
- ឃ្លាំងវ៉ិចទ័រ Qdrant (ជាជម្រើស) សម្រាប់ការរំលឹកតាមអត្ថន័យ
- ការស្រង់យកការពិតដោយស្វ័យប្រវត្តិ — អង្គភាព ចំណូលចិត្ត និងការសម្រេចចិត្តត្រូវបានសង្ខេបបន្ទាប់ពីសម័យនីមួយៗ ហើយរក្សាទុកក្នុងតារាង
memory_facts - អង្គចងចាំត្រូវបានកំណត់វិសាលភាពតាម API key និងតាមសម័យនីមួយៗ
គ្រប់គ្រងអង្គចងចាំក្នុង Dashboard → Memory (ស្វែងរក កែសម្រួល នាំចេញ សម្អាត)។ ចំណុចប្រទាក់ HTTP (/api/memory/*) អនុញ្ញាតឱ្យភ្នាក់ងារបញ្ជូន និងសួររកការពិតតាមកម្មវិធី — សូមមើល MEMORY.md។
🔔 Webhooks
ជាវព្រឹត្តិការណ៍ OmniRoute សម្រាប់ការត្រួតពិនិត្យ និងស្វ័យប្រវត្តិកម្មតាមពេលវេលាជាក់ស្តែង។
- បង្កើត webhook ក្នុង Dashboard → Webhooks ដោយមាន URL គោលដៅ និង secret សម្រាប់ការចុះហត្ថលេខា HMAC
- ព្រឹត្តិការណ៍ដែលមាន៖
request.completed,request.failed,provider.unavailable,budget.exceeded,combo.switched,circuit_breaker.opened,circuit_breaker.closed - payload នីមួយៗរួមបញ្ចូល
X-OmniRoute-Signature(HMAC-SHA256) សម្រាប់ការផ្ទៀងផ្ទាត់ - ការព្យាយាមឡើងវិញ៖ ព្យាយាម 3 ដងជាមួយការពន្យារពេលកើនឡើងជាអិចស្ប៉ូណង់ស្យែល បន្ទាប់មកបញ្ជូនទៅជួរ dead-letter
គ្រោងការណ៍ពេញលេញមាននៅក្នុង WEBHOOKS.md។
☁️ ភ្នាក់ងារ Cloud
OmniRoute រួមបញ្ចូលជាមួយភ្នាក់ងារសរសេរកូដលើ cloud (OpenAI Codex Cloud, Devin, Jules, Antigravity) ដូច្នេះអ្នកអាចបញ្ជូនភារកិច្ចដែលដំណើរការរយៈពេលយូរពី dashboard ដូចគ្នាដែលគ្រប់គ្រងការបញ្ជូនផ្លូវក្នុងម៉ាស៊ីនរបស់អ្នក។
- បង្កើតភារកិច្ចក្នុង Dashboard → Cloud Agents ឬតាមរយៈ
POST /api/v1/agents/tasks - តាមដានស្ថានភាព កំណត់ហេតុ និងវត្ថុលទ្ធផលតាមភារកិច្ចនីមួយៗ
- ប្រើ API key ផ្ទាល់ខ្លួនរបស់អ្នកសម្រាប់ provider នីមួយៗ — ព័ត៌មានសម្ងាត់មិនដែលចាកចេញពី instance របស់ OmniRoute ទេ
ឯកសារយោងពេញលេញ៖ CLOUD_AGENT.md។
🛠️ ការគ្រប់គ្រងតាមកម្មវិធី
អ្នកអាចគ្រប់គ្រងធនធាន OmniRoute ទាំងអស់ (providers, combos, keys, settings) តាមរយៈ HTTP ដោយប្រើ Bearer key ដែលមានវិសាលភាព manage។
បង្កើត key ក្នុង Dashboard → API Keys → New Key → Scope: manage បន្ទាប់មក៖
# រាយបញ្ជី providers
curl http://localhost:20128/api/providers \
-H "Authorization: Bearer $OMNIROUTE_MANAGE_KEY"
# បន្ថែមការតភ្ជាប់ provider
curl -X POST http://localhost:20128/api/providers \
-H "Authorization: Bearer $OMNIROUTE_MANAGE_KEY" \
-H "Content-Type: application/json" \
-d '{ "provider": "openai", "apiKey": "sk-...", "name": "main" }'
# បង្កើត combo
curl -X POST http://localhost:20128/api/combos \
-H "Authorization: Bearer $OMNIROUTE_MANAGE_KEY" \
-H "Content-Type: application/json" \
-d '{ "name": "premium", "strategy": "priority", "models": [{ "model": "cc/claude-opus-4-7" }, { "model": "glm/glm-5.1" }] }'
# រាយបញ្ជី/បង្កើត API keys
curl http://localhost:20128/api/keys -H "Authorization: Bearer $OMNIROUTE_MANAGE_KEY"
curl -X POST http://localhost:20128/api/keys -H "Authorization: Bearer $OMNIROUTE_MANAGE_KEY" \
-d '{ "name": "ci-bot", "scopes": ["chat"] }'
សូមមើល API_REFERENCE.md សម្រាប់កាតាឡុក endpoint ពេញលេញ និងគ្រោងការណ៍ request/response។
💻 CLI ផ្ទៃក្នុង
OmniRoute ភ្ជាប់មកជាមួយ CLI ផ្ទៃក្នុង (omniroute …) សម្រាប់ការដំឡើង ការធ្វើរោគវិនិច្ឆ័យ និងការគ្រប់គ្រងពេលដំណើរការ។ វាដាច់ដោយឡែកពីទំព័រ "CLI Tools" នៅក្នុងផ្ទាំងគ្រប់គ្រង ដែលកំណត់រចនាសម្ព័ន្ធ CLI របស់ភាគីទីបី (Claude Code, Cursor, Codex, Cline, …) ដើម្បីឱ្យពួកវាអាចទាក់ទងជាមួយ OmniRoute បាន។
omniroute setup # អ្នកជំនួយការអន្តរកម្ម (ពាក្យសម្ងាត់ អ្នកផ្តល់សេវា បន្សំ)
omniroute setup --non-interactive # សមស្របសម្រាប់ CI
omniroute doctor # ការធ្វើរោគវិនិច្ឆ័យសុខភាព (ថតទិន្នន័យ DB អ្នកផ្តល់សេវា ច្រក)
omniroute providers available # រាយបញ្ជីអ្នកផ្តល់សេវាដែលគាំទ្រ
omniroute providers list # រាយបញ្ជីការតភ្ជាប់ដែលបានកំណត់រចនាសម្ព័ន្ធ
omniroute providers test <id> # សាកល្បងការតភ្ជាប់អ្នកផ្តល់សេវាដោយផ្ទាល់
omniroute combos list # រាយបញ្ជីបន្សំ
omniroute combos switch <name> # កំណត់បន្សំលំនាំដើម
omniroute models # រាយបញ្ជីម៉ូដែលដែលមាន (--json, --search)
omniroute keys add | list | remove # គ្រប់គ្រង API key ពីស្ថានីយ
omniroute backup # ថតចម្លងស្ថានភាពរចនាសម្ព័ន្ធ + DB
omniroute restore [<timestamp>] # ស្ដារពីរូបថតចម្លងស្ថានភាព
omniroute health # ព័ត៌មានសុខភាពលម្អិត (ឧបករណ៍ផ្ដាច់ cache អង្គចងចាំ)
omniroute quota # ការប្រើប្រាស់កូតារបស់អ្នកផ្តល់សេវា
omniroute mcp status # ស្ថានភាពម៉ាស៊ីនមេ MCP
omniroute a2a status # ស្ថានភាពម៉ាស៊ីនមេ A2A
omniroute tunnel list|create|stop # ផ្លូវរូង Cloudflare/Tailscale/ngrok
omniroute reset-password # កំណត់ពាក្យសម្ងាត់អ្នកគ្រប់គ្រងឡើងវិញ
omniroute --mcp # ចាប់ផ្ដើមម៉ាស៊ីនមេ MCP តាម stdio
omniroute --port 3000 # ចាប់ផ្ដើមម៉ាស៊ីនមេលើច្រកផ្ទាល់ខ្លួន
គន្លឹះ៖ ប្រើ omniroute doctor --json ជាមួយឧបករណ៍ត្រួតពិនិត្យរបស់អ្នក ដើម្បីជូនដំណឹងអំពីការតភ្ជាប់អ្នកផ្តល់សេវាដែលមានបញ្ហា។
🖥️ កម្មវិធីកុំព្យូទ័រលើតុ (Electron)
OmniRoute មានជាកម្មវិធីកុំព្យូទ័រលើតុដើមសម្រាប់ Windows, macOS និង Linux។
ការដំឡើង
# ពីថត electron៖
cd electron
npm install
# របៀបអភិវឌ្ឍន៍ (ភ្ជាប់ទៅម៉ាស៊ីនមេអភិវឌ្ឍន៍ Next.js ដែលកំពុងដំណើរការ)៖
npm run dev
# របៀបផលិតកម្ម (ប្រើបណ្ដុំឯករាជ្យ)៖
npm start
ការបង្កើតកម្មវិធីដំឡើង
cd electron
npm run build # វេទិកាបច្ចុប្បន្ន
npm run build:win # Windows (.exe NSIS)
npm run build:mac # macOS (.dmg universal)
npm run build:linux # Linux (.AppImage)
លទ្ធផល → electron/dist-electron/
មុខងារសំខាន់ៗ
| មុខងារ | ការពិពណ៌នា |
|---|---|
| ភាពរួចរាល់របស់ម៉ាស៊ីនមេ | ស្ទង់ពិនិត្យម៉ាស៊ីនមេមុនពេលបង្ហាញបង្អួច (គ្មានអេក្រង់ទទេ) |
| ថាសប្រព័ន្ធ | បង្រួមទៅថាស ប្ដូរច្រក និងបិទពីម៉ឺនុយថាស |
| ការគ្រប់គ្រងច្រក | ប្ដូរច្រកម៉ាស៊ីនមេពីថាស (ចាប់ផ្ដើមម៉ាស៊ីនមេឡើងវិញដោយស្វ័យប្រវត្តិ) |
| គោលការណ៍សុវត្ថិភាពមាតិកា | CSP តឹងរ៉ឹងតាមរយៈបឋមកថាសម័យ |
| អង្គដំណើរការតែមួយ | អាចដំណើរការកម្មវិធីបានតែមួយអង្គក្នុងពេលតែមួយ |
| របៀបក្រៅបណ្ដាញ | ម៉ាស៊ីនមេ Next.js ដែលបានភ្ជាប់មកជាមួយអាចដំណើរការដោយគ្មានអ៊ីនធឺណិត |
អថេរបរិស្ថាន
| អថេរ | លំនាំដើម | ការពិពណ៌នា |
|---|---|---|
OMNIROUTE_PORT |
20128 |
ច្រកម៉ាស៊ីនមេ |
OMNIROUTE_MEMORY_MB |
512 |
ដែនកំណត់ heap របស់ Node.js (64–16384 MB) |
📖 ឯកសារពេញលេញ៖ electron/README.md