🌐 Languages: 🇺🇸 English · 🇪🇹 am · 🇸🇦 ar · 🇦🇿 az · 🇧🇬 bg · 🇧🇩 bn · 🇧🇦 bs · 🇨🇿 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
🌐 Languages: 🇺🇸 English · 🇪🇹 am · 🇸🇦 ar · 🇦🇿 az · 🇧🇬 bg · 🇧🇩 bn · 🇧🇦 bs · 🇨🇿 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
មគ្គុទ្ទេសក៍ពេញលេញសម្រាប់កំណត់រចនាសម្ព័ន្ធអ្នកផ្តល់សេវា បង្កើតបន្សំ រួមបញ្ចូលឧបករណ៍ 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 ឥតគិតថ្លៃ |
បញ្ហា៖ កូតាផុតកំណត់ដោយមិនបានប្រើ និងជួបដែនកំណត់អត្រាក្នុងអំឡុងពេលសរសេរកូដខ្លាំង
បន្សំ៖ "maximize-claude"
1. cc/claude-opus-4-7 (ប្រើការជាវឱ្យអស់លទ្ធភាព)
2. glm/glm-4.7 (ជម្រើសបម្រុងតម្លៃទាប នៅពេលកូតាអស់)
3. if/qwen3.8-max-preview (ជម្រើសបម្រុងបន្ទាន់ឥតគិតថ្លៃ)
តម្លៃប្រចាំខែ៖ $20 (ការជាវ) + ~$5 (ជម្រើសបម្រុង) = សរុប $25
ធៀបនឹង $20 + ការប៉ះដែនកំណត់ = ភាពធុញថប់
បញ្ហា៖ មិនមានលទ្ធភាពបង់ថ្លៃការជាវ និងត្រូវការ AI សរសេរកូដដែលអាចទុកចិត្តបាន
បន្សំ៖ "zero-cost"
1. if/kimi-k2.7-code (បានរាយថាមានការចូលប្រើឥតគិតថ្លៃ; អាចមានដែនកំណត់អត្រា)
2. kr/qwen3-coder-next (ជម្រើសបម្រុង Kiro ឥតគិតថ្លៃ)
តម្លៃប្រចាំខែ៖ $0
គុណភាព៖ ផ្ទៀងផ្ទាត់ម៉ូដែល ដែនកំណត់ ឯកជនភាព និង SLA សម្រាប់បន្ទុកការងាររបស់អ្នក
បញ្ហា៖ មានកាលកំណត់ និងមិនអាចទទួលយកពេលវេលាផ្អាកដំណើរការបាន
បន្សំ៖ "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 (ជម្រើសបម្រុង)
បញ្ហា៖ ត្រូវការជំនួយការ 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
→ ចូលតាម 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។
ផ្ទាំងគ្រប់គ្រង → អ្នកផ្តល់សេវា → ភ្ជាប់ 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
→ 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- ចុះឈ្មោះ៖ 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
- ទទួលយក API key → ផ្ទាំងគ្រប់គ្រង → បន្ថែម API Key
ប្រើ៖ minimax/MiniMax-M2.1 — គន្លឹះសម្រាប់អ្នកជំនាញ: ជម្រើសថោកបំផុតសម្រាប់ context វែង (1M tokens)!
- ជាវ៖ Moonshot AI
- ទទួលយក API key → ផ្ទាំងគ្រប់គ្រង → បន្ថែម API Key
ប្រើ៖ kimi/kimi-k2.5 — គន្លឹះសម្រាប់អ្នកជំនាញ: តម្លៃថេរ $9/ខែ សម្រាប់ 10M tokens = ថ្លៃដើមជាក់ស្តែង $0.90/1M!
- ចុះឈ្មោះ៖ Baidu AI Cloud Qianfan
- បង្កើត Qianfan API key → ផ្ទាំងគ្រប់គ្រង → បន្ថែម API Key៖ អ្នកផ្តល់សេវា៖
qianfan
ប្រើ៖ qianfan/ernie-5.1, qianfan/ernie-x1.1 ឬ ID ម៉ូដែលផ្សេងទៀតរបស់ Qianfan ដែលឆបគ្នាជាមួយ OpenAI។
អ្នកផ្តល់សេវាឥតគិតថ្លៃដែលមិនតម្រូវឱ្យផ្ទៀងផ្ទាត់អត្តសញ្ញាណ មានកុងតាក់នៅជាប់ មិនតម្រូវឱ្យផ្ទៀងផ្ទាត់អត្តសញ្ញាណ នៅលើទំព័រអ្នកផ្តល់សេវារបស់ពួកគេ។
ការបិទវានឹងបិទដំណើរការអ្នកផ្តល់សេវានោះ ដកវាចេញពីទិដ្ឋភាពដែលបានកំណត់រចនាសម្ព័ន្ធ/បង្រួមរបស់អ្នកផ្តល់សេវា និងដកម៉ូដែលរបស់វាចេញពី /v1/models។
ផ្ទាំងគ្រប់គ្រង → ភ្ជាប់ 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 → AWS Builder ID ឬ Google/GitHub → ~50 credits/ខែ
ម៉ូដែល: kr/claude-sonnet-4.5, kr/claude-haiku-4.5អ្នកអាចរៀបលំដាប់កាតបន្សំឡើងវិញដោយផ្ទាល់នៅក្នុង ផ្ទាំងគ្រប់គ្រង → បន្សំ ដោយអូសចំណុចទាញនៅលើកាតនីមួយៗ។ លំដាប់នេះត្រូវបានរក្សាទុកក្នុង SQLite ហើយត្រូវបានស្ដារឡើងវិញនៅពេលផ្ទុកម្ដងទៀត។
ផ្ទាំងគ្រប់គ្រង → បន្សំ → បង្កើតថ្មី
ឈ្មោះ៖ 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
ឈ្មោះ៖ free-combo
ម៉ូដែល៖
1. if/kimi-k2.7-code (បានរាយបញ្ជីថាអាចចូលប្រើដោយឥតគិតថ្លៃ; អាចមានដែនកំណត់ពីអ្នកផ្តល់សេវា)
2. kr/qwen3-coder-next (ជម្រើសបម្រុង Kiro ឥតគិតថ្លៃ)
តម្លៃ៖ បច្ចុប្បន្នត្រូវបានរាយបញ្ជីជា $0; លក្ខខណ្ឌ និងភាពអាចប្រើបានអាចផ្លាស់ប្តូរ
ការប្រើ 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/settings.json៖
{
"env": {
"ANTHROPIC_BASE_URL": "http://localhost:20128",
"ANTHROPIC_AUTH_TOKEN": "your-omniroute-api-key"
}
}ប្រើ endpoint ឫសដែលឆបគ្នាជាមួយ Claude នៅទីនេះ។ កុំបន្ថែម /v1 ទៅ ANTHROPIC_BASE_URL។
export OPENAI_BASE_URL="http://localhost:20128"
export OPENAI_API_KEY="your-omniroute-api-key"
codex "your prompt"កែសម្រួល ~/.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 → កំណត់រចនាសម្ព័ន្ធដោយស្វ័យប្រវត្តិ
អ្នកផ្តល់សេវា៖ ឆបគ្នាជាមួយ OpenAI
Base URL: http://localhost:20128/v1
API Key: [ពីផ្ទាំងគ្រប់គ្រង]
ម៉ូដែល៖ cc/claude-opus-4-7
npm install -g omniroute
# បង្កើតថតកំណត់រចនាសម្ព័ន្ធ
mkdir -p ~/.omniroute
# បង្កើតឯកសារ .env (សូមមើល .env.example)
cp .env.example ~/.omniroute/.env
# ចាប់ផ្តើមម៉ាស៊ីនមេ
omniroute
# ឬប្រើច្រកផ្ទាល់ខ្លួន៖
omniroute --port 3000CLI ផ្ទុក .env ដោយស្វ័យប្រវត្តិពី ~/.omniroute/.env ឬ ./.env។
ចាប់ផ្តើម 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បានដោយផ្ទាល់។
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សម្រាប់ម៉ាស៊ីនមេដែលមាន 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",
},
],
};# បង្កើត 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 អាចវេចខ្ចប់ និងដំឡើង 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 មួយផ្សេងទៀតអាចត្រូវបានបន្ថែមជាអ្នកផ្តល់សេវា ផ្ទាល់ខ្លួនដែលឆបគ្នាជាមួយ 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 ជាច្រើនដែលកំពុងដំណើរការ។
បញ្ជូនសំណើដោយផ្ទាល់ទៅកាន់អ្នកផ្តល់សេវាជាក់លាក់មួយ ដោយមានការផ្ទៀងផ្ទាត់ម៉ូដែល៖
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 សកល
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។
curl http://localhost:20128/api/models/catalogត្រឡប់ម៉ូដែលដែលបានដាក់ជាក្រុមតាមអ្នកផ្តល់សេវា ជាមួយប្រភេទ (chat, embedding, image)។
- ធ្វើសមកាលកម្មអ្នកផ្តល់សេវា combo និងការកំណត់នៅទូទាំងឧបករណ៍
- ការធ្វើសមកាលកម្មផ្ទៃខាងក្រោយដោយស្វ័យប្រវត្តិ ជាមួយ timeout + fail-fast
- នៅក្នុង production គួរប្រើ
NEXT_PUBLIC_BASE_URL/NEXT_PUBLIC_CLOUD_URLនៅផ្នែក server
- មាននៅក្នុង ផ្ទាំងគ្រប់គ្រង → 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 ដែលកំពុងដំណើរការទេ។
- 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-keyOmniRoute ក៏ទទួលយក 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 នីមួយៗនៅក្នុង ផ្ទាំងគ្រប់គ្រង → 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 — រួមទាំងរបៀបកែសម្រួលទម្ងន់ពិន្ទុ ដាក់អ្នកផ្តល់សេវាក្នុងបញ្ជីខ្មៅ និងពិនិត្យមើលការសម្រេចចិត្តកំណត់ផ្លូវនៅក្នុង ផ្ទាំងគ្រប់គ្រង → បន្សំស្វ័យប្រវត្តិ។
OmniRoute គឺជា ម៉ាស៊ីនមេ MCP (Model Context Protocol) និងជា ម៉ាស៊ីនមេ A2A (Agent-to-Agent JSON-RPC 2.0)។ IDE ឬម៉ាស៊ីនទទួលភ្នាក់ងារណាមួយដែលត្រូវគ្នាជាមួយ MCP អាចហៅឧបករណ៍ OmniRoute ដោយផ្ទាល់ — មិនចាំបាច់មាន wrapper បន្ថែមឡើយ។
- SSE៖
http://localhost:20128/api/mcp/sse - HTTP ដែលអាចស្ទ្រីមបាន៖
http://localhost:20128/api/mcp/stream - stdio៖
omniroute --mcp(សម្រាប់កម្មវិធីជំនួយ IDE ដែលផ្តល់អាទិភាពដល់ stdio)
កែសម្រួល ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) ឬឯកសារដែលមានតួនាទីសមមូលនៅលើ Windows/Linux៖
{
"mcpServers": {
"omniroute": {
"command": "omniroute",
"args": ["--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។
ជាវព្រឹត្តិការណ៍ 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។
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។
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 ជាមួយឧបករណ៍ត្រួតពិនិត្យរបស់អ្នក ដើម្បីជូនដំណឹងអំពីការតភ្ជាប់អ្នកផ្តល់សេវាដែលមានបញ្ហា។
OmniRoute មានជាកម្មវិធីកុំព្យូទ័រលើតុដើមសម្រាប់ Windows, macOS និង Linux។
# ពីថត electron៖
cd electron
npm install
# របៀបអភិវឌ្ឍន៍ (ភ្ជាប់ទៅម៉ាស៊ីនមេអភិវឌ្ឍន៍ Next.js ដែលកំពុងដំណើរការ)៖
npm run dev
# របៀបផលិតកម្ម (ប្រើបណ្ដុំឯករាជ្យ)៖
npm startcd 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