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
72 KiB
User Guide (Српски)
🌐 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 · 🇸🇪 sv · 🇰🇪 sw · 🇮🇳 ta · 🇮🇳 te · 🇹🇭 th · 🇹🇷 tr · 🇺🇦 uk-UA · 🇵🇰 ur · 🇺🇿 uz · 🇻🇳 vi · 🇳🇬 yo · 🇨🇳 zh-CN · 🇹🇼 zh-TW
🌐 Језици: 🇺🇸 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á | 🇨🇳 中文 (简体) | 🇹🇼 中文 (繁體)
Комплетан водич за конфигурисање добављача, креирање комбинација, интеграцију CLI алата и примену OmniRoute-а.
Sadržaj
- Pregled cena
- Slučajevi upotrebe
- Podešavanje provajdera
- CLI integracija
- Implementacija
- Dostupni modeli
- Napredne funkcije
- Automatsko rutiranje (bez konfiguracije)
- MCP i A2A integracija
- Sistem vештina
- Sistem memorije
- Webhook-ovi
- Cloud agenti
- Programsko upravljanje
- Interni CLI
- Desktop aplikacija (Electron)
💰 Преглед цена
| Ниво | Провајдер | Цена | Ресетовање квоте | Најбоље за |
|---|---|---|---|---|
| 💳 ПРЕТПЛАТА | Claude Code (Pro) | $20/мес | 5ч + недељно | Ако сте већ претплаћени |
| Codex (Plus/Pro) | $20-200/мес | 5ч + недељно | Корисници OpenAI-а | |
| GitHub Copilot | $10-19/мес | Месечно | Корисници GitHub-а | |
| 🔑 API КЉУЧ | DeepSeek | Плаћање по коришћењу | Нема | Јефтино резоновање |
| Groq | Плаћање по коришћењу | Нема | Изузетно брзо закључивање | |
| xAI (Grok) | Плаћање по коришћењу | Нема | Резоновање Grok 4 | |
| Mistral | Плаћање по коришћењу | Нема | Модели хостовани у ЕУ | |
| Perplexity | Плаћање по коришћењу | Нема | Претрага уз проширење | |
| Together AI | Плаћање по коришћењу | Нема | Модели отвореног кода | |
| Fireworks AI | Плаћање по коришћењу | Нема | Брзе FLUX слике | |
| Cerebras | Плаћање по коришћењу | Нема | Брзина wafer-scale чипова | |
| Cohere | Плаћање по коришћењу | Нема | Command R+ RAG | |
| NVIDIA NIM | Плаћање по коришћењу | Нема | Модели за предузећа | |
| Baidu Qianfan | Плаћање по коришћењу | Нема | ERNIE модели | |
| 💰 ЈЕФТИНО | GLM-4.7 | $0.6/1M | Дневно у 10ч | Резервна опција за буџет |
| MiniMax M2.1 | $0.2/1M | Ротирајуће свака 5 сата | Најјефтинија опција | |
| Kimi K2 | $9/мес фиксно | 10M токена/мес | Предвидив трошак | |
| 🆓 БЕСПЛАТНО | Qoder | $0 | Важе ограничења провајдера | Проверите тренутни каталог |
| Kiro | $0 | ~50 кредита/мес | Claude бесплатно |
🎯 Случајеви употребе
Случај 1: „Имам Claude Pro претплату"
Проблем: Квота истиче некоришћена, ограничења брзине током интензивног кодирања
Комбинација: "maximize-claude"
1. cc/claude-opus-4-7 (потпуно искористи претплату)
2. glm/glm-4.7 (јефтина резерва када квота истекне)
3. if/qwen3.8-max-preview (бесплатна резерва за хитне случајеве)
Месечни трошак: $20 (претплата) + ~$5 (резерва) = $25 укупно
у поређењу са: $20 + достизање ограничења = фрустрација
Случај 2: „Желим нулти трошак"
Проблем: Не могу да платим претплате, потребна ми је поуздана AI подршка за кодирање
Комбинација: "zero-cost"
1. if/kimi-k2.7-code (наведен као бесплатан приступ; могу се примењивати ограничења брзине)
2. kr/qwen3-coder-next (Kiro бесплатна резерва)
Месечни трошак: $0
Квалитет: провери модел, ограничења, приватност и SLA за твоје потребе
Случај 3: „Потребно ми је кодирање 24/7, без прекида"
Проблем: Рокови, не могу да дозволим паузе у раду
Комбинација: "always-on"
1. cc/claude-opus-4-7 (најбољи квалитет)
2. cx/gpt-5.5 (друга претплата)
3. glm/glm-4.7 (јефтино, ресетује се дневно)
4. minimax/MiniMax-M2.1 (најјефтиније, ресетовање на 5ч)
5. if/deepseek-v4-flash (наведен као бесплатан приступ; могу се примењивати ограничења брзине)
Резултат: 5 резервних слојева проширује отпорност; доступност на страни провајдера није гарантована
Месечни трошак: $20-200 (претплате) + $10-20 (резерва)
Случај 4: „Желим БЕСПЛАТНУ AI у OpenClaw"
Проблем: Потребан AI асистент у апликацијама за размену поруку, потпуно бесплатно
Комбинација: "openclaw-free"
1. if/qwen3.8-max-preview (наведен као бесплатан приступ; могу се примењивати ограничења брзине)
2. if/deepseek-v4-flash (наведен као бесплатан приступ; могу се примењивати ограничења брзине)
3. if/kimi-k2.7-code (наведен као бесплатан приступ; могу се примењивати ограничења брзине)
Месечни трошак: $0
Приступ преко: WhatsApp, Telegram, Slack, Discord, iMessage, Signal...
📖 Podešavanje provajdera
🔐 Provajderi za pretplatu
Claude Code (Pro/Max)
Dashboard → Providers → Connect Claude Code
→ OAuth login → Auto token refresh
→ 5-hour + weekly quota tracking
Models:
cc/claude-opus-4-7
cc/claude-sonnet-4-6
cc/claude-haiku-4-5-20251001
Savet profesionalca: Koristite Opus za kompleksne zadatke, Sonnet za brzinu. OmniRoute pratI kvotu po modelu!
Claude i Claude Code-kompatibilne rute čuvaju max nivo napora razmišljanja za Opus i Sonnet
modele. Haiku modeli ne prihvataju max nivo napora, tako da OmniRoute snižava taj
zahtev na visoki budžet razmišljanja pre slanja ka uzvodnom serveru.
OpenAI Codex (Plus/Pro)
Dashboard → Providers → Connect Codex
→ OAuth login (port 1455)
→ 5-hour + weekly reset
Models:
cx/gpt-5.5
cx/gpt-5.4
cx/gpt-5.3-codex
cx/gpt-5.3-codex-spark
GitHub Copilot
Dashboard → Providers → Connect GitHub
→ OAuth via GitHub
→ Monthly reset (1st of month)
Models:
gh/gpt-5.5
gh/gpt-5.4
gh/claude-sonnet-4.6
gh/claude-opus-4.7
gh/gemini-3.1-pro-preview
💰 Jeftini provajderi
GLM-4.7 (Dnevni reset, $0.6/1M)
- Registrujte se: Zhipu AI
- Preuzmite API ključ iz Coding Plan
- Dashboard → Add API Key: Provider:
glm, API Key:your-key
Koristi se kao: glm/glm-4.7 — Savet profesionalca: Coding Plan nudi 3× kvotu po 1/7 cene! Reset se dešava dnevno u 10:00 časova.
MiniMax M2.1 (5h reset, $0.20/1M)
- Registrujte se: MiniMax
- Preuzmite API ključ → Dashboard → Add API Key
Koristi se kao: minimax/MiniMax-M2.1 — Savet profesionalca: Najjeftinija opcija za dugi kontekst (1M tokena)!
Kimi K2 ($9/mesečno fiksno)
- Pretplatite se: Moonshot AI
- Preuzmite API ključ → Dashboard → Add API Key
Koristi se kao: kimi/kimi-k2.5 — Savet profesionalca: Fiksno $9/mesečno za 10M tokena = efektivna cena od $0.90/1M!
Baidu Qianfan / ERNIE
- Registrujte se: Baidu AI Cloud Qianfan
- Kreirajte Qianfan API ključ → Dashboard → Add API Key: Provider:
qianfan
Koristi se kao: qianfan/ernie-5.1, qianfan/ernie-x1.1, ili neki drugi Qianfan OpenAI-kompatibilan ID modela.
🆓 BESPLATNI provajderi
Besplatni provajderi bez autentifikacije imaju prekidač pored No authentication required na svojoj stranici provajdera.
Isključivanjem se onemogućava taj provajder, uklanja se iz Providers configured/compact prikaza, i
uklanjaju se njegovi modeli iz /v1/models.
Qoder (9 BESPLATNIH modela)
Dashboard → Connect Qoder → OAuth login → Access is subject to current provider limits
Models: 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 BESPLATNO)
Dashboard → Connect Kiro → AWS Builder ID or Google/GitHub → ~50 credits/month
Models: kr/claude-sonnet-4.5, kr/claude-haiku-4.5
🎨 Kombinacije
Kombinovane kartice možete preurediti direktno u Dashboard → Combos povlačenjem ručke na svakoj kartici. Redosled se čuva u SQLite bazi i vraća prilikom ponovnog učitavanja.
Primer 1: Maksimizujte pretplatu → Jeftina rezerva
Dashboard → Combos → Create New
Name: premium-coding
Models:
1. cc/claude-opus-4-7 (Primarni model iz pretplate)
2. glm/glm-4.7 (Jeftina rezerva, $0.6/1M)
3. minimax/MiniMax-M2.7 (Najjeftinija rezervna opcija, $0.3/1M)
Use in CLI: premium-coding
Primer 2: Samo besplatno (bez troškova)
Name: free-combo
Models:
1. if/kimi-k2.7-code (naveden besplatan pristup; mogu se primenjivati ograničenja provajdera)
2. kr/qwen3-coder-next (Kiro besplatna rezerva)
Cost: trenutno naveden kao $0; uslovi i dostupnost se mogu promeniti
🔧 CLI integracija
Cursor IDE
Korišćenje Cursor-a kao OmniRoute klijenta (usmeravanje Cursor chat-a kroz OmniRoute):
Settings → Models → Advanced:
OpenAI API Base URL: http://localhost:20128/v1
OpenAI API Key: [from omniroute dashboard]
Model: cc/claude-opus-4-7
Korišćenje OmniRoute-a kao Cursor provajdera (OmniRoute poziva Cursor uzvodno): preporučuje se
Dashboard → Providers → Cursor → Login with Cursor. U Docker-u, pogledajte
docs/providers/CURSOR-DOCKER.md.
Claude Code
Izmenite ~/.claude/settings.json:
{
"env": {
"ANTHROPIC_BASE_URL": "http://localhost:20128",
"ANTHROPIC_AUTH_TOKEN": "your-omniroute-api-key"
}
}
Koristite ovde Claude-kompatibilni root endpoint. Ne dodajte /v1 na kraj ANTHROPIC_BASE_URL.
Codex CLI
export OPENAI_BASE_URL="http://localhost:20128"
export OPENAI_API_KEY="your-omniroute-api-key"
codex "your prompt"
OpenClaw
Izmenite ~/.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" }]
}
}
}
}
Ili koristite Dashboard: CLI Tools → OpenClaw → Auto-config
Cline / Continue / RooCode
Provider: OpenAI Compatible
Base URL: http://localhost:20128/v1
API Key: [from dashboard]
Model: cc/claude-opus-4-7
🚀 Deployment
Globalna npm instalacija (preporučeno)
npm install -g omniroute
# Kreirajte konfiguracioni direktorijum
mkdir -p ~/.omniroute
# Kreirajte .env fajl (pogledajte .env.example)
cp .env.example ~/.omniroute/.env
# Pokrenite server
omniroute
# Ili sa prilagođenim portom:
omniroute --port 3000
CLI automatski učitava .env iz ~/.omniroute/.env ili ./.env.
Tray mod
Pokrenite OmniRoute u sistemskoj traci:
omniroute serve --tray
Komanda se vraća nakon što su server i tray spremni.
Server se nastavlja bez terminala.
Tray mod podržava macOS, Windows i grafičke Linux sesije. Tray mod ne otvara automatski dashboard.
Koristite tray meni za ove radnje:
- Otvorite dashboard.
- Otvorite
/dashboard/logs. - Promenite auto-pokretanje.
- Zaustavite OmniRoute.
Nemojte kombinovati --tray sa ovim opcijama:
--daemon--log--no-recovery
Ovi modovi zahtevaju drugačije vlasništvo procesa.
Omogućite pokretanje pri sledećoj prijavi na mašinu:
omniroute autostart enable
Auto-pokretanje koristi tray mod na macOS, Windows i grafičkim Linux sesijama. Headless Linux koristi postojeći systemd korisnički servis.
Onemogućite pokretanje pri prijavi:
omniroute autostart disable
Deinstalacija
Kada vam OmniRoute više nije potreban, obezbeđujemo dve brze skripte za čisto uklanjanje:
| Komanda | Radnja |
|---|---|
npm run uninstall |
Uklanja sistemsku aplikaciju, ali zadržava vašu bazu podataka i konfiguracije u ~/.omniroute. |
npm run uninstall:full |
Uklanja aplikaciju I trajno briše sve konfiguracije, ključeve i baze podataka. |
Napomena: Da biste izvršili ove komande, idite u folder OmniRoute projekta (ako ste ga klonirali) i pokrenite ih. Alternativno, ako je instaliran globalno, možete jednostavno pokrenuti
npm uninstall -g omniroute.
VPS Deployment
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
# Ili: pm2 start npm --name omniroute -- start
PM2 Deployment (Mala memorija)
Za servere sa ograničenom RAM memorijom, koristite opciju za ograničenje memorije:
# Sa 512MB ograničenjem (podrazumevano)
pm2 start npm --name omniroute -- start
# Ili sa prilagođenim ograničenjem memorije
OMNIROUTE_MEMORY_MB=512 pm2 start npm --name omniroute -- start
# Ili korišćenjem ecosystem.config.js
pm2 start ecosystem.config.js
Kreirajte 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
# Izgradite image (podrazumevano = runner-cli sa unapred instaliranim codex/claude/droid)
docker build -t omniroute:cli .
# Portabilni mod (preporučeno)
docker run -d --name omniroute -p 20128:20128 --env-file ./.env -v omniroute-data:/app/data omniroute:cli
Za mod integrisan sa host sistemom sa CLI binarnim fajlovima, pogledajte Docker sekciju u glavnoj dokumentaciji.
Void Linux (xbps-src)
Void Linux korisnici mogu da paketuju i instaliraju OmniRoute nativno koristeći xbps-src framework za cross-kompilaciju. Ovo automatizuje samostalnu Node.js izgradnju zajedno sa potrebnim better-sqlite3 native bindings.
Pogledajte xbps-src template
# Template fajl za 'omniroute'
pkgname=omniroute
version=3.8.0
revision=1
hostmakedepends="nodejs python3 make"
depends="openssl"
short_desc="Universal AI gateway with smart routing for multiple LLM providers"
maintainer="zenobit <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() {
# Odredite ciljnu CPU arhitekturu za 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) Instalirajte sve zavisnosti – preskočite skripte
NODE_ENV=development npm ci --ignore-scripts
# 2) Izgradite Next.js standalone bundle
npm run build
# 3) Kopirajte statičke resurse u standalone
cp -r .next/static .next/standalone/.next/static
[ -d public ] && cp -r public .next/standalone/public || true
# 4) Kompajlirajte better-sqlite3 native binding
local _node_gyp=/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js
(cd node_modules/better-sqlite3 && node "$_node_gyp" rebuild --arch="$_gyp_arch")
# 5) Postavite kompajlirani binding u standalone bundle
local _bs3_release=.next/standalone/node_modules/better-sqlite3/build/Release
mkdir -p "$_bs3_release"
cp node_modules/better-sqlite3/build/Release/better_sqlite3.node "$_bs3_release/"
# 6) Uklonite arhitekturno-specifične sharp bundle-ove
rm -rf .next/standalone/node_modules/@img
# 7) Kopirajte pino runtime zavisnosti izostavljene Next.js statičkom analizom:
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
# Sprečite uklanjanje praznih Next.js app router direktorijuma post-install hook-om
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
}
Environment Variables
| Varijabla | Podrazumevano | Opis |
|---|---|---|
JWT_SECRET |
omniroute-default-secret-change-me |
Tajni ključ za potpisivanje JWT-a (promeniti u produkciji) |
INITIAL_PASSWORD |
CHANGEME |
Lozinka za prvu prijavu |
DATA_DIR |
~/.omniroute |
Direktorijum za podatke (db, korišćenje, logovi) |
PORT |
podrazumevano po framework-u | Servisni port (20128 u primerima) |
HOSTNAME |
podrazumevano po framework-u | Host za bind (Docker podrazumevano koristi 0.0.0.0) |
NODE_ENV |
podrazumevano za runtime | Postavite na production za deploy |
NEXT_PUBLIC_BASE_URL |
http://localhost:20128 |
Javni base URL prikazan dashboard-u i izložen serveru (zamenjuje zastareli BASE_URL) |
NEXT_PUBLIC_CLOUD_URL |
https://omniroute.dev |
Base URL endpoint-a za cloud sinhronizaciju (zamenjuje zastareli CLOUD_URL) |
API_KEY_SECRET |
endpoint-proxy-api-key-secret |
HMAC tajni ključ za generisane API ključeve |
REQUIRE_API_KEY |
false |
Zahteva Bearer API ključ na /v1/* |
ALLOW_API_KEY_REVEAL |
false |
Dozvoljava autentifikovanim korisnicima dashboard-a da otkriju kompletne uskladištene vrednosti API ključa na zahtev |
PROVIDER_LIMITS_SYNC_INTERVAL_MINUTES |
70 |
Server-side interval za osvežavanje keširanih podataka o Provider Limits; dugmad za osvežavanje u UI-u i dalje pokreću ručnu sinhronizaciju |
DISABLE_SQLITE_AUTO_BACKUP |
false |
Onemogućava automatske SQLite snapshotove pre pisanja/uvoza/vraćanja; ručne rezervne kopije i dalje rade |
APP_LOG_TO_FILE |
true |
Omogućava izlaz aplikacionih i audit logova na disk |
AUTH_COOKIE_SECURE |
false |
Prisiljava Secure auth cookie (iza HTTPS reverse proxy-ja) |
CLOUDFLARED_BIN |
nepostavljeno | Koristi postojeći cloudflared binarni fajl umesto upravljanog preuzimanja |
CLOUDFLARED_PROTOCOL |
http2 |
Transport za upravljane Quick Tunnels (http2, quic, ili auto) |
OMNIROUTE_MEMORY_MB |
512 |
Ograničenje Node.js heap-a u MB |
PROMPT_CACHE_MAX_SIZE |
50 |
Maksimalan broj unosa u prompt cache-u |
SEMANTIC_CACHE_MAX_SIZE |
100 |
Maksimalan broj unosa u semantic cache-u |
Za kompletnu referencu environment varijabli, pogledajte README.
📊 Dostupni modeli
Prikaži sve dostupne modele
Lista ispod je preuzeta iz
open-sse/config/providerRegistry.tsza v3.8.0. Katalozi u облаку (Gemini, OpenRouter itd.) se sinhronizuju dinamički — za kompletan aktuelan katalog otvorite Dashboard → Providers → [provider] → Available Models ili pozoviteGET /api/models/catalog.Ako se ugrađena lista nekog provajdera razlikuje od stvarne, koristite Import from /models na toj stranici (ili omogućite Auto-Sync) da povučete aktuelan upstream katalog. Ovo je provereno u v3.8.50 za LLM7.io (
gemini-3.1-flash-lite) i UncloseAI (solidrust/Hermes-3-Llama-3.1-8B-AWQ); Pollinations anonimni pristup je i dalje bio ograničen od strane upstream-a tokom istog kruga testiranja.
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 (+ nivoi napora: 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/) — BESPLATAN OAuth: koristite aktuelan katalog prikazan pod Dashboard → Providers → Kiro → Available Models. Dostupnost zavisi od naloga i plana.
Qoder (if/) — BESPLATAN OAuth: if/qwen3.8-max-preview, if/qwen3.7-max, if/qwen3.7-plus, if/kimi-k3, if/kimi-k2.7-code, if/glm-5.2, if/deepseek-v4-pro, if/deepseek-v4-flash, if/minimax-m3
GLM (glm/, glm-cn/, zai/, glmt/) — 0,2–0,6 $/1M: glm/glm-5.1, glm/glm-5, glm/glm-5-turbo, glm/glm-4.7, glm/glm-4.7-flash, glm/glm-4.6, glm/glm-4.6v, glm/glm-4.5, glm/glm-4.5v, glm/glm-4.5-air
MiniMax (minimax/, minimax-cn/) — 0,2 $/1M: minimax/MiniMax-M2.7, minimax/MiniMax-M2.7-highspeed, minimax/MiniMax-M2.5, minimax/MiniMax-M2.5-highspeed
Kimi (kimi/, kimi-coding/, kimi-coding-apikey/) — 9 $/mesečno fiksno ili po upotrebi: kimi/kimi-k2.6, kimi/kimi-k2.5
DeepSeek (ds/) — API ključ: ds/deepseek-v4-pro, ds/deepseek-v4-flash
Groq (groq/) — Ultra brzo: 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 nativno: 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/) — Hostovano u EU: mistral/mistral-large-latest, mistral/mistral-medium-3-5, mistral/mistral-small-latest, mistral/devstral-latest, mistral/codestral-latest
Perplexity (pplx/) — Sa pretragom: pplx/sonar-deep-research, pplx/sonar-reasoning-pro, pplx/sonar-pro, pplx/sonar
Together AI (together/) — Otvoreni izvor: together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free (besplatno), 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/) — Brzo zaključivanje: 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/) — Wafer-scale: cerebras/zai-glm-4.7, cerebras/gpt-oss-120b
Cohere (cohere/) — Fokus na 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/) — Za preduzeća: 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/): Sinhronizuje se uživo po API ključu direktno od Google-a — nema statične liste. Povežite ključ u Dashboard → Providers, a zatim koristite Available Models da uvezete aktuelan katalog (npr. gemini/gemini-3-pro, gemini/gemini-3-flash).
Ostali kompatibilni provajderi (izabrani): cohere, databricks, snowflake, together, vertex, alibaba, alibaba-cn, bedrock (preko aws-bedrock), azure-ai, openrouter (passthrough katalog), siliconflow, hyperbolic, huggingface, featherless-ai, cloudflare-ai, scaleway, deepinfra, vercel-ai-gateway, bazaarlink, friendliai, nous-research, reka, volcengine, ai21, gigachat. Svaki od njih održava svoju listu modela u providerRegistry.ts i može se automatski sinhronizovati kada provajder izloži /models endpoint.
Napomena o ID-jevima modela: OmniRoute koristi native ID-jeve provajdera (claude-opus-4-8, gpt-5.5, glm-5.1, MiniMax-M2.7, kimi-k2.5, grok-4.20-0309-reasoning). Neki ID-jevi sadrže verzije s tačkama zato što tako upstream API to očekuje. Ako model nije naveden gore, pokrenite omniroute models --search <term> ili pozovite GET /api/models/catalog da potvrdite dostupnost.
🧩 Napredne funkcije
Prilagođeni modeli
Dodajte bilo koji ID modela bilo kom provajderu bez čekanja ažuriranja aplikacije:
# Preko API-ja
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"}'
# Lista: curl http://localhost:20128/api/provider-models?provider=openai
# Uklanjanje: curl -X DELETE "http://localhost:20128/api/provider-models?provider=openai&model=gpt-5.2"
Ili koristite Dashboard: Providers → [Provider] → Custom Models.
Napomene:
- OpenRouter i OpenAI/Anthropic-kompatibilni provajderi se upravljaju samo iz sekcije Available Models. Ručno dodavanje, uvoz i automatska sinhronizacija svi završavaju u istoj listi dostupnih modela, tako da za te provajdere ne postoji posebna sekcija Custom Models.
- Sekcija Custom Models je namenjena provajderima koji ne izlažu upravljane uvoze dostupnih modela.
Ulančavanje OmniRoute Peer čvorova
Drugi OmniRoute gateway može se dodati kao Custom OpenAI-compatible provajder. Koristite
/v1 osnovni URL peer-a i posebnu, sa minimalnim privilegijama, API ključ izdat od tog peer-a.
Za reciprocalne ili višehop lance, uključite opcionalnu zaštitu od petlje na svakom gateway-u:
# 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
Samo zahtevi poslati na eksplicitno dozvoljeni peer URL dobijaju
X-OmniRoute-Peer-Trace zaglavlje. Gateway odbija ponovljeni instance ID ili istrošen budžet
hopova sa HTTP 508 Loop Detected; obični upstream provajderi ne primaju peer metapodatke.
Ulančavanje peer-ova nije replikacija baze podataka ili host failover. Svaki gateway čuva nezavisno SQLite stanje, keševe, brojače brzine i sesije. Koristite reverse proxy sa provere zdravlja ili klijent failover za active/passive ili active/active dostupnost, i nikada nemojte montirati jednu SQLite bazu podataka u više pokrenutih OmniRoute instanci.
Namenske rute provajdera
Usmerite zahteve direktno ka specifičnom provajderu sa validacijom modela:
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
Prefiks provajdera se automatski dodaje ako nedostaje. Nepodudarni modeli vraćaju 400.
Konfiguracija mrežnog proksija
# Postavljanje globalnog proksija
curl -X PUT http://localhost:20128/api/settings/proxy \
-d '{"global": {"type":"http","host":"proxy.example.com","port":"8080"}}'
# Proksi po provajderu
curl -X PUT http://localhost:20128/api/settings/proxy \
-d '{"providers": {"openai": {"type":"socks5","host":"proxy.example.com","port":"1080"}}}'
# Test proksija
curl -X POST http://localhost:20128/api/settings/proxy/test \
-d '{"proxy":{"type":"socks5","host":"proxy.example.com","port":"1080"}}'
Prioritet: Specifičan za ključ → Specifičan za kombinaciju → Specifičan za provajdera → Globalni → Okruženje.
API kataloga modela
curl http://localhost:20128/api/models/catalog
Vraća modele grupisane po provajderu sa tipovima (chat, embedding, image).
Sinhronizacija u cloud-u
- Sinhronizujte provajdere, kombinacije i podešavanja preko uređaja
- Automatska sinhronizacija u pozadini sa timeout-om i brzim otkazivanjem
- Preferirajte server-side
NEXT_PUBLIC_BASE_URL/NEXT_PUBLIC_CLOUD_URLu produkciji
Cloudflare Quick Tunnel
- Dostupno u Dashboard → Endpoints za Docker i druge samostalno hostovane implementacije
- Kreira privremeni
https://*.trycloudflare.comURL koji prosleđuje na vaš trenutni OpenAI-kompatibilni/v1endpoint - Prvo omogućavanje instalira
cloudflaredsamo kada je potrebno; kasnija ponovna pokretanja koriste isti upravljani binarni fajl - Quick Tunnels se ne obnavljaju automatski nakon ponovnog pokretanja OmniRoute-a ili kontejnera; ponovo ih omogućite iz dashboard-a kada je potrebno
- URL-ovi tunela su privremeni i menjaju se svaki put kada zaustavite/pokrenete tunel
- Upravljani Quick Tunnels po podrazumevanom koriste HTTP/2 transport da bi se izbegla nametljiva QUIC UDP upozorenja o baferima u ograničenim kontejnerima
- Podesite
CLOUDFLARED_PROTOCOL=quiciliautoako želite da promenite izbor upravljanog transporta - Podesite
CLOUDFLARED_BINako preferirate korišćenje već instaliranogcloudflaredbinarnog fajla umesto upravljanog preuzimanja - Paneli Cloudflare Quick Tunnel, Tailscale Funnel i ngrok Tunnel mogu se prikazati ili sakriti u Settings → Appearance. Sakrivanje panela ne prekida pokrenuti tunel.
Inteligencija LLM Gateway-a (Faza 9)
- Semantički keš — Automatski kešira ne-streaming odgovore sa temperature=0 (zaobiđite sa
X-OmniRoute-No-Cache: true) - Idempotentnost zahteva — Deduplicira zahteve u okviru 5s putem
Idempotency-KeyiliX-Request-Idzaglavlja - Praćenje napretka — Opciona SSE
event: progressobaveštenja putemX-OmniRoute-Progress: truezaglavlja
Translator Playground
Pristupite putem Dashboard → Translator. Otkrivajte greške i vizualizujte kako OmniRoute prevodi API zahteve između provajdera.
| Mod | Namena |
|---|---|
| Playground | Izaberite izvorni/ciljni format, nalepite zahtev i odmah vidite prevedeni izlaz |
| Chat Tester | Šaljite žive chat poruke kroz proksi i pregledajte kompletan ciklus zahteva/odgovora |
| Test Bench | Pokrenite skupne testove kroz više kombinacija formata da biste verifikovali ispravnost prevoda |
| Live Monitor | Pratite prevode u realnom vremenu dok zahtevi prolaze kroz proksi |
Primeri upotrebe:
- Otkrijte zašto specifična kombinacija klijenta/provajdera ne radi
- Verifikujte da se thinking oznake, tool call-ovi i sistemski prompt-ovi pravilno prevode
- Uporedite razlike u formatima između OpenAI, Claude, Gemini i Responses API formata
Strategije usmeravanja
Konfigurišite putem Dashboard → Settings → Routing. Dashboard izlaže šest najkorišćenijih strategija; kombinacije i auto-usmerivač interno podržavaju širi skup.
Strategije vidljive u dashboard-u (usmeravanje na nivou naloga):
| Strategija | Opis |
|---|---|
| Fill First | Koristi naloge po prioritetnom redosledu — primarni nalog obrađuje sve zahteve dok ne postane nedostupan |
| Round Robin | Kruži kroz sve naloge sa podesivim limitom lepljivosti (podrazumevano: 3 pozivа po nalogu) |
| P2C (Power of Two Choices) | Bira 2 nasumična naloga i usmerava na zdraviji — balansira opterećenje sa svesnošću o zdravlju |
| Random | Nasumično bira nalog za svaki zahtev koristeći Fisher-Yates shuffle |
| Least Used | Usmerava na nalog sa najstarijim lastUsedAt vremenskim pečatom, ravnomerno distribuirajući saobraćaj |
| Cost Optimized | Usmerava na nalog sa najnižom vrednošću prioriteta, optimizujući za provajdere s najnižim troškovima |
Napredne combo i auto strategije (konfigurabilne po kombinaciji ili putem auto/* prefiksa — vidi AUTO-COMBO.md):
priority— striktan redosled, nikada ne rotiraweighted— proporcionalna podela saobraćaja po težinama modelafill-first— isprazniti prvi model dok se ne dosegnu limitiround-robin/strict-random/randomp2c(Power of Two Choices)least-usedicost-optimizedauto— vođeno rezultatom kroz sve kandidatelkgp(Last Known Good Provider) — vezuje se za poslednjeg uspešnog provajdera, zatim pada na pravilacontext-optimized— bira model sa najvećim slobodnim prozorom kontekstacontext-relay— ulančava modele sa dugim kontekstom za naredne ture
Zaglavlje za eksternu lepljivu sesiju
Za eksternu afinitet sesije (na primer, Claude Code/Codex agenti iza reverse proxy-ja), pošaljite:
X-Session-Id: your-session-key
OmniRoute takođe prihvata x_session_id i vraća efektivni ključ sesije u X-OmniRoute-Session-Id.
Ako koristite Nginx i šaljete zaglavlja u underscore-obliku, omogućite:
underscores_in_headers on;
Wildcard aliasi modela
Kreirajte wildcard šablone za remapiranje naziva modela:
Šablon: claude-sonnet-* → Cilj: cc/claude-sonnet-4-6
Šablon: gpt-* → Cilj: gh/gpt-5.3-codex
Wildcard-ovi podržavaju * (bilo koji karakteri) i ? (jedan karakter).
Rezervni lanci (Fallback Chains)
Definišite globalne rezervne lance koji se primenjuju kroz sve zahteve:
Lanac: production-fallback
1. cc/claude-opus-4-7
2. gh/gpt-5.3-codex
3. glm/glm-4.7
Otpornost i Circuit Breakeri
Konfigurišite putem Dashboard → Settings → Resilience.
OmniRoute implementira otpornost na nivou provajdera sa pet komponenti:
-
Red čekanja zahteva i regulisanje tempa — Oblikovanje zahteva na nivou sistema:
- Requests Per Minute (RPM) — Maksimalan broj zahteva u minuti po nalogu
- Min Time Between Requests — Minimalni razmak u milisekundama između zahteva
- Max Concurrent Requests — Maksimalan broj istovremenih zahteva po nalogu
-
Cooldown veze — Konfiguracija po tipu autentifikacije za jednu vezu nakon grešaka koje se mogu ponoviti:
- Base Cooldown — Podrazumevani period cooldown-a za upstream greške koje se mogu ponoviti
- Use Upstream Retry Hints — Poštuje autoritativne
Retry-Afterili reset nagoveštaje kada su dostupni - Max Backoff Steps — Maksimalan nivo eksponencijalnog backoff-a za ponovljene greške
-
Circuit Breaker provajdera — Prati end-to-end greške provajdera, obeležava provajdera kao degradiranog na podešenom pragu upozorenja i otvara breaker kada se dostigne podešeni prag greške:
- Degradation Threshold — Uzastopne greške provajdera prije prelaska u
DEGRADED - Failure Threshold — Uzastopne greške provajdera prije prelaska u
OPEN - Reset Timeout — Vremenski prozor prije nego se provajder ponovo testira
- CLOSED (Zdrav) — Zahtevi teku normalno
- DEGRADED — Zahtevi i dalje teku dok se prate povećane greške
- OPEN — Provajder je privremeno blokiran nakon ponovljenih grešaka
- HALF_OPEN — Testira se da li se provajder oporavio
Ograničenja brzine
429na nivou veze ostaju u Connection Cooldown i ne broje se u okviru breakera provajdera.Stanje runtime-a breakera provajdera prikazuje se samo na Dashboard → Health.
- Degradation Threshold — Uzastopne greške provajdera prije prelaska u
-
Čekanje na cooldown — Ako sve kandidatske veze već čekaju u cooldown-u, OmniRoute može sačekati najraniji cooldown i automatski ponoviti isti klijentski zahtev.
-
Automatsko otkrivanje ograničenja brzine — Kada upstream provajderi vrate eksplicitne prozore čekanja, ti nagoveštaji nadjačavaju lokalni cooldown veze kada je podešavanje omogućeno.
Profesionalni savet: Koristite stranicu Health za pregled i resetovanje live breakera provajdera nakon zastoja. Stranica Resilience samo menja konfiguraciju.
Izvoz / Uvoz baze podataka
Upravljajte rezervnim kopijama baze podataka u Dashboard → Settings → System & Storage.
| Akcija | Opis |
|---|---|
| Export Database | Preuzima trenutnu SQLite bazu podataka kao .sqlite fajl |
| Export All (.tar.gz) | Preuzima kompletnu arhivu rezervne kopije koja uključuje: bazu podataka, podešavanja, kombinacije, veze provajdera (bez kredencijala), metapodatke API ključeva |
| Import Database | Otpremite .sqlite fajl da zamenite trenutnu bazu podataka. Rezervna kopija pre uvoza automatski se kreira osim ako je DISABLE_SQLITE_AUTO_BACKUP=true |
# API: Izvoz baze podataka
curl -o backup.sqlite http://localhost:20128/api/db-backups/export
# API: Izvoz svega (kompletna arhiva)
curl -o backup.tar.gz http://localhost:20128/api/db-backups/exportAll
# API: Uvoz baze podataka
curl -X POST http://localhost:20128/api/db-backups/import \
-F "file=@backup.sqlite"
Validacija uvoza: Uvezeni fajl se validira za integritet (SQLite pragma provera), obavezne tabele (provider_connections, provider_nodes, combos, api_keys) i veličinu (maksimalno 100MB).
Primeri upotrebe:
- Migracija OmniRoute-a između mašina
- Kreiranje eksternih rezervnih kopija za oporavak od katastrofe
- Deljenje konfiguracija između članova tima (izvoz svega → deljenje arhive)
Settings Dashboard
Stranica podešavanja organizovana je u 7 tabova za lakšu navigaciju:
| Tab | Sadržaj |
|---|---|
| General | Alati za sistemsko skladištenje, podrazumevano ponašanje, vidljivost Endpoint tunela |
| Appearance | Kontrole teme (svetla/tamna/sistemska), vidljivost sidebar-a, prekidači panela za Cloudflare/Tailscale/ngrok kartice tunela |
| AI | Budžet razmišljanja (passthrough / auto-strip / custom / adaptive — vidi THINKING_BUDGET.md), globalni sistemski prompt, statistika prompt keša |
| Security | Podešavanja prijave/lozinke, kontrola pristupa po IP-u, API autentifikacija za /models, blokiranje provajdera, zaštita od prompt-injection napada |
| Routing | Globalna strategija usmeravanja (Fill First / Round Robin / P2C / Random / Least Used / Cost Optimized), wildcard aliasi modela, rezervni lanci, podrazumevane vrednosti kombinacija |
| Resilience | Red čekanja zahteva, cooldown veze, konfiguracija breakera provajdera i ponašanje čekanja na cooldown |
| Advanced | Globalna konfiguracija proksija (HTTP/SOCKS5), prekoračenja proksija po provajderu |
General više ne duplira read-only zapisnike i beleške o kešu. Podešavanja retencije i
optimizacije baze podataka trajno se čuvaju putem /api/settings/database; ručno čišćenje keša koristi
DELETE /api/cache. Maksimalan broj redova u logovima zahteva i proksija kontrolišu se putem
CALL_LOGS_TABLE_MAX_ROWS i PROXY_LOGS_TABLE_MAX_ROWS.
Troškovi i upravljanje budžetom
Pristupite putem Dashboard → Costs.
| Tab | Namena |
|---|---|
| Budget | Postavite limite potrošnje po API ključu sa dnevnim/nedeljnim/mesečnim budžetima i pratom u realnom vremenu |
| Pricing | Pregledajte i uredite stavke cena modela — cena po 1K ulaznih/izlaznih tokena po provajderu |
# API: Postavljanje budžeta
curl -X POST http://localhost:20128/api/usage/budget \
-H "Content-Type: application/json" \
-d '{"keyId": "key-123", "limit": 50.00, "period": "monthly"}'
# API: Dobijanje trenutnog statusa budžeta
curl http://localhost:20128/api/usage/budget
Praćenje troškova: Svaki zahtev zapisuje potrošnju tokena i izračunava trošak koristeći tabelu cena. Pregledajte raspodele u Dashboard → Usage po provajderu, modelu i API ključu.
Transkripcija audio zapisa
OmniRoute podržava transkripciju audio zapisa putem OpenAI-kompatibilnog endpointa:
POST /v1/audio/transcriptions
Authorization: Bearer your-api-key
Content-Type: multipart/form-data
# Primer sa 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 je izvorna Deepgram ruta i zahteva Deepgram API ključ.
Ako je konfigurisan samo OpenRouter, koristite openrouter/deepgram/nova-3.
Speech-to-Text (transkripcija) provajderi:
openai/(kompatibilan sa whisper)groq/(Groq Whisper Turbo)deepgram/(Nova porodica)assemblyai/nvidia/(Parakeet, Canary)huggingface/(whisper varijante)qwen/
Text-to-Speech (POST /v1/audio/speech) provajderi:
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/
Podržani audio formati za transkripciju: mp3, wav, m4a, flac, ogg, webm. Izlazni formati TTS-a zavise od provajdera (mp3, wav, opus, pcm, mulaw).
Strategije balansiranja kombinacija
Konfigurišite balansiranje po kombinaciji u Dashboard → Combos → Create/Edit → Strategy.
| Strategija | Opis |
|---|---|
| Round-Robin | Rotira kroz modele sekvencijalno |
| Priority | Uvek prvo pokušava prvi model; pada na rezervni samo pri grešci |
| Random | Bira nasumičan model iz kombinacije za svaki zahtev |
| Weighted | Usmerava proporcionalno na osnovu dodeljenih težina po modelu |
| Least-Used | Usmerava na model sa najmanje nedavnih zahteva (koristi metrike kombinacije) |
| Cost-Optimized | Usmerava na najjeftiniji dostupan model (koristi tabelu cena) |
Globalne podrazumevane vrednosti kombinacija mogu se podesiti u Dashboard → Settings → Routing → Combo Defaults. Ciljni timeout-i kombinacije po podrazumevanom nasleđuju trenutni timeout zahteva. Koristite Target timeout (seconds) u podrazumevanim vrednostima kombinacije ili pojedinačnoj kombinaciji samo kada kraći limit po cilju treba da pokrene brži prelazak na rezervni.
Optimizacije kombinacija sa nultom latencijom su opcione. Ostavite Zero-latency optimizations onemogućenim da sprečite ove funkcije latencije da se utrkuju sa rezervnim ciljevima, preskoče ciljeve na osnovu istorije TTFT-a, ili kompresuju rezervne zahteve; omogućavanje dozvoljava konfigurisano hedžovanje, prediktivne TTFT preskoke i proaktivnu kompresiju rezervnih zahteva da razmene tačnost usmeravanja/zahteva za manju latenciju u repu.
Onemogućite Reasoning token buffer kada upstream provajderi zahtevaju stroge
max_tokens / maxOutputTokens limite. Kada je omogućeno, usmeravanje kombinacije dodaje prostor za modele razmišljanja
samo za modele sa poznatim izlaznim ograničenjem i ostavlja limit tokena klijenta nepromenjen kada bi sigurna bafer vrednost
premašila to ograničenje. Ako je limit klijenta već iznad poznatog ograničenja,
OmniRoute ga ograničava na tu vrednost prije slanja upstream zahteva.
Health Dashboard
Pristupite putem Dashboard → Health. Pregled zdravlja sistema u realnom vremenu sa 6 kartica:
| Kartica | Šta prikazuje |
|---|---|
| System Status | Vreme rada, verzija, upotreba memorije, direktorijum podataka |
| Provider Health | Runtime stanje globalnog circuit breaker-a provajdera |
| Rate Limits | Aktivni cooldown-i veze po nalogu sa preostalim vremenom |
| Active Lockouts | Aktivna zaključavanja specifična za model i privremeni izuzeci |
| Signature Cache | Statistika keša deduplikacije (aktivni ključevi, stopa uspešnosti) |
| Latency Telemetry | Agregacija latencije p50/p95/p99 po provajderu |
Profesionalni savet: Stranica Health se automatski osvežava svakih 10 sekundi. Koristite karticu circuit breaker-a da identifikujete koji provajderi imaju probleme.
🤖 Аутоматско рутирање (без конфигурације)
OmniRoute долази са рутером вођеним оценама (score-driven auto-router) који бира најбољи модел за сваки захтев преко свих повезаних провајдера — без потребе за одржавањем комбинација. Само пошаљите захтев са једним од auto/* префикса и OmniRoute ће у ходу саставити виртуелну комбинацију, оцењујући кандидате на основу латенције, цене, стопе успешности, уклапања у контекст, погодности модела за задатак, недавних отказивања, квоте и стања circuit-breaker-а.
| Префикс | Оптимизује за |
|---|---|
auto |
Уравнотежени подразумевани режим (латенција × цена × стопа успешности) |
auto/coding |
Задаци програмирања: преферира Claude, GPT-5, GLM, Kimi, Qwen Coder, DeepSeek coders |
auto/cheap |
Најнижа цена по токену, прихвата вишу латенцију |
auto/fast |
Најнижа латенција, игнорише цену |
auto/offline |
Само локални провајдери (Ollama, vLLM, llama.cpp) — корисно за air-gapped системе |
auto/smart |
Приоритет квалитету закључивања (Opus, GPT-5 xhigh, R1, GLM 5.1 reasoning) |
auto/lkgp |
"Last Known Good Provider" — фиксира се на последњи успешни провајдер, затим прелази на правила |
Пример:
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
}'
Аутоматски рутер је потпуно описан у AUTO-COMBO.md — укључујући начин подешавања тежина оцењивања, стављања провајдера на црну листу и увида у одлуке рутирања у Dashboard → Auto Combo.
🔌 MCP и A2A интеграција
OmniRoute је истовремено MCP сервер (Model Context Protocol) и A2A сервер (Agent-to-Agent JSON-RPC 2.0). Свако IDE окружење или агент домаћин компатибилан са MCP-ом може директно позивати OmniRoute алате — без потребе за додатним омотачем (wrapper).
MCP транспорти
- SSE:
http://localhost:20128/api/mcp/sse - Streamable HTTP:
http://localhost:20128/api/mcp/stream - stdio:
omniroute --mcp(за IDE додатке који преферирају stdio)
Повезивање Claude Desktop
Уредите ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) или еквивалентну путању на Windows/Linux:
{
"mcpServers": {
"omniroute": {
"command": "omniroute",
"args": ["--mcp"]
}
}
}
Повезивање Cursor / Continue / VS Code MCP
Користите SSE URL http://localhost:20128/api/mcp/sse и Bearer API кључ генерисан у Dashboard → API Keys.
Опсези (Scopes)
MCP тренутно дефинише 32 именована опсега. Сваки Bearer кључ може бити ограничен на одређене опсеге — погледајте MCP-SERVER.md за меродаван преглед опсега и алата, и A2A-SERVER.md за JSON-RPC шему.
🧠 Sistem vештina
OmniRoute izlaže proširivi skill framework (src/lib/skills/) tako da agenti i A2A endpoint mogu da izvršavaju domenski specifične rutine (npr. code-review, summarize, extract-facts, web-research).
- Marketplace UI — Pregledajte i instalirajte vештine iz Dashboard → Skills
- Opsezi po ključu — Ograničite koji API ključevi mogu da pozivaju koje vештине
- Prilagođene vештine — Ubacite TypeScript fajl u
src/lib/a2a/skills/, registrujte ga, i on postaje odmah pozivljiv preko A2A
Kompletna referenca: SKILLS.md.
💾 Sistem memorije
OmniRoute čuva dugotrajnu konverzacionu memoriju sa hibridnim pronalaženjem:
- SQLite FTS5 za pretragu po ključnim rečima kroz prethodne razmene
- Qdrant vector store (opciono) za semantičko prisećanje
- Automatska ekstrakcija činjenica — entiteti, preference i odluke se sumiraju nakon svake sesije i čuvaju u tabeli
memory_facts - Memorije su ograničene po API ključu i po sesiji
Upravljajte memorijama u Dashboard → Memory (pretraga, uređivanje, izvoz, brisanje). HTTP površina (/api/memory/*) omogućava agentima da programski šalju i pretražuju činjenice — pogledajte MEMORY.md.
🔔 Webhooks
Pretplatite se na OmniRoute događaje za praćenje u realnom vremenu i automatizaciju.
- Kreirajte webhook u Dashboard → Webhooks sa ciljnim URL-om i HMAC tajnim ključem za potpisivanje
- Dostupni događaji:
request.completed,request.failed,provider.unavailable,budget.exceeded,combo.switched,circuit_breaker.opened,circuit_breaker.closed - Svaki payload sadrži
X-OmniRoute-Signature(HMAC-SHA256) za verifikaciju - Ponovni pokušaji: 3 pokušaja sa eksponencijalnim odlaganjem, zatim red za neisporučene poruke (dead-letter queue)
Kompletna šema u WEBHOOKS.md.
☁️ Cloud Agents
OmniRoute se integriše sa cloud agentima za kodiranje (OpenAI Codex Cloud, Devin, Jules, Antigravity) tako da možete slati dugotrajne zadatke iz istog dashboarda koji upravlja vašim lokalnim rutiranjem.
- Kreirajte zadatke u Dashboard → Cloud Agents ili preko
POST /api/v1/agents/tasks - Praćenje statusa, logova i artefakata po zadatku
- Sopstveni API ključ po provajderu — kredencijali nikada ne napuštaju OmniRoute instancu
Kompletna referenca: CLOUD_AGENT.md.
🛠️ Programsko upravljanje
Možete upravljati svim OmniRoute resursima (provajderi, kombinacije, ključevi, podešavanja) preko HTTP-a koristeći Bearer ključ sa opsegom manage.
Generišite ključ u Dashboard → API Keys → New Key → Scope: manage, zatim:
# Prikaz liste provajdera
curl http://localhost:20128/api/providers \
-H "Authorization: Bearer $OMNIROUTE_MANAGE_KEY"
# Dodavanje veze sa provajderom
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" }'
# Kreiranje kombinacije
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" }] }'
# Prikaz liste/kreiranje API ključeva
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"] }'
Pogledajte API_REFERENCE.md za kompletan katalog endpointa i šeme zahteva/odgovora.
💻 Interni CLI
OmniRoute dolazi sa internim CLI-jem (omniroute …) za podešavanje, dijagnostiku i kontrolu rada. Ovo je odvojeno od stranice „CLI Tools” u dashboard-u, koja konfiguriše CLI alate trećih strana (Claude Code, Cursor, Codex, Cline, …) da bi mogli da komuniciraju sa OmniRoute-om.
omniroute setup # Interaktivni čarobnjak (lozinka, provajderi, kombinacije)
omniroute setup --non-interactive # Pogodno za CI
omniroute doctor # Dijagnostika ispravnosti (data direktorijum, baza, provajderi, portovi)
omniroute providers available # Prikaz podržanih provajdera
omniroute providers list # Prikaz konfigurisanih konekcija
omniroute providers test <id> # Testiranje konekcije provajdera u realnom vremenu
omniroute combos list # Prikaz kombinacija
omniroute combos switch <name> # Postavljanje podrazumevane kombinacije
omniroute models # Prikaz dostupnih modela (--json, --search)
omniroute keys add | list | remove # Upravljanje API ključevima iz terminala
omniroute backup # Snimak konfiguracije i baze podataka
omniroute restore [<timestamp>] # Vraćanje iz snimka
omniroute health # Detaljno stanje sistema (breakeri, keš, memorija)
omniroute quota # Iskorišćenost kvote provajdera
omniroute mcp status # Status MCP servera
omniroute a2a status # Status A2A servera
omniroute tunnel list|create|stop # Cloudflare/Tailscale/ngrok tuneli
omniroute reset-password # Resetovanje admin lozinke
omniroute --mcp # Pokretanje MCP servera preko stdio
omniroute --port 3000 # Pokretanje servera na proizvoljnom portu
Savet: kombinujte omniroute doctor --json sa alatom za monitoring da biste dobijali upozorenja o neispravnim konekcijama provajdera.
🖥️ Desktop aplikacija (Electron)
OmniRoute je dostupan kao nativna desktop aplikacija za Windows, macOS i Linux.
Instalacija
# Iz direktorijuma electron:
cd electron
npm install
# Razvojni režim (povezivanje na aktivan Next.js dev server):
npm run dev
# Produkcioni režim (koristi samostalni build):
npm start
Kreiranje instalacionih paketa
cd electron
npm run build # Trenutna platforma
npm run build:win # Windows (.exe NSIS)
npm run build:mac # macOS (.dmg universal)
npm run build:linux # Linux (.AppImage)
Izlaz → electron/dist-electron/
Ključne funkcije
| Funkcija | Opis |
|---|---|
| Spremnost servera | Provera servera pre prikazivanja prozora (bez praznog ekrana) |
| Sistemska traka | Minimizovanje u traku, promena porta, izlaz preko menija u traci |
| Upravljanje portovima | Promena porta servera iz trake (automatski restart servera) |
| Bezbednosna politika sadržaja (CSP) | Restriktivan CSP preko zaglavlja sesije |
| Jedinstvena instanca | Samo jedna instanca aplikacije može biti pokrenuta u isto vreme |
| Režim rada bez interneta | Ugrađeni Next.js server radi bez internet konekcije |
Promenljive okruženja
| Promenljiva | Podrazumevana vrednost | Opis |
|---|---|---|
OMNIROUTE_PORT |
20128 |
Port servera |
OMNIROUTE_MEMORY_MB |
512 |
Ograničenje Node.js heap-a (64–16384 MB) |
📖 Kompletna dokumentacija: electron/README.md