# OmniRoute — Dashboard Features Gallery (ខ្មែរ) 🌐 **Languages:** 🇺🇸 [English](../../../../guides/FEATURES.md) · 🇪🇹 [am](../../../am/docs/guides/FEATURES.md) · 🇸🇦 [ar](../../../ar/docs/guides/FEATURES.md) · 🇦🇿 [az](../../../az/docs/guides/FEATURES.md) · 🇧🇬 [bg](../../../bg/docs/guides/FEATURES.md) · 🇧🇩 [bn](../../../bn/docs/guides/FEATURES.md) · 🇧🇦 [bs](../../../bs/docs/guides/FEATURES.md) · 🇨🇿 [cs](../../../cs/docs/guides/FEATURES.md) · 🇩🇰 [da](../../../da/docs/guides/FEATURES.md) · 🇩🇪 [de](../../../de/docs/guides/FEATURES.md) · 🇬🇷 [el](../../../el/docs/guides/FEATURES.md) · 🇪🇸 [es](../../../es/docs/guides/FEATURES.md) · 🇪🇪 [et](../../../et/docs/guides/FEATURES.md) · 🇮🇷 [fa](../../../fa/docs/guides/FEATURES.md) · 🇫🇮 [fi](../../../fi/docs/guides/FEATURES.md) · 🇫🇷 [fr](../../../fr/docs/guides/FEATURES.md) · 🇮🇪 [ga](../../../ga/docs/guides/FEATURES.md) · 🇮🇳 [gu](../../../gu/docs/guides/FEATURES.md) · 🇳🇬 [ha](../../../ha/docs/guides/FEATURES.md) · 🇮🇱 [he](../../../he/docs/guides/FEATURES.md) · 🇮🇳 [hi](../../../hi/docs/guides/FEATURES.md) · 🇭🇷 [hr](../../../hr/docs/guides/FEATURES.md) · 🇭🇺 [hu](../../../hu/docs/guides/FEATURES.md) · 🇦🇲 [hy](../../../hy/docs/guides/FEATURES.md) · 🇮🇩 [id](../../../id/docs/guides/FEATURES.md) · 🇳🇬 [ig](../../../ig/docs/guides/FEATURES.md) · 🇮🇹 [it](../../../it/docs/guides/FEATURES.md) · 🇯🇵 [ja](../../../ja/docs/guides/FEATURES.md) · 🇬🇪 [ka](../../../ka/docs/guides/FEATURES.md) · 🇮🇳 [kn](../../../kn/docs/guides/FEATURES.md) · 🇰🇷 [ko](../../../ko/docs/guides/FEATURES.md) · 🇱🇹 [lt](../../../lt/docs/guides/FEATURES.md) · 🇱🇻 [lv](../../../lv/docs/guides/FEATURES.md) · 🇮🇳 [ml](../../../ml/docs/guides/FEATURES.md) · 🇮🇳 [mr](../../../mr/docs/guides/FEATURES.md) · 🇲🇾 [ms](../../../ms/docs/guides/FEATURES.md) · 🇲🇹 [mt](../../../mt/docs/guides/FEATURES.md) · 🇲🇲 [my](../../../my/docs/guides/FEATURES.md) · 🇳🇵 [ne](../../../ne/docs/guides/FEATURES.md) · 🇳🇱 [nl](../../../nl/docs/guides/FEATURES.md) · 🇳🇴 [no](../../../no/docs/guides/FEATURES.md) · 🇮🇳 [or](../../../or/docs/guides/FEATURES.md) · 🇮🇳 [pa](../../../pa/docs/guides/FEATURES.md) · 🇵🇭 [phi](../../../phi/docs/guides/FEATURES.md) · 🇵🇱 [pl](../../../pl/docs/guides/FEATURES.md) · 🇵🇹 [pt](../../../pt/docs/guides/FEATURES.md) · 🇧🇷 [pt-BR](../../../pt-BR/docs/guides/FEATURES.md) · 🇷🇴 [ro](../../../ro/docs/guides/FEATURES.md) · 🇷🇺 [ru](../../../ru/docs/guides/FEATURES.md) · 🇱🇰 [si](../../../si/docs/guides/FEATURES.md) · 🇸🇰 [sk](../../../sk/docs/guides/FEATURES.md) · 🇸🇮 [sl](../../../sl/docs/guides/FEATURES.md) · 🇷🇸 [sr](../../../sr/docs/guides/FEATURES.md) · 🇸🇪 [sv](../../../sv/docs/guides/FEATURES.md) · 🇰🇪 [sw](../../../sw/docs/guides/FEATURES.md) · 🇮🇳 [ta](../../../ta/docs/guides/FEATURES.md) · 🇮🇳 [te](../../../te/docs/guides/FEATURES.md) · 🇹🇭 [th](../../../th/docs/guides/FEATURES.md) · 🇹🇷 [tr](../../../tr/docs/guides/FEATURES.md) · 🇺🇦 [uk-UA](../../../uk-UA/docs/guides/FEATURES.md) · 🇵🇰 [ur](../../../ur/docs/guides/FEATURES.md) · 🇺🇿 [uz](../../../uz/docs/guides/FEATURES.md) · 🇻🇳 [vi](../../../vi/docs/guides/FEATURES.md) · 🇳🇬 [yo](../../../yo/docs/guides/FEATURES.md) · 🇨🇳 [zh-CN](../../../zh-CN/docs/guides/FEATURES.md) · 🇹🇼 [zh-TW](../../../zh-TW/docs/guides/FEATURES.md) --- 🌐 **Languages:** 🇺🇸 [English](../../../../guides/FEATURES.md) · 🇪🇹 [am](../../../am/docs/guides/FEATURES.md) · 🇸🇦 [ar](../../../ar/docs/guides/FEATURES.md) · 🇦🇿 [az](../../../az/docs/guides/FEATURES.md) · 🇧🇬 [bg](../../../bg/docs/guides/FEATURES.md) · 🇧🇩 [bn](../../../bn/docs/guides/FEATURES.md) · 🇧🇦 [bs](../../../bs/docs/guides/FEATURES.md) · 🇨🇿 [cs](../../../cs/docs/guides/FEATURES.md) · 🇩🇰 [da](../../../da/docs/guides/FEATURES.md) · 🇩🇪 [de](../../../de/docs/guides/FEATURES.md) · 🇬🇷 [el](../../../el/docs/guides/FEATURES.md) · 🇪🇸 [es](../../../es/docs/guides/FEATURES.md) · 🇪🇪 [et](../../../et/docs/guides/FEATURES.md) · 🇮🇷 [fa](../../../fa/docs/guides/FEATURES.md) · 🇫🇮 [fi](../../../fi/docs/guides/FEATURES.md) · 🇫🇷 [fr](../../../fr/docs/guides/FEATURES.md) · 🇮🇪 [ga](../../../ga/docs/guides/FEATURES.md) · 🇮🇳 [gu](../../../gu/docs/guides/FEATURES.md) · 🇳🇬 [ha](../../../ha/docs/guides/FEATURES.md) · 🇮🇱 [he](../../../he/docs/guides/FEATURES.md) · 🇮🇳 [hi](../../../hi/docs/guides/FEATURES.md) · 🇭🇷 [hr](../../../hr/docs/guides/FEATURES.md) · 🇭🇺 [hu](../../../hu/docs/guides/FEATURES.md) · 🇦🇲 [hy](../../../hy/docs/guides/FEATURES.md) · 🇮🇩 [id](../../../id/docs/guides/FEATURES.md) · 🇳🇬 [ig](../../../ig/docs/guides/FEATURES.md) · 🇮🇹 [it](../../../it/docs/guides/FEATURES.md) · 🇯🇵 [ja](../../../ja/docs/guides/FEATURES.md) · 🇬🇪 [ka](../../../ka/docs/guides/FEATURES.md) · 🇮🇳 [kn](../../../kn/docs/guides/FEATURES.md) · 🇰🇷 [ko](../../../ko/docs/guides/FEATURES.md) · 🇱🇹 [lt](../../../lt/docs/guides/FEATURES.md) · 🇱🇻 [lv](../../../lv/docs/guides/FEATURES.md) · 🇮🇳 [ml](../../../ml/docs/guides/FEATURES.md) · 🇮🇳 [mr](../../../mr/docs/guides/FEATURES.md) · 🇲🇾 [ms](../../../ms/docs/guides/FEATURES.md) · 🇲🇹 [mt](../../../mt/docs/guides/FEATURES.md) · 🇲🇲 [my](../../../my/docs/guides/FEATURES.md) · 🇳🇵 [ne](../../../ne/docs/guides/FEATURES.md) · 🇳🇱 [nl](../../../nl/docs/guides/FEATURES.md) · 🇳🇴 [no](../../../no/docs/guides/FEATURES.md) · 🇮🇳 [or](../../../or/docs/guides/FEATURES.md) · 🇮🇳 [pa](../../../pa/docs/guides/FEATURES.md) · 🇵🇭 [phi](../../../phi/docs/guides/FEATURES.md) · 🇵🇱 [pl](../../../pl/docs/guides/FEATURES.md) · 🇵🇹 [pt](../../../pt/docs/guides/FEATURES.md) · 🇧🇷 [pt-BR](../../../pt-BR/docs/guides/FEATURES.md) · 🇷🇴 [ro](../../../ro/docs/guides/FEATURES.md) · 🇷🇺 [ru](../../../ru/docs/guides/FEATURES.md) · 🇱🇰 [si](../../../si/docs/guides/FEATURES.md) · 🇸🇰 [sk](../../../sk/docs/guides/FEATURES.md) · 🇸🇮 [sl](../../../sl/docs/guides/FEATURES.md) · 🇷🇸 [sr](../../../sr/docs/guides/FEATURES.md) · 🇸🇪 [sv](../../../sv/docs/guides/FEATURES.md) · 🇰🇪 [sw](../../../sw/docs/guides/FEATURES.md) · 🇮🇳 [ta](../../../ta/docs/guides/FEATURES.md) · 🇮🇳 [te](../../../te/docs/guides/FEATURES.md) · 🇹🇭 [th](../../../th/docs/guides/FEATURES.md) · 🇹🇷 [tr](../../../tr/docs/guides/FEATURES.md) · 🇺🇦 [uk-UA](../../../uk-UA/docs/guides/FEATURES.md) · 🇵🇰 [ur](../../../ur/docs/guides/FEATURES.md) · 🇺🇿 [uz](../../../uz/docs/guides/FEATURES.md) · 🇻🇳 [vi](../../../vi/docs/guides/FEATURES.md) · 🇳🇬 [yo](../../../yo/docs/guides/FEATURES.md) · 🇨🇳 [zh-CN](../../../zh-CN/docs/guides/FEATURES.md) · 🇹🇼 [zh-TW](../../../zh-TW/docs/guides/FEATURES.md) មគ្គុទ្ទេសក៍ជារូបភាពសម្រាប់គ្រប់ផ្នែកនៃផ្ទាំងគ្រប់គ្រង OmniRoute។ > 📅 **បានធ្វើបច្ចុប្បន្នភាពចុងក្រោយ:** 2026-06-28 — **v3.8.40** --- ## ✨ ចំណុចលេចធ្លោនៃ v3.8.0 វដ្ត v3.7.x → v3.8.0 បានបន្ថែមការកំណត់ផ្លូវដោយស្វ័យប្រវត្តិដោយមិនចាំបាច់កំណត់រចនាសម្ព័ន្ធ អ្នកផ្តល់សេវាថ្មីៗ លំហូរ OAuth ភាពធន់កាន់តែប្រសើរ និងបទពិសោធន៍ CLI ដែលសម្បូរបែបជាងមុនយ៉ាងច្រើន។ មុខងារសំខាន់ៗមាននៅខាងក្រោម — ព័ត៌មានលម្អិតទាំងស្រុងមាននៅផ្នែកបន្ទាប់នៃឯកសារ និងក្នុងលក្ខណៈបច្ចេកទេសដែលបានភ្ជាប់។ - 🤖 **Auto Combo / ការកំណត់ផ្លូវដោយស្វ័យប្រវត្តិដោយមិនចាំបាច់កំណត់រចនាសម្ព័ន្ធ** — ប្រើបុព្វបទ `auto/coding`, `auto/fast`, `auto/cheap`, `auto/offline`, `auto/smart`, `auto/lkgp`, `auto/chaos`។ ដំណើរការដោយម៉ាស៊ីនដាក់ពិន្ទុ 16 កត្តា និងកញ្ចប់ **mode packs** ដែលបានជ្រើសរើសយ៉ាងយកចិត្តទុកដាក់ចំនួន 6 (ship-fast, cost-saver, quality-first, offline-friendly, reliability-first, chaos-mode) - 🆕 **អ្នកផ្តល់សេវា Command Code** (#2199) — ការចុះឈ្មោះដែលគាំទ្រជាផ្លូវការ ជាមួយកាតាឡុកម៉ូដែល និងការតាមដានកូតា - 🆕 **អ្នកផ្តល់សេវា Z.AI** — អ្នកផ្តល់សេវាថ្មីក្នុងកម្រិតឥតគិតថ្លៃ ជាមួយស្លាកកូតា - 🎬 **ការពង្រីកមេឌៀ KIE** — កាតាឡុកដែលបានពង្រីក រួមទាំងម៉ូដែលបង្កើតវីដេអូ - 🔐 **ការផ្ទៀងផ្ទាត់ Devin** — Desktop នាំចូល API key របស់ Devin ដែលមានស្រាប់; CLI ប្រើព័ត៌មានសម្គាល់អត្តសញ្ញាណមូលដ្ឋានពី `devin auth login` - 🆓 **អ្នកផ្តល់សេវាឥតគិតថ្លៃថ្មីចំនួន 8** — LLM7, Lepton, UncloseAI, BazaarLink, Completions, Enally, FreeTheAi, Command Code - 🎯 **ការកំណត់ផ្លូវតាមកម្រិត W1–W4 ដែលយល់ដឹងអំពី Manifest** — manifest របស់អ្នកផ្តល់សេវាកំណត់ការជ្រើសរើសកម្រិតតាមទម្ងន់ - 🎨 **Cursor ស្មើសមត្ថភាព OpenAI ពេញលេញ** — ការហៅឧបករណ៍ ការផ្សាយជាបន្តបន្ទាប់ និងការគ្រប់គ្រងសម័យពីដើមដល់ចប់ - 📊 **ការប្រើប្រាស់គម្រោង Cursor Pro** — ទិន្នន័យកូតា និងវដ្តត្រូវបានបង្ហាញក្នុងផ្ទាំងគ្រប់គ្រងកម្រិតប្រើប្រាស់របស់អ្នកផ្តល់សេវា - ⚡ **ការបែងចែកតាមកម្រិតសេវា / វិភាគកម្រិតលឿន Codex** — មើលឃើញការប្រើប្រាស់តាមកម្រិតនីមួយៗ - 📌 **ការកំណត់ផ្លូវជាប់លាប់តាមសម័យនីមួយៗ** — សម័យ Codex ត្រូវបានភ្ជាប់ទៅគណនីដដែលរវាងវេននីមួយៗ - 🔊 **ការកែលម្អ Inworld TTS** — កាតាឡុកសំឡេង ការផ្សាយជាបន្តបន្ទាប់ និងការកែលម្អរយៈពេលឆ្លើយតប - 🔑 **ការផ្ទៀងផ្ទាត់ Kiro ដោយគ្មានចំណុចប្រទាក់ក្រាហ្វិក** — ចូលតាមឃ្លាំង SQLite មូលដ្ឋានរបស់ `kiro-cli` ដោយមិនត្រូវការកម្មវិធីរុករក - 📉 **ការត្រួតពិនិត្យកូតា និងកម្រិត DeepSeek** — ការប្រើប្រាស់ប្រចាំថ្ងៃ/ប្រចាំខែត្រូវបានបង្ហាញតាមផ្ទាំងគ្រប់គ្រង - 🔄 **យុទ្ធសាស្ត្រកំណត់ផ្លូវដែលយល់ដឹងអំពីការកំណត់ឡើងវិញ** — combo ឥឡូវនេះផ្តល់អាទិភាពដល់គណនីដែលចន្លោះកូតារបស់វានឹងកំណត់ឡើងវិញឆាប់បំផុត - ⏱️ **`fallbackDelayMs`** និង **ការរកឃើញកម្រិតឧបករណ៍ថាមវន្ត** — ការកំណត់ពេល fallback កាន់តែលម្អិត + កម្រិតចំនួនឧបករណ៍តាមអ្នកផ្តល់សេវានីមួយៗ - 🔧 **ការបន្ថយរបៀបផ្ទៃខាងក្រោយ (Responses API)** — ត្រឡប់ទៅរបៀបសមកាលកម្មជាមួយការព្រមានមានរចនាសម្ព័ន្ធ នៅពេលសេវាខាងលើមិនគាំទ្រការស្ទង់មើលផ្ទៃខាងក្រោយ - 🚦 **ការចាត់ថ្នាក់ 429 តាមអ្នកផ្តល់សេវានីមួយៗ** + ជម្រើសបិទបើក `useUpstream429BreakerHints` — ឥរិយាបថ breaker កាន់តែលម្អិត ដោយប្រើតម្រុយអំពីកម្រិតអត្រាពីសេវាខាងលើ - 🩺 **ផ្ទាំងគ្រប់គ្រងរយៈពេលផ្អាកម៉ូដែល** — តាមដានការចាក់សោតាមម៉ូដែលនីមួយៗ និងបើកដំណើរការឡើងវិញដោយដៃពី UI - 🔒 **ការរកឃើញវិញ្ញាបនបត្រ Linux សម្រាប់ MITM ដោយថាមវន្ត** — ដំណើរការលើ Debian/Ubuntu, Fedora/RHEL, Arch និង distro ផ្សេងៗ - 💻 **សំណុំការកែលម្អ CLI** — ពាក្យបញ្ជាជាង 20 រួមមាន `omniroute providers`, `omniroute combos`, `omniroute doctor`, `omniroute setup` - 🔍 **ការរកឃើញម៉ូដែល embedding របស់ Qdrant** — ការស្ទង់រកម៉ូដែល vector-store ដោយស្វ័យប្រវត្តិ - 🔑 **API Keys / Bearer keys ជាមួយវិសាលភាព `manage`** — អនុវត្តប្រតិបត្តិការរដ្ឋបាលតាមកម្មវិធីតាមរយៈ API - 🏥 **ការវិភាគសុខភាពគោលដៅ combo** + **កម្មវិធីបង្កើត combo មានរចនាសម្ព័ន្ធ** — សុខភាពតាមគោលដៅនីមួយៗ និងកម្មវិធីបង្កើត UI សម្រាប់រៀបចំជំហាន `(provider, model, connection)` - 🤝 **អ្នកផ្តល់សេវា GitLab Duo OAuth** — ចូលដោយប្រើព័ត៌មានសម្គាល់អត្តសញ្ញាណ GitLab - 🧠 **Reasoning Replay Cache** — ការរក្សាទុកដាននៃការវែកញែកបែបកូនកាត់ក្នុងអង្គចងចាំ + SQLite 📚 **ឯកសារពាក់ព័ន្ធ៖** [ក្របខណ្ឌជំនាញ](../frameworks/SKILLS.md) · [ប្រព័ន្ធអង្គចងចាំ](../frameworks/MEMORY.md) · [ភ្នាក់ងារ Cloud](../frameworks/CLOUD_AGENT.md) · [Webhooks](../frameworks/WEBHOOKS.md) · [ឃ្លាំងសម្ងាត់សម្រាប់ចាក់ឡើងវិញនូវការវែកញែក](../routing/REASONING_REPLAY.md) --- ## 🔌 អ្នកផ្តល់សេវា គ្រប់គ្រងការតភ្ជាប់ទៅអ្នកផ្តល់សេវា AI៖ អ្នកផ្តល់សេវា OAuth (Claude Code, Codex), អ្នកផ្តល់សេវាដោយប្រើ API key (Groq, DeepSeek, OpenRouter) និងអ្នកផ្តល់សេវាឥតគិតថ្លៃ (Qoder, Kiro)។ គណនី Kiro រួមបញ្ចូលការតាមដានសមតុល្យឥណទាន — ឥណទានដែលនៅសល់ ចំនួនសរុបដែលបានអនុញ្ញាត និងកាលបរិច្ឆេទបន្តថ្មី អាចមើលឃើញនៅក្នុង Dashboard → Usage។ ការតភ្ជាប់ OpenRouter អាចរក្សាទុក `preset` សម្រាប់ការតភ្ជាប់នីមួយៗនៅក្នុងការកំណត់កម្រិតខ្ពស់។ នៅពេលកំណត់ OmniRoute នឹងផ្ញើវាជាវាលសំណើកម្រិតកំពូលរបស់ OpenRouter ឧទាហរណ៍ `"preset": "email-copywriter"` លុះត្រាតែសំណើរបស់ម៉ាស៊ីនភ្ញៀវបានផ្តល់ `preset` ផ្ទាល់ខ្លួនរួចហើយ។ ![ផ្ទាំងគ្រប់គ្រងអ្នកផ្តល់សេវា](../screenshots/01-providers.png) --- ## 🎨 បន្សំ បង្កើតបន្សំកំណត់ផ្លូវម៉ូដែលជាមួយយុទ្ធសាស្ត្រសាធារណៈចំនួន 19៖ priority, weighted, round-robin, context-relay, fill-first, p2c (ជម្រើសពីរដែលមានអានុភាព), random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp (អ្នកផ្តល់សេវាដែលដំណើរការល្អចុងក្រោយ), context-optimized, cache-optimized, **fusion** (បញ្ជូនទៅកាន់ក្រុមម៉ូដែលជាច្រើនស្របពេលគ្នា បន្ទាប់មកសំយោគចម្លើយតែមួយតាមរយៈម៉ូដែលវិនិច្ឆ័យ) និង **pipeline**។ បន្សំនីមួយៗភ្ជាប់ម៉ូដែលជាច្រើនជាលំដាប់ ជាមួយការប្តូរទៅជម្រើសបម្រុងដោយស្វ័យប្រវត្តិ ព្រមទាំងរួមបញ្ចូលពុម្ពរហ័ស និងការត្រួតពិនិត្យភាពរួចរាល់។ ការកែលម្អបន្សំថ្មីៗ៖ - **កម្មវិធីបង្កើតបន្សំដែលមានរចនាសម្ព័ន្ធ** — បង្កើតជំហាននីមួយៗដោយជ្រើសរើសអ្នកផ្តល់សេវា ម៉ូដែល និងគណនី/ការតភ្ជាប់ជាក់លាក់ - **ការគាំទ្រអ្នកផ្តល់សេវាដដែលម្តងហើយម្តងទៀត** — ប្រើអ្នកផ្តល់សេវាដដែលឡើងវិញច្រើនដងក្នុងបន្សំតែមួយ ដរាបណាទុយោ `(provider, model, connection)` មានតម្លៃតែមួយគត់ - **ស្ថានភាពគោលដៅបន្សំ** — ផ្ទៃបង្ហាញទិន្នន័យវិភាគ និងស្ថានភាពឥឡូវនេះបែងចែកគោលដៅ/ជំហាននីមួយៗរបស់បន្សំ ជំនួសឱ្យការបង្រួមអ្វីៗទាំងអស់ទៅជាខ្សែអក្សរម៉ូដែល - **ការតម្រៀបថ្នាក់សមាសធាតុ** — `defaultTier -> fallbackTier` ឥឡូវនេះមានឥទ្ធិពលលើលំដាប់ប្រតិបត្តិការ/ការប្តូរទៅជម្រើសបម្រុងនៅពេលដំណើរការ សម្រាប់ជំហានបន្សំកម្រិតកំពូល - **ពុម្ពប្រអប់បញ្ចូលប្រព័ន្ធ** — `system_message` របស់បន្សំគាំទ្រនៅផ្នែកម៉ាស៊ីនមេនូវ តួជំនួស `{{MODEL_ID}}`, `{{PROVIDER_ID}}`, `{{ACCOUNT}}` និង `{{FINGERPRINT}}` ដែលត្រូវបានពង្រីកពីគោលដៅដែលបានកំណត់ផ្លូវពិតប្រាកដ ភ្លាមៗមុនពេលបញ្ជូន។ វាត្រូវបានអនុញ្ញាតតែតាមបញ្ជីកំណត់ និងមិនដំណើរការស្វ័យហៅខ្លួនឯងទេ; តួជំនួសដែលមិនស្គាល់នឹងនៅដដែល; តម្លៃទទេ នឹងពង្រីកទៅជាតម្លៃទទេ; ប្រអប់បញ្ចូលប្រព័ន្ធរបស់ម៉ាស៊ីនភ្ញៀវមិនត្រូវបានសរសេរឡើងវិញឡើយ។ `{{FINGERPRINT}}` អាចដោះស្រាយបានតែសម្រាប់អ្នកផ្តល់សេវាឥតគិតថ្លៃដែលផ្អែកលើ fingerprint និងមាន fingerprint ដែលបានខ្ទាស់ ឬ បង្វិលដោយស្វ័យប្រវត្តិប៉ុណ្ណោះ — នៅកន្លែងផ្សេងទៀត វានឹងពង្រីកទៅជាតម្លៃទទេ (ឧ. ការតភ្ជាប់ដែលមាន fingerprint តែមួយ អ្នកផ្តល់សេវាដែលមិនប្រើ fp)។ ការពង្រីកនេះគ្របដណ្តប់លើ រង្វិលជុំបញ្ជូនស្តង់ដារ round-robin និងសម័យ context-cache ដែលបានខ្ទាស់; យុទ្ធសាស្ត្រ fusion, chaos, pipeline និង nested-execute មិនទាន់ពង្រីក តួជំនួសនៅឡើយទេ។ ![ផ្ទាំងគ្រប់គ្រងបន្សំ](../screenshots/02-combos.png) --- ## 📊 ទិន្នន័យវិភាគ ទិន្នន័យវិភាគការប្រើប្រាស់ដ៏ទូលំទូលាយ ដែលរួមមានការប្រើប្រាស់ token ការប៉ាន់ស្មានថ្លៃចំណាយ ផែនទីកម្ដៅសកម្មភាព គំនូសតាងចែកចាយប្រចាំសប្តាហ៍ និងការបែងចែកតាមអ្នកផ្តល់សេវានីមួយៗ។ ![ផ្ទាំងគ្រប់គ្រងទិន្នន័យវិភាគ](../screenshots/03-analytics.png) --- ## 🏥 ស្ថានភាពប្រព័ន្ធ ការត្រួតពិនិត្យតាមពេលវេលាជាក់ស្តែង៖ រយៈពេលដំណើរការ អង្គចងចាំ កំណែ ភាគរយកម្រិត latency (p50/p95/p99) ស្ថិតិ cache ស្ថានភាព circuit breaker របស់អ្នកផ្តល់សេវា សម័យសកម្មដែលត្រូវបានតាមដាន quota និងស្ថានភាពគោលដៅបន្សំ។ ![ផ្ទាំងគ្រប់គ្រងស្ថានភាព](../screenshots/04-health.png) --- ## 🔧 កន្លែងសាកល្បងកម្មវិធីបកប្រែ របៀបចំនួនបួនសម្រាប់បំបាត់កំហុសក្នុងការបកប្រែ API៖ **កន្លែងសាកល្បង** (កម្មវិធីបម្លែងទ្រង់ទ្រាយ), **កម្មវិធីសាកល្បងការជជែក** (សំណើផ្ទាល់), **កន្លែងធ្វើតេស្ត** (ការធ្វើតេស្តជាបាច់) និង **កម្មវិធីត្រួតពិនិត្យផ្ទាល់** (ស្ទ្រីមតាមពេលវេលាជាក់ស្តែង)។ ![កន្លែងសាកល្បងកម្មវិធីបកប្រែ](../screenshots/05-translator.png) --- ## 🎮 កន្លែងសាកល្បងម៉ូដែល _(v2.0.9+)_ សាកល្បងម៉ូដែលណាមួយដោយផ្ទាល់ពីផ្ទាំងគ្រប់គ្រង។ ជ្រើសរើសអ្នកផ្តល់សេវា ម៉ូដែល និង endpoint សរសេរ prompt ដោយប្រើ Monaco Editor ស្ទ្រីមការឆ្លើយតបតាមពេលវេលាជាក់ស្តែង បញ្ឈប់នៅពាក់កណ្តាលស្ទ្រីម និងមើលរង្វាស់ពេលវេលា។ --- ## 🎨 ស្បែក _(v2.0.5+)_ ស្បែកពណ៌ដែលអាចប្ដូរតាមបំណងបានសម្រាប់ផ្ទាំងគ្រប់គ្រងទាំងមូល។ ជ្រើសរើសពីពណ៌កំណត់ជាមុនចំនួន 7 (ផ្កាថ្ម, ខៀវ, ក្រហម, បៃតង, ស្វាយ, ទឹកក្រូច, ខៀវស្រាល) ឬបង្កើតស្បែកផ្ទាល់ខ្លួនដោយជ្រើសរើសពណ៌ hex ណាមួយ។ គាំទ្ររបៀបភ្លឺ ងងឹត និងតាមប្រព័ន្ធ។ --- ## ⚙️ ការកំណត់ ផ្ទាំងការកំណត់ដ៏ទូលំទូលាយដែលមាន **7 ផ្ទាំង**៖ - **ទូទៅ** — ការផ្ទុកទិន្នន័យរបស់ប្រព័ន្ធ ការគ្រប់គ្រងទិន្នន័យបម្រុងទុក (នាំចេញ/នាំចូលមូលដ្ឋានទិន្នន័យ) - **រូបរាង** — កម្មវិធីជ្រើសរើសស្បែក (ងងឹត/ភ្លឺ/តាមប្រព័ន្ធ), ពណ៌ស្បែកកំណត់ជាមុន និងពណ៌ផ្ទាល់ខ្លួន, ភាពមើលឃើញនៃកំណត់ហេតុសុខភាព, ការគ្រប់គ្រងភាពមើលឃើញនៃធាតុរបារចំហៀង និងបន្ទាត់បំបែកក្រុម, ការគ្រប់គ្រងភាពមើលឃើញនៃ tunnel របស់ Endpoint - **AI** — មុខងារជំនួយការ AI, ការកំណត់ជាមុនសម្រាប់ការបញ្ជូនលំនាំដើម (Auto Combo `auto/coding`, `auto/fast`, `auto/cheap`, `auto/smart`), ឃ្លាំងសម្ងាត់សម្រាប់ចាក់ឡើងវិញនូវដំណើរការវែកញែក និងប៊ូតុងបិទបើកជំនាញ/អង្គចងចាំ - **សុវត្ថិភាព** — ការការពារ API endpoint, ការទប់ស្កាត់អ្នកផ្តល់សេវាផ្ទាល់ខ្លួន, ការចម្រោះ IP, ព័ត៌មានសម័យ - **ការបញ្ជូន** — ឈ្មោះជំនួសម៉ូដែល, ការបន្ថយកម្រិតភារកិច្ចផ្ទៃខាងក្រោយ, ការបញ្ជូនតាមកម្រិតដែលគិតគូរពី manifest (W1–W4), `fallbackDelayMs`, ការបញ្ជូនជាប់លាប់តាមសម័យនីមួយៗ - **ភាពធន់** — ការរក្សាទុកកម្រិតអត្រា, ការលៃតម្រូវ circuit breaker, ការបិទគណនីដែលត្រូវបានហាមឃាត់ដោយស្វ័យប្រវត្តិ, ការត្រួតពិនិត្យការផុតកំណត់របស់អ្នកផ្តល់សេវា, កម្រិតចាប់ផ្ដើមផ្ទេរបន្តរបស់ **Context Relay** និងការកំណត់រចនាសម្ព័ន្ធម៉ូដែលសង្ខេប, ការចាត់ថ្នាក់ 429 តាមអ្នកផ្តល់សេវានីមួយៗ និងប៊ូតុងបិទបើក `useUpstream429BreakerHints`, រយៈពេលផ្អាកម៉ូដែល - **កម្រិតខ្ពស់** — ការសរសេរជាន់លើការកំណត់រចនាសម្ព័ន្ធ, ប្រវត្តិសវនកម្មការកំណត់រចនាសម្ព័ន្ធ, របៀបបន្ថយកម្រិត fallback, ការបន្ថយកម្រិតរបៀបផ្ទៃខាងក្រោយសម្រាប់ Responses API ![ផ្ទាំងគ្រប់គ្រងការកំណត់](../screenshots/06-settings.png) --- ## 🔧 ឧបករណ៍ CLI ការកំណត់រចនាសម្ព័ន្ធដោយចុចតែម្តងសម្រាប់ឧបករណ៍សរសេរកូដ AI៖ Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor និង Factory Droid។ លក្ខណៈពិសេសរួមមានការអនុវត្ត/កំណត់ឡើងវិញនូវការកំណត់រចនាសម្ព័ន្ធដោយស្វ័យប្រវត្តិ, ទម្រង់ការតភ្ជាប់ និងការផ្គូផ្គងម៉ូដែល។ ![ផ្ទាំងគ្រប់គ្រងឧបករណ៍ CLI](../screenshots/07-cli-tools.png) --- ## 🤖 ភ្នាក់ងារ CLI _(v2.0.11+)_ ផ្ទាំងគ្រប់គ្រងសម្រាប់ស្វែងរក និងគ្រប់គ្រងភ្នាក់ងារ CLI។ បង្ហាញជាក្រឡាចត្រង្គនូវភ្នាក់ងារដែលភ្ជាប់មកជាមួយស្រាប់ចំនួន 16 (Codex, Claude, Goose, OpenClaw, Aider, OpenCode, Cline, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp, **Windsurf**, **Devin CLI**, **Kimi Coding**, **Command Code**) ជាមួយ៖ - **ស្ថានភាពដំឡើង** — បានដំឡើង / រកមិនឃើញ ដោយមានការរកឃើញកំណែ - **ស្លាកសម្គាល់ប្រូតូកូល** — stdio, HTTP ជាដើម។ - **ភ្នាក់ងារផ្ទាល់ខ្លួន** — ចុះឈ្មោះឧបករណ៍ CLI ណាមួយតាមរយៈសំណុំបែបបទ (ឈ្មោះ, binary, ពាក្យបញ្ជាកំណែ, spawn args) - **ការផ្គូផ្គងស្នាមសម្គាល់ CLI** — ប៊ូតុងបិទបើកតាមអ្នកផ្តល់សេវានីមួយៗ ដើម្បីផ្គូផ្គងហត្ថលេខាសំណើ CLI ដើម ដែលកាត់បន្ថយហានិភ័យនៃការហាមឃាត់ ខណៈពេលរក្សាទុក IP របស់ proxy - **ការផ្ទៀងផ្ទាត់ Devin មូលដ្ឋាន** — Devin CLI ប្រើ `devin auth login`; មិនតម្រូវឱ្យមានដំណើរការ OAuth តាមកម្មវិធីរុករកទេ --- ## 🔗 ការបញ្ជូនបន្តបរិបទ _(v3.5.5+)_ យុទ្ធសាស្ត្ររួមបញ្ចូលគ្នាដែលរក្សាភាពបន្តនៃសម័យប្រើប្រាស់ នៅពេលមានការប្ដូរគណនីនៅពាក់កណ្ដាលការសន្ទនា។ មុនពេលកូតារបស់គណនីសកម្មត្រូវបានប្រើអស់ OmniRoute នឹងបង្កើតសេចក្ដីសង្ខេបដែលមានរចនាសម្ព័ន្ធសម្រាប់ការប្រគល់បន្តនៅផ្ទៃខាងក្រោយ។ បន្ទាប់ពីសំណើបន្ទាប់ត្រូវបានបញ្ជូនទៅគណនីផ្សេង សេចក្ដីសង្ខេបនោះនឹងត្រូវបានបញ្ចូលជាសារប្រព័ន្ធ ដើម្បីឱ្យគណនីថ្មីអាចបន្តដោយមានបរិបទពេញលេញ។ អាចកំណត់រចនាសម្ព័ន្ធបានតាមរយៈការកំណត់កម្រិត combo ឬការកំណត់សកល៖ - **កម្រិតកំណត់សម្រាប់ការប្រគល់បន្ត** — ភាគរយនៃការប្រើប្រាស់កូតាដែលនឹងបង្កឱ្យមានការបង្កើតសេចក្ដីសង្ខេប (លំនាំដើម 85%) - **ចំនួនសារអតិបរមាសម្រាប់សេចក្ដីសង្ខេប** — ចំនួនប្រវត្តិថ្មីៗដែលត្រូវបង្រួម - **ម៉ូដែលសង្ខេប** — ម៉ូដែលជំនួសជាជម្រើសសម្រាប់បង្កើតសេចក្ដីសង្ខេបនៃការប្រគល់បន្ត បច្ចុប្បន្នគាំទ្រការប្ដូរគណនី Codex។ សូមមើល [ឯកសារអំពីការបញ្ជូនបន្តបរិបទ](../architecture/ARCHITECTURE.md)។ --- ## 🗜️ ការបង្រួម Prompt _(v3.7.9+)_ បច្ចុប្បន្ន Context & Cache ផ្ដល់ទំព័រដាច់ដោយឡែកសម្រាប់ Caveman, RTK និង Compression Combos៖ - **Caveman** — កញ្ចប់ច្បាប់ដែលសម្របតាមភាសា ការមើលជាមុន ការគ្រប់គ្រងរបៀបលទ្ធផល និងការវិភាគ - **RTK** — ការបង្រួមដែលសម្របតាមពាក្យបញ្ជាសម្រាប់លទ្ធផលរបស់ shell, git, test, build, package, Docker, infra, JSON និង stack-trace - **Compression Combos** — ខ្សែដំណើរការដែលមានឈ្មោះ ដូចជា `rtk -> caveman` ដែលត្រូវបានកំណត់ឱ្យ routing combos; ការគណនាបែបដាក់ជាន់លំនាំដើមសម្រេចបានការសន្សំជាមធ្យម `~89%` និងការសន្សំបរិបទដែលមានសិទ្ធិ `78-95%` នៅពេលម៉ាស៊ីនទាំងពីរត្រូវបានអនុវត្ត - **ការស្ដារលទ្ធផលដើម** — ទ្រនិចទៅកាន់លទ្ធផលដើមរបស់ RTK ដែលបានលាក់ព័ត៌មានរសើបជាជម្រើស សម្រាប់បំបាត់កំហុសនៃការបង្រួមដែលបរាជ័យ សូមមើល [មគ្គុទ្ទេសក៍ការបង្រួម](../compression/COMPRESSION_GUIDE.md), [ការបង្រួម RTK](../compression/RTK_COMPRESSION.md) និង [ម៉ាស៊ីនបង្រួម](../compression/COMPRESSION_ENGINES.md)។ --- ## 🛡️ ការពង្រឹងសុវត្ថិភាព Proxy _(v3.5.5+)_ ការអនុវត្តការកំណត់រចនាសម្ព័ន្ធ proxy យ៉ាងទូលំទូលាយនៅទូទាំងខ្សែដំណើរការសំណើទាំងមូល៖ - **ការពិនិត្យសុខភាព Token** — ឥឡូវនេះ ការធ្វើឱ្យ OAuth ថ្មីនៅផ្ទៃខាងក្រោយនឹងដោះស្រាយការកំណត់រចនាសម្ព័ន្ធ proxy សម្រាប់ការតភ្ជាប់នីមួយៗ ដើម្បីទប់ស្កាត់ការបរាជ័យនៅក្នុងបរិស្ថានដែលតម្រូវឱ្យប្រើ proxy - **ការផ្ទៀងផ្ទាត់ API Key** — ការផ្ទៀងផ្ទាត់សោរបស់ provider (`POST /api/providers/validate`) ត្រូវបានបញ្ជូនតាមរយៈ `runWithProxyContext` ដោយគោរពតាមការកំណត់ proxy កម្រិត provider និងការកំណត់សកល - **ការកែតម្រូវ undici Dispatcher** — Proxy dispatchers ប្រើការអនុវត្ត fetch ផ្ទាល់របស់ undici ជំនួសឱ្យ fetch ដែលភ្ជាប់មកជាមួយ Node ដើម្បីដោះស្រាយកំហុស `invalid onRequestStart method` នៅលើ Node.js 22 - **ការរកឃើញកំណែ Node.js** — ទំព័រចូលប្រើនឹងរកឃើញកំណែ Node.js ដែលមិនឆបគ្នា (24+) ជាមុន ហើយបង្ហាញបដាព្រមានជាមួយការណែនាំឱ្យប្រើ Node 22 LTS --- ## 📧 ការលាក់បាំងអ៊ីមែលដើម្បីការពារឯកជនភាព _(v3.5.6+)_ អ៊ីមែលគណនី OAuth ត្រូវបានលាក់បាំងតាមលំនាំដើម (ឧ. `di*****@g****.com`) ដើម្បីការពារការបង្ហាញដោយចៃដន្យ នៅពេលចែករំលែករូបថតអេក្រង់ ឬថតការបង្ហាញសាកល្បង។ ប្រើ ការកំណត់ → រូបរាង → ភាពមើលឃើញអ៊ីមែលគណនី ដើម្បីបង្ហាញ ឬលាក់បាំងអ៊ីមែលគណនីពេញលេញជាសកលនៅលើអេក្រង់ providers, combos, logs, quota និង playground។ --- ## 👁️ ប៊ូតុងបិទបើកភាពមើលឃើញម៉ូដែល _(v3.5.6+)_ បច្ចុប្បន្ន បញ្ជីម៉ូដែលនៅលើទំព័រ provider រួមមាន៖ - **របារស្វែងរក/តម្រងតាមពេលជាក់ស្ដែង** — ស្វែងរកម៉ូដែលជាក់លាក់បានយ៉ាងឆាប់រហ័ស - **ប៊ូតុងបិទបើកភាពមើលឃើញសម្រាប់ម៉ូដែលនីមួយៗ** (រូបតំណាង 👁) — ម៉ូដែលដែលបានលាក់នឹងបង្ហាញជាពណ៌ប្រផេះ ហើយត្រូវបានដកចេញពីកាតាឡុក `/v1/models` - **ផ្លាកសញ្ញាចំនួនសកម្ម** (`N/M active`) — បង្ហាញឱ្យឃើញភ្លាមៗថាមានម៉ូដែលប៉ុន្មានត្រូវបានបើកធៀបនឹងចំនួនសរុប --- ## 🔧 ការជួសជុល OAuth Env _(v3.6.1+)_ សកម្មភាព "ជួសជុល env" ដោយចុចតែមួយដងសម្រាប់អ្នកផ្តល់សេវា OAuth ដែលស្តារអថេរបរិស្ថានដែលបាត់ និងជួសជុលស្ថានភាពផ្ទៀងផ្ទាត់អត្តសញ្ញាណដែលខូច។ អាចចូលប្រើបានពី `ផ្ទាំងគ្រប់គ្រង → អ្នកផ្តល់សេវា → [អ្នកផ្តល់សេវា OAuth] → ជួសជុល env`។ រកឃើញ និងជួសជុលដោយស្វ័យប្រវត្តិ៖ - ព័ត៌មានសម្គាល់អត្តសញ្ញាណម៉ាស៊ីនភ្ញៀវ OAuth ដែលបាត់ - ធាតុក្នុងឯកសារ env ដែលខូច - ការសម្អាតផ្លូវទីតាំងបម្រុងទុក --- ## 🗑️ ការលុបការដំឡើង / ការលុបការដំឡើងទាំងស្រុង _(v3.6.2+)_ ស្គ្រីបសម្រាប់លុបចេញយ៉ាងស្អាតសម្រាប់វិធីសាស្ត្រដំឡើងទាំងអស់៖ | ពាក្យបញ្ជា | សកម្មភាព | | ------------------------ | ------------------------------------------------------------------------------------------------- | | `npm run uninstall` | លុបកម្មវិធីប្រព័ន្ធ ប៉ុន្តែ **រក្សាទុក DB និងការកំណត់រចនាសម្ព័ន្ធរបស់អ្នក** ក្នុង `~/.omniroute`។ | | `npm run uninstall:full` | លុបកម្មវិធី ហើយ **លុបជាអចិន្ត្រៃយ៍នូវការកំណត់រចនាសម្ព័ន្ធ សោ និងមូលដ្ឋានទិន្នន័យទាំងអស់**។ | --- ## 🖼️ មេឌៀ _(v2.0.3+)_ បង្កើតរូបភាព វីដេអូ និងតន្ត្រីពីផ្ទាំងគ្រប់គ្រង។ គាំទ្រ OpenAI, xAI, Together, Hyperbolic, SD WebUI, ComfyUI, AnimateDiff, Stable Audio Open និង MusicGen។ --- ## 📝 កំណត់ហេតុសំណើ ការកត់ត្រាសំណើតាមពេលវេលាជាក់ស្តែង ជាមួយការច្រោះតាមអ្នកផ្តល់សេវា ម៉ូដែល គណនី និងសោ API។ បង្ហាញកូដស្ថានភាព ការប្រើប្រាស់តូខឹន រយៈពេលពន្យារ និងព័ត៌មានលម្អិតនៃការឆ្លើយតប។ ![កំណត់ហេតុការប្រើប្រាស់](../screenshots/08-usage.png) --- ## 🌐 ចំណុចចូលប្រើ API ចំណុចចូលប្រើ API រួមរបស់អ្នក ជាមួយការបែងចែកសមត្ថភាព៖ ការបំពេញការជជែក, Responses API, Embeddings, ការបង្កើតរូបភាព, ការរៀបចំណាត់ថ្នាក់ឡើងវិញ, ការចម្លងសំឡេងទៅជាអត្ថបទ, អត្ថបទទៅជាសំឡេង, ការត្រួតពិនិត្យខ្លឹមសារ និងសោ API ដែលបានចុះឈ្មោះ។ មានការគាំទ្រ Cloudflare Quick Tunnel, Tailscale Funnel, ngrok Tunnel និងប្រូកស៊ីក្លោដសម្រាប់ការចូលប្រើពីចម្ងាយ។ ![ផ្ទាំងគ្រប់គ្រងចំណុចចូលប្រើ](../screenshots/09-endpoint.png) --- ## 🔑 ការគ្រប់គ្រងសោ API បង្កើត កំណត់វិសាលភាព និងដកហូតសោ API។ សោនីមួយៗអាចត្រូវបានកំណត់ឱ្យប្រើបានតែជាមួយម៉ូដែល/អ្នកផ្តល់សេវាជាក់លាក់ ដោយមានសិទ្ធិចូលប្រើពេញលេញ ឬសិទ្ធិបានតែអាន។ ការគ្រប់គ្រងសោបែបមើលឃើញ ជាមួយការតាមដានការប្រើប្រាស់។ --- ## 📋 កំណត់ហេតុសវនកម្ម ការតាមដានសកម្មភាពរដ្ឋបាល ជាមួយការច្រោះតាមប្រភេទសកម្មភាព អ្នកអនុវត្ត គោលដៅ អាសយដ្ឋាន IP និងត្រាពេលវេលា។ ប្រវត្តិព្រឹត្តិការណ៍សុវត្ថិភាពពេញលេញ។ --- ## 🖥️ កម្មវិធីលើកុំព្យូទ័រ កម្មវិធី Electron ដើមសម្រាប់កុំព្យូទ័រ Windows, macOS និង Linux។ ដំណើរការ OmniRoute ជាកម្មវិធីឯករាជ្យ ដោយមានការរួមបញ្ចូលជាមួយថាសប្រព័ន្ធ ការគាំទ្រក្រៅបណ្ដាញ ការធ្វើបច្ចុប្បន្នភាពស្វ័យប្រវត្តិ និងការដំឡើងដោយចុចតែមួយដង។ មុខងារសំខាន់ៗ៖ - ការត្រួតពិនិត្យជាបន្តបន្ទាប់លើភាពរួចរាល់របស់ម៉ាស៊ីនមេ (គ្មានអេក្រង់ទទេពេលចាប់ផ្ដើមពីស្ថានភាពត្រជាក់) - ថាសប្រព័ន្ធជាមួយការគ្រប់គ្រងផត - គោលការណ៍សុវត្ថិភាពខ្លឹមសារ - ការចាក់សោឱ្យដំណើរការតែមួយ instance - ធ្វើបច្ចុប្បន្នភាពដោយស្វ័យប្រវត្តិពេលចាប់ផ្ដើមឡើងវិញ - UI តាមលក្ខខណ្ឌរបស់វេទិកា (ប៊ូតុងភ្លើងចរាចរណ៍របស់ macOS និងរបារចំណងជើងលំនាំដើមរបស់ Windows/Linux) - ការវេចខ្ចប់ Electron build ដែលបានពង្រឹងសុវត្ថិភាព — `node_modules` ដែលភ្ជាប់ដោយ symlink ក្នុង standalone bundle ត្រូវបានរកឃើញ និងបដិសេធមុនពេលវេចខ្ចប់ ដើម្បីទប់ស្កាត់ភាពអាស្រ័យពេលដំណើរការលើម៉ាស៊ីន build (v2.5.5+) - **ការបិទដំណើរការដោយរលូន** — Electron `before-quit` បិទ Next.js យ៉ាងត្រឹមត្រូវ ដើម្បីទប់ស្កាត់ការចាក់សោមូលដ្ឋានទិន្នន័យ SQLite WAL (v3.6.2+) 📖 សូមមើល [`electron/README.md`](../../electron/README.md) សម្រាប់ឯកសារណែនាំពេញលេញ។ --- ## 🌐 ស្ពាន V1 WebSocket _(v3.6.6+)_ ឥឡូវនេះ OmniRoute គាំទ្រ **ម៉ាស៊ីនភ្ញៀវ WebSocket ដែលត្រូវគ្នាជាមួយ OpenAI** តាមរយៈចំណុចចូលប្រើអាប់ក្រេដ `/v1/ws`។ ម៉ាស៊ីនមេផ្ទាល់ខ្លួន `scripts/dev/v1-ws-bridge.mjs` រុំជុំវិញ Next.js និងអាប់ក្រេដការតភ្ជាប់ WS ទៅជាសម័យ streaming ទ្វេទិសពេញលេញ។ ការផ្ទៀងផ្ទាត់អត្តសញ្ញាណប្រើសោ API ឬ session cookie ដូចគ្នានឹងសំណើ HTTP។ ឥរិយាបថសំខាន់ៗ៖ - ការអាប់ក្រេដ WS ត្រូវបានផ្ទៀងផ្ទាត់ដោយ `src/lib/ws/handshake.ts` មុនពេលបង្កើតការតភ្ជាប់ - Stream ត្រូវបានបញ្ចប់យ៉ាងត្រឹមត្រូវ នៅពេលបិទ session ឬមានកំហុសពី upstream - ដំណើរការក្នុងពេលតែមួយជាមួយផ្លូវ streaming HTTP+SSE ដែលមានស្រាប់ --- ## 🔑 ថូខឹនសមកាលកម្ម និងកញ្ចប់កំណត់រចនាសម្ព័ន្ធ _(v3.6.6+)_ ឥឡូវនេះ ការចូលប្រើពីឧបករណ៍ច្រើន និងដោយប្រតិបត្តិករខាងក្រៅអាចធ្វើទៅបានតាមរយៈ **ថូខឹនសមកាលកម្មដែលមានវិសាលភាពកំណត់**៖ - **`POST /api/sync/tokens`** — ចេញថូខឹនសមកាលកម្មថ្មីមួយ (មានវិសាលភាពកំណត់ និងអាចកំណត់ពេលផុតកំណត់ជាជម្រើស) - **`DELETE /api/sync/tokens/:id`** — ដកហូតថូខឹនមួយ - **`GET /api/sync/bundle`** — ទាញយក snapshot JSON របស់កំណត់រចនាសម្ព័ន្ធដែលមានកំណែ និងប្រើ ETag ជាសោ (ផ្ទៀងផ្ទាត់ដោយប្រើតែថូខឹនសមកាលកម្មប៉ុណ្ណោះ)។ ការកំណត់សម្រាប់ការផ្ទៀងផ្ទាត់ ដូចជាពាក្យសម្ងាត់របស់ dashboard ត្រូវបានដកចេញ ប៉ុន្តែព័ត៌មានសម្ងាត់របស់ provider និង API keys ត្រូវបានរួមបញ្ចូល ដូច្នេះសូមចាត់ទុកឯកសារនេះជាព័ត៌មានសម្ងាត់ កញ្ចប់កំណត់រចនាសម្ព័ន្ធត្រូវបានបង្កើតដោយ `src/lib/sync/bundle.ts`។ កម្មវិធីប្រើប្រាស់ប្រៀបធៀប response header `ETag` ដើម្បីរកឃើញការផ្លាស់ប្តូរ ដោយមិនចាំបាច់ទាញយក payload ពេញលេញឡើងវិញ។ ពី CLI ពាក្យបញ្ជា `omniroute sync bundle --token ` (ឬ `OMNIROUTE_SYNC_TOKEN`) រក្សាទុកវាទៅក្នុងឯកសារដែលអាចចូលប្រើបានដោយម្ចាស់តែប៉ុណ្ណោះ។ --- ## 🧠 ការកំណត់ជាមុនសម្រាប់ការគិតរបស់ GLM _(v3.6.6+)_ **GLM Thinking (`glmt`)** ឥឡូវនេះគឺជាអ្នកផ្តល់សេវាថ្នាក់ទីមួយដែលបានចុះបញ្ជី៖ ថូខិនលទ្ធផលអតិបរមា 65 536 ថវិកាគិត 24 576 រយៈពេលអស់កំណត់លំនាំដើម 900 s ទម្រង់ API ដែលឆបគ្នាជាមួយ Claude និងការធ្វើសមកាលកម្មការប្រើប្រាស់រួមគ្នាជាមួយគ្រួសារ GLM។ **ការរាប់ថូខិនបែបកូនកាត់** ក៏ត្រូវបានដាក់ឱ្យប្រើក្នុង v3.6.6 ផងដែរ៖ នៅពេលអ្នកផ្តល់សេវាដែលឆបគ្នាជាមួយ Claude ផ្តល់ `/messages/count_tokens` នោះ OmniRoute នឹងហៅវាមុនសំណើធំៗ ជាមួយនឹងជម្រើសត្រឡប់ទៅការប៉ាន់ស្មានដោយរលូន។ --- ## 🛡️ ការទាញយកទៅខាងក្រៅដោយសុវត្ថិភាព និងការការពារ SSRF _(v3.6.6+)_ រាល់ការហៅសម្រាប់ផ្ទៀងផ្ទាត់អ្នកផ្តល់សេវា និងស្វែងរកម៉ូដែល ឥឡូវនេះត្រូវឆ្លងកាត់ការការពារសំណើចេញពីរស្រទាប់៖ 1. **ការការពារ URL** (`src/shared/network/outboundUrlGuard.ts`) — ទប់ស្កាត់ជួរ IP ឯកជន/loopback/link-local មុនពេល socket ត្រូវបានបើក។ 2. **ស្រទាប់រុំសម្រាប់ការទាញយកដោយសុវត្ថិភាព** (`src/shared/network/safeOutboundFetch.ts`) — អនុវត្តការការពារ URL ធ្វើឱ្យរយៈពេលអស់កំណត់មានលក្ខណៈស្តង់ដារ និងសាកល្បងឡើងវិញចំពោះកំហុសបណ្តោះអាសន្ន ដោយប្រើការពន្យារពេលកើនឡើងតាមអិចស្ប៉ូណង់ស្យែល។ ការបំពានលើការការពារត្រូវបានបង្ហាញជា HTTP 422 (`URL_GUARD_BLOCKED`) និងត្រូវបានកត់ត្រាទៅក្នុងកំណត់ហេតុសវនកម្មអនុលោមភាពតាមរយៈ `providerAudit.ts`។ --- ## 🔄 ការសាកល្បងឡើងវិញដោយគិតគូរពីរយៈពេលរង់ចាំ _(v3.6.6+)_ ឥឡូវនេះ សំណើជជែកនឹង **សាកល្បងឡើងវិញដោយស្វ័យប្រវត្តិ** នៅពេលអ្នកផ្តល់សេវាខាងលើឆ្លើយតបដោយរយៈពេលរង់ចាំដែលកំណត់សម្រាប់ម៉ូដែល។ អាចកំណត់រចនាសម្ព័ន្ធបានតាមរយៈ `REQUEST_RETRY` (លំនាំដើម៖ 2) និង `MAX_RETRY_INTERVAL_SEC` (លំនាំដើម៖ 30 s)។ ការសិក្សាបឋមកថាកំណត់អត្រាត្រូវបានកែលម្អសម្រាប់ `x-ratelimit-reset-requests`, `x-ratelimit-reset-tokens` និង `Retry-After` — ស្ថានភាពរយៈពេលរង់ចាំតាមម៉ូដែលនីមួយៗអាចមើលឃើញនៅក្នុងផ្ទាំងគ្រប់គ្រង Resilience។ --- ## 📋 សវនកម្មអនុលោមភាព v2 _(v3.6.6+)_ កំណត់ហេតុសវនកម្មត្រូវបានពង្រីក ដោយបន្ថែមការបែងចែកទំព័រផ្អែកលើទស្សន៍ទ្រនិច ការបំពេញបន្ថែមបរិបទសំណើ (លេខសម្គាល់សំណើ ភ្នាក់ងារអ្នកប្រើ IP) ព្រឹត្តិការណ៍ផ្ទៀងផ្ទាត់អត្តសញ្ញាណដែលមានរចនាសម្ព័ន្ធ ព្រឹត្តិការណ៍ CRUD របស់អ្នកផ្តល់សេវាដែលមានបរិបទភាពខុសគ្នា និងការកត់ត្រាការផ្ទៀងផ្ទាត់ដែលត្រូវបានទប់ស្កាត់ដោយ SSRF។ ព្រឹត្តិការណ៍ថ្មីត្រូវបានបញ្ចេញដោយ `src/lib/compliance/providerAudit.ts`។