Files
OmniRoute/docs/i18n/yo/docs/guides/USER_GUIDE.md
Diego Rodrigues de Sa e Souza b637350680 fix(docs): re-sync the 65 documentation mirror sets; section-level docs pipeline; drift gate blocking (#13940)
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
2026-09-17 02:55:31 -03:00

82 KiB
Raw Blame History

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é

Ì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)

  1. Forúkọsílẹ̀: Zhipu AI
  2. Gba kọ́kọ́rọ́ API láti Coding Plan
  3. 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)

  1. Forúkọsílẹ̀: MiniMax
  2. 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à)

  1. Ṣalábàápín: Moonshot AI
  2. 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

  1. Forúkọsílẹ̀: Baidu AI Cloud Qianfan
  2. Ṣẹ̀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 omniroute nì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.ts fú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í pe GET /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.20.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_URL ti ẹ̀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.com fún ìgbà díẹ̀, èyí tó ń darí sí ojú-ọ̀nà /v1 rẹ lọ́wọ́lọ́wọ́ tó bá OpenAI mu
  • Ṣíṣe é ṣiṣẹ́ fún ìgbà àkọ́kọ́ yóò fi cloudflared sí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=quic tàbí auto bí o bá fẹ́ yí yíyan ìrìnàjò tí a ń ṣàkóso padà
  • Ṣètò CLOUDFLARED_BIN bí o bá fẹ́ lo binary cloudflared tí 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-Key tàbí X-Request-Id
  • Ìtọ́pa Ìlọsíwájú — Àwọn ìṣẹ̀lẹ̀ SSE event: progress tó 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ọ̀ọ̀kan
  • fill-first — lo módẹ́lì àkọ́kọ́ títí yóò fi dé àwọn òpin rẹ̀
  • round-robin / strict-random / random
  • p2c (Agbára Àwọn Àṣàyàn Méjì)
  • least-used àti cost-optimized
  • auto — ìdarí tó dá lórí àmì-ìṣírò láàárín gbogbo àwọn olùdíje
  • lkgp (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:

  1. Ì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
  2. Ì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-After tó 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
  3. 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 429 tó 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.

  4. 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í.

  5. Ìṣà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 (6416384 MB)

📖 Ìwé ìtọ́nisọ́nà ní ẹ̀kúnrẹ́rẹ́: electron/README.md