# User Guide (Magyar) 🌐 **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) · 🇦🇲 [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) · 🇱🇻 [lv](../../../lv/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) · 🇦🇲 [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) · 🇱🇻 [lv](../../../lv/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) Teljes körű útmutató a szolgáltatók konfigurálásához, a kombinációk létrehozásához, a CLI-eszközök integrálásához és az OmniRoute üzembe helyezéséhez. --- ## Tartalomjegyzék - [Árak röviden](#-pricing-at-a-glance) - [Felhasználási esetek](#-use-cases) - [Szolgáltatók beállítása](#-provider-setup) - [CLI-integráció](#-cli-integration) - [Telepítés](#-deployment) - [Elérhető modellek](#-available-models) - [Speciális funkciók](#-advanced-features) - [Automatikus útválasztás (konfiguráció nélkül)](#-auto-routing-zero-config) - [MCP- és A2A-integráció](#-mcp--a2a-integration) - [Készségrendszer](#-skills-system) - [Memóriarendszer](#-memory-system) - [Webhookok](#-webhooks) - [Felhőalapú ügynökök](#-cloud-agents) - [Programozott kezelés](#-programmatic-management) - [Belső CLI](#-internal-cli) - [Asztali alkalmazás (Electron)](#-desktop-application-electron) --- ## 💰 Árak röviden | Csomag | Szolgáltató | Költség | Kvóta visszaállítása | Erre a legjobb | | ----------------- | ----------------- | -------------- | ----------------------------- | ---------------------------------- | | **💳 ELŐFIZETÉS** | Claude Code (Pro) | $20/hó | 5 óránként + hetente | Már rendelkezik előfizetéssel | | | Codex (Plus/Pro) | $20-200/hó | 5 óránként + hetente | OpenAI-felhasználóknak | | | GitHub Copilot | $10-19/hó | Havonta | GitHub-felhasználóknak | | **🔑 API-KULCS** | DeepSeek | Használatalapú | Nincs | Olcsó következtetéshez | | | Groq | Használatalapú | Nincs | Ultragyors inferenciához | | | xAI (Grok) | Használatalapú | Nincs | Grok 4-alapú következtetéshez | | | Mistral | Használatalapú | Nincs | EU-ban üzemeltetett modellekhez | | | Perplexity | Használatalapú | Nincs | Kereséssel kiegészített működéshez | | | Together AI | Használatalapú | Nincs | Nyílt forráskódú modellekhez | | | Fireworks AI | Használatalapú | Nincs | Gyors FLUX-képgeneráláshoz | | | Cerebras | Használatalapú | Nincs | Szeletszintű sebességhez | | | Cohere | Használatalapú | Nincs | Command R+ RAG-hoz | | | NVIDIA NIM | Használatalapú | Nincs | Vállalati modellekhez | | | Baidu Qianfan | Használatalapú | Nincs | ERNIE-modellekhez | | **💰 OLCSÓ** | GLM-4.7 | $0.6/1M | Naponta 10 órakor | Kedvező árú tartaléknak | | | MiniMax M2.1 | $0.2/1M | Gördülő 5 órás időszak | A legolcsóbb lehetőség | | | Kimi K2 | $9/hó, fix | 10M token/hó | Kiszámítható költséghez | | **🆓 INGYENES** | Qoder | $0 | Szolgáltatói korlátok szerint | Ellenőrizze az aktuális kínálatot | | | Kiro | $0 | ~50 kredit/hó | Ingyenes Claude-hoz | --- ## 🎯 Felhasználási esetek ### 1. eset: „Van Claude Pro-előfizetésem” **Probléma:** A kvóta kihasználatlanul lejár, intenzív kódolás közben pedig életbe lépnek a sebességkorlátok ``` Kombináció: "maximize-claude" 1. cc/claude-opus-4-7 (az előfizetés teljes kihasználása) 2. glm/glm-4.7 (olcsó tartalék a kvóta kimerülésekor) 3. if/qwen3.8-max-preview (ingyenes vészhelyzeti tartalék) Havi költség: $20 (előfizetés) + ~$5 (tartalék) = összesen $25 szemben a $20 + korlátok elérése = frusztráció lehetőséggel ``` ### 2. eset: „Nulla költséget szeretnék” **Probléma:** Nem engedhetem meg magamnak az előfizetéseket, de megbízható AI-alapú kódolásra van szükségem ``` Kombináció: "zero-cost" 1. if/kimi-k2.7-code (ingyenes hozzáférésként feltüntetve; sebességkorlátok érvényesek lehetnek) 2. kr/qwen3-coder-next (ingyenes Kiro-tartalék) Havi költség: $0 Minőség: ellenőrizze a modellt, a korlátokat, az adatvédelmet és az SLA-t a saját munkaterheléséhez ``` ### 3. eset: „Megszakítás nélküli, éjjel-nappali kódolásra van szükségem” **Probléma:** Szoros határidők, nem engedhetem meg magamnak a leállást ``` Kombináció: "always-on" 1. cc/claude-opus-4-7 (legjobb minőség) 2. cx/gpt-5.5 (második előfizetés) 3. glm/glm-4.7 (olcsó, naponta visszaáll) 4. minimax/MiniMax-M2.1 (legolcsóbb, 5 órás visszaállítás) 5. if/deepseek-v4-flash (ingyenes hozzáférésként feltüntetve; sebességkorlátok érvényesek lehetnek) Eredmény: 5 tartalékréteg növeli a hibatűrést; a külső szolgáltatások rendelkezésre állása nem garantált Havi költség: $20-200 (előfizetések) + $10-20 (tartalék) ``` ### 4. eset: „INGYENES AI-t szeretnék az OpenClaw-ban” **Probléma:** Teljesen ingyenes AI-asszisztensre van szükségem az üzenetküldő alkalmazásokban ``` Kombináció: "openclaw-free" 1. if/qwen3.8-max-preview (ingyenes hozzáférésként feltüntetve; sebességkorlátok érvényesek lehetnek) 2. if/deepseek-v4-flash (ingyenes hozzáférésként feltüntetve; sebességkorlátok érvényesek lehetnek) 3. if/kimi-k2.7-code (ingyenes hozzáférésként feltüntetve; sebességkorlátok érvényesek lehetnek) Havi költség: $0 Elérés ezeken keresztül: WhatsApp, Telegram, Slack, Discord, iMessage, Signal... ``` --- ## 📖 Szolgáltatók beállítása API-kulcsos kapcsolatok CSV- vagy JSON-fájlból történő tömeges hozzáadásához használja az **Irányítópult → Szolgáltatók → Importálás fájlból** lehetőséget. Az oszlopok pozícióhoz kötöttek (`provider,name,apiKey,baseUrl,priority`); a `provider` értékének már létező felügyelt szolgáltatónak vagy kompatibilis csomópontnak kell lennie. Lásd: [Szolgáltatók importálása CSV- vagy JSON-fájlból](../providers/CSV-IMPORT.md). ### 🔐 Előfizetéses szolgáltatók #### Claude Code (Pro/Max) ```bash Irányítópult → Szolgáltatók → Claude Code csatlakoztatása → OAuth-bejelentkezés → Automatikus tokenfrissítés → 5 órás és heti kvótakövetés Modellek: cc/claude-opus-4-7 cc/claude-sonnet-4-6 cc/claude-haiku-4-5-20251001 ``` **Profi tipp:** Összetett feladatokhoz használja az Opust, nagyobb sebességhez pedig a Sonnetet. Az OmniRoute modellenként követi a kvótát! A Claude-dal és Claude Code-dal kompatibilis útvonalak megőrzik a `max` gondolkodási ráfordítást az Opus és Sonnet modelleknél. A Haiku modellek nem fogadják el a `max` ráfordítási szintet, ezért az OmniRoute a kérés upstream szolgáltatónak történő elküldése előtt magas gondolkodási keretre csökkenti azt. #### OpenAI Codex (Plus/Pro) ```bash Irányítópult → Szolgáltatók → Codex csatlakoztatása → OAuth-bejelentkezés (1455-ös port) → 5 órás és heti visszaállítás Modellek: cx/gpt-5.5 cx/gpt-5.4 cx/gpt-5.3-codex cx/gpt-5.3-codex-spark ``` #### GitHub Copilot ```bash Irányítópult → Szolgáltatók → GitHub csatlakoztatása → OAuth a GitHubon keresztül → Havi visszaállítás (a hónap 1. napján) Modellek: gh/gpt-5.5 gh/gpt-5.4 gh/claude-sonnet-4.6 gh/claude-opus-4.7 gh/gemini-3.1-pro-preview ``` ### 💰 Olcsó szolgáltatók #### GLM-4.7 (Napi visszaállítás, $0.6/1M) 1. Regisztráció: [Zhipu AI](https://open.bigmodel.cn) 2. Szerezze be az API-kulcsot a Coding Planből 3. Irányítópult → API-kulcs hozzáadása: Szolgáltató: `glm`, API-kulcs: `your-key` **Használat:** `glm/glm-4.7` — **Profi tipp:** A Coding Plan háromszoros kvótát kínál a költség hetedéért! Naponta 10:00-kor áll vissza. #### MiniMax M2.1 (5 órás visszaállítás, $0.20/1M) 1. Regisztráció: [MiniMax](https://www.minimax.io) 2. Szerezze be az API-kulcsot → Irányítópult → API-kulcs hozzáadása **Használat:** `minimax/MiniMax-M2.1` — **Profi tipp:** A legolcsóbb lehetőség hosszú kontextushoz (1M token)! #### Kimi K2 (fix $9/hónap) 1. Előfizetés: [Moonshot AI](https://platform.kimi.ai?aff=omniroute) 2. Szerezze be az API-kulcsot → Irányítópult → API-kulcs hozzáadása **Használat:** `kimi/kimi-k2.5` — **Profi tipp:** Fix $9/hónap 10M tokenért = ténylegesen $0.90/1M költség! #### Baidu Qianfan / ERNIE 1. Regisztráció: [Baidu AI Cloud Qianfan](https://cloud.baidu.com/product/wenxinworkshop) 2. Hozzon létre egy Qianfan API-kulcsot → Irányítópult → API-kulcs hozzáadása: Szolgáltató: `qianfan` **Használat:** `qianfan/ernie-5.1`, `qianfan/ernie-x1.1` vagy egy másik, OpenAI-kompatibilis Qianfan-modellazonosító. ### 🆓 INGYENES szolgáltatók A hitelesítést nem igénylő ingyenes szolgáltatók oldalán egy kapcsoló található a **Nincs szükség hitelesítésre** lehetőség mellett. Kikapcsolása letiltja az adott szolgáltatót, eltávolítja azt a Szolgáltatók konfigurált/tömörített nézeteiből, a modelljeit pedig eltávolítja a `/v1/models` útvonalról. #### Qoder (9 INGYENES modell) ```bash Irányítópult → Qoder csatlakoztatása → OAuth-bejelentkezés → A hozzáférésre a szolgáltató aktuális korlátai vonatkoznak Modellek: 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 (INGYENES Claude) ```bash Irányítópult → Kiro csatlakoztatása → AWS Builder ID vagy Google/GitHub → ~50 kredit/hónap Modellek: kr/claude-sonnet-4.5, kr/claude-haiku-4.5 ``` --- ## 🎨 Kombinációk A kombinációs kártyákat közvetlenül az **Irányítópult → Kombinációk** oldalon rendezheted át az egyes kártyák fogantyújának húzásával. A sorrendet az SQLite tárolja, és újratöltéskor visszaállítja. ### 1. példa: Előfizetés maximalizálása → Olcsó tartalék ``` Irányítópult → Kombinációk → Új létrehozása Név: premium-coding Modellek: 1. cc/claude-opus-4-7 (Elsődleges előfizetés) 2. glm/glm-4.7 (Olcsó tartalék, $0.6/1M) 3. minimax/MiniMax-M2.7 (Legolcsóbb végső tartalék, $0.3/1M) Használat a CLI-ben: premium-coding ``` ### 2. példa: Csak ingyenes (nulla költség) ``` Név: free-combo Modellek: 1. if/kimi-k2.7-code (ingyenes hozzáférésűként feltüntetve; szolgáltatói korlátozások érvényesek lehetnek) 2. kr/qwen3-coder-next (Ingyenes Kiro-tartalék) Költség: jelenleg $0-ként van feltüntetve; a feltételek és az elérhetőség változhatnak ``` --- ## 🔧 CLI-integráció ### Cursor IDE **A Cursor használata OmniRoute-kliensként** (a Cursor csevegésének átirányítása az OmniRoute-on keresztül): ``` Beállítások → Modellek → Speciális: OpenAI API alap-URL: http://localhost:20128/v1 OpenAI API-kulcs: [az OmniRoute irányítópultjáról] Modell: cc/claude-opus-4-7 ``` **Az OmniRoute használata Cursor-szolgáltatóként** (az OmniRoute a Cursor felsőbb szintű szolgáltatását hívja): részesítsd előnyben az **Irányítópult → Szolgáltatók → Cursor → Bejelentkezés Cursorral** lehetőséget. Dockerben lásd: [`docs/providers/CURSOR-DOCKER.md`](../providers/CURSOR-DOCKER.md). ### Claude Code Szerkeszd a `~/.claude/settings.json` fájlt: ```json { "env": { "ANTHROPIC_BASE_URL": "http://localhost:20128", "ANTHROPIC_AUTH_TOKEN": "your-omniroute-api-key" } } ``` Itt a Claude-kompatibilis gyökérvégpontot használd. Ne fűzd hozzá a `/v1` útvonalat az `ANTHROPIC_BASE_URL` értékéhez. ### Codex CLI ```bash export OPENAI_BASE_URL="http://localhost:20128" export OPENAI_API_KEY="your-omniroute-api-key" codex "your prompt" ``` ### OpenClaw Szerkeszd a `~/.openclaw/openclaw.json` fájlt: ```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" }] } } } } ``` **Vagy használd az irányítópultot:** CLI-eszközök → OpenClaw → Automatikus konfigurálás ### Cline / Continue / RooCode ``` Szolgáltató: OpenAI-kompatibilis Alap-URL: http://localhost:20128/v1 API-kulcs: [az irányítópultról] Modell: cc/claude-opus-4-7 ``` --- ## 🚀 Telepítés ### Globális npm-telepítés (ajánlott) ```bash npm install -g omniroute # Konfigurációs könyvtár létrehozása mkdir -p ~/.omniroute # .env fájl létrehozása (lásd: .env.example) cp .env.example ~/.omniroute/.env # Kiszolgáló indítása omniroute # Vagy egyéni porttal: omniroute --port 3000 ``` A CLI automatikusan betölti a `.env` fájlt a `~/.omniroute/.env` vagy a `./.env` helyről. ### Tálcamód Indítsd el az OmniRoute-ot a rendszertálcán: ```bash omniroute serve --tray ``` A parancs akkor tér vissza, amikor a kiszolgáló és a tálca készen áll. A kiszolgáló a terminál nélkül is tovább fut. A tálcamód támogatja a macOS, a Windows és a grafikus Linux-munkameneteket. A tálcamód nem nyitja meg automatikusan az irányítópultot. A következő műveletekhez használd a tálcamenüt: - Az irányítópult megnyitása. - A `/dashboard/logs` megnyitása. - Az automatikus indítás módosítása. - Az OmniRoute leállítása. Ne használd a `--tray` kapcsolót a következő beállításokkal együtt: - `--daemon` - `--log` - `--no-recovery` Ezek a módok eltérő folyamattulajdonlást igényelnek. Az indítás engedélyezése a gépre történő következő bejelentkezéskor: ```bash omniroute autostart enable ``` Az automatikus indítás tálcamódot használ macOS, Windows és grafikus Linux-munkamenetekben. A grafikus felület nélküli Linux a meglévő systemd felhasználói szolgáltatást használja. Az indítás letiltása bejelentkezéskor: ```bash omniroute autostart disable ``` ### Eltávolítás Ha már nincs szükséged az OmniRoute-ra, két gyors parancsfájlt biztosítunk a tiszta eltávolításhoz: | Parancs | Művelet | | ------------------------ | -------------------------------------------------------------------------------------------------------------------- | | `npm run uninstall` | Eltávolítja a rendszeralkalmazást, de **megtartja az adatbázist és a konfigurációkat** a `~/.omniroute` könyvtárban. | | `npm run uninstall:full` | Eltávolítja az alkalmazást, ÉS véglegesen **törli az összes konfigurációt, kulcsot és adatbázist**. | > Megjegyzés: A parancsok futtatásához lépj az OmniRoute projektmappájába (ha klónoztad), majd futtasd őket. Ha globálisan telepítetted, egyszerűen futtathatod az `npm uninstall -g omniroute` parancsot. ### VPS-telepítés ```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 # Vagy: pm2 start npm --name omniroute -- start ``` ### PM2-telepítés (kevés memória) Korlátozott RAM-mal rendelkező kiszolgálók esetén használd a memóriakorlát beállítását: ```bash # 512 MB-os korláttal (alapértelmezett) pm2 start npm --name omniroute -- start # Vagy egyéni memóriakorláttal OMNIROUTE_MEMORY_MB=512 pm2 start npm --name omniroute -- start # Vagy az ecosystem.config.js használatával pm2 start ecosystem.config.js ``` Hozd létre az `ecosystem.config.js` fájlt: ```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 # Rendszerkép létrehozása (alapértelmezett = runner-cli előtelepített codex/claude/droid eszközökkel) docker build -t omniroute:cli . # Hordozható mód (ajánlott) docker run -d --name omniroute -p 20128:20128 --env-file ./.env -v omniroute-data:/app/data omniroute:cli ``` A CLI-binárisokkal működő, gazdarendszerbe integrált módhoz lásd a fő dokumentáció Docker-szakaszát. ### Void Linux (xbps-src) A Void Linux felhasználói az `xbps-src` keresztfordítási keretrendszer használatával natív módon csomagolhatják és telepíthetik az OmniRoute-ot. Ez automatizálja az önálló Node.js-buildet, valamint a szükséges natív `better-sqlite3`-kötések létrehozását.
Az xbps-src-sablon megtekintése ```bash # Sablonfájl az „omniroute” csomaghoz 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() { # A célprocesszor architektúrájának meghatározása a node-gyp számára 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) Az összes függőség telepítése – szkriptek kihagyásával NODE_ENV=development npm ci --ignore-scripts # 2) Az önálló Next.js-csomag összeállítása npm run build # 3) A statikus erőforrások bemásolása az önálló csomagba cp -r .next/static .next/standalone/.next/static [ -d public ] && cp -r public .next/standalone/public || true # 4) A natív better-sqlite3-kötés lefordítása 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) A lefordított kötés elhelyezése az önálló csomagban 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) Az architektúraspecifikus sharp-csomagok eltávolítása rm -rf .next/standalone/node_modules/@img # 7) A Next.js statikus elemzése által kihagyott pino futásidejű függőségek másolása: 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 # Annak megakadályozása, hogy a telepítés utáni horog eltávolítsa az üres Next.js alkalmazásútválasztó-könyvtárakat 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 } ```
### Környezeti változók | Változó | Alapértelmezett érték | Leírás | | --------------------------------------- | ------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `JWT_SECRET` | `omniroute-default-secret-change-me` | JWT-aláírási titok (**éles környezetben módosítsa**) | | `INITIAL_PASSWORD` | `CHANGEME` | Első bejelentkezési jelszó | | `DATA_DIR` | `~/.omniroute` | Adatkönyvtár (adatbázis, használati adatok, naplók) | | `PORT` | keretrendszer alapértelmezése | Szolgáltatás portja (a példákban `20128`) | | `HOSTNAME` | keretrendszer alapértelmezése | Figyelési cím (a Docker alapértelmezése `0.0.0.0`) | | `NODE_ENV` | futtatókörnyezet alapértelmezése | Telepítéshez állítsa `production` értékre | | `NEXT_PUBLIC_BASE_URL` | `http://localhost:20128` | Az irányítópulton megjelenített és a kiszolgáló számára elérhető nyilvános alap-URL (a korábbi `BASE_URL` helyett) | | `NEXT_PUBLIC_CLOUD_URL` | `https://omniroute.dev` | A felhőszinkronizálási végpont alap-URL-je (a korábbi `CLOUD_URL` helyett) | | `API_KEY_SECRET` | `endpoint-proxy-api-key-secret` | HMAC-titok a generált API-kulcsokhoz | | `REQUIRE_API_KEY` | `false` | Bearer API-kulcs megkövetelése a `/v1/*` útvonalakon | | `ALLOW_API_KEY_REVEAL` | `false` | Annak engedélyezése, hogy a hitelesített irányítópult-felhasználók igény szerint felfedjék a tárolt API-kulcsok teljes értékét | | `PROVIDER_LIMITS_SYNC_INTERVAL_MINUTES` | `70` | A gyorsítótárazott szolgáltatói korlátadatok kiszolgálóoldali frissítési gyakorisága; a felhasználói felület frissítési gombjai továbbra is kézi szinkronizálást indítanak | | `DISABLE_SQLITE_AUTO_BACKUP` | `false` | Az írás, importálás és visszaállítás előtti automatikus SQLite-pillanatképek letiltása; a kézi biztonsági mentések továbbra is működnek | | `APP_LOG_TO_FILE` | `true` | Engedélyezi az alkalmazás- és auditnaplók lemezre írását | | `AUTH_COOKIE_SECURE` | `false` | A hitelesítési süti `Secure` attribútumának kikényszerítése (HTTPS fordított proxy mögött) | | `CLOUDFLARED_BIN` | nincs beállítva | Meglévő `cloudflared` bináris használata a felügyelt letöltés helyett | | `CLOUDFLARED_PROTOCOL` | `http2` | A felügyelt gyors alagutak átviteli protokollja (`http2`, `quic` vagy `auto`) | | `OMNIROUTE_MEMORY_MB` | `512` | A Node.js halommemória-korlátja MB-ban | | `PROMPT_CACHE_MAX_SIZE` | `50` | A prompt-gyorsítótár bejegyzéseinek maximális száma | | `SEMANTIC_CACHE_MAX_SIZE` | `100` | A szemantikus gyorsítótár bejegyzéseinek maximális száma | A környezeti változók teljes referenciáját lásd a [README](../README.md) fájlban. --- ## 📊 Elérhető modellek
Az összes elérhető modell megtekintése > Az alábbi lista az `open-sse/config/providerRegistry.ts` alapján lett összeállítva a v3.8.0 verzióhoz. A felhőalapú katalógusok (Gemini, OpenRouter stb.) dinamikusan szinkronizálódnak — a teljes, aktuális katalógus megtekintéséhez nyissa meg az **Irányítópult → Szolgáltatók → [szolgáltató] → Elérhető modellek** oldalt, vagy hívja meg a `GET /api/models/catalog` végpontot. > > Ha egy szolgáltató beépített listája elavult, az aktuális külső katalógus lekéréséhez használja az adott oldalon az **Importálás a /models végpontról** lehetőséget (vagy engedélyezze az **Automatikus szinkronizálást**). Ezt a v3.8.50 verzióban ellenőriztük az LLM7.io (`gemini-3.1-flash-lite`) és az UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`) esetében; a Pollinations névtelen hozzáférése ugyanezen tesztelési kör során továbbra is a külső szolgáltató által korlátozott maradt. **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` (+ következtetési szintek: `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/`)** — INGYENES OAuth: használja az **Irányítópult → Szolgáltatók → Kiro → Elérhető modellek** alatt megjelenő aktuális katalógust. Az elérhetőség a fióktól és az előfizetési csomagtól függ. **Qoder (`if/`)** — INGYENES 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/`)** — havi $9 átalánydíj vagy használatalapú díjazás: `kimi/kimi-k2.6`, `kimi/kimi-k2.5` **DeepSeek (`ds/`)** — API-kulcs: `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash` **Groq (`groq/`)** — Rendkívül gyors: `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/`)** — Natív 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/`)** — EU-ban üzemeltetve: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/devstral-latest`, `mistral/codestral-latest` **Perplexity (`pplx/`)** — Kereséssel kiegészítve: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar` **Together AI (`together/`)** — Nyílt forráskódú: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (ingyenes), `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/`)** — Gyors következtetés: `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/`)** — Ostyaléptékű: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b` **Cohere (`cohere/`)** — RAG-központú: `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/`)** — Vállalati: `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/`)**: Élőben, API-kulcsonként szinkronizálva a Google-től — nincs statikus lista. Csatlakoztasson egy kulcsot az **Irányítópult → Szolgáltatók** oldalon, majd az **Elérhető modellek** funkcióval importálja az aktuális katalógust (például `gemini/gemini-3-pro`, `gemini/gemini-3-flash`). **Egyéb kompatibilis szolgáltatók** (válogatás): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (az `aws-bedrock` közvetítésével), `azure-ai`, `openrouter` (átengedett katalógus), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`. Mindegyik a saját modelllistáját tartja karban a `providerRegistry.ts` fájlban, és automatikusan szinkronizálható, ha a szolgáltató biztosít `/models` végpontot. **Megjegyzés a modellazonosítókról:** Az OmniRoute a szolgáltatónál natív azonosítókat használja (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). Egyes azonosítók ponttal tagolt verziókat tartalmaznak, mert a külső API ilyen formában várja őket. Ha egy modell nem szerepel fent, futtassa az `omniroute models --search ` parancsot, vagy hívja meg a `GET /api/models/catalog` végpontot az elérhetőség megerősítéséhez.
--- ## 🧩 Speciális funkciók ### Egyéni modellek Bármely szolgáltatóhoz hozzáadhat bármilyen modellazonosítót anélkül, hogy alkalmazásfrissítésre kellene várnia: ```bash # API-n keresztül 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"}' # Listázás: curl http://localhost:20128/api/provider-models?provider=openai # Eltávolítás: curl -X DELETE "http://localhost:20128/api/provider-models?provider=openai&model=gpt-5.2" ``` Vagy használja a vezérlőpultot: **Szolgáltatók → [Szolgáltató] → Egyéni modellek**. Megjegyzések: - Az OpenRouter, valamint az OpenAI-/Anthropic-kompatibilis szolgáltatók kizárólag az **Elérhető modellek** részből kezelhetők. A kézi hozzáadás, az importálás és az automatikus szinkronizálás ugyanazt az elérhetőmodell-listát használja, ezért ezeknél a szolgáltatóknál nincs külön Egyéni modellek szakasz. - Az **Egyéni modellek** szakasz azoknak a szolgáltatóknak készült, amelyek nem tesznek lehetővé felügyelt elérhetőmodell-importálást. ### OmniRoute-társak láncolása Egy másik OmniRoute-átjáró **egyéni OpenAI-kompatibilis** szolgáltatóként adható hozzá. Használja a társ `/v1` alap-URL-jét és az adott társ által kibocsátott, dedikált, legkisebb jogosultságú API-kulcsot. Kölcsönös vagy több ugrásból álló láncok esetén minden átjárón engedélyezze az opcionális hurokvédelmet: ```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 ``` Csak a kifejezetten engedélyezési listára felvett társ-URL-re küldött kérések kapják meg az `X-OmniRoute-Peer-Trace` fejlécet. Az átjáró HTTP `508 Loop Detected` válasszal utasítja el az ismétlődő példányazonosítót vagy a kimerített ugrási keretet; a hagyományos felsőbb szintű szolgáltatók nem kapnak társmetaadatokat. A társak láncolása nem adatbázis-replikáció és nem gazdagép-feladatátvétel. Minden átjáró független SQLite-állapotot, gyorsítótárakat, sebességkorlátozási számlálókat és munkameneteket tart fenn. Aktív/passzív vagy aktív/aktív rendelkezésre álláshoz használjon állapotellenőrzést végző fordított proxyt vagy kliensoldali feladatátvételt, és soha ne csatoljon egyetlen SQLite-adatbázist több futó OmniRoute-példányhoz. ### Dedikált szolgáltatói útvonalak A kéréseket modellérvényesítéssel közvetlenül egy adott szolgáltatóhoz irányíthatja: ```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 ``` Ha hiányzik, a rendszer automatikusan hozzáadja a szolgáltatói előtagot. A nem egyező modellek `400` választ adnak. ### Hálózati proxy konfigurálása ```bash # Globális proxy beállítása curl -X PUT http://localhost:20128/api/settings/proxy \ -d '{"global": {"type":"http","host":"proxy.example.com","port":"8080"}}' # Szolgáltatónkénti proxy curl -X PUT http://localhost:20128/api/settings/proxy \ -d '{"providers": {"openai": {"type":"socks5","host":"proxy.example.com","port":"1080"}}}' # Proxy tesztelése curl -X POST http://localhost:20128/api/settings/proxy/test \ -d '{"proxy":{"type":"socks5","host":"proxy.example.com","port":"1080"}}' ``` **Prioritási sorrend:** Kulcsspecifikus → Kombinációspecifikus → Szolgáltatóspecifikus → Globális → Környezet. ### Modellkatalógus API ```bash curl http://localhost:20128/api/models/catalog ``` A modelleket szolgáltató szerint csoportosítva, típusokkal (`chat`, `embedding`, `image`) adja vissza. ### Felhőalapú szinkronizálás - Szolgáltatók, kombinációk és beállítások szinkronizálása az eszközök között - Automatikus háttérbeli szinkronizálás időtúllépéssel és gyors hibajelzéssel - Éles környezetben részesítse előnyben a szerveroldali `NEXT_PUBLIC_BASE_URL`/`NEXT_PUBLIC_CLOUD_URL` használatát ### Cloudflare Quick Tunnel - Dockerhez és más saját üzemeltetésű telepítésekhez a **Vezérlőpult → Végpontok** menüpontban érhető el - Ideiglenes `https://*.trycloudflare.com` URL-t hoz létre, amely az aktuális OpenAI-kompatibilis `/v1` végpontra továbbít - Az első engedélyezés csak szükség esetén telepíti a `cloudflared` programot; a későbbi újraindítások ugyanazt a felügyelt bináris fájlt használják - A Quick Tunnels nem áll helyre automatikusan az OmniRoute vagy a konténer újraindítása után; szükség esetén engedélyezze újra a vezérlőpultról - Az alagút-URL-ek ideiglenesek, és az alagút minden leállításakor, illetve elindításakor megváltoznak - A felügyelt Quick Tunnels alapértelmezés szerint HTTP/2 átvitelt használ, hogy korlátozott konténerekben elkerülje a zavaró QUIC UDP-pufferrel kapcsolatos figyelmeztetéseket - Állítsa a `CLOUDFLARED_PROTOCOL` értékét `quic` vagy `auto` értékre, ha felül szeretné írni a felügyelt átviteli módot - Állítsa be a `CLOUDFLARED_BIN` változót, ha a felügyelt letöltés helyett egy előre telepített `cloudflared` bináris fájlt szeretne használni - A Cloudflare Quick Tunnel, a Tailscale Funnel és az ngrok Tunnel paneljei megjeleníthetők vagy elrejthetők a **Beállítások → Megjelenés** menüpontban. Egy panel elrejtése nem állítja le a futó alagutat. ### LLM-átjáróintelligencia (9. fázis) - **Szemantikus gyorsítótár** — Automatikusan gyorsítótárazza a nem streamelt, temperature=0 válaszokat (megkerülhető az `X-OmniRoute-No-Cache: true` fejléccel) - **Kérések idempotenciája** — Az `Idempotency-Key` vagy `X-Request-Id` fejléc alapján 5 másodpercen belül deduplikálja a kéréseket - **Folyamatkövetés** — Opcionális SSE `event: progress` események az `X-OmniRoute-Progress: true` fejlécen keresztül --- ### Fordítói tesztkörnyezet A **Vezérlőpult → Fordító** menüponton keresztül érhető el. Hibakereséssel és vizualizációval követheti, hogyan fordítja át az OmniRoute az API-kéréseket a szolgáltatók között. | Mód | Cél | | -------------------- | ----------------------------------------------------------------------------------------------------------------- | | **Tesztkörnyezet** | Válassza ki a forrás- és célformátumot, illesszen be egy kérést, és azonnal tekintse meg az átalakított kimenetet | | **Csevegéstesztelő** | Küldjön élő csevegési üzeneteket a proxyn keresztül, és vizsgálja meg a teljes kérés-válasz ciklust | | **Tesztpad** | Futtasson kötegelt teszteket több formátumkombinációval a fordítás helyességének ellenőrzéséhez | | **Élő monitor** | Figyelje valós időben az átalakításokat, miközben a kérések áthaladnak a proxyn | **Felhasználási esetek:** - Annak hibakeresése, hogy egy adott kliens-/szolgáltatókombináció miért vall kudarcot - Annak ellenőrzése, hogy a gondolkodási címkék, az eszközhívások és a rendszerüzenetek megfelelően alakulnak-e át - Az OpenAI-, Claude-, Gemini- és Responses API-formátumok közötti formátumbeli különbségek összehasonlítása --- ### Útválasztási stratégiák Konfigurálás: **Irányítópult → Beállítások → Útválasztás**. Az irányítópult a hat leggyakrabban használt stratégiát teszi elérhetővé; a kombinációk és az automatikus útválasztó belsőleg ennél szélesebb készletet támogatnak. **Az irányítópulton látható stratégiák (fiókszintű útválasztás):** | Stratégia | Leírás | | ---------------------------- | -------------------------------------------------------------------------------------------------------------------------- | | **Első feltöltése** | Prioritási sorrendben használja a fiókokat — az elsődleges fiók kezeli az összes kérést, amíg elérhető | | **Körkörös** | Végighalad az összes fiókon, konfigurálható munkamenet-megtartási korláttal (alapértelmezés: 3 hívás fiókonként) | | **P2C (Kettő közül a jobb)** | Kiválaszt 2 véletlenszerű fiókot, és az egészségesebbhez irányít — az állapot figyelembevételével egyenlíti ki a terhelést | | **Véletlenszerű** | Fisher–Yates-keveréssel véletlenszerűen választ fiókot minden kéréshez | | **Legrégebben használt** | A legrégebbi `lastUsedAt` időbélyeggel rendelkező fiókhoz irányít, egyenletesen elosztva a forgalmat | | **Költségoptimalizált** | A legalacsonyabb prioritási értékkel rendelkező fiókhoz irányít, a legalacsonyabb költségű szolgáltatókra optimalizálva | **Speciális kombinációs és automatikus stratégiák** (kombinációnként vagy `auto/*` előtagokkal konfigurálhatók — lásd: [AUTO-COMBO.md](../routing/AUTO-COMBO.md)): - `priority` — szigorú sorrend, soha nem használ körkörös elosztást - `weighted` — arányos forgalomelosztás modellenkénti súlyok alapján - `fill-first` — az első modellt használja a korlátok eléréséig - `round-robin` / `strict-random` / `random` - `p2c` (Kettő közül a jobb) - `least-used` és `cost-optimized` - `auto` — pontszámalapú választás az összes jelölt közül - `lkgp` (Legutóbb ismert jó szolgáltató) — az utolsó sikeres szolgáltatót rögzíti, majd szükség esetén visszatér a szabályokhoz - `context-optimized` — a legnagyobb szabad kontextusablakkal rendelkező modellt választja - `context-relay` — hosszú kontextusú modelleket fűz láncba a követő körökhöz #### Külső rögzített munkamenet fejléce Külső munkamenet-hozzárendeléshez (például fordított proxyk mögött működő Claude Code/Codex-ügynökökhöz) küldje el a következőt: ```http X-Session-Id: your-session-key ``` Az OmniRoute az `x_session_id` fejlécet is elfogadja, és a tényleges munkamenetkulcsot az `X-OmniRoute-Session-Id` fejlécben adja vissza. Ha Nginxet használ, és aláhúzásjeles fejléceket küld, engedélyezze a következőt: ```nginx underscores_in_headers on; ``` #### Helyettesítő karakteres modellálnevek Hozzon létre helyettesítő karakteres mintákat a modellnevek átirányításához: ``` Minta: claude-sonnet-* → Cél: cc/claude-sonnet-4-6 Minta: gpt-* → Cél: gh/gpt-5.3-codex ``` A helyettesítő karakterek támogatják a `*` (tetszőleges karakterek) és a `?` (egyetlen karakter) használatát. #### Tartalék láncok Határozzon meg globális tartalék láncokat, amelyek minden kérésre érvényesek: ``` Lánc: production-fallback 1. cc/claude-opus-4-7 2. gh/gpt-5.3-codex 3. glm/glm-4.7 ``` --- ### Hibatűrés és áramkör-megszakítók Konfigurálás: **Irányítópult → Beállítások → Hibatűrés**. Az OmniRoute öt összetevővel valósítja meg a szolgáltatói szintű hibatűrést: 1. **Kéréssor és ütemezés** — Rendszerszintű kérésformálás: - **Kérések percenként (RPM)** — A fiókonkénti kérések maximális száma percenként - **Kérések közötti minimális idő** — A kérések közötti minimális időköz ezredmásodpercben - **Egyidejű kérések maximális száma** — A fiókonkénti egyidejű kérések maximális száma 2. **Kapcsolati várakozási idő** — Hitelesítéstípusonkénti konfiguráció egyetlen kapcsolathoz az újrapróbálható hibák után: - **Alap várakozási idő** — Az újrapróbálható felsőbb szolgáltatói hibák alapértelmezett várakozási ablaka - **Felsőbb szolgáltató újrapróbálkozási javaslatainak használata** — Figyelembe veszi a mérvadó `Retry-After` értéket vagy a visszaállítási javaslatokat, ha rendelkezésre állnak - **Visszalépési lépések maximális száma** — Az ismétlődő hibákhoz tartozó exponenciális visszalépés maximális szintje 3. **Szolgáltatói áramkör-megszakító** — Nyomon követi a teljes szolgáltatói útvonal hibáit, a konfigurált figyelmeztetési küszöbértéknél csökkent állapotúnak jelöli a szolgáltatót, a konfigurált hibaküszöb elérésekor pedig megnyitja a megszakítót: - **Állapotromlási küszöb** — Az egymást követő szolgáltatói hibák száma a `DEGRADED` állapotba lépés előtt - **Hibaküszöb** — Az egymást követő szolgáltatói hibák száma az `OPEN` állapotba lépés előtt - **Visszaállítási időkorlát** — A szolgáltató újbóli teszteléséig tartó időablak - **CLOSED** (Egészséges) — A kérések normálisan haladnak - **DEGRADED** — A kérések továbbra is haladnak, miközben a rendszer nyomon követi a megemelkedett hibaszámot - **OPEN** — A szolgáltató ismétlődő hibák után ideiglenesen blokkolva van - **HALF_OPEN** — A rendszer teszteli, hogy a szolgáltató helyreállt-e A kapcsolathoz kötött `429` sebességkorlátozások a **Kapcsolati várakozási idő** hatáskörében maradnak, és nem számítanak bele a szolgáltatói megszakítóba. A szolgáltatói megszakító futásidejű állapota kizárólag az **Irányítópult → Állapot** oldalon jelenik meg. 4. **Várakozás a várakozási idő lejártára** — Ha minden jelölt kapcsolat várakozási idő alatt áll, az OmniRoute megvárhatja a legkorábban lejáró várakozási időt, és automatikusan újrapróbálhatja ugyanazt az ügyfélkérést. 5. **Sebességkorlát automatikus észlelése** — Ha a felsőbb szolgáltatók explicit várakozási ablakot adnak vissza, és ez a beállítás engedélyezve van, ezek a javaslatok felülírják a helyi kapcsolati várakozási időt. **Profi tipp:** Az **Állapot** oldalon ellenőrizheti és állíthatja vissza az aktív szolgáltatói megszakítókat egy üzemzavar után. A Hibatűrés oldal csak a konfigurációt módosítja. --- ### Adatbázis exportálása/importálása Az adatbázis biztonsági mentéseit az **Irányítópult → Beállítások → Rendszer és tárhely** oldalon kezelheti. | Művelet | Leírás | | -------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **Adatbázis exportálása** | Letölti az aktuális SQLite-adatbázist `.sqlite` fájlként | | **Összes exportálása (.tar.gz)** | Letölt egy teljes biztonsági mentési archívumot, amely tartalmazza az adatbázist, a beállításokat, a kombinációkat, a szolgáltatói kapcsolatokat (hitelesítő adatok nélkül) és az API-kulcsok metaadatait | | **Adatbázis importálása** | Feltölt egy `.sqlite` fájlt az aktuális adatbázis lecseréléséhez. Az importálás előtt automatikusan biztonsági mentés készül, kivéve, ha `DISABLE_SQLITE_AUTO_BACKUP=true` | ```bash # API: Adatbázis exportálása curl -o backup.sqlite http://localhost:20128/api/db-backups/export # API: Minden adat exportálása (teljes archívum) curl -o backup.tar.gz http://localhost:20128/api/db-backups/exportAll # API: Adatbázis importálása curl -X POST http://localhost:20128/api/db-backups/import \ -F "file=@backup.sqlite" ``` **Importálás ellenőrzése:** Az importált fájl integritását (SQLite pragma-ellenőrzés), a kötelező táblák (`provider_connections`, `provider_nodes`, `combos`, `api_keys`) meglétét és a méretét (legfeljebb 100 MB) ellenőrzi a rendszer. **Felhasználási esetek:** - Az OmniRoute átköltöztetése gépek között - Külső biztonsági mentések létrehozása katasztrófa utáni helyreállításhoz - Konfigurációk megosztása a csapattagok között (összes exportálása → archívum megosztása) --- ### Beállítások irányítópultja A könnyű navigáció érdekében a beállítások oldala **7 lapra** tagolódik: | Lap | Tartalom | | ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **Általános** | Rendszertárolási eszközök, alapértelmezett viselkedés, a végponti alagút láthatósága | | **Megjelenés** | Témavezérlők (világos/sötét/rendszer), az oldalsáv láthatósága, a Cloudflare/Tailscale/ngrok alagútkártyák panelkapcsolói | | **MI** | Gondolkodási keret (változatlan továbbítás / automatikus eltávolítás / egyéni / adaptív — lásd: [THINKING_BUDGET.md](./THINKING_BUDGET.md)), globális rendszerprompt, a promptgyorsítótár statisztikái | | **Biztonság** | Bejelentkezési/jelszóbeállítások, IP-hozzáférés-vezérlés, API-hitelesítés a `/models` végponthoz, szolgáltatók blokkolása, promptinjektálás elleni védelem | | **Útválasztás** | Globális útválasztási stratégia (Első feltöltése / Körkörös / P2C / Véletlenszerű / Legkevésbé használt / Költségoptimalizált), helyettesítő karakteres modellálnevek, tartalékláncok, kombinációk alapértelmezései | | **Ellenálló képesség** | Kérésvárólista, kapcsolati várakozási idő, szolgáltatói megszakító konfigurációja és a lehűlési idő kivárásának viselkedése | | **Speciális** | Globális proxykonfiguráció (HTTP/SOCKS5), szolgáltatónkénti proxyfelülbírálások | Az Általános lap már nem ismétli meg a naplózásra és a gyorsítótárra vonatkozó, csak olvasható megjegyzéseket. Az adatbázis-megőrzési és -optimalizálási beállítások a `/api/settings/database` végponton keresztül maradnak meg; a gyorsítótár kézi törléséhez a `DELETE /api/cache` használható. A kérés- és proxynaplók sorlimitjeit a `CALL_LOGS_TABLE_MAX_ROWS` és a `PROXY_LOGS_TABLE_MAX_ROWS` szabályozza. --- ### Költség- és költségkeret-kezelés Elérés: **Irányítópult → Költségek**. | Lap | Cél | | ---------------- | --------------------------------------------------------------------------------------------------------------------- | | **Költségkeret** | Költési limitek beállítása API-kulcsonként napi/heti/havi költségkerettel és valós idejű nyomon követéssel | | **Árazás** | Modellárazási bejegyzések megtekintése és szerkesztése — 1000 bemeneti/kimeneti tokenre jutó költség szolgáltatónként | ```bash # API: Költségkeret beállítása curl -X POST http://localhost:20128/api/usage/budget \ -H "Content-Type: application/json" \ -d '{"keyId": "key-123", "limit": 50.00, "period": "monthly"}' # API: A költségkeret aktuális állapotának lekérése curl http://localhost:20128/api/usage/budget ``` **Költségkövetés:** Minden kérésnél naplózásra kerül a tokenhasználat, és a rendszer az árazási táblázat alapján kiszámítja a költséget. A szolgáltató, modell és API-kulcs szerinti bontások az **Irányítópult → Használat** oldalon tekinthetők meg. --- ### Hangátírás Az OmniRoute támogatja a hangátírást az OpenAI-kompatibilis végponton keresztül: ```bash POST /v1/audio/transcriptions Authorization: Bearer your-api-key Content-Type: multipart/form-data # Példa curl használatával curl -X POST http://localhost:20128/v1/audio/transcriptions \ -H "Authorization: Bearer your-api-key" \ -F "file=@audio.mp3" \ -F "model=openai/whisper-1" ``` A `deepgram/nova-3` a natív Deepgram-útvonal, és Deepgram API-kulcsot igényel. Ha csak az OpenRouter van konfigurálva, használja az `openrouter/deepgram/nova-3` útvonalat. **Beszédfelismerési (átírási)** szolgáltatók: - `openai/` (Whisper-kompatibilis) - `groq/` (Groq Whisper Turbo) - `deepgram/` (Nova termékcsalád) - `assemblyai/` - `nvidia/` (Parakeet, Canary) - `huggingface/` (Whisper-változatok) - `qwen/` **Szövegfelolvasási (`POST /v1/audio/speech`)** szolgáltatók: - `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/` Az átíráshoz támogatott hangformátumok: `mp3`, `wav`, `m4a`, `flac`, `ogg`, `webm`. A TTS kimeneti formátumai a szolgáltatótól függnek (mp3, wav, opus, pcm, mulaw). --- ### Kombinációkiegyensúlyozási stratégiák A kombinációnkénti kiegyensúlyozást az **Irányítópult → Kombinációk → Létrehozás/Szerkesztés → Stratégia** útvonalon konfigurálhatja. | Stratégia | Leírás | | ----------------------- | ------------------------------------------------------------------------------------------- | | **Ciklikus** | Sorban, egymást követően vált a modellek között | | **Prioritásos** | Mindig az első modellel próbálkozik; csak hiba esetén vált tartalék modellre | | **Véletlenszerű** | Minden kéréshez véletlenszerűen választ egy modellt a kombinációból | | **Súlyozott** | Az egyes modellekhez rendelt súlyok arányában irányítja a kéréseket | | **Legkevésbé használt** | A legkevesebb közelmúltbeli kéréssel rendelkező modellhez irányít (kombinációs metrikákkal) | | **Költségoptimalizált** | A legolcsóbb elérhető modellhez irányít (az ártáblázat alapján) | A kombinációk globális alapértelmezései a **Vezérlőpult → Beállítások → Útválasztás → Kombinációk alapértelmezései** menüpontban állíthatók be. A kombináció célpontjainak időtúllépési értékei alapértelmezés szerint az aktuális kérés időtúllépési értékét öröklik. A kombinációk alapértelmezéseinél vagy egy adott kombinációnál csak akkor használja a **Cél időtúllépése (másodperc)** beállítást, ha egy rövidebb, célpontonkénti korlátnak gyorsabb tartalékra váltást kell kiváltania. A késleltetésmentes kombinációs optimalizálások használata külön engedélyezést igényel. Hagyja kikapcsolva a **Késleltetésmentes optimalizálások** beállítást, hogy megakadályozza, hogy ezek a késleltetési funkciók versenyeztessék a tartalék célpontokat, a TTFT előzményei alapján kihagyjanak célpontokat, vagy tömörítsék a tartalék kéréseket; az engedélyezés lehetővé teszi a konfigurált fedezeti kérések, a prediktív TTFT-alapú kihagyások és a proaktív tartalékkérés-tömörítés használatát, amelyek a kisebb szélsőérték-késleltetés érdekében csökkenthetik az útválasztás és a kérés pontosságát. Kapcsolja ki a **Következtetési tokenpuffer** beállítást, ha a felsőbb szintű szolgáltatók szigorú `max_tokens` / `maxOutputTokens` korlátokat követelnek meg. Ha engedélyezve van, a kombinációs útválasztás csak az ismert kimeneti korláttal rendelkező modellek esetén ad többletkeretet a következtetési modellekhez, és változatlanul hagyja az ügyfél tokenkorlátját, ha a biztonságos pufferelt érték meghaladná ezt a korlátot. Ha az ügyfél korlátja már meghalad egy ismert felső határt, az OmniRoute erre a felső határra csökkenti azt, mielőtt elküldené a kérést a felsőbb szintű szolgáltatónak. --- ### Állapot-vezérlőpult A **Vezérlőpult → Állapot** menüpontból érhető el. A rendszer valós idejű állapotát 6 kártyán tekintheti át: | Kártya | Mit jelenít meg | | --------------------------- | ------------------------------------------------------------------------ | | **Rendszerállapot** | Üzemidő, verzió, memóriahasználat, adatkönyvtár | | **Szolgáltatók állapota** | A szolgáltatók globális megszakítóinak futásidejű állapota | | **Sebességkorlátok** | Fiókonkénti aktív kapcsolati várakozási idők és a hátralévő idő | | **Aktív kizárások** | Aktív, modellre korlátozott zárolások és ideiglenes kizárások | | **Aláírás-gyorsítótár** | A deduplikációs gyorsítótár statisztikái (aktív kulcsok, találati arány) | | **Késleltetési telemetria** | Szolgáltatónkénti p50/p95/p99 késleltetési összesítés | **Profi tipp:** Az Állapot oldal 10 másodpercenként automatikusan frissül. A megszakító kártya segítségével azonosíthatja, hogy mely szolgáltatóknál jelentkeznek problémák. --- ## 🤖 Automatikus útválasztás (konfiguráció nélkül) Az OmniRoute egy **pontszámvezérelt automatikus útválasztót** tartalmaz, amely minden csatlakoztatott szolgáltató közül kiválasztja az egyes kérésekhez legmegfelelőbb modellt — nincs szükség karbantartandó kombinációkra. Egyszerűen küldje el a kérést az `auto/*` előtagok egyikével, és az OmniRoute menet közben összeállít egy virtuális kombinációt, a jelölteket pedig a késleltetés, a költség, a sikerességi arány, a kontextushoz való illeszkedés, a modell feladatra való alkalmassága, a közelmúltbeli hibák, a kvóta és a megszakító állapota alapján pontozza. | Előtag | Optimalizálás célja | | -------------- | ------------------------------------------------------------------------------------------------------------------------------ | | `auto` | Kiegyensúlyozott alapértelmezés (késleltetés × költség × sikerességi arány) | | `auto/coding` | Programozási feladatok: előnyben részesíti a Claude, GPT-5, GLM, Kimi, Qwen Coder és DeepSeek kódolómodelleket | | `auto/cheap` | Legalacsonyabb $/token, magasabb késleltetést is elfogad | | `auto/fast` | Legalacsonyabb késleltetés, a költséget figyelmen kívül hagyja | | `auto/offline` | Csak helyi szolgáltatók (Ollama, vLLM, llama.cpp) — elkülönített környezetekhez hasznos | | `auto/smart` | Elsősorban az érvelés minőségét optimalizálja (Opus, GPT-5 xhigh, R1, GLM 5.1 reasoning) | | `auto/lkgp` | „Legutóbbi ismerten működő szolgáltató” — az utolsó sikeres szolgáltatót rögzíti, majd szükség esetén visszatér a szabályokhoz | Példa: ```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 }' ``` Az automatikus útválasztó teljes leírása az [AUTO-COMBO.md](../routing/AUTO-COMBO.md) dokumentumban található — beleértve a pontozási súlyok finomhangolását, a szolgáltatók tiltólistára helyezését és az útválasztási döntések megtekintését az **Irányítópult → Automatikus kombináció** menüpontban. --- ## 🔌 MCP- és A2A-integráció Az OmniRoute egyszerre **MCP-kiszolgáló** (Model Context Protocol) és **A2A-kiszolgáló** (Agent-to-Agent JSON-RPC 2.0). Bármely MCP-kompatibilis IDE vagy ügynökkörnyezet közvetlenül meghívhatja az OmniRoute eszközeit — nincs szükség további burkolórétegre. ### MCP-átvitel - **SSE**: `http://localhost:20128/api/mcp/sse` - **Adatfolyamképes HTTP**: `http://localhost:20128/api/mcp/stream` - **stdio**: `omniroute --mcp` (a stdio használatát előnyben részesítő IDE-bővítményekhez) ### A Claude Desktop csatlakoztatása Szerkessze a `~/Library/Application Support/Claude/claude_desktop_config.json` fájlt (macOS), illetve az ennek megfelelő fájlt Windows/Linux rendszeren: ```json { "mcpServers": { "omniroute": { "command": "omniroute", "args": ["--mcp"] } } } ``` ### A Cursor / Continue / VS Code MCP csatlakoztatása Használja a `http://localhost:20128/api/mcp/sse` SSE URL-t és az **Irányítópult → API-kulcsok** menüpontban létrehozott Bearer API-kulcsot. ### Hatókörök Az MCP jelenleg 32 elnevezett hatókört definiál. Minden Bearer-kulcs meghatározott hatókörökre korlátozható — a hiteles hatókör- és eszközleltárért tekintse meg az [MCP-SERVER.md](../frameworks/MCP-SERVER.md), a JSON-RPC-sémáért pedig az [A2A-SERVER.md](../frameworks/A2A-SERVER.md) dokumentumot. --- ## 🧠 Készségrendszer Az OmniRoute egy bővíthető **készség-keretrendszert** (`src/lib/skills/`) biztosít, amely lehetővé teszi, hogy az ügynökök és az A2A-végpont tartományspecifikus rutinokat futtassanak (például `code-review`, `summarize`, `extract-facts`, `web-research`). - **Piactér felhasználói felület** — Készségek böngészése és telepítése a **Vezérlőpult → Készségek** menüpontban - **Kulcsonkénti hatókörök** — Korlátozhatja, hogy mely API-kulcsok mely készségeket hívhatják meg - **Egyéni készségek** — Helyezzen el egy TypeScript-fájlt a `src/lib/a2a/skills/` könyvtárban, regisztrálja, és azonnal meghívhatóvá válik A2A-n keresztül A teljes referencia: [SKILLS.md](../frameworks/SKILLS.md). --- ## 💾 Memóriarendszer Az OmniRoute **hosszú távú társalgási memóriát** tárol hibrid visszakereséssel: - **SQLite FTS5** a korábbi beszélgetési fordulókban végzett kulcsszavas kereséshez - **Qdrant vektortár** (opcionális) a szemantikai felidézéshez - **Automatikus ténykinyerés** — az entitások, preferenciák és döntések minden munkamenet után összegzésre kerülnek, majd a `memory_facts` táblában tárolódnak - A memóriák API-kulcsonként és munkamenetenként vannak elkülönítve A memóriák a **Vezérlőpult → Memória** menüpontban kezelhetők (keresés, szerkesztés, exportálás, törlés). A HTTP-felület (`/api/memory/*`) lehetővé teszi, hogy az ügynökök programozott módon küldjenek be és kérdezzenek le tényeket — lásd: [MEMORY.md](../frameworks/MEMORY.md). --- ## 🔔 Webhookok Iratkozzon fel az OmniRoute eseményeire valós idejű monitorozáshoz és automatizáláshoz. - Hozzon létre egy webhookot a **Vezérlőpult → Webhookok** menüpontban, megadva a cél-URL-t és a HMAC-aláírási titkot - Elérhető események: `request.completed`, `request.failed`, `provider.unavailable`, `budget.exceeded`, `combo.switched`, `circuit_breaker.opened`, `circuit_breaker.closed` - Minden hasznos adattartalom tartalmazza az ellenőrzéshez szükséges `X-OmniRoute-Signature` (HMAC-SHA256) fejlécet - Újrapróbálkozások: 3 kísérlet exponenciális várakozással, majd továbbítás a sikertelen üzenetek várólistájára A teljes séma itt található: [WEBHOOKS.md](../frameworks/WEBHOOKS.md). --- ## ☁️ Felhőalapú ügynökök Az OmniRoute integrálható felhőalapú kódolóügynökökkel (**OpenAI Codex Cloud**, **Devin**, **Jules**, **Antigravity**), így hosszú ideig futó feladatokat indíthat ugyanarról a vezérlőpultról, amely a helyi útválasztást is kezeli. - Hozzon létre feladatokat a **Vezérlőpult → Felhőalapú ügynökök** menüpontban vagy a `POST /api/v1/agents/tasks` végponton keresztül - Kövesse nyomon az egyes feladatok állapotát, naplóit és műtermékeit - Minden szolgáltatóhoz saját API-kulcsot használhat — a hitelesítő adatok soha nem hagyják el az OmniRoute-példányt A teljes referencia: [CLOUD_AGENT.md](../frameworks/CLOUD_AGENT.md). --- ## 🛠️ Programozott kezelés Minden OmniRoute-erőforrást (szolgáltatókat, kombinációkat, kulcsokat, beállításokat) kezelhet HTTP-n keresztül egy **`manage` hatókörrel rendelkező Bearer-kulcs** használatával. Hozza létre a kulcsot a **Vezérlőpult → API-kulcsok → Új kulcs → Hatókör: manage** menüpontban, majd: ```bash # Szolgáltatók listázása curl http://localhost:20128/api/providers \ -H "Authorization: Bearer $OMNIROUTE_MANAGE_KEY" # Szolgáltatói kapcsolat hozzáadása 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" }' # Kombináció létrehozása 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-kulcsok listázása/létrehozása 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"] }' ``` A végpontok teljes katalógusát és a kérés-/válaszsémákat lásd az [API_REFERENCE.md](../reference/API_REFERENCE.md) dokumentumban. --- ## 💻 Belső CLI Az OmniRoute egy belső CLI-t (`omniroute …`) biztosít a beállításhoz, a diagnosztikához és a futásidejű vezérléshez. Ez **nem azonos az irányítópult „CLI-eszközök” oldalával**, amely külső fejlesztésű CLI-ket (Claude Code, Cursor, Codex, Cline, …) konfigurál, hogy kommunikálhassanak az OmniRoute-tal. ```bash omniroute setup # Interaktív varázsló (jelszó, szolgáltatók, kombinációk) omniroute setup --non-interactive # CI-barát omniroute doctor # Állapotdiagnosztika (adatkönyvtár, adatbázis, szolgáltatók, portok) omniroute providers available # Támogatott szolgáltatók listázása omniroute providers list # Konfigurált kapcsolatok listázása omniroute providers test # Szolgáltatói kapcsolat élő tesztelése omniroute combos list # Kombinációk listázása omniroute combos switch # Alapértelmezett kombináció beállítása omniroute models # Elérhető modellek listázása (--json, --search) omniroute keys add | list | remove # API-kulcsok kezelése a terminálból omniroute backup # Pillanatkép készítése a konfigurációról és az adatbázisról omniroute restore [] # Visszaállítás pillanatképből omniroute health # Részletes állapot (megszakítók, gyorsítótár, memória) omniroute quota # Szolgáltatói kvóták felhasználása omniroute mcp status # MCP-kiszolgáló állapota omniroute a2a status # A2A-kiszolgáló állapota omniroute tunnel list|create|stop # Cloudflare-/Tailscale-/ngrok-alagutak omniroute reset-password # Rendszergazdai jelszó visszaállítása omniroute --mcp # MCP-kiszolgáló indítása szabványos I/O-n keresztül omniroute --port 3000 # Kiszolgáló indítása egyéni porton ``` Tipp: párosítsa az `omniroute doctor --json` parancsot a megfigyelőeszközével, hogy riasztást kapjon a nem megfelelő állapotú szolgáltatói kapcsolatokról. --- ## 🖥️ Asztali alkalmazás (Electron) Az OmniRoute natív asztali alkalmazásként érhető el Windows, macOS és Linux rendszerekhez. ### Telepítés ```bash # Az electron könyvtárból: cd electron npm install # Fejlesztői mód (csatlakozás a futó Next.js fejlesztői kiszolgálóhoz): npm run dev # Éles mód (az önálló buildet használja): npm start ``` ### Telepítők összeállítása ```bash cd electron npm run build # Aktuális platform npm run build:win # Windows (.exe NSIS) npm run build:mac # macOS (.dmg univerzális) npm run build:linux # Linux (.AppImage) ``` Kimenet → `electron/dist-electron/` ### Főbb funkciók | Funkció | Leírás | | --------------------------------- | -------------------------------------------------------------------------------------- | | **Kiszolgáló készenléte** | Az ablak megjelenítése előtt lekérdezi a kiszolgálót (nincs üres képernyő) | | **Rendszertálca** | Kis méretre állítás a tálcára, portváltás és kilépés a tálcamenüből | | **Portkezelés** | A kiszolgáló portjának módosítása a tálcáról (automatikusan újraindítja a kiszolgálót) | | **Tartalombiztonsági szabályzat** | Korlátozó CSP munkamenet-fejléceken keresztül | | **Egyetlen példány** | Egyszerre csak egy alkalmazáspéldány futhat | | **Offline mód** | A mellékelt Next.js-kiszolgáló internet nélkül is működik | ### Környezeti változók | Változó | Alapértelmezés | Leírás | | --------------------- | -------------- | -------------------------------- | | `OMNIROUTE_PORT` | `20128` | Kiszolgálóport | | `OMNIROUTE_MEMORY_MB` | `512` | Node.js heapkorlát (64–16384 MB) | 📖 Teljes dokumentáció: [`electron/README.md`](../../electron/README.md)