# User Guide (Latviešu) 🌐 **Languages:** 🇺🇸 [English](../../../../guides/USER_GUIDE.md) · 🇪🇹 [am](../../../am/docs/guides/USER_GUIDE.md) · 🇸🇦 [ar](../../../ar/docs/guides/USER_GUIDE.md) · 🇦🇿 [az](../../../az/docs/guides/USER_GUIDE.md) · 🇧🇬 [bg](../../../bg/docs/guides/USER_GUIDE.md) · 🇧🇩 [bn](../../../bn/docs/guides/USER_GUIDE.md) · 🇧🇦 [bs](../../../bs/docs/guides/USER_GUIDE.md) · 🇨🇿 [cs](../../../cs/docs/guides/USER_GUIDE.md) · 🇩🇰 [da](../../../da/docs/guides/USER_GUIDE.md) · 🇩🇪 [de](../../../de/docs/guides/USER_GUIDE.md) · 🇬🇷 [el](../../../el/docs/guides/USER_GUIDE.md) · 🇪🇸 [es](../../../es/docs/guides/USER_GUIDE.md) · 🇪🇪 [et](../../../et/docs/guides/USER_GUIDE.md) · 🇮🇷 [fa](../../../fa/docs/guides/USER_GUIDE.md) · 🇫🇮 [fi](../../../fi/docs/guides/USER_GUIDE.md) · 🇫🇷 [fr](../../../fr/docs/guides/USER_GUIDE.md) · 🇮🇪 [ga](../../../ga/docs/guides/USER_GUIDE.md) · 🇮🇳 [gu](../../../gu/docs/guides/USER_GUIDE.md) · 🇳🇬 [ha](../../../ha/docs/guides/USER_GUIDE.md) · 🇮🇱 [he](../../../he/docs/guides/USER_GUIDE.md) · 🇮🇳 [hi](../../../hi/docs/guides/USER_GUIDE.md) · 🇭🇷 [hr](../../../hr/docs/guides/USER_GUIDE.md) · 🇭🇺 [hu](../../../hu/docs/guides/USER_GUIDE.md) · 🇦🇲 [hy](../../../hy/docs/guides/USER_GUIDE.md) · 🇮🇩 [id](../../../id/docs/guides/USER_GUIDE.md) · 🇳🇬 [ig](../../../ig/docs/guides/USER_GUIDE.md) · 🇮🇹 [it](../../../it/docs/guides/USER_GUIDE.md) · 🇯🇵 [ja](../../../ja/docs/guides/USER_GUIDE.md) · 🇬🇪 [ka](../../../ka/docs/guides/USER_GUIDE.md) · 🇰🇭 [km](../../../km/docs/guides/USER_GUIDE.md) · 🇮🇳 [kn](../../../kn/docs/guides/USER_GUIDE.md) · 🇰🇷 [ko](../../../ko/docs/guides/USER_GUIDE.md) · 🇱🇹 [lt](../../../lt/docs/guides/USER_GUIDE.md) · 🇮🇳 [ml](../../../ml/docs/guides/USER_GUIDE.md) · 🇮🇳 [mr](../../../mr/docs/guides/USER_GUIDE.md) · 🇲🇾 [ms](../../../ms/docs/guides/USER_GUIDE.md) · 🇲🇹 [mt](../../../mt/docs/guides/USER_GUIDE.md) · 🇲🇲 [my](../../../my/docs/guides/USER_GUIDE.md) · 🇳🇵 [ne](../../../ne/docs/guides/USER_GUIDE.md) · 🇳🇱 [nl](../../../nl/docs/guides/USER_GUIDE.md) · 🇳🇴 [no](../../../no/docs/guides/USER_GUIDE.md) · 🇮🇳 [or](../../../or/docs/guides/USER_GUIDE.md) · 🇮🇳 [pa](../../../pa/docs/guides/USER_GUIDE.md) · 🇵🇭 [phi](../../../phi/docs/guides/USER_GUIDE.md) · 🇵🇱 [pl](../../../pl/docs/guides/USER_GUIDE.md) · 🇵🇹 [pt](../../../pt/docs/guides/USER_GUIDE.md) · 🇧🇷 [pt-BR](../../../pt-BR/docs/guides/USER_GUIDE.md) · 🇷🇴 [ro](../../../ro/docs/guides/USER_GUIDE.md) · 🇷🇺 [ru](../../../ru/docs/guides/USER_GUIDE.md) · 🇱🇰 [si](../../../si/docs/guides/USER_GUIDE.md) · 🇸🇰 [sk](../../../sk/docs/guides/USER_GUIDE.md) · 🇸🇮 [sl](../../../sl/docs/guides/USER_GUIDE.md) · 🇷🇸 [sr](../../../sr/docs/guides/USER_GUIDE.md) · 🇸🇪 [sv](../../../sv/docs/guides/USER_GUIDE.md) · 🇰🇪 [sw](../../../sw/docs/guides/USER_GUIDE.md) · 🇮🇳 [ta](../../../ta/docs/guides/USER_GUIDE.md) · 🇮🇳 [te](../../../te/docs/guides/USER_GUIDE.md) · 🇹🇭 [th](../../../th/docs/guides/USER_GUIDE.md) · 🇹🇷 [tr](../../../tr/docs/guides/USER_GUIDE.md) · 🇺🇦 [uk-UA](../../../uk-UA/docs/guides/USER_GUIDE.md) · 🇵🇰 [ur](../../../ur/docs/guides/USER_GUIDE.md) · 🇺🇿 [uz](../../../uz/docs/guides/USER_GUIDE.md) · 🇻🇳 [vi](../../../vi/docs/guides/USER_GUIDE.md) · 🇳🇬 [yo](../../../yo/docs/guides/USER_GUIDE.md) · 🇨🇳 [zh-CN](../../../zh-CN/docs/guides/USER_GUIDE.md) · 🇹🇼 [zh-TW](../../../zh-TW/docs/guides/USER_GUIDE.md) --- 🌐 **Languages:** 🇺🇸 [English](../../../../guides/USER_GUIDE.md) · 🇪🇹 [am](../../../am/docs/guides/USER_GUIDE.md) · 🇸🇦 [ar](../../../ar/docs/guides/USER_GUIDE.md) · 🇦🇿 [az](../../../az/docs/guides/USER_GUIDE.md) · 🇧🇬 [bg](../../../bg/docs/guides/USER_GUIDE.md) · 🇧🇩 [bn](../../../bn/docs/guides/USER_GUIDE.md) · 🇧🇦 [bs](../../../bs/docs/guides/USER_GUIDE.md) · 🇨🇿 [cs](../../../cs/docs/guides/USER_GUIDE.md) · 🇩🇰 [da](../../../da/docs/guides/USER_GUIDE.md) · 🇩🇪 [de](../../../de/docs/guides/USER_GUIDE.md) · 🇬🇷 [el](../../../el/docs/guides/USER_GUIDE.md) · 🇪🇸 [es](../../../es/docs/guides/USER_GUIDE.md) · 🇪🇪 [et](../../../et/docs/guides/USER_GUIDE.md) · 🇮🇷 [fa](../../../fa/docs/guides/USER_GUIDE.md) · 🇫🇮 [fi](../../../fi/docs/guides/USER_GUIDE.md) · 🇫🇷 [fr](../../../fr/docs/guides/USER_GUIDE.md) · 🇮🇪 [ga](../../../ga/docs/guides/USER_GUIDE.md) · 🇮🇳 [gu](../../../gu/docs/guides/USER_GUIDE.md) · 🇳🇬 [ha](../../../ha/docs/guides/USER_GUIDE.md) · 🇮🇱 [he](../../../he/docs/guides/USER_GUIDE.md) · 🇮🇳 [hi](../../../hi/docs/guides/USER_GUIDE.md) · 🇭🇷 [hr](../../../hr/docs/guides/USER_GUIDE.md) · 🇭🇺 [hu](../../../hu/docs/guides/USER_GUIDE.md) · 🇦🇲 [hy](../../../hy/docs/guides/USER_GUIDE.md) · 🇮🇩 [id](../../../id/docs/guides/USER_GUIDE.md) · 🇳🇬 [ig](../../../ig/docs/guides/USER_GUIDE.md) · 🇮🇹 [it](../../../it/docs/guides/USER_GUIDE.md) · 🇯🇵 [ja](../../../ja/docs/guides/USER_GUIDE.md) · 🇬🇪 [ka](../../../ka/docs/guides/USER_GUIDE.md) · 🇰🇭 [km](../../../km/docs/guides/USER_GUIDE.md) · 🇮🇳 [kn](../../../kn/docs/guides/USER_GUIDE.md) · 🇰🇷 [ko](../../../ko/docs/guides/USER_GUIDE.md) · 🇱🇹 [lt](../../../lt/docs/guides/USER_GUIDE.md) · 🇮🇳 [ml](../../../ml/docs/guides/USER_GUIDE.md) · 🇮🇳 [mr](../../../mr/docs/guides/USER_GUIDE.md) · 🇲🇾 [ms](../../../ms/docs/guides/USER_GUIDE.md) · 🇲🇹 [mt](../../../mt/docs/guides/USER_GUIDE.md) · 🇲🇲 [my](../../../my/docs/guides/USER_GUIDE.md) · 🇳🇵 [ne](../../../ne/docs/guides/USER_GUIDE.md) · 🇳🇱 [nl](../../../nl/docs/guides/USER_GUIDE.md) · 🇳🇴 [no](../../../no/docs/guides/USER_GUIDE.md) · 🇮🇳 [or](../../../or/docs/guides/USER_GUIDE.md) · 🇮🇳 [pa](../../../pa/docs/guides/USER_GUIDE.md) · 🇵🇭 [phi](../../../phi/docs/guides/USER_GUIDE.md) · 🇵🇱 [pl](../../../pl/docs/guides/USER_GUIDE.md) · 🇵🇹 [pt](../../../pt/docs/guides/USER_GUIDE.md) · 🇧🇷 [pt-BR](../../../pt-BR/docs/guides/USER_GUIDE.md) · 🇷🇴 [ro](../../../ro/docs/guides/USER_GUIDE.md) · 🇷🇺 [ru](../../../ru/docs/guides/USER_GUIDE.md) · 🇱🇰 [si](../../../si/docs/guides/USER_GUIDE.md) · 🇸🇰 [sk](../../../sk/docs/guides/USER_GUIDE.md) · 🇸🇮 [sl](../../../sl/docs/guides/USER_GUIDE.md) · 🇷🇸 [sr](../../../sr/docs/guides/USER_GUIDE.md) · 🇸🇪 [sv](../../../sv/docs/guides/USER_GUIDE.md) · 🇰🇪 [sw](../../../sw/docs/guides/USER_GUIDE.md) · 🇮🇳 [ta](../../../ta/docs/guides/USER_GUIDE.md) · 🇮🇳 [te](../../../te/docs/guides/USER_GUIDE.md) · 🇹🇭 [th](../../../th/docs/guides/USER_GUIDE.md) · 🇹🇷 [tr](../../../tr/docs/guides/USER_GUIDE.md) · 🇺🇦 [uk-UA](../../../uk-UA/docs/guides/USER_GUIDE.md) · 🇵🇰 [ur](../../../ur/docs/guides/USER_GUIDE.md) · 🇺🇿 [uz](../../../uz/docs/guides/USER_GUIDE.md) · 🇻🇳 [vi](../../../vi/docs/guides/USER_GUIDE.md) · 🇳🇬 [yo](../../../yo/docs/guides/USER_GUIDE.md) · 🇨🇳 [zh-CN](../../../zh-CN/docs/guides/USER_GUIDE.md) · 🇹🇼 [zh-TW](../../../zh-TW/docs/guides/USER_GUIDE.md) Pilnīgs ceļvedis pakalpojumu sniedzēju konfigurēšanai, kombināciju izveidei, CLI rīku integrēšanai un OmniRoute izvietošanai. --- ## Satura rādītājs - [Cenas īsumā](#-pricing-at-a-glance) - [Izmantošanas gadījumi](#-use-cases) - [Pakalpojumu iestatīšana](#-provider-setup) - [CLI integrācija](#-cli-integration) - [Izvietošana](#-deployment) - [Pieejamie modeļi](#-available-models) - [Uzlabotas funkcijas](#-advanced-features) - [Automātiskā maršrutēšana (bez konfigurēšanas)](#-auto-routing-zero-config) - [MCP un A2A integrācija](#-mcp--a2a-integration) - [Prasmju sistēma](#-skills-system) - [Atmiņas sistēma](#-memory-system) - [Webhooki](#-webhooks) - [Mākoņa agenti](#-cloud-agents) - [Programmatiskā pārvaldība](#-programmatic-management) - [Iekšējais CLI](#-internal-cli) - [Darbvirsmas lietotne (Electron)](#-desktop-application-electron) --- ## 💰 Cenas īsumā | Līmenis | Nodrošinātājs | Izmaksas | Kvotas atiestatīšana | Vislabāk piemērots | | ------------------ | ----------------- | ------------------- | ----------------------------------------- | ------------------------------ | | **💳 ABONEMENTS** | Claude Code (Pro) | $20/mēn. | 5 h + nedēļas | Jau abonēts | | | Codex (Plus/Pro) | $20-200/mēn. | 5 h + nedēļas | OpenAI lietotāji | | | GitHub Copilot | $10-19/mēn. | Reizi mēnesī | GitHub lietotāji | | **🔑 API ATSLĒGA** | DeepSeek | Maksa par lietojumu | Nav | Lēta spriešana | | | Groq | Maksa par lietojumu | Nav | Īpaši ātra inferēšana | | | xAI (Grok) | Maksa par lietojumu | Nav | Grok 4 spriešana | | | Mistral | Maksa par lietojumu | Nav | ES mitināti modeļi | | | Perplexity | Maksa par lietojumu | Nav | Ar meklēšanu papildināts | | | Together AI | Maksa par lietojumu | Nav | Atvērtā pirmkoda modeļi | | | Fireworks AI | Maksa par lietojumu | Nav | Ātri FLUX attēli | | | Cerebras | Maksa par lietojumu | Nav | Vafeles mēroga ātrums | | | Cohere | Maksa par lietojumu | Nav | Command R+ RAG | | | NVIDIA NIM | Maksa par lietojumu | Nav | Uzņēmumu modeļi | | | Baidu Qianfan | Maksa par lietojumu | Nav | ERNIE modeļi | | **💰 LĒTI** | GLM-4.7 | $0.6/1M | Katru dienu plkst. 10.00 | Budžeta rezerves variants | | | MiniMax M2.1 | $0.2/1M | Mainīga 5 stundu periodā | Lētākais variants | | | Kimi K2 | $9/mēn. fiksēti | 10M marķieru/mēn. | Prognozējamas izmaksas | | **🆓 BEZ MAKSAS** | Qoder | $0 | Tiek piemēroti nodrošinātāja ierobežojumi | Pārbaudiet pašreizējo katalogu | | | Kiro | $0 | ~50 kredītu/mēn. | Claude bez maksas | --- ## 🎯 Lietošanas scenāriji ### 1. scenārijs: “Man ir Claude Pro abonements” **Problēma:** Kvota paliek neizmantota, intensīvas programmēšanas laikā tiek sasniegti ātruma ierobežojumi ``` Kombinācija: "maximize-claude" 1. cc/claude-opus-4-7 (pilnībā izmantot abonementu) 2. glm/glm-4.7 (lēts rezerves variants, kad kvota iztērēta) 3. if/qwen3.8-max-preview (bezmaksas ārkārtas rezerves variants) Mēneša izmaksas: $20 (abonements) + ~$5 (rezerves variants) = kopā $25 salīdzinājumā ar $20 + ierobežojumu sasniegšanu = neapmierinātība ``` ### 2. scenārijs: “Es vēlos nulles izmaksas” **Problēma:** Nevaru atļauties abonementus, nepieciešama uzticama programmēšanas AI ``` Kombinācija: "zero-cost" 1. if/kimi-k2.7-code (norādīta bezmaksas piekļuve; var tikt piemēroti ātruma ierobežojumi) 2. kr/qwen3-coder-next (Kiro bezmaksas rezerves variants) Mēneša izmaksas: $0 Kvalitāte: pārbaudiet modeli, ierobežojumus, konfidencialitāti un SLA atbilstoši savai slodzei ``` ### 3. scenārijs: “Man nepieciešama programmēšana 24/7 bez pārtraukumiem” **Problēma:** Tuvojas termiņi, dīkstāvi nevar atļauties ``` Kombinācija: "always-on" 1. cc/claude-opus-4-7 (labākā kvalitāte) 2. cx/gpt-5.5 (otrais abonements) 3. glm/glm-4.7 (lēts, tiek atiestatīts katru dienu) 4. minimax/MiniMax-M2.1 (lētākais, atiestatīšana pēc 5 stundām) 5. if/deepseek-v4-flash (norādīta bezmaksas piekļuve; var tikt piemēroti ātruma ierobežojumi) Rezultāts: 5 rezerves slāņi palielina noturību; augšupējā pakalpojuma pieejamība nav garantēta Mēneša izmaksas: $20-200 (abonementi) + $10-20 (rezerves variants) ``` ### 4. scenārijs: “Es vēlos BEZMAKSAS AI OpenClaw” **Problēma:** Nepieciešams pilnībā bezmaksas AI asistents ziņojumapmaiņas lietotnēs ``` Kombinācija: "openclaw-free" 1. if/qwen3.8-max-preview (norādīta bezmaksas piekļuve; var tikt piemēroti ātruma ierobežojumi) 2. if/deepseek-v4-flash (norādīta bezmaksas piekļuve; var tikt piemēroti ātruma ierobežojumi) 3. if/kimi-k2.7-code (norādīta bezmaksas piekļuve; var tikt piemēroti ātruma ierobežojumi) Mēneša izmaksas: $0 Piekļuve, izmantojot: WhatsApp, Telegram, Slack, Discord, iMessage, Signal... ``` --- ## 📒 Pakalpojumu sniedzēju iestatīšana ### 🔐 Abonementu pakalpojumu sniedzēji #### Claude Code (Pro/Max) ```bash Informācijas panelis → Pakalpojumu sniedzēji → Savienot Claude Code → OAuth piesakāvieties → Automātiskā žetona atjaunošana → 5 stundu + nedēļas kvotas izsekošana Modeļi: cc/claude-opus-4-7 cc/claude-sonnet-4-6 cc/claude-haiku-4-5-20251001 ``` **Eksperta padoms:** Izmantojiet Opus sarežģītiem uzdevumiem, Sonnet ātrumam. OmniRoute izseko kvotu katram modelim! Claude un Claude Code saderīgie maršruti saglabā `max` domāšanas pūles Opus un Sonnet modeļiem. Haiku modeļi nepieņem `max` pūļu līmeni, tāpēc OmniRoute šo pieprasījumu samazina līdz augstam domāšanas budžetam pirms tā nosūtīšanas augšstremei. #### OpenAI Codex (Plus/Pro) ```bash Informācijas panelis → Pakalpojumu sniedzēji → Savienot Codex → OAuth piesakāvieties (ports 1455) → 5 stundu + nedēļas atiestatīšana Modeļi: cx/gpt-5.5 cx/gpt-5.4 cx/gpt-5.3-codex cx/gpt-5.3-codex-spark ``` #### GitHub Copilot ```bash Informācijas panelis → Pakalpojumu sniedzēji → Savienot GitHub → OAuth caur GitHub → Mēneša atiestatīšana (mēneša 1. datums) Modeļi: gh/gpt-5.5 gh/gpt-5.4 gh/claude-sonnet-4.6 gh/claude-opus-4.7 gh/gemini-3.1-pro-preview ``` ### 💰 Lēti pakalpojumu sniedzēji #### GLM-4.7 (Ik dienas atiestatīšana, $0.6/1M) 1. Reģistrējieties: [Zhipu AI](https://open.bigmodel.cn) 2. Iegūstiet API atslēgu no Kodēšanas plāna 3. Informācijas panelis → Pievienot API atslēgu: Pakalpojumu sniedzējs: `glm`, API atslēga: `your-key` **Lietošana:** `glm/glm-4.7` — **Eksperta padoms:** Kodēšanas plāns piedāvā 3× kvotu par 1/7 cenu! Atiestatīšana katru dienu plkst. 10:00. #### MiniMax M2.1 (5h atiestatīšana, $0.20/1M) 1. Reģistrējieties: [MiniMax](https://www.minimax.io) 2. Iegūstiet API atslēgu → Informācijas panelis → Pievienot API atslēgu **Lietošana:** `minimax/MiniMax-M2.1` — **Eksperta padoms:** Lētākā iespēja garai kontekstai (1M žetonu)! #### Kimi K2 ($9 mēnesī fiksēti) 1. Abonējiet: [Moonshot AI](https://platform.kimi.ai?aff=omniroute) 2. Iegūstiet API atslēgu → Informācijas panelis → Pievienot API atslēgu **Lietošana:** `kimi/kimi-k2.5` — **Eksperta padoms:** Fiksēti $9 mēnesī par 10M žetoniem = efektīvās izmaksas $0.90/1M! #### Baidu Qianfan / ERNIE 1. Reģistrējieties: [Baidu AI Cloud Qianfan](https://cloud.baidu.com/product/wenxinworkshop) 2. Izveidojiet Qianfan API atslēgu → Informācijas panelis → Pievienot API atslēgu: Pakalpojumu sniedzējs: `qianfan` **Lietošana:** `qianfan/ernie-5.1`, `qianfan/ernie-x1.1` vai cits Qianfan OpenAI-saderīgs modeļa ID. ### 🆓 BEZMAKSAS pakalpojumu sniedzēji Autentifikācijas bezmaksas pakalpojumu sniedzējiem ir slēdzis blakus **Nav nepieciešama autentifikācija** to pakalpojumu sniedzēja lapā. Tā izslēgšana atspējo šo pakalpojumu sniedzēju, noņem to no konfigurēto/kompakto skatu saraksta Pakalpojumu sniedzējiem un noņem tā modeļus no `/v1/models`. #### Qoder (9 BEZMAKSAS modeļi) ```bash Informācijas panelis → Savienot Qoder → OAuth piesakāvieties → Piekļuve ir pakļauta pašreizējiem pakalpojumu sniedzēja ierobežojumiem Modeļi: 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 BEZMAKSAS) ```bash Informācijas panelis → Savienot Kiro → AWS Builder ID vai Google/GitHub → ~50 kredīti/mēnesī Modeļi: kr/claude-sonnet-4.5, kr/claude-haiku-4.5 ``` --- ## 🎨 Kombinācijas Jūs varat pārkārtot kombināciju kartes tieši **Informācijas panelis → Kombinācijas**, velkot rokturi uz katras kartes. Kārtība tiek saglabāta SQLite un atjaunota pārlādējot. ### Piemērs 1: Maksimālais abonements → Lēta rezerve ``` Informācijas panelis → Kombinācijas → Izveidot jaunu Nosaukums: premium-coding Modeļi: 1. cc/claude-opus-4-7 (Abonementa galvenais) 2. glm/glm-4.7 (Lēta rezerve, $0.6/1M) 3. minimax/MiniMax-M2.7 (Lētākā rezerves opcija, $0.3/1M) Lietot CLI: premium-coding ``` ### Piemērs 2: Tikai bezmaksas (Nulle izmaksu) ``` Nosaukums: free-combo Modeļi: 1. if/kimi-k2.7-code (uzskaitīta bezmaksas piekļuve; pakalpojumu sniedzēja ierobežojumi var būt piemērojami) 2. kr/qwen3-coder-next (Kiro bezmaksas rezerve) Izmaksas: pašlaik uzskaitītas kā $0; nosacījumi un pieejamība var mainīties ``` ## 🔧 CLI integrācija ### Cursor IDE **Izmantojot Cursor kā OmniRoute klientu** (maršrutēt Cursor tērzēšanu caur OmniRoute): ``` Settings → Models → Advanced: OpenAI API Base URL: http://localhost:20128/v1 OpenAI API Key: [no omniroute paneļa] Model: cc/claude-opus-4-7 ``` **Izmantojot OmniRoute kā Cursor pakalpojumu sniedzēju** (OmniRoute izsauc Cursor augšpusē): priekšroka **Panelis → Pakalpojumu sniedzēji → Cursor → Pieteikties ar Cursor**. Docker vidē skatiet [`docs/providers/CURSOR-DOCKER.md`](../providers/CURSOR-DOCKER.md). ### Claude Code Rediģējiet `~/.claude/settings.json`: ```json { "env": { "ANTHROPIC_BASE_URL": "http://localhost:20128", "ANTHROPIC_AUTH_TOKEN": "your-omniroute-api-key" } } ``` Izmantojiet šeit Claude saderīgo saknes galapunktu. Nepievienojiet `/v1` pie `ANTHROPIC_BASE_URL`. ### Codex CLI ```bash export OPENAI_BASE_URL="http://localhost:20128" export OPENAI_API_KEY="your-omniroute-api-key" codex "your prompt" ``` ### OpenClaw Rediģējiet `~/.openclaw/openclaw.json`: ```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" }] } } } } ``` **Vai izmantojiet paneli:** Rīki → OpenClaw → Automātiskā konfigurācija ### Cline / Continue / RooCode ``` Provider: OpenAI Compatible Base URL: http://localhost:20128/v1 API Key: [no paneļa] Model: cc/claude-opus-4-7 ``` --- ## 🚀 Ieviešana ### Globāla npm instalācija (Ieteicams) ```bash npm install -g omniroute # Izveidot konfigurācijas direktoriju mkdir -p ~/.omniroute # Izveidot .env failu (skatiet .env.example) cp .env.example ~/.omniroute/.env # Startēt serveri omniroute # Vai ar pielāgotu portu: omniroute --port 3000 ``` CLI automātiski ielādē `.env` no `~/.omniroute/.env` vai `./.env`. ### Tekstūras režīms Startējiet OmniRoute sistēmas tekstūrā: ```bash omniroute serve --tray ``` Komanda atgriežas pēc servera un tekstūras gatavības. Serveris turpina darboties bez terminala. Tekstūras režīms atbalsta macOS, Windows un grafiskās Linux sesijas. Tekstūras režīms automātiski neatver paneli. Izmantojiet tekstūras izvēlni šādām darbībām: - Atvērt paneli. - Atvērt `/dashboard/logs`. - Mainīt automātisko startēšanu. - Apturēt OmniRoute. Neapvienojiet `--tray` ar šādām opcijām: - `--daemon` - `--log` - `--no-recovery` Šie režīmi prasa dažādu procesu īpašumtiesības. Ieslēgt startēšanu nākamajā mašīnas pieteikšanās reizē: ```bash omniroute autostart enable ``` Automātiskā startēšana izmanto tekstūras režīmu macOS, Windows un grafiskās Linux sesijās. Bezmaksas Linux izmanto esošo systemd lietotāja pakalpojumu. Atspējot startēšanu pieteikšanās laikā: ```bash omniroute autostart disable ``` ### Atinstalēšana Kad OmniRoute vairs nav nepieciešams, mēs piedāvājam divas ātras skriptus tīrai noņemšanai: | Komanda | Darbība | | ------------------------ | ---------------------------------------------------------------------------------------------- | | `npm run uninstall` | Noņem sistēmas lietotni, bet **saglabā jūsu DB un konfigurācijas** `~/.omniroute` direktorijā. | | `npm run uninstall:full` | Noņem lietotni UN neatgriezeniski **izdzēš visas konfigurācijas, atslēgas un datubāzes**. | > Piezīme: Lai palaistu šīs komandas, dodieties uz OmniRoute projekta mapi (ja to klonējāt) un izpildiet tās. Alternatīvi, ja tā ir instalēta globāli, varat vienkārši palaist `npm uninstall -g omniroute`. ### VPS ieviešana ```bash 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 # Vai: pm2 start npm --name omniroute -- start ``` ### PM2 ieviešana (Zems atmiņas patēriņš) Serveriem ar ierobežotu RAM, izmantojiet atmiņas limita opciju: ```bash # Ar 512MB limitu (noklusējums) pm2 start npm --name omniroute -- start # Vai ar pielāgotu atmiņas limitu OMNIROUTE_MEMORY_MB=512 pm2 start npm --name omniroute -- start # Vai izmantojot ecosystem.config.js pm2 start ecosystem.config.js ``` Izveidojiet `ecosystem.config.js`: ```javascript 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 ```bash # Veidot attēlu (noklusējums = runner-cli ar codex/claude/droid instalētu) docker build -t omniroute:cli . # Pārnēsājams režīms (ieteicams) docker run -d --name omniroute -p 20128:20128 --env-file ./.env -v omniroute-data:/app/data omniroute:cli ``` Par hosta integrēto režīmu ar CLI binārjiem, skatiet Docker sadaļu galvenajos dokumentos. ### Void Linux (xbps-src) Void Linux lietotāji var iepakot un instalēt OmniRoute natīvi, izmantojot `xbps-src` krusteniskās kompilēšanas sistēmu. Tas automatizē Node.js standartizēto veidošanu kopā ar nepieciešamajiem `better-sqlite3` natīvajiem saitēm.
Skatīt xbps-src veidni ```bash # Veidnes fails '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 " 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() { # Noteikt mērķa CPU arhitektūru 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) Instalēt visas atkarības – izlaidīt skriptus NODE_ENV=development npm ci --ignore-scripts # 2) Veidot Next.js standartizēto pakotni npm run build # 3) Kopēt statiskos aktīvus standartizētajā cp -r .next/static .next/standalone/.next/static [ -d public ] && cp -r public .next/standalone/public || true # 4) Kompilēt better-sqlite3 natīvo saiti 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) Ievietot kompilēto saiti standartizētajā pakotnē 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) Noņemt ar arhitektūru saistītās sharp pakotnes rm -rf .next/standalone/node_modules/@img # 7) Kopēt pino izpildlaika atkarības, ko izlaida Next.js statiskā analīze: 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 # Novērst tukšo Next.js app router direktoriju noņemšanu ar post-install āķi 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 } ```
### Vides mainīgie | Mainīgais | Noklusējums | Apraksts | | --------------------------------------- | ------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | | `JWT_SECRET` | `omniroute-default-secret-change-me` | JWT parakstīšanas noslēpums (**mainiet ražošanā**) | | `INITIAL_PASSWORD` | `CHANGEME` | Pirmā pieteikšanās parole | | `DATA_DIR` | `~/.omniroute` | Datu direktorija (db, lietojums, žurnāli) | | `PORT` | sistēmas noklusējums | Pakalpojuma ports (`20128` piemēros) | | `HOSTNAME` | sistēmas noklusējums | Saistīšanas saimnieks (Docker noklusējums `0.0.0.0`) | | `NODE_ENV` | izpildlaika noklusējums | Iestatiet `production` ieviešanai | | `NEXT_PUBLIC_BASE_URL` | `http://localhost:20128` | Publiskā bāzes URL, kas parādīta panelī un eksponēta serverim (aizstāj veco `BASE_URL`) | | `NEXT_PUBLIC_CLOUD_URL` | `https://omniroute.dev` | Mākoņa sinhronizācijas gala punkta bāzes URL (aizstāj veco `CLOUD_URL`) | | `API_KEY_SECRET` | `endpoint-proxy-api-key-secret` | HMAC noslēpums ģenerētajiem API atslēgām | | `REQUIRE_API_KEY` | `false` | Pieprasīt Bearer API atslēgu uz `/v1/*` | | `ALLOW_API_KEY_REVEAL` | `false` | Ļaut autentificētiem paneļa lietotājiem pēc pieprasījuma atklāt pilnas uzglabātās API atslēgas vērtības | | `PROVIDER_LIMITS_SYNC_INTERVAL_MINUTES` | `70` | Servera puses atjaunināšanas biežums kešētajiem Pakalpojumu sniedzēju limitu datiem; saskarnes atjaunināšanas pogas joprojām izraisa manuālu sinhronizāciju | | `DISABLE_SQLITE_AUTO_BACKUP` | `false` | Atspējot automātiskās SQLite momentuzņēmumus pirms rakstīšanas/importēšanas/atjaunošanas; manuālās dublējumkopijas joprojām darbojas | | `APP_LOG_TO_FILE` | `true` | Iespējo lietojuma un audita žurnālu izvadi uz diska | | `AUTH_COOKIE_SECURE` | `false` | Piespiest `Secure` autentifikācijas sīkfailu (aiz HTTPS apgrieztā prokura) | | `CLOUDFLARED_BIN` | nav iestatīts | Izmantot esošu `cloudflared` bināru failu, nevis pārvaldītu lejupielādi | | `CLOUDFLARED_PROTOCOL` | `http2` | Transportlīdzeklis pārvaldītajiem Ātrajiem tuneļiem (`http2`, `quic` vai `auto`) | | `OMNIROUTE_MEMORY_MB` | `512` | Node.js krātuves limits MB | | `PROMPT_CACHE_MAX_SIZE` | `50` | Maksimālais pieprasījumu kešatmiņas ierakstu skaits | | `SEMANTIC_CACHE_MAX_SIZE` | `100` | Maksimālais semantiskās kešatmiņas ierakstu skaits | Par pilnu vides mainīgo atsauci skatiet [README](../README.md). --- ## 📄 Pieejamie modeļi
Skatīt visus pieejamos modeļus > Zemāk esošais saraksts ir apkopots no `open-sse/config/providerRegistry.ts` versijai 3.8.0. Mākoņu katalogi (Gemini, OpenRouter utt.) tiek dinamiski sinhronizēti — lai skatītu pilnu dzīvo katalogu, atveriet **Vadības panelis → Sniedzēji → [sniedzējs] → Pieejamie modeļi** vai izsauciet `GET /api/models/catalog`. > > Ja sniedzēja iebūvētais saraksts ir novecojis, izmantojiet šajā lapā esošo **Importēt no /models** (vai iespējojiet **Automātisko sinhronizāciju**), lai iegūtu dzīvo augšpus esošo katalogu. Tas tika verificēts versijā 3.8.50 ar LLM7.io (`gemini-3.1-flash-lite`) un UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`); Pollinations anonīmā piekļuve bija ierobežota ar augšpus esošo iestatījumu tajā pašā testa gājienā. **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` (+ piepūles līmeņi: `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/`)** — BEZMAKSAS OAuth: izmantojiet dzīvo katalogu, kas parādīts zem **Vadības panelis → Sniedzēji → Kiro → Pieejamie modeļi**. Pieejamība ir atkarīga no konta un plāna. **Qoder (`if/`)** — BEZMAKSAS 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/mēn. fiksēta maksa vai par lietošanu: `kimi/kimi-k2.6`, `kimi/kimi-k2.5` **DeepSeek (`ds/`)** — API atslēga: `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash` **Groq (`groq/`)** — Ultra-ātrs: `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 native: `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/`)** — ES mitināts: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/devstral-latest`, `mistral/codestral-latest` **Perplexity (`pplx/`)** — Meklēšanas papildināts: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar` **Together AI (`together/`)** — Atvērtā pirmkoda: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (bezmaksas), `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/`)** — Ātra inference: `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/`)** — Šķīvja mēroga: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b` **Cohere (`cohere/`)** — RAG vērsts: `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/`)** — Uzņēmumiem: `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/`)**: Sinhronizēts dzīvi no Google atkarībā no API atslēgas — nav statiska saraksta. Pievienojiet atslēgu **Vadības panelis → Sniedzēji**, pēc tam izmantojiet **Pieejamie modeļi**, lai importētu pašreizējo katalogu (piem., `gemini/gemini-3-pro`, `gemini/gemini-3-flash`). **Citi saderīgi sniedzēji** (izvēlēti): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (caur `aws-bedrock`), `azure-ai`, `openrouter` (caurlaides katalogs), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`. Katrs uztur savu modeļu sarakstu `providerRegistry.ts` un var tikt automātiski sinhronizēts, kad sniedzējs nodrošina `/models` galapunktu. **Piezīme par modeļu ID:** OmniRoute izmanto sniedzēja dzimtos ID (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). Daži ID satur punktota versija, jo tā to sagaida augšpus esošā API. Ja modelis nav uzskaitīts iepriekš, palaidiet `omniroute models --search ` vai izsauciet `GET /api/models/catalog`, lai apstiprinātu pieejamību.
--- ## 🧩 Papildu iespējas ### Pielāgoti modeļi Pievienojiet jebkuru modeļa ID jebkurai pakalpojumu sniedzējam, negaidot lietotnes atjauninājumu: ```bash # Izmantojot 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"}' # Saraksts: curl http://localhost:20128/api/provider-models?provider=openai # Noņemt: curl -X DELETE "http://localhost:20128/api/provider-models?provider=openai&model=gpt-5.2" ``` Vai arī izmantojiet vadības paneli: **Pakalpojumu sniedzēji → [Pakalpojumu sniedzējs] → Pielāgoti modeļi**. Piezīmes: - OpenRouter un OpenAI/Anthropic saderīgie pakalpojumu sniedzēji tiek pārvaldīti tikai no **Pieejamie modeļi**. Manuāla pievienošana, importēšana un automātiskā sinhronizācija nonāk tajā pašā pieejamo modeļu sarakstā, tāpēc šiem pakalpojumu sniedzējiem nav atsevišķas Pielāgoto modeļu sadaļas. - **Pielāgoto modeļu** sadaļa ir paredzēta pakalpojumu sniedzējiem, kuri nepiedāvā pārvaldītu pieejamo modeļu importēšanu. ### Savienojumu ķēžu veidošana ar OmniRoute vienaudžiem Citu OmniRoute vārtu var pievienot kā **Pielāgoto OpenAI saderīgo** pakalpojumu sniedzēju. Izmantojiet vienaudža `/v1` bāzes URL un šī vienaudža izdotu īpašu, minimālo atļauju API atslēgu. Savstarpējām vai vairāku lēcienu ķēdēm iespējojiet izvēlēto cilpas sargu katros vārtos: ```bash # gateway-a OMNIROUTE_INSTANCE_ID=gateway-a OMNIROUTE_PEER_URLS=http://gateway-b:20128/v1 OMNIROUTE_PEER_MAX_HOPS=4 ``` ```bash # gateway-b OMNIROUTE_INSTANCE_ID=gateway-b OMNIROUTE_PEER_URLS=http://gateway-a:20128/v1 OMNIROUTE_PEER_MAX_HOPS=4 ``` Tikai pieprasījumiem, kas nosūtīti uz skaidri atļautajām vienaudžu URL, tiek pievienots `X-OmniRoute-Peer-Trace` galvenes elements. Vārti atgrūst atkārtotu instance ID vai izsmeltas lēcienu budžeta HTTP `508 Loop Detected`; parastajiem augšstāvu pakalpojumu sniedzējiem netiek nosūtīta vienaudžu metadati. Vienaudžu ķēžu veidošana nav datu bāzes replikācija vai saimnieka pārslēgšanās. Katri vārti saglabā neatkarīgu SQLite stāvokli, kešatmiņas, likmju skaitītājus un sesijas. Izmantojiet veselības pārbaudītu reverso prokseru vai klienta pārslēgšanos aktīvai/pasīvai vai aktīvai/aktīvai pieejamībai un nekad nesamontējiet vienu SQLite datu bāzi vairākās darbojošās OmniRoute instancēs. ### Atsevišķas pakalpojumu sniedzēju maršrutēšanas Maršrutējiet pieprasījumus tieši uz konkrētu pakalpojumu sniedzēju ar modeļa validāciju: ```bash 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 ``` Pakalpojumu sniedzēja prefikss tiek automātiski pievienots, ja tas trūkst. Nesakritīgi modeļi atgriež `400`. ### Tīkla proksija konfigurācija ```bash # Iestatīt globālo proksiju curl -X PUT http://localhost:20128/api/settings/proxy \ -d '{"global": {"type":"http","host":"proxy.example.com","port":"8080"}}' # Atsevišķam pakalpojumu sniedzējam curl -X PUT http://localhost:20128/api/settings/proxy \ -d '{"providers": {"openai": {"type":"socks5","host":"proxy.example.com","port":"1080"}}}' # Testēt proksiju curl -X POST http://localhost:20128/api/settings/proxy/test \ -d '{"proxy":{"type":"socks5","host":"proxy.example.com","port":"1080"}}' ``` **Prioritāte:** Atslēgas specifisks → Kombo specifisks → Pakalpojumu sniedzēja specifisks → Globāls → Vides. ### Modeļu kataloga API ```bash curl http://localhost:20128/api/models/catalog ``` Atgriež modeļus, groupētus pēc pakalpojumu sniedzēja ar tipiem (`chat`, `embedding`, `image`). ### Mākoņa sinhronizācija - Sinhronizē pakalpojumu sniedzējus, kombinācijas un iestatījumus starp ierīcēm - Automātiska fona sinhronizācija ar noildzi + ātru pārtraukumu - Ražošanas vidē dodiet priekšroku servera puses `NEXT_PUBLIC_BASE_URL`/`NEXT_PUBLIC_CLOUD_URL` ### Cloudflare ātrais tuneļis - Pieejams **Vadības panelis → Galapunkti** Docker un citām pašmitinātām versijām - Izveido pagaidu `https://*.trycloudflare.com` URL, kas pārsūta uz jūsu pašreizējo OpenAI saderīgo `/v1` galapunktu - Pirmā iespējošana instalē `cloudflared` tikai tad, kad tas nepieciešams; vēlākie restarti izmanto to pašu pārvaldīto bināro failu - Ātrie tuneļi netiek automātiski atjaunoti pēc OmniRoute vai konteinera restarta; vajadzības gadījumā atkārtoti iespējojiet tos no vadības paneļa - Tuneļu URL ir īslaicīgi un mainās katru reizi, kad apturētat/sākat tuneli - Pārvaldītie Ātrie tuneļi pēc noklusējuma izmanto HTTP/2 transportlīdzekli, lai izvairītos no trokšņainiem QUIC UDP bufera brīdinājumiem ierobežotos konteineros - Iestatiet `CLOUDFLARED_PROTOCOL=quic` vai `auto`, ja vēlaties pārklāt pārvaldīto transporta izvēli - Iestatiet `CLOUDFLARED_BIN`, ja dodat priekšroku iepriekš instalētam `cloudflared` binārajam failam, nevis pārvaldītai lejupielādei - Cloudflare ātrā tuneļa, Tailscale Funnel un ngrok tuneļa paneļus var parādīt vai paslēpt **Iestatījumi → Izskats**. Paneļa paslēpšana neaptur darbojošos tuneli. ### LLM vārtu gudrība (9. posms) - **Semantiskā kešatmiņa** — Automātiski kešo nestramējamus, temperature=0 atbildes (apiet ar `X-OmniRoute-No-Cache: true`) - **Pieprasījumu idempotence** — Noņem dublikātus pieprasījumus 5 sekunžu laikā, izmantojot `Idempotency-Key` vai `X-Request-Id` galveni - **Progresa izsekošana** — Izvēlieties SSE `event: progress` notikumus ar `X-OmniRoute-Progress: true` galveni --- ### Tulkošanas darbnīca Piekļūstiet caur **Vadības panelis → Tulkotājs**. Atkļūdojiet un vizualizējiet, kā OmniRoute tulko pieprasījumus starp pakalpojumu sniedzējiem. | Režīms | Mērķis | | ------------------------ | ------------------------------------------------------------------------------------------ | | **Darbnīca** | Izvēlieties avota/mērķa formātus, ielīmējiet pieprasījumu un redzēt tulkojumu uzreiz | | **Tērzēšanas testētājs** | Sūtīt dzīvas tērzēšanas ziņas caur proksiju un pārbaudīt pilnu pieprasījuma/atbildes ciklu | | **Testa sols** | Veikt masu testus vairāku formātu kombinācijām, lai pārbaudītu tulkojuma precizitāti | | **Dzīvais monitorēšana** | Vērot reālā laika tulkojumus, kad pieprasījumi plūst caur proksiju | **Lietojuma gadījumi:** - Atkļūdojiet, kāpēc konkrēta klienta/pakalpojumu sniedzēja kombinācija neizdodas - Pārbaudiet, vai domāšanas birkas, rīku izsaukumi un sistēmas uzvednes tiek tulkotas pareizi - Salīdziniet formātu atšķirības starp OpenAI, Claude, Gemini un Responses API formātiem --- ### Maršrutēšanas stratēģijas Konfigurējiet caur **Vadības panelis → Iestatījumi → Maršrutēšana**. Vadības panelis parāda sešas visbiežāk izmantotās stratēģijas; kombinācijas un automātiskais maršrutētājs atbalsta plašāku kopu. **Vadības paneļa redzamās stratēģijas (konta līmeņa maršrutēšana):** | Stratēģija | Apraksts | | -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | | **Aizpildīt vispirms** | Izmanto kontus prioritārā secībā — galvenais konts apstrādā visus pieprasījumus līdz nepieejamībai | | **Apaļais riņķis** | Caur visiem kontiem ar konfigurējamu lipīguma ierobežojumu (noklusējums: 3 zvani uz kontu) | | **P2C (Divu izvēles spēks)** Izlases divus nejaušus kontus un maršrutē uz veselīgāko — līdzsvaro slodzi ar veselības apzināšanos | | **Nejaušs** Katram pieprasījumam nejauši izvēlas kontu, izmantojot Fisher-Yates sajaukšanu | | **Vismazāk izmantots** Maršrutē uz kontu ar vecāko `lastUsedAt` laikspiedolu, vienmērīgi sadalot trafiku | | **Izmaksu optimizēts** Maršrutē uz kontu ar zemāko prioritātes vērtību, optimizējot zemākās izmaksas pakalpojumu sniedzējiem | **Uzlabotas kombināciju un automātiskās stratēģijas** (konfigurējamas katrai kombinācijai vai caur `auto/*` prefiksiem — skatiet [AUTO-COMBO.md](../routing/AUTO-COMBO.md)): - `priority` — stingra secība, nekad neapaļo - `weighted` — proporcionalitātes trafika sadalījums pēc katra modeļa svariem - `fill-first` — iztukšo pirmo modeli, līdz sasniedz limitus - `round-robin` / `strict-random` / `random` - `p2c` (Divu izvēles spēks) - `least-used` un `cost-optimized` - `auto` — rezultātu vadīts starp visiem kandidātiem - `lkgp` (Pēdējais zināmais labs pakalpojumu sniedzējs) — piesaista pēdējam veiksmīgam pakalpojumu sniedzējam, pēc tam atgriežas pie noteikumiem - `context-optimized` — izvēlas modeli ar lielāko brīvo kontekstu logu - `context-relay` — ķēdē garā konteksta modeļus turpmākajiem gājieniem #### Ārējais lipīgās sesijas galvene Ārējai sesijas piederībai (piemēram, Claude Code/Codex aģentiem aiz reversiem prokseriem), sūtiet: ```http X-Session-Id: your-session-key ``` OmniRoute pieņem arī `x_session_id` un atgriež efektīvo sesijas atslēgu `X-OmniRoute-Session-Id`. Ja izmantojat Nginx un sūtāt galvenes ar pasvītrojumu, iespējojiet: ```nginx underscores_in_headers on; ``` #### Aizstājvārdu modeļu aliāzes Izveidojiet aizstājvārdu modeļus, lai pārvietotu modeļu nosaukumus: ``` Pattern: claude-sonnet-* → Target: cc/claude-sonnet-4-6 Pattern: gpt-* → Target: gh/gpt-5.3-codex ``` Aizstājvārdi atbalsta `*` (jebkuri simboli) un `?` (viens simbols). #### Atkāpšanās ķēdes Definējiet globālās atkāpšanās ķēdes, kas attiecas uz visiem pieprasījumiem: ``` Chain: production-fallback 1. cc/claude-opus-4-7 2. gh/gpt-5.3-codex 3. glm/glm-4.7 ``` --- ### Noturība un ķēžu pārtraucēji Konfigurējiet caur **Vadības panelis → Iestatījumi → Noturība**. OmniRoute īsteno pakalpojumu sniedzēja līmeņa noturību ar pieciem komponentiem: 1. **Pieprasījumu rinda un pulss** — Sistēmas līmeņa pieprasījumu veidošana: - **Pieprasījumi minūtē (RPM)** — Maksimālais pieprasījumu skaits minūtē uz kontu - **Minimālais laiks starp pieprasījumiem** — Minimālais atstatums milisekundēs starp pieprasījumiem - **Maksimālais vienlaicīgo pieprasījumu skaits** — Maksimālais vienlaicīgo pieprasījumu skaits uz kontu 2. **Savienojuma atvēsināšana** — Konfigurācija katram autentifikācijas tipam vienam savienojumam pēc atkārtojamām kļūdām: - **Bāzes atvēsināšana** — Noklusējuma atvēsināšanas logs atkārtojamām augšstāvu kļūdām - **Izmantot augšstāvu atkārtošanas mājienus** — Ievēro pilnvaroto `Retry-After` vai atiestatīšanas mājienus, ja tie ir norādīti - **Maksimālais atkāpšanās soļu skaits** — Maksimālais eksponenciālās atkāpšanās līmenis atkārtotām kļūdām 3. **Pakalpojumu sniedzēja ķēžu pārtraucējs** — Izseko galīgām pakalpojumu sniedzēja kļūdām, atzīmē pakalpojumu sniedzēju kā degradētu pie konfigurētā brīdinājuma sliekšņa un atver pārtraucēju, kad sasniedzams konfigurētais kļūdas slieksnis: - **Degradācijas slieksnis** — Secīgas pakalpojumu sniedzēja kļūdas pirms ievadīšanas `DEGRADED` - **Kļūdas slieksnis** — Secīgas pakalpojumu sniedzēja kļūdas pirms ievadīšanas `OPEN` - **Atiestatīšanas noildze** — Laika logs pirms pakalpojumu sniedzēja tiek pārbaudīts atkal - **CLOSED** (Veselīgs) — Pieprasījumi plūst normāli - **DEGRADED** — Pieprasījumi joprojām plūst, kamēr tiek izsekotas paaugstinātas kļūdas - **OPEN** — Pakalpojumu sniedzējs ir īslaicīgi bloķēts pēc atkārtotām kļūdām - **HALF_OPEN** — Testē, vai pakalpojumu sniedzējs ir atguvies Savienojuma apjoma `429` likmju ierobežojumi paliek **Savienojuma atvēsināšanā** un neieskaitās pakalpojumu sniedzēja pārtraucējā. Pakalpojumu sniedzēja pārtraucēja darbības stāvoklis tiek rādīts tikai **Vadības panelis → Veselība**. 4. **Gaidīt atvēsināšanos** — Ja katrs kandidāta savienojums jau atvēsinās, OmniRoute var gaidīt tuvāko atvēsināšanos un automātiski atkārtot to pašu klienta pieprasījumu. 5. **Likmju ierobežojumu automātiskā noteikšana** — Kad augšstāvu pakalpojumu sniedzēji atgriež skaidrus gaidīšanas logus, šie mājieni pārklāj vietējo savienojuma atvēsināšanos, kad iestatījums ir iespējots. **Profesionālais padoms:** Izmantojiet **Veselība** lapu, lai pārbaudītu un atiestatītu dzīvos pakalpojumu sniedzēja pārtraucējus pēc traucējuma. Noturības lapa maina tikai konfigurāciju. --- ### Datu bāzes eksportēšana / importēšana Pārvaldiet datu bāzes dublējumus **Vadības panelis → Iestatījumi → Sistēma un uzglabāšana**. | Darbība | Apraksts | | ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | **Eksportēt datu bāzi** | Lejupielādē pašreizējo SQLite datu bāzi kā `.sqlite` failu | | **Eksportēt visu (.tar.gz)** | Lejupielādē pilnu dublējuma arhīvu, tostarp: datu bāzi, iestatījumus, kombinācijas, pakalpojumu sniedzēju savienojumus (bez akreditācijas datiem), API atslēgu metadatus | | **Importēt datu bāzi** | Augšupielādē `.sqlite` failu, lai aizstātu pašreizējo datu bāzi. Pirms importēšanas dublējums tiek automātiski izveidots, ja vien `DISABLE_SQLITE_AUTO_BACKUP=true` | ```bash # API: Eksportēt datu bāzi curl -o backup.sqlite http://localhost:20128/api/db-backups/export # API: Eksportēt visu (pilns arhīvs) curl -o backup.tar.gz http://localhost:20128/api/db-backups/exportAll # API: Importēt datu bāzi curl -X POST http://localhost:20128/api/db-backups/import \ -F "file=@backup.sqlite" ``` **Importēšanas validācija:** Importētais fails tiek validēts attiecībā uz integritāti (SQLite pragma pārbaude), obligātām tabulām (`provider_connections`, `provider_nodes`, `combos`, `api_keys`) un lielumu (maks. 100MB). **Lietojuma gadījumi:** - Migrēt OmniRoute starp mašīnām - Veidot ārējos dublējumus katastrofu atjaunošanai - Kopīgot konfigurācijas starp komandas locekļiem (eksportēt visu → kopīgot arhīvu) --- ### Iestatījumu vadības panelis Iestatījumu lapa ir organizēta ** 7 cilnēs** vieglai navigācijai: | Cilne | Saturs | | ---------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **Vispārīgi** | Sistēmas uzglabāšanas rīki, noklusējuma uzvedība, Galapunkta tuneļa redzamība | | **Izskats** | Tēmas kontroles (gaisma/tumšs/sistēma), sānu joslas redzamības, paneļu pārslēdzēji Cloudflare/Tailscale/ngrok tuneļa kartiņām | | **AI** | Domāšanas budžets (tiek pārsūtīts / automātiski noņemts / pielāgots / adaptīvs — skatiet [THINKING_BUDGET.md](./THINKING_BUDGET.md)), globālā sistēmas uzvedne, uzvednes kešatmiņas statistika | | **Drošība** | Pieteikšanās/paroles iestatījumi, IP piekļuves kontrole, API autentifikācija `/models`, Pakalpojumu sniedzēja bloķēšana, uzvednes injekcijas sargs | | **Maršrutēšana** | Globālā maršrutēšanas stratēģija (Aizpildīt vispirms / Apaļais riņķis / P2C / Nejaušs / Vismazāk izmantots / Izmaksu optimizēts), aizstājvārdu modeļu aliāzes, atkāpšanās ķēdes, kombināciju noklusējumi | | **Noturība** | Pieprasījumu rinda, savienojuma atvēsināšana, pakalpojumu sniedzēja pārtraucēja konfigurācija un gaidīšanas-atvēsināšanas uzvedība | | **Uzlabots** | Globālā proksija konfigurācija (HTTP/SOCKS5), atsevišķu pakalpojumu sniedzēju proksija pārklājumi | Vispārīgi vairs nepārkopē lasīšanas režīma žurnālu un kešatmiņas piezīmes. Datu bāzes uzglabāšanas un optimizācijas iestatījumi tiek saglabāti caur `/api/settings/database`; manuāla kešatmiņas tīrīšana izmanto `DELETE /api/cache`. Pieprasījumu un proksiju žurnālu rindu ierobežojumus kontrolē `CALL_LOGS_TABLE_MAX_ROWS` un `PROXY_LOGS_TABLE_MAX_ROWS`. --- ### Izmaksas un budžeta pārvaldība Piekļūstiet caur **Vadības panelis → Izmaksas**. | Cilne | Mērķis | | ----------- | ------------------------------------------------------------------------------------------------------------------- | | **Budžets** | Iestatiet tēriņu ierobežojumus katrai API atslēgai ar ikdienas/iknedēļas/ikmēneša budžiem un reālā laika izsekošanu | | **Cenas** | Skatīt un rediģēt modeļu cenu ierakstus — izmaksas par 1K ievades/izvades tokeniem uz pakalpojumu sniedzēju | ```bash # API: Iestatīt budžetu curl -X POST http://localhost:20128/api/usage/budget \ -H "Content-Type: application/json" \ -d '{"keyId": "key-123", "limit": 50.00, "period": "monthly"}' # API: Iegūt pašreizējo budžeta statusu curl http://localhost:20128/api/usage/budget ``` **Izmaksu izsekošana:** Katrs pieprasījums reģistrē tokenu lietošanu un aprēķina izmaksas, izmantojot cenu tabulu. Skatiet sadalījumus **Vadības panelis → Lietošana** pēc pakalpojumu sniedzēja, modeļa un API atslēgas. --- ### Audio transkripcija OmniRoute atbalsta audio transkripciju caur OpenAI saderīgo galapunktu: ```bash POST /v1/audio/transcriptions Authorization: Bearer your-api-key Content-Type: multipart/form-data # Piemērs ar 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` ir vietējais Deepgram maršruts, kam nepieciešama Deepgram API atslēga. Ja konfigurēts tikai OpenRouter, izmantojiet `openrouter/deepgram/nova-3`. **Balss-teksts (transkripcija)** pakalpojumu sniedzēji: - `openai/` (whisper-saderīgs) - `groq/` (Groq Whisper Turbo) - `deepgram/` (Nova ģimene) - `assemblyai/` - `nvidia/` (Parakeet, Canary) - `huggingface/` (whisper varianti) - `qwen/` **Teksts-balsī (`POST /v1/audio/speech`)** pakalpojumu sniedzēji: - `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/` Atbalstītie audio formāti transkripcijai: `mp3`, `wav`, `m4a`, `flac`, `ogg`, `webm`. TTS izvades formāti ir atkarīgi no pakalpojumu sniedzēja (mp3, wav, opus, pcm, mulaw). --- ### Kombināciju līdzsvarošanas stratēģijas Konfigurējiet katra kombinācijas līdzsvarošanu **Vadības panelis → Kombinācijas → Izveidot/Editēt → Stratēģija**. | Stratēģija | Aprakss | | ----------------------------------------------------------------------- | ------------------------------------------------------------------------------------------ | | **Apaļais riņķis** | Rotē caur modeļiem secīgi | | **Prioritāte** | Vienmēr mēģina pirmo modeli; atgriežas tikai kļūdas gadījumā | | **Nejaušs** Izlases nejaušu modeli no kombinācijas katram pieprasījumam | | **Svērts** | Maršrutē proporcionali, pamatojoties uz piešķirtajiem svariem katrai modelei | | **Vismazāk izmantots** | Maršrutē uz modeli ar mazākajiem nesenajiem pieprasījumiem (izmanto kombinācijas metrikas) | | **Izmaksu optimizēts** | Maršrutē uz lētāko pieejamo modeli (izmanto cenu tabulu) | Globālos kombināciju noklusējumus var iestatīt **Vadības panelis → Iestatījumi → Maršrutēšana → Kombināciju noklusējumi**. Kombinācijas mērķa noildzes pēc noklusējuma mantotā pašreizējā pieprasījuma noildzi. Izmantojiet **Mērķa noildze (sekundes)** tikai kombināciju noklusējumos vai atsevišķā kombinācijā, kad īsākam katra mērķa ierobežojumam vajadzētu izraisīt ātrāku atkāpšanos. Nulles aiztures kombināciju optimizācijas ir izvēles. Atstājiet **Nulles aiztures optimizācijas** atspējotas, lai novērstu šīs aiztures funkcijas no sacenstības ar atkāpšanās mērķiem, izlaižot mērķus, pamatojoties uz TTFT vēsturi, vai saspiežot atkāpšanās pieprasījumus; to iespējojot, ļauj konfigurētā riska nodrošināšana, paredzošas TTFT izlaišanas un proaktīvā atkāpšanās saspiešana, lai samainītu maršrutēšanas/pieprasījuma ticamību pret zemāku aizmugures aizturi. Atspējojiet **Racionālisma tokena buferi**, kad augšstāvu pakalpojumu sniedzēji prasa stingrus `max_tokens` / `maxOutputTokens` ierobežojumus. Kad iespējots, kombinācijas maršrutēšana pievieno tikai racionālisma-modeļa atstarpi modeļiem ar zināmu izvades griestu un atstāj klienta tokena ierobežojumu nemainīgu, ja drošais bufera vērtība pārsniegtu šo griestu. Ja klienta ierobežojums jau ir virs zināma griesta, OmniRoute to samazina līdz šim griestam pirms augšstāvu pieprasījuma nosūtīšanas. --- ### Veselības vadības panelis Piekļūstiet caur **Vadības panelis → Veselība**. Reālā laika sistēmas veselības pārskats ar 6 kartiņām: | Kartiņa | Ko tā rāda | | ---------------------------------- | ---------------------------------------------------------------------- | | **Sistēmas statuss** | Darbības laiks, versija, atmiņas lietošana, datu direktorijs | | **Pakalpojumu sniedzēja veselība** | Globālais pakalpojumu sniedzēja ķēžu pārtraucēja darbības stāvoklis | | **Likmju ierobežojumi** | Aktīvās savienojuma atvēsināšanas uz kontu ar atlikušo laiku | | **Aktīvās bloķēšanas** | Aktīvās modeļa apjoma bloķēšanas un īslaicīgās izslēgšanas | | **Paraksta kešatmiņa** | Noņemšanas kešatmiņas statistika (aktīvas atslēgas, trāpījumu līmenis) | | **Aiztures telemetrija** | p50/p95/p99 aiztures agregācija katram pakalpojumu sniedzējam | **Profesionālais padoms:** Veselības lapa automātiski atjaunojas ik pēc 10 sekundēm. Izmantojiet ķēžu pārtraucēja kartiņu, lai noteiktu, kuri pakalpojumu sniedzēji piedzīvo problēmas. --- ## 🤖 Automātiskā maršrutēšana (bez konfigurācijas) OmniRoute piegādā **rezultātu virzītu automātisko maršrutētāju**, kas katram pieprasījumam visos savienotajos pakalpojumos izvēlas labāko modeli — nav jāuztur kombinācija. Vienkārši nosūtiet pieprasījumu ar kādu no `auto/*` prefiksiem, un OmniRoute dinamiski izveidos virtuālu kombināciju, novērtējot kandidātus pēc aiztures, izmaksām, panākumu līmeņa, konteksta piemērotības, modeļa atbilstības uzdevumam, neseno kļūmju, kvotas un ķēdes pārtrauktāja stāvokļa. | Prefikss | Optimizē šādām vajadzībām | | -------------- | ----------------------------------------------------------------------------------------------------------- | | `auto` | Līdzsvarots noklusējums (aizture × izmaksas × panākumu līmenis) | | `auto/coding` | Programmēšanas uzdevumi: dod priekšroku Claude, GPT-5, GLM, Kimi, Qwen Coder, DeepSeek programmētājiem | | `auto/cheap` | Zemākās $/token, pieņem augstāku aizturi | | `auto/fast` | Zemākā aizture, ignorē izmaksas | | `auto/offline` | Tikai lokālie pakalpojumu sniedzēji (Ollama, vLLM, llama.cpp) — noderīgi aizsargātām vidēm | | `auto/smart` | Prāta spēja vispirms (Opus, GPT-5 xhigh, R1, GLM 5.1 reasoning) | | `auto/lkgp` | "Pēdējais zināmais labs pakalpojums" — piestiprina pie pēdējā veiksmīgā pakalpojuma, tad izmanto noteikumus | Piemērs: ```bash 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 }' ``` Automātiskais maršrutētājs ir pilnībā aprakstīts [AUTO-COMBO.md](../routing/AUTO-COMBO.md) — ieskaitot to, kā pielāgot vērtēšanas svarus, bloķēt pakalpojumu sniedzējus un pārbaudīt maršrutēšanas lēmumus sadaļā **Dashboard → Auto Combo**. --- ## 🔌 MCP & A2A integrācija OmniRoute ir gan **MCP serveris** (Model Context Protocol), gan **A2A serveris** (Agent-to-Agent JSON-RPC 2.0). Jebkurš MCP saderīgs IDE vai aģenta saimnieks var tieši izsaukt OmniRoute rīkus — nav nepieciešama papildu iesaiņošana. ### MCP pārvadātāji - **SSE**: `http://localhost:20128/api/mcp/sse` - **Streamable HTTP**: `http://localhost:20128/api/mcp/stream` - **stdio**: `omniroute --mcp` (IDE spraudņiem, kuri dod priekšroku stdio) ### Savienojums ar Claude Desktop Rediģējiet `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS) vai atbilstošo failu operētājsistēmā Windows/Linux: ```json { "mcpServers": { "omniroute": { "command": "omniroute", "args": ["--mcp"] } } } ``` ### Savienojums ar Cursor / Continue / VS Code MCP Izmantojiet SSE URL `http://localhost:20128/api/mcp/sse` un Bearer API atslēgu, kas ģenerēta sadaļā **Dashboard → API Keys**. ### Pielāgošanas līmeņi MCP pašlaik definē 32 nosauktus pielāgošanas līmeņus. Katru Bearer atslēgu var ierobežot līdz konkrētiem līmeņiem — skatiet [MCP-SERVER.md](../frameworks/MCP-SERVER.md) par autoritatīvo pielāgošanas līmeņu un rīku inventāru un [A2A-SERVER.md](../frameworks/A2A-SERVER.md) par JSON-RPC shēmu. --- ## 🧠 Prasmju sistēma OmniRoute piedāvā paplašināmu **prasmju ietvaru** (`src/lib/skills/`), lai aģenti un A2A galapunkts varētu izpildīt jomas specifiskas rutīnas (piemēram, `code-review`, `summarize`, `extract-facts`, `web-research`). - **Tirgus lietotāja saskarne** — Pārlūkojiet un instalējiet prasmes no **Vadības paneļa → Prasmes** - **Atslēgu mērogi** — Ierobežojiet, kuras API atslēgas var izsaukt kuras prasmes - **Pielāgotas prasmes** — Novietojiet TypeScript failu mapē `src/lib/a2a/skills/`, reģistrējiet to, un tas uzreiz kļūst pieejams izsaukšanai caur A2A Pilna atsauce: [SKILLS.md](../frameworks/SKILLS.md). --- ## 💾 Atmiņas sistēma OmniRoute saglabā **ilgtermiņa sarunas atmiņu** ar hibrīdmeklēšanu: - **SQLite FTS5** atslēgvārdu meklēšanai iepriekšējās sarunās - **Qdrant vektoru krātuve** (pēc izvēles) semantiskai atsaukšanai - **Automātisku faktu ekstrakcija** — pēc katras sesijas tiek apkopotas entītijas, preferences un lēmumi un saglabātas tabulā `memory_facts` - Atmiņas ir ierobežotas pēc API atslēgas un pēc sesijas Pārvaldiet atmiņas **Vadības panelī → Atmiņa** (meklēšana, rediģēšana, eksportēšana, iztīrīšana). HTTP saskarne (`/api/memory/*`) ļauj aģentiem programmatiski pievienot un vaicāt faktus — skatiet [MEMORY.md](../frameworks/MEMORY.md). --- ## 🔒 Tīmekļa āķi Abonējiet OmniRoute notikumus reāllaika uzraudzībai un automatizācijai. - Izveidojiet tīmekļa āķi **Vadības panelī → Tīmekļa āķi** ar mērķa URL un HMAC parakstu noslēpumu - Pieejamie notikumi: `request.completed`, `request.failed`, `provider.unavailable`, `budget.exceeded`, `combo.switched`, `circuit_breaker.opened`, `circuit_breaker.closed` - Katrs satura fragments satur `X-OmniRoute-Signature` (HMAC-SHA256) verifikācijai - Atkārtojumi: 3 mēģinājumi ar eksponenciālu atkāpšanos, pēc tam mirušās vēstules rinda Pilna shēma atrodama [WEBHOOKS.md](../frameworks/WEBHOOKS.md). --- ## ☁️ Mākoņa aģenti OmniRoute integrējas ar mākoņa kodēšanas aģentiem (**OpenAI Codex Cloud**, **Devin**, **Jules**, **Antigravity**), lai jūs varētu uzdot ilgstošus uzdevumus no tā paša vadības paneļa, kas apstrādā jūsu vietējo maršrutēšanu. - Izveidojiet uzdevumus **Vadības panelī → Mākoņa aģenti** vai caur `POST /api/v1/agents/tasks` - Izsekojiet statusu, žurnālus un izstrādājumus katram uzdevumam - Izmantojiet savu API atslēgu katram pakalpojuma sniedzējam — akreditācijas dati nekad neatstāj OmniRoute instanci Pilna atsauce: [CLOUD_AGENT.md](../frameworks/CLOUD_AGENT.md). --- ## 🛠️ Programmatiskā pārvaldība Jūs varat pārvaldīt katru OmniRoute resursu (sniedzējus, kombinācijas, atslēgas, iestatījumus) caur HTTP, izmantojot **Bearer atslēgu ar `manage` mērogu**. Ģenerējiet atslēgu **Vadības panelī → API atslēgas → Jauna atslēga → Mērogs: manage**, pēc tam: ```bash # Sarakstīt sniedzējus curl http://localhost:20128/api/providers \ -H "Authorization: Bearer $OMNIROUTE_MANAGE_KEY" # Pievienot sniedzēja savienojumu 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" }' # Izveidot kombināciju 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" }] }' # Sarakstīt/izveidot API atslēgas 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"] }' ``` Skatiet [API_REFERENCE.md](../reference/API_REFERENCE.md) pilnam galapunktu katalogam un pieprasījumu/atbildu shēmām. --- ## 💻 Iekšējais CLI OmniRoute piedāvā iekšējo CLI (`omniroute …`) iestatīšanai, diagnostikai un darbības kontrolei. Šis ir **atsevišķs no "CLI rīki" lapas informācijas panelī**, kas konfigurē trešās puses CLI (Claude Code, Cursor, Codex, Cline, …), lai tie varētu sazināties ar OmniRoute. ```bash omniroute setup # Interaktīvais vednis (parole, pakalpojumu sniedzēji, kombinācijas) omniroute setup --non-interactive # Piemērots CI/CD omniroute doctor # Veselības diagnostika (datu direktorija, DB, pakalpojumu sniedzēji, porti) omniroute providers available # Uzskaitīt atbalstītos pakalpojumu sniedzējus omniroute providers list # Uzskaitīt konfigurētos savienojumus omniroute providers test # Tiešsaistes testēšana pakalpojumu sniedzēja savienojumam omniroute combos list # Uzskaitīt kombinācijas omniroute combos switch # Iestatīt noklusējuma kombināciju omniroute models # Uzskaitīt pieejamos modeļus (--json, --search) omniroute keys add | list | remove # Pārvaldīt API atslēgas no termināļa omniroute backup # Konfigurācijas + DB momentuzņēmums omniroute restore [] # Atjaunot no momentuzņēmuma omniroute health # Detalizēta veselības informācija (pārtraucēji, kešatmiņa, atmiņa) omniroute quota # Pakalpojumu sniedzēja kvotas lietojums omniroute mcp status # MCP servera statuss omniroute a2a status # A2A servera statuss omniroute tunnel list|create|stop # Cloudflare/Tailscale/ngrok tuneļi omniroute reset-password # Atiestatīt administratora paroli omniroute --mcp # Sākt MCP serveri pār stdio omniroute --port 3000 # Sākt serveri pielāgoto portu ``` Padoms: savienojiet `omniroute doctor --json` ar savu monitorēšanas rīku, lai brīdinātu par neveselīgiem pakalpojumu sniedzēja savienojumiem. --- ## 🖥️ Darbvirsmas lietojumprogramma (Electron) OmniRoute ir pieejams kā oriģināla darbvirsmas lietojumprogramma operētājsistēmām Windows, macOS un Linux. ### Uzstādīšana ```bash # No electron direktorijas: cd electron npm install # Izstrādes režīms (savienojas ar darbojošos Next.js izstrādes serveri): npm run dev # Ražošanas režīms (izmanto patstāvīgo būvi): npm start ``` ### Instalētāju izveide ```bash cd electron npm run build # Pašreizējā platforma npm run build:win # Windows (.exe NSIS) npm run build:mac # macOS (.dmg universal) npm run build:linux # Linux (.AppImage) ``` Izvade → `electron/dist-electron/` ### Galvenās iespējas | Iespēja | Apraksts | | ---------------------------- | ----------------------------------------------------------- | | **Servera gatavība** | Pirms loga rādīšanas izpēta serveri (nav tukša ekrāna) | | **Sistes tray** | Minimizēt tray, mainīt portu, iziet no tray izvēlnes | | **Portu pārvaldība** | Mainīt servera portu no tray (automātiski restartē serveri) | | **Satura drošības politika** | Ierobežojoša CSP caur sesijas galvenēm | | **Viena instance** | Var darboties tikai viena lietojumprogrammas instance | | **Bezsaistes režīms** | Iekļautais Next.js serveris strādā bez interneta | ### Vides mainīgie | Mainīgais | Noklusējums | Apraksts | | --------------------- | ----------- | --------------------------------- | | `OMNIROUTE_PORT` | `20128` | Servera ports | | `OMNIROUTE_MEMORY_MB` | `512` | Node.js heap limits (64–16384 MB) | 📖 Pilna dokumentācija: [`electron/README.md`](../../electron/README.md)