# User Guide (Yorùbá) 🌐 **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) · 🇱🇻 [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) · 🇨🇳 [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) · 🇱🇻 [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) · 🇨🇳 [zh-CN](../../../zh-CN/docs/guides/USER_GUIDE.md) · 🇹🇼 [zh-TW](../../../zh-TW/docs/guides/USER_GUIDE.md) Ìtọ́sọ́nà pípé fún ṣíṣètò àwọn olùpèsè, ṣíṣẹ̀dá àwọn combo, ṣíṣepọ̀ àwọn irinṣẹ́ CLI, àti ṣíṣe ìmúṣiṣẹ́ OmniRoute. --- ## Àkójọ Àwọn Àkòrí - [Àkótán Ìdíyelé](#-pricing-at-a-glance) - [Àwọn Ọ̀nà Lílo](#-use-cases) - [Ìṣètò Olùpèsè](#-provider-setup) - [Ìṣọ̀kan CLI](#-cli-integration) - [Ìmúṣiṣẹ́](#-deployment) - [Àwọn Módelì Tó Wà](#-available-models) - [Àwọn Ẹ̀ya Ìlọsíwájú](#-advanced-features) - [Ìdarí Aládàáṣe (Kò nílò ìṣètò)](#-auto-routing-zero-config) - [Ìṣọ̀kan MCP & A2A](#-mcp--a2a-integration) - [Ètò Àwọn Òye](#-skills-system) - [Ètò Ìrántí](#-memory-system) - [Àwọn Webhook](#-webhooks) - [Àwọn Aṣojú Àwọsánmà](#-cloud-agents) - [Ìṣàkóso Nípasẹ̀ Ètò](#-programmatic-management) - [CLI Abẹ́nú](#-internal-cli) - [Ohun Èlò Orí Kọ̀ǹpútà (Electron)](#-desktop-application-electron) --- ## 💰 Àkótán Ìdíyelé | Ìpele | Olùpèsè | Iye Owó | Ìtúnṣe Ìpín | Ó Dára Jù Fún | | -------------------- | ----------------- | --------------- | ------------------------ | ------------------------------ | | **💳 ÌṢẸ́-ALÁBÀÁPÍN** | Claude Code (Pro) | $20/oṣù | 5h + lọ́sọ̀ọ̀sẹ̀ | Àwọn tó ti ṣe alabapin | | | Codex (Plus/Pro) | $20-200/oṣù | 5h + lọ́sọ̀ọ̀sẹ̀ | Àwọn olumulo OpenAI | | | GitHub Copilot | $10-19/oṣù | Lóṣooṣù | Àwọn olumulo GitHub | | **🔑 KỌ́KỌ́RỌ́ API** | DeepSeek | San gẹ́gẹ́ bí ìlò | Kò sí | Ìrònú tó wọ́pọ̀ | | | Groq | San gẹ́gẹ́ bí ìlò | Kò sí | Ìmújáde tó yára gan-an | | | xAI (Grok) | San gẹ́gẹ́ bí ìlò | Kò sí | Ìrònú Grok 4 | | | Mistral | San gẹ́gẹ́ bí ìlò | Kò sí | Àwọn módelì tí a gbàlejò ní EU | | | Perplexity | San gẹ́gẹ́ bí ìlò | Kò sí | Tí a fi ìṣàwárí kún | | | Together AI | San gẹ́gẹ́ bí ìlò | Kò sí | Àwọn módelì orísun-ṣíṣi | | | Fireworks AI | San gẹ́gẹ́ bí ìlò | Kò sí | Àwọn àwòrán FLUX tó yára | | | Cerebras | San gẹ́gẹ́ bí ìlò | Kò sí | Iyára ní ìwọ̀n wafer | | | Cohere | San gẹ́gẹ́ bí ìlò | Kò sí | Command R+ RAG | | | NVIDIA NIM | San gẹ́gẹ́ bí ìlò | Kò sí | Àwọn módelì ilé-iṣẹ́ | | | Baidu Qianfan | San gẹ́gẹ́ bí ìlò | Kò sí | Àwọn módelì ERNIE | | **💰 OLÓWÓ-PỌ́KÚ** | GLM-4.7 | $0.6/1M | Ojoojúmọ́ 10AM | Àfẹ́yìntì oníwọ̀nba | | | MiniMax M2.1 | $0.2/1M | Àkókò 5-wákàtí tó ń yí | Àṣàyàn tó din owó jù | | | Kimi K2 | $9/oṣù péré | 10M token/oṣù | Iye owó tó ṣeé sọ tẹ́lẹ̀ | | **🆓 Ọ̀FẸ́** | Qoder | $0 | Àwọn ààlà olùpèsè ló kan | Ṣàyẹ̀wò àkójọ lọ́wọ́lọ́wọ́ | | | Kiro | $0 | ~50 kírẹ́díìtì/oṣù | Claude ọ̀fẹ́ | --- ## 🎯 Àwọn Ọ̀nà Lílo ### Ọ̀nà 1: "Mo ní ìṣẹ́-alábàápín Claude Pro" **Ìṣòro:** Ìpín máa ń dópin láìlò, àwọn ààlà ìwọ̀n lílo sì máa ń dé nígbà kíkọ kóòdù lọ́pọ̀lọpọ̀ ``` Àkójọpọ̀: "maximize-claude" 1. cc/claude-opus-4-7 (lo ìṣẹ́-alábàápín náà dé ẹ̀kúnrẹ́rẹ́) 2. glm/glm-4.7 (àfẹ́yìntì olówó-pọ́kú nígbà tí ìpín bá tán) 3. if/qwen3.8-max-preview (àfẹ́yìntì pajawiri ọ̀fẹ́) Iye owó oṣooṣù: $20 (ìṣẹ́-alábàápín) + ~$5 (àfẹ́yìntì) = $25 lápapọ̀ dípò $20 + kí ààlà lílo dé = ìjákulẹ̀ ``` ### Ọ̀nà 2: "Mo fẹ́ kí ó jẹ́ ọ̀fẹ́ pátápátá" **Ìṣòro:** Mi ò lè san owó ìṣẹ́-alábàápín, mo nílò AI tó ṣeé gbẹ́kẹ̀lé fún kíkọ kóòdù ``` Àkójọpọ̀: "zero-cost" 1. if/kimi-k2.7-code (a ṣe àkójọ rẹ̀ gẹ́gẹ́ bí ìwọlé ọ̀fẹ́; àwọn ààlà ìwọ̀n lílo lè kan) 2. kr/qwen3-coder-next (àfẹ́yìntì Kiro ọ̀fẹ́) Iye owó oṣooṣù: $0 Didára: ṣàyẹ̀wò módelì náà, àwọn ààlà, àṣírí, àti SLA fún ẹrù iṣẹ́ rẹ ``` ### Ọ̀nà 3: "Mo nílò kíkọ kóòdù 24/7, láìsí ìdádúró" **Ìṣòro:** Àwọn ọjọ́ ìparí iṣẹ́, mi ò lè fara da àkókò àìṣiṣẹ́ ``` Àkójọpọ̀: "always-on" 1. cc/claude-opus-4-7 (didára tó ga jù) 2. cx/gpt-5.5 (ìṣẹ́-alábàápín kejì) 3. glm/glm-4.7 (olówó-pọ́kú, ó ń tún ara rẹ̀ ṣe lojoojúmọ́) 4. minimax/MiniMax-M2.1 (ó din owó jù, ìtúnṣe 5h) 5. if/deepseek-v4-flash (a ṣe àkójọ rẹ̀ gẹ́gẹ́ bí ìwọlé ọ̀fẹ́; àwọn ààlà ìwọ̀n lílo lè kan) Àbájáde: Ìpele àfẹ́yìntì 5 ń mú agbára ìfaradà gbòòrò sí i; a kò ṣe ìdánilójú wíwà àwọn iṣẹ́ orísun Iye owó oṣooṣù: $20-200 (àwọn ìṣẹ́-alábàápín) + $10-20 (àfẹ́yìntì) ``` ### Ọ̀nà 4: "Mo fẹ́ AI Ọ̀FẸ́ nínú OpenClaw" **Ìṣòro:** Mo nílò olùrànlọ́wọ́ AI nínú àwọn ohun èlò ìfìwéránṣẹ́, lọ́fẹ̀ẹ́ pátápátá ``` Àkójọpọ̀: "openclaw-free" 1. if/qwen3.8-max-preview (a ṣe àkójọ rẹ̀ gẹ́gẹ́ bí ìwọlé ọ̀fẹ́; àwọn ààlà ìwọ̀n lílo lè kan) 2. if/deepseek-v4-flash (a ṣe àkójọ rẹ̀ gẹ́gẹ́ bí ìwọlé ọ̀fẹ́; àwọn ààlà ìwọ̀n lílo lè kan) 3. if/kimi-k2.7-code (a ṣe àkójọ rẹ̀ gẹ́gẹ́ bí ìwọlé ọ̀fẹ́; àwọn ààlà ìwọ̀n lílo lè kan) Iye owó oṣooṣù: $0 Wọlé sí i nípasẹ̀: WhatsApp, Telegram, Slack, Discord, iMessage, Signal... ``` --- ## 📖 Ṣíṣètò Olùpèsè Láti fi àwọn ìsopọ̀ API-key púpọ̀ kún láti inú fáìlì CSV tàbí JSON, lo **Dashboard → Providers → Import from file**. Àwọn kọ́lámù jẹ́ ti ipò (`provider,name,apiKey,baseUrl,priority`); `provider` gbọ́dọ̀ ti wà tẹ́lẹ̀ gẹ́gẹ́ bí olùpèsè tí a ń ṣàkóso tàbí node tó bá mu. Wo [Gbólóhùn àwọn olùpèsè wọlé láti inú fáìlì CSV tàbí JSON](../providers/CSV-IMPORT.md). ### 🔐 Àwọn Olùpèsè Ìforúkọsílẹ̀ #### Claude Code (Pro/Max) ```bash Dashboard → Providers → Sopọ̀ Claude Code → Ìwọlé OAuth → Ìtúnṣe token aládàáṣiṣẹ́ → Ìtọ́pin quota wákàtí 5 + ọ̀sẹ̀ Àwọn àwòṣe: cc/claude-opus-4-7 cc/claude-sonnet-4-6 cc/claude-haiku-4-5-20251001 ``` **Ìmọ̀ràn Ọ̀jọ̀gbọ́n:** Lo Opus fún àwọn iṣẹ́ tó díjú, Sonnet fún ìyára. OmniRoute ń tọ́pin quota fún àwòṣe kọ̀ọ̀kan! Kò sí aṣàwákiri lórí host OmniRoute? Ṣe `claude setup-token` ní ibikíbi tí Claude Code bá ti wọlé sí, kí o sì lẹ̀ token ọdún kan náà sínú taabu **Setup Token**. Wo [Claude Code pẹ̀lú setup token](../providers/CLAUDE_CODE_SETUP_TOKEN.md). Àwọn ọ̀nà Claude àti àwọn ọ̀nà tó bá Claude Code mu máa ń pa ìsapá ìrònú `max` mọ́ fún àwọn àwòṣe Opus àti Sonnet. Àwọn àwòṣe Haiku kò gba ipele ìsapá `max`, nítorí náà OmniRoute máa ń dín ìbéèrè náà kù sí isuna ìrònú gíga kí ó tó rán an sí òkè. #### OpenAI Codex (Plus/Pro) ```bash Dashboard → Providers → Sopọ̀ Codex → Ìwọlé OAuth (port 1455) → Àtúntò wákàtí 5 + ọ̀sẹ̀ Àwọn àwòṣe: cx/gpt-5.5 cx/gpt-5.4 cx/gpt-5.3-codex cx/gpt-5.3-codex-spark ``` #### GitHub Copilot ```bash Dashboard → Providers → Sopọ̀ GitHub → OAuth nípasẹ̀ GitHub → Àtúntò lóṣù (ọjọ́ kìíní oṣù) Àwọn àwòṣe: gh/gpt-5.5 gh/gpt-5.4 gh/claude-sonnet-4.6 gh/claude-opus-4.7 gh/gemini-3.1-pro-preview ``` **Àwọn Kirẹditi AI (ìsanwó tó dá lórí token).** Nígbà tí GitHub bá ròyìn `credits_used` fún àkọọ́lẹ̀ náà, káàdì Ààlà Olùpèsè máa ń fi ìlà **AI Credits** hàn pẹ̀lú iye àwọn kirẹditi tí a ti lò ní àkókò ìsanwó tó wà lọ́wọ́, títí kan lórí àwọn ètò àjọ tí kò ní ààlà. **Ààlà Kirẹditi AI ti agbègbè.** Ṣàtúnṣe ìsopọ̀ GitHub kan kí o sì ṣètò **AI Credits limit per billing period** (`providerSpecificData.githubCreditLimit`). Fífì sílẹ̀ láìkún un máa ń pa á; `0` máa ń fo ìsopọ̀ náà kọjá ní gbogbo ìgbà. Nígbà tí ìkàwé lílo tó kẹ́yìn bá dé ààlà tàbí ti kọjá rẹ̀, yíyan àkọọ́lẹ̀ máa ń fo ìsopọ̀ náà kọjá, ìtọ́sọ́nà sì máa ń padà sí àwọn ìsopọ̀ rẹ mìíràn, gẹ́gẹ́ bí àbájáde gige ìlànà quota. Àyẹ̀wò náà máa ń ka lílo tí ìtúnṣe quota àkókò ti kó jọ tẹ́lẹ̀ — kò pe GitHub rárá ní ọ̀nà ìbéèrè — ó sì máa ń gba ìsopọ̀ láyè nígbà tí ìwífún bá sọnù tàbí tí ó ti pẹ́ (tó ti ju ìṣẹ́jú 15 lọ, tàbí tí ó wá láti àkókò ìsanwó tí ó ti tún bẹ̀rẹ̀). Èyí jẹ́ ìdábòbò agbègbè, **kì í ṣe ààlà inawo tí a lè fi dájú**: ìdádúró nínú ríròyìn GitHub, àárín ìtúnṣe, àwọn ìbéèrè tó ń lọ lọ́wọ́ àti lílo tí ó wáyé lẹ́yìn OmniRoute lè mú kí ó kọjá ààlà náà. Lo àwọn ìṣàkóso inawo GitHub funra rẹ fún ààlà líle. ### 💰 Àwọn Olùpèsè Aláìnáwó #### GLM-4.7 (àtúntò ojoojúmọ́, $0.6/1M) 1. Forúkọsílẹ̀: [Zhipu AI](https://open.bigmodel.cn) 2. Gba API key láti inú Coding Plan 3. Dashboard → Add API Key: Provider: `glm`, API Key: `your-key` **Lò:** `glm/glm-4.7` — **Ìmọ̀ràn Ọ̀jọ̀gbọ́n:** Coding Plan ń fúnni ní quota 3× pẹ̀lú iye owó 1/7! Àtúntò ní gbogbo ọjọ́ ní 10:00 AM. #### MiniMax M2.1 (àtúntò wákàtí 5, $0.20/1M) 1. Forúkọsílẹ̀: [MiniMax](https://www.minimax.io) 2. Gba API key → Dashboard → Add API Key **Lò:** `minimax/MiniMax-M2.1` — **Ìmọ̀ràn Ọ̀jọ̀gbọ́n:** Aṣàyàn tó din jù fún àkóónú gígùn (token 1M)! #### Kimi K2 ($9/osù ní iye péré) 1. Forúkọsílẹ̀: [Moonshot AI](https://platform.kimi.ai?aff=omniroute) 2. Gba API key → Dashboard → Add API Key **Lò:** `kimi/kimi-k2.5` — **Ìmọ̀ràn Ọ̀jọ̀gbọ́n:** $9/osù péré fún token 10M = iye tó munadoko $0.90/1M! #### Baidu Qianfan / ERNIE 1. Forúkọsílẹ̀: [Baidu AI Cloud Qianfan](https://cloud.baidu.com/product/wenxinworkshop) 2. Ṣẹ̀dá Qianfan API key → Dashboard → Add API Key: Provider: `qianfan` **Lò:** `qianfan/ernie-5.1`, `qianfan/ernie-x1.1`, tàbí ID àwòṣe Qianfan OpenAI-compatible mìíràn. ### 🆓 Àwọn Olùpèsè Ọ̀FẸ́ Àwọn olùpèsè ọ̀fẹ́ tí kò nílò ìfọwọ́sí ní switch kan lẹ́gbẹ̀ẹ́ **No authentication required** lórí ojú-ìwé olùpèsè wọn. Pípà á máa ń mú olùpèsè náà ṣiṣẹ́ kúrò, ó máa ń yọ ọ́ kúrò nínú àwọn ìwòye Providers configured/compact, ó sì máa ń yọ àwọn àwòṣe rẹ̀ kúrò nínú `/v1/models`. #### Qoder (àwòṣe Ọ̀FẸ́ 9) ```bash Dashboard → Sopọ̀ Qoder → Ìwọlé OAuth → Àwọn ààlà olùpèsè tó wà lọ́wọ́ ló ń pinnu ìráyè Àwọn àwòṣe: 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 Ọ̀FẸ́) ```bash Dashboard → Sopọ̀ Kiro → AWS Builder ID tàbí Google/GitHub → nǹkan bí kirẹditi 50/osù Àwọn àwòṣe: kr/claude-sonnet-4.5, kr/claude-haiku-4.5 ``` --- ## 🎨 Àwọn Àkójọpọ̀ O lè tún ìtòlẹ́sẹẹsẹ àwọn káàdì àkójọpọ̀ ṣe ní tààrà nínú **Dashboard → Combos** nípa fífa ohun ìmú káàdì kọ̀ọ̀kan. A máa ń fi ìtòlẹ́sẹẹsẹ náà pamọ́ sínú SQLite, a sì máa ń dá a padà nígbà tí a bá tún kojọpọ̀. ### Àpẹẹrẹ 1: Mú Ìforúkọsílẹ̀ Ga Jù → Àfẹ́yìntì Olówó Pọ́ọ́kú ``` Dashboard → Combos → Create New Orúkọ: premium-coding Àwọn Mọ́dẹ́lì: 1. cc/claude-opus-4-7 (Ìforúkọsílẹ̀ àkọ́kọ́) 2. glm/glm-4.7 (Àfẹ́yìntì olówó pọ́ọ́kú, $0.6/1M) 3. minimax/MiniMax-M2.7 (Àṣàyàn ìkẹyìn tó rọrùn jù, $0.3/1M) Lò nínú CLI: premium-coding ``` ### Àpẹẹrẹ 2: Ọ̀fẹ́-Nìkan (Kò Ná Ohunkóhun) ``` Orúkọ: free-combo Àwọn Mọ́dẹ́lì: 1. if/kimi-k2.7-code (a ṣe àkọsílẹ̀ rẹ̀ pé ó ní ààyè ọ̀fẹ́; àwọn ààlà olùpèsè lè wúlò) 2. kr/qwen3-coder-next (Àfẹ́yìntì ọ̀fẹ́ Kiro) Iye owó: a ṣe àkọsílẹ̀ rẹ̀ lọ́wọ́lọ́wọ́ bí $0; àwọn òfin àti wíwà-lárọ̀ọ́wọ́tó lè yí padà ``` --- ## 🔧 Ìṣọ̀kan CLI ### Cursor IDE **Lílo Cursor gẹ́gẹ́ bí oníbàárà OmniRoute** (darí ìfọ̀rọ̀wérọ̀ Cursor gba OmniRoute kọjá): ``` Settings → Models → Advanced: OpenAI API Base URL: http://localhost:20128/v1 OpenAI API Key: [láti dashboard omniroute] Model: cc/claude-opus-4-7 ``` **Lílo OmniRoute gẹ́gẹ́ bí olùpèsè Cursor** (OmniRoute ń pe Cursor tó wà lókè): ó dára láti lo **Dashboard → Providers → Cursor → Login with Cursor**. Nínú Docker, wo [`docs/providers/CURSOR-DOCKER.md`](../providers/CURSOR-DOCKER.md). ### Claude Code Ṣàtúnṣe `~/.claude/settings.json`: ```json { "env": { "ANTHROPIC_BASE_URL": "http://localhost:20128", "ANTHROPIC_AUTH_TOKEN": "your-omniroute-api-key" } } ``` Lo endpoint gbòǹgbò tó bá Claude mu níbí. Má ṣe fi `/v1` kún `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 Ṣàtúnṣe `~/.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" }] } } } } ``` **Tàbí lo Dashboard:** CLI Tools → OpenClaw → Auto-config ### Cline / Continue / RooCode ``` Olùpèsè: OpenAI Compatible URL Ìpìlẹ̀: http://localhost:20128/v1 Kọ́kọ́rọ́ API: [láti dashboard] Mọ́dẹ́lì: cc/claude-opus-4-7 ``` --- ## 🚀 Gbigbe ### Fi sori ẹrọ npm agbaye (Ti ṣeduro) ```bash npm install -g omniroute # Create config directory mkdir -p ~/.omniroute # Create .env file (see .env.example) cp .env.example ~/.omniroute/.env # Start server omniroute # Or with custom port: omniroute --port 3000 ``` CLI naa n gbe `.env` laifọwọyi lati `~/.omniroute/.env` tabi `./.env`. A `./.env` ninu iwe ilana iṣẹ le ṣeto atokọ iyọọda kukuru ti awọn bọtini (awọn ibudo, `REQUIRE_API_KEY`, agbegbe ati awọn eto awọ); fi ohun gbogbo miiran sinu `~/.omniroute/.env`. Wo [awọn adehun ifilọlẹ CLI](CLI-LAUNCH-CONTRACTS.md#working-directory-env). ### Ipo atẹ Bẹrẹ OmniRoute ninu atẹ eto: ```bash omniroute serve --tray ``` Aṣẹ naa pada lẹhin olupin ati atẹ ti ṣetan. Olupin naa tẹsiwaju laisi ebute. Ipo atẹ ṣe atilẹyin macOS, Windows, ati awọn akoko Linux ayaworan. Ipo atẹ ko ṣii dasibodu laifọwọyi. Lo akojọ aṣayan atẹ fun awọn iṣe wọnyi: - Ṣii dasibodu naa. - Ṣii `/dashboard/logs`. - Yi pada laifọwọyi ibere. - Duro OmniRoute. Maṣe dapọ `--tray` pẹlu awọn aṣayan wọnyi: - `--daemon` - `--log` - `--no-recovery` Awọn ipo wọnyi nilo nini ilana ti o yatọ. Mu ibẹrẹ ṣiṣẹ ni wiwọle ẹrọ atẹle: ```bash omniroute autostart enable ``` Ibẹrẹ aifọwọyi nlo ipo atẹ lori macOS, Windows, ati awọn akoko Linux ayaworan. Linux ti ko ni ori nlo iṣẹ olumulo ti o wa tẹlẹ. Pa ibẹrẹ ni wiwọle: ```bash omniroute autostart disable ``` ### Yiyokuro Nigbati o ko nilo OmniRoute mọ, a pese awọn iwe afọwọkọ iyara meji fun yiyọkuro mimọ: | Òfin | Iṣe | | ------------------------ | ------------------------------------------------------------------------------------ | | `npm run uninstall` | Yọ awọn eto app sugbon** ntọju DB rẹ ati awọn atunto** ninu `~/.omniroute`. | | `npm run uninstall:full` | Yọ AND app kuro patapata** nu gbogbo awọn atunto, awọn bọtini, ati awọn database** . | > Akiyesi: Lati ṣiṣe awọn aṣẹ wọnyi, lilö kiri si folda ise agbese OmniRoute (ti o ba ṣe cloned) ati ṣiṣe wọn. Ni omiiran, ti o ba fi sori ẹrọ agbaye, o le jiroro ni ṣiṣe `npm uninstall -g omniroute`. ### VPS Gbigbe ```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 # Or: pm2 start npm --name omniroute -- start ``` ### Gbigbe PM2 (Iranti Kekere) Fun awọn olupin ti o ni opin RAM, lo aṣayan opin iranti: ```bash # With 512MB limit (default) pm2 start npm --name omniroute -- start # Or with custom memory limit OMNIROUTE_MEMORY_MB=512 pm2 start npm --name omniroute -- start # Or using ecosystem.config.js pm2 start ecosystem.config.js ``` Ṣẹda `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 # Build image (default = runner-cli with codex/claude/droid preinstalled) docker build -t omniroute:cli . # Portable mode (recommended) docker run -d --name omniroute -p 20128:20128 --env-file ./.env -v omniroute-data:/app/data omniroute:cli ``` Fun ipo iṣọpọ-ogun pẹlu awọn alakomeji CLI, wo apakan Docker ninu awọn docs akọkọ. ### Linux ofo (xbps-src) Awọn olumulo Linux ofo le ṣajọ ati fi sori ẹrọ OmniRoute ni abinibi nipa lilo ilana akojọpọ-agbelebu `xbps-src`. Eyi ṣe adaṣe adaṣe imurasilẹ Node.js pẹlu awọn asopọ abinibi `better-sqlite3` ti o nilo.
Wo awoṣe xbps-src ```bash # Template file for '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() { # Determine target CPU arch for 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) Install all deps – skip scripts NODE_ENV=development npm ci --ignore-scripts # 2) Build the Next.js standalone bundle npm run build # 3) Copy static assets into standalone cp -r .next/static .next/standalone/.next/static [ -d public ] && cp -r public .next/standalone/public || true # 4) Compile better-sqlite3 native binding 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) Place the compiled binding into the standalone bundle local _bs3_release=.next/standalone/node_modules/better-sqlite3/build/Release mkdir -p "$_bs3_release" cp node_modules/better-sqlite3/build/Release/better_sqlite3.node "$_bs3_release/" # 6) Remove arch-specific sharp bundles rm -rf .next/standalone/node_modules/@img # 7) Copy pino runtime deps omitted by Next.js static analysis: 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 # Prevent removal of empty Next.js app router dirs by the post-install hook for _d in \ .next/standalone/.next/server/app/dashboard \ .next/standalone/.next/server/app/dashboard/settings \ .next/standalone/.next/server/app/dashboard/providers; do touch "${DESTDIR}/usr/lib/omniroute/${_d}/.keep" done cat > "${WRKDIR}/omniroute" <<'EOF' #!/bin/sh export PORT="${PORT:-20128}" export DATA_DIR="${DATA_DIR:-${XDG_DATA_HOME:-${HOME}/.local/share}/omniroute}" export APP_LOG_TO_FILE="${APP_LOG_TO_FILE:-false}" mkdir -p "${DATA_DIR}" exec node /usr/lib/omniroute/.next/standalone/server.js "$@" EOF vbin "${WRKDIR}/omniroute" } post_install() { vlicense LICENSE } ```
### Awọn iyipada Ayika | Ayípadà | Aiyipada | Apejuwe | | --------------------------------------- | ------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------- | | `JWT_SECRET` | _(ti ipilẹṣẹ laifọwọyi)_ | JWT wíwọlé ìkọ̀kọ̀ — laifọwọyi ti ipilẹṣẹ lori ṣiṣe akọkọ ati tẹsiwaju si `server.env`; ṣeto ni kedere nigbati awọn data liana ni ephemeral | | `INITIAL_PASSWORD` | _(a ko ṣeto)_ | Ọrọ igbaniwọle akọkọ. awọn fifi sori npm/source bẹrẹ pẹlu `CHANGEME`: rọpo rẹ. Unset: onboarding oso | | `DATA_DIR` | `~/.omniroute` | Itọsọna data (db, lilo, awọn akọọlẹ) | | `PORT` | aiyipada ilana | Ibudo iṣẹ (`20128` ninu awọn apẹẹrẹ) | | `HOSTNAME` | aiyipada ilana | Di agbalejo (awọn aiyipada Docker si `0.0.0.0`) | | `NODE_ENV` | aiyipada asiko isise | Ṣeto `production` fun ransogun | | `NEXT_PUBLIC_BASE_URL` | `http://localhost:20128` | URL ipilẹ ti gbogbo eniyan farahan si dasibodu ati fifihan si olupin naa (rọpo `BASE_URL` julọ) | | `NEXT_PUBLIC_CLOUD_URL` | `https://omniroute.dev` | Ipilẹṣẹ ìsiṣẹpọ awọsanma URL (rọpo ogún `CLOUD_URL`) | | `API_KEY_SECRET` | _(ti ipilẹṣẹ laifọwọyi)_ | Aṣiri HMAC fun awọn bọtini API ti ipilẹṣẹ — ti ipilẹṣẹ laifọwọyi ni ṣiṣe akọkọ ati tẹsiwaju si `server.env` | | `REQUIRE_API_KEY` | `false` | Fi agbara mu Bọtini API Bearer lori `/v1/*` | | `ALLOW_API_KEY_REVEAL` | `false` | Gba awọn olumulo dasibodu ti o ni idaniloju lati ṣafihan awọn iye bọtini API ti o fipamọ ni kikun lori ibeere | | `PROVIDER_LIMITS_SYNC_INTERVAL_MINUTES` | `70` | cadence isọdọtun ẹgbẹ olupin fun data Awọn opin Olupese ti a fipamọ; awọn bọtini isọdọtun UI ṣi nfa amuṣiṣẹpọ afọwọṣe | | `DISABLE_SQLITE_AUTO_BACKUP` | `false` | Pa a laifọwọyi SQLite snapshots ṣaaju ki o writes/import/restore; Afowoyi backups si tun ṣiṣẹ | | `APP_LOG_TO_FILE` | `true` | Mu ohun elo ṣiṣẹ ati iṣẹjade iwe ayẹwo si disk | | `AUTH_COOKIE_SECURE` | `false` | Fi ipa mu kuki `Secure` auth (lẹhin aṣoju yiyipada HTTPS ) | | `CLOUDFLARED_BIN` | unset | Lo alakomeji `cloudflared` ti o wa tẹlẹ dipo igbasilẹ iṣakoso | | `CLOUDFLARED_PROTOCOL` | `http2` | Gbigbe fun Awọn Tunnel Iyara ti a ṣakoso (`http2`, `quic`, tabi `auto`) | | `OMNIROUTE_MEMORY_MB` | `512` | Node.js okiti iye to ni MB | | `PROMPT_CACHE_MAX_SIZE` | `50` | Awọn titẹ sii kaṣe kiakia ti o pọju | | `SEMANTIC_CACHE_MAX_SIZE` | `100` | Awọn titẹ sii kaṣe atunmọ to pọju | Fun itọkasi iyipada ayika ni kikun, wo [README](../README.md). --- ## 📊 Àwọn Àwòṣe Tí Wà
Wo gbogbo àwọn àwòṣe tó wà > Àtòkọ tó wà nísàlẹ̀ ni a yan láti inú `open-sse/config/providerRegistry.ts` fún v3.8.0. Àwọn katalogi awọ̀nà (Gemini, OpenRouter, àti bẹ́ẹ̀ bẹ́ẹ̀ lọ) ni a ń múṣiṣẹ́pọ̀ ní ìmúdàgba — fún katalogi alààyè kíkún, ṣí **Dashboard → Providers → [provider] → Available Models** tàbí pe `GET /api/models/catalog`. > > Bí àtòkọ tí a ṣe sínú pẹ̀lú olùpèsè bá ti yapa, lo **Import from /models** lórí ojú-ìwé yẹn (tàbí mú **Auto-Sync** ṣiṣẹ́) láti fa katalogi gíga alààyè wá. A fìdí èyí múlẹ̀ nínú v3.8.50 fún LLM7.io (`gemini-3.1-flash-lite`) àti UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`); ìráyè aláìlórúkọ Pollinations ṣì ní ààlà látọwọ́ olùpèsè gíga nígbà ìdánwò kan náà. **Claude Code (`cc/`)** — OAuth Pro/Max: `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/`)** — OAuth Plus/Pro: `cx/gpt-5.5` (+ àwọn ipele ìsapá: `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark` **GitHub Copilot (`gh/`)** — OAuth: `gh/gpt-5.5`, `gh/gpt-5.4`, `gh/gpt-5.4-mini`, `gh/gpt-5-mini`, `gh/gpt-5.3-codex`, `gh/claude-opus-4.7`, `gh/claude-opus-4.6`, `gh/claude-opus-4-5-20251101`, `gh/claude-sonnet-4.6`, `gh/claude-sonnet-4.5`, `gh/claude-haiku-4.5`, `gh/gemini-3.1-pro-preview`, `gh/gemini-3-flash-preview`, `gh/oswe-vscode-prime` **Kiro (`kr/`)** — OAuth Ọ̀FẸ́: lo katalogi alààyè tí a fi hàn lábẹ́ **Dashboard → Providers → Kiro → Available Models**. Àyẹ̀wò bóyá ó wà dá lórí àkọọ́lẹ̀ àti ètò. **Qoder (`if/`)** — OAuth Ọ̀FẸ́: `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/osù tàbí fún ìlò kọ̀ọ̀kan: `kimi/kimi-k2.6`, `kimi/kimi-k2.5` **DeepSeek (`ds/`)** — Bọtìnì API: `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash` **Groq (`groq/`)** — Yíyára gíga: `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 abinibi: `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/`)** — Tí a gbàlejò ní EU: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/codestral-latest` **Perplexity (`pplx/`)** — Tí a fi ìwádìí kún un: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar` **Together AI (`together/`)** — Orísun-ìmọ̀: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (ọ̀fẹ́), `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/`)** — Ìṣirò ìyára: `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/`)** — Ìwọ̀n wafer: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b` **Cohere (`cohere/`)** — Tí a dojú kọ́ sí RAG: `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024` **NVIDIA NIM (`nvidia/`)** — Fún ilé-iṣẹ́: `nvidia/google/gemma-4-31b-it`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`, `nvidia/nvidia/nemotron-3-ultra-550b-a55b`, `nvidia/nvidia/nemotron-3.5-lightning-30b-a3b` **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/`)**: A ń múṣiṣẹ́pọ̀ rẹ̀ ní ìmúdàgba fún bọtìnì API kọ̀ọ̀kan láti Google — kò sí àtòkọ tí a ti ṣètò tẹ́lẹ̀. So bọtìnì kan pọ̀ nínú **Dashboard → Providers**, lẹ́yìn náà lo **Available Models** láti kó katalogi tó wà lọ́wọ́ wọlé (fún àpẹẹrẹ `gemini/gemini-3-pro`, `gemini/gemini-3-flash`). **Àwọn olùpèsè mìíràn tó bá ara wọn mu** (àwọn tí a yàn): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (nípasẹ̀ `aws-bedrock`), `azure-ai`, `openrouter` (katalogi passthrough), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`. Ọ̀kọ̀ọ̀kan ń ṣàbójútó àtòkọ àwòṣe tirẹ̀ nínú `providerRegistry.ts`, ó sì lè ṣe ìmúṣiṣẹ́pọ̀ aládàáṣiṣẹ́ nígbà tí olùpèsè bá ṣí endpoint `/models` sílẹ̀. **Àkíyèsí nípa àwọn ID àwòṣe:** OmniRoute máa ń lo àwọn ID abinibi olùpèsè (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). Àwọn ID kan ní àwọn ẹ̀dà tí a fi àmì àkókò sí nítorí pé báyìí ni API gíga ṣe ń retí wọn. Bí a kò bá rí àwòṣe kan nínú àtòkọ tó wà lókè, ṣiṣẹ́ `omniroute models --search ` tàbí pe `GET /api/models/catalog` láti jẹ́rìí pé ó wà.
--- ## 🧩 To ti ni ilọsiwaju Awọn ẹya ara ẹrọ ### Awọn awoṣe aṣa Ṣafikun ID awoṣe eyikeyi si olupese eyikeyi laisi iduro fun imudojuiwọn app kan: ```bash # Via 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"}' # List: curl http://localhost:20128/api/provider-models?provider=openai # Remove: curl -X DELETE "http://localhost:20128/api/provider-models?provider=openai&model=gpt-5.2" ``` Tabi lo Dasibodu:** Awọn olupese → [Olupese] → Aṣa Awọn awoṣe** . Awọn akọsilẹ: - OpenRouter ati awọn olupese OpenAI/Anthropic-compatible ni iṣakoso lati** Awọn awoṣe to wa** nikan. Ṣafikun afọwọṣe, gbe wọle, ati imuṣiṣẹpọ adaṣe gbogbo ilẹ ni atokọ awoṣe to wa kanna, nitorinaa ko si apakan Awọn awoṣe Aṣa ọtọtọ fun awọn olupese wọnyẹn. - Awọn** Awọn awoṣe aṣa** apakan ti pinnu fun awọn olupese ti ko ṣe afihan awọn agbewọle agbewọle ti o wa ti iṣakoso. ### Aṣa OpenAI-ibaramu Awọn olupese Eyikeyi ẹnu-ọna ti o sọrọ OpenAI API (aṣoju ti ara ẹni ti gbalejo, vLLM, alaropo ẹni-kẹta) le ṣe afikun bi ipade olupese tirẹ: 1. **Awọn olupese → Fi OpenAI Ibaramu** . 2. **Oruko** : aami ifihan fun ipade. 3. **Apejuwe** : orukọ afisona. Awọn alabara pe awọn awoṣe bi `/`, nitorinaa ipade kan pẹlu ìpele `mygw` yoo ṣiṣẹ `mygw/gpt-4o-mini`. Ti a beere; ko si ihamọ ohun kikọ. 4. **API Iru** : idile ipari ti ẹnu-ọna naa n ṣiṣẹ (Awọn ipari iwiregbe, Awọn idahun, Awọn ifibọ, ohun, awọn aworan). 5. **Ipilẹ URL** : root API, to ati pẹlu `/v1` (fun apẹẹrẹ `https://gateway.example.com/v1`), kii ṣe ọna `/chat/completions` kikun. Awọn ẹnu-ọna pẹlu awọn ọna ti kii ṣe deede ṣeto wọn labẹ** To ti ni ilọsiwaju Eto** (iwiregbe ona, awọn awoṣe ona). 6. Awọn** Bọtini API (fun Ṣayẹwo)** aaye nikan ṣe idanwo asopọ. Lẹhin ṣiṣẹda ipade, ṣii ki o lo** Fi Asopọmọra kun** lati tọju bọtini ti awọn ibeere yoo lo. Ipade naa gba id inu ti fọọmu `openai-compatible--`; o ko nilo lati tẹ sii, ìpele ni orukọ gbogbo eniyan. #### Ifipamọ awọn ami-iṣaaju Apejuwe ko le jẹ id tabi inagijẹ ti olupese ti a ṣe sinu (fun apẹẹrẹ `openai`, `cf`), tabi id ti olupese ti fẹyìntì. Olupin awoṣe ṣe ayẹwo awọn ids ti a ṣe sinu ati awọn inagijẹ ṣaaju awọn apa aṣa, nitorinaa ipade kan ti o lo ọkan ninu awọn asọtẹlẹ yẹn kii yoo gba ijabọ rara: `/model` yoo lọ si olupese ti a ṣe sinu dipo, tabi kuna ni pipade ti olupese yẹn ba ti fẹhinti. Ṣiṣẹda tabi ṣatunkọ oju ipade pẹlu iru ìpele kan ni a kọ pẹlu: ```text prefix: "" is a reserved provider prefix — choose a different prefix (reserved ids/aliases cannot be used for custom nodes because requests like /model route to a built-in provider or fail closed when retired) ``` Yan ìpele kan pato (`mygw`, `acme-proxy`). Ti awọn ibeere si ipade aṣa ba kuna pẹlu aṣiṣe ti o lorukọ olupese ti a ṣe sinu tabi awọn iwe-ẹri rẹ, ṣayẹwo boya ìpele node ti wa ni ipamọ: awọn apa ti o fipamọ ṣaaju ki ofin yii wa tun wa ni ipamọ, ṣugbọn awọn ipa-ọna iṣaaju wọn si olupese ti a ṣe sinu. Ṣatunkọ ipade naa ki o fun ni ìpele titun kan. #### Fun-asopọ awọn aṣayan ẹnu-ọna Awọn bọtini wọnyi lọ sinu `providerSpecificData` asopọ (fun apẹẹrẹ nipasẹ `PUT /api/providers/{id}`): - `toolNameMaxLength` (odidi, 1-1024) - fun awọn ọna asopọ ibaramu ọna kika iwiregbe OpenAI eyiti ẹnu-ọna kọ awọn orukọ irinṣẹ gigun. Awọn orukọ gigun ni a firanṣẹ bi awọn inagijẹ kukuru ati mu pada ni idahun. - `quotaEndpoint` — aaye ipari quota/credits ẹnu-ọna, ka fun rinhoho ipin ipin dasibodu ati afisona-kito. Ṣiṣẹ lori mejeeji OpenAI- ati Anthropic-ibaramu awọn isopọ; apẹrẹ kikun ti wa ni akọsilẹ ni `open-sse/services/usage/openaiCompatible.ts`. ```json { "toolNameMaxLength": 64, "quotaEndpoint": { "url": "https://gateway.example.com/key/info", "auth": "bearer", "quotas": { "budget": { "used": "$.info.spend", "total": "$.info.max_budget", "currency": "USD" } } } } ``` ### Chaining OmniRoute ẹlẹgbẹ Ona-ọna OmniRoute miiran le ṣe afikun bi a** Aṣa OpenAI-ibaramu** olupese. Lo `/v1` ipilẹ URL ẹlẹgbẹ ati igbẹhin, bọtini API ti o kere ju ti o ti gbejade nipasẹ ẹlẹgbẹ yẹn. Fun awọn ẹwọn ilọtun-pada tabi awọn ẹwọn hop-pupọ, jẹ ki ẹṣọ lupu ijade ṣiṣẹ ni gbogbo ẹnu-ọna: ```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 ``` Awọn ibeere nikan ti a firanṣẹ si atokọ ti a gba laaye ni gbangba URL gba akọsori `X-OmniRoute-Peer-Trace` naa. Ẹnu-ọna kan kọ apẹẹrẹ ID ti o tun ṣe tabi isuna hop ti o rẹ pẹlu HTTP `508 Loop Detected`; awọn olupese oke lasan gba ko si metadata ẹlẹgbẹ. Pipin ẹlẹgbẹ kii ṣe ẹda data tabi ikuna agbalejo. Ẹnu-ọna kọọkan tọju ipo SQLite ominira, awọn caches, awọn iṣiro oṣuwọn, ati awọn akoko. Lo aṣoju iyipada ti ilera ti a ṣayẹwo tabi ikuna alabara fun active/passive tabi wiwa active/active, ati pe ko gbe data data SQLite kan sinu awọn apẹẹrẹ OmniRoute ṣiṣiṣẹ lọpọlọpọ. ### Awọn ipa ọna Olupese igbẹhin Awọn ibeere ipa ọna taara si olupese kan pato pẹlu afọwọsi awoṣe: ```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 ``` Ipilẹṣẹ olupese ti wa ni afikun laifọwọyi ti o ba sonu. Awọn awoṣe ti ko baamu pada `400`. ### Iṣeto Aṣoju nẹtiwọki ```bash # Set global proxy curl -X PUT http://localhost:20128/api/settings/proxy \ -d '{"global": {"type":"http","host":"proxy.example.com","port":"8080"}}' # Per-provider proxy curl -X PUT http://localhost:20128/api/settings/proxy \ -d '{"providers": {"openai": {"type":"socks5","host":"proxy.example.com","port":"1080"}}}' # Test proxy curl -X POST http://localhost:20128/api/settings/proxy/test \ -d '{"proxy":{"type":"socks5","host":"proxy.example.com","port":"1080"}}' ``` **Iṣaaju:** Bọtini-pato → Konbo-pato → Olupese-pato → Agbaye → Ayika. ### Awoṣe Catalog API ```bash curl http://localhost:20128/api/models/catalog ``` Dapada awọn awoṣe akojọpọ nipasẹ olupese pẹlu awọn oriṣi (`chat`, `embedding`, `image`). ### Awọsanma Sync - Awọn olupese amuṣiṣẹpọ, awọn akojọpọ, ati awọn eto kọja awọn ẹrọ - Imuṣiṣẹpọ abẹlẹ aifọwọyi pẹlu akoko-akoko + kuna-sare - Ṣe ayanfẹ `NEXT_PUBLIC_BASE_URL`/`NEXT_PUBLIC_CLOUD_URL` -ẹgbẹ olupin ni iṣelọpọ ### Cloudflare Quick Eefin - Wa ninu** Dasibodu → Endpoints** fun Docker ati awọn imuṣiṣẹ ti ara ẹni miiran - Ṣẹda `https://*.trycloudflare.com` URL fun igba diẹ ti o siwaju si OpenAI-ibaramu `/v1` lọwọlọwọ rẹ - Akọkọ jeki fifi `cloudflared` sori ẹrọ nikan nigbati o nilo; nigbamii tun bẹrẹ tun lo alakomeji iṣakoso kanna - Awọn Tunnels iyara kii ṣe atunṣe-laifọwọyi lẹhin OmniRoute tabi atunbere eiyan; tun mu wọn ṣiṣẹ lati dasibodu nigbati o nilo - Tunnel URLs jẹ ephemeral ati yi pada ni gbogbo igba ti o ba stop/start oju eefin naa - Aiyipada Awọn Tunnel Iyara ti iṣakoso si gbigbe HTTP/2 lati yago fun awọn ikilọ ifipamọ QUIC UDP alariwo ni awọn apoti ti o ni ihamọ - Ṣeto `CLOUDFLARED_PROTOCOL=quic` tabi `auto` ti o ba fẹ lati bori yiyan irinna ti iṣakoso - Ṣeto `CLOUDFLARED_BIN` ti o ba fẹran lilo alakomeji `cloudflared` ti a ti fi sii tẹlẹ dipo igbasilẹ iṣakoso - Cloudflare Eefin iyara, Tailscale Funnel, ati awọn panẹli eefin ngrok le ṣe afihan tabi farapamọ sinu** Eto → Irisi** . Ìbòmọ́lẹ̀ pánẹ́ẹ̀lì kan kò dá eefin tí ń ṣiṣẹ́ dúró. ### Imọye Ẹnu-ọna LLM (Ipele 9) - **Kaṣe atunmọ** - Awọn caches aifọwọyi ti kii ṣe ṣiṣanwọle, awọn idahun = 0 otutu (fori pẹlu `X-OmniRoute-No-Cache: true`) - **Beere Idempotency** - Ṣe iyasọtọ awọn ibeere laarin 5s nipasẹ `Idempotency-Key` tabi akọsori `X-Request-Id` - **Ilọsiwaju Àtòjọ** - Jade-ni awọn iṣẹlẹ SSE `event: progress` nipasẹ akọsori `X-OmniRoute-Progress: true` --- ### Ibi isereile onitumọ Wiwọle nipasẹ** Dasibodu → Onitumọ** . Ṣatunkọ ati wo bi OmniRoute ṣe tumọ awọn ibeere API laarin awọn olupese. | Ipo | Idi | | --------------------- | ------------------------------------------------------------------------------------------- | | **Ibi isereile** | Yan awọn ọna kika source/target, lẹẹmọ ibeere kan, ki o wo iṣẹjade ti a tumọ lesekese | | **Oluyanju iwiregbe** | Firanṣẹ awọn ifiranṣẹ iwiregbe laaye nipasẹ aṣoju ki o ṣayẹwo ọmọ request/response ni kikun | | **Idanwo ibujoko** | Ṣiṣe awọn idanwo ipele kọja awọn akojọpọ ọna kika pupọ lati jẹrisi atunse itumọ | | **Live Monitor** | Wo awọn itumọ akoko gidi bi awọn ibeere ṣe nṣan nipasẹ aṣoju | **Lo awọn igba:** - Ṣatunkọ idi ti apapọ client/provider kan pato kuna - Daju pe awọn afi ero, awọn ipe irinṣẹ, ati awọn eto eto ni itumọ ti tọ - Ṣe afiwe awọn iyatọ ọna kika laarin OpenAI, Claude, Gemini, ati Awọn idahun awọn ọna kika API --- ### Awọn ilana ipa ọna Tunto nipasẹ** Dasibodu → Eto → afisona** . Dasibodu naa ṣafihan awọn ilana mẹfa ti a lo julọ; combos ati awọn olulana-laifọwọyi fipa atilẹyin kan anfani ṣeto. **Awọn ilana ti o han Dasibodu (iṣalaye ipele-iroyin):** | Ilana | Apejuwe | | ------------------------------- | -------------------------------------------------------------------------------------------------------------- | | **Kun First** | Nlo awọn akọọlẹ ni aṣẹ pataki - akọọlẹ akọkọ n ṣakoso gbogbo awọn ibeere titi ko si | | **Yika Robin** | Awọn iyipo nipasẹ gbogbo awọn akọọlẹ pẹlu opin alalepo atunto (aiyipada: awọn ipe 3 fun akọọlẹ kan) | | **P2C (Agbara ti Aṣayan Meji)** | Yan awọn akọọlẹ laileto 2 ati awọn ipa-ọna si ọkan ti o ni ilera - awọn iwọntunwọnsi fifuye pẹlu akiyesi ilera | | **Laileto** | Laileto yan iroyin kan fun ibeere kọọkan nipa lilo Fisher-Yates Daarapọmọra | | **Ti o kere julọ Lo** | Awọn ipa ọna si akọọlẹ pẹlu akọbi `lastUsedAt` timestamp, pinpin ijabọ boṣeyẹ | | **Iṣapeye idiyele** | Awọn ipa ọna si akọọlẹ pẹlu iye ayo to kere julọ, iṣapeye fun awọn olupese ti o kere julọ | **To ti ni ilọsiwaju konbo ati auto ogbon** (ṣe atunto fun konbo tabi nipasẹ awọn ami-iṣaaju `auto/*` — wo [AUTO-COMBO.md](../routing/AUTO-COMBO.md) ): - `priority` - ti o muna ibere, kò yika-robins - `weighted` - ijabọ ipin nipasẹ awọn iwuwo awoṣe kọọkan - `fill-first` - imugbẹ akọkọ awoṣe titi awọn ifilelẹ lọ lu - `round-robin` / `strict-random` / `random` - `p2c` (Agbara ti Aṣayan Meji) - `least-used` ati `cost-optimized` - `auto` - Dimegilio-ìṣó kọja gbogbo awọn oludije - `lkgp` (Olupese to dara ti a mọ kẹhin) - awọn pinni si olupese aṣeyọri ti o kẹhin, lẹhinna ṣubu pada si awọn ofin - `context-optimized` - mu awoṣe pẹlu ferese ọrọ-ọrọ ọfẹ ti o tobi julọ - `context-relay` - awọn ẹwọn awọn awoṣe ọrọ-gun-gun fun awọn titan-tẹle #### Akọsori Ikoni Alalepo Ita Fun ijora igba ita (fun apẹẹrẹ, awọn aṣoju Claude Code/Codex lẹhin awọn aṣoju yiyipada), firanṣẹ: ```http X-Session-Id: your-session-key ``` OmniRoute tun gba `x_session_id` o si da bọtini igba ti o munadoko pada ni `X-OmniRoute-Session-Id`. Ti o ba lo Nginx ati firanṣẹ awọn akọle fọọmu abẹlẹ, mu ṣiṣẹ: ```nginx underscores_in_headers on; ``` #### Wildcard awoṣe Aliases Ṣẹda awọn awoṣe kaadi igbẹ lati yi awọn orukọ awoṣe pada: ``` Pattern: claude-sonnet-* → Target: cc/claude-sonnet-4-6 Pattern: gpt-* → Target: gh/gpt-5.3-codex ``` Wildcards ṣe atilẹyin `*` (awọn ohun kikọ eyikeyi) ati `?` (ohun kikọ kan). #### Awọn ẹwọn Fallback Ṣetumo awọn ẹwọn isubu agbaye ti o waye lori gbogbo awọn ibeere: ``` Chain: production-fallback 1. cc/claude-opus-4-7 2. gh/gpt-5.3-codex 3. glm/glm-4.7 ``` --- ### Awọn akojọpọ Olupese ti o wọpọ & Awọn Ilana ipa-ọna Eyi ni awọn apẹẹrẹ apẹẹrẹ fun apapọ ọpọlọpọ awọn olupese ati ipa ọna laarin wọn ni OmniRoute: #### 1. Aṣoju Ifaminsi Konbo: Idiye ipari-giga pẹlu Cost/Speed Fallback Apẹrẹ fun awọn aṣoju ifaminsi (OpenCode, koodu Claude, Cursor, Cline). Awọn ipa ọna ni ibẹrẹ si awọn awoṣe ero iwaju, ja bo pada si awọn awoṣe ifaminsi iyara lori irẹwẹsi ipin tabi awọn aṣiṣe. - **Dasibodu** Combos → Konbo Tuntun → Oruko: `agent-coding` → Strategy: `Priority` - **Awọn awoṣe** : 1. `claude/claude-sonnet-4-6` (Aṣoju ifaminsi akọkọ) 2. `openai/gpt-4o` (ifasẹhin agbara giga giga) 3. `deepseek/deepseek-v4-flash` (Ṣiṣe-giga, ipadabọ ti o munadoko) ```bash # Example via API curl -X POST http://localhost:20128/api/combos \ -H "Authorization: Bearer $OMNIROUTE_MANAGE_KEY" \ -H "Content-Type: application/json" \ -d '{ "name": "agent-coding", "strategy": "priority", "models": [ { "model": "claude/claude-sonnet-4-6" }, { "model": "openai/gpt-4o" }, { "model": "deepseek/deepseek-v4-flash" } ] }' ``` #### 2. Free-Tier Auto Failover Konbo Awọn ẹwọn ọpọ-ọfẹ ati awọn olupese ti ko ni bọtini lati mu akoko iṣẹ pọ si laisi awọn idiyele API. - **Ilana** : `Least Used` tabi `Round Robin` (npin fifuye kọja awọn ipin) - **Awọn awoṣe** : 1. `groq/llama-3.3-70b-versatile` 2. `gemini/gemini-2.5-flash` 3. `cerebras/gpt-oss-120b` ```bash # Example via CLI omniroute combo create free-stack \ --models "groq/llama-3.3-70b-versatile,gemini/gemini-2.5-flash,cerebras/gpt-oss-120b" \ --strategy round-robin ``` #### 3. Multimodal / Vision & Pipeline Text Sisopọ awọn awoṣe iran amọja pẹlu iran ọrọ iyara-giga fun ṣiṣan iṣẹ ti o kan oye aworan ati iran koodu. - **Àpẹẹrẹ** : Akopọ `Priority` kan ti o ṣe atokọ awọn awoṣe ti o lagbara iran ni akọkọ ati awoṣe text/code giga-giga ti o kẹhin. - **Awọn awoṣe** : 1. `gemini/gemini-2.5-pro` (oye image/multimodal ti o lagbara) 2. `openai/gpt-4o` (iran iwọntunwọnsi ati lilo irinṣẹ) 3. `deepseek/deepseek-v4-flash` ( iran Text/code ) --- ### Resilience & Circuit Breakers Tunto nipasẹ** Dasibodu → Eto → Resilience** . OmniRoute ṣe imuse resilience ipele olupese pẹlu awọn paati marun: 1. **Bere isinyi & Pacing** - Ṣiṣeto ipele eto eto: - **Awọn ibeere fun Iṣẹju kan (RPM)** - Awọn ibeere to pọju fun iṣẹju kan fun akọọlẹ kan - **Min Time Laarin awọn ibeere** - Aafo ti o kere julọ ni awọn iṣẹju-aaya laarin awọn ibeere - **Max Awọn ibeere igbakanna** - Awọn ibeere igbakana ti o pọju fun akọọlẹ kan 2. **Itutu Asopọmọra** - Iṣeto ni iru-auth fun asopọ ẹyọkan lẹhin awọn ikuna atunyan: - **Mimọ Cooldown** - Ferese itutu agbaiye aiyipada fun awọn ikuna oke ti o ṣee tun gbiyanju - **Lo Awọn Italolobo Tun gbiyanju ni oke** - Bọla fun `Retry-After` aṣẹ tabi tun awọn amọran to nigba ti a pese - **Max Backoff Igbesẹ** - Ipele ẹhin ipari ti o pọju fun awọn ikuna ti o leralera 3. **Olupese Circuit Fifọ** - Tọpinpin awọn ikuna olupese lati opin-si-opin, samisi olupese ti o bajẹ ni iloro ikilọ ti atunto, ati ṣi ẹrọ fifọ nigbati o ba de opin ikuna atunto: - **Ibalẹ Ibalẹ** - Awọn ikuna olupese itẹlera ṣaaju titẹ `DEGRADED` - **Ipari Ikuna** - Awọn ikuna olupese itẹlera ṣaaju titẹ `OPEN` - **Tun Aago Iṣeto** - Window akoko ṣaaju idanwo olupese lẹẹkansi - **CLOSED** (ni ilera) - Awọn ibeere ṣan ni deede - **DEGRADED** - Awọn ibeere ṣi nṣàn lakoko ti o ti tọpinpin awọn ikuna ti o ga - **OPEN** - Olupese ti ni idinamọ fun igba diẹ lẹhin awọn ikuna leralera - **HALF_OPEN** - Idanwo ti olupese ba ti gba pada Awọn opin oṣuwọn `429` ti asopọ-dopin duro ni** Itutu Asopọmọra** ati ki o ma ṣe ka si olupilẹṣẹ olupese. Ipo asiko isise fifọ olupese yoo han lori** Dasibodu → Health** nikan. 4. **Duro Fun Itutu** - Ti gbogbo asopọ oludije ti n tutu tẹlẹ, OmniRoute le duro fun itutu agbaiye akọkọ ati tun gbiyanju ibeere alabara kanna ni adaṣe. 5. **Oṣuwọn Ifilelẹ Aifọwọyi-iwari** - Nigbati awọn olupese oke ba pada awọn window iduro ti o fojuhan, awọn amọran wọnyẹn bori itutu asopọ agbegbe nigbati eto naa ba ṣiṣẹ. **Imọran Pro:** Lo awọn** Ilera** oju-iwe lati ṣayẹwo ati tunto awọn fifọ olupese laaye lẹhin ijade kan. Oju-iwe Resilience nikan yi iṣeto ni pada. --- ### Si ilẹ okeere / gbe wọle aaye data Ṣakoso awọn afẹyinti database ni** Dasibodu → Eto → Eto & Ibi ipamọ** . | Iṣe | Apejuwe | | ------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | | **Gbejade aaye data** | Ṣe igbasilẹ aaye data SQLite lọwọlọwọ bi faili `.sqlite` kan | | **Jade Gbogbo (.tar.gz)** | Ṣe igbasilẹ iwe ipamọ afẹyinti ni kikun pẹlu: aaye data, awọn eto, awọn akojọpọ, awọn asopọ olupese (ko si awọn iwe-ẹri), metadata bọtini API | | **Gbe aaye data wọle** | Ṣe igbasilẹ faili `.sqlite` kan lati rọpo aaye data lọwọlọwọ. Atilẹyin agbewọle-ṣaaju ti ṣẹda laifọwọyi ayafi ti `DISABLE_SQLITE_AUTO_BACKUP=true` | ```bash # API: Export database curl -o backup.sqlite http://localhost:20128/api/db-backups/export # API: Export all (full archive) curl -o backup.tar.gz http://localhost:20128/api/db-backups/exportAll # API: Import database curl -X POST http://localhost:20128/api/db-backups/import \ -F "file=@backup.sqlite" ``` **Ifọwọsi agbewọle:** Faili ti a ko wọle jẹ ifọwọsi fun iduroṣinṣin (ṣayẹwo SQLite pragma), awọn tabili ti a beere (`provider_connections`, `provider_nodes`, `combos`, `api_keys`), ati iwọn (max 100MB). **Lo Awọn ọran:** - Gbe OmniRoute laarin awọn ẹrọ - Ṣẹda awọn afẹyinti ita fun imularada ajalu - Pin awọn atunto laarin awọn ọmọ ẹgbẹ ẹgbẹ (jade gbogbo ibi ipamọ → si ilẹ okeere) --- ### Dasibodu Eto Oju-iwe eto ti ṣeto sinu** 7 awọn taabu** fun irọrun lilọ kiri: | Taabu | Awọn akoonu | | ---------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | | **Gbogboogbo** | Awọn irinṣẹ ibi ipamọ eto, ihuwasi aiyipada, hihan oju eefin Endpoint | | **Ifarahan** | Awọn idari akori (light/dark/system), hihan ẹgbẹ ẹgbẹ, awọn iyipada nronu fun awọn kaadi eefin Cloudflare/Tailscale/ngrok | | **AI** | Isuna ero (passthrough / auto-strip / custom / adaptive — wo [THINKING_BUDGET.md](./THINKING_BUDGET.md) ), eto eto agbaye, awọn iṣiro kaṣe kiakia | | **Aabo** | awọn eto Login/Password, Iṣakoso Wiwọle IP, API auth fun `/models`, Idilọwọ Olupese, oluso abẹrẹ kiakia | | **Ipa ọna** | Ilana ipa-ọna agbaye (Fikun akọkọ / Yika Robin / P2C / ID / Lilo ti o kere ju / Iṣapeye idiyele), inagijẹ awoṣe kaadi, awọn ẹwọn isubu, awọn abawọn konbo | | **Resilience** | Beere isinyi, itutu asopọ asopọ, atunto fifọ olupese, ati ihuwasi idaduro-duro | | **To ti ni ilọsiwaju** | Iṣeto-aṣoju agbaye (HTTP/SOCKS5), aṣoju aṣoju-olupese dojukọ | Gbogboogbo ko ṣe ẹda-iwe kika-nikan ati awọn akọsilẹ kaṣe mọ. Idaduro aaye data ati awọn eto iṣapeye ti wa ni idaduro nipasẹ `/api/settings/database`; imukuro kaṣe afọwọṣe nlo `DELETE /api/cache`. Ibeere ati awọn bọtini awọn ila iwe aṣoju jẹ iṣakoso nipasẹ `CALL_LOGS_TABLE_MAX_ROWS` ati `PROXY_LOGS_TABLE_MAX_ROWS`. --- ### Awọn idiyele & Isakoso isuna Wiwọle nipasẹ** Dasibodu → Awọn idiyele** . | Taabu | Idi | | ------------- | ------------------------------------------------------------------------------------------------- | | **Isuna** | Ṣeto awọn opin inawo fun bọtini API pẹlu awọn eto isuna daily/weekly/monthly ati ipasẹ akoko gidi | | **Ifowoleri** | Wo ati ṣatunkọ awọn titẹ sii idiyele awoṣe - idiyele fun awọn ami ami input/output 1K fun olupese | ```bash # API: Set a budget curl -X POST http://localhost:20128/api/usage/budget \ -H "Content-Type: application/json" \ -d '{"keyId": "key-123", "limit": 50.00, "period": "monthly"}' # API: Get current budget status curl http://localhost:20128/api/usage/budget ``` **Titele iye owo:** Gbogbo ibeere ṣe igbasilẹ lilo ami ami ati ṣe iṣiro idiyele nipa lilo tabili idiyele. Wo breakdowns ni** Dasibodu → Lilo** nipasẹ olupese, awoṣe, ati bọtini API. --- ### Igbasilẹ ohun OmniRoute ṣe atilẹyin iwe-igbasilẹ ohun nipasẹ aaye ipari ibaramu OpenAI: ```bash POST /v1/audio/transcriptions Authorization: Bearer your-api-key Content-Type: multipart/form-data # Example with 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` jẹ ọna Deepgram abinibi ati pe o nilo bọtini Deepgram API kan. Ti o ba tunto OpenRouter nikan, lo `openrouter/deepgram/nova-3`. **Ọrọ-si-ọrọ (igbasilẹ)** awọn olupese: - `openai/` (ibaramu whisper) - `groq/` (Groq Whisper Turbo) - `deepgram/` ( idile Nova) - `assemblyai/` - `nvidia/` (Parakeet, Canary) - `huggingface/` (awọn iyatọ whisper) - `qwen/` **Ọrọ-si-Ọrọ (`POST /v1/audio/speech`)** awọn olupese: - `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/` Awọn ọna kika ohun ti o ni atilẹyin fun kikọ silẹ: `mp3`, `wav`, `m4a`, `flac`, `ogg`, `webm`. awọn ọna kika TTS da lori olupese (mp3, wav, opus, PCm, mulaw). --- ### Konbo Iwontunwonsi ogbon Ṣe atunto iwọntunwọnsi fun konbo ni** Dasibodu → Combos → Create/Edit → Strategy** . | Ilana | Apejuwe | | --------------------- | ------------------------------------------------------------------------- | | **Yika-Robin** | Yiyi nipasẹ awọn awoṣe lẹsẹsẹ | | **Ni ayo** | Nigbagbogbo gbiyanju akọkọ awoṣe; ṣubu pada nikan lori aṣiṣe | | **Laileto** | Yiyan awoṣe laileto lati konbo fun ibeere kọọkan | | **Ti iwuwo** | Awọn ipa-ọna ni iwọn ti o da lori awọn iwuwo ti a sọtọ fun awoṣe | | **Ti o kere julọ-Lo** | Awọn ipa ọna si awoṣe pẹlu awọn ibeere aipẹ diẹ (nlo awọn metiriki konbo) | | **Iṣapeye idiyele** | Awọn ọna si awoṣe ti o wa lawin (nlo tabili idiyele) | Awọn aipe konbo agbaye le ṣeto sinu** Dasibodu → Eto → afisona → Konbo aiyipada** . Awọn akoko ibi-afẹde Konbo jogun akoko akoko ibeere lọwọlọwọ nipasẹ aiyipada. Lo** Akoko ibi-afẹde (awọn iṣẹju-aaya)** lori awọn aseku konbo tabi konbo kọọkan nikan nigbati opin ibi-afẹde kukuru kan yẹ ki o fa ipadabọ yiyara. Awọn iṣapeye konbo airi-idairi ti wa ni ijade. Fi silẹ** Awọn iṣapeye aipe-odo** alaabo lati ṣe idiwọ awọn ẹya airi wọnyi lati awọn ibi-afẹde ipadasẹhin ere-ije, fo awọn ibi-afẹde ti o da lori itan-akọọlẹ TTFT, tabi titẹkuro awọn ibeere isubu; muu jẹ ki o ngbanilaaye hedging tunto, awọn fo TTFT asọtẹlẹ, ati funmorawon fallback ti n ṣiṣẹ lati ṣowo iṣotitọ routing/request fun airi iru kekere. Pa a** Idaduro àmi Idi** nigbati awọn olupese oke nilo awọn opin `max_tokens` / `maxOutputTokens` ti o muna. Nigbati o ba ṣiṣẹ, ipa-ọna konbo nikan ṣe afikun ero-awoṣe headroom fun awọn awoṣe pẹlu fila iṣelọpọ ti a mọ ati fi opin ami ami alabara silẹ ko yipada nigbati iye ifipamọ ailewu yoo kọja fila yẹn. Ti opin alabara ba ti wa loke fila ti a mọ, OmniRoute dimole si fila yẹn ṣaaju fifiranṣẹ ibeere oke. --- ### Dasibodu ilera Wiwọle nipasẹ** Dasibodu → Health** . Akopọ ilera eto akoko gidi pẹlu awọn kaadi 6: | Kaadi | Ohun Ti O Fihan | | ------------------------------ | ------------------------------------------------------------------- | | **Ipo System** | Akoko ipari, ẹya, lilo iranti, ilana data | | **Ilera Olupese** | Olupese agbaye onipin-ajo akoko asiko isise | | **Awọn idiwọn Oṣuwọn** | Awọn itutu asopọ asopọ ti nṣiṣe lọwọ fun akọọlẹ pẹlu akoko to ku | | **Awọn titiipa ti nṣiṣe lọwọ** | Awọn titiipa awoṣe-dopin ti nṣiṣe lọwọ ati awọn imukuro igba diẹ | | **Kaṣe Ibuwọlu** | Awọn iṣiro kaṣe idinkukuro (awọn bọtini ti nṣiṣe lọwọ, oṣuwọn lilu) | | **Lairi Telemetry** | akopọ lairi p50/p95/p99 fun olupese | **Imọran Pro:** Oju-iwe Ilera n ṣe atunṣe laifọwọyi ni gbogbo iṣẹju mẹwa 10. Lo kaadi fifọ Circuit lati ṣe idanimọ iru awọn olupese ti n ni iriri awọn ọran. --- ## 🤖 Ìdarí Aládàáṣiṣẹ́ (Àìní-àtúnṣe) OmniRoute ní **olùdarí aládàáṣiṣẹ́ tí ìṣírò-ààmì ń darí**, èyí tí ń yan model tó dára jù fún ìbéèrè kọ̀ọ̀kan láàárín gbogbo provider tí a ti sopọ̀ — kò sí combo kankan láti máa bójú tó. Kàn fi ìbéèrè náà ránṣẹ́ pẹ̀lú ọ̀kan lára àwọn prefix `auto/*`, OmniRoute yóò sì ṣẹ̀dá combo àfojúrí lẹ́sẹ̀kẹsẹ̀, nípa fífún àwọn olùdíje ní ààmì lórí latency, iye owó, ìwọ̀n àṣeyọrí, bí context ṣe bá a mu, bí model ṣe yẹ fún iṣẹ́ náà, àwọn ìkùnà àìpẹ́, quota, àti ipò circuit-breaker. | Prefix | Ohun tí ó ń mú dára sí i | | -------------- | ------------------------------------------------------------------------------------------------- | | `auto` | Ìwọ̀ntúnwọ̀nsì àiyípadà (latency × iye owó × ìwọ̀n àṣeyọrí) | | `auto/coding` | Àwọn iṣẹ́ coding: ó fẹ́ràn Claude, GPT-5, GLM, Kimi, Qwen Coder, àwọn coder DeepSeek | | `auto/cheap` | $/token tó kéré jù, ó gba latency tó ga sí i | | `auto/fast` | Latency tó kéré jù, kò ka iye owó sí | | `auto/offline` | Àwọn provider abẹ́lé nìkan (Ollama, vLLM, llama.cpp) — ó wúlò fún àwọn ètò air-gapped | | `auto/smart` | Didára ìrònú ló ṣe pàtàkì jù (Opus, GPT-5 xhigh, R1, ìrònú GLM 5.1) | | `auto/lkgp` | "Provider Rere Tí A Mọ̀ Kẹ́yìn" — ó dì mọ́ provider tó ṣàṣeyọrí kẹ́yìn, lẹ́yìn náà ó padà sí àwọn òfin | Àpẹẹrẹ: ```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 }' ``` A ṣàlàyé olùdarí aládàáṣiṣẹ́ náà ní kíkún nínú [AUTO-COMBO.md](../routing/AUTO-COMBO.md) — pẹ̀lú bí a ṣe lè ṣàtúnṣe àwọn ìwọ̀n fífún-ààmì, fi àwọn provider sínú àtòjọ-dúdú, àti ṣàyẹ̀wò àwọn ìpinnu ìdarí nínú **Dashboard → Auto Combo**. --- ## 🔌 Ìṣọ̀kan MCP & A2A OmniRoute jẹ́ **server MCP** (Model Context Protocol) àti **server A2A** (Agent-to-Agent JSON-RPC 2.0). IDE tàbí ibi ìgbàlejò agent èyíkéyìí tó bá MCP mu lè pe àwọn irinṣẹ́ OmniRoute ní tààrà — kò nílò wrapper àfikún. ### Àwọn ọ̀nà ìgbékalẹ̀ MCP - **SSE**: `http://localhost:20128/api/mcp/sse` - **HTTP tí a lè ṣàn**: `http://localhost:20128/api/mcp/stream` - **stdio**: `omniroute --mcp` (fún àwọn plugin IDE tí ó fẹ́ràn stdio) ### So Claude Desktop pọ̀ Ṣàtúnṣe `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS) tàbí èyí tó bá a dọ́gba lórí Windows/Linux: ```json { "mcpServers": { "omniroute": { "command": "omniroute", "args": ["--mcp"] } } } ``` ### So Cursor / Continue / VS Code MCP pọ̀ Lo URL SSE `http://localhost:20128/api/mcp/sse` àti kọ́kọ́rọ́ API Bearer tí a ṣẹ̀dá nínú **Dashboard → API Keys**. ### Àwọn ààlà-àṣẹ MCP ń ṣàlàyé àwọn ààlà-àṣẹ 32 tí a dárúkọ lọ́wọ́lọ́wọ́. A lè fi kọ́kọ́rọ́ Bearer kọ̀ọ̀kan mọ́ àwọn ààlà-àṣẹ pàtó — wo [MCP-SERVER.md](../frameworks/MCP-SERVER.md) fún àkójọ àṣẹ àti irinṣẹ́ tó jẹ́ ìtọ́kasí pàtàkì, àti [A2A-SERVER.md](../frameworks/A2A-SERVER.md) fún schema JSON-RPC. --- ## 🧠 Ètò Àwọn Ọgbọ́n OmniRoute ń pèsè **ìlànà ọgbọ́n** tí a lè mú gbòòrò sí i (`src/lib/skills/`) kí àwọn aṣojú àti endpoint A2A lè ṣiṣẹ́ àwọn ìlànà tó jẹ́ ti ẹ̀ka pàtó (fún àpẹẹrẹ `code-review`, `summarize`, `extract-facts`, `web-research`). - **Ìrísí Marketplace** — Ṣàwárí kí o sì fi àwọn ọgbọ́n sílẹ̀ láti **Dashboard → Skills** - **Àwọn scope fún kọ́kọ́rọ́ kọ̀ọ̀kan** — Dín àwọn ọgbọ́n tí kọ́kọ́rọ́ API kọ̀ọ̀kan lè pè lò kù - **Àwọn ọgbọ́n àdáni** — Fi fáìlì TypeScript kan sínú `src/lib/a2a/skills/`, forúkọ rẹ̀ sílẹ̀, yóò sì lè jẹ́ pípè lẹ́sẹ̀kẹsẹ̀ lórí A2A Ìtọ́kasí kíkún: [SKILLS.md](../frameworks/SKILLS.md). --- ## 💾 Ètò Ìrántí OmniRoute ń tọ́jú **ìrántí ìjíròrò fún ìgbà pípẹ́** pẹ̀lú ìṣàwárí àdàpọ̀: - **SQLite FTS5** fún wíwá ọ̀rọ̀ pàtàkì láàárín àwọn ìjíròrò àtijọ́ - **Ibi ìtọ́jú vector Qdrant** (àṣàyàn) fún ìrántí ìtumọ̀ - **Yíyọ òtítọ́ jáde láìfọwọ́ṣe** — a máa ń ṣe àkótán àwọn entity, ohun tí a fẹ́ràn, àti àwọn ìpinnu lẹ́yìn session kọ̀ọ̀kan, a ó sì tọ́jú wọn sínú tábìlì `memory_facts` - A máa ń pín àwọn ìrántí ní ìbámu pẹ̀lú kọ́kọ́rọ́ API kọ̀ọ̀kan àti session kọ̀ọ̀kan Ṣàkóso àwọn ìrántí ní **Dashboard → Memory** (wá, ṣàtúnṣe, gbé jáde, pa rẹ́ ráúráú). Ojú-ọ̀nà HTTP (`/api/memory/*`) ń jẹ́ kí àwọn aṣojú fi àwọn òtítọ́ ránṣẹ́ kí wọ́n sì béèrè wọn nípasẹ̀ ètò — wo [MEMORY.md](../frameworks/MEMORY.md). --- ## 🔔 Webhooks Forúkọ sílẹ̀ fún àwọn ìṣẹ̀lẹ̀ OmniRoute láti ṣe àbójútó àti ìmúṣẹ aládàáṣiṣẹ́ ní àkókò gidi. - Ṣẹ̀dá webhook kan ní **Dashboard → Webhooks** pẹ̀lú URL ibi-afẹ́ àti àṣírí ìfọwọ́sí HMAC - Àwọn ìṣẹ̀lẹ̀ tó wà: `request.completed`, `request.failed`, `provider.unavailable`, `budget.exceeded`, `combo.switched`, `circuit_breaker.opened`, `circuit_breaker.closed` - Payload kọ̀ọ̀kan ní `X-OmniRoute-Signature` (HMAC-SHA256) fún ìjẹ́rìísí - Àwọn àtúngbìyànjú: ìgbìyànjú mẹ́ta pẹ̀lú ìdádúró tó ń pọ̀ sí i lọ́nà exponential, lẹ́yìn náà a ó fi sí dead-letter queue Schema kíkún wà ní [WEBHOOKS.md](../frameworks/WEBHOOKS.md). --- ## ☁️ Àwọn Aṣojú Cloud OmniRoute ń ṣiṣẹ́ pọ̀ mọ́ àwọn aṣojú ìkọ̀wé kóòdù lórí cloud (**OpenAI Codex Cloud**, **Devin**, **Jules**, **Antigravity**) kí o lè rán àwọn iṣẹ́ tó máa gba àkókò gígùn láti dashboard kan náà tó ń ṣàkóso routing abẹ́lé rẹ. - Ṣẹ̀dá àwọn iṣẹ́ ní **Dashboard → Cloud Agents** tàbí nípasẹ̀ `POST /api/v1/agents/tasks` - Tọpinpin ipò, àwọn log, àti àwọn artifact fún iṣẹ́ kọ̀ọ̀kan - Mú kọ́kọ́rọ́ API tìrẹ fún provider kọ̀ọ̀kan — àwọn credential kì í fi instance OmniRoute sílẹ̀ láéláé Ìtọ́kasí kíkún: [CLOUD_AGENT.md](../frameworks/CLOUD_AGENT.md). --- ## 🛠️ Ìṣàkóso Nípasẹ̀ Ètò O lè ṣàkóso gbogbo resource OmniRoute (àwọn provider, combo, kọ́kọ́rọ́, àti ètò) lórí HTTP nípa lílo **kọ́kọ́rọ́ Bearer tó ní scope `manage`**. Ṣẹ̀dá kọ́kọ́rọ́ náà ní **Dashboard → API Keys → New Key → Scope: manage**, lẹ́yìn náà: ```bash # Ṣàtòjọ àwọn provider curl http://localhost:20128/api/providers \ -H "Authorization: Bearer $OMNIROUTE_MANAGE_KEY" # Ṣàfikún ìsopọ̀ provider kan 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" }' # Ṣẹ̀dá combo kan 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" }] }' # Ṣàtòjọ/ṣẹ̀dá àwọn kọ́kọ́rọ́ API 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"] }' ``` Wo [API_REFERENCE.md](../reference/API_REFERENCE.md) fún àkójọ endpoint kíkún àti àwọn schema request/response. --- ## 💻 CLI Abẹ́nú OmniRoute ní CLI abẹ́nú (`omniroute …`) fún ìṣètò, àyẹ̀wò ìṣòro, àti ìṣàkóso nígbà ìṣiṣẹ́. Èyí **yàtọ̀ sí ojú-ìwé "Àwọn Irinṣẹ́ CLI" nínú dashboard**, èyí tí ń ṣètò àwọn CLI láti ọ̀dọ̀ ẹlòmíràn (Claude Code, Cursor, Codex, Cline, …) kí wọ́n lè bá OmniRoute sọ̀rọ̀. ```bash omniroute setup # Olùrànlọ́wọ́ ìbánisọ̀rọ̀ (ọ̀rọ̀ aṣínà, àwọn olùpèsè, àwọn àkójọpọ̀) omniroute setup --non-interactive # Ó bá CI mu omniroute doctor # Àyẹ̀wò ìlera (àpò data, DB, àwọn olùpèsè, àwọn port) omniroute providers available # Ṣàkójọ àwọn olùpèsè tí a ṣe àtìlẹ́yìn fún omniroute providers list # Ṣàkójọ àwọn ìsopọ̀ tí a ti ṣètò omniroute providers test # Ṣe àyẹ̀wò ìsopọ̀ olùpèsè ní tààrà omniroute combos list # Ṣàkójọ àwọn àkójọpọ̀ omniroute combos switch # Ṣètò àkójọpọ̀ àiyipada omniroute models # Ṣàkójọ àwọn model tó wà (--json, --search) omniroute keys add | list | remove # Ṣàkóso àwọn kọ́kọ́rọ́ API láti terminal omniroute backup # Ya àwòrán ìpamọ́ ìṣètò + DB omniroute restore [] # Mú padà láti inú àwòrán ìpamọ́ omniroute health # Ìlera ní ẹ̀kúnrẹ́rẹ́ (breakers, cache, memory) omniroute quota # Lílo ìwọ̀n olùpèsè omniroute mcp status # Ipò server MCP omniroute a2a status # Ipò server A2A omniroute tunnel list|create|stop # Àwọn tunnel Cloudflare/Tailscale/ngrok omniroute reset-password # Tún ọ̀rọ̀ aṣínà alákóso ṣètò omniroute --mcp # Bẹ̀rẹ̀ server MCP lórí stdio omniroute --port 3000 # Bẹ̀rẹ̀ server lórí port àkànṣe ``` Ìmọ̀ràn: so `omniroute doctor --json` pọ̀ mọ́ irinṣẹ́ àbójútó rẹ láti fi ìkìlọ̀ ránṣẹ́ nípa àwọn ìsopọ̀ olùpèsè tí kò ní ìlera. --- ## 🖥️ Ìṣàfilọ́lẹ̀ Orí Kọ̀ǹpútà (Electron) OmniRoute wà gẹ́gẹ́ bí ìṣàfilọ́lẹ̀ abinibi orí kọ̀ǹpútà fún Windows, macOS, àti Linux. ### Fífìdí Rẹ̀ Múlẹ̀ ```bash # Láti inú àkójọpọ̀ electron: cd electron npm install # Ipo ìdàgbàsókè (sopọ̀ mọ́ server ìdàgbàsókè Next.js tó ń ṣiṣẹ́): npm run dev # Ipo iṣẹ́-gidi (ń lo build standalone): npm start ``` ### Ṣíṣe Àwọn Installer ```bash cd electron npm run build # Platform tó ń lò lọ́wọ́lọ́wọ́ npm run build:win # Windows (.exe NSIS) npm run build:mac # macOS (.dmg universal) npm run build:linux # Linux (.AppImage) ``` Àbájáde → `electron/dist-electron/` ### Àwọn Ẹ̀ya Pàtàkì | Ẹ̀ya | Àpèjúwe | | --------------------- | ---------------------------------------------------------- | | **Ìmúrasílẹ̀ Server** | Ó ń yẹ server wò kí ó tó fi window hàn (kò sí ojú òfo) | | **System Tray** | Dín kù sínú tray, yí port padà, jáde láti inú àkójọ tray | | **Ìṣàkóso Port** | Yí port server padà láti tray (server á tún bẹ̀rẹ̀ fúnra rẹ̀) | | **Ìlànà Ààbò Àkóónú** | CSP tó le nípasẹ̀ àwọn header session | | **Instance Kan Ṣoṣo** | Instance ìṣàfilọ́lẹ̀ kan ṣoṣo ló lè ṣiṣẹ́ lẹ́ẹ̀kan | | **Ipo Àìsí Ìkànnì** | Server Next.js tí a kó sínú rẹ̀ ń ṣiṣẹ́ láìsí internet | ### Àwọn Àyípadà Àyíká | Àyípadà | Àiyipada | Àpèjúwe | | --------------------- | -------- | ------------------------------- | | `OMNIROUTE_PORT` | `20128` | Port server | | `OMNIROUTE_MEMORY_MB` | `512` | Òpin heap Node.js (64–16384 MB) | 📖 Ìwé ìtọ́nisọ́nà ní ẹ̀kúnrẹ́rẹ́: [`electron/README.md`](../../electron/README.md)