1,104 mirrors rewritten over five passes of run-translation on the 22-source core set: the 14 sources edited since their translation, the 322 mirrors that were still English copies, and the frontmatter the old extractor leaked into the newer locales' bodies. The pipeline now caches per-`## `-section hashes and retranslates only changed sections, never reuses a section that is still English, rebuilds English-copy / leaked mirrors even when the source is unchanged, merges the state on save (parallel runs), and the drift gate (scoped to the core set) is blocking. Final audit: 0 stale, 0 English copies, 0 leaked frontmatter across 1,430 core mirrors. ⚠️ base-red inherited: #12732
82 KiB
User Guide (Yorùbá)
🌐 Languages: 🇺🇸 English · 🇪🇹 am · 🇸🇦 ar · 🇦🇿 az · 🇧🇬 bg · 🇧🇩 bn · 🇨🇿 cs · 🇩🇰 da · 🇩🇪 de · 🇬🇷 el · 🇪🇸 es · 🇪🇪 et · 🇮🇷 fa · 🇫🇮 fi · 🇫🇷 fr · 🇮🇪 ga · 🇮🇳 gu · 🇳🇬 ha · 🇮🇱 he · 🇮🇳 hi · 🇭🇷 hr · 🇭🇺 hu · 🇦🇲 hy · 🇮🇩 id · 🇳🇬 ig · 🇮🇹 it · 🇯🇵 ja · 🇬🇪 ka · 🇰🇭 km · 🇮🇳 kn · 🇰🇷 ko · 🇱🇹 lt · 🇱🇻 lv · 🇮🇳 ml · 🇮🇳 mr · 🇲🇾 ms · 🇲🇹 mt · 🇲🇲 my · 🇳🇵 ne · 🇳🇱 nl · 🇳🇴 no · 🇮🇳 or · 🇮🇳 pa · 🇵🇭 phi · 🇵🇱 pl · 🇵🇹 pt · 🇧🇷 pt-BR · 🇷🇴 ro · 🇷🇺 ru · 🇱🇰 si · 🇸🇰 sk · 🇸🇮 sl · 🇷🇸 sr · 🇸🇪 sv · 🇰🇪 sw · 🇮🇳 ta · 🇮🇳 te · 🇹🇭 th · 🇹🇷 tr · 🇺🇦 uk-UA · 🇵🇰 ur · 🇺🇿 uz · 🇻🇳 vi · 🇨🇳 zh-CN · 🇹🇼 zh-TW
🌐 Àwọn èdè: 🇺🇸 English | 🇪🇹 አማርኛ | 🇸🇦 العربية | 🇦🇿 Azərbaycan dili | 🇧🇬 Български | 🇧🇩 বাংলা | 🇨🇿 Čeština | 🇩🇰 Dansk | 🇩🇪 Deutsch | 🇬🇷 Ελληνικά | 🇪🇸 Español | 🇪🇪 Eesti | 🇮🇷 فارسی | 🇫🇮 Suomi | 🇫🇷 Français | 🇮🇪 Gaeilge | 🇮🇳 ગુજરાતી | 🇳🇬 Hausa | 🇮🇱 עברית | 🇮🇳 हिन्दी | 🇭🇷 Hrvatski | 🇭🇺 Magyar | 🇦🇲 Հայերեն | 🇮🇩 Bahasa Indonesia | 🇳🇬 Igbo | 🇮🇹 Italiano | 🇯🇵 日本語 | 🇬🇪 ქართული | 🇰🇭 ខ្មែរ | 🇮🇳 ಕನ್ನಡ | 🇰🇷 한국어 | 🇱🇹 Lietuvių | 🇱🇻 Latviešu | 🇮🇳 മലയാളം | 🇮🇳 मराठी | 🇲🇾 Bahasa Melayu | 🇲🇹 Malti | 🇲🇲 မြန်မာ | 🇳🇵 नेपाली | 🇳🇱 Nederlands | 🇳🇴 Norsk | 🇮🇳 ଓଡ଼ିଆ | 🇮🇳 ਪੰਜਾਬੀ | 🇵🇭 Filipino | 🇵🇱 Polski | 🇵🇹 Português (Portugal) | 🇧🇷 Português (Brasil) | 🇷🇴 Română | 🇷🇺 Русский | 🇱🇰 සිංහල | 🇸🇰 Slovenčina | 🇸🇮 Slovenščina | 🇷🇸 Српски | 🇸🇪 Svenska | 🇰🇪 Kiswahili | 🇮🇳 தமிழ் | 🇮🇳 తెలుగు | 🇹🇭 ไทย | 🇹🇷 Türkçe | 🇺🇦 Українська | 🇵🇰 اردو | 🇺🇿 Oʻzbekcha | 🇻🇳 Tiếng Việt | 🇳🇬 Yorùbá | 🇨🇳 中文 (简体) | 🇹🇼 中文 (繁體)
Ì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é
- Àwọn Ọ̀nà Lílo
- Ìṣètò Olùpèsè
- Ìṣọ̀kan CLI
- Ìmúṣiṣẹ́
- Àwọn Módelì Tó Wà
- Àwọn Ẹ̀ya Ìlọsíwájú
- Ìdarí Aládàáṣe (Kò nílò ìṣètò)
- Ìṣọ̀kan MCP & A2A
- Ètò Àwọn Òye
- Ètò Ìrántí
- Àwọn Webhook
- Àwọn Aṣojú Àwọsánmà
- Ìṣàkóso Nípasẹ̀ Ètò
- CLI Abẹ́nú
- Ohun Èlò Orí Kọ̀ǹpútà (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ọ̀ kọ́kọ́rọ́ API kún un ní ọ̀pọ̀lọpọ̀ láti inú fáìlì CSV tàbí JSON, lo Dashboard → Providers → Import from file. Ipò àwọn ọ̀wọ̀n ni a fi ń dá wọn mọ̀ (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á a mu. Wo Gbé àwọn olùpèsè wọlé láti inú fáìlì CSV tàbí JSON.
🔐 Àwọn Olùpèsè Alábojútó
Claude Code (Pro/Max)
Dashboard → Providers → So Claude Code pọ̀
→ Wọlé pẹ̀lú OAuth → Ìsọdọ̀tun token aládàáṣe
→ Títọpinpin ìpín fún wákàtí 5 + ọ̀sẹ̀
Àwọn model:
cc/claude-opus-4-7
cc/claude-sonnet-4-6
cc/claude-haiku-4-5-20251001
Ìmọ̀ràn Amọ̀dájú: Lo Opus fún àwọn iṣẹ́ tó díjú, Sonnet sì fún iyára. OmniRoute ń tọpinpin ìpín fún model kọ̀ọ̀kan!
Àwọn ipa ọ̀nà tó bá Claude àti Claude Code mu ń pa ìsapá ìrònú max mọ́ fún àwọn model Opus àti Sonnet. Àwọn model Haiku kò gba ìpele ìsapá max, nítorí náà OmniRoute máa sọ ìbéèrè náà kalẹ̀ sí ìnáwó ìrònú gíga kí ó tó fi ránṣẹ́ sí upstream.
OpenAI Codex (Plus/Pro)
Dashboard → Providers → So Codex pọ̀
→ Wọlé pẹ̀lú OAuth (port 1455)
→ Àtúntò lẹ́yìn wákàtí 5 + lọ́sọ̀ọ̀sẹ̀
Àwọn model:
cx/gpt-5.5
cx/gpt-5.4
cx/gpt-5.3-codex
cx/gpt-5.3-codex-spark
GitHub Copilot
Dashboard → Providers → So GitHub pọ̀
→ OAuth nípasẹ̀ GitHub
→ Àtúntò lóṣooṣù (ọjọ́ kìíní oṣù)
Àwọn model:
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 Olùpèsè Olówó Pọ́ọ́kú
GLM-4.7 (Àtúntò ojoojúmọ́, $0.6/1M)
- Forúkọsílẹ̀: Zhipu AI
- Gba kọ́kọ́rọ́ API láti Coding Plan
- Dashboard → Add API Key: Provider:
glm, API Key:your-key
Lílo: glm/glm-4.7 — Ìmọ̀ràn Amọ̀dájú: Coding Plan ń fúnni ní ìpín tó pọ̀ ní ìlọ́po 3 pẹ̀lú 1/7 iye owó! Ó máa ń tún ara rẹ̀ tò ní 10:00 AM ojoojúmọ́.
MiniMax M2.1 (Àtúntò lẹ́yìn wákàtí 5, $0.20/1M)
- Forúkọsílẹ̀: MiniMax
- Gba kọ́kọ́rọ́ API → Dashboard → Add API Key
Lílo: minimax/MiniMax-M2.1 — Ìmọ̀ràn Amọ̀dájú: Èyí ni àṣàyàn tó din owó jù fún context gígùn (token 1M)!
Kimi K2 ($9/oṣù láìyípadà)
- Ṣalábàápín: Moonshot AI
- Gba kọ́kọ́rọ́ API → Dashboard → Add API Key
Lílo: kimi/kimi-k2.5 — Ìmọ̀ràn Amọ̀dájú: $9/oṣù láìyípadà fún token 10M = iye owó gidi $0.90/1M!
Baidu Qianfan / ERNIE
- Forúkọsílẹ̀: Baidu AI Cloud Qianfan
- Ṣẹ̀dá kọ́kọ́rọ́ API Qianfan → Dashboard → Add API Key: Provider:
qianfan
Lílo: qianfan/ernie-5.1, qianfan/ernie-x1.1, tàbí ID model Qianfan mìíràn tó bá OpenAI mu.
🆓 Àwọn Olùpèsè Ọ̀FẸ́
Àwọn olùpèsè ọ̀fẹ́ tí kò nílò ìfàṣẹ̀sí ní switch lẹ́gbẹ̀ẹ́ No authentication required lójú ewé olùpèsè wọn. Pípa á máa mú olùpèsè náà ṣiṣẹ́ mọ́, yóò yọ ọ́ kúrò nínú àwọn ìwòye Providers tí a ti ṣètò/tí a ti dín kù, yóò sì yọ àwọn model rẹ̀ kúrò ní /v1/models.
Qoder (model Ọ̀FẸ́ 9)
Dashboard → So Qoder pọ̀ → Wọlé pẹ̀lú OAuth → Ààyè lílò wà lábẹ́ àwọn ààlà olùpèsè lọ́wọ́lọ́wọ́
Àwọn model: 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Ẹ́)
Dashboard → So Kiro pọ̀ → AWS Builder ID tàbí Google/GitHub → ~50 credit/oṣù
Àwọn model: 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.
Claude Code
Ṣàtúnṣe ~/.claude/settings.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
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:
{
"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
🚀 Ìmúṣiṣẹ́
Fífi npm sí gbogbo ètò (A Dámọ̀ràn)
npm install -g omniroute
# Ṣẹ̀dá àpò ìṣètò
mkdir -p ~/.omniroute
# Ṣẹ̀dá fáìlì .env (wo .env.example)
cp .env.example ~/.omniroute/.env
# Bẹ̀rẹ̀ olupin
omniroute
# Tàbí pẹ̀lú port àkànṣe:
omniroute --port 3000
CLI máa ń kojọpọ̀ .env láti ~/.omniroute/.env tàbí ./.env láìfọwọ́yí.
Ipò tray
Bẹ̀rẹ̀ OmniRoute nínú tray ètò:
omniroute serve --tray
Àṣẹ náà máa padà lẹ́yìn tí olupin àti tray bá ti ṣetán.
Olupin náà máa tẹ̀síwájú láìsí terminal.
Ipò tray ń ṣe àtìlẹ́yìn fún macOS, Windows, àti àwọn session Linux aláwòrán. Ipò tray kì í ṣí dashboard láìfọwọ́yí.
Lo àkójọ aṣàyàn tray fún àwọn ìgbésẹ̀ wọ̀nyí:
- Ṣí dashboard.
- Ṣí
/dashboard/logs. - Yí ìbẹ̀rẹ̀-láìfọwọ́yí padà.
- Dá OmniRoute dúró.
Má ṣe darapọ̀ --tray mọ́ àwọn aṣàyàn wọ̀nyí:
--daemon--log--no-recovery
Àwọn ipò wọ̀nyí nílò ìṣàkóso process tó yàtọ̀.
Mú ìbẹ̀rẹ̀ ṣiṣẹ́ ní ìwọlé ẹ̀rọ tó kàn:
omniroute autostart enable
Ìbẹ̀rẹ̀-láìfọwọ́yí máa ń lo ipò tray lórí macOS, Windows, àti àwọn session Linux aláwòrán. Linux tí kò ní ìfihàn máa ń lo iṣẹ́ onílò systemd tó ti wà tẹ́lẹ̀.
Mú ìbẹ̀rẹ̀ nígbà ìwọlé kúrò:
omniroute autostart disable
Yíyọ Kúrò
Nígbà tí o kò bá nílò OmniRoute mọ́, a pèsè script kíákíá méjì fún yíyọ ọ́ kúrò lọ́nà mímọ́:
| Àṣẹ | Ìgbésẹ̀ |
|---|---|
npm run uninstall |
Yọ app ètò náà kúrò ṣùgbọ́n ó pa DB àti àwọn ìṣètò rẹ mọ́ sínú ~/.omniroute. |
npm run uninstall:full |
Yọ app náà kúrò, Ó SÌ pa gbogbo ìṣètò, kọ́kọ́rọ́, àti database rẹ́ pátápátá. |
Àkíyèsí: Láti ṣiṣẹ́ àwọn àṣẹ wọ̀nyí, lọ sí àpò iṣẹ́-àkànṣe OmniRoute (tí o bá ṣe clone rẹ̀), kí o sì ṣiṣẹ́ wọn. Ní ọ̀nà míì, tí o bá fi sí gbogbo ètò, o lè ṣiṣẹ́
npm uninstall -g omniroutenìkan.
Ìmúṣiṣẹ́ VPS
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
# Tàbí: pm2 start npm --name omniroute -- start
Ìmúṣiṣẹ́ PM2 (Memory Kékeré)
Fún àwọn olupin tó ní RAM tó ní ààlà, lo aṣàyàn ààlà memory:
# Pẹ̀lú ààlà 512MB (àkọ́ṣe)
pm2 start npm --name omniroute -- start
# Tàbí pẹ̀lú ààlà memory àkànṣe
OMNIROUTE_MEMORY_MB=512 pm2 start npm --name omniroute -- start
# Tàbí nípa lílo ecosystem.config.js
pm2 start ecosystem.config.js
Ṣẹ̀dá ecosystem.config.js:
module.exports = {
apps: [
{
name: "omniroute",
script: "npm",
args: "start",
env: {
NODE_ENV: "production",
OMNIROUTE_MEMORY_MB: "512",
JWT_SECRET: "your-secret",
INITIAL_PASSWORD: "your-password",
},
node_args: "--max-old-space-size=512",
max_memory_restart: "300M",
},
],
};
Docker
# Kọ image (àkọ́ṣe = runner-cli pẹ̀lú codex/claude/droid tí a ti fi sí tẹ́lẹ̀)
docker build -t omniroute:cli .
# Ipò tó ṣeé gbé kiri (a dámọ̀ràn)
docker run -d --name omniroute -p 20128:20128 --env-file ./.env -v omniroute-data:/app/data omniroute:cli
Fún ipò tó darapọ̀ mọ́ host pẹ̀lú àwọn binary CLI, wo apá Docker nínú docs pàtàkì.
Void Linux (xbps-src)
Àwọn olumulo Void Linux lè ṣe àkójọpọ̀ package OmniRoute kí wọ́n sì fi sí ẹ̀rọ wọn lọ́nà abinibi nípa lílo ìlànà àkójọpọ̀ agbelebu xbps-src. Èyí ń ṣe àkójọpọ̀ standalone Node.js àti àwọn binding abinibi better-sqlite3 tí a nílò láìfọwọ́ṣe.
Wo template xbps-src
# Fáìlì template fún 'omniroute'
pkgname=omniroute
version=3.8.0
revision=1
hostmakedepends="nodejs python3 make"
depends="openssl"
short_desc="Ẹnu-ọ̀nà AI àgbáyé pẹ̀lú ìdarí ọlọ́gbọ́n fún ọ̀pọ̀ olùpèsè LLM"
maintainer="zenobit <zenobit@disroot.org>"
license="MIT"
homepage="https://github.com/diegosouzapw/OmniRoute"
distfiles="https://github.com/diegosouzapw/OmniRoute/archive/refs/tags/v${version}.tar.gz"
checksum=009400afee90a9f32599d8fe734145cfd84098140b7287990183dde45ae2245b
system_accounts="_omniroute"
omniroute_homedir="/var/lib/omniroute"
export NODE_ENV=production
export npm_config_engine_strict=false
export npm_config_loglevel=error
export npm_config_fund=false
export npm_config_audit=false
do_build() {
# Ṣe ìdánimọ̀ faaji CPU àfojúsùn fún 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) Fi gbogbo deps sílẹ̀ – fo àwọn script
NODE_ENV=development npm ci --ignore-scripts
# 2) Kọ́ bundle standalone Next.js
npm run build
# 3) Da àwọn ohun èlò static sínú standalone
cp -r .next/static .next/standalone/.next/static
[ -d public ] && cp -r public .next/standalone/public || true
# 4) Ṣàkójọpọ̀ binding abinibi better-sqlite3
local _node_gyp=/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js
(cd node_modules/better-sqlite3 && node "$_node_gyp" rebuild --arch="$_gyp_arch")
# 5) Fi binding tí a ṣàkójọpọ̀ sínú bundle standalone
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) Yọ àwọn bundle sharp tí ó jẹ́ ti faaji pàtó kúrò
rm -rf .next/standalone/node_modules/@img
# 7) Da àwọn deps runtime pino tí ìṣàyẹ̀wò static Next.js kò fi sí:
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
# Dènà kí hook lẹ́yìn ìfiṣílẹ̀ má ba à yọ àwọn directory app router Next.js tí ó ṣófo
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
}
Àwọn Àyípadà Àyíká
| Àyípadà | Àkọ́ṣe | Àpèjúwe |
|---|---|---|
JWT_SECRET |
omniroute-default-secret-change-me |
Àṣírí ìfọwọ́sí JWT (yí i padà ní ìṣelọpọ) |
INITIAL_PASSWORD |
CHANGEME |
Ọ̀rọ̀ aṣínà fún ìwọlé àkọ́kọ́ |
DATA_DIR |
~/.omniroute |
Àpò-ọ̀nà dátà (db, lílò, àwọn àkọsílẹ̀) |
PORT |
àkọ́ṣe framework | Port iṣẹ́ (20128 nínú àwọn àpẹẹrẹ) |
HOSTNAME |
àkọ́ṣe framework | Host ìsopọ̀ (Docker máa ń lo 0.0.0.0 gẹ́gẹ́ bí àkọ́ṣe) |
NODE_ENV |
àkọ́ṣe runtime | Ṣètò sí production fún ìmúṣiṣẹ́ |
NEXT_PUBLIC_BASE_URL |
http://localhost:20128 |
URL ìpìlẹ̀ gbogbogbò tí a fi hàn sí dashboard tí server sì lè ráyè sí (ó rọ́pò BASE_URL àtijọ́) |
NEXT_PUBLIC_CLOUD_URL |
https://omniroute.dev |
URL ìpìlẹ̀ endpoint fún ìṣiṣẹ́pọ̀ cloud (ó rọ́pò CLOUD_URL àtijọ́) |
API_KEY_SECRET |
endpoint-proxy-api-key-secret |
Àṣírí HMAC fún àwọn kọ́kọ́rọ́ API tí a ṣẹ̀dá |
REQUIRE_API_KEY |
false |
Fi ipa mú lílo kọ́kọ́rọ́ API Bearer lórí /v1/* |
ALLOW_API_KEY_REVEAL |
false |
Gba àwọn olùlò dashboard tí a ti jẹ́rìí sí láyè láti fi gbogbo iye kọ́kọ́rọ́ API tí a tọ́jú hàn nígbà ìbéèrè |
PROVIDER_LIMITS_SYNC_INTERVAL_MINUTES |
70 |
Àkókò ìmúdójúìwọ̀n ní ẹ̀gbẹ́ server fún dátà Provider Limits tí a fi pamọ́ sínú cache; àwọn bọ́tìnì ìmúdójúìwọ̀n UI ṣì ń fa ìṣiṣẹ́pọ̀ afọwọ́ṣe |
DISABLE_SQLITE_AUTO_BACKUP |
false |
Pa àwọn snapshot SQLite aládàáṣiṣẹ́ ṣáájú kíkọ/import/restore; àwọn backup afọwọ́ṣe ṣì ń ṣiṣẹ́ |
APP_LOG_TO_FILE |
true |
Mú àbájáde àkọsílẹ̀ ohun èlò àti àyẹ̀wò lọ sí disk |
AUTH_COOKIE_SECURE |
false |
Fi ipa mú cookie ìjẹ́rìí Secure (lẹ́yìn HTTPS reverse proxy) |
CLOUDFLARED_BIN |
kò ṣètò | Lo binary cloudflared tó ti wà dípò gbígbàsílẹ̀ tí a ń ṣàkóso |
CLOUDFLARED_PROTOCOL |
http2 |
Ọ̀nà ìgbékalẹ̀ fún àwọn Quick Tunnels tí a ń ṣàkóso (http2, quic, tàbí auto) |
OMNIROUTE_MEMORY_MB |
512 |
Òpin heap Node.js ní MB |
PROMPT_CACHE_MAX_SIZE |
50 |
Iye tó pọ̀ jù fún àwọn àkọọ́lẹ̀ prompt cache |
SEMANTIC_CACHE_MAX_SIZE |
100 |
Iye tó pọ̀ jù fún àwọn àkọọ́lẹ̀ semantic cache |
Fún àlàyé kíkún nípa àwọn àyípadà ayíká, wo README.
📊 Àwọn Àwòṣe Tó Wà
Wo gbogbo àwọn àwòṣe tó wà
A ṣe àkójọ tó wà nísàlẹ̀ láti inú
open-sse/config/providerRegistry.tsfún v3.8.0. Àwọn katalọ́ọ̀gù awọsánmà (Gemini, OpenRouter, àti bẹ́ẹ̀ bẹ́ẹ̀ lọ) máa ń múṣiṣẹ́pọ̀ ní aládàáṣe — láti rí gbogbo katalọ́ọ̀gù tó wà lọ́wọ́lọ́wọ́, ṣí Dashboard → Providers → [provider] → Available Models tàbí peGET /api/models/catalog.Tí àkójọ tí a kọ sínú olùpèsè kan bá ti yà kúrò nínú èyí tó wà lọ́wọ́lọ́wọ́, lo Import from /models lójú ewé yẹn (tàbí mú Auto-Sync ṣiṣẹ́) láti fa katalọ́ọ̀gù orísun òkè tó wà lọ́wọ́lọ́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è àìlórúkọ Pollinations ṣì ní ààlà láti ọ̀dọ̀ orísun òkè nígbà ìdánwò kan náà.
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 (+ àwọn ìpele ì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 katalọ́ọ̀gù tó wà lọ́wọ́lọ́wọ́ tí a fi hàn lábẹ́ Dashboard → Providers → Kiro → Available Models. Wíwà rẹ̀ sinmi lórí àkọọ́lẹ̀ àti ètò ìsanwó.
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/oṣù ní iye kan ṣoṣo tàbí gẹ́gẹ́ bí ìlò: kimi/kimi-k2.6, kimi/kimi-k2.5
DeepSeek (ds/) — kọ́kọ́rọ́ API: ds/deepseek-v4-pro, ds/deepseek-v4-flash
Groq (groq/) — Yára gan-an: 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/) — A gbàlejò rẹ̀ ní EU: mistral/mistral-large-latest, mistral/mistral-medium-3-5, mistral/mistral-small-latest, mistral/devstral-latest, mistral/codestral-latest
Perplexity (pplx/) — Pẹ̀lú ìṣàfikún ìṣàwárí: pplx/sonar-deep-research, pplx/sonar-reasoning-pro, pplx/sonar-pro, pplx/sonar
Together AI (together/) — Orísun-ṣíṣí: 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ò ìdáhùn tó 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/) — Fojú 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/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/): A máa ń mú un ṣiṣẹ́pọ̀ lọ́wọ́lọ́wọ́ fún kọ́kọ́rọ́ API kọ̀ọ̀kan láti Google — kò sí àkójọ àìyípadà. So kọ́kọ́rọ́ kan pọ̀ ní Dashboard → Providers, lẹ́yìn náà lo Available Models láti ṣàgbéwọlé katalọ́ọ̀gù tó wà lọ́wọ́lọ́wọ́ (fún àpẹẹrẹ gemini/gemini-3-pro, gemini/gemini-3-flash).
Àwọn olùpèsè míì tó bá a mu (àwọn tí a yàn): cohere, databricks, snowflake, together, vertex, alibaba, alibaba-cn, bedrock (nípasẹ̀ aws-bedrock), azure-ai, openrouter (katalọ́ọ̀gù àgbéranṣẹ́ tààrà), siliconflow, hyperbolic, huggingface, featherless-ai, cloudflare-ai, scaleway, deepinfra, vercel-ai-gateway, bazaarlink, friendliai, nous-research, reka, volcengine, ai21, gigachat. Ọ̀kọ̀ọ̀kan ń tọ́jú àkójọ àwòṣe tirẹ̀ nínú providerRegistry.ts, a sì lè mú un ṣiṣẹ́pọ̀ ní aládàáṣe nígbà tí olùpèsè bá pèsè ojú òpin /models.
Àkíyèsí nípa àwọn ID àwòṣe: OmniRoute ń 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 ẹ̀yà nọ́mbà onídọ̀tì nítorí pé bẹ́ẹ̀ ni API orísun òkè ṣe ń retí wọn. Tí àwòṣe kan kò bá sí nínú àkójọ òkè, ṣiṣẹ́ omniroute models --search <term> tàbí lo GET /api/models/catalog láti fìdí wíwà rẹ̀ múlẹ̀.
🧩 Àwọn Ẹ̀yà Ìlọsíwájú
Àwọn Àwòṣe Àdáni
Ṣàfikún ID àwòṣe èyíkéyìí sí olùpèsè èyíkéyìí láì dúró de ìmúdójúìwọ̀n ètò:
# Nípasẹ̀ 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"}'
# Àkójọ: curl http://localhost:20128/api/provider-models?provider=openai
# Yọ kúrò: curl -X DELETE "http://localhost:20128/api/provider-models?provider=openai&model=gpt-5.2"
Tàbí lo Dasibodu: Àwọn Olùpèsè → [Olùpèsè] → Àwọn Àwòṣe Àdáni.
Àwọn àkíyèsí:
- OpenRouter àti àwọn olùpèsè tó bá OpenAI/Anthropic mu ni a ń ṣàkóso láti Àwọn Àwòṣe Tó Wà nìkan. Fífi kún un lọ́wọ́, gbígbé wọlé, àti ìmúdójúìwọ̀n aládàáṣiṣẹ́ gbogbo wọn ń wọ inú àkójọ àwọn àwòṣe tó wà kan náà, nítorí náà kò sí abala Àwọn Àwòṣe Àdáni ọ̀tọ̀ fún àwọn olùpèsè wọ̀nyẹn.
- Abala Àwọn Àwòṣe Àdáni wà fún àwọn olùpèsè tí kò ṣe àfihàn àwọn àwòṣe tó wà tí a lè ṣàkóso láti gbé wọlé.
Ṣíṣe Ẹ̀wọ̀n Àwọn Ẹlẹgbẹ́ OmniRoute
A lè ṣàfikún ẹnu-ọ̀nà OmniRoute mìíràn gẹ́gẹ́ bí olùpèsè Àdáni tó bá OpenAI mu. Lo URL ìpìlẹ̀ /v1 ti ẹlẹgbẹ́ náà àti kọ́kọ́rọ́ API pàtó kan tó ní àṣẹ tó kéré jù lọ, tí ẹlẹgbẹ́ náà fúnni.
Fún àwọn ẹ̀wọ̀n ìdápadà tàbí ẹ̀wọ̀n onípele-púpọ̀, mú olùṣọ́ yíyípo tó nílò àṣẹ ṣiṣẹ́ lórí gbogbo ẹnu-ọ̀nà:
# gateway-a
OMNIROUTE_INSTANCE_ID=gateway-a
OMNIROUTE_PEER_URLS=http://gateway-b:20128/v1
OMNIROUTE_PEER_MAX_HOPS=4
# gateway-b
OMNIROUTE_INSTANCE_ID=gateway-b
OMNIROUTE_PEER_URLS=http://gateway-a:20128/v1
OMNIROUTE_PEER_MAX_HOPS=4
Àwọn ìbéèrè tí a fi ránṣẹ́ sí URL ẹlẹgbẹ́ kan tó wà ní pàtó nínú àkójọ ìfàyègbà nìkan ni yóò gba àkọlé
X-OmniRoute-Peer-Trace. Ẹnu-ọ̀nà kan yóò kọ ID ìṣẹ̀lẹ̀ tó tún fara hàn tàbí iye ìfo ẹ̀wọ̀n
tó ti tán pẹ̀lú HTTP 508 Loop Detected; àwọn olùpèsè òkèwọlé déédéé kò ní gba metadata ẹlẹgbẹ́ kankan.
Ṣíṣe ẹ̀wọ̀n àwọn ẹlẹgbẹ́ kì í ṣe àdàkọ ibi ìpamọ́ dátà tàbí ìyípadà sí olupèsè afẹ́yinti. Ẹnu-ọ̀nà kọ̀ọ̀kan ní ipò SQLite, àwọn cache, àwọn kàǹtà òṣùwọ̀n, àti àwọn sáà tirẹ̀ lọ́tọ̀. Lo reverse proxy tí a ń yẹ ìlera rẹ̀ wò tàbí ìyípadà oníbàárà sí afẹ́yinti fún wíwà-lárọ̀ọ́wọ́tó active/passive tàbí active/active, má sì fi ibi ìpamọ́ dátà SQLite kan ṣoṣo sopọ̀ mọ́ àwọn ìṣẹ̀lẹ̀ OmniRoute púpọ̀ tí ń ṣiṣẹ́.
Àwọn Ojú-ọ̀nà Olùpèsè Pàtó
Darí àwọn ìbéèrè tààrà sí olùpèsè pàtó kan pẹ̀lú ìfọwọ́sí àwòṣe:
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
A ó fi ìṣáájú olùpèsè kún un láìfọwọ́ṣe bí kò bá sí. Àwọn àwòṣe tí kò bára mu yóò dá 400 padà.
Ìṣètò Proxy Nẹ́tíwọ̀ọ̀kì
# Ṣètò proxy àpapọ̀
curl -X PUT http://localhost:20128/api/settings/proxy \
-d '{"global": {"type":"http","host":"proxy.example.com","port":"8080"}}'
# Proxy fún olùpèsè kọ̀ọ̀kan
curl -X PUT http://localhost:20128/api/settings/proxy \
-d '{"providers": {"openai": {"type":"socks5","host":"proxy.example.com","port":"1080"}}}'
# Dán proxy wò
curl -X POST http://localhost:20128/api/settings/proxy/test \
-d '{"proxy":{"type":"socks5","host":"proxy.example.com","port":"1080"}}'
Ìṣáájú: Tó jẹ́ ti kọ́kọ́rọ́ → Tó jẹ́ ti àkójọpọ̀ → Tó jẹ́ ti olùpèsè → Àpapọ̀ → Àyíká.
API Kátálọ́ọ̀gù Àwòṣe
curl http://localhost:20128/api/models/catalog
Ó dá àwọn àwòṣe tí a pín sí ẹgbẹ́ gẹ́gẹ́ bí olùpèsè pẹ̀lú àwọn irú (chat, embedding, image) padà.
Ìmúdójúìwọ̀n Awọsánmà
- Mú àwọn olùpèsè, àwọn àkójọpọ̀, àti àwọn ìṣètò dọ́gba káàkiri àwọn ẹ̀rọ
- Ìmúdójúìwọ̀n aládàáṣiṣẹ́ lẹ́yìn pẹ̀lú àkókò ìdádúró tó pọ̀jù + dídákẹ́ ní kíákíá nígbà àṣìṣe
- Yan
NEXT_PUBLIC_BASE_URL/NEXT_PUBLIC_CLOUD_URLti ẹ̀gbẹ́ olupèsè ní àyíká iṣẹ́ gidi
Cloudflare Quick Tunnel
- Ó wà ní Dasibodu → Àwọn Ojú-ọ̀nà Ìwọlé fún Docker àti àwọn ìfihàn tí a gbàlejò fúnra ẹni mìíràn
- Ó ṣẹ̀dá URL
https://*.trycloudflare.comfún ìgbà díẹ̀, èyí tó ń darí sí ojú-ọ̀nà/v1rẹ lọ́wọ́lọ́wọ́ tó bá OpenAI mu - Ṣíṣe é ṣiṣẹ́ fún ìgbà àkọ́kọ́ yóò fi
cloudflaredsílẹ̀ nígbà tí a bá nílò rẹ̀ nìkan; àwọn ìbẹ̀rẹ̀ lẹ́yìn náà yóò tún binary tí a ń ṣàkóso kan náà lò - A kì í mú àwọn Quick Tunnels padà bọ̀ sípò láìfọwọ́ṣe lẹ́yìn tí OmniRoute tàbí container bá tún bẹ̀rẹ̀; tún mú wọn ṣiṣẹ́ láti dasibodu nígbà tí a bá nílò wọn
- Àwọn URL tunnel jẹ́ ti ìgbà díẹ̀, wọ́n sì máa ń yí padà ní gbogbo ìgbà tí o bá dá tunnel dúró/tún bẹ̀rẹ̀ rẹ̀
- Àwọn Quick Tunnels tí a ń ṣàkóso máa ń lo ìrìnàjò HTTP/2 gẹ́gẹ́ bí àtòjọṣe láti yẹra fún àwọn ìkìlọ̀ ariwo nípa buffer QUIC UDP nínú àwọn container tó ní ohun àmúlò díẹ̀
- Ṣètò
CLOUDFLARED_PROTOCOL=quictàbíautobí o bá fẹ́ yí yíyan ìrìnàjò tí a ń ṣàkóso padà - Ṣètò
CLOUDFLARED_BINbí o bá fẹ́ lo binarycloudflaredtí a ti fi sílẹ̀ tẹ́lẹ̀ dípò èyí tí a gba sílẹ̀ lábẹ́ ìṣàkóso - A lè fi àwọn pánẹ́ẹ̀lì Cloudflare Quick Tunnel, Tailscale Funnel, àti ngrok Tunnel hàn tàbí fi wọ́n pamọ́ ní Àwọn Ìṣètò → Ìrísí. Fífi pánẹ́ẹ̀lì kan pamọ́ kì í dá tunnel tó ń ṣiṣẹ́ dúró.
Ọgbọ́n Ẹnu-ọ̀nà LLM (Ìpele 9)
- Cache Ìtumọ̀ — Ó ń fi àwọn ìdáhùn tí kì í ṣe sísàn, temperature=0 pamọ́ sínú cache láìfọwọ́ṣe (kọjá rẹ̀ pẹ̀lú
X-OmniRoute-No-Cache: true) - Àìyípadà Ìbéèrè — Ó ń yọ àwọn ìbéèrè àdáwòkọ kúrò láàárín 5s nípasẹ̀ àkọlé
Idempotency-KeytàbíX-Request-Id - Ìtọ́pa Ìlọsíwájú — Àwọn ìṣẹ̀lẹ̀ SSE
event: progresstó nílò àṣẹ nípasẹ̀ àkọléX-OmniRoute-Progress: true
Pápá Ìdánwò Atúmọ̀
Wọlé sí i nípasẹ̀ Dasibodu → Atúmọ̀. Ṣàtúnṣe àṣìṣe kí o sì wo bí OmniRoute ṣe ń túmọ̀ àwọn ìbéèrè API láàárín àwọn olùpèsè.
| Ìpo | Ète |
|---|---|
| Pápá Ìdánwò | Yan àwọn ìrísí orísun/ibi-àfojúsùn, lẹ ìbéèrè kan síbẹ̀, kí o sì wo àbájáde tí a túmọ̀ lẹ́sẹ̀kẹsẹ̀ |
| Olùdánwò Ìfọ̀rọ̀wérọ̀ | Fi àwọn ìfiranṣẹ́ ìfọ̀rọ̀wérọ̀ alààyè ránṣẹ́ nípasẹ̀ proxy kí o sì ṣàyẹ̀wò gbogbo ìyípo ìbéèrè/ìdáhùn |
| Pẹpẹ Ìdánwò | Ṣiṣẹ́ àwọn ìdánwò ìdìpọ̀ lórí ọ̀pọ̀ àkójọpọ̀ ìrísí láti jẹ́rìí sí ìpéye ìtumọ̀ |
| Atẹ̀lé Alààyè | Wo àwọn ìtumọ̀ ní àkókò gidi bí àwọn ìbéèrè ṣe ń ṣàn gba inú proxy |
Àwọn ọ̀nà ìlò:
- Ṣàtúnṣe àṣìṣe ìdí tí àkójọpọ̀ oníbàárà/olùpèsè pàtó kan fi kùnà
- Jẹ́rìí pé àwọn àmì ìrònú, àwọn ìpè irinṣẹ́, àti àwọn ìtọ́ni ètò ni a túmọ̀ lọ́nà tó tọ́
- Ṣe àfiwé àwọn ìyàtọ̀ ìrísí láàárín àwọn ìrísí OpenAI, Claude, Gemini, àti Responses API
Àwọn Ọgbọ́n Ìdarí Ojú-ọ̀nà
Ṣètò rẹ̀ nípasẹ̀ Pátákó Ìdarí → Àwọn Ètò → Ìdarí Ọ̀nà. Pátákó ìdarí náà ṣàfihàn àwọn ọgbọ́n mẹ́fà tí a ń lò jù lọ; àwọn àkójọpọ̀ àti olùdarí-ọ̀nà aládàáṣiṣẹ́ ń ṣe àtìlẹ́yìn fún àkójọpọ̀ tó gbòòrò sí i ní inú.
Àwọn ọgbọ́n tí a lè rí lórí pátákó ìdarí (ìdarí ọ̀nà ní ìpele àkọọlẹ):
| Ọgbọ́n | Àpèjúwe |
|---|---|
| Kún Àkọ́kọ́ | Ó ń lo àwọn àkọọlẹ ní ìtòlẹ́sẹẹsẹ ààyò — àkọọlẹ àkọ́kọ́ ń bójú tó gbogbo ìbéèrè títí tí kò fi sí nílẹ̀ mọ́ |
| Ìyípo Lẹ́sẹẹsẹ | Ó ń yí ká gbogbo àwọn àkọọlẹ pẹ̀lú òpin dídì tí a lè ṣètò (àkọ́ṣe: ìpè 3 fún àkọọlẹ kọ̀ọ̀kan) |
| P2C (Agbára Àwọn Àṣàyàn Méjì) | Ó yan àwọn àkọọlẹ 2 láìròtẹ́lẹ̀, ó sì darí sí èyí tó ní ìlera jù — ó ń pín ẹrù ní ìwọ̀ntúnwọ̀nsì pẹ̀lú ìmọ̀ nípa ìlera |
| Láìròtẹ́lẹ̀ | Ó ń yan àkọọlẹ kan láìròtẹ́lẹ̀ fún ìbéèrè kọ̀ọ̀kan nípa lílo ìdapọ̀ Fisher-Yates |
| Èyí Tí A Lò Kéré Jù | Ó ń darí sí àkọọlẹ tó ní àmì-àkókò lastUsedAt tó pẹ́ jù lọ, láti pín ìrìnàjò káàkiri lọ́nà tó dọ́gba |
| Ìmúlò Owó Tó Péye | Ó ń darí sí àkọọlẹ tó ní iye ààyò tó kéré jù lọ, láti mú kí lílo àwọn olùpèsè tó ní iye owó tó kéré jù lọ péye |
Àwọn ọgbọ́n àkójọpọ̀ àti aládàáṣiṣẹ́ tó ti ní ìlọsíwájú (a lè ṣètò wọn fún àkójọpọ̀ kọ̀ọ̀kan tàbí nípasẹ̀ àwọn ìpele-ìbẹ̀rẹ̀ auto/* — wo AUTO-COMBO.md):
priority— ìtòlẹ́sẹẹsẹ líle, kì í ṣe ìyípo lẹ́sẹẹsẹ láéláéweighted— pípín ìrìnàjò ní ìbámu pẹ̀lú àwọn ìwọ̀n fún módẹ́lì kọ̀ọ̀kanfill-first— lo módẹ́lì àkọ́kọ́ títí yóò fi dé àwọn òpin rẹ̀round-robin/strict-random/randomp2c(Agbára Àwọn Àṣàyàn Méjì)least-usedàticost-optimizedauto— ìdarí tó dá lórí àmì-ìṣírò láàárín gbogbo àwọn olùdíjelkgp(Olùpèsè Rere Tí A Mọ̀ Kẹ́yìn) — ó di mọ́ olùpèsè tó ṣàṣeyọrí kẹ́yìn, lẹ́yìn náà ó padà sí àwọn òfin bí ó bá yẹcontext-optimized— ó yan módẹ́lì tó ní fèrèsé àyíká òfìfo tó tóbi jù lọcontext-relay— ó so àwọn módẹ́lì àyíká-gígùn pọ̀ fún àwọn ìyípadà ìtẹ̀lé
Àkọlé Ìgbà Dídì Òde
Fún ìsopọ̀ ìgbà òde (fún àpẹẹrẹ, àwọn aṣojú Claude Code/Codex lẹ́yìn àwọn aṣojú-àyídá), fi èyí ránṣẹ́:
X-Session-Id: your-session-key
OmniRoute tún gba x_session_id, ó sì dá kọ́kọ́rọ́ ìgbà tó ń ṣiṣẹ́ padà nínú X-OmniRoute-Session-Id.
Tí o bá ń lo Nginx tí o sì ń fi àwọn àkọlé oníàmì-ìsàlẹ̀ ránṣẹ́, mú èyí ṣiṣẹ́:
underscores_in_headers on;
Àwọn Orúkọ Àfirọ́ Módẹ́lì Wildcard
Ṣẹ̀dá àwọn àpẹẹrẹ wildcard láti tún àwọn orúkọ módẹ́lì tọ́ka:
Pattern: claude-sonnet-* → Target: cc/claude-sonnet-4-6
Pattern: gpt-* → Target: gh/gpt-5.3-codex
Àwọn wildcard ṣe àtìlẹ́yìn fún * (àwọn àmì èyíkéyìí) àti ? (àmì kan ṣoṣo).
Àwọn Ẹ̀wọ̀n Ìpadà-sẹ́yìn
Ṣàlàyé àwọn ẹ̀wọ̀n ìpadà-sẹ́yìn àgbáyé tí yóò kan gbogbo ìbéèrè:
Chain: production-fallback
1. cc/claude-opus-4-7
2. gh/gpt-5.3-codex
3. glm/glm-4.7
Ìfaradà & Àwọn Olùfọ́ Ayíká
Ṣètò rẹ̀ nípasẹ̀ Pátákó Ìdarí → Àwọn Ètò → Ìfaradà.
OmniRoute ń ṣe ìfaradà ní ìpele olùpèsè pẹ̀lú àwọn èròjà márùn-ún:
-
Ìlà Ìbéèrè & Ìṣàkóso Ìṣísẹ̀ — Ṣíṣe àtúnṣe ìbéèrè ní ìpele ètò:
- Àwọn Ìbéèrè Fún Ìṣẹ́jú Kan (RPM) — Iye ìbéèrè tó pọ̀ jù lọ fún ìṣẹ́jú kan fún àkọọlẹ kọ̀ọ̀kan
- Àkókò Kéré Jù Láàárín Àwọn Ìbéèrè — Àlàfo tó kéré jù lọ ní millisecond láàárín àwọn ìbéèrè
- Àwọn Ìbéèrè Ìgbàkan-náà Tó Pọ̀ Jù — Iye ìbéèrè tó pọ̀ jù lọ tí a lè ṣe ní àkókò kan náà fún àkọọlẹ kọ̀ọ̀kan
-
Ìsinmi Ìsopọ̀ — Ìṣètò fún irú ìfàṣẹsí kọ̀ọ̀kan lórí ìsopọ̀ kan lẹ́yìn àwọn ìkùnà tí a lè tún gbìyànjú:
- Ìsinmi Ìpìlẹ̀ — Fèrèsé ìsinmi àkọ́ṣe fún àwọn ìkùnà orísun-òkè tí a lè tún gbìyànjú
- Lo Àwọn Àmì Ìtọ́sọ́nà Àtúngbìyànjú Orísun-òkè — Ó tẹ̀lé
Retry-Aftertó láṣẹ tàbí àwọn àmì ìtọ́sọ́nà àtúntò nígbà tí a bá pèsè wọn - Àwọn Ìgbésẹ̀ Ìfàsẹ́yìn Tó Pọ̀ Jù — Ìpele ìfàsẹ́yìn oníìlọ́po tó ga jù lọ fún àwọn ìkùnà tó ń ṣẹlẹ̀ léraléra
-
Olùfọ́ Ayíká Olùpèsè — Ó ń tọpinpin àwọn ìkùnà olùpèsè láti ìbẹ̀rẹ̀ dé òpin, ó ń samisi olùpèsè gẹ́gẹ́ bí ẹni tó dín agbára kù níbi ààlà ìkìlọ̀ tí a ṣètò, ó sì ń ṣí olùfọ́ náà nígbà tí a bá dé ààlà ìkùnà tí a ṣètò:
- Ààlà Ìdínkù Agbára — Àwọn ìkùnà olùpèsè tó tẹ̀lé ara wọn kí ó tó wọ
DEGRADED - Ààlà Ìkùnà — Àwọn ìkùnà olùpèsè tó tẹ̀lé ara wọn kí ó tó wọ
OPEN - Àkókò Ìdádúró Àtúntò — Fèrèsé àkókò kí a tó dán olùpèsè náà wò lẹ́ẹ̀kan sí i
- CLOSED (Ní ìlera) — Àwọn ìbéèrè ń ṣàn lọ déédéé
- DEGRADED — Àwọn ìbéèrè ṣì ń ṣàn lọ bí a ṣe ń tọpinpin àwọn ìkùnà tó ń pọ̀ sí i
- OPEN — A dí olùpèsè náà fún ìgbà díẹ̀ lẹ́yìn àwọn ìkùnà tó ṣẹlẹ̀ léraléra
- HALF_OPEN — Dídán an wò bóyá olùpèsè náà ti padà bọ̀ sípò
Àwọn òpin ìwọ̀n
429tó jẹ́ ti ìsopọ̀ yóò dúró nínú Ìsinmi Ìsopọ̀, wọn kò sì ní ka mọ́ olùfọ́ olùpèsè.Ipò olùfọ́ olùpèsè ní àkókò ìṣiṣẹ́ ni a ń fi hàn lórí Pátákó Ìdarí → Ìlera nìkan.
- Ààlà Ìdínkù Agbára — Àwọn ìkùnà olùpèsè tó tẹ̀lé ara wọn kí ó tó wọ
-
Dúró De Ìsinmi — Bí gbogbo ìsopọ̀ olùdíje bá ti wà ní ìsinmi tẹ́lẹ̀, OmniRoute lè dúró de ìsinmi tó máa parí kọ́kọ́, kí ó sì tún ìbéèrè oníbàárà kan náà gbìyànjú láìfọwọ́sí.
-
Ìṣàwárí Ààlà Ìwọ̀n Láìfọwọ́sí — Nígbà tí àwọn olùpèsè orísun-òkè bá dá àwọn fèrèsé ìdúró tó ṣe kedere padà, àwọn àmì ìtọ́sọ́nà wọ̀nyẹn yóò borí ìsinmi ìsopọ̀ agbègbè nígbà tí a bá ti mú ètò náà ṣiṣẹ́.
Ìmọ̀ràn Ọ̀jọ̀gbọ́n: Lo ojú-ewé Ìlera láti ṣàyẹ̀wò àti láti tún àwọn olùfọ́ olùpèsè tó ń ṣiṣẹ́ ṣe lẹ́yìn ìdálẹ́kun iṣẹ́. Ojú-ewé Ìfaradà ń yí ìṣètò padà nìkan.
Gbigbé Àkójọ Dátábéèsì Jáde / Wọlé
Ṣàkóso àwọn àfẹ́yinti dátábéèsì ní Pátákó Ìdarí → Àwọn Ètò → Ètò & Ìpamọ́.
| Ìṣe | Àpèjúwe |
|---|---|
| Gbé Ìpamọ́síta Jáde | Ṣe àgbàsílẹ̀ ìpamọ́sí SQLite lọ́wọ́lọ́wọ́ gẹ́gẹ́ bí fáìlì .sqlite |
| Gbé Gbogbo Rẹ̀ Jáde (.tar.gz) | Ṣe àgbàsílẹ̀ àkójọpọ̀ àfẹ̀yìntì kíkún tí ó ní: ìpamọ́sí, àwọn ààtò, combos, àwọn ìsopọ̀ olùpèsè (láìsí ẹ̀rí ìdánimọ̀), àti metadata kọ́kọ́rọ́ API |
| Gbé Ìpamọ́sí Wọlé | Gbé fáìlì .sqlite sókè láti rọ́pò ìpamọ́sí lọ́wọ́lọ́wọ́. Àfẹ̀yìntì ṣáájú ìgbéwọlé ni a máa ṣẹ̀dá láìfọwọ́ṣe àyàfi tí DISABLE_SQLITE_AUTO_BACKUP=true |
# API: Gbé ìpamọ́sí jáde
curl -o backup.sqlite http://localhost:20128/api/db-backups/export
# API: Gbé gbogbo rẹ̀ jáde (àkójọpọ̀ kíkún)
curl -o backup.tar.gz http://localhost:20128/api/db-backups/exportAll
# API: Gbé ìpamọ́sí wọlé
curl -X POST http://localhost:20128/api/db-backups/import \
-F "file=@backup.sqlite"
Ìfọwọ́sí Ìgbéwọlé: A máa ṣàyẹ̀wò fáìlì tí a gbé wọlé fún ìpéye rẹ̀ (àyẹ̀wò pragma SQLite), àwọn tábìlì tí a nílò (provider_connections, provider_nodes, combos, api_keys), àti ìwọ̀n rẹ̀ (ó pọ̀jù 100MB).
Àwọn Ìlò:
- Gbé OmniRoute láti ẹ̀rọ kan sí òmíràn
- Ṣẹ̀dá àwọn àfẹ̀yìntì ìta fún ìmúpadàbọ̀sípò lẹ́yìn ìjàmbá
- Pín àwọn ìṣètò láàárín àwọn ọmọ ẹgbẹ́ (gbé gbogbo rẹ̀ jáde → pín àkójọpọ̀ náà)
Pátákó Ìṣàkóso Àwọn Ààtò
A ṣètò ojú-ìwé àwọn ààtò sí taabu 7 fún ìrìnàjò tó rọrùn:
| Taabu | Àwọn Àkóónú |
|---|---|
| Gbogbogbò | Àwọn irinṣẹ́ ìtọ́jú data ètò, ìhùwàsí àìrídìmú, híhàn eefin Endpoint |
| Ìrísí | Àwọn ìṣàkóso àkòrí (ìmọ́lẹ̀/òkùnkùn/ètò), híhàn ọ̀pá ẹ̀gbẹ́, àwọn yíyí pánẹ́ẹ̀lì fún káàdì eefin Cloudflare/Tailscale/ngrok |
| AI | Ìpín ìrònú (passthrough / auto-strip / custom / adaptive — wo THINKING_BUDGET.md), ìtọ́nisọ́nà ètò àgbáyé, àwọn ìṣirò cache ìtọ́nisọ́nà |
| Ààbò | Àwọn ààtò Ìwọlé/Ọ̀rọ̀ aṣínà, Ìṣàkóso Ìráyè IP, ìfàṣẹsí API fún /models, Dídènà Olùpèsè, àti olùṣọ́ lòdì sí ìkọlù ìtọ́nisọ́nà |
| Ìtọ́sọ́nà | Ọgbọ́n ìtọ́sọ́nà àgbáyé (Fill First / Round Robin / P2C / Random / Least Used / Cost Optimized), àwọn orúkọ àfirọ́pò awoṣe wildcard, àwọn pq fallback, àwọn àìrídìmú combo |
| Ìfaradà | Ìlà ìbéèrè, àsìkò ìtutù ìsopọ̀, ìṣètò provider breaker, àti ìhùwàsí dídúró de ìtutù |
| To Ti Ni Ilọsiwaju | Ìṣètò proxy àgbáyé (HTTP/SOCKS5), àwọn àtúnṣe proxy fún olùpèsè kọ̀ọ̀kan |
Gbogbogbò kò tún ṣe àdàkọ àwọn àkọsílẹ̀ logging àti cache tí a lè kà nìkan mọ́. Àwọn ààtò ìdádúró data ìpamọ́sí àti
ìmúdára ni a máa tọ́jú nípasẹ̀ /api/settings/database; ìfọ́ cache kúrò pẹ̀lú ọwọ́ ń lo
DELETE /api/cache. Àwọn òpin iye ìlà fún àkọsílẹ̀ ìpè àti proxy ni
CALL_LOGS_TABLE_MAX_ROWS àti PROXY_LOGS_TABLE_MAX_ROWS ń ṣàkóso.
Àwọn Ìnáwó & Ìṣàkóso Ìpínná
Wọlé sí i nípasẹ̀ Pátákó Ìṣàkóso → Àwọn Ìnáwó.
| Taabu | Ète |
|---|---|
| Ìpínná | Ṣètò òpin ìnáwó fún kọ́kọ́rọ́ API kọ̀ọ̀kan pẹ̀lú ìpínná ojoojúmọ́/ọ̀sọ̀ọ̀sẹ̀/oṣooṣù àti ìtọ́pasẹ̀ lẹ́sẹ̀kẹsẹ̀ |
| Ìdíyelé | Wo kí o sì ṣàtúnṣe àwọn àkọsílẹ̀ ìdíyelé awoṣe — owó fún gbogbo token ìwọlé/ìjáde 1K fún olùpèsè kọ̀ọ̀kan |
# API: Ṣètò ìpínná
curl -X POST http://localhost:20128/api/usage/budget \
-H "Content-Type: application/json" \
-d '{"keyId": "key-123", "limit": 50.00, "period": "monthly"}'
# API: Gba ipò ìpínná lọ́wọ́lọ́wọ́
curl http://localhost:20128/api/usage/budget
Ìtọ́pasẹ̀ Ìnáwó: Gbogbo ìbéèrè ló ń ṣàkọsílẹ̀ lílo token, tí ó sì ń ṣe ìṣírò ìnáwó ní lílo tábìlì ìdíyelé. Wo ìpínlẹ̀ kúlẹ̀kúlẹ̀ ní Pátákó Ìṣàkóso → Lílo gẹ́gẹ́ bí olùpèsè, awoṣe, àti kọ́kọ́rọ́ API.
Yíyí Ohùn Padà sí Ọ̀rọ̀
OmniRoute ṣe àtìlẹ́yìn fún yíyí ohùn padà sí ọ̀rọ̀ nípasẹ̀ endpoint tó bá OpenAI mu:
POST /v1/audio/transcriptions
Authorization: Bearer your-api-key
Content-Type: multipart/form-data
# Àpẹẹrẹ pẹ̀lú 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 ni ipa-ọ̀nà Deepgram abinibi, ó sì nílò kọ́kọ́rọ́ API Deepgram.
Tí OpenRouter nìkan bá ni a ṣètò, lo openrouter/deepgram/nova-3.
Àwọn olùpèsè Ohùn-sí-Ọ̀rọ̀ (yíyí ohùn padà sí ọ̀rọ̀):
openai/(ó bá whisper mu)groq/(Groq Whisper Turbo)deepgram/(ẹbí Nova)assemblyai/nvidia/(Parakeet, Canary)huggingface/(àwọn ẹ̀yà whisper)qwen/
Àwọn olùpèsè Ọ̀rọ̀-sí-Ohùn (POST /v1/audio/speech):
openai/(tts-1, tts-1-hd)hyperbolic/deepgram/(Aura)nvidia/(Magpie TTS)elevenlabs/huggingface/inworld/cartesia/playht/kie/aws-polly/xiaomi-mimo/coqui/,tortoise/qwen/
Àwọn fọ́ọ̀mù ohùn tí a ṣe àtìlẹ́yìn fún yíyí padà sí ọ̀rọ̀: mp3, wav, m4a, flac, ogg, webm. Àwọn fọ́ọ̀mù àbájáde TTS sinmi lórí olùpèsè (mp3, wav, opus, pcm, mulaw).
Àwọn Ọgbọ́n Ìwọ̀ntúnwọ̀nsì Combo
Ṣètò ìwọ̀ntúnwọ̀nsì fún combo kọ̀ọ̀kan ní Pátákó Ìṣàkóso → Combos → Ṣẹ̀dá/Ṣàtúnṣe → Ọgbọ́n.
| Ọgbọ́n Ìlànà | Àpèjúwe |
|---|---|
| Round-Robin | Ń yípo gba àwọn model lọ ní tẹ̀lé-tẹ̀lé |
| Priority | Ó máa ń gbìyànjú model àkọ́kọ́ ní gbogbo ìgbà; ó máa ń lo omi-in gẹ́gẹ́ bí àfidípò nígbà àṣìṣe nìkan |
| Random | Ó yan model kan láìròtẹ́lẹ̀ láti inú combo fún request kọ̀ọ̀kan |
| Weighted | Ó ń darí request ní ìbámu pẹ̀lú ìwọ̀n tí a yàn fún model kọ̀ọ̀kan |
| Least-Used | Ó ń darí request sí model tí ó ní iye àwọn request àìpẹ́ tó kéré jù (ó ń lo àwọn metrics combo) |
| Cost-Optimized | Ó ń darí request sí model tó wà lárọwọ́tó tí iye owó rẹ̀ kéré jù (ó ń lo tábìlì pricing) |
A lè ṣètò àwọn àiyípadà combo àgbáyé ní Dashboard → Settings → Routing → Combo Defaults. Àwọn timeout ibi-àfojúsùn combo máa ń jogún timeout request lọ́wọ́lọ́wọ́ ní àkọ́kọ́. Lo Target timeout (seconds) lórí àwọn àiyípadà combo tàbí combo kọ̀ọ̀kan nígbà tí òpin àkókò tó kúrú fún ibi-àfojúsùn kọ̀ọ̀kan bá yẹ kó mú àfidípò ṣiṣẹ́ kíákíá nìkan.
Àwọn ìmúdára combo aláìní ìdádúró jẹ́ ohun tí a gbọdọ̀ yàn láti mú ṣiṣẹ́. Fi Zero-latency optimizations sí pípa láti dènà àwọn ẹ̀yà ìdádúró wọ̀nyí láti bá àwọn ibi-àfojúsùn àfidípò díje, fo àwọn ibi-àfojúsùn gẹ́gẹ́ bí ìtàn TTFT ṣe fi hàn, tàbí fúnmorá àwọn request àfidípò; ṣíṣí i máa ń gba hedging tí a ti ṣètò, àwọn ìfojúsùn TTFT àsọtẹ́lẹ̀, àti fífúnmorá àfidípò ṣáájú ṣiṣẹ́ láti fi ìṣòtítọ́ routing/request pààrọ̀ fún ìdádúró ìrù tó kéré sí i.
Pa Reasoning token buffer nígbà tí àwọn provider upstream bá béèrè fún àwọn òpin
max_tokens / maxOutputTokens tó muna. Nígbà tí ó bá ṣiṣẹ́, routing combo máa ń fi ààyè àfikún model ìrònú
kún àwọn model tó ní òpin output tí a mọ̀ nìkan, yóò sì fi òpin token client sílẹ̀ láìyípadà nígbà tí
iye buffer tó ní ààbò bá máa kọjá òpin náà. Tí òpin client bá ti ga ju òpin tí a mọ̀ lọ,
OmniRoute máa dín in kù sí òpin náà kí ó tó fi request upstream ránṣẹ́.
Dashboard Ìlera
Wọlé sí i nípasẹ̀ Dashboard → Health. Àkótán ìlera system ní àkókò gidi pẹ̀lú káàdì 6:
| Káàdì | Ohun Tí Ó Ṣe Àfihàn |
|---|---|
| System Status | Àkókò iṣẹ́, version, lílo memory, directory data |
| Provider Health | Ipò runtime circuit breaker provider àgbáyé |
| Rate Limits | Àwọn cooldown connection tó ń ṣiṣẹ́ fún account kọ̀ọ̀kan pẹ̀lú àkókò tó kù |
| Active Lockouts | Àwọn lockout model tó ń ṣiṣẹ́ àti àwọn ìyọkúrò fún ìgbà díẹ̀ |
| Signature Cache | Àwọn stats cache deduplication (àwọn key tó ń ṣiṣẹ́, rate ìkànà) |
| Latency Telemetry | Àkójọpọ̀ ìdádúró p50/p95/p99 fún provider kọ̀ọ̀kan |
Ìmọ̀ràn Amọ̀dájú: Ojú-ewé Health máa ń sọ ara rẹ̀ di tuntun ní gbogbo ìṣẹ́jú-ààyá 10. Lo káàdì circuit breaker láti mọ àwọn provider tó ń ní ìṣòro.
🤖 Ì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ẹ:
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 — 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:
{
"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 fún àkójọ àṣẹ àti irinṣẹ́ tó jẹ́ ìtọ́kasí pàtàkì, àti 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.
💾 È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.
🔔 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.
☁️ À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.
🛠️ Ìṣà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áà:
# Ṣà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 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ọ̀.
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 <id> # Ṣe àyẹ̀wò ìsopọ̀ olùpèsè ní tààrà
omniroute combos list # Ṣàkójọ àwọn àkójọpọ̀
omniroute combos switch <name> # Ṣè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 [<timestamp>] # 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ẹ̀
# 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
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