From 9b4a5523cc7c0ff214b8d5e9ea98e28938266174 Mon Sep 17 00:00:00 2001 From: diegosouzapw Date: Tue, 31 Mar 2026 11:37:29 -0300 Subject: [PATCH 1/5] docs: add Void Linux install template to README and translations (#732) --- README.md | 107 +++++++++++++++++++ docs/i18n/ar/README.md | 198 ++++++++++++++++++++++++++++++------ docs/i18n/bg/README.md | 198 ++++++++++++++++++++++++++++++------ docs/i18n/da/README.md | 198 ++++++++++++++++++++++++++++++------ docs/i18n/de/README.md | 198 ++++++++++++++++++++++++++++++------ docs/i18n/es/README.md | 198 ++++++++++++++++++++++++++++++------ docs/i18n/fi/README.md | 198 ++++++++++++++++++++++++++++++------ docs/i18n/fr/README.md | 198 ++++++++++++++++++++++++++++++------ docs/i18n/he/README.md | 198 ++++++++++++++++++++++++++++++------ docs/i18n/hu/README.md | 198 ++++++++++++++++++++++++++++++------ docs/i18n/id/README.md | 198 ++++++++++++++++++++++++++++++------ docs/i18n/in/README.md | 198 ++++++++++++++++++++++++++++++------ docs/i18n/it/README.md | 198 ++++++++++++++++++++++++++++++------ docs/i18n/ja/README.md | 198 ++++++++++++++++++++++++++++++------ docs/i18n/ko/README.md | 198 ++++++++++++++++++++++++++++++------ docs/i18n/ms/README.md | 198 ++++++++++++++++++++++++++++++------ docs/i18n/nl/README.md | 198 ++++++++++++++++++++++++++++++------ docs/i18n/no/README.md | 198 ++++++++++++++++++++++++++++++------ docs/i18n/phi/README.md | 198 ++++++++++++++++++++++++++++++------ docs/i18n/pl/README.md | 198 ++++++++++++++++++++++++++++++------ docs/i18n/pt-BR/README.md | 198 ++++++++++++++++++++++++++++++------ docs/i18n/pt/README.md | 198 ++++++++++++++++++++++++++++++------ docs/i18n/ro/README.md | 198 ++++++++++++++++++++++++++++++------ docs/i18n/ru/README.md | 198 ++++++++++++++++++++++++++++++------ docs/i18n/sk/README.md | 198 ++++++++++++++++++++++++++++++------ docs/i18n/sv/README.md | 198 ++++++++++++++++++++++++++++++------ docs/i18n/th/README.md | 198 ++++++++++++++++++++++++++++++------ docs/i18n/uk-UA/README.md | 198 ++++++++++++++++++++++++++++++------ docs/i18n/vi/README.md | 198 ++++++++++++++++++++++++++++++------ docs/i18n/zh-CN/README.md | 198 ++++++++++++++++++++++++++++++------ src/lib/apiBridgeServer.ts | 2 + src/shared/utils/apiAuth.ts | 7 +- 32 files changed, 4987 insertions(+), 871 deletions(-) diff --git a/README.md b/README.md index f3ae4c9bae..0aba453e72 100644 --- a/README.md +++ b/README.md @@ -858,6 +858,113 @@ npm install PORT=20128 DASHBOARD_PORT=20129 NEXT_PUBLIC_BASE_URL=http://localhost:20129 npm run dev ``` +
+Void Linux (`xbps-src` template) + +For Void Linux users, you can build a native package using `xbps-src`. Save this block as `srcpkgs/omniroute/template`: + +```bash +# Template file for 'omniroute' +pkgname=omniroute +version=3.4.1 +revision=1 +hostmakedepends="nodejs python3 make" +depends="openssl" +short_desc="Universal AI gateway with smart routing for multiple LLM providers" +maintainer="zenobit " +license="MIT" +homepage="https://github.com/diegosouzapw/OmniRoute" +distfiles="https://github.com/diegosouzapw/OmniRoute/archive/refs/tags/v${version}.tar.gz" +checksum=009400afee90a9f32599d8fe734145cfd84098140b7287990183dde45ae2245b +system_accounts="_omniroute" +omniroute_homedir="/var/lib/omniroute" +export NODE_ENV=production +export npm_config_engine_strict=false +export npm_config_loglevel=error +export npm_config_fund=false +export npm_config_audit=false + +do_build() { + # Determine target CPU arch for node-gyp + local _gyp_arch + case "$XBPS_TARGET_MACHINE" in + aarch64*) _gyp_arch=arm64 ;; + armv7*|armv6*) _gyp_arch=arm ;; + i686*) _gyp_arch=ia32 ;; + *) _gyp_arch=x64 ;; + esac + + # 1) Install all deps – skip scripts (no network in do_build, native modules + # compiled separately below; better-sqlite3 is serverExternalPackage so + # Next.js does not execute it during next build) + NODE_ENV=development npm ci --ignore-scripts + + # 2) Build the Next.js standalone bundle + npm run build + + # 3) Copy static assets into standalone + cp -r .next/static .next/standalone/.next/static + [ -d public ] && cp -r public .next/standalone/public || true + + # 4) Compile better-sqlite3 native binding for the target architecture. + # Use node-gyp directly so CC/CXX from xbps-src cross-toolchain are used + # without npm altering them. + local _node_gyp=/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js + (cd node_modules/better-sqlite3 && node "$_node_gyp" rebuild --arch="$_gyp_arch") + + # 5) Place the compiled binding into the standalone bundle + local _bs3_release=.next/standalone/node_modules/better-sqlite3/build/Release + mkdir -p "$_bs3_release" + cp node_modules/better-sqlite3/build/Release/better_sqlite3.node "$_bs3_release/" + + # 6) Remove arch-specific sharp bundles – upstream sets images.unoptimized=true + # so sharp is not used at runtime; x64 .so files would break aarch64 strip + rm -rf .next/standalone/node_modules/@img + + # 7) Copy pino runtime deps omitted by Next.js static analysis: + # pino-abstract-transport – required by pino's worker thread + # split2 – dep of pino-abstract-transport + # process-warning – dep of pino itself + for _mod in pino-abstract-transport split2 process-warning; do + cp -r "node_modules/$_mod" .next/standalone/node_modules/ + done +} + +do_check() { + npm run test:unit +} + +do_install() { + vmkdir usr/lib/omniroute/.next + + vcopy .next/standalone/. usr/lib/omniroute/.next/standalone + + # Prevent removal of empty Next.js app router dirs by the post-install hook + for _d in \ + .next/standalone/.next/server/app/dashboard \ + .next/standalone/.next/server/app/dashboard/settings \ + .next/standalone/.next/server/app/dashboard/providers; do + touch "${DESTDIR}/usr/lib/omniroute/${_d}/.keep" + done + + cat > "${WRKDIR}/omniroute" <<'EOF' +#!/bin/sh +export PORT="${PORT:-20128}" +export DATA_DIR="${DATA_DIR:-${XDG_DATA_HOME:-${HOME}/.local/share}/omniroute}" +export LOG_TO_FILE="${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 +} +``` + +
+ --- ## 🐳 Docker diff --git a/docs/i18n/ar/README.md b/docs/i18n/ar/README.md index 6b539482a7..f459de83fc 100644 --- a/docs/i18n/ar/README.md +++ b/docs/i18n/ar/README.md @@ -4,6 +4,7 @@ --- + ### Never stop coding. Smart routing to **FREE & low-cost AI models** with automatic fallback. _Your universal API proxy — one endpoint, 67+ providers, zero downtime. Now with **MCP & A2A** agent orchestration._ @@ -30,6 +31,30 @@ _Your universal API proxy — one endpoint, 67+ providers, zero downtime. Now wi --- +## Breaking Change: Unified Logging Upgrade + +> [!WARNING] +> **This release changes both the on-disk request log layout and the logging environment variables.** +> +> If you are upgrading an existing instance: +> +> - Request logs now live in `DATA_DIR/call_logs/YYYY-MM-DD/` as **one JSON artifact per request**. +> - The old `DATA_DIR/logs/` session folders and `DATA_DIR/log.txt` summary file are removed. +> - On the first startup after upgrading, OmniRoute creates a safety backup at `DATA_DIR/log_archives/*.zip` before removing the deprecated request log layout. +> - Legacy logging env vars such as `LOG_TO_FILE`, `LOG_FILE_PATH`, `LOG_MAX_FILE_SIZE`, `LOG_RETENTION_DAYS`, `LOG_LEVEL`, `LOG_FORMAT`, `ENABLE_REQUEST_LOGS`, `CALL_LOGS_MAX`, `CALL_LOG_PAYLOAD_MODE`, and `PROXY_LOG_MAX_ENTRIES` are no longer supported. +> - Use the new env model instead: +> - `APP_LOG_TO_FILE` +> - `APP_LOG_FILE_PATH` +> - `APP_LOG_MAX_FILE_SIZE` +> - `APP_LOG_RETENTION_DAYS` +> - `APP_LOG_LEVEL` +> - `APP_LOG_FORMAT` +> - `CALL_LOG_RETENTION_DAYS` +> +> For release details and upgrade notes, see the [CHANGELOG](CHANGELOG.md). + +--- + ## 🆕 What's New in v3.0.0 > **Upgrading from v2.9.5?** — See the [full CHANGELOG](CHANGELOG.md#300--2026-03-22-release-candidate--not-yet-merged-to-main) for all changes. @@ -203,7 +228,7 @@ When opening an issue, please run the system-info command and attach the generat npm run system-info ``` -This generates a `system-info.txt` with your Node.js version, OmniRoute version, OS details, installed CLI tools (iflow, gemini, claude, codex, antigravity, droid, etc.), Docker/PM2 status, and system packages — everything we need to reproduce your issue quickly. Attach the file directly to your GitHub issue. +This generates a `system-info.txt` with your Node.js version, OmniRoute version, OS details, installed CLI tools (qoder, gemini, claude, codex, antigravity, droid, etc.), Docker/PM2 status, and system packages — everything we need to reproduce your issue quickly. Attach the file directly to your GitHub issue. --- @@ -229,7 +254,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, │ ↓ budget limit ├─→ [Tier 3: CHEAP] GLM ($0.6/1M), MiniMax ($0.2/1M) │ ↓ budget limit - └─→ [Tier 4: FREE] iFlow, Qwen, Kiro (unlimited) + └─→ [Tier 4: FREE] Qoder, Qwen, Kiro (unlimited) Result: Never stop coding, minimal cost ``` @@ -296,7 +321,7 @@ Not everyone can pay $20–200/month for AI subscriptions. Students, devs from e **How OmniRoute solves it:** -- **Free Tier Providers Built-in** — Native support for 100% free providers: iFlow (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) +- **Free Tier Providers Built-in** — Native support for 100% free providers: Qoder (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) - **Ollama Cloud** — Cloud-hosted Ollama models at `api.ollama.com` with free "Light usage" tier; use `ollamacloud/` prefix - **Free-Only Combos** — Chain `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime - **NVIDIA NIM Free Access** — ~40 RPM dev-forever free access to 70+ models at build.nvidia.com (transitioning from credits to pure rate limits) @@ -360,7 +385,7 @@ Claude Code, Codex, Gemini CLI, Copilot — all use OAuth 2.0 with expiring toke **How OmniRoute solves it:** - **Auto Token Refresh** — OAuth tokens refresh in background before expiration -- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, iFlow +- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder - **Multi-Account OAuth** — Multiple accounts per provider via JWT/ID token extraction - **OAuth LAN/Remote Fix** — Private IP detection for `redirect_uri` + manual URL mode for remote servers - **OAuth Behind Nginx** — Uses `window.location.origin` for reverse proxy compatibility @@ -413,7 +438,7 @@ Installing, configuring, and maintaining an AI proxy across different environmen - **Electron Desktop App** — Native app for Windows/macOS/Linux with system tray, auto-start, offline mode - **Split-Port Mode** — API and Dashboard on separate ports for advanced scenarios (reverse proxy, container networking) - **Cloud Sync** — Config synchronization across devices via Cloudflare Workers -- **DB Backups** — Automatic backup, restore, export and import of all settings +- **DB Backups** — Automatic backup, restore, export and import of all settings, with `DISABLE_SQLITE_AUTO_BACKUP` for externally managed backups @@ -737,7 +762,7 @@ Outcome: deep fallback depth for deadline-critical workloads | Step | Action | Providers Unlocked | | ---- | -------------------------------------------------- | ------------------------------------------------------------------ | | 1 | Connect **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — **unlimited** | -| 2 | Connect **iFlow** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | +| 2 | Connect **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | | 3 | Connect **Qwen** (Device Code) | qwen3-coder-plus, qwen3-coder-flash... — **unlimited** | | 4 | Connect **Gemini CLI** (Google OAuth) | gemini-3-flash, gemini-2.5-pro — **180K/mo free** | | 5 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | @@ -838,6 +863,113 @@ npm install PORT=20128 DASHBOARD_PORT=20129 NEXT_PUBLIC_BASE_URL=http://localhost:20129 npm run dev ``` +
+Void Linux (`xbps-src` template) + +For Void Linux users, you can build a native package using `xbps-src`. Save this block as `srcpkgs/omniroute/template`: + +```bash +# Template file for 'omniroute' +pkgname=omniroute +version=3.4.1 +revision=1 +hostmakedepends="nodejs python3 make" +depends="openssl" +short_desc="Universal AI gateway with smart routing for multiple LLM providers" +maintainer="zenobit " +license="MIT" +homepage="https://github.com/diegosouzapw/OmniRoute" +distfiles="https://github.com/diegosouzapw/OmniRoute/archive/refs/tags/v${version}.tar.gz" +checksum=009400afee90a9f32599d8fe734145cfd84098140b7287990183dde45ae2245b +system_accounts="_omniroute" +omniroute_homedir="/var/lib/omniroute" +export NODE_ENV=production +export npm_config_engine_strict=false +export npm_config_loglevel=error +export npm_config_fund=false +export npm_config_audit=false + +do_build() { + # Determine target CPU arch for node-gyp + local _gyp_arch + case "$XBPS_TARGET_MACHINE" in + aarch64*) _gyp_arch=arm64 ;; + armv7*|armv6*) _gyp_arch=arm ;; + i686*) _gyp_arch=ia32 ;; + *) _gyp_arch=x64 ;; + esac + + # 1) Install all deps – skip scripts (no network in do_build, native modules + # compiled separately below; better-sqlite3 is serverExternalPackage so + # Next.js does not execute it during next build) + NODE_ENV=development npm ci --ignore-scripts + + # 2) Build the Next.js standalone bundle + npm run build + + # 3) Copy static assets into standalone + cp -r .next/static .next/standalone/.next/static + [ -d public ] && cp -r public .next/standalone/public || true + + # 4) Compile better-sqlite3 native binding for the target architecture. + # Use node-gyp directly so CC/CXX from xbps-src cross-toolchain are used + # without npm altering them. + local _node_gyp=/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js + (cd node_modules/better-sqlite3 && node "$_node_gyp" rebuild --arch="$_gyp_arch") + + # 5) Place the compiled binding into the standalone bundle + local _bs3_release=.next/standalone/node_modules/better-sqlite3/build/Release + mkdir -p "$_bs3_release" + cp node_modules/better-sqlite3/build/Release/better_sqlite3.node "$_bs3_release/" + + # 6) Remove arch-specific sharp bundles – upstream sets images.unoptimized=true + # so sharp is not used at runtime; x64 .so files would break aarch64 strip + rm -rf .next/standalone/node_modules/@img + + # 7) Copy pino runtime deps omitted by Next.js static analysis: + # pino-abstract-transport – required by pino's worker thread + # split2 – dep of pino-abstract-transport + # process-warning – dep of pino itself + for _mod in pino-abstract-transport split2 process-warning; do + cp -r "node_modules/$_mod" .next/standalone/node_modules/ + done +} + +do_check() { + npm run test:unit +} + +do_install() { + vmkdir usr/lib/omniroute/.next + + vcopy .next/standalone/. usr/lib/omniroute/.next/standalone + + # Prevent removal of empty Next.js app router dirs by the post-install hook + for _d in \ + .next/standalone/.next/server/app/dashboard \ + .next/standalone/.next/server/app/dashboard/settings \ + .next/standalone/.next/server/app/dashboard/providers; do + touch "${DESTDIR}/usr/lib/omniroute/${_d}/.keep" + done + + cat > "${WRKDIR}/omniroute" <<'EOF' +#!/bin/sh +export PORT="${PORT:-20128}" +export DATA_DIR="${DATA_DIR:-${XDG_DATA_HOME:-${HOME}/.local/share}/omniroute}" +export LOG_TO_FILE="${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 +} +``` + +
+ --- ## 🐳 Docker @@ -886,6 +1018,7 @@ Notes: - Quick Tunnel URLs are temporary and change after every restart. - Managed install currently supports Linux, macOS, and Windows on `x64` / `arm64`. +- Docker images bundle system CA roots and pass them to managed `cloudflared`, which avoids TLS trust failures when the tunnel bootstraps inside the container. - Set `CLOUDFLARED_BIN=/absolute/path/to/cloudflared` if you want OmniRoute to use an existing binary instead of downloading one. **Using Docker Compose with Caddy (HTTPS Auto-TLS):** @@ -983,7 +1116,7 @@ When minimized, OmniRoute lives in your system tray with quick actions: | | MiniMax M2.1 | $0.2/1M | 5-hour rolling | Cheapest option | | | Kimi K2.5 (Moonshot API) 🆕 | Pay-per-use | None | Direct Moonshot API access | | | Kimi K2 | $9/mo flat | 10M tokens/mo | Predictable cost | -| **🆓 FREE** | iFlow | **$0** | Unlimited | 5 models unlimited | +| **🆓 FREE** | Qoder | **$0** | Unlimited | 5 models unlimited | | | Qwen | **$0** | Unlimited | 4 models unlimited | | | Kiro | **$0** | Unlimited | Claude Sonnet/Haiku (AWS Builder) | | | LongCat Flash-Lite 🆕 | **$0** (50M tok/day 🔥) | 1 RPS | Largest free quota on Earth | @@ -998,7 +1131,7 @@ When minimized, OmniRoute lives in your system tray with quick actions: ``` # 🆓 Ultimate Free Stack 2026 — 11 Providers, $0 Forever Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -iFlow (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED +Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed Qwen (qw/) → qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next UNLIMITED @@ -1028,7 +1161,7 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day | `claude-haiku-4.5` | `kr/` | **Unlimited** | No reported daily cap | | `claude-opus-4.6` | `kr/` | **Unlimited** | Latest Opus via Kiro | -### 🟢 IFLOW MODELS (Free OAuth — No Credit Card) +### 🟢 QODER MODELS (Free OAuth — No Credit Card) | Model | Prefix | Limit | Rate Limit | | ------------------ | ------ | ------------- | --------------- | @@ -1127,7 +1260,7 @@ Available free: `qwen3-235b-a22b-instruct-2507` (Qwen3 235B!), `llama-3.1-70b-in > > ``` > Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -> iFlow (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED +> Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED > LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 > Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed > Qwen (qw/) → qwen3-coder models UNLIMITED @@ -1279,21 +1412,22 @@ OmniRoute v2.0 is built as an operational platform, not just a relay proxy. ### ☁️ Deployment & Platform -| Feature | What It Does | -| ----------------------------- | --------------------------------------------------------- | -| 🌐 **Deploy Anywhere** | Localhost, VPS, Docker, Cloud environments | -| 🚇 **Cloudflare Tunnel** 🆕 | One-click Quick Tunnel integration from the dashboard | -| 💾 **Cloud Sync** | Configuration sync via cloud worker | -| 🔄 **Backup/Restore** | Export/import and disaster recovery flows | -| 🧙 **Onboarding Wizard** | First-run guided setup | -| 🔧 **CLI Tools Dashboard** | One-click setup for popular coding tools | -| 🎮 **Model Playground** | Test any provider/model/endpoint from the dashboard | -| 🔏 **CLI Fingerprint Toggle** | Per-provider fingerprint matching in Settings > Security | -| 🌐 **i18n (30 languages)** | Full dashboard + docs language support with RTL coverage | -| 🧹 **Clear All Models** | One-click model list clearing in provider details | -| 👁️ **Sidebar Controls** 🆕 | Hide components and integrations from Appearance Settings | -| 📋 **Issue Templates** | Standardized GitHub templates for bugs and features | -| 📂 **Custom Data Directory** | `DATA_DIR` override for storage location | +| Feature | What It Does | +| ------------------------------ | --------------------------------------------------------------------- | +| 🌐 **Deploy Anywhere** | Localhost, VPS, Docker, Cloud environments | +| 🚇 **Cloudflare Tunnel** 🆕 | One-click Quick Tunnel integration from the dashboard | +| 🔑 **API Key Model Filtering** | Native /v1/models response filtered via assigned Bearer context roles | +| ⚡ **Smart Cache Bypass** | Configurable TTL heuristics and forced refetch controls | +| 🔄 **Backup/Restore** | Export/import and disaster recovery flows | +| 🧙 **Onboarding Wizard** | First-run guided setup | +| 🔧 **CLI Tools Dashboard** | One-click setup for popular coding tools | +| 🎮 **Model Playground** | Test any provider/model/endpoint from the dashboard | +| 🔏 **CLI Fingerprint Toggle** | Per-provider fingerprint matching in Settings > Security | +| 🌐 **i18n (30 languages)** | Full dashboard + docs language support with RTL coverage | +| 🧹 **Clear All Models** | One-click model list clearing in provider details | +| 👁️ **Sidebar Controls** 🆕 | Hide components and integrations from Appearance Settings | +| 📋 **Issue Templates** | Standardized GitHub templates for bugs and features | +| 📂 **Custom Data Directory** | `DATA_DIR` override for storage location | ### Feature Deep Dive @@ -1545,6 +1679,8 @@ Models: **Models:** Access 100+ models from all major providers through a single API key. +**Dashboard behavior:** OpenRouter models are managed from **Available Models**. Manual add, import, and auto-sync all update the same list. +
@@ -1587,11 +1723,11 @@ Models:
🆓 FREE Providers (Emergency Backup) -### iFlow (5 FREE models via OAuth) +### Qoder (5 FREE models via OAuth) ```bash -Dashboard → Connect iFlow -→ iFlow OAuth login +Dashboard → Connect Qoder +→ Qoder OAuth login → Unlimited usage Models: @@ -1789,7 +1925,7 @@ opencode - Check usage stats in Dashboard → Costs - Switch primary model to GLM/MiniMax -- Use free tier (Gemini CLI, iFlow) for non-critical tasks +- Use free tier (Gemini CLI, Qoder) for non-critical tasks **Dashboard/API ports are wrong** @@ -1811,7 +1947,9 @@ opencode **No request logs** -- Set `ENABLE_REQUEST_LOGS=true` in `.env` +- Request artifacts are written to `DATA_DIR/call_logs/` as one JSON file per request +- Enable pipeline capture from Dashboard → Logs → Request Logs if you need detailed per-stage payloads +- Set `APP_LOG_TO_FILE=true` if you also want application console logs in `logs/application/app.log` **Connection test shows "Invalid" for OpenAI-compatible providers** diff --git a/docs/i18n/bg/README.md b/docs/i18n/bg/README.md index 9f5536af37..2161b8281d 100644 --- a/docs/i18n/bg/README.md +++ b/docs/i18n/bg/README.md @@ -4,6 +4,7 @@ --- + ### Never stop coding. Smart routing to **FREE & low-cost AI models** with automatic fallback. _Your universal API proxy — one endpoint, 67+ providers, zero downtime. Now with **MCP & A2A** agent orchestration._ @@ -30,6 +31,30 @@ _Your universal API proxy — one endpoint, 67+ providers, zero downtime. Now wi --- +## Breaking Change: Unified Logging Upgrade + +> [!WARNING] +> **This release changes both the on-disk request log layout and the logging environment variables.** +> +> If you are upgrading an existing instance: +> +> - Request logs now live in `DATA_DIR/call_logs/YYYY-MM-DD/` as **one JSON artifact per request**. +> - The old `DATA_DIR/logs/` session folders and `DATA_DIR/log.txt` summary file are removed. +> - On the first startup after upgrading, OmniRoute creates a safety backup at `DATA_DIR/log_archives/*.zip` before removing the deprecated request log layout. +> - Legacy logging env vars such as `LOG_TO_FILE`, `LOG_FILE_PATH`, `LOG_MAX_FILE_SIZE`, `LOG_RETENTION_DAYS`, `LOG_LEVEL`, `LOG_FORMAT`, `ENABLE_REQUEST_LOGS`, `CALL_LOGS_MAX`, `CALL_LOG_PAYLOAD_MODE`, and `PROXY_LOG_MAX_ENTRIES` are no longer supported. +> - Use the new env model instead: +> - `APP_LOG_TO_FILE` +> - `APP_LOG_FILE_PATH` +> - `APP_LOG_MAX_FILE_SIZE` +> - `APP_LOG_RETENTION_DAYS` +> - `APP_LOG_LEVEL` +> - `APP_LOG_FORMAT` +> - `CALL_LOG_RETENTION_DAYS` +> +> For release details and upgrade notes, see the [CHANGELOG](CHANGELOG.md). + +--- + ## 🆕 What's New in v3.0.0 > **Upgrading from v2.9.5?** — See the [full CHANGELOG](CHANGELOG.md#300--2026-03-22-release-candidate--not-yet-merged-to-main) for all changes. @@ -203,7 +228,7 @@ When opening an issue, please run the system-info command and attach the generat npm run system-info ``` -This generates a `system-info.txt` with your Node.js version, OmniRoute version, OS details, installed CLI tools (iflow, gemini, claude, codex, antigravity, droid, etc.), Docker/PM2 status, and system packages — everything we need to reproduce your issue quickly. Attach the file directly to your GitHub issue. +This generates a `system-info.txt` with your Node.js version, OmniRoute version, OS details, installed CLI tools (qoder, gemini, claude, codex, antigravity, droid, etc.), Docker/PM2 status, and system packages — everything we need to reproduce your issue quickly. Attach the file directly to your GitHub issue. --- @@ -229,7 +254,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, │ ↓ budget limit ├─→ [Tier 3: CHEAP] GLM ($0.6/1M), MiniMax ($0.2/1M) │ ↓ budget limit - └─→ [Tier 4: FREE] iFlow, Qwen, Kiro (unlimited) + └─→ [Tier 4: FREE] Qoder, Qwen, Kiro (unlimited) Result: Never stop coding, minimal cost ``` @@ -296,7 +321,7 @@ Not everyone can pay $20–200/month for AI subscriptions. Students, devs from e **How OmniRoute solves it:** -- **Free Tier Providers Built-in** — Native support for 100% free providers: iFlow (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) +- **Free Tier Providers Built-in** — Native support for 100% free providers: Qoder (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) - **Ollama Cloud** — Cloud-hosted Ollama models at `api.ollama.com` with free "Light usage" tier; use `ollamacloud/` prefix - **Free-Only Combos** — Chain `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime - **NVIDIA NIM Free Access** — ~40 RPM dev-forever free access to 70+ models at build.nvidia.com (transitioning from credits to pure rate limits) @@ -360,7 +385,7 @@ Claude Code, Codex, Gemini CLI, Copilot — all use OAuth 2.0 with expiring toke **How OmniRoute solves it:** - **Auto Token Refresh** — OAuth tokens refresh in background before expiration -- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, iFlow +- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder - **Multi-Account OAuth** — Multiple accounts per provider via JWT/ID token extraction - **OAuth LAN/Remote Fix** — Private IP detection for `redirect_uri` + manual URL mode for remote servers - **OAuth Behind Nginx** — Uses `window.location.origin` for reverse proxy compatibility @@ -413,7 +438,7 @@ Installing, configuring, and maintaining an AI proxy across different environmen - **Electron Desktop App** — Native app for Windows/macOS/Linux with system tray, auto-start, offline mode - **Split-Port Mode** — API and Dashboard on separate ports for advanced scenarios (reverse proxy, container networking) - **Cloud Sync** — Config synchronization across devices via Cloudflare Workers -- **DB Backups** — Automatic backup, restore, export and import of all settings +- **DB Backups** — Automatic backup, restore, export and import of all settings, with `DISABLE_SQLITE_AUTO_BACKUP` for externally managed backups
@@ -737,7 +762,7 @@ Outcome: deep fallback depth for deadline-critical workloads | Step | Action | Providers Unlocked | | ---- | -------------------------------------------------- | ------------------------------------------------------------------ | | 1 | Connect **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — **unlimited** | -| 2 | Connect **iFlow** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | +| 2 | Connect **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | | 3 | Connect **Qwen** (Device Code) | qwen3-coder-plus, qwen3-coder-flash... — **unlimited** | | 4 | Connect **Gemini CLI** (Google OAuth) | gemini-3-flash, gemini-2.5-pro — **180K/mo free** | | 5 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | @@ -838,6 +863,113 @@ npm install PORT=20128 DASHBOARD_PORT=20129 NEXT_PUBLIC_BASE_URL=http://localhost:20129 npm run dev ``` +
+Void Linux (`xbps-src` template) + +For Void Linux users, you can build a native package using `xbps-src`. Save this block as `srcpkgs/omniroute/template`: + +```bash +# Template file for 'omniroute' +pkgname=omniroute +version=3.4.1 +revision=1 +hostmakedepends="nodejs python3 make" +depends="openssl" +short_desc="Universal AI gateway with smart routing for multiple LLM providers" +maintainer="zenobit " +license="MIT" +homepage="https://github.com/diegosouzapw/OmniRoute" +distfiles="https://github.com/diegosouzapw/OmniRoute/archive/refs/tags/v${version}.tar.gz" +checksum=009400afee90a9f32599d8fe734145cfd84098140b7287990183dde45ae2245b +system_accounts="_omniroute" +omniroute_homedir="/var/lib/omniroute" +export NODE_ENV=production +export npm_config_engine_strict=false +export npm_config_loglevel=error +export npm_config_fund=false +export npm_config_audit=false + +do_build() { + # Determine target CPU arch for node-gyp + local _gyp_arch + case "$XBPS_TARGET_MACHINE" in + aarch64*) _gyp_arch=arm64 ;; + armv7*|armv6*) _gyp_arch=arm ;; + i686*) _gyp_arch=ia32 ;; + *) _gyp_arch=x64 ;; + esac + + # 1) Install all deps – skip scripts (no network in do_build, native modules + # compiled separately below; better-sqlite3 is serverExternalPackage so + # Next.js does not execute it during next build) + NODE_ENV=development npm ci --ignore-scripts + + # 2) Build the Next.js standalone bundle + npm run build + + # 3) Copy static assets into standalone + cp -r .next/static .next/standalone/.next/static + [ -d public ] && cp -r public .next/standalone/public || true + + # 4) Compile better-sqlite3 native binding for the target architecture. + # Use node-gyp directly so CC/CXX from xbps-src cross-toolchain are used + # without npm altering them. + local _node_gyp=/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js + (cd node_modules/better-sqlite3 && node "$_node_gyp" rebuild --arch="$_gyp_arch") + + # 5) Place the compiled binding into the standalone bundle + local _bs3_release=.next/standalone/node_modules/better-sqlite3/build/Release + mkdir -p "$_bs3_release" + cp node_modules/better-sqlite3/build/Release/better_sqlite3.node "$_bs3_release/" + + # 6) Remove arch-specific sharp bundles – upstream sets images.unoptimized=true + # so sharp is not used at runtime; x64 .so files would break aarch64 strip + rm -rf .next/standalone/node_modules/@img + + # 7) Copy pino runtime deps omitted by Next.js static analysis: + # pino-abstract-transport – required by pino's worker thread + # split2 – dep of pino-abstract-transport + # process-warning – dep of pino itself + for _mod in pino-abstract-transport split2 process-warning; do + cp -r "node_modules/$_mod" .next/standalone/node_modules/ + done +} + +do_check() { + npm run test:unit +} + +do_install() { + vmkdir usr/lib/omniroute/.next + + vcopy .next/standalone/. usr/lib/omniroute/.next/standalone + + # Prevent removal of empty Next.js app router dirs by the post-install hook + for _d in \ + .next/standalone/.next/server/app/dashboard \ + .next/standalone/.next/server/app/dashboard/settings \ + .next/standalone/.next/server/app/dashboard/providers; do + touch "${DESTDIR}/usr/lib/omniroute/${_d}/.keep" + done + + cat > "${WRKDIR}/omniroute" <<'EOF' +#!/bin/sh +export PORT="${PORT:-20128}" +export DATA_DIR="${DATA_DIR:-${XDG_DATA_HOME:-${HOME}/.local/share}/omniroute}" +export LOG_TO_FILE="${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 +} +``` + +
+ --- ## 🐳 Docker @@ -886,6 +1018,7 @@ Notes: - Quick Tunnel URLs are temporary and change after every restart. - Managed install currently supports Linux, macOS, and Windows on `x64` / `arm64`. +- Docker images bundle system CA roots and pass them to managed `cloudflared`, which avoids TLS trust failures when the tunnel bootstraps inside the container. - Set `CLOUDFLARED_BIN=/absolute/path/to/cloudflared` if you want OmniRoute to use an existing binary instead of downloading one. **Using Docker Compose with Caddy (HTTPS Auto-TLS):** @@ -983,7 +1116,7 @@ When minimized, OmniRoute lives in your system tray with quick actions: | | MiniMax M2.1 | $0.2/1M | 5-hour rolling | Cheapest option | | | Kimi K2.5 (Moonshot API) 🆕 | Pay-per-use | None | Direct Moonshot API access | | | Kimi K2 | $9/mo flat | 10M tokens/mo | Predictable cost | -| **🆓 FREE** | iFlow | **$0** | Unlimited | 5 models unlimited | +| **🆓 FREE** | Qoder | **$0** | Unlimited | 5 models unlimited | | | Qwen | **$0** | Unlimited | 4 models unlimited | | | Kiro | **$0** | Unlimited | Claude Sonnet/Haiku (AWS Builder) | | | LongCat Flash-Lite 🆕 | **$0** (50M tok/day 🔥) | 1 RPS | Largest free quota on Earth | @@ -998,7 +1131,7 @@ When minimized, OmniRoute lives in your system tray with quick actions: ``` # 🆓 Ultimate Free Stack 2026 — 11 Providers, $0 Forever Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -iFlow (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED +Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed Qwen (qw/) → qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next UNLIMITED @@ -1028,7 +1161,7 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day | `claude-haiku-4.5` | `kr/` | **Unlimited** | No reported daily cap | | `claude-opus-4.6` | `kr/` | **Unlimited** | Latest Opus via Kiro | -### 🟢 IFLOW MODELS (Free OAuth — No Credit Card) +### 🟢 QODER MODELS (Free OAuth — No Credit Card) | Model | Prefix | Limit | Rate Limit | | ------------------ | ------ | ------------- | --------------- | @@ -1127,7 +1260,7 @@ Available free: `qwen3-235b-a22b-instruct-2507` (Qwen3 235B!), `llama-3.1-70b-in > > ``` > Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -> iFlow (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED +> Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED > LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 > Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed > Qwen (qw/) → qwen3-coder models UNLIMITED @@ -1279,21 +1412,22 @@ OmniRoute v2.0 is built as an operational platform, not just a relay proxy. ### ☁️ Deployment & Platform -| Feature | What It Does | -| ----------------------------- | --------------------------------------------------------- | -| 🌐 **Deploy Anywhere** | Localhost, VPS, Docker, Cloud environments | -| 🚇 **Cloudflare Tunnel** 🆕 | One-click Quick Tunnel integration from the dashboard | -| 💾 **Cloud Sync** | Configuration sync via cloud worker | -| 🔄 **Backup/Restore** | Export/import and disaster recovery flows | -| 🧙 **Onboarding Wizard** | First-run guided setup | -| 🔧 **CLI Tools Dashboard** | One-click setup for popular coding tools | -| 🎮 **Model Playground** | Test any provider/model/endpoint from the dashboard | -| 🔏 **CLI Fingerprint Toggle** | Per-provider fingerprint matching in Settings > Security | -| 🌐 **i18n (30 languages)** | Full dashboard + docs language support with RTL coverage | -| 🧹 **Clear All Models** | One-click model list clearing in provider details | -| 👁️ **Sidebar Controls** 🆕 | Hide components and integrations from Appearance Settings | -| 📋 **Issue Templates** | Standardized GitHub templates for bugs and features | -| 📂 **Custom Data Directory** | `DATA_DIR` override for storage location | +| Feature | What It Does | +| ------------------------------ | --------------------------------------------------------------------- | +| 🌐 **Deploy Anywhere** | Localhost, VPS, Docker, Cloud environments | +| 🚇 **Cloudflare Tunnel** 🆕 | One-click Quick Tunnel integration from the dashboard | +| 🔑 **API Key Model Filtering** | Native /v1/models response filtered via assigned Bearer context roles | +| ⚡ **Smart Cache Bypass** | Configurable TTL heuristics and forced refetch controls | +| 🔄 **Backup/Restore** | Export/import and disaster recovery flows | +| 🧙 **Onboarding Wizard** | First-run guided setup | +| 🔧 **CLI Tools Dashboard** | One-click setup for popular coding tools | +| 🎮 **Model Playground** | Test any provider/model/endpoint from the dashboard | +| 🔏 **CLI Fingerprint Toggle** | Per-provider fingerprint matching in Settings > Security | +| 🌐 **i18n (30 languages)** | Full dashboard + docs language support with RTL coverage | +| 🧹 **Clear All Models** | One-click model list clearing in provider details | +| 👁️ **Sidebar Controls** 🆕 | Hide components and integrations from Appearance Settings | +| 📋 **Issue Templates** | Standardized GitHub templates for bugs and features | +| 📂 **Custom Data Directory** | `DATA_DIR` override for storage location | ### Feature Deep Dive @@ -1545,6 +1679,8 @@ Models: **Models:** Access 100+ models from all major providers through a single API key. +**Dashboard behavior:** OpenRouter models are managed from **Available Models**. Manual add, import, and auto-sync all update the same list. +
@@ -1587,11 +1723,11 @@ Models:
🆓 FREE Providers (Emergency Backup) -### iFlow (5 FREE models via OAuth) +### Qoder (5 FREE models via OAuth) ```bash -Dashboard → Connect iFlow -→ iFlow OAuth login +Dashboard → Connect Qoder +→ Qoder OAuth login → Unlimited usage Models: @@ -1789,7 +1925,7 @@ opencode - Check usage stats in Dashboard → Costs - Switch primary model to GLM/MiniMax -- Use free tier (Gemini CLI, iFlow) for non-critical tasks +- Use free tier (Gemini CLI, Qoder) for non-critical tasks **Dashboard/API ports are wrong** @@ -1811,7 +1947,9 @@ opencode **No request logs** -- Set `ENABLE_REQUEST_LOGS=true` in `.env` +- Request artifacts are written to `DATA_DIR/call_logs/` as one JSON file per request +- Enable pipeline capture from Dashboard → Logs → Request Logs if you need detailed per-stage payloads +- Set `APP_LOG_TO_FILE=true` if you also want application console logs in `logs/application/app.log` **Connection test shows "Invalid" for OpenAI-compatible providers** diff --git a/docs/i18n/da/README.md b/docs/i18n/da/README.md index d98ad2b298..c1f4b2f43a 100644 --- a/docs/i18n/da/README.md +++ b/docs/i18n/da/README.md @@ -4,6 +4,7 @@ --- + ### Never stop coding. Smart routing to **FREE & low-cost AI models** with automatic fallback. _Your universal API proxy — one endpoint, 67+ providers, zero downtime. Now with **MCP & A2A** agent orchestration._ @@ -30,6 +31,30 @@ _Your universal API proxy — one endpoint, 67+ providers, zero downtime. Now wi --- +## Breaking Change: Unified Logging Upgrade + +> [!WARNING] +> **This release changes both the on-disk request log layout and the logging environment variables.** +> +> If you are upgrading an existing instance: +> +> - Request logs now live in `DATA_DIR/call_logs/YYYY-MM-DD/` as **one JSON artifact per request**. +> - The old `DATA_DIR/logs/` session folders and `DATA_DIR/log.txt` summary file are removed. +> - On the first startup after upgrading, OmniRoute creates a safety backup at `DATA_DIR/log_archives/*.zip` before removing the deprecated request log layout. +> - Legacy logging env vars such as `LOG_TO_FILE`, `LOG_FILE_PATH`, `LOG_MAX_FILE_SIZE`, `LOG_RETENTION_DAYS`, `LOG_LEVEL`, `LOG_FORMAT`, `ENABLE_REQUEST_LOGS`, `CALL_LOGS_MAX`, `CALL_LOG_PAYLOAD_MODE`, and `PROXY_LOG_MAX_ENTRIES` are no longer supported. +> - Use the new env model instead: +> - `APP_LOG_TO_FILE` +> - `APP_LOG_FILE_PATH` +> - `APP_LOG_MAX_FILE_SIZE` +> - `APP_LOG_RETENTION_DAYS` +> - `APP_LOG_LEVEL` +> - `APP_LOG_FORMAT` +> - `CALL_LOG_RETENTION_DAYS` +> +> For release details and upgrade notes, see the [CHANGELOG](CHANGELOG.md). + +--- + ## 🆕 What's New in v3.0.0 > **Upgrading from v2.9.5?** — See the [full CHANGELOG](CHANGELOG.md#300--2026-03-22-release-candidate--not-yet-merged-to-main) for all changes. @@ -203,7 +228,7 @@ When opening an issue, please run the system-info command and attach the generat npm run system-info ``` -This generates a `system-info.txt` with your Node.js version, OmniRoute version, OS details, installed CLI tools (iflow, gemini, claude, codex, antigravity, droid, etc.), Docker/PM2 status, and system packages — everything we need to reproduce your issue quickly. Attach the file directly to your GitHub issue. +This generates a `system-info.txt` with your Node.js version, OmniRoute version, OS details, installed CLI tools (qoder, gemini, claude, codex, antigravity, droid, etc.), Docker/PM2 status, and system packages — everything we need to reproduce your issue quickly. Attach the file directly to your GitHub issue. --- @@ -229,7 +254,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, │ ↓ budget limit ├─→ [Tier 3: CHEAP] GLM ($0.6/1M), MiniMax ($0.2/1M) │ ↓ budget limit - └─→ [Tier 4: FREE] iFlow, Qwen, Kiro (unlimited) + └─→ [Tier 4: FREE] Qoder, Qwen, Kiro (unlimited) Result: Never stop coding, minimal cost ``` @@ -296,7 +321,7 @@ Not everyone can pay $20–200/month for AI subscriptions. Students, devs from e **How OmniRoute solves it:** -- **Free Tier Providers Built-in** — Native support for 100% free providers: iFlow (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) +- **Free Tier Providers Built-in** — Native support for 100% free providers: Qoder (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) - **Ollama Cloud** — Cloud-hosted Ollama models at `api.ollama.com` with free "Light usage" tier; use `ollamacloud/` prefix - **Free-Only Combos** — Chain `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime - **NVIDIA NIM Free Access** — ~40 RPM dev-forever free access to 70+ models at build.nvidia.com (transitioning from credits to pure rate limits) @@ -360,7 +385,7 @@ Claude Code, Codex, Gemini CLI, Copilot — all use OAuth 2.0 with expiring toke **How OmniRoute solves it:** - **Auto Token Refresh** — OAuth tokens refresh in background before expiration -- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, iFlow +- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder - **Multi-Account OAuth** — Multiple accounts per provider via JWT/ID token extraction - **OAuth LAN/Remote Fix** — Private IP detection for `redirect_uri` + manual URL mode for remote servers - **OAuth Behind Nginx** — Uses `window.location.origin` for reverse proxy compatibility @@ -413,7 +438,7 @@ Installing, configuring, and maintaining an AI proxy across different environmen - **Electron Desktop App** — Native app for Windows/macOS/Linux with system tray, auto-start, offline mode - **Split-Port Mode** — API and Dashboard on separate ports for advanced scenarios (reverse proxy, container networking) - **Cloud Sync** — Config synchronization across devices via Cloudflare Workers -- **DB Backups** — Automatic backup, restore, export and import of all settings +- **DB Backups** — Automatic backup, restore, export and import of all settings, with `DISABLE_SQLITE_AUTO_BACKUP` for externally managed backups
@@ -737,7 +762,7 @@ Outcome: deep fallback depth for deadline-critical workloads | Step | Action | Providers Unlocked | | ---- | -------------------------------------------------- | ------------------------------------------------------------------ | | 1 | Connect **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — **unlimited** | -| 2 | Connect **iFlow** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | +| 2 | Connect **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | | 3 | Connect **Qwen** (Device Code) | qwen3-coder-plus, qwen3-coder-flash... — **unlimited** | | 4 | Connect **Gemini CLI** (Google OAuth) | gemini-3-flash, gemini-2.5-pro — **180K/mo free** | | 5 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | @@ -838,6 +863,113 @@ npm install PORT=20128 DASHBOARD_PORT=20129 NEXT_PUBLIC_BASE_URL=http://localhost:20129 npm run dev ``` +
+Void Linux (`xbps-src` template) + +For Void Linux users, you can build a native package using `xbps-src`. Save this block as `srcpkgs/omniroute/template`: + +```bash +# Template file for 'omniroute' +pkgname=omniroute +version=3.4.1 +revision=1 +hostmakedepends="nodejs python3 make" +depends="openssl" +short_desc="Universal AI gateway with smart routing for multiple LLM providers" +maintainer="zenobit " +license="MIT" +homepage="https://github.com/diegosouzapw/OmniRoute" +distfiles="https://github.com/diegosouzapw/OmniRoute/archive/refs/tags/v${version}.tar.gz" +checksum=009400afee90a9f32599d8fe734145cfd84098140b7287990183dde45ae2245b +system_accounts="_omniroute" +omniroute_homedir="/var/lib/omniroute" +export NODE_ENV=production +export npm_config_engine_strict=false +export npm_config_loglevel=error +export npm_config_fund=false +export npm_config_audit=false + +do_build() { + # Determine target CPU arch for node-gyp + local _gyp_arch + case "$XBPS_TARGET_MACHINE" in + aarch64*) _gyp_arch=arm64 ;; + armv7*|armv6*) _gyp_arch=arm ;; + i686*) _gyp_arch=ia32 ;; + *) _gyp_arch=x64 ;; + esac + + # 1) Install all deps – skip scripts (no network in do_build, native modules + # compiled separately below; better-sqlite3 is serverExternalPackage so + # Next.js does not execute it during next build) + NODE_ENV=development npm ci --ignore-scripts + + # 2) Build the Next.js standalone bundle + npm run build + + # 3) Copy static assets into standalone + cp -r .next/static .next/standalone/.next/static + [ -d public ] && cp -r public .next/standalone/public || true + + # 4) Compile better-sqlite3 native binding for the target architecture. + # Use node-gyp directly so CC/CXX from xbps-src cross-toolchain are used + # without npm altering them. + local _node_gyp=/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js + (cd node_modules/better-sqlite3 && node "$_node_gyp" rebuild --arch="$_gyp_arch") + + # 5) Place the compiled binding into the standalone bundle + local _bs3_release=.next/standalone/node_modules/better-sqlite3/build/Release + mkdir -p "$_bs3_release" + cp node_modules/better-sqlite3/build/Release/better_sqlite3.node "$_bs3_release/" + + # 6) Remove arch-specific sharp bundles – upstream sets images.unoptimized=true + # so sharp is not used at runtime; x64 .so files would break aarch64 strip + rm -rf .next/standalone/node_modules/@img + + # 7) Copy pino runtime deps omitted by Next.js static analysis: + # pino-abstract-transport – required by pino's worker thread + # split2 – dep of pino-abstract-transport + # process-warning – dep of pino itself + for _mod in pino-abstract-transport split2 process-warning; do + cp -r "node_modules/$_mod" .next/standalone/node_modules/ + done +} + +do_check() { + npm run test:unit +} + +do_install() { + vmkdir usr/lib/omniroute/.next + + vcopy .next/standalone/. usr/lib/omniroute/.next/standalone + + # Prevent removal of empty Next.js app router dirs by the post-install hook + for _d in \ + .next/standalone/.next/server/app/dashboard \ + .next/standalone/.next/server/app/dashboard/settings \ + .next/standalone/.next/server/app/dashboard/providers; do + touch "${DESTDIR}/usr/lib/omniroute/${_d}/.keep" + done + + cat > "${WRKDIR}/omniroute" <<'EOF' +#!/bin/sh +export PORT="${PORT:-20128}" +export DATA_DIR="${DATA_DIR:-${XDG_DATA_HOME:-${HOME}/.local/share}/omniroute}" +export LOG_TO_FILE="${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 +} +``` + +
+ --- ## 🐳 Docker @@ -886,6 +1018,7 @@ Notes: - Quick Tunnel URLs are temporary and change after every restart. - Managed install currently supports Linux, macOS, and Windows on `x64` / `arm64`. +- Docker images bundle system CA roots and pass them to managed `cloudflared`, which avoids TLS trust failures when the tunnel bootstraps inside the container. - Set `CLOUDFLARED_BIN=/absolute/path/to/cloudflared` if you want OmniRoute to use an existing binary instead of downloading one. **Using Docker Compose with Caddy (HTTPS Auto-TLS):** @@ -983,7 +1116,7 @@ When minimized, OmniRoute lives in your system tray with quick actions: | | MiniMax M2.1 | $0.2/1M | 5-hour rolling | Cheapest option | | | Kimi K2.5 (Moonshot API) 🆕 | Pay-per-use | None | Direct Moonshot API access | | | Kimi K2 | $9/mo flat | 10M tokens/mo | Predictable cost | -| **🆓 FREE** | iFlow | **$0** | Unlimited | 5 models unlimited | +| **🆓 FREE** | Qoder | **$0** | Unlimited | 5 models unlimited | | | Qwen | **$0** | Unlimited | 4 models unlimited | | | Kiro | **$0** | Unlimited | Claude Sonnet/Haiku (AWS Builder) | | | LongCat Flash-Lite 🆕 | **$0** (50M tok/day 🔥) | 1 RPS | Largest free quota on Earth | @@ -998,7 +1131,7 @@ When minimized, OmniRoute lives in your system tray with quick actions: ``` # 🆓 Ultimate Free Stack 2026 — 11 Providers, $0 Forever Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -iFlow (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED +Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed Qwen (qw/) → qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next UNLIMITED @@ -1028,7 +1161,7 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day | `claude-haiku-4.5` | `kr/` | **Unlimited** | No reported daily cap | | `claude-opus-4.6` | `kr/` | **Unlimited** | Latest Opus via Kiro | -### 🟢 IFLOW MODELS (Free OAuth — No Credit Card) +### 🟢 QODER MODELS (Free OAuth — No Credit Card) | Model | Prefix | Limit | Rate Limit | | ------------------ | ------ | ------------- | --------------- | @@ -1127,7 +1260,7 @@ Available free: `qwen3-235b-a22b-instruct-2507` (Qwen3 235B!), `llama-3.1-70b-in > > ``` > Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -> iFlow (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED +> Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED > LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 > Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed > Qwen (qw/) → qwen3-coder models UNLIMITED @@ -1279,21 +1412,22 @@ OmniRoute v2.0 is built as an operational platform, not just a relay proxy. ### ☁️ Deployment & Platform -| Feature | What It Does | -| ----------------------------- | --------------------------------------------------------- | -| 🌐 **Deploy Anywhere** | Localhost, VPS, Docker, Cloud environments | -| 🚇 **Cloudflare Tunnel** 🆕 | One-click Quick Tunnel integration from the dashboard | -| 💾 **Cloud Sync** | Configuration sync via cloud worker | -| 🔄 **Backup/Restore** | Export/import and disaster recovery flows | -| 🧙 **Onboarding Wizard** | First-run guided setup | -| 🔧 **CLI Tools Dashboard** | One-click setup for popular coding tools | -| 🎮 **Model Playground** | Test any provider/model/endpoint from the dashboard | -| 🔏 **CLI Fingerprint Toggle** | Per-provider fingerprint matching in Settings > Security | -| 🌐 **i18n (30 languages)** | Full dashboard + docs language support with RTL coverage | -| 🧹 **Clear All Models** | One-click model list clearing in provider details | -| 👁️ **Sidebar Controls** 🆕 | Hide components and integrations from Appearance Settings | -| 📋 **Issue Templates** | Standardized GitHub templates for bugs and features | -| 📂 **Custom Data Directory** | `DATA_DIR` override for storage location | +| Feature | What It Does | +| ------------------------------ | --------------------------------------------------------------------- | +| 🌐 **Deploy Anywhere** | Localhost, VPS, Docker, Cloud environments | +| 🚇 **Cloudflare Tunnel** 🆕 | One-click Quick Tunnel integration from the dashboard | +| 🔑 **API Key Model Filtering** | Native /v1/models response filtered via assigned Bearer context roles | +| ⚡ **Smart Cache Bypass** | Configurable TTL heuristics and forced refetch controls | +| 🔄 **Backup/Restore** | Export/import and disaster recovery flows | +| 🧙 **Onboarding Wizard** | First-run guided setup | +| 🔧 **CLI Tools Dashboard** | One-click setup for popular coding tools | +| 🎮 **Model Playground** | Test any provider/model/endpoint from the dashboard | +| 🔏 **CLI Fingerprint Toggle** | Per-provider fingerprint matching in Settings > Security | +| 🌐 **i18n (30 languages)** | Full dashboard + docs language support with RTL coverage | +| 🧹 **Clear All Models** | One-click model list clearing in provider details | +| 👁️ **Sidebar Controls** 🆕 | Hide components and integrations from Appearance Settings | +| 📋 **Issue Templates** | Standardized GitHub templates for bugs and features | +| 📂 **Custom Data Directory** | `DATA_DIR` override for storage location | ### Feature Deep Dive @@ -1545,6 +1679,8 @@ Models: **Models:** Access 100+ models from all major providers through a single API key. +**Dashboard behavior:** OpenRouter models are managed from **Available Models**. Manual add, import, and auto-sync all update the same list. +
@@ -1587,11 +1723,11 @@ Models:
🆓 FREE Providers (Emergency Backup) -### iFlow (5 FREE models via OAuth) +### Qoder (5 FREE models via OAuth) ```bash -Dashboard → Connect iFlow -→ iFlow OAuth login +Dashboard → Connect Qoder +→ Qoder OAuth login → Unlimited usage Models: @@ -1789,7 +1925,7 @@ opencode - Check usage stats in Dashboard → Costs - Switch primary model to GLM/MiniMax -- Use free tier (Gemini CLI, iFlow) for non-critical tasks +- Use free tier (Gemini CLI, Qoder) for non-critical tasks **Dashboard/API ports are wrong** @@ -1811,7 +1947,9 @@ opencode **No request logs** -- Set `ENABLE_REQUEST_LOGS=true` in `.env` +- Request artifacts are written to `DATA_DIR/call_logs/` as one JSON file per request +- Enable pipeline capture from Dashboard → Logs → Request Logs if you need detailed per-stage payloads +- Set `APP_LOG_TO_FILE=true` if you also want application console logs in `logs/application/app.log` **Connection test shows "Invalid" for OpenAI-compatible providers** diff --git a/docs/i18n/de/README.md b/docs/i18n/de/README.md index 74aeae71de..63ff06475d 100644 --- a/docs/i18n/de/README.md +++ b/docs/i18n/de/README.md @@ -4,6 +4,7 @@ --- + ### Never stop coding. Smart routing to **FREE & low-cost AI models** with automatic fallback. _Your universal API proxy — one endpoint, 67+ providers, zero downtime. Now with **MCP & A2A** agent orchestration._ @@ -30,6 +31,30 @@ _Your universal API proxy — one endpoint, 67+ providers, zero downtime. Now wi --- +## Breaking Change: Unified Logging Upgrade + +> [!WARNING] +> **This release changes both the on-disk request log layout and the logging environment variables.** +> +> If you are upgrading an existing instance: +> +> - Request logs now live in `DATA_DIR/call_logs/YYYY-MM-DD/` as **one JSON artifact per request**. +> - The old `DATA_DIR/logs/` session folders and `DATA_DIR/log.txt` summary file are removed. +> - On the first startup after upgrading, OmniRoute creates a safety backup at `DATA_DIR/log_archives/*.zip` before removing the deprecated request log layout. +> - Legacy logging env vars such as `LOG_TO_FILE`, `LOG_FILE_PATH`, `LOG_MAX_FILE_SIZE`, `LOG_RETENTION_DAYS`, `LOG_LEVEL`, `LOG_FORMAT`, `ENABLE_REQUEST_LOGS`, `CALL_LOGS_MAX`, `CALL_LOG_PAYLOAD_MODE`, and `PROXY_LOG_MAX_ENTRIES` are no longer supported. +> - Use the new env model instead: +> - `APP_LOG_TO_FILE` +> - `APP_LOG_FILE_PATH` +> - `APP_LOG_MAX_FILE_SIZE` +> - `APP_LOG_RETENTION_DAYS` +> - `APP_LOG_LEVEL` +> - `APP_LOG_FORMAT` +> - `CALL_LOG_RETENTION_DAYS` +> +> For release details and upgrade notes, see the [CHANGELOG](CHANGELOG.md). + +--- + ## 🆕 What's New in v3.0.0 > **Upgrading from v2.9.5?** — See the [full CHANGELOG](CHANGELOG.md#300--2026-03-22-release-candidate--not-yet-merged-to-main) for all changes. @@ -203,7 +228,7 @@ When opening an issue, please run the system-info command and attach the generat npm run system-info ``` -This generates a `system-info.txt` with your Node.js version, OmniRoute version, OS details, installed CLI tools (iflow, gemini, claude, codex, antigravity, droid, etc.), Docker/PM2 status, and system packages — everything we need to reproduce your issue quickly. Attach the file directly to your GitHub issue. +This generates a `system-info.txt` with your Node.js version, OmniRoute version, OS details, installed CLI tools (qoder, gemini, claude, codex, antigravity, droid, etc.), Docker/PM2 status, and system packages — everything we need to reproduce your issue quickly. Attach the file directly to your GitHub issue. --- @@ -229,7 +254,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, │ ↓ budget limit ├─→ [Tier 3: CHEAP] GLM ($0.6/1M), MiniMax ($0.2/1M) │ ↓ budget limit - └─→ [Tier 4: FREE] iFlow, Qwen, Kiro (unlimited) + └─→ [Tier 4: FREE] Qoder, Qwen, Kiro (unlimited) Result: Never stop coding, minimal cost ``` @@ -296,7 +321,7 @@ Not everyone can pay $20–200/month for AI subscriptions. Students, devs from e **How OmniRoute solves it:** -- **Free Tier Providers Built-in** — Native support for 100% free providers: iFlow (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) +- **Free Tier Providers Built-in** — Native support for 100% free providers: Qoder (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) - **Ollama Cloud** — Cloud-hosted Ollama models at `api.ollama.com` with free "Light usage" tier; use `ollamacloud/` prefix - **Free-Only Combos** — Chain `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime - **NVIDIA NIM Free Access** — ~40 RPM dev-forever free access to 70+ models at build.nvidia.com (transitioning from credits to pure rate limits) @@ -360,7 +385,7 @@ Claude Code, Codex, Gemini CLI, Copilot — all use OAuth 2.0 with expiring toke **How OmniRoute solves it:** - **Auto Token Refresh** — OAuth tokens refresh in background before expiration -- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, iFlow +- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder - **Multi-Account OAuth** — Multiple accounts per provider via JWT/ID token extraction - **OAuth LAN/Remote Fix** — Private IP detection for `redirect_uri` + manual URL mode for remote servers - **OAuth Behind Nginx** — Uses `window.location.origin` for reverse proxy compatibility @@ -413,7 +438,7 @@ Installing, configuring, and maintaining an AI proxy across different environmen - **Electron Desktop App** — Native app for Windows/macOS/Linux with system tray, auto-start, offline mode - **Split-Port Mode** — API and Dashboard on separate ports for advanced scenarios (reverse proxy, container networking) - **Cloud Sync** — Config synchronization across devices via Cloudflare Workers -- **DB Backups** — Automatic backup, restore, export and import of all settings +- **DB Backups** — Automatic backup, restore, export and import of all settings, with `DISABLE_SQLITE_AUTO_BACKUP` for externally managed backups
@@ -737,7 +762,7 @@ Outcome: deep fallback depth for deadline-critical workloads | Step | Action | Providers Unlocked | | ---- | -------------------------------------------------- | ------------------------------------------------------------------ | | 1 | Connect **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — **unlimited** | -| 2 | Connect **iFlow** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | +| 2 | Connect **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | | 3 | Connect **Qwen** (Device Code) | qwen3-coder-plus, qwen3-coder-flash... — **unlimited** | | 4 | Connect **Gemini CLI** (Google OAuth) | gemini-3-flash, gemini-2.5-pro — **180K/mo free** | | 5 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | @@ -838,6 +863,113 @@ npm install PORT=20128 DASHBOARD_PORT=20129 NEXT_PUBLIC_BASE_URL=http://localhost:20129 npm run dev ``` +
+Void Linux (`xbps-src` template) + +For Void Linux users, you can build a native package using `xbps-src`. Save this block as `srcpkgs/omniroute/template`: + +```bash +# Template file for 'omniroute' +pkgname=omniroute +version=3.4.1 +revision=1 +hostmakedepends="nodejs python3 make" +depends="openssl" +short_desc="Universal AI gateway with smart routing for multiple LLM providers" +maintainer="zenobit " +license="MIT" +homepage="https://github.com/diegosouzapw/OmniRoute" +distfiles="https://github.com/diegosouzapw/OmniRoute/archive/refs/tags/v${version}.tar.gz" +checksum=009400afee90a9f32599d8fe734145cfd84098140b7287990183dde45ae2245b +system_accounts="_omniroute" +omniroute_homedir="/var/lib/omniroute" +export NODE_ENV=production +export npm_config_engine_strict=false +export npm_config_loglevel=error +export npm_config_fund=false +export npm_config_audit=false + +do_build() { + # Determine target CPU arch for node-gyp + local _gyp_arch + case "$XBPS_TARGET_MACHINE" in + aarch64*) _gyp_arch=arm64 ;; + armv7*|armv6*) _gyp_arch=arm ;; + i686*) _gyp_arch=ia32 ;; + *) _gyp_arch=x64 ;; + esac + + # 1) Install all deps – skip scripts (no network in do_build, native modules + # compiled separately below; better-sqlite3 is serverExternalPackage so + # Next.js does not execute it during next build) + NODE_ENV=development npm ci --ignore-scripts + + # 2) Build the Next.js standalone bundle + npm run build + + # 3) Copy static assets into standalone + cp -r .next/static .next/standalone/.next/static + [ -d public ] && cp -r public .next/standalone/public || true + + # 4) Compile better-sqlite3 native binding for the target architecture. + # Use node-gyp directly so CC/CXX from xbps-src cross-toolchain are used + # without npm altering them. + local _node_gyp=/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js + (cd node_modules/better-sqlite3 && node "$_node_gyp" rebuild --arch="$_gyp_arch") + + # 5) Place the compiled binding into the standalone bundle + local _bs3_release=.next/standalone/node_modules/better-sqlite3/build/Release + mkdir -p "$_bs3_release" + cp node_modules/better-sqlite3/build/Release/better_sqlite3.node "$_bs3_release/" + + # 6) Remove arch-specific sharp bundles – upstream sets images.unoptimized=true + # so sharp is not used at runtime; x64 .so files would break aarch64 strip + rm -rf .next/standalone/node_modules/@img + + # 7) Copy pino runtime deps omitted by Next.js static analysis: + # pino-abstract-transport – required by pino's worker thread + # split2 – dep of pino-abstract-transport + # process-warning – dep of pino itself + for _mod in pino-abstract-transport split2 process-warning; do + cp -r "node_modules/$_mod" .next/standalone/node_modules/ + done +} + +do_check() { + npm run test:unit +} + +do_install() { + vmkdir usr/lib/omniroute/.next + + vcopy .next/standalone/. usr/lib/omniroute/.next/standalone + + # Prevent removal of empty Next.js app router dirs by the post-install hook + for _d in \ + .next/standalone/.next/server/app/dashboard \ + .next/standalone/.next/server/app/dashboard/settings \ + .next/standalone/.next/server/app/dashboard/providers; do + touch "${DESTDIR}/usr/lib/omniroute/${_d}/.keep" + done + + cat > "${WRKDIR}/omniroute" <<'EOF' +#!/bin/sh +export PORT="${PORT:-20128}" +export DATA_DIR="${DATA_DIR:-${XDG_DATA_HOME:-${HOME}/.local/share}/omniroute}" +export LOG_TO_FILE="${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 +} +``` + +
+ --- ## 🐳 Docker @@ -886,6 +1018,7 @@ Notes: - Quick Tunnel URLs are temporary and change after every restart. - Managed install currently supports Linux, macOS, and Windows on `x64` / `arm64`. +- Docker images bundle system CA roots and pass them to managed `cloudflared`, which avoids TLS trust failures when the tunnel bootstraps inside the container. - Set `CLOUDFLARED_BIN=/absolute/path/to/cloudflared` if you want OmniRoute to use an existing binary instead of downloading one. **Using Docker Compose with Caddy (HTTPS Auto-TLS):** @@ -983,7 +1116,7 @@ When minimized, OmniRoute lives in your system tray with quick actions: | | MiniMax M2.1 | $0.2/1M | 5-hour rolling | Cheapest option | | | Kimi K2.5 (Moonshot API) 🆕 | Pay-per-use | None | Direct Moonshot API access | | | Kimi K2 | $9/mo flat | 10M tokens/mo | Predictable cost | -| **🆓 FREE** | iFlow | **$0** | Unlimited | 5 models unlimited | +| **🆓 FREE** | Qoder | **$0** | Unlimited | 5 models unlimited | | | Qwen | **$0** | Unlimited | 4 models unlimited | | | Kiro | **$0** | Unlimited | Claude Sonnet/Haiku (AWS Builder) | | | LongCat Flash-Lite 🆕 | **$0** (50M tok/day 🔥) | 1 RPS | Largest free quota on Earth | @@ -998,7 +1131,7 @@ When minimized, OmniRoute lives in your system tray with quick actions: ``` # 🆓 Ultimate Free Stack 2026 — 11 Providers, $0 Forever Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -iFlow (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED +Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed Qwen (qw/) → qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next UNLIMITED @@ -1028,7 +1161,7 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day | `claude-haiku-4.5` | `kr/` | **Unlimited** | No reported daily cap | | `claude-opus-4.6` | `kr/` | **Unlimited** | Latest Opus via Kiro | -### 🟢 IFLOW MODELS (Free OAuth — No Credit Card) +### 🟢 QODER MODELS (Free OAuth — No Credit Card) | Model | Prefix | Limit | Rate Limit | | ------------------ | ------ | ------------- | --------------- | @@ -1127,7 +1260,7 @@ Available free: `qwen3-235b-a22b-instruct-2507` (Qwen3 235B!), `llama-3.1-70b-in > > ``` > Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -> iFlow (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED +> Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED > LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 > Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed > Qwen (qw/) → qwen3-coder models UNLIMITED @@ -1279,21 +1412,22 @@ OmniRoute v2.0 is built as an operational platform, not just a relay proxy. ### ☁️ Deployment & Platform -| Feature | What It Does | -| ----------------------------- | --------------------------------------------------------- | -| 🌐 **Deploy Anywhere** | Localhost, VPS, Docker, Cloud environments | -| 🚇 **Cloudflare Tunnel** 🆕 | One-click Quick Tunnel integration from the dashboard | -| 💾 **Cloud Sync** | Configuration sync via cloud worker | -| 🔄 **Backup/Restore** | Export/import and disaster recovery flows | -| 🧙 **Onboarding Wizard** | First-run guided setup | -| 🔧 **CLI Tools Dashboard** | One-click setup for popular coding tools | -| 🎮 **Model Playground** | Test any provider/model/endpoint from the dashboard | -| 🔏 **CLI Fingerprint Toggle** | Per-provider fingerprint matching in Settings > Security | -| 🌐 **i18n (30 languages)** | Full dashboard + docs language support with RTL coverage | -| 🧹 **Clear All Models** | One-click model list clearing in provider details | -| 👁️ **Sidebar Controls** 🆕 | Hide components and integrations from Appearance Settings | -| 📋 **Issue Templates** | Standardized GitHub templates for bugs and features | -| 📂 **Custom Data Directory** | `DATA_DIR` override for storage location | +| Feature | What It Does | +| ------------------------------ | --------------------------------------------------------------------- | +| 🌐 **Deploy Anywhere** | Localhost, VPS, Docker, Cloud environments | +| 🚇 **Cloudflare Tunnel** 🆕 | One-click Quick Tunnel integration from the dashboard | +| 🔑 **API Key Model Filtering** | Native /v1/models response filtered via assigned Bearer context roles | +| ⚡ **Smart Cache Bypass** | Configurable TTL heuristics and forced refetch controls | +| 🔄 **Backup/Restore** | Export/import and disaster recovery flows | +| 🧙 **Onboarding Wizard** | First-run guided setup | +| 🔧 **CLI Tools Dashboard** | One-click setup for popular coding tools | +| 🎮 **Model Playground** | Test any provider/model/endpoint from the dashboard | +| 🔏 **CLI Fingerprint Toggle** | Per-provider fingerprint matching in Settings > Security | +| 🌐 **i18n (30 languages)** | Full dashboard + docs language support with RTL coverage | +| 🧹 **Clear All Models** | One-click model list clearing in provider details | +| 👁️ **Sidebar Controls** 🆕 | Hide components and integrations from Appearance Settings | +| 📋 **Issue Templates** | Standardized GitHub templates for bugs and features | +| 📂 **Custom Data Directory** | `DATA_DIR` override for storage location | ### Feature Deep Dive @@ -1545,6 +1679,8 @@ Models: **Models:** Access 100+ models from all major providers through a single API key. +**Dashboard behavior:** OpenRouter models are managed from **Available Models**. Manual add, import, and auto-sync all update the same list. +
@@ -1587,11 +1723,11 @@ Models:
🆓 FREE Providers (Emergency Backup) -### iFlow (5 FREE models via OAuth) +### Qoder (5 FREE models via OAuth) ```bash -Dashboard → Connect iFlow -→ iFlow OAuth login +Dashboard → Connect Qoder +→ Qoder OAuth login → Unlimited usage Models: @@ -1789,7 +1925,7 @@ opencode - Check usage stats in Dashboard → Costs - Switch primary model to GLM/MiniMax -- Use free tier (Gemini CLI, iFlow) for non-critical tasks +- Use free tier (Gemini CLI, Qoder) for non-critical tasks **Dashboard/API ports are wrong** @@ -1811,7 +1947,9 @@ opencode **No request logs** -- Set `ENABLE_REQUEST_LOGS=true` in `.env` +- Request artifacts are written to `DATA_DIR/call_logs/` as one JSON file per request +- Enable pipeline capture from Dashboard → Logs → Request Logs if you need detailed per-stage payloads +- Set `APP_LOG_TO_FILE=true` if you also want application console logs in `logs/application/app.log` **Connection test shows "Invalid" for OpenAI-compatible providers** diff --git a/docs/i18n/es/README.md b/docs/i18n/es/README.md index 14cc5b4fe5..4f9491f187 100644 --- a/docs/i18n/es/README.md +++ b/docs/i18n/es/README.md @@ -4,6 +4,7 @@ --- + ### Never stop coding. Smart routing to **FREE & low-cost AI models** with automatic fallback. _Your universal API proxy — one endpoint, 67+ providers, zero downtime. Now with **MCP & A2A** agent orchestration._ @@ -30,6 +31,30 @@ _Your universal API proxy — one endpoint, 67+ providers, zero downtime. Now wi --- +## Breaking Change: Unified Logging Upgrade + +> [!WARNING] +> **This release changes both the on-disk request log layout and the logging environment variables.** +> +> If you are upgrading an existing instance: +> +> - Request logs now live in `DATA_DIR/call_logs/YYYY-MM-DD/` as **one JSON artifact per request**. +> - The old `DATA_DIR/logs/` session folders and `DATA_DIR/log.txt` summary file are removed. +> - On the first startup after upgrading, OmniRoute creates a safety backup at `DATA_DIR/log_archives/*.zip` before removing the deprecated request log layout. +> - Legacy logging env vars such as `LOG_TO_FILE`, `LOG_FILE_PATH`, `LOG_MAX_FILE_SIZE`, `LOG_RETENTION_DAYS`, `LOG_LEVEL`, `LOG_FORMAT`, `ENABLE_REQUEST_LOGS`, `CALL_LOGS_MAX`, `CALL_LOG_PAYLOAD_MODE`, and `PROXY_LOG_MAX_ENTRIES` are no longer supported. +> - Use the new env model instead: +> - `APP_LOG_TO_FILE` +> - `APP_LOG_FILE_PATH` +> - `APP_LOG_MAX_FILE_SIZE` +> - `APP_LOG_RETENTION_DAYS` +> - `APP_LOG_LEVEL` +> - `APP_LOG_FORMAT` +> - `CALL_LOG_RETENTION_DAYS` +> +> For release details and upgrade notes, see the [CHANGELOG](CHANGELOG.md). + +--- + ## 🆕 What's New in v3.0.0 > **Upgrading from v2.9.5?** — See the [full CHANGELOG](CHANGELOG.md#300--2026-03-22-release-candidate--not-yet-merged-to-main) for all changes. @@ -203,7 +228,7 @@ When opening an issue, please run the system-info command and attach the generat npm run system-info ``` -This generates a `system-info.txt` with your Node.js version, OmniRoute version, OS details, installed CLI tools (iflow, gemini, claude, codex, antigravity, droid, etc.), Docker/PM2 status, and system packages — everything we need to reproduce your issue quickly. Attach the file directly to your GitHub issue. +This generates a `system-info.txt` with your Node.js version, OmniRoute version, OS details, installed CLI tools (qoder, gemini, claude, codex, antigravity, droid, etc.), Docker/PM2 status, and system packages — everything we need to reproduce your issue quickly. Attach the file directly to your GitHub issue. --- @@ -229,7 +254,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, │ ↓ budget limit ├─→ [Tier 3: CHEAP] GLM ($0.6/1M), MiniMax ($0.2/1M) │ ↓ budget limit - └─→ [Tier 4: FREE] iFlow, Qwen, Kiro (unlimited) + └─→ [Tier 4: FREE] Qoder, Qwen, Kiro (unlimited) Result: Never stop coding, minimal cost ``` @@ -296,7 +321,7 @@ Not everyone can pay $20–200/month for AI subscriptions. Students, devs from e **How OmniRoute solves it:** -- **Free Tier Providers Built-in** — Native support for 100% free providers: iFlow (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) +- **Free Tier Providers Built-in** — Native support for 100% free providers: Qoder (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) - **Ollama Cloud** — Cloud-hosted Ollama models at `api.ollama.com` with free "Light usage" tier; use `ollamacloud/` prefix - **Free-Only Combos** — Chain `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime - **NVIDIA NIM Free Access** — ~40 RPM dev-forever free access to 70+ models at build.nvidia.com (transitioning from credits to pure rate limits) @@ -360,7 +385,7 @@ Claude Code, Codex, Gemini CLI, Copilot — all use OAuth 2.0 with expiring toke **How OmniRoute solves it:** - **Auto Token Refresh** — OAuth tokens refresh in background before expiration -- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, iFlow +- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder - **Multi-Account OAuth** — Multiple accounts per provider via JWT/ID token extraction - **OAuth LAN/Remote Fix** — Private IP detection for `redirect_uri` + manual URL mode for remote servers - **OAuth Behind Nginx** — Uses `window.location.origin` for reverse proxy compatibility @@ -413,7 +438,7 @@ Installing, configuring, and maintaining an AI proxy across different environmen - **Electron Desktop App** — Native app for Windows/macOS/Linux with system tray, auto-start, offline mode - **Split-Port Mode** — API and Dashboard on separate ports for advanced scenarios (reverse proxy, container networking) - **Cloud Sync** — Config synchronization across devices via Cloudflare Workers -- **DB Backups** — Automatic backup, restore, export and import of all settings +- **DB Backups** — Automatic backup, restore, export and import of all settings, with `DISABLE_SQLITE_AUTO_BACKUP` for externally managed backups
@@ -737,7 +762,7 @@ Outcome: deep fallback depth for deadline-critical workloads | Step | Action | Providers Unlocked | | ---- | -------------------------------------------------- | ------------------------------------------------------------------ | | 1 | Connect **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — **unlimited** | -| 2 | Connect **iFlow** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | +| 2 | Connect **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | | 3 | Connect **Qwen** (Device Code) | qwen3-coder-plus, qwen3-coder-flash... — **unlimited** | | 4 | Connect **Gemini CLI** (Google OAuth) | gemini-3-flash, gemini-2.5-pro — **180K/mo free** | | 5 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | @@ -838,6 +863,113 @@ npm install PORT=20128 DASHBOARD_PORT=20129 NEXT_PUBLIC_BASE_URL=http://localhost:20129 npm run dev ``` +
+Void Linux (`xbps-src` template) + +For Void Linux users, you can build a native package using `xbps-src`. Save this block as `srcpkgs/omniroute/template`: + +```bash +# Template file for 'omniroute' +pkgname=omniroute +version=3.4.1 +revision=1 +hostmakedepends="nodejs python3 make" +depends="openssl" +short_desc="Universal AI gateway with smart routing for multiple LLM providers" +maintainer="zenobit " +license="MIT" +homepage="https://github.com/diegosouzapw/OmniRoute" +distfiles="https://github.com/diegosouzapw/OmniRoute/archive/refs/tags/v${version}.tar.gz" +checksum=009400afee90a9f32599d8fe734145cfd84098140b7287990183dde45ae2245b +system_accounts="_omniroute" +omniroute_homedir="/var/lib/omniroute" +export NODE_ENV=production +export npm_config_engine_strict=false +export npm_config_loglevel=error +export npm_config_fund=false +export npm_config_audit=false + +do_build() { + # Determine target CPU arch for node-gyp + local _gyp_arch + case "$XBPS_TARGET_MACHINE" in + aarch64*) _gyp_arch=arm64 ;; + armv7*|armv6*) _gyp_arch=arm ;; + i686*) _gyp_arch=ia32 ;; + *) _gyp_arch=x64 ;; + esac + + # 1) Install all deps – skip scripts (no network in do_build, native modules + # compiled separately below; better-sqlite3 is serverExternalPackage so + # Next.js does not execute it during next build) + NODE_ENV=development npm ci --ignore-scripts + + # 2) Build the Next.js standalone bundle + npm run build + + # 3) Copy static assets into standalone + cp -r .next/static .next/standalone/.next/static + [ -d public ] && cp -r public .next/standalone/public || true + + # 4) Compile better-sqlite3 native binding for the target architecture. + # Use node-gyp directly so CC/CXX from xbps-src cross-toolchain are used + # without npm altering them. + local _node_gyp=/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js + (cd node_modules/better-sqlite3 && node "$_node_gyp" rebuild --arch="$_gyp_arch") + + # 5) Place the compiled binding into the standalone bundle + local _bs3_release=.next/standalone/node_modules/better-sqlite3/build/Release + mkdir -p "$_bs3_release" + cp node_modules/better-sqlite3/build/Release/better_sqlite3.node "$_bs3_release/" + + # 6) Remove arch-specific sharp bundles – upstream sets images.unoptimized=true + # so sharp is not used at runtime; x64 .so files would break aarch64 strip + rm -rf .next/standalone/node_modules/@img + + # 7) Copy pino runtime deps omitted by Next.js static analysis: + # pino-abstract-transport – required by pino's worker thread + # split2 – dep of pino-abstract-transport + # process-warning – dep of pino itself + for _mod in pino-abstract-transport split2 process-warning; do + cp -r "node_modules/$_mod" .next/standalone/node_modules/ + done +} + +do_check() { + npm run test:unit +} + +do_install() { + vmkdir usr/lib/omniroute/.next + + vcopy .next/standalone/. usr/lib/omniroute/.next/standalone + + # Prevent removal of empty Next.js app router dirs by the post-install hook + for _d in \ + .next/standalone/.next/server/app/dashboard \ + .next/standalone/.next/server/app/dashboard/settings \ + .next/standalone/.next/server/app/dashboard/providers; do + touch "${DESTDIR}/usr/lib/omniroute/${_d}/.keep" + done + + cat > "${WRKDIR}/omniroute" <<'EOF' +#!/bin/sh +export PORT="${PORT:-20128}" +export DATA_DIR="${DATA_DIR:-${XDG_DATA_HOME:-${HOME}/.local/share}/omniroute}" +export LOG_TO_FILE="${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 +} +``` + +
+ --- ## 🐳 Docker @@ -886,6 +1018,7 @@ Notes: - Quick Tunnel URLs are temporary and change after every restart. - Managed install currently supports Linux, macOS, and Windows on `x64` / `arm64`. +- Docker images bundle system CA roots and pass them to managed `cloudflared`, which avoids TLS trust failures when the tunnel bootstraps inside the container. - Set `CLOUDFLARED_BIN=/absolute/path/to/cloudflared` if you want OmniRoute to use an existing binary instead of downloading one. **Using Docker Compose with Caddy (HTTPS Auto-TLS):** @@ -983,7 +1116,7 @@ When minimized, OmniRoute lives in your system tray with quick actions: | | MiniMax M2.1 | $0.2/1M | 5-hour rolling | Cheapest option | | | Kimi K2.5 (Moonshot API) 🆕 | Pay-per-use | None | Direct Moonshot API access | | | Kimi K2 | $9/mo flat | 10M tokens/mo | Predictable cost | -| **🆓 FREE** | iFlow | **$0** | Unlimited | 5 models unlimited | +| **🆓 FREE** | Qoder | **$0** | Unlimited | 5 models unlimited | | | Qwen | **$0** | Unlimited | 4 models unlimited | | | Kiro | **$0** | Unlimited | Claude Sonnet/Haiku (AWS Builder) | | | LongCat Flash-Lite 🆕 | **$0** (50M tok/day 🔥) | 1 RPS | Largest free quota on Earth | @@ -998,7 +1131,7 @@ When minimized, OmniRoute lives in your system tray with quick actions: ``` # 🆓 Ultimate Free Stack 2026 — 11 Providers, $0 Forever Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -iFlow (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED +Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed Qwen (qw/) → qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next UNLIMITED @@ -1028,7 +1161,7 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day | `claude-haiku-4.5` | `kr/` | **Unlimited** | No reported daily cap | | `claude-opus-4.6` | `kr/` | **Unlimited** | Latest Opus via Kiro | -### 🟢 IFLOW MODELS (Free OAuth — No Credit Card) +### 🟢 QODER MODELS (Free OAuth — No Credit Card) | Model | Prefix | Limit | Rate Limit | | ------------------ | ------ | ------------- | --------------- | @@ -1127,7 +1260,7 @@ Available free: `qwen3-235b-a22b-instruct-2507` (Qwen3 235B!), `llama-3.1-70b-in > > ``` > Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -> iFlow (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED +> Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED > LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 > Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed > Qwen (qw/) → qwen3-coder models UNLIMITED @@ -1279,21 +1412,22 @@ OmniRoute v2.0 is built as an operational platform, not just a relay proxy. ### ☁️ Deployment & Platform -| Feature | What It Does | -| ----------------------------- | --------------------------------------------------------- | -| 🌐 **Deploy Anywhere** | Localhost, VPS, Docker, Cloud environments | -| 🚇 **Cloudflare Tunnel** 🆕 | One-click Quick Tunnel integration from the dashboard | -| 💾 **Cloud Sync** | Configuration sync via cloud worker | -| 🔄 **Backup/Restore** | Export/import and disaster recovery flows | -| 🧙 **Onboarding Wizard** | First-run guided setup | -| 🔧 **CLI Tools Dashboard** | One-click setup for popular coding tools | -| 🎮 **Model Playground** | Test any provider/model/endpoint from the dashboard | -| 🔏 **CLI Fingerprint Toggle** | Per-provider fingerprint matching in Settings > Security | -| 🌐 **i18n (30 languages)** | Full dashboard + docs language support with RTL coverage | -| 🧹 **Clear All Models** | One-click model list clearing in provider details | -| 👁️ **Sidebar Controls** 🆕 | Hide components and integrations from Appearance Settings | -| 📋 **Issue Templates** | Standardized GitHub templates for bugs and features | -| 📂 **Custom Data Directory** | `DATA_DIR` override for storage location | +| Feature | What It Does | +| ------------------------------ | --------------------------------------------------------------------- | +| 🌐 **Deploy Anywhere** | Localhost, VPS, Docker, Cloud environments | +| 🚇 **Cloudflare Tunnel** 🆕 | One-click Quick Tunnel integration from the dashboard | +| 🔑 **API Key Model Filtering** | Native /v1/models response filtered via assigned Bearer context roles | +| ⚡ **Smart Cache Bypass** | Configurable TTL heuristics and forced refetch controls | +| 🔄 **Backup/Restore** | Export/import and disaster recovery flows | +| 🧙 **Onboarding Wizard** | First-run guided setup | +| 🔧 **CLI Tools Dashboard** | One-click setup for popular coding tools | +| 🎮 **Model Playground** | Test any provider/model/endpoint from the dashboard | +| 🔏 **CLI Fingerprint Toggle** | Per-provider fingerprint matching in Settings > Security | +| 🌐 **i18n (30 languages)** | Full dashboard + docs language support with RTL coverage | +| 🧹 **Clear All Models** | One-click model list clearing in provider details | +| 👁️ **Sidebar Controls** 🆕 | Hide components and integrations from Appearance Settings | +| 📋 **Issue Templates** | Standardized GitHub templates for bugs and features | +| 📂 **Custom Data Directory** | `DATA_DIR` override for storage location | ### Feature Deep Dive @@ -1545,6 +1679,8 @@ Models: **Models:** Access 100+ models from all major providers through a single API key. +**Dashboard behavior:** OpenRouter models are managed from **Available Models**. Manual add, import, and auto-sync all update the same list. +
@@ -1587,11 +1723,11 @@ Models:
🆓 FREE Providers (Emergency Backup) -### iFlow (5 FREE models via OAuth) +### Qoder (5 FREE models via OAuth) ```bash -Dashboard → Connect iFlow -→ iFlow OAuth login +Dashboard → Connect Qoder +→ Qoder OAuth login → Unlimited usage Models: @@ -1789,7 +1925,7 @@ opencode - Check usage stats in Dashboard → Costs - Switch primary model to GLM/MiniMax -- Use free tier (Gemini CLI, iFlow) for non-critical tasks +- Use free tier (Gemini CLI, Qoder) for non-critical tasks **Dashboard/API ports are wrong** @@ -1811,7 +1947,9 @@ opencode **No request logs** -- Set `ENABLE_REQUEST_LOGS=true` in `.env` +- Request artifacts are written to `DATA_DIR/call_logs/` as one JSON file per request +- Enable pipeline capture from Dashboard → Logs → Request Logs if you need detailed per-stage payloads +- Set `APP_LOG_TO_FILE=true` if you also want application console logs in `logs/application/app.log` **Connection test shows "Invalid" for OpenAI-compatible providers** diff --git a/docs/i18n/fi/README.md b/docs/i18n/fi/README.md index 49b7aa4b2b..b199ab0db7 100644 --- a/docs/i18n/fi/README.md +++ b/docs/i18n/fi/README.md @@ -4,6 +4,7 @@ --- + ### Never stop coding. Smart routing to **FREE & low-cost AI models** with automatic fallback. _Your universal API proxy — one endpoint, 67+ providers, zero downtime. Now with **MCP & A2A** agent orchestration._ @@ -30,6 +31,30 @@ _Your universal API proxy — one endpoint, 67+ providers, zero downtime. Now wi --- +## Breaking Change: Unified Logging Upgrade + +> [!WARNING] +> **This release changes both the on-disk request log layout and the logging environment variables.** +> +> If you are upgrading an existing instance: +> +> - Request logs now live in `DATA_DIR/call_logs/YYYY-MM-DD/` as **one JSON artifact per request**. +> - The old `DATA_DIR/logs/` session folders and `DATA_DIR/log.txt` summary file are removed. +> - On the first startup after upgrading, OmniRoute creates a safety backup at `DATA_DIR/log_archives/*.zip` before removing the deprecated request log layout. +> - Legacy logging env vars such as `LOG_TO_FILE`, `LOG_FILE_PATH`, `LOG_MAX_FILE_SIZE`, `LOG_RETENTION_DAYS`, `LOG_LEVEL`, `LOG_FORMAT`, `ENABLE_REQUEST_LOGS`, `CALL_LOGS_MAX`, `CALL_LOG_PAYLOAD_MODE`, and `PROXY_LOG_MAX_ENTRIES` are no longer supported. +> - Use the new env model instead: +> - `APP_LOG_TO_FILE` +> - `APP_LOG_FILE_PATH` +> - `APP_LOG_MAX_FILE_SIZE` +> - `APP_LOG_RETENTION_DAYS` +> - `APP_LOG_LEVEL` +> - `APP_LOG_FORMAT` +> - `CALL_LOG_RETENTION_DAYS` +> +> For release details and upgrade notes, see the [CHANGELOG](CHANGELOG.md). + +--- + ## 🆕 What's New in v3.0.0 > **Upgrading from v2.9.5?** — See the [full CHANGELOG](CHANGELOG.md#300--2026-03-22-release-candidate--not-yet-merged-to-main) for all changes. @@ -203,7 +228,7 @@ When opening an issue, please run the system-info command and attach the generat npm run system-info ``` -This generates a `system-info.txt` with your Node.js version, OmniRoute version, OS details, installed CLI tools (iflow, gemini, claude, codex, antigravity, droid, etc.), Docker/PM2 status, and system packages — everything we need to reproduce your issue quickly. Attach the file directly to your GitHub issue. +This generates a `system-info.txt` with your Node.js version, OmniRoute version, OS details, installed CLI tools (qoder, gemini, claude, codex, antigravity, droid, etc.), Docker/PM2 status, and system packages — everything we need to reproduce your issue quickly. Attach the file directly to your GitHub issue. --- @@ -229,7 +254,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, │ ↓ budget limit ├─→ [Tier 3: CHEAP] GLM ($0.6/1M), MiniMax ($0.2/1M) │ ↓ budget limit - └─→ [Tier 4: FREE] iFlow, Qwen, Kiro (unlimited) + └─→ [Tier 4: FREE] Qoder, Qwen, Kiro (unlimited) Result: Never stop coding, minimal cost ``` @@ -296,7 +321,7 @@ Not everyone can pay $20–200/month for AI subscriptions. Students, devs from e **How OmniRoute solves it:** -- **Free Tier Providers Built-in** — Native support for 100% free providers: iFlow (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) +- **Free Tier Providers Built-in** — Native support for 100% free providers: Qoder (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) - **Ollama Cloud** — Cloud-hosted Ollama models at `api.ollama.com` with free "Light usage" tier; use `ollamacloud/` prefix - **Free-Only Combos** — Chain `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime - **NVIDIA NIM Free Access** — ~40 RPM dev-forever free access to 70+ models at build.nvidia.com (transitioning from credits to pure rate limits) @@ -360,7 +385,7 @@ Claude Code, Codex, Gemini CLI, Copilot — all use OAuth 2.0 with expiring toke **How OmniRoute solves it:** - **Auto Token Refresh** — OAuth tokens refresh in background before expiration -- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, iFlow +- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder - **Multi-Account OAuth** — Multiple accounts per provider via JWT/ID token extraction - **OAuth LAN/Remote Fix** — Private IP detection for `redirect_uri` + manual URL mode for remote servers - **OAuth Behind Nginx** — Uses `window.location.origin` for reverse proxy compatibility @@ -413,7 +438,7 @@ Installing, configuring, and maintaining an AI proxy across different environmen - **Electron Desktop App** — Native app for Windows/macOS/Linux with system tray, auto-start, offline mode - **Split-Port Mode** — API and Dashboard on separate ports for advanced scenarios (reverse proxy, container networking) - **Cloud Sync** — Config synchronization across devices via Cloudflare Workers -- **DB Backups** — Automatic backup, restore, export and import of all settings +- **DB Backups** — Automatic backup, restore, export and import of all settings, with `DISABLE_SQLITE_AUTO_BACKUP` for externally managed backups
@@ -737,7 +762,7 @@ Outcome: deep fallback depth for deadline-critical workloads | Step | Action | Providers Unlocked | | ---- | -------------------------------------------------- | ------------------------------------------------------------------ | | 1 | Connect **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — **unlimited** | -| 2 | Connect **iFlow** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | +| 2 | Connect **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | | 3 | Connect **Qwen** (Device Code) | qwen3-coder-plus, qwen3-coder-flash... — **unlimited** | | 4 | Connect **Gemini CLI** (Google OAuth) | gemini-3-flash, gemini-2.5-pro — **180K/mo free** | | 5 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | @@ -838,6 +863,113 @@ npm install PORT=20128 DASHBOARD_PORT=20129 NEXT_PUBLIC_BASE_URL=http://localhost:20129 npm run dev ``` +
+Void Linux (`xbps-src` template) + +For Void Linux users, you can build a native package using `xbps-src`. Save this block as `srcpkgs/omniroute/template`: + +```bash +# Template file for 'omniroute' +pkgname=omniroute +version=3.4.1 +revision=1 +hostmakedepends="nodejs python3 make" +depends="openssl" +short_desc="Universal AI gateway with smart routing for multiple LLM providers" +maintainer="zenobit " +license="MIT" +homepage="https://github.com/diegosouzapw/OmniRoute" +distfiles="https://github.com/diegosouzapw/OmniRoute/archive/refs/tags/v${version}.tar.gz" +checksum=009400afee90a9f32599d8fe734145cfd84098140b7287990183dde45ae2245b +system_accounts="_omniroute" +omniroute_homedir="/var/lib/omniroute" +export NODE_ENV=production +export npm_config_engine_strict=false +export npm_config_loglevel=error +export npm_config_fund=false +export npm_config_audit=false + +do_build() { + # Determine target CPU arch for node-gyp + local _gyp_arch + case "$XBPS_TARGET_MACHINE" in + aarch64*) _gyp_arch=arm64 ;; + armv7*|armv6*) _gyp_arch=arm ;; + i686*) _gyp_arch=ia32 ;; + *) _gyp_arch=x64 ;; + esac + + # 1) Install all deps – skip scripts (no network in do_build, native modules + # compiled separately below; better-sqlite3 is serverExternalPackage so + # Next.js does not execute it during next build) + NODE_ENV=development npm ci --ignore-scripts + + # 2) Build the Next.js standalone bundle + npm run build + + # 3) Copy static assets into standalone + cp -r .next/static .next/standalone/.next/static + [ -d public ] && cp -r public .next/standalone/public || true + + # 4) Compile better-sqlite3 native binding for the target architecture. + # Use node-gyp directly so CC/CXX from xbps-src cross-toolchain are used + # without npm altering them. + local _node_gyp=/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js + (cd node_modules/better-sqlite3 && node "$_node_gyp" rebuild --arch="$_gyp_arch") + + # 5) Place the compiled binding into the standalone bundle + local _bs3_release=.next/standalone/node_modules/better-sqlite3/build/Release + mkdir -p "$_bs3_release" + cp node_modules/better-sqlite3/build/Release/better_sqlite3.node "$_bs3_release/" + + # 6) Remove arch-specific sharp bundles – upstream sets images.unoptimized=true + # so sharp is not used at runtime; x64 .so files would break aarch64 strip + rm -rf .next/standalone/node_modules/@img + + # 7) Copy pino runtime deps omitted by Next.js static analysis: + # pino-abstract-transport – required by pino's worker thread + # split2 – dep of pino-abstract-transport + # process-warning – dep of pino itself + for _mod in pino-abstract-transport split2 process-warning; do + cp -r "node_modules/$_mod" .next/standalone/node_modules/ + done +} + +do_check() { + npm run test:unit +} + +do_install() { + vmkdir usr/lib/omniroute/.next + + vcopy .next/standalone/. usr/lib/omniroute/.next/standalone + + # Prevent removal of empty Next.js app router dirs by the post-install hook + for _d in \ + .next/standalone/.next/server/app/dashboard \ + .next/standalone/.next/server/app/dashboard/settings \ + .next/standalone/.next/server/app/dashboard/providers; do + touch "${DESTDIR}/usr/lib/omniroute/${_d}/.keep" + done + + cat > "${WRKDIR}/omniroute" <<'EOF' +#!/bin/sh +export PORT="${PORT:-20128}" +export DATA_DIR="${DATA_DIR:-${XDG_DATA_HOME:-${HOME}/.local/share}/omniroute}" +export LOG_TO_FILE="${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 +} +``` + +
+ --- ## 🐳 Docker @@ -886,6 +1018,7 @@ Notes: - Quick Tunnel URLs are temporary and change after every restart. - Managed install currently supports Linux, macOS, and Windows on `x64` / `arm64`. +- Docker images bundle system CA roots and pass them to managed `cloudflared`, which avoids TLS trust failures when the tunnel bootstraps inside the container. - Set `CLOUDFLARED_BIN=/absolute/path/to/cloudflared` if you want OmniRoute to use an existing binary instead of downloading one. **Using Docker Compose with Caddy (HTTPS Auto-TLS):** @@ -983,7 +1116,7 @@ When minimized, OmniRoute lives in your system tray with quick actions: | | MiniMax M2.1 | $0.2/1M | 5-hour rolling | Cheapest option | | | Kimi K2.5 (Moonshot API) 🆕 | Pay-per-use | None | Direct Moonshot API access | | | Kimi K2 | $9/mo flat | 10M tokens/mo | Predictable cost | -| **🆓 FREE** | iFlow | **$0** | Unlimited | 5 models unlimited | +| **🆓 FREE** | Qoder | **$0** | Unlimited | 5 models unlimited | | | Qwen | **$0** | Unlimited | 4 models unlimited | | | Kiro | **$0** | Unlimited | Claude Sonnet/Haiku (AWS Builder) | | | LongCat Flash-Lite 🆕 | **$0** (50M tok/day 🔥) | 1 RPS | Largest free quota on Earth | @@ -998,7 +1131,7 @@ When minimized, OmniRoute lives in your system tray with quick actions: ``` # 🆓 Ultimate Free Stack 2026 — 11 Providers, $0 Forever Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -iFlow (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED +Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed Qwen (qw/) → qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next UNLIMITED @@ -1028,7 +1161,7 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day | `claude-haiku-4.5` | `kr/` | **Unlimited** | No reported daily cap | | `claude-opus-4.6` | `kr/` | **Unlimited** | Latest Opus via Kiro | -### 🟢 IFLOW MODELS (Free OAuth — No Credit Card) +### 🟢 QODER MODELS (Free OAuth — No Credit Card) | Model | Prefix | Limit | Rate Limit | | ------------------ | ------ | ------------- | --------------- | @@ -1127,7 +1260,7 @@ Available free: `qwen3-235b-a22b-instruct-2507` (Qwen3 235B!), `llama-3.1-70b-in > > ``` > Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -> iFlow (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED +> Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED > LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 > Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed > Qwen (qw/) → qwen3-coder models UNLIMITED @@ -1279,21 +1412,22 @@ OmniRoute v2.0 is built as an operational platform, not just a relay proxy. ### ☁️ Deployment & Platform -| Feature | What It Does | -| ----------------------------- | --------------------------------------------------------- | -| 🌐 **Deploy Anywhere** | Localhost, VPS, Docker, Cloud environments | -| 🚇 **Cloudflare Tunnel** 🆕 | One-click Quick Tunnel integration from the dashboard | -| 💾 **Cloud Sync** | Configuration sync via cloud worker | -| 🔄 **Backup/Restore** | Export/import and disaster recovery flows | -| 🧙 **Onboarding Wizard** | First-run guided setup | -| 🔧 **CLI Tools Dashboard** | One-click setup for popular coding tools | -| 🎮 **Model Playground** | Test any provider/model/endpoint from the dashboard | -| 🔏 **CLI Fingerprint Toggle** | Per-provider fingerprint matching in Settings > Security | -| 🌐 **i18n (30 languages)** | Full dashboard + docs language support with RTL coverage | -| 🧹 **Clear All Models** | One-click model list clearing in provider details | -| 👁️ **Sidebar Controls** 🆕 | Hide components and integrations from Appearance Settings | -| 📋 **Issue Templates** | Standardized GitHub templates for bugs and features | -| 📂 **Custom Data Directory** | `DATA_DIR` override for storage location | +| Feature | What It Does | +| ------------------------------ | --------------------------------------------------------------------- | +| 🌐 **Deploy Anywhere** | Localhost, VPS, Docker, Cloud environments | +| 🚇 **Cloudflare Tunnel** 🆕 | One-click Quick Tunnel integration from the dashboard | +| 🔑 **API Key Model Filtering** | Native /v1/models response filtered via assigned Bearer context roles | +| ⚡ **Smart Cache Bypass** | Configurable TTL heuristics and forced refetch controls | +| 🔄 **Backup/Restore** | Export/import and disaster recovery flows | +| 🧙 **Onboarding Wizard** | First-run guided setup | +| 🔧 **CLI Tools Dashboard** | One-click setup for popular coding tools | +| 🎮 **Model Playground** | Test any provider/model/endpoint from the dashboard | +| 🔏 **CLI Fingerprint Toggle** | Per-provider fingerprint matching in Settings > Security | +| 🌐 **i18n (30 languages)** | Full dashboard + docs language support with RTL coverage | +| 🧹 **Clear All Models** | One-click model list clearing in provider details | +| 👁️ **Sidebar Controls** 🆕 | Hide components and integrations from Appearance Settings | +| 📋 **Issue Templates** | Standardized GitHub templates for bugs and features | +| 📂 **Custom Data Directory** | `DATA_DIR` override for storage location | ### Feature Deep Dive @@ -1545,6 +1679,8 @@ Models: **Models:** Access 100+ models from all major providers through a single API key. +**Dashboard behavior:** OpenRouter models are managed from **Available Models**. Manual add, import, and auto-sync all update the same list. +
@@ -1587,11 +1723,11 @@ Models:
🆓 FREE Providers (Emergency Backup) -### iFlow (5 FREE models via OAuth) +### Qoder (5 FREE models via OAuth) ```bash -Dashboard → Connect iFlow -→ iFlow OAuth login +Dashboard → Connect Qoder +→ Qoder OAuth login → Unlimited usage Models: @@ -1789,7 +1925,7 @@ opencode - Check usage stats in Dashboard → Costs - Switch primary model to GLM/MiniMax -- Use free tier (Gemini CLI, iFlow) for non-critical tasks +- Use free tier (Gemini CLI, Qoder) for non-critical tasks **Dashboard/API ports are wrong** @@ -1811,7 +1947,9 @@ opencode **No request logs** -- Set `ENABLE_REQUEST_LOGS=true` in `.env` +- Request artifacts are written to `DATA_DIR/call_logs/` as one JSON file per request +- Enable pipeline capture from Dashboard → Logs → Request Logs if you need detailed per-stage payloads +- Set `APP_LOG_TO_FILE=true` if you also want application console logs in `logs/application/app.log` **Connection test shows "Invalid" for OpenAI-compatible providers** diff --git a/docs/i18n/fr/README.md b/docs/i18n/fr/README.md index 14a4a88a74..f2a21f9be6 100644 --- a/docs/i18n/fr/README.md +++ b/docs/i18n/fr/README.md @@ -4,6 +4,7 @@ --- + ### Never stop coding. Smart routing to **FREE & low-cost AI models** with automatic fallback. _Your universal API proxy — one endpoint, 67+ providers, zero downtime. Now with **MCP & A2A** agent orchestration._ @@ -30,6 +31,30 @@ _Your universal API proxy — one endpoint, 67+ providers, zero downtime. Now wi --- +## Breaking Change: Unified Logging Upgrade + +> [!WARNING] +> **This release changes both the on-disk request log layout and the logging environment variables.** +> +> If you are upgrading an existing instance: +> +> - Request logs now live in `DATA_DIR/call_logs/YYYY-MM-DD/` as **one JSON artifact per request**. +> - The old `DATA_DIR/logs/` session folders and `DATA_DIR/log.txt` summary file are removed. +> - On the first startup after upgrading, OmniRoute creates a safety backup at `DATA_DIR/log_archives/*.zip` before removing the deprecated request log layout. +> - Legacy logging env vars such as `LOG_TO_FILE`, `LOG_FILE_PATH`, `LOG_MAX_FILE_SIZE`, `LOG_RETENTION_DAYS`, `LOG_LEVEL`, `LOG_FORMAT`, `ENABLE_REQUEST_LOGS`, `CALL_LOGS_MAX`, `CALL_LOG_PAYLOAD_MODE`, and `PROXY_LOG_MAX_ENTRIES` are no longer supported. +> - Use the new env model instead: +> - `APP_LOG_TO_FILE` +> - `APP_LOG_FILE_PATH` +> - `APP_LOG_MAX_FILE_SIZE` +> - `APP_LOG_RETENTION_DAYS` +> - `APP_LOG_LEVEL` +> - `APP_LOG_FORMAT` +> - `CALL_LOG_RETENTION_DAYS` +> +> For release details and upgrade notes, see the [CHANGELOG](CHANGELOG.md). + +--- + ## 🆕 What's New in v3.0.0 > **Upgrading from v2.9.5?** — See the [full CHANGELOG](CHANGELOG.md#300--2026-03-22-release-candidate--not-yet-merged-to-main) for all changes. @@ -203,7 +228,7 @@ When opening an issue, please run the system-info command and attach the generat npm run system-info ``` -This generates a `system-info.txt` with your Node.js version, OmniRoute version, OS details, installed CLI tools (iflow, gemini, claude, codex, antigravity, droid, etc.), Docker/PM2 status, and system packages — everything we need to reproduce your issue quickly. Attach the file directly to your GitHub issue. +This generates a `system-info.txt` with your Node.js version, OmniRoute version, OS details, installed CLI tools (qoder, gemini, claude, codex, antigravity, droid, etc.), Docker/PM2 status, and system packages — everything we need to reproduce your issue quickly. Attach the file directly to your GitHub issue. --- @@ -229,7 +254,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, │ ↓ budget limit ├─→ [Tier 3: CHEAP] GLM ($0.6/1M), MiniMax ($0.2/1M) │ ↓ budget limit - └─→ [Tier 4: FREE] iFlow, Qwen, Kiro (unlimited) + └─→ [Tier 4: FREE] Qoder, Qwen, Kiro (unlimited) Result: Never stop coding, minimal cost ``` @@ -296,7 +321,7 @@ Not everyone can pay $20–200/month for AI subscriptions. Students, devs from e **How OmniRoute solves it:** -- **Free Tier Providers Built-in** — Native support for 100% free providers: iFlow (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) +- **Free Tier Providers Built-in** — Native support for 100% free providers: Qoder (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) - **Ollama Cloud** — Cloud-hosted Ollama models at `api.ollama.com` with free "Light usage" tier; use `ollamacloud/` prefix - **Free-Only Combos** — Chain `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime - **NVIDIA NIM Free Access** — ~40 RPM dev-forever free access to 70+ models at build.nvidia.com (transitioning from credits to pure rate limits) @@ -360,7 +385,7 @@ Claude Code, Codex, Gemini CLI, Copilot — all use OAuth 2.0 with expiring toke **How OmniRoute solves it:** - **Auto Token Refresh** — OAuth tokens refresh in background before expiration -- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, iFlow +- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder - **Multi-Account OAuth** — Multiple accounts per provider via JWT/ID token extraction - **OAuth LAN/Remote Fix** — Private IP detection for `redirect_uri` + manual URL mode for remote servers - **OAuth Behind Nginx** — Uses `window.location.origin` for reverse proxy compatibility @@ -413,7 +438,7 @@ Installing, configuring, and maintaining an AI proxy across different environmen - **Electron Desktop App** — Native app for Windows/macOS/Linux with system tray, auto-start, offline mode - **Split-Port Mode** — API and Dashboard on separate ports for advanced scenarios (reverse proxy, container networking) - **Cloud Sync** — Config synchronization across devices via Cloudflare Workers -- **DB Backups** — Automatic backup, restore, export and import of all settings +- **DB Backups** — Automatic backup, restore, export and import of all settings, with `DISABLE_SQLITE_AUTO_BACKUP` for externally managed backups
@@ -737,7 +762,7 @@ Outcome: deep fallback depth for deadline-critical workloads | Step | Action | Providers Unlocked | | ---- | -------------------------------------------------- | ------------------------------------------------------------------ | | 1 | Connect **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — **unlimited** | -| 2 | Connect **iFlow** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | +| 2 | Connect **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | | 3 | Connect **Qwen** (Device Code) | qwen3-coder-plus, qwen3-coder-flash... — **unlimited** | | 4 | Connect **Gemini CLI** (Google OAuth) | gemini-3-flash, gemini-2.5-pro — **180K/mo free** | | 5 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | @@ -838,6 +863,113 @@ npm install PORT=20128 DASHBOARD_PORT=20129 NEXT_PUBLIC_BASE_URL=http://localhost:20129 npm run dev ``` +
+Void Linux (`xbps-src` template) + +For Void Linux users, you can build a native package using `xbps-src`. Save this block as `srcpkgs/omniroute/template`: + +```bash +# Template file for 'omniroute' +pkgname=omniroute +version=3.4.1 +revision=1 +hostmakedepends="nodejs python3 make" +depends="openssl" +short_desc="Universal AI gateway with smart routing for multiple LLM providers" +maintainer="zenobit " +license="MIT" +homepage="https://github.com/diegosouzapw/OmniRoute" +distfiles="https://github.com/diegosouzapw/OmniRoute/archive/refs/tags/v${version}.tar.gz" +checksum=009400afee90a9f32599d8fe734145cfd84098140b7287990183dde45ae2245b +system_accounts="_omniroute" +omniroute_homedir="/var/lib/omniroute" +export NODE_ENV=production +export npm_config_engine_strict=false +export npm_config_loglevel=error +export npm_config_fund=false +export npm_config_audit=false + +do_build() { + # Determine target CPU arch for node-gyp + local _gyp_arch + case "$XBPS_TARGET_MACHINE" in + aarch64*) _gyp_arch=arm64 ;; + armv7*|armv6*) _gyp_arch=arm ;; + i686*) _gyp_arch=ia32 ;; + *) _gyp_arch=x64 ;; + esac + + # 1) Install all deps – skip scripts (no network in do_build, native modules + # compiled separately below; better-sqlite3 is serverExternalPackage so + # Next.js does not execute it during next build) + NODE_ENV=development npm ci --ignore-scripts + + # 2) Build the Next.js standalone bundle + npm run build + + # 3) Copy static assets into standalone + cp -r .next/static .next/standalone/.next/static + [ -d public ] && cp -r public .next/standalone/public || true + + # 4) Compile better-sqlite3 native binding for the target architecture. + # Use node-gyp directly so CC/CXX from xbps-src cross-toolchain are used + # without npm altering them. + local _node_gyp=/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js + (cd node_modules/better-sqlite3 && node "$_node_gyp" rebuild --arch="$_gyp_arch") + + # 5) Place the compiled binding into the standalone bundle + local _bs3_release=.next/standalone/node_modules/better-sqlite3/build/Release + mkdir -p "$_bs3_release" + cp node_modules/better-sqlite3/build/Release/better_sqlite3.node "$_bs3_release/" + + # 6) Remove arch-specific sharp bundles – upstream sets images.unoptimized=true + # so sharp is not used at runtime; x64 .so files would break aarch64 strip + rm -rf .next/standalone/node_modules/@img + + # 7) Copy pino runtime deps omitted by Next.js static analysis: + # pino-abstract-transport – required by pino's worker thread + # split2 – dep of pino-abstract-transport + # process-warning – dep of pino itself + for _mod in pino-abstract-transport split2 process-warning; do + cp -r "node_modules/$_mod" .next/standalone/node_modules/ + done +} + +do_check() { + npm run test:unit +} + +do_install() { + vmkdir usr/lib/omniroute/.next + + vcopy .next/standalone/. usr/lib/omniroute/.next/standalone + + # Prevent removal of empty Next.js app router dirs by the post-install hook + for _d in \ + .next/standalone/.next/server/app/dashboard \ + .next/standalone/.next/server/app/dashboard/settings \ + .next/standalone/.next/server/app/dashboard/providers; do + touch "${DESTDIR}/usr/lib/omniroute/${_d}/.keep" + done + + cat > "${WRKDIR}/omniroute" <<'EOF' +#!/bin/sh +export PORT="${PORT:-20128}" +export DATA_DIR="${DATA_DIR:-${XDG_DATA_HOME:-${HOME}/.local/share}/omniroute}" +export LOG_TO_FILE="${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 +} +``` + +
+ --- ## 🐳 Docker @@ -886,6 +1018,7 @@ Notes: - Quick Tunnel URLs are temporary and change after every restart. - Managed install currently supports Linux, macOS, and Windows on `x64` / `arm64`. +- Docker images bundle system CA roots and pass them to managed `cloudflared`, which avoids TLS trust failures when the tunnel bootstraps inside the container. - Set `CLOUDFLARED_BIN=/absolute/path/to/cloudflared` if you want OmniRoute to use an existing binary instead of downloading one. **Using Docker Compose with Caddy (HTTPS Auto-TLS):** @@ -983,7 +1116,7 @@ When minimized, OmniRoute lives in your system tray with quick actions: | | MiniMax M2.1 | $0.2/1M | 5-hour rolling | Cheapest option | | | Kimi K2.5 (Moonshot API) 🆕 | Pay-per-use | None | Direct Moonshot API access | | | Kimi K2 | $9/mo flat | 10M tokens/mo | Predictable cost | -| **🆓 FREE** | iFlow | **$0** | Unlimited | 5 models unlimited | +| **🆓 FREE** | Qoder | **$0** | Unlimited | 5 models unlimited | | | Qwen | **$0** | Unlimited | 4 models unlimited | | | Kiro | **$0** | Unlimited | Claude Sonnet/Haiku (AWS Builder) | | | LongCat Flash-Lite 🆕 | **$0** (50M tok/day 🔥) | 1 RPS | Largest free quota on Earth | @@ -998,7 +1131,7 @@ When minimized, OmniRoute lives in your system tray with quick actions: ``` # 🆓 Ultimate Free Stack 2026 — 11 Providers, $0 Forever Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -iFlow (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED +Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed Qwen (qw/) → qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next UNLIMITED @@ -1028,7 +1161,7 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day | `claude-haiku-4.5` | `kr/` | **Unlimited** | No reported daily cap | | `claude-opus-4.6` | `kr/` | **Unlimited** | Latest Opus via Kiro | -### 🟢 IFLOW MODELS (Free OAuth — No Credit Card) +### 🟢 QODER MODELS (Free OAuth — No Credit Card) | Model | Prefix | Limit | Rate Limit | | ------------------ | ------ | ------------- | --------------- | @@ -1127,7 +1260,7 @@ Available free: `qwen3-235b-a22b-instruct-2507` (Qwen3 235B!), `llama-3.1-70b-in > > ``` > Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -> iFlow (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED +> Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED > LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 > Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed > Qwen (qw/) → qwen3-coder models UNLIMITED @@ -1279,21 +1412,22 @@ OmniRoute v2.0 is built as an operational platform, not just a relay proxy. ### ☁️ Deployment & Platform -| Feature | What It Does | -| ----------------------------- | --------------------------------------------------------- | -| 🌐 **Deploy Anywhere** | Localhost, VPS, Docker, Cloud environments | -| 🚇 **Cloudflare Tunnel** 🆕 | One-click Quick Tunnel integration from the dashboard | -| 💾 **Cloud Sync** | Configuration sync via cloud worker | -| 🔄 **Backup/Restore** | Export/import and disaster recovery flows | -| 🧙 **Onboarding Wizard** | First-run guided setup | -| 🔧 **CLI Tools Dashboard** | One-click setup for popular coding tools | -| 🎮 **Model Playground** | Test any provider/model/endpoint from the dashboard | -| 🔏 **CLI Fingerprint Toggle** | Per-provider fingerprint matching in Settings > Security | -| 🌐 **i18n (30 languages)** | Full dashboard + docs language support with RTL coverage | -| 🧹 **Clear All Models** | One-click model list clearing in provider details | -| 👁️ **Sidebar Controls** 🆕 | Hide components and integrations from Appearance Settings | -| 📋 **Issue Templates** | Standardized GitHub templates for bugs and features | -| 📂 **Custom Data Directory** | `DATA_DIR` override for storage location | +| Feature | What It Does | +| ------------------------------ | --------------------------------------------------------------------- | +| 🌐 **Deploy Anywhere** | Localhost, VPS, Docker, Cloud environments | +| 🚇 **Cloudflare Tunnel** 🆕 | One-click Quick Tunnel integration from the dashboard | +| 🔑 **API Key Model Filtering** | Native /v1/models response filtered via assigned Bearer context roles | +| ⚡ **Smart Cache Bypass** | Configurable TTL heuristics and forced refetch controls | +| 🔄 **Backup/Restore** | Export/import and disaster recovery flows | +| 🧙 **Onboarding Wizard** | First-run guided setup | +| 🔧 **CLI Tools Dashboard** | One-click setup for popular coding tools | +| 🎮 **Model Playground** | Test any provider/model/endpoint from the dashboard | +| 🔏 **CLI Fingerprint Toggle** | Per-provider fingerprint matching in Settings > Security | +| 🌐 **i18n (30 languages)** | Full dashboard + docs language support with RTL coverage | +| 🧹 **Clear All Models** | One-click model list clearing in provider details | +| 👁️ **Sidebar Controls** 🆕 | Hide components and integrations from Appearance Settings | +| 📋 **Issue Templates** | Standardized GitHub templates for bugs and features | +| 📂 **Custom Data Directory** | `DATA_DIR` override for storage location | ### Feature Deep Dive @@ -1545,6 +1679,8 @@ Models: **Models:** Access 100+ models from all major providers through a single API key. +**Dashboard behavior:** OpenRouter models are managed from **Available Models**. Manual add, import, and auto-sync all update the same list. +
@@ -1587,11 +1723,11 @@ Models:
🆓 FREE Providers (Emergency Backup) -### iFlow (5 FREE models via OAuth) +### Qoder (5 FREE models via OAuth) ```bash -Dashboard → Connect iFlow -→ iFlow OAuth login +Dashboard → Connect Qoder +→ Qoder OAuth login → Unlimited usage Models: @@ -1789,7 +1925,7 @@ opencode - Check usage stats in Dashboard → Costs - Switch primary model to GLM/MiniMax -- Use free tier (Gemini CLI, iFlow) for non-critical tasks +- Use free tier (Gemini CLI, Qoder) for non-critical tasks **Dashboard/API ports are wrong** @@ -1811,7 +1947,9 @@ opencode **No request logs** -- Set `ENABLE_REQUEST_LOGS=true` in `.env` +- Request artifacts are written to `DATA_DIR/call_logs/` as one JSON file per request +- Enable pipeline capture from Dashboard → Logs → Request Logs if you need detailed per-stage payloads +- Set `APP_LOG_TO_FILE=true` if you also want application console logs in `logs/application/app.log` **Connection test shows "Invalid" for OpenAI-compatible providers** diff --git a/docs/i18n/he/README.md b/docs/i18n/he/README.md index 82f0401d5d..d1406a31cd 100644 --- a/docs/i18n/he/README.md +++ b/docs/i18n/he/README.md @@ -4,6 +4,7 @@ --- + ### Never stop coding. Smart routing to **FREE & low-cost AI models** with automatic fallback. _Your universal API proxy — one endpoint, 67+ providers, zero downtime. Now with **MCP & A2A** agent orchestration._ @@ -30,6 +31,30 @@ _Your universal API proxy — one endpoint, 67+ providers, zero downtime. Now wi --- +## Breaking Change: Unified Logging Upgrade + +> [!WARNING] +> **This release changes both the on-disk request log layout and the logging environment variables.** +> +> If you are upgrading an existing instance: +> +> - Request logs now live in `DATA_DIR/call_logs/YYYY-MM-DD/` as **one JSON artifact per request**. +> - The old `DATA_DIR/logs/` session folders and `DATA_DIR/log.txt` summary file are removed. +> - On the first startup after upgrading, OmniRoute creates a safety backup at `DATA_DIR/log_archives/*.zip` before removing the deprecated request log layout. +> - Legacy logging env vars such as `LOG_TO_FILE`, `LOG_FILE_PATH`, `LOG_MAX_FILE_SIZE`, `LOG_RETENTION_DAYS`, `LOG_LEVEL`, `LOG_FORMAT`, `ENABLE_REQUEST_LOGS`, `CALL_LOGS_MAX`, `CALL_LOG_PAYLOAD_MODE`, and `PROXY_LOG_MAX_ENTRIES` are no longer supported. +> - Use the new env model instead: +> - `APP_LOG_TO_FILE` +> - `APP_LOG_FILE_PATH` +> - `APP_LOG_MAX_FILE_SIZE` +> - `APP_LOG_RETENTION_DAYS` +> - `APP_LOG_LEVEL` +> - `APP_LOG_FORMAT` +> - `CALL_LOG_RETENTION_DAYS` +> +> For release details and upgrade notes, see the [CHANGELOG](CHANGELOG.md). + +--- + ## 🆕 What's New in v3.0.0 > **Upgrading from v2.9.5?** — See the [full CHANGELOG](CHANGELOG.md#300--2026-03-22-release-candidate--not-yet-merged-to-main) for all changes. @@ -203,7 +228,7 @@ When opening an issue, please run the system-info command and attach the generat npm run system-info ``` -This generates a `system-info.txt` with your Node.js version, OmniRoute version, OS details, installed CLI tools (iflow, gemini, claude, codex, antigravity, droid, etc.), Docker/PM2 status, and system packages — everything we need to reproduce your issue quickly. Attach the file directly to your GitHub issue. +This generates a `system-info.txt` with your Node.js version, OmniRoute version, OS details, installed CLI tools (qoder, gemini, claude, codex, antigravity, droid, etc.), Docker/PM2 status, and system packages — everything we need to reproduce your issue quickly. Attach the file directly to your GitHub issue. --- @@ -229,7 +254,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, │ ↓ budget limit ├─→ [Tier 3: CHEAP] GLM ($0.6/1M), MiniMax ($0.2/1M) │ ↓ budget limit - └─→ [Tier 4: FREE] iFlow, Qwen, Kiro (unlimited) + └─→ [Tier 4: FREE] Qoder, Qwen, Kiro (unlimited) Result: Never stop coding, minimal cost ``` @@ -296,7 +321,7 @@ Not everyone can pay $20–200/month for AI subscriptions. Students, devs from e **How OmniRoute solves it:** -- **Free Tier Providers Built-in** — Native support for 100% free providers: iFlow (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) +- **Free Tier Providers Built-in** — Native support for 100% free providers: Qoder (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) - **Ollama Cloud** — Cloud-hosted Ollama models at `api.ollama.com` with free "Light usage" tier; use `ollamacloud/` prefix - **Free-Only Combos** — Chain `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime - **NVIDIA NIM Free Access** — ~40 RPM dev-forever free access to 70+ models at build.nvidia.com (transitioning from credits to pure rate limits) @@ -360,7 +385,7 @@ Claude Code, Codex, Gemini CLI, Copilot — all use OAuth 2.0 with expiring toke **How OmniRoute solves it:** - **Auto Token Refresh** — OAuth tokens refresh in background before expiration -- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, iFlow +- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder - **Multi-Account OAuth** — Multiple accounts per provider via JWT/ID token extraction - **OAuth LAN/Remote Fix** — Private IP detection for `redirect_uri` + manual URL mode for remote servers - **OAuth Behind Nginx** — Uses `window.location.origin` for reverse proxy compatibility @@ -413,7 +438,7 @@ Installing, configuring, and maintaining an AI proxy across different environmen - **Electron Desktop App** — Native app for Windows/macOS/Linux with system tray, auto-start, offline mode - **Split-Port Mode** — API and Dashboard on separate ports for advanced scenarios (reverse proxy, container networking) - **Cloud Sync** — Config synchronization across devices via Cloudflare Workers -- **DB Backups** — Automatic backup, restore, export and import of all settings +- **DB Backups** — Automatic backup, restore, export and import of all settings, with `DISABLE_SQLITE_AUTO_BACKUP` for externally managed backups
@@ -737,7 +762,7 @@ Outcome: deep fallback depth for deadline-critical workloads | Step | Action | Providers Unlocked | | ---- | -------------------------------------------------- | ------------------------------------------------------------------ | | 1 | Connect **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — **unlimited** | -| 2 | Connect **iFlow** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | +| 2 | Connect **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | | 3 | Connect **Qwen** (Device Code) | qwen3-coder-plus, qwen3-coder-flash... — **unlimited** | | 4 | Connect **Gemini CLI** (Google OAuth) | gemini-3-flash, gemini-2.5-pro — **180K/mo free** | | 5 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | @@ -838,6 +863,113 @@ npm install PORT=20128 DASHBOARD_PORT=20129 NEXT_PUBLIC_BASE_URL=http://localhost:20129 npm run dev ``` +
+Void Linux (`xbps-src` template) + +For Void Linux users, you can build a native package using `xbps-src`. Save this block as `srcpkgs/omniroute/template`: + +```bash +# Template file for 'omniroute' +pkgname=omniroute +version=3.4.1 +revision=1 +hostmakedepends="nodejs python3 make" +depends="openssl" +short_desc="Universal AI gateway with smart routing for multiple LLM providers" +maintainer="zenobit " +license="MIT" +homepage="https://github.com/diegosouzapw/OmniRoute" +distfiles="https://github.com/diegosouzapw/OmniRoute/archive/refs/tags/v${version}.tar.gz" +checksum=009400afee90a9f32599d8fe734145cfd84098140b7287990183dde45ae2245b +system_accounts="_omniroute" +omniroute_homedir="/var/lib/omniroute" +export NODE_ENV=production +export npm_config_engine_strict=false +export npm_config_loglevel=error +export npm_config_fund=false +export npm_config_audit=false + +do_build() { + # Determine target CPU arch for node-gyp + local _gyp_arch + case "$XBPS_TARGET_MACHINE" in + aarch64*) _gyp_arch=arm64 ;; + armv7*|armv6*) _gyp_arch=arm ;; + i686*) _gyp_arch=ia32 ;; + *) _gyp_arch=x64 ;; + esac + + # 1) Install all deps – skip scripts (no network in do_build, native modules + # compiled separately below; better-sqlite3 is serverExternalPackage so + # Next.js does not execute it during next build) + NODE_ENV=development npm ci --ignore-scripts + + # 2) Build the Next.js standalone bundle + npm run build + + # 3) Copy static assets into standalone + cp -r .next/static .next/standalone/.next/static + [ -d public ] && cp -r public .next/standalone/public || true + + # 4) Compile better-sqlite3 native binding for the target architecture. + # Use node-gyp directly so CC/CXX from xbps-src cross-toolchain are used + # without npm altering them. + local _node_gyp=/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js + (cd node_modules/better-sqlite3 && node "$_node_gyp" rebuild --arch="$_gyp_arch") + + # 5) Place the compiled binding into the standalone bundle + local _bs3_release=.next/standalone/node_modules/better-sqlite3/build/Release + mkdir -p "$_bs3_release" + cp node_modules/better-sqlite3/build/Release/better_sqlite3.node "$_bs3_release/" + + # 6) Remove arch-specific sharp bundles – upstream sets images.unoptimized=true + # so sharp is not used at runtime; x64 .so files would break aarch64 strip + rm -rf .next/standalone/node_modules/@img + + # 7) Copy pino runtime deps omitted by Next.js static analysis: + # pino-abstract-transport – required by pino's worker thread + # split2 – dep of pino-abstract-transport + # process-warning – dep of pino itself + for _mod in pino-abstract-transport split2 process-warning; do + cp -r "node_modules/$_mod" .next/standalone/node_modules/ + done +} + +do_check() { + npm run test:unit +} + +do_install() { + vmkdir usr/lib/omniroute/.next + + vcopy .next/standalone/. usr/lib/omniroute/.next/standalone + + # Prevent removal of empty Next.js app router dirs by the post-install hook + for _d in \ + .next/standalone/.next/server/app/dashboard \ + .next/standalone/.next/server/app/dashboard/settings \ + .next/standalone/.next/server/app/dashboard/providers; do + touch "${DESTDIR}/usr/lib/omniroute/${_d}/.keep" + done + + cat > "${WRKDIR}/omniroute" <<'EOF' +#!/bin/sh +export PORT="${PORT:-20128}" +export DATA_DIR="${DATA_DIR:-${XDG_DATA_HOME:-${HOME}/.local/share}/omniroute}" +export LOG_TO_FILE="${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 +} +``` + +
+ --- ## 🐳 Docker @@ -886,6 +1018,7 @@ Notes: - Quick Tunnel URLs are temporary and change after every restart. - Managed install currently supports Linux, macOS, and Windows on `x64` / `arm64`. +- Docker images bundle system CA roots and pass them to managed `cloudflared`, which avoids TLS trust failures when the tunnel bootstraps inside the container. - Set `CLOUDFLARED_BIN=/absolute/path/to/cloudflared` if you want OmniRoute to use an existing binary instead of downloading one. **Using Docker Compose with Caddy (HTTPS Auto-TLS):** @@ -983,7 +1116,7 @@ When minimized, OmniRoute lives in your system tray with quick actions: | | MiniMax M2.1 | $0.2/1M | 5-hour rolling | Cheapest option | | | Kimi K2.5 (Moonshot API) 🆕 | Pay-per-use | None | Direct Moonshot API access | | | Kimi K2 | $9/mo flat | 10M tokens/mo | Predictable cost | -| **🆓 FREE** | iFlow | **$0** | Unlimited | 5 models unlimited | +| **🆓 FREE** | Qoder | **$0** | Unlimited | 5 models unlimited | | | Qwen | **$0** | Unlimited | 4 models unlimited | | | Kiro | **$0** | Unlimited | Claude Sonnet/Haiku (AWS Builder) | | | LongCat Flash-Lite 🆕 | **$0** (50M tok/day 🔥) | 1 RPS | Largest free quota on Earth | @@ -998,7 +1131,7 @@ When minimized, OmniRoute lives in your system tray with quick actions: ``` # 🆓 Ultimate Free Stack 2026 — 11 Providers, $0 Forever Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -iFlow (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED +Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed Qwen (qw/) → qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next UNLIMITED @@ -1028,7 +1161,7 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day | `claude-haiku-4.5` | `kr/` | **Unlimited** | No reported daily cap | | `claude-opus-4.6` | `kr/` | **Unlimited** | Latest Opus via Kiro | -### 🟢 IFLOW MODELS (Free OAuth — No Credit Card) +### 🟢 QODER MODELS (Free OAuth — No Credit Card) | Model | Prefix | Limit | Rate Limit | | ------------------ | ------ | ------------- | --------------- | @@ -1127,7 +1260,7 @@ Available free: `qwen3-235b-a22b-instruct-2507` (Qwen3 235B!), `llama-3.1-70b-in > > ``` > Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -> iFlow (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED +> Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED > LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 > Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed > Qwen (qw/) → qwen3-coder models UNLIMITED @@ -1279,21 +1412,22 @@ OmniRoute v2.0 is built as an operational platform, not just a relay proxy. ### ☁️ Deployment & Platform -| Feature | What It Does | -| ----------------------------- | --------------------------------------------------------- | -| 🌐 **Deploy Anywhere** | Localhost, VPS, Docker, Cloud environments | -| 🚇 **Cloudflare Tunnel** 🆕 | One-click Quick Tunnel integration from the dashboard | -| 💾 **Cloud Sync** | Configuration sync via cloud worker | -| 🔄 **Backup/Restore** | Export/import and disaster recovery flows | -| 🧙 **Onboarding Wizard** | First-run guided setup | -| 🔧 **CLI Tools Dashboard** | One-click setup for popular coding tools | -| 🎮 **Model Playground** | Test any provider/model/endpoint from the dashboard | -| 🔏 **CLI Fingerprint Toggle** | Per-provider fingerprint matching in Settings > Security | -| 🌐 **i18n (30 languages)** | Full dashboard + docs language support with RTL coverage | -| 🧹 **Clear All Models** | One-click model list clearing in provider details | -| 👁️ **Sidebar Controls** 🆕 | Hide components and integrations from Appearance Settings | -| 📋 **Issue Templates** | Standardized GitHub templates for bugs and features | -| 📂 **Custom Data Directory** | `DATA_DIR` override for storage location | +| Feature | What It Does | +| ------------------------------ | --------------------------------------------------------------------- | +| 🌐 **Deploy Anywhere** | Localhost, VPS, Docker, Cloud environments | +| 🚇 **Cloudflare Tunnel** 🆕 | One-click Quick Tunnel integration from the dashboard | +| 🔑 **API Key Model Filtering** | Native /v1/models response filtered via assigned Bearer context roles | +| ⚡ **Smart Cache Bypass** | Configurable TTL heuristics and forced refetch controls | +| 🔄 **Backup/Restore** | Export/import and disaster recovery flows | +| 🧙 **Onboarding Wizard** | First-run guided setup | +| 🔧 **CLI Tools Dashboard** | One-click setup for popular coding tools | +| 🎮 **Model Playground** | Test any provider/model/endpoint from the dashboard | +| 🔏 **CLI Fingerprint Toggle** | Per-provider fingerprint matching in Settings > Security | +| 🌐 **i18n (30 languages)** | Full dashboard + docs language support with RTL coverage | +| 🧹 **Clear All Models** | One-click model list clearing in provider details | +| 👁️ **Sidebar Controls** 🆕 | Hide components and integrations from Appearance Settings | +| 📋 **Issue Templates** | Standardized GitHub templates for bugs and features | +| 📂 **Custom Data Directory** | `DATA_DIR` override for storage location | ### Feature Deep Dive @@ -1545,6 +1679,8 @@ Models: **Models:** Access 100+ models from all major providers through a single API key. +**Dashboard behavior:** OpenRouter models are managed from **Available Models**. Manual add, import, and auto-sync all update the same list. +
@@ -1587,11 +1723,11 @@ Models:
🆓 FREE Providers (Emergency Backup) -### iFlow (5 FREE models via OAuth) +### Qoder (5 FREE models via OAuth) ```bash -Dashboard → Connect iFlow -→ iFlow OAuth login +Dashboard → Connect Qoder +→ Qoder OAuth login → Unlimited usage Models: @@ -1789,7 +1925,7 @@ opencode - Check usage stats in Dashboard → Costs - Switch primary model to GLM/MiniMax -- Use free tier (Gemini CLI, iFlow) for non-critical tasks +- Use free tier (Gemini CLI, Qoder) for non-critical tasks **Dashboard/API ports are wrong** @@ -1811,7 +1947,9 @@ opencode **No request logs** -- Set `ENABLE_REQUEST_LOGS=true` in `.env` +- Request artifacts are written to `DATA_DIR/call_logs/` as one JSON file per request +- Enable pipeline capture from Dashboard → Logs → Request Logs if you need detailed per-stage payloads +- Set `APP_LOG_TO_FILE=true` if you also want application console logs in `logs/application/app.log` **Connection test shows "Invalid" for OpenAI-compatible providers** diff --git a/docs/i18n/hu/README.md b/docs/i18n/hu/README.md index 40a6c5477d..6281ea4d2f 100644 --- a/docs/i18n/hu/README.md +++ b/docs/i18n/hu/README.md @@ -4,6 +4,7 @@ --- + ### Never stop coding. Smart routing to **FREE & low-cost AI models** with automatic fallback. _Your universal API proxy — one endpoint, 67+ providers, zero downtime. Now with **MCP & A2A** agent orchestration._ @@ -30,6 +31,30 @@ _Your universal API proxy — one endpoint, 67+ providers, zero downtime. Now wi --- +## Breaking Change: Unified Logging Upgrade + +> [!WARNING] +> **This release changes both the on-disk request log layout and the logging environment variables.** +> +> If you are upgrading an existing instance: +> +> - Request logs now live in `DATA_DIR/call_logs/YYYY-MM-DD/` as **one JSON artifact per request**. +> - The old `DATA_DIR/logs/` session folders and `DATA_DIR/log.txt` summary file are removed. +> - On the first startup after upgrading, OmniRoute creates a safety backup at `DATA_DIR/log_archives/*.zip` before removing the deprecated request log layout. +> - Legacy logging env vars such as `LOG_TO_FILE`, `LOG_FILE_PATH`, `LOG_MAX_FILE_SIZE`, `LOG_RETENTION_DAYS`, `LOG_LEVEL`, `LOG_FORMAT`, `ENABLE_REQUEST_LOGS`, `CALL_LOGS_MAX`, `CALL_LOG_PAYLOAD_MODE`, and `PROXY_LOG_MAX_ENTRIES` are no longer supported. +> - Use the new env model instead: +> - `APP_LOG_TO_FILE` +> - `APP_LOG_FILE_PATH` +> - `APP_LOG_MAX_FILE_SIZE` +> - `APP_LOG_RETENTION_DAYS` +> - `APP_LOG_LEVEL` +> - `APP_LOG_FORMAT` +> - `CALL_LOG_RETENTION_DAYS` +> +> For release details and upgrade notes, see the [CHANGELOG](CHANGELOG.md). + +--- + ## 🆕 What's New in v3.0.0 > **Upgrading from v2.9.5?** — See the [full CHANGELOG](CHANGELOG.md#300--2026-03-22-release-candidate--not-yet-merged-to-main) for all changes. @@ -203,7 +228,7 @@ When opening an issue, please run the system-info command and attach the generat npm run system-info ``` -This generates a `system-info.txt` with your Node.js version, OmniRoute version, OS details, installed CLI tools (iflow, gemini, claude, codex, antigravity, droid, etc.), Docker/PM2 status, and system packages — everything we need to reproduce your issue quickly. Attach the file directly to your GitHub issue. +This generates a `system-info.txt` with your Node.js version, OmniRoute version, OS details, installed CLI tools (qoder, gemini, claude, codex, antigravity, droid, etc.), Docker/PM2 status, and system packages — everything we need to reproduce your issue quickly. Attach the file directly to your GitHub issue. --- @@ -229,7 +254,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, │ ↓ budget limit ├─→ [Tier 3: CHEAP] GLM ($0.6/1M), MiniMax ($0.2/1M) │ ↓ budget limit - └─→ [Tier 4: FREE] iFlow, Qwen, Kiro (unlimited) + └─→ [Tier 4: FREE] Qoder, Qwen, Kiro (unlimited) Result: Never stop coding, minimal cost ``` @@ -296,7 +321,7 @@ Not everyone can pay $20–200/month for AI subscriptions. Students, devs from e **How OmniRoute solves it:** -- **Free Tier Providers Built-in** — Native support for 100% free providers: iFlow (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) +- **Free Tier Providers Built-in** — Native support for 100% free providers: Qoder (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) - **Ollama Cloud** — Cloud-hosted Ollama models at `api.ollama.com` with free "Light usage" tier; use `ollamacloud/` prefix - **Free-Only Combos** — Chain `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime - **NVIDIA NIM Free Access** — ~40 RPM dev-forever free access to 70+ models at build.nvidia.com (transitioning from credits to pure rate limits) @@ -360,7 +385,7 @@ Claude Code, Codex, Gemini CLI, Copilot — all use OAuth 2.0 with expiring toke **How OmniRoute solves it:** - **Auto Token Refresh** — OAuth tokens refresh in background before expiration -- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, iFlow +- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder - **Multi-Account OAuth** — Multiple accounts per provider via JWT/ID token extraction - **OAuth LAN/Remote Fix** — Private IP detection for `redirect_uri` + manual URL mode for remote servers - **OAuth Behind Nginx** — Uses `window.location.origin` for reverse proxy compatibility @@ -413,7 +438,7 @@ Installing, configuring, and maintaining an AI proxy across different environmen - **Electron Desktop App** — Native app for Windows/macOS/Linux with system tray, auto-start, offline mode - **Split-Port Mode** — API and Dashboard on separate ports for advanced scenarios (reverse proxy, container networking) - **Cloud Sync** — Config synchronization across devices via Cloudflare Workers -- **DB Backups** — Automatic backup, restore, export and import of all settings +- **DB Backups** — Automatic backup, restore, export and import of all settings, with `DISABLE_SQLITE_AUTO_BACKUP` for externally managed backups
@@ -737,7 +762,7 @@ Outcome: deep fallback depth for deadline-critical workloads | Step | Action | Providers Unlocked | | ---- | -------------------------------------------------- | ------------------------------------------------------------------ | | 1 | Connect **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — **unlimited** | -| 2 | Connect **iFlow** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | +| 2 | Connect **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | | 3 | Connect **Qwen** (Device Code) | qwen3-coder-plus, qwen3-coder-flash... — **unlimited** | | 4 | Connect **Gemini CLI** (Google OAuth) | gemini-3-flash, gemini-2.5-pro — **180K/mo free** | | 5 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | @@ -838,6 +863,113 @@ npm install PORT=20128 DASHBOARD_PORT=20129 NEXT_PUBLIC_BASE_URL=http://localhost:20129 npm run dev ``` +
+Void Linux (`xbps-src` template) + +For Void Linux users, you can build a native package using `xbps-src`. Save this block as `srcpkgs/omniroute/template`: + +```bash +# Template file for 'omniroute' +pkgname=omniroute +version=3.4.1 +revision=1 +hostmakedepends="nodejs python3 make" +depends="openssl" +short_desc="Universal AI gateway with smart routing for multiple LLM providers" +maintainer="zenobit " +license="MIT" +homepage="https://github.com/diegosouzapw/OmniRoute" +distfiles="https://github.com/diegosouzapw/OmniRoute/archive/refs/tags/v${version}.tar.gz" +checksum=009400afee90a9f32599d8fe734145cfd84098140b7287990183dde45ae2245b +system_accounts="_omniroute" +omniroute_homedir="/var/lib/omniroute" +export NODE_ENV=production +export npm_config_engine_strict=false +export npm_config_loglevel=error +export npm_config_fund=false +export npm_config_audit=false + +do_build() { + # Determine target CPU arch for node-gyp + local _gyp_arch + case "$XBPS_TARGET_MACHINE" in + aarch64*) _gyp_arch=arm64 ;; + armv7*|armv6*) _gyp_arch=arm ;; + i686*) _gyp_arch=ia32 ;; + *) _gyp_arch=x64 ;; + esac + + # 1) Install all deps – skip scripts (no network in do_build, native modules + # compiled separately below; better-sqlite3 is serverExternalPackage so + # Next.js does not execute it during next build) + NODE_ENV=development npm ci --ignore-scripts + + # 2) Build the Next.js standalone bundle + npm run build + + # 3) Copy static assets into standalone + cp -r .next/static .next/standalone/.next/static + [ -d public ] && cp -r public .next/standalone/public || true + + # 4) Compile better-sqlite3 native binding for the target architecture. + # Use node-gyp directly so CC/CXX from xbps-src cross-toolchain are used + # without npm altering them. + local _node_gyp=/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js + (cd node_modules/better-sqlite3 && node "$_node_gyp" rebuild --arch="$_gyp_arch") + + # 5) Place the compiled binding into the standalone bundle + local _bs3_release=.next/standalone/node_modules/better-sqlite3/build/Release + mkdir -p "$_bs3_release" + cp node_modules/better-sqlite3/build/Release/better_sqlite3.node "$_bs3_release/" + + # 6) Remove arch-specific sharp bundles – upstream sets images.unoptimized=true + # so sharp is not used at runtime; x64 .so files would break aarch64 strip + rm -rf .next/standalone/node_modules/@img + + # 7) Copy pino runtime deps omitted by Next.js static analysis: + # pino-abstract-transport – required by pino's worker thread + # split2 – dep of pino-abstract-transport + # process-warning – dep of pino itself + for _mod in pino-abstract-transport split2 process-warning; do + cp -r "node_modules/$_mod" .next/standalone/node_modules/ + done +} + +do_check() { + npm run test:unit +} + +do_install() { + vmkdir usr/lib/omniroute/.next + + vcopy .next/standalone/. usr/lib/omniroute/.next/standalone + + # Prevent removal of empty Next.js app router dirs by the post-install hook + for _d in \ + .next/standalone/.next/server/app/dashboard \ + .next/standalone/.next/server/app/dashboard/settings \ + .next/standalone/.next/server/app/dashboard/providers; do + touch "${DESTDIR}/usr/lib/omniroute/${_d}/.keep" + done + + cat > "${WRKDIR}/omniroute" <<'EOF' +#!/bin/sh +export PORT="${PORT:-20128}" +export DATA_DIR="${DATA_DIR:-${XDG_DATA_HOME:-${HOME}/.local/share}/omniroute}" +export LOG_TO_FILE="${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 +} +``` + +
+ --- ## 🐳 Docker @@ -886,6 +1018,7 @@ Notes: - Quick Tunnel URLs are temporary and change after every restart. - Managed install currently supports Linux, macOS, and Windows on `x64` / `arm64`. +- Docker images bundle system CA roots and pass them to managed `cloudflared`, which avoids TLS trust failures when the tunnel bootstraps inside the container. - Set `CLOUDFLARED_BIN=/absolute/path/to/cloudflared` if you want OmniRoute to use an existing binary instead of downloading one. **Using Docker Compose with Caddy (HTTPS Auto-TLS):** @@ -983,7 +1116,7 @@ When minimized, OmniRoute lives in your system tray with quick actions: | | MiniMax M2.1 | $0.2/1M | 5-hour rolling | Cheapest option | | | Kimi K2.5 (Moonshot API) 🆕 | Pay-per-use | None | Direct Moonshot API access | | | Kimi K2 | $9/mo flat | 10M tokens/mo | Predictable cost | -| **🆓 FREE** | iFlow | **$0** | Unlimited | 5 models unlimited | +| **🆓 FREE** | Qoder | **$0** | Unlimited | 5 models unlimited | | | Qwen | **$0** | Unlimited | 4 models unlimited | | | Kiro | **$0** | Unlimited | Claude Sonnet/Haiku (AWS Builder) | | | LongCat Flash-Lite 🆕 | **$0** (50M tok/day 🔥) | 1 RPS | Largest free quota on Earth | @@ -998,7 +1131,7 @@ When minimized, OmniRoute lives in your system tray with quick actions: ``` # 🆓 Ultimate Free Stack 2026 — 11 Providers, $0 Forever Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -iFlow (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED +Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed Qwen (qw/) → qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next UNLIMITED @@ -1028,7 +1161,7 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day | `claude-haiku-4.5` | `kr/` | **Unlimited** | No reported daily cap | | `claude-opus-4.6` | `kr/` | **Unlimited** | Latest Opus via Kiro | -### 🟢 IFLOW MODELS (Free OAuth — No Credit Card) +### 🟢 QODER MODELS (Free OAuth — No Credit Card) | Model | Prefix | Limit | Rate Limit | | ------------------ | ------ | ------------- | --------------- | @@ -1127,7 +1260,7 @@ Available free: `qwen3-235b-a22b-instruct-2507` (Qwen3 235B!), `llama-3.1-70b-in > > ``` > Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -> iFlow (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED +> Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED > LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 > Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed > Qwen (qw/) → qwen3-coder models UNLIMITED @@ -1279,21 +1412,22 @@ OmniRoute v2.0 is built as an operational platform, not just a relay proxy. ### ☁️ Deployment & Platform -| Feature | What It Does | -| ----------------------------- | --------------------------------------------------------- | -| 🌐 **Deploy Anywhere** | Localhost, VPS, Docker, Cloud environments | -| 🚇 **Cloudflare Tunnel** 🆕 | One-click Quick Tunnel integration from the dashboard | -| 💾 **Cloud Sync** | Configuration sync via cloud worker | -| 🔄 **Backup/Restore** | Export/import and disaster recovery flows | -| 🧙 **Onboarding Wizard** | First-run guided setup | -| 🔧 **CLI Tools Dashboard** | One-click setup for popular coding tools | -| 🎮 **Model Playground** | Test any provider/model/endpoint from the dashboard | -| 🔏 **CLI Fingerprint Toggle** | Per-provider fingerprint matching in Settings > Security | -| 🌐 **i18n (30 languages)** | Full dashboard + docs language support with RTL coverage | -| 🧹 **Clear All Models** | One-click model list clearing in provider details | -| 👁️ **Sidebar Controls** 🆕 | Hide components and integrations from Appearance Settings | -| 📋 **Issue Templates** | Standardized GitHub templates for bugs and features | -| 📂 **Custom Data Directory** | `DATA_DIR` override for storage location | +| Feature | What It Does | +| ------------------------------ | --------------------------------------------------------------------- | +| 🌐 **Deploy Anywhere** | Localhost, VPS, Docker, Cloud environments | +| 🚇 **Cloudflare Tunnel** 🆕 | One-click Quick Tunnel integration from the dashboard | +| 🔑 **API Key Model Filtering** | Native /v1/models response filtered via assigned Bearer context roles | +| ⚡ **Smart Cache Bypass** | Configurable TTL heuristics and forced refetch controls | +| 🔄 **Backup/Restore** | Export/import and disaster recovery flows | +| 🧙 **Onboarding Wizard** | First-run guided setup | +| 🔧 **CLI Tools Dashboard** | One-click setup for popular coding tools | +| 🎮 **Model Playground** | Test any provider/model/endpoint from the dashboard | +| 🔏 **CLI Fingerprint Toggle** | Per-provider fingerprint matching in Settings > Security | +| 🌐 **i18n (30 languages)** | Full dashboard + docs language support with RTL coverage | +| 🧹 **Clear All Models** | One-click model list clearing in provider details | +| 👁️ **Sidebar Controls** 🆕 | Hide components and integrations from Appearance Settings | +| 📋 **Issue Templates** | Standardized GitHub templates for bugs and features | +| 📂 **Custom Data Directory** | `DATA_DIR` override for storage location | ### Feature Deep Dive @@ -1545,6 +1679,8 @@ Models: **Models:** Access 100+ models from all major providers through a single API key. +**Dashboard behavior:** OpenRouter models are managed from **Available Models**. Manual add, import, and auto-sync all update the same list. +
@@ -1587,11 +1723,11 @@ Models:
🆓 FREE Providers (Emergency Backup) -### iFlow (5 FREE models via OAuth) +### Qoder (5 FREE models via OAuth) ```bash -Dashboard → Connect iFlow -→ iFlow OAuth login +Dashboard → Connect Qoder +→ Qoder OAuth login → Unlimited usage Models: @@ -1789,7 +1925,7 @@ opencode - Check usage stats in Dashboard → Costs - Switch primary model to GLM/MiniMax -- Use free tier (Gemini CLI, iFlow) for non-critical tasks +- Use free tier (Gemini CLI, Qoder) for non-critical tasks **Dashboard/API ports are wrong** @@ -1811,7 +1947,9 @@ opencode **No request logs** -- Set `ENABLE_REQUEST_LOGS=true` in `.env` +- Request artifacts are written to `DATA_DIR/call_logs/` as one JSON file per request +- Enable pipeline capture from Dashboard → Logs → Request Logs if you need detailed per-stage payloads +- Set `APP_LOG_TO_FILE=true` if you also want application console logs in `logs/application/app.log` **Connection test shows "Invalid" for OpenAI-compatible providers** diff --git a/docs/i18n/id/README.md b/docs/i18n/id/README.md index 2bbe5a1d4e..e5145fcd6e 100644 --- a/docs/i18n/id/README.md +++ b/docs/i18n/id/README.md @@ -4,6 +4,7 @@ --- + ### Never stop coding. Smart routing to **FREE & low-cost AI models** with automatic fallback. _Your universal API proxy — one endpoint, 67+ providers, zero downtime. Now with **MCP & A2A** agent orchestration._ @@ -30,6 +31,30 @@ _Your universal API proxy — one endpoint, 67+ providers, zero downtime. Now wi --- +## Breaking Change: Unified Logging Upgrade + +> [!WARNING] +> **This release changes both the on-disk request log layout and the logging environment variables.** +> +> If you are upgrading an existing instance: +> +> - Request logs now live in `DATA_DIR/call_logs/YYYY-MM-DD/` as **one JSON artifact per request**. +> - The old `DATA_DIR/logs/` session folders and `DATA_DIR/log.txt` summary file are removed. +> - On the first startup after upgrading, OmniRoute creates a safety backup at `DATA_DIR/log_archives/*.zip` before removing the deprecated request log layout. +> - Legacy logging env vars such as `LOG_TO_FILE`, `LOG_FILE_PATH`, `LOG_MAX_FILE_SIZE`, `LOG_RETENTION_DAYS`, `LOG_LEVEL`, `LOG_FORMAT`, `ENABLE_REQUEST_LOGS`, `CALL_LOGS_MAX`, `CALL_LOG_PAYLOAD_MODE`, and `PROXY_LOG_MAX_ENTRIES` are no longer supported. +> - Use the new env model instead: +> - `APP_LOG_TO_FILE` +> - `APP_LOG_FILE_PATH` +> - `APP_LOG_MAX_FILE_SIZE` +> - `APP_LOG_RETENTION_DAYS` +> - `APP_LOG_LEVEL` +> - `APP_LOG_FORMAT` +> - `CALL_LOG_RETENTION_DAYS` +> +> For release details and upgrade notes, see the [CHANGELOG](CHANGELOG.md). + +--- + ## 🆕 What's New in v3.0.0 > **Upgrading from v2.9.5?** — See the [full CHANGELOG](CHANGELOG.md#300--2026-03-22-release-candidate--not-yet-merged-to-main) for all changes. @@ -203,7 +228,7 @@ When opening an issue, please run the system-info command and attach the generat npm run system-info ``` -This generates a `system-info.txt` with your Node.js version, OmniRoute version, OS details, installed CLI tools (iflow, gemini, claude, codex, antigravity, droid, etc.), Docker/PM2 status, and system packages — everything we need to reproduce your issue quickly. Attach the file directly to your GitHub issue. +This generates a `system-info.txt` with your Node.js version, OmniRoute version, OS details, installed CLI tools (qoder, gemini, claude, codex, antigravity, droid, etc.), Docker/PM2 status, and system packages — everything we need to reproduce your issue quickly. Attach the file directly to your GitHub issue. --- @@ -229,7 +254,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, │ ↓ budget limit ├─→ [Tier 3: CHEAP] GLM ($0.6/1M), MiniMax ($0.2/1M) │ ↓ budget limit - └─→ [Tier 4: FREE] iFlow, Qwen, Kiro (unlimited) + └─→ [Tier 4: FREE] Qoder, Qwen, Kiro (unlimited) Result: Never stop coding, minimal cost ``` @@ -296,7 +321,7 @@ Not everyone can pay $20–200/month for AI subscriptions. Students, devs from e **How OmniRoute solves it:** -- **Free Tier Providers Built-in** — Native support for 100% free providers: iFlow (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) +- **Free Tier Providers Built-in** — Native support for 100% free providers: Qoder (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) - **Ollama Cloud** — Cloud-hosted Ollama models at `api.ollama.com` with free "Light usage" tier; use `ollamacloud/` prefix - **Free-Only Combos** — Chain `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime - **NVIDIA NIM Free Access** — ~40 RPM dev-forever free access to 70+ models at build.nvidia.com (transitioning from credits to pure rate limits) @@ -360,7 +385,7 @@ Claude Code, Codex, Gemini CLI, Copilot — all use OAuth 2.0 with expiring toke **How OmniRoute solves it:** - **Auto Token Refresh** — OAuth tokens refresh in background before expiration -- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, iFlow +- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder - **Multi-Account OAuth** — Multiple accounts per provider via JWT/ID token extraction - **OAuth LAN/Remote Fix** — Private IP detection for `redirect_uri` + manual URL mode for remote servers - **OAuth Behind Nginx** — Uses `window.location.origin` for reverse proxy compatibility @@ -413,7 +438,7 @@ Installing, configuring, and maintaining an AI proxy across different environmen - **Electron Desktop App** — Native app for Windows/macOS/Linux with system tray, auto-start, offline mode - **Split-Port Mode** — API and Dashboard on separate ports for advanced scenarios (reverse proxy, container networking) - **Cloud Sync** — Config synchronization across devices via Cloudflare Workers -- **DB Backups** — Automatic backup, restore, export and import of all settings +- **DB Backups** — Automatic backup, restore, export and import of all settings, with `DISABLE_SQLITE_AUTO_BACKUP` for externally managed backups
@@ -737,7 +762,7 @@ Outcome: deep fallback depth for deadline-critical workloads | Step | Action | Providers Unlocked | | ---- | -------------------------------------------------- | ------------------------------------------------------------------ | | 1 | Connect **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — **unlimited** | -| 2 | Connect **iFlow** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | +| 2 | Connect **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | | 3 | Connect **Qwen** (Device Code) | qwen3-coder-plus, qwen3-coder-flash... — **unlimited** | | 4 | Connect **Gemini CLI** (Google OAuth) | gemini-3-flash, gemini-2.5-pro — **180K/mo free** | | 5 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | @@ -838,6 +863,113 @@ npm install PORT=20128 DASHBOARD_PORT=20129 NEXT_PUBLIC_BASE_URL=http://localhost:20129 npm run dev ``` +
+Void Linux (`xbps-src` template) + +For Void Linux users, you can build a native package using `xbps-src`. Save this block as `srcpkgs/omniroute/template`: + +```bash +# Template file for 'omniroute' +pkgname=omniroute +version=3.4.1 +revision=1 +hostmakedepends="nodejs python3 make" +depends="openssl" +short_desc="Universal AI gateway with smart routing for multiple LLM providers" +maintainer="zenobit " +license="MIT" +homepage="https://github.com/diegosouzapw/OmniRoute" +distfiles="https://github.com/diegosouzapw/OmniRoute/archive/refs/tags/v${version}.tar.gz" +checksum=009400afee90a9f32599d8fe734145cfd84098140b7287990183dde45ae2245b +system_accounts="_omniroute" +omniroute_homedir="/var/lib/omniroute" +export NODE_ENV=production +export npm_config_engine_strict=false +export npm_config_loglevel=error +export npm_config_fund=false +export npm_config_audit=false + +do_build() { + # Determine target CPU arch for node-gyp + local _gyp_arch + case "$XBPS_TARGET_MACHINE" in + aarch64*) _gyp_arch=arm64 ;; + armv7*|armv6*) _gyp_arch=arm ;; + i686*) _gyp_arch=ia32 ;; + *) _gyp_arch=x64 ;; + esac + + # 1) Install all deps – skip scripts (no network in do_build, native modules + # compiled separately below; better-sqlite3 is serverExternalPackage so + # Next.js does not execute it during next build) + NODE_ENV=development npm ci --ignore-scripts + + # 2) Build the Next.js standalone bundle + npm run build + + # 3) Copy static assets into standalone + cp -r .next/static .next/standalone/.next/static + [ -d public ] && cp -r public .next/standalone/public || true + + # 4) Compile better-sqlite3 native binding for the target architecture. + # Use node-gyp directly so CC/CXX from xbps-src cross-toolchain are used + # without npm altering them. + local _node_gyp=/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js + (cd node_modules/better-sqlite3 && node "$_node_gyp" rebuild --arch="$_gyp_arch") + + # 5) Place the compiled binding into the standalone bundle + local _bs3_release=.next/standalone/node_modules/better-sqlite3/build/Release + mkdir -p "$_bs3_release" + cp node_modules/better-sqlite3/build/Release/better_sqlite3.node "$_bs3_release/" + + # 6) Remove arch-specific sharp bundles – upstream sets images.unoptimized=true + # so sharp is not used at runtime; x64 .so files would break aarch64 strip + rm -rf .next/standalone/node_modules/@img + + # 7) Copy pino runtime deps omitted by Next.js static analysis: + # pino-abstract-transport – required by pino's worker thread + # split2 – dep of pino-abstract-transport + # process-warning – dep of pino itself + for _mod in pino-abstract-transport split2 process-warning; do + cp -r "node_modules/$_mod" .next/standalone/node_modules/ + done +} + +do_check() { + npm run test:unit +} + +do_install() { + vmkdir usr/lib/omniroute/.next + + vcopy .next/standalone/. usr/lib/omniroute/.next/standalone + + # Prevent removal of empty Next.js app router dirs by the post-install hook + for _d in \ + .next/standalone/.next/server/app/dashboard \ + .next/standalone/.next/server/app/dashboard/settings \ + .next/standalone/.next/server/app/dashboard/providers; do + touch "${DESTDIR}/usr/lib/omniroute/${_d}/.keep" + done + + cat > "${WRKDIR}/omniroute" <<'EOF' +#!/bin/sh +export PORT="${PORT:-20128}" +export DATA_DIR="${DATA_DIR:-${XDG_DATA_HOME:-${HOME}/.local/share}/omniroute}" +export LOG_TO_FILE="${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 +} +``` + +
+ --- ## 🐳 Docker @@ -886,6 +1018,7 @@ Notes: - Quick Tunnel URLs are temporary and change after every restart. - Managed install currently supports Linux, macOS, and Windows on `x64` / `arm64`. +- Docker images bundle system CA roots and pass them to managed `cloudflared`, which avoids TLS trust failures when the tunnel bootstraps inside the container. - Set `CLOUDFLARED_BIN=/absolute/path/to/cloudflared` if you want OmniRoute to use an existing binary instead of downloading one. **Using Docker Compose with Caddy (HTTPS Auto-TLS):** @@ -983,7 +1116,7 @@ When minimized, OmniRoute lives in your system tray with quick actions: | | MiniMax M2.1 | $0.2/1M | 5-hour rolling | Cheapest option | | | Kimi K2.5 (Moonshot API) 🆕 | Pay-per-use | None | Direct Moonshot API access | | | Kimi K2 | $9/mo flat | 10M tokens/mo | Predictable cost | -| **🆓 FREE** | iFlow | **$0** | Unlimited | 5 models unlimited | +| **🆓 FREE** | Qoder | **$0** | Unlimited | 5 models unlimited | | | Qwen | **$0** | Unlimited | 4 models unlimited | | | Kiro | **$0** | Unlimited | Claude Sonnet/Haiku (AWS Builder) | | | LongCat Flash-Lite 🆕 | **$0** (50M tok/day 🔥) | 1 RPS | Largest free quota on Earth | @@ -998,7 +1131,7 @@ When minimized, OmniRoute lives in your system tray with quick actions: ``` # 🆓 Ultimate Free Stack 2026 — 11 Providers, $0 Forever Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -iFlow (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED +Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed Qwen (qw/) → qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next UNLIMITED @@ -1028,7 +1161,7 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day | `claude-haiku-4.5` | `kr/` | **Unlimited** | No reported daily cap | | `claude-opus-4.6` | `kr/` | **Unlimited** | Latest Opus via Kiro | -### 🟢 IFLOW MODELS (Free OAuth — No Credit Card) +### 🟢 QODER MODELS (Free OAuth — No Credit Card) | Model | Prefix | Limit | Rate Limit | | ------------------ | ------ | ------------- | --------------- | @@ -1127,7 +1260,7 @@ Available free: `qwen3-235b-a22b-instruct-2507` (Qwen3 235B!), `llama-3.1-70b-in > > ``` > Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -> iFlow (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED +> Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED > LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 > Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed > Qwen (qw/) → qwen3-coder models UNLIMITED @@ -1279,21 +1412,22 @@ OmniRoute v2.0 is built as an operational platform, not just a relay proxy. ### ☁️ Deployment & Platform -| Feature | What It Does | -| ----------------------------- | --------------------------------------------------------- | -| 🌐 **Deploy Anywhere** | Localhost, VPS, Docker, Cloud environments | -| 🚇 **Cloudflare Tunnel** 🆕 | One-click Quick Tunnel integration from the dashboard | -| 💾 **Cloud Sync** | Configuration sync via cloud worker | -| 🔄 **Backup/Restore** | Export/import and disaster recovery flows | -| 🧙 **Onboarding Wizard** | First-run guided setup | -| 🔧 **CLI Tools Dashboard** | One-click setup for popular coding tools | -| 🎮 **Model Playground** | Test any provider/model/endpoint from the dashboard | -| 🔏 **CLI Fingerprint Toggle** | Per-provider fingerprint matching in Settings > Security | -| 🌐 **i18n (30 languages)** | Full dashboard + docs language support with RTL coverage | -| 🧹 **Clear All Models** | One-click model list clearing in provider details | -| 👁️ **Sidebar Controls** 🆕 | Hide components and integrations from Appearance Settings | -| 📋 **Issue Templates** | Standardized GitHub templates for bugs and features | -| 📂 **Custom Data Directory** | `DATA_DIR` override for storage location | +| Feature | What It Does | +| ------------------------------ | --------------------------------------------------------------------- | +| 🌐 **Deploy Anywhere** | Localhost, VPS, Docker, Cloud environments | +| 🚇 **Cloudflare Tunnel** 🆕 | One-click Quick Tunnel integration from the dashboard | +| 🔑 **API Key Model Filtering** | Native /v1/models response filtered via assigned Bearer context roles | +| ⚡ **Smart Cache Bypass** | Configurable TTL heuristics and forced refetch controls | +| 🔄 **Backup/Restore** | Export/import and disaster recovery flows | +| 🧙 **Onboarding Wizard** | First-run guided setup | +| 🔧 **CLI Tools Dashboard** | One-click setup for popular coding tools | +| 🎮 **Model Playground** | Test any provider/model/endpoint from the dashboard | +| 🔏 **CLI Fingerprint Toggle** | Per-provider fingerprint matching in Settings > Security | +| 🌐 **i18n (30 languages)** | Full dashboard + docs language support with RTL coverage | +| 🧹 **Clear All Models** | One-click model list clearing in provider details | +| 👁️ **Sidebar Controls** 🆕 | Hide components and integrations from Appearance Settings | +| 📋 **Issue Templates** | Standardized GitHub templates for bugs and features | +| 📂 **Custom Data Directory** | `DATA_DIR` override for storage location | ### Feature Deep Dive @@ -1545,6 +1679,8 @@ Models: **Models:** Access 100+ models from all major providers through a single API key. +**Dashboard behavior:** OpenRouter models are managed from **Available Models**. Manual add, import, and auto-sync all update the same list. +
@@ -1587,11 +1723,11 @@ Models:
🆓 FREE Providers (Emergency Backup) -### iFlow (5 FREE models via OAuth) +### Qoder (5 FREE models via OAuth) ```bash -Dashboard → Connect iFlow -→ iFlow OAuth login +Dashboard → Connect Qoder +→ Qoder OAuth login → Unlimited usage Models: @@ -1789,7 +1925,7 @@ opencode - Check usage stats in Dashboard → Costs - Switch primary model to GLM/MiniMax -- Use free tier (Gemini CLI, iFlow) for non-critical tasks +- Use free tier (Gemini CLI, Qoder) for non-critical tasks **Dashboard/API ports are wrong** @@ -1811,7 +1947,9 @@ opencode **No request logs** -- Set `ENABLE_REQUEST_LOGS=true` in `.env` +- Request artifacts are written to `DATA_DIR/call_logs/` as one JSON file per request +- Enable pipeline capture from Dashboard → Logs → Request Logs if you need detailed per-stage payloads +- Set `APP_LOG_TO_FILE=true` if you also want application console logs in `logs/application/app.log` **Connection test shows "Invalid" for OpenAI-compatible providers** diff --git a/docs/i18n/in/README.md b/docs/i18n/in/README.md index b1255e849f..f575f62151 100644 --- a/docs/i18n/in/README.md +++ b/docs/i18n/in/README.md @@ -4,6 +4,7 @@ --- + ### Never stop coding. Smart routing to **FREE & low-cost AI models** with automatic fallback. _Your universal API proxy — one endpoint, 67+ providers, zero downtime. Now with **MCP & A2A** agent orchestration._ @@ -30,6 +31,30 @@ _Your universal API proxy — one endpoint, 67+ providers, zero downtime. Now wi --- +## Breaking Change: Unified Logging Upgrade + +> [!WARNING] +> **This release changes both the on-disk request log layout and the logging environment variables.** +> +> If you are upgrading an existing instance: +> +> - Request logs now live in `DATA_DIR/call_logs/YYYY-MM-DD/` as **one JSON artifact per request**. +> - The old `DATA_DIR/logs/` session folders and `DATA_DIR/log.txt` summary file are removed. +> - On the first startup after upgrading, OmniRoute creates a safety backup at `DATA_DIR/log_archives/*.zip` before removing the deprecated request log layout. +> - Legacy logging env vars such as `LOG_TO_FILE`, `LOG_FILE_PATH`, `LOG_MAX_FILE_SIZE`, `LOG_RETENTION_DAYS`, `LOG_LEVEL`, `LOG_FORMAT`, `ENABLE_REQUEST_LOGS`, `CALL_LOGS_MAX`, `CALL_LOG_PAYLOAD_MODE`, and `PROXY_LOG_MAX_ENTRIES` are no longer supported. +> - Use the new env model instead: +> - `APP_LOG_TO_FILE` +> - `APP_LOG_FILE_PATH` +> - `APP_LOG_MAX_FILE_SIZE` +> - `APP_LOG_RETENTION_DAYS` +> - `APP_LOG_LEVEL` +> - `APP_LOG_FORMAT` +> - `CALL_LOG_RETENTION_DAYS` +> +> For release details and upgrade notes, see the [CHANGELOG](CHANGELOG.md). + +--- + ## 🆕 What's New in v3.0.0 > **Upgrading from v2.9.5?** — See the [full CHANGELOG](CHANGELOG.md#300--2026-03-22-release-candidate--not-yet-merged-to-main) for all changes. @@ -203,7 +228,7 @@ When opening an issue, please run the system-info command and attach the generat npm run system-info ``` -This generates a `system-info.txt` with your Node.js version, OmniRoute version, OS details, installed CLI tools (iflow, gemini, claude, codex, antigravity, droid, etc.), Docker/PM2 status, and system packages — everything we need to reproduce your issue quickly. Attach the file directly to your GitHub issue. +This generates a `system-info.txt` with your Node.js version, OmniRoute version, OS details, installed CLI tools (qoder, gemini, claude, codex, antigravity, droid, etc.), Docker/PM2 status, and system packages — everything we need to reproduce your issue quickly. Attach the file directly to your GitHub issue. --- @@ -229,7 +254,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, │ ↓ budget limit ├─→ [Tier 3: CHEAP] GLM ($0.6/1M), MiniMax ($0.2/1M) │ ↓ budget limit - └─→ [Tier 4: FREE] iFlow, Qwen, Kiro (unlimited) + └─→ [Tier 4: FREE] Qoder, Qwen, Kiro (unlimited) Result: Never stop coding, minimal cost ``` @@ -296,7 +321,7 @@ Not everyone can pay $20–200/month for AI subscriptions. Students, devs from e **How OmniRoute solves it:** -- **Free Tier Providers Built-in** — Native support for 100% free providers: iFlow (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) +- **Free Tier Providers Built-in** — Native support for 100% free providers: Qoder (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) - **Ollama Cloud** — Cloud-hosted Ollama models at `api.ollama.com` with free "Light usage" tier; use `ollamacloud/` prefix - **Free-Only Combos** — Chain `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime - **NVIDIA NIM Free Access** — ~40 RPM dev-forever free access to 70+ models at build.nvidia.com (transitioning from credits to pure rate limits) @@ -360,7 +385,7 @@ Claude Code, Codex, Gemini CLI, Copilot — all use OAuth 2.0 with expiring toke **How OmniRoute solves it:** - **Auto Token Refresh** — OAuth tokens refresh in background before expiration -- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, iFlow +- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder - **Multi-Account OAuth** — Multiple accounts per provider via JWT/ID token extraction - **OAuth LAN/Remote Fix** — Private IP detection for `redirect_uri` + manual URL mode for remote servers - **OAuth Behind Nginx** — Uses `window.location.origin` for reverse proxy compatibility @@ -413,7 +438,7 @@ Installing, configuring, and maintaining an AI proxy across different environmen - **Electron Desktop App** — Native app for Windows/macOS/Linux with system tray, auto-start, offline mode - **Split-Port Mode** — API and Dashboard on separate ports for advanced scenarios (reverse proxy, container networking) - **Cloud Sync** — Config synchronization across devices via Cloudflare Workers -- **DB Backups** — Automatic backup, restore, export and import of all settings +- **DB Backups** — Automatic backup, restore, export and import of all settings, with `DISABLE_SQLITE_AUTO_BACKUP` for externally managed backups
@@ -737,7 +762,7 @@ Outcome: deep fallback depth for deadline-critical workloads | Step | Action | Providers Unlocked | | ---- | -------------------------------------------------- | ------------------------------------------------------------------ | | 1 | Connect **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — **unlimited** | -| 2 | Connect **iFlow** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | +| 2 | Connect **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | | 3 | Connect **Qwen** (Device Code) | qwen3-coder-plus, qwen3-coder-flash... — **unlimited** | | 4 | Connect **Gemini CLI** (Google OAuth) | gemini-3-flash, gemini-2.5-pro — **180K/mo free** | | 5 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | @@ -838,6 +863,113 @@ npm install PORT=20128 DASHBOARD_PORT=20129 NEXT_PUBLIC_BASE_URL=http://localhost:20129 npm run dev ``` +
+Void Linux (`xbps-src` template) + +For Void Linux users, you can build a native package using `xbps-src`. Save this block as `srcpkgs/omniroute/template`: + +```bash +# Template file for 'omniroute' +pkgname=omniroute +version=3.4.1 +revision=1 +hostmakedepends="nodejs python3 make" +depends="openssl" +short_desc="Universal AI gateway with smart routing for multiple LLM providers" +maintainer="zenobit " +license="MIT" +homepage="https://github.com/diegosouzapw/OmniRoute" +distfiles="https://github.com/diegosouzapw/OmniRoute/archive/refs/tags/v${version}.tar.gz" +checksum=009400afee90a9f32599d8fe734145cfd84098140b7287990183dde45ae2245b +system_accounts="_omniroute" +omniroute_homedir="/var/lib/omniroute" +export NODE_ENV=production +export npm_config_engine_strict=false +export npm_config_loglevel=error +export npm_config_fund=false +export npm_config_audit=false + +do_build() { + # Determine target CPU arch for node-gyp + local _gyp_arch + case "$XBPS_TARGET_MACHINE" in + aarch64*) _gyp_arch=arm64 ;; + armv7*|armv6*) _gyp_arch=arm ;; + i686*) _gyp_arch=ia32 ;; + *) _gyp_arch=x64 ;; + esac + + # 1) Install all deps – skip scripts (no network in do_build, native modules + # compiled separately below; better-sqlite3 is serverExternalPackage so + # Next.js does not execute it during next build) + NODE_ENV=development npm ci --ignore-scripts + + # 2) Build the Next.js standalone bundle + npm run build + + # 3) Copy static assets into standalone + cp -r .next/static .next/standalone/.next/static + [ -d public ] && cp -r public .next/standalone/public || true + + # 4) Compile better-sqlite3 native binding for the target architecture. + # Use node-gyp directly so CC/CXX from xbps-src cross-toolchain are used + # without npm altering them. + local _node_gyp=/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js + (cd node_modules/better-sqlite3 && node "$_node_gyp" rebuild --arch="$_gyp_arch") + + # 5) Place the compiled binding into the standalone bundle + local _bs3_release=.next/standalone/node_modules/better-sqlite3/build/Release + mkdir -p "$_bs3_release" + cp node_modules/better-sqlite3/build/Release/better_sqlite3.node "$_bs3_release/" + + # 6) Remove arch-specific sharp bundles – upstream sets images.unoptimized=true + # so sharp is not used at runtime; x64 .so files would break aarch64 strip + rm -rf .next/standalone/node_modules/@img + + # 7) Copy pino runtime deps omitted by Next.js static analysis: + # pino-abstract-transport – required by pino's worker thread + # split2 – dep of pino-abstract-transport + # process-warning – dep of pino itself + for _mod in pino-abstract-transport split2 process-warning; do + cp -r "node_modules/$_mod" .next/standalone/node_modules/ + done +} + +do_check() { + npm run test:unit +} + +do_install() { + vmkdir usr/lib/omniroute/.next + + vcopy .next/standalone/. usr/lib/omniroute/.next/standalone + + # Prevent removal of empty Next.js app router dirs by the post-install hook + for _d in \ + .next/standalone/.next/server/app/dashboard \ + .next/standalone/.next/server/app/dashboard/settings \ + .next/standalone/.next/server/app/dashboard/providers; do + touch "${DESTDIR}/usr/lib/omniroute/${_d}/.keep" + done + + cat > "${WRKDIR}/omniroute" <<'EOF' +#!/bin/sh +export PORT="${PORT:-20128}" +export DATA_DIR="${DATA_DIR:-${XDG_DATA_HOME:-${HOME}/.local/share}/omniroute}" +export LOG_TO_FILE="${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 +} +``` + +
+ --- ## 🐳 Docker @@ -886,6 +1018,7 @@ Notes: - Quick Tunnel URLs are temporary and change after every restart. - Managed install currently supports Linux, macOS, and Windows on `x64` / `arm64`. +- Docker images bundle system CA roots and pass them to managed `cloudflared`, which avoids TLS trust failures when the tunnel bootstraps inside the container. - Set `CLOUDFLARED_BIN=/absolute/path/to/cloudflared` if you want OmniRoute to use an existing binary instead of downloading one. **Using Docker Compose with Caddy (HTTPS Auto-TLS):** @@ -983,7 +1116,7 @@ When minimized, OmniRoute lives in your system tray with quick actions: | | MiniMax M2.1 | $0.2/1M | 5-hour rolling | Cheapest option | | | Kimi K2.5 (Moonshot API) 🆕 | Pay-per-use | None | Direct Moonshot API access | | | Kimi K2 | $9/mo flat | 10M tokens/mo | Predictable cost | -| **🆓 FREE** | iFlow | **$0** | Unlimited | 5 models unlimited | +| **🆓 FREE** | Qoder | **$0** | Unlimited | 5 models unlimited | | | Qwen | **$0** | Unlimited | 4 models unlimited | | | Kiro | **$0** | Unlimited | Claude Sonnet/Haiku (AWS Builder) | | | LongCat Flash-Lite 🆕 | **$0** (50M tok/day 🔥) | 1 RPS | Largest free quota on Earth | @@ -998,7 +1131,7 @@ When minimized, OmniRoute lives in your system tray with quick actions: ``` # 🆓 Ultimate Free Stack 2026 — 11 Providers, $0 Forever Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -iFlow (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED +Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed Qwen (qw/) → qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next UNLIMITED @@ -1028,7 +1161,7 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day | `claude-haiku-4.5` | `kr/` | **Unlimited** | No reported daily cap | | `claude-opus-4.6` | `kr/` | **Unlimited** | Latest Opus via Kiro | -### 🟢 IFLOW MODELS (Free OAuth — No Credit Card) +### 🟢 QODER MODELS (Free OAuth — No Credit Card) | Model | Prefix | Limit | Rate Limit | | ------------------ | ------ | ------------- | --------------- | @@ -1127,7 +1260,7 @@ Available free: `qwen3-235b-a22b-instruct-2507` (Qwen3 235B!), `llama-3.1-70b-in > > ``` > Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -> iFlow (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED +> Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED > LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 > Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed > Qwen (qw/) → qwen3-coder models UNLIMITED @@ -1279,21 +1412,22 @@ OmniRoute v2.0 is built as an operational platform, not just a relay proxy. ### ☁️ Deployment & Platform -| Feature | What It Does | -| ----------------------------- | --------------------------------------------------------- | -| 🌐 **Deploy Anywhere** | Localhost, VPS, Docker, Cloud environments | -| 🚇 **Cloudflare Tunnel** 🆕 | One-click Quick Tunnel integration from the dashboard | -| 💾 **Cloud Sync** | Configuration sync via cloud worker | -| 🔄 **Backup/Restore** | Export/import and disaster recovery flows | -| 🧙 **Onboarding Wizard** | First-run guided setup | -| 🔧 **CLI Tools Dashboard** | One-click setup for popular coding tools | -| 🎮 **Model Playground** | Test any provider/model/endpoint from the dashboard | -| 🔏 **CLI Fingerprint Toggle** | Per-provider fingerprint matching in Settings > Security | -| 🌐 **i18n (30 languages)** | Full dashboard + docs language support with RTL coverage | -| 🧹 **Clear All Models** | One-click model list clearing in provider details | -| 👁️ **Sidebar Controls** 🆕 | Hide components and integrations from Appearance Settings | -| 📋 **Issue Templates** | Standardized GitHub templates for bugs and features | -| 📂 **Custom Data Directory** | `DATA_DIR` override for storage location | +| Feature | What It Does | +| ------------------------------ | --------------------------------------------------------------------- | +| 🌐 **Deploy Anywhere** | Localhost, VPS, Docker, Cloud environments | +| 🚇 **Cloudflare Tunnel** 🆕 | One-click Quick Tunnel integration from the dashboard | +| 🔑 **API Key Model Filtering** | Native /v1/models response filtered via assigned Bearer context roles | +| ⚡ **Smart Cache Bypass** | Configurable TTL heuristics and forced refetch controls | +| 🔄 **Backup/Restore** | Export/import and disaster recovery flows | +| 🧙 **Onboarding Wizard** | First-run guided setup | +| 🔧 **CLI Tools Dashboard** | One-click setup for popular coding tools | +| 🎮 **Model Playground** | Test any provider/model/endpoint from the dashboard | +| 🔏 **CLI Fingerprint Toggle** | Per-provider fingerprint matching in Settings > Security | +| 🌐 **i18n (30 languages)** | Full dashboard + docs language support with RTL coverage | +| 🧹 **Clear All Models** | One-click model list clearing in provider details | +| 👁️ **Sidebar Controls** 🆕 | Hide components and integrations from Appearance Settings | +| 📋 **Issue Templates** | Standardized GitHub templates for bugs and features | +| 📂 **Custom Data Directory** | `DATA_DIR` override for storage location | ### Feature Deep Dive @@ -1545,6 +1679,8 @@ Models: **Models:** Access 100+ models from all major providers through a single API key. +**Dashboard behavior:** OpenRouter models are managed from **Available Models**. Manual add, import, and auto-sync all update the same list. +
@@ -1587,11 +1723,11 @@ Models:
🆓 FREE Providers (Emergency Backup) -### iFlow (5 FREE models via OAuth) +### Qoder (5 FREE models via OAuth) ```bash -Dashboard → Connect iFlow -→ iFlow OAuth login +Dashboard → Connect Qoder +→ Qoder OAuth login → Unlimited usage Models: @@ -1789,7 +1925,7 @@ opencode - Check usage stats in Dashboard → Costs - Switch primary model to GLM/MiniMax -- Use free tier (Gemini CLI, iFlow) for non-critical tasks +- Use free tier (Gemini CLI, Qoder) for non-critical tasks **Dashboard/API ports are wrong** @@ -1811,7 +1947,9 @@ opencode **No request logs** -- Set `ENABLE_REQUEST_LOGS=true` in `.env` +- Request artifacts are written to `DATA_DIR/call_logs/` as one JSON file per request +- Enable pipeline capture from Dashboard → Logs → Request Logs if you need detailed per-stage payloads +- Set `APP_LOG_TO_FILE=true` if you also want application console logs in `logs/application/app.log` **Connection test shows "Invalid" for OpenAI-compatible providers** diff --git a/docs/i18n/it/README.md b/docs/i18n/it/README.md index 862f90b1d1..49f14cb11e 100644 --- a/docs/i18n/it/README.md +++ b/docs/i18n/it/README.md @@ -4,6 +4,7 @@ --- + ### Never stop coding. Smart routing to **FREE & low-cost AI models** with automatic fallback. _Your universal API proxy — one endpoint, 67+ providers, zero downtime. Now with **MCP & A2A** agent orchestration._ @@ -30,6 +31,30 @@ _Your universal API proxy — one endpoint, 67+ providers, zero downtime. Now wi --- +## Breaking Change: Unified Logging Upgrade + +> [!WARNING] +> **This release changes both the on-disk request log layout and the logging environment variables.** +> +> If you are upgrading an existing instance: +> +> - Request logs now live in `DATA_DIR/call_logs/YYYY-MM-DD/` as **one JSON artifact per request**. +> - The old `DATA_DIR/logs/` session folders and `DATA_DIR/log.txt` summary file are removed. +> - On the first startup after upgrading, OmniRoute creates a safety backup at `DATA_DIR/log_archives/*.zip` before removing the deprecated request log layout. +> - Legacy logging env vars such as `LOG_TO_FILE`, `LOG_FILE_PATH`, `LOG_MAX_FILE_SIZE`, `LOG_RETENTION_DAYS`, `LOG_LEVEL`, `LOG_FORMAT`, `ENABLE_REQUEST_LOGS`, `CALL_LOGS_MAX`, `CALL_LOG_PAYLOAD_MODE`, and `PROXY_LOG_MAX_ENTRIES` are no longer supported. +> - Use the new env model instead: +> - `APP_LOG_TO_FILE` +> - `APP_LOG_FILE_PATH` +> - `APP_LOG_MAX_FILE_SIZE` +> - `APP_LOG_RETENTION_DAYS` +> - `APP_LOG_LEVEL` +> - `APP_LOG_FORMAT` +> - `CALL_LOG_RETENTION_DAYS` +> +> For release details and upgrade notes, see the [CHANGELOG](CHANGELOG.md). + +--- + ## 🆕 What's New in v3.0.0 > **Upgrading from v2.9.5?** — See the [full CHANGELOG](CHANGELOG.md#300--2026-03-22-release-candidate--not-yet-merged-to-main) for all changes. @@ -203,7 +228,7 @@ When opening an issue, please run the system-info command and attach the generat npm run system-info ``` -This generates a `system-info.txt` with your Node.js version, OmniRoute version, OS details, installed CLI tools (iflow, gemini, claude, codex, antigravity, droid, etc.), Docker/PM2 status, and system packages — everything we need to reproduce your issue quickly. Attach the file directly to your GitHub issue. +This generates a `system-info.txt` with your Node.js version, OmniRoute version, OS details, installed CLI tools (qoder, gemini, claude, codex, antigravity, droid, etc.), Docker/PM2 status, and system packages — everything we need to reproduce your issue quickly. Attach the file directly to your GitHub issue. --- @@ -229,7 +254,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, │ ↓ budget limit ├─→ [Tier 3: CHEAP] GLM ($0.6/1M), MiniMax ($0.2/1M) │ ↓ budget limit - └─→ [Tier 4: FREE] iFlow, Qwen, Kiro (unlimited) + └─→ [Tier 4: FREE] Qoder, Qwen, Kiro (unlimited) Result: Never stop coding, minimal cost ``` @@ -296,7 +321,7 @@ Not everyone can pay $20–200/month for AI subscriptions. Students, devs from e **How OmniRoute solves it:** -- **Free Tier Providers Built-in** — Native support for 100% free providers: iFlow (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) +- **Free Tier Providers Built-in** — Native support for 100% free providers: Qoder (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) - **Ollama Cloud** — Cloud-hosted Ollama models at `api.ollama.com` with free "Light usage" tier; use `ollamacloud/` prefix - **Free-Only Combos** — Chain `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime - **NVIDIA NIM Free Access** — ~40 RPM dev-forever free access to 70+ models at build.nvidia.com (transitioning from credits to pure rate limits) @@ -360,7 +385,7 @@ Claude Code, Codex, Gemini CLI, Copilot — all use OAuth 2.0 with expiring toke **How OmniRoute solves it:** - **Auto Token Refresh** — OAuth tokens refresh in background before expiration -- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, iFlow +- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder - **Multi-Account OAuth** — Multiple accounts per provider via JWT/ID token extraction - **OAuth LAN/Remote Fix** — Private IP detection for `redirect_uri` + manual URL mode for remote servers - **OAuth Behind Nginx** — Uses `window.location.origin` for reverse proxy compatibility @@ -413,7 +438,7 @@ Installing, configuring, and maintaining an AI proxy across different environmen - **Electron Desktop App** — Native app for Windows/macOS/Linux with system tray, auto-start, offline mode - **Split-Port Mode** — API and Dashboard on separate ports for advanced scenarios (reverse proxy, container networking) - **Cloud Sync** — Config synchronization across devices via Cloudflare Workers -- **DB Backups** — Automatic backup, restore, export and import of all settings +- **DB Backups** — Automatic backup, restore, export and import of all settings, with `DISABLE_SQLITE_AUTO_BACKUP` for externally managed backups
@@ -737,7 +762,7 @@ Outcome: deep fallback depth for deadline-critical workloads | Step | Action | Providers Unlocked | | ---- | -------------------------------------------------- | ------------------------------------------------------------------ | | 1 | Connect **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — **unlimited** | -| 2 | Connect **iFlow** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | +| 2 | Connect **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | | 3 | Connect **Qwen** (Device Code) | qwen3-coder-plus, qwen3-coder-flash... — **unlimited** | | 4 | Connect **Gemini CLI** (Google OAuth) | gemini-3-flash, gemini-2.5-pro — **180K/mo free** | | 5 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | @@ -838,6 +863,113 @@ npm install PORT=20128 DASHBOARD_PORT=20129 NEXT_PUBLIC_BASE_URL=http://localhost:20129 npm run dev ``` +
+Void Linux (`xbps-src` template) + +For Void Linux users, you can build a native package using `xbps-src`. Save this block as `srcpkgs/omniroute/template`: + +```bash +# Template file for 'omniroute' +pkgname=omniroute +version=3.4.1 +revision=1 +hostmakedepends="nodejs python3 make" +depends="openssl" +short_desc="Universal AI gateway with smart routing for multiple LLM providers" +maintainer="zenobit " +license="MIT" +homepage="https://github.com/diegosouzapw/OmniRoute" +distfiles="https://github.com/diegosouzapw/OmniRoute/archive/refs/tags/v${version}.tar.gz" +checksum=009400afee90a9f32599d8fe734145cfd84098140b7287990183dde45ae2245b +system_accounts="_omniroute" +omniroute_homedir="/var/lib/omniroute" +export NODE_ENV=production +export npm_config_engine_strict=false +export npm_config_loglevel=error +export npm_config_fund=false +export npm_config_audit=false + +do_build() { + # Determine target CPU arch for node-gyp + local _gyp_arch + case "$XBPS_TARGET_MACHINE" in + aarch64*) _gyp_arch=arm64 ;; + armv7*|armv6*) _gyp_arch=arm ;; + i686*) _gyp_arch=ia32 ;; + *) _gyp_arch=x64 ;; + esac + + # 1) Install all deps – skip scripts (no network in do_build, native modules + # compiled separately below; better-sqlite3 is serverExternalPackage so + # Next.js does not execute it during next build) + NODE_ENV=development npm ci --ignore-scripts + + # 2) Build the Next.js standalone bundle + npm run build + + # 3) Copy static assets into standalone + cp -r .next/static .next/standalone/.next/static + [ -d public ] && cp -r public .next/standalone/public || true + + # 4) Compile better-sqlite3 native binding for the target architecture. + # Use node-gyp directly so CC/CXX from xbps-src cross-toolchain are used + # without npm altering them. + local _node_gyp=/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js + (cd node_modules/better-sqlite3 && node "$_node_gyp" rebuild --arch="$_gyp_arch") + + # 5) Place the compiled binding into the standalone bundle + local _bs3_release=.next/standalone/node_modules/better-sqlite3/build/Release + mkdir -p "$_bs3_release" + cp node_modules/better-sqlite3/build/Release/better_sqlite3.node "$_bs3_release/" + + # 6) Remove arch-specific sharp bundles – upstream sets images.unoptimized=true + # so sharp is not used at runtime; x64 .so files would break aarch64 strip + rm -rf .next/standalone/node_modules/@img + + # 7) Copy pino runtime deps omitted by Next.js static analysis: + # pino-abstract-transport – required by pino's worker thread + # split2 – dep of pino-abstract-transport + # process-warning – dep of pino itself + for _mod in pino-abstract-transport split2 process-warning; do + cp -r "node_modules/$_mod" .next/standalone/node_modules/ + done +} + +do_check() { + npm run test:unit +} + +do_install() { + vmkdir usr/lib/omniroute/.next + + vcopy .next/standalone/. usr/lib/omniroute/.next/standalone + + # Prevent removal of empty Next.js app router dirs by the post-install hook + for _d in \ + .next/standalone/.next/server/app/dashboard \ + .next/standalone/.next/server/app/dashboard/settings \ + .next/standalone/.next/server/app/dashboard/providers; do + touch "${DESTDIR}/usr/lib/omniroute/${_d}/.keep" + done + + cat > "${WRKDIR}/omniroute" <<'EOF' +#!/bin/sh +export PORT="${PORT:-20128}" +export DATA_DIR="${DATA_DIR:-${XDG_DATA_HOME:-${HOME}/.local/share}/omniroute}" +export LOG_TO_FILE="${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 +} +``` + +
+ --- ## 🐳 Docker @@ -886,6 +1018,7 @@ Notes: - Quick Tunnel URLs are temporary and change after every restart. - Managed install currently supports Linux, macOS, and Windows on `x64` / `arm64`. +- Docker images bundle system CA roots and pass them to managed `cloudflared`, which avoids TLS trust failures when the tunnel bootstraps inside the container. - Set `CLOUDFLARED_BIN=/absolute/path/to/cloudflared` if you want OmniRoute to use an existing binary instead of downloading one. **Using Docker Compose with Caddy (HTTPS Auto-TLS):** @@ -983,7 +1116,7 @@ When minimized, OmniRoute lives in your system tray with quick actions: | | MiniMax M2.1 | $0.2/1M | 5-hour rolling | Cheapest option | | | Kimi K2.5 (Moonshot API) 🆕 | Pay-per-use | None | Direct Moonshot API access | | | Kimi K2 | $9/mo flat | 10M tokens/mo | Predictable cost | -| **🆓 FREE** | iFlow | **$0** | Unlimited | 5 models unlimited | +| **🆓 FREE** | Qoder | **$0** | Unlimited | 5 models unlimited | | | Qwen | **$0** | Unlimited | 4 models unlimited | | | Kiro | **$0** | Unlimited | Claude Sonnet/Haiku (AWS Builder) | | | LongCat Flash-Lite 🆕 | **$0** (50M tok/day 🔥) | 1 RPS | Largest free quota on Earth | @@ -998,7 +1131,7 @@ When minimized, OmniRoute lives in your system tray with quick actions: ``` # 🆓 Ultimate Free Stack 2026 — 11 Providers, $0 Forever Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -iFlow (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED +Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed Qwen (qw/) → qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next UNLIMITED @@ -1028,7 +1161,7 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day | `claude-haiku-4.5` | `kr/` | **Unlimited** | No reported daily cap | | `claude-opus-4.6` | `kr/` | **Unlimited** | Latest Opus via Kiro | -### 🟢 IFLOW MODELS (Free OAuth — No Credit Card) +### 🟢 QODER MODELS (Free OAuth — No Credit Card) | Model | Prefix | Limit | Rate Limit | | ------------------ | ------ | ------------- | --------------- | @@ -1127,7 +1260,7 @@ Available free: `qwen3-235b-a22b-instruct-2507` (Qwen3 235B!), `llama-3.1-70b-in > > ``` > Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -> iFlow (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED +> Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED > LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 > Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed > Qwen (qw/) → qwen3-coder models UNLIMITED @@ -1279,21 +1412,22 @@ OmniRoute v2.0 is built as an operational platform, not just a relay proxy. ### ☁️ Deployment & Platform -| Feature | What It Does | -| ----------------------------- | --------------------------------------------------------- | -| 🌐 **Deploy Anywhere** | Localhost, VPS, Docker, Cloud environments | -| 🚇 **Cloudflare Tunnel** 🆕 | One-click Quick Tunnel integration from the dashboard | -| 💾 **Cloud Sync** | Configuration sync via cloud worker | -| 🔄 **Backup/Restore** | Export/import and disaster recovery flows | -| 🧙 **Onboarding Wizard** | First-run guided setup | -| 🔧 **CLI Tools Dashboard** | One-click setup for popular coding tools | -| 🎮 **Model Playground** | Test any provider/model/endpoint from the dashboard | -| 🔏 **CLI Fingerprint Toggle** | Per-provider fingerprint matching in Settings > Security | -| 🌐 **i18n (30 languages)** | Full dashboard + docs language support with RTL coverage | -| 🧹 **Clear All Models** | One-click model list clearing in provider details | -| 👁️ **Sidebar Controls** 🆕 | Hide components and integrations from Appearance Settings | -| 📋 **Issue Templates** | Standardized GitHub templates for bugs and features | -| 📂 **Custom Data Directory** | `DATA_DIR` override for storage location | +| Feature | What It Does | +| ------------------------------ | --------------------------------------------------------------------- | +| 🌐 **Deploy Anywhere** | Localhost, VPS, Docker, Cloud environments | +| 🚇 **Cloudflare Tunnel** 🆕 | One-click Quick Tunnel integration from the dashboard | +| 🔑 **API Key Model Filtering** | Native /v1/models response filtered via assigned Bearer context roles | +| ⚡ **Smart Cache Bypass** | Configurable TTL heuristics and forced refetch controls | +| 🔄 **Backup/Restore** | Export/import and disaster recovery flows | +| 🧙 **Onboarding Wizard** | First-run guided setup | +| 🔧 **CLI Tools Dashboard** | One-click setup for popular coding tools | +| 🎮 **Model Playground** | Test any provider/model/endpoint from the dashboard | +| 🔏 **CLI Fingerprint Toggle** | Per-provider fingerprint matching in Settings > Security | +| 🌐 **i18n (30 languages)** | Full dashboard + docs language support with RTL coverage | +| 🧹 **Clear All Models** | One-click model list clearing in provider details | +| 👁️ **Sidebar Controls** 🆕 | Hide components and integrations from Appearance Settings | +| 📋 **Issue Templates** | Standardized GitHub templates for bugs and features | +| 📂 **Custom Data Directory** | `DATA_DIR` override for storage location | ### Feature Deep Dive @@ -1545,6 +1679,8 @@ Models: **Models:** Access 100+ models from all major providers through a single API key. +**Dashboard behavior:** OpenRouter models are managed from **Available Models**. Manual add, import, and auto-sync all update the same list. +
@@ -1587,11 +1723,11 @@ Models:
🆓 FREE Providers (Emergency Backup) -### iFlow (5 FREE models via OAuth) +### Qoder (5 FREE models via OAuth) ```bash -Dashboard → Connect iFlow -→ iFlow OAuth login +Dashboard → Connect Qoder +→ Qoder OAuth login → Unlimited usage Models: @@ -1789,7 +1925,7 @@ opencode - Check usage stats in Dashboard → Costs - Switch primary model to GLM/MiniMax -- Use free tier (Gemini CLI, iFlow) for non-critical tasks +- Use free tier (Gemini CLI, Qoder) for non-critical tasks **Dashboard/API ports are wrong** @@ -1811,7 +1947,9 @@ opencode **No request logs** -- Set `ENABLE_REQUEST_LOGS=true` in `.env` +- Request artifacts are written to `DATA_DIR/call_logs/` as one JSON file per request +- Enable pipeline capture from Dashboard → Logs → Request Logs if you need detailed per-stage payloads +- Set `APP_LOG_TO_FILE=true` if you also want application console logs in `logs/application/app.log` **Connection test shows "Invalid" for OpenAI-compatible providers** diff --git a/docs/i18n/ja/README.md b/docs/i18n/ja/README.md index 9912414065..8f6d48f07e 100644 --- a/docs/i18n/ja/README.md +++ b/docs/i18n/ja/README.md @@ -4,6 +4,7 @@ --- + ### Never stop coding. Smart routing to **FREE & low-cost AI models** with automatic fallback. _Your universal API proxy — one endpoint, 67+ providers, zero downtime. Now with **MCP & A2A** agent orchestration._ @@ -30,6 +31,30 @@ _Your universal API proxy — one endpoint, 67+ providers, zero downtime. Now wi --- +## Breaking Change: Unified Logging Upgrade + +> [!WARNING] +> **This release changes both the on-disk request log layout and the logging environment variables.** +> +> If you are upgrading an existing instance: +> +> - Request logs now live in `DATA_DIR/call_logs/YYYY-MM-DD/` as **one JSON artifact per request**. +> - The old `DATA_DIR/logs/` session folders and `DATA_DIR/log.txt` summary file are removed. +> - On the first startup after upgrading, OmniRoute creates a safety backup at `DATA_DIR/log_archives/*.zip` before removing the deprecated request log layout. +> - Legacy logging env vars such as `LOG_TO_FILE`, `LOG_FILE_PATH`, `LOG_MAX_FILE_SIZE`, `LOG_RETENTION_DAYS`, `LOG_LEVEL`, `LOG_FORMAT`, `ENABLE_REQUEST_LOGS`, `CALL_LOGS_MAX`, `CALL_LOG_PAYLOAD_MODE`, and `PROXY_LOG_MAX_ENTRIES` are no longer supported. +> - Use the new env model instead: +> - `APP_LOG_TO_FILE` +> - `APP_LOG_FILE_PATH` +> - `APP_LOG_MAX_FILE_SIZE` +> - `APP_LOG_RETENTION_DAYS` +> - `APP_LOG_LEVEL` +> - `APP_LOG_FORMAT` +> - `CALL_LOG_RETENTION_DAYS` +> +> For release details and upgrade notes, see the [CHANGELOG](CHANGELOG.md). + +--- + ## 🆕 What's New in v3.0.0 > **Upgrading from v2.9.5?** — See the [full CHANGELOG](CHANGELOG.md#300--2026-03-22-release-candidate--not-yet-merged-to-main) for all changes. @@ -203,7 +228,7 @@ When opening an issue, please run the system-info command and attach the generat npm run system-info ``` -This generates a `system-info.txt` with your Node.js version, OmniRoute version, OS details, installed CLI tools (iflow, gemini, claude, codex, antigravity, droid, etc.), Docker/PM2 status, and system packages — everything we need to reproduce your issue quickly. Attach the file directly to your GitHub issue. +This generates a `system-info.txt` with your Node.js version, OmniRoute version, OS details, installed CLI tools (qoder, gemini, claude, codex, antigravity, droid, etc.), Docker/PM2 status, and system packages — everything we need to reproduce your issue quickly. Attach the file directly to your GitHub issue. --- @@ -229,7 +254,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, │ ↓ budget limit ├─→ [Tier 3: CHEAP] GLM ($0.6/1M), MiniMax ($0.2/1M) │ ↓ budget limit - └─→ [Tier 4: FREE] iFlow, Qwen, Kiro (unlimited) + └─→ [Tier 4: FREE] Qoder, Qwen, Kiro (unlimited) Result: Never stop coding, minimal cost ``` @@ -296,7 +321,7 @@ Not everyone can pay $20–200/month for AI subscriptions. Students, devs from e **How OmniRoute solves it:** -- **Free Tier Providers Built-in** — Native support for 100% free providers: iFlow (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) +- **Free Tier Providers Built-in** — Native support for 100% free providers: Qoder (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) - **Ollama Cloud** — Cloud-hosted Ollama models at `api.ollama.com` with free "Light usage" tier; use `ollamacloud/` prefix - **Free-Only Combos** — Chain `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime - **NVIDIA NIM Free Access** — ~40 RPM dev-forever free access to 70+ models at build.nvidia.com (transitioning from credits to pure rate limits) @@ -360,7 +385,7 @@ Claude Code, Codex, Gemini CLI, Copilot — all use OAuth 2.0 with expiring toke **How OmniRoute solves it:** - **Auto Token Refresh** — OAuth tokens refresh in background before expiration -- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, iFlow +- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder - **Multi-Account OAuth** — Multiple accounts per provider via JWT/ID token extraction - **OAuth LAN/Remote Fix** — Private IP detection for `redirect_uri` + manual URL mode for remote servers - **OAuth Behind Nginx** — Uses `window.location.origin` for reverse proxy compatibility @@ -413,7 +438,7 @@ Installing, configuring, and maintaining an AI proxy across different environmen - **Electron Desktop App** — Native app for Windows/macOS/Linux with system tray, auto-start, offline mode - **Split-Port Mode** — API and Dashboard on separate ports for advanced scenarios (reverse proxy, container networking) - **Cloud Sync** — Config synchronization across devices via Cloudflare Workers -- **DB Backups** — Automatic backup, restore, export and import of all settings +- **DB Backups** — Automatic backup, restore, export and import of all settings, with `DISABLE_SQLITE_AUTO_BACKUP` for externally managed backups
@@ -737,7 +762,7 @@ Outcome: deep fallback depth for deadline-critical workloads | Step | Action | Providers Unlocked | | ---- | -------------------------------------------------- | ------------------------------------------------------------------ | | 1 | Connect **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — **unlimited** | -| 2 | Connect **iFlow** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | +| 2 | Connect **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | | 3 | Connect **Qwen** (Device Code) | qwen3-coder-plus, qwen3-coder-flash... — **unlimited** | | 4 | Connect **Gemini CLI** (Google OAuth) | gemini-3-flash, gemini-2.5-pro — **180K/mo free** | | 5 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | @@ -838,6 +863,113 @@ npm install PORT=20128 DASHBOARD_PORT=20129 NEXT_PUBLIC_BASE_URL=http://localhost:20129 npm run dev ``` +
+Void Linux (`xbps-src` template) + +For Void Linux users, you can build a native package using `xbps-src`. Save this block as `srcpkgs/omniroute/template`: + +```bash +# Template file for 'omniroute' +pkgname=omniroute +version=3.4.1 +revision=1 +hostmakedepends="nodejs python3 make" +depends="openssl" +short_desc="Universal AI gateway with smart routing for multiple LLM providers" +maintainer="zenobit " +license="MIT" +homepage="https://github.com/diegosouzapw/OmniRoute" +distfiles="https://github.com/diegosouzapw/OmniRoute/archive/refs/tags/v${version}.tar.gz" +checksum=009400afee90a9f32599d8fe734145cfd84098140b7287990183dde45ae2245b +system_accounts="_omniroute" +omniroute_homedir="/var/lib/omniroute" +export NODE_ENV=production +export npm_config_engine_strict=false +export npm_config_loglevel=error +export npm_config_fund=false +export npm_config_audit=false + +do_build() { + # Determine target CPU arch for node-gyp + local _gyp_arch + case "$XBPS_TARGET_MACHINE" in + aarch64*) _gyp_arch=arm64 ;; + armv7*|armv6*) _gyp_arch=arm ;; + i686*) _gyp_arch=ia32 ;; + *) _gyp_arch=x64 ;; + esac + + # 1) Install all deps – skip scripts (no network in do_build, native modules + # compiled separately below; better-sqlite3 is serverExternalPackage so + # Next.js does not execute it during next build) + NODE_ENV=development npm ci --ignore-scripts + + # 2) Build the Next.js standalone bundle + npm run build + + # 3) Copy static assets into standalone + cp -r .next/static .next/standalone/.next/static + [ -d public ] && cp -r public .next/standalone/public || true + + # 4) Compile better-sqlite3 native binding for the target architecture. + # Use node-gyp directly so CC/CXX from xbps-src cross-toolchain are used + # without npm altering them. + local _node_gyp=/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js + (cd node_modules/better-sqlite3 && node "$_node_gyp" rebuild --arch="$_gyp_arch") + + # 5) Place the compiled binding into the standalone bundle + local _bs3_release=.next/standalone/node_modules/better-sqlite3/build/Release + mkdir -p "$_bs3_release" + cp node_modules/better-sqlite3/build/Release/better_sqlite3.node "$_bs3_release/" + + # 6) Remove arch-specific sharp bundles – upstream sets images.unoptimized=true + # so sharp is not used at runtime; x64 .so files would break aarch64 strip + rm -rf .next/standalone/node_modules/@img + + # 7) Copy pino runtime deps omitted by Next.js static analysis: + # pino-abstract-transport – required by pino's worker thread + # split2 – dep of pino-abstract-transport + # process-warning – dep of pino itself + for _mod in pino-abstract-transport split2 process-warning; do + cp -r "node_modules/$_mod" .next/standalone/node_modules/ + done +} + +do_check() { + npm run test:unit +} + +do_install() { + vmkdir usr/lib/omniroute/.next + + vcopy .next/standalone/. usr/lib/omniroute/.next/standalone + + # Prevent removal of empty Next.js app router dirs by the post-install hook + for _d in \ + .next/standalone/.next/server/app/dashboard \ + .next/standalone/.next/server/app/dashboard/settings \ + .next/standalone/.next/server/app/dashboard/providers; do + touch "${DESTDIR}/usr/lib/omniroute/${_d}/.keep" + done + + cat > "${WRKDIR}/omniroute" <<'EOF' +#!/bin/sh +export PORT="${PORT:-20128}" +export DATA_DIR="${DATA_DIR:-${XDG_DATA_HOME:-${HOME}/.local/share}/omniroute}" +export LOG_TO_FILE="${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 +} +``` + +
+ --- ## 🐳 Docker @@ -886,6 +1018,7 @@ Notes: - Quick Tunnel URLs are temporary and change after every restart. - Managed install currently supports Linux, macOS, and Windows on `x64` / `arm64`. +- Docker images bundle system CA roots and pass them to managed `cloudflared`, which avoids TLS trust failures when the tunnel bootstraps inside the container. - Set `CLOUDFLARED_BIN=/absolute/path/to/cloudflared` if you want OmniRoute to use an existing binary instead of downloading one. **Using Docker Compose with Caddy (HTTPS Auto-TLS):** @@ -983,7 +1116,7 @@ When minimized, OmniRoute lives in your system tray with quick actions: | | MiniMax M2.1 | $0.2/1M | 5-hour rolling | Cheapest option | | | Kimi K2.5 (Moonshot API) 🆕 | Pay-per-use | None | Direct Moonshot API access | | | Kimi K2 | $9/mo flat | 10M tokens/mo | Predictable cost | -| **🆓 FREE** | iFlow | **$0** | Unlimited | 5 models unlimited | +| **🆓 FREE** | Qoder | **$0** | Unlimited | 5 models unlimited | | | Qwen | **$0** | Unlimited | 4 models unlimited | | | Kiro | **$0** | Unlimited | Claude Sonnet/Haiku (AWS Builder) | | | LongCat Flash-Lite 🆕 | **$0** (50M tok/day 🔥) | 1 RPS | Largest free quota on Earth | @@ -998,7 +1131,7 @@ When minimized, OmniRoute lives in your system tray with quick actions: ``` # 🆓 Ultimate Free Stack 2026 — 11 Providers, $0 Forever Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -iFlow (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED +Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed Qwen (qw/) → qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next UNLIMITED @@ -1028,7 +1161,7 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day | `claude-haiku-4.5` | `kr/` | **Unlimited** | No reported daily cap | | `claude-opus-4.6` | `kr/` | **Unlimited** | Latest Opus via Kiro | -### 🟢 IFLOW MODELS (Free OAuth — No Credit Card) +### 🟢 QODER MODELS (Free OAuth — No Credit Card) | Model | Prefix | Limit | Rate Limit | | ------------------ | ------ | ------------- | --------------- | @@ -1127,7 +1260,7 @@ Available free: `qwen3-235b-a22b-instruct-2507` (Qwen3 235B!), `llama-3.1-70b-in > > ``` > Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -> iFlow (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED +> Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED > LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 > Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed > Qwen (qw/) → qwen3-coder models UNLIMITED @@ -1279,21 +1412,22 @@ OmniRoute v2.0 is built as an operational platform, not just a relay proxy. ### ☁️ Deployment & Platform -| Feature | What It Does | -| ----------------------------- | --------------------------------------------------------- | -| 🌐 **Deploy Anywhere** | Localhost, VPS, Docker, Cloud environments | -| 🚇 **Cloudflare Tunnel** 🆕 | One-click Quick Tunnel integration from the dashboard | -| 💾 **Cloud Sync** | Configuration sync via cloud worker | -| 🔄 **Backup/Restore** | Export/import and disaster recovery flows | -| 🧙 **Onboarding Wizard** | First-run guided setup | -| 🔧 **CLI Tools Dashboard** | One-click setup for popular coding tools | -| 🎮 **Model Playground** | Test any provider/model/endpoint from the dashboard | -| 🔏 **CLI Fingerprint Toggle** | Per-provider fingerprint matching in Settings > Security | -| 🌐 **i18n (30 languages)** | Full dashboard + docs language support with RTL coverage | -| 🧹 **Clear All Models** | One-click model list clearing in provider details | -| 👁️ **Sidebar Controls** 🆕 | Hide components and integrations from Appearance Settings | -| 📋 **Issue Templates** | Standardized GitHub templates for bugs and features | -| 📂 **Custom Data Directory** | `DATA_DIR` override for storage location | +| Feature | What It Does | +| ------------------------------ | --------------------------------------------------------------------- | +| 🌐 **Deploy Anywhere** | Localhost, VPS, Docker, Cloud environments | +| 🚇 **Cloudflare Tunnel** 🆕 | One-click Quick Tunnel integration from the dashboard | +| 🔑 **API Key Model Filtering** | Native /v1/models response filtered via assigned Bearer context roles | +| ⚡ **Smart Cache Bypass** | Configurable TTL heuristics and forced refetch controls | +| 🔄 **Backup/Restore** | Export/import and disaster recovery flows | +| 🧙 **Onboarding Wizard** | First-run guided setup | +| 🔧 **CLI Tools Dashboard** | One-click setup for popular coding tools | +| 🎮 **Model Playground** | Test any provider/model/endpoint from the dashboard | +| 🔏 **CLI Fingerprint Toggle** | Per-provider fingerprint matching in Settings > Security | +| 🌐 **i18n (30 languages)** | Full dashboard + docs language support with RTL coverage | +| 🧹 **Clear All Models** | One-click model list clearing in provider details | +| 👁️ **Sidebar Controls** 🆕 | Hide components and integrations from Appearance Settings | +| 📋 **Issue Templates** | Standardized GitHub templates for bugs and features | +| 📂 **Custom Data Directory** | `DATA_DIR` override for storage location | ### Feature Deep Dive @@ -1545,6 +1679,8 @@ Models: **Models:** Access 100+ models from all major providers through a single API key. +**Dashboard behavior:** OpenRouter models are managed from **Available Models**. Manual add, import, and auto-sync all update the same list. +
@@ -1587,11 +1723,11 @@ Models:
🆓 FREE Providers (Emergency Backup) -### iFlow (5 FREE models via OAuth) +### Qoder (5 FREE models via OAuth) ```bash -Dashboard → Connect iFlow -→ iFlow OAuth login +Dashboard → Connect Qoder +→ Qoder OAuth login → Unlimited usage Models: @@ -1789,7 +1925,7 @@ opencode - Check usage stats in Dashboard → Costs - Switch primary model to GLM/MiniMax -- Use free tier (Gemini CLI, iFlow) for non-critical tasks +- Use free tier (Gemini CLI, Qoder) for non-critical tasks **Dashboard/API ports are wrong** @@ -1811,7 +1947,9 @@ opencode **No request logs** -- Set `ENABLE_REQUEST_LOGS=true` in `.env` +- Request artifacts are written to `DATA_DIR/call_logs/` as one JSON file per request +- Enable pipeline capture from Dashboard → Logs → Request Logs if you need detailed per-stage payloads +- Set `APP_LOG_TO_FILE=true` if you also want application console logs in `logs/application/app.log` **Connection test shows "Invalid" for OpenAI-compatible providers** diff --git a/docs/i18n/ko/README.md b/docs/i18n/ko/README.md index df9bd6f336..b39d527318 100644 --- a/docs/i18n/ko/README.md +++ b/docs/i18n/ko/README.md @@ -4,6 +4,7 @@ --- + ### Never stop coding. Smart routing to **FREE & low-cost AI models** with automatic fallback. _Your universal API proxy — one endpoint, 67+ providers, zero downtime. Now with **MCP & A2A** agent orchestration._ @@ -30,6 +31,30 @@ _Your universal API proxy — one endpoint, 67+ providers, zero downtime. Now wi --- +## Breaking Change: Unified Logging Upgrade + +> [!WARNING] +> **This release changes both the on-disk request log layout and the logging environment variables.** +> +> If you are upgrading an existing instance: +> +> - Request logs now live in `DATA_DIR/call_logs/YYYY-MM-DD/` as **one JSON artifact per request**. +> - The old `DATA_DIR/logs/` session folders and `DATA_DIR/log.txt` summary file are removed. +> - On the first startup after upgrading, OmniRoute creates a safety backup at `DATA_DIR/log_archives/*.zip` before removing the deprecated request log layout. +> - Legacy logging env vars such as `LOG_TO_FILE`, `LOG_FILE_PATH`, `LOG_MAX_FILE_SIZE`, `LOG_RETENTION_DAYS`, `LOG_LEVEL`, `LOG_FORMAT`, `ENABLE_REQUEST_LOGS`, `CALL_LOGS_MAX`, `CALL_LOG_PAYLOAD_MODE`, and `PROXY_LOG_MAX_ENTRIES` are no longer supported. +> - Use the new env model instead: +> - `APP_LOG_TO_FILE` +> - `APP_LOG_FILE_PATH` +> - `APP_LOG_MAX_FILE_SIZE` +> - `APP_LOG_RETENTION_DAYS` +> - `APP_LOG_LEVEL` +> - `APP_LOG_FORMAT` +> - `CALL_LOG_RETENTION_DAYS` +> +> For release details and upgrade notes, see the [CHANGELOG](CHANGELOG.md). + +--- + ## 🆕 What's New in v3.0.0 > **Upgrading from v2.9.5?** — See the [full CHANGELOG](CHANGELOG.md#300--2026-03-22-release-candidate--not-yet-merged-to-main) for all changes. @@ -203,7 +228,7 @@ When opening an issue, please run the system-info command and attach the generat npm run system-info ``` -This generates a `system-info.txt` with your Node.js version, OmniRoute version, OS details, installed CLI tools (iflow, gemini, claude, codex, antigravity, droid, etc.), Docker/PM2 status, and system packages — everything we need to reproduce your issue quickly. Attach the file directly to your GitHub issue. +This generates a `system-info.txt` with your Node.js version, OmniRoute version, OS details, installed CLI tools (qoder, gemini, claude, codex, antigravity, droid, etc.), Docker/PM2 status, and system packages — everything we need to reproduce your issue quickly. Attach the file directly to your GitHub issue. --- @@ -229,7 +254,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, │ ↓ budget limit ├─→ [Tier 3: CHEAP] GLM ($0.6/1M), MiniMax ($0.2/1M) │ ↓ budget limit - └─→ [Tier 4: FREE] iFlow, Qwen, Kiro (unlimited) + └─→ [Tier 4: FREE] Qoder, Qwen, Kiro (unlimited) Result: Never stop coding, minimal cost ``` @@ -296,7 +321,7 @@ Not everyone can pay $20–200/month for AI subscriptions. Students, devs from e **How OmniRoute solves it:** -- **Free Tier Providers Built-in** — Native support for 100% free providers: iFlow (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) +- **Free Tier Providers Built-in** — Native support for 100% free providers: Qoder (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) - **Ollama Cloud** — Cloud-hosted Ollama models at `api.ollama.com` with free "Light usage" tier; use `ollamacloud/` prefix - **Free-Only Combos** — Chain `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime - **NVIDIA NIM Free Access** — ~40 RPM dev-forever free access to 70+ models at build.nvidia.com (transitioning from credits to pure rate limits) @@ -360,7 +385,7 @@ Claude Code, Codex, Gemini CLI, Copilot — all use OAuth 2.0 with expiring toke **How OmniRoute solves it:** - **Auto Token Refresh** — OAuth tokens refresh in background before expiration -- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, iFlow +- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder - **Multi-Account OAuth** — Multiple accounts per provider via JWT/ID token extraction - **OAuth LAN/Remote Fix** — Private IP detection for `redirect_uri` + manual URL mode for remote servers - **OAuth Behind Nginx** — Uses `window.location.origin` for reverse proxy compatibility @@ -413,7 +438,7 @@ Installing, configuring, and maintaining an AI proxy across different environmen - **Electron Desktop App** — Native app for Windows/macOS/Linux with system tray, auto-start, offline mode - **Split-Port Mode** — API and Dashboard on separate ports for advanced scenarios (reverse proxy, container networking) - **Cloud Sync** — Config synchronization across devices via Cloudflare Workers -- **DB Backups** — Automatic backup, restore, export and import of all settings +- **DB Backups** — Automatic backup, restore, export and import of all settings, with `DISABLE_SQLITE_AUTO_BACKUP` for externally managed backups
@@ -737,7 +762,7 @@ Outcome: deep fallback depth for deadline-critical workloads | Step | Action | Providers Unlocked | | ---- | -------------------------------------------------- | ------------------------------------------------------------------ | | 1 | Connect **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — **unlimited** | -| 2 | Connect **iFlow** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | +| 2 | Connect **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | | 3 | Connect **Qwen** (Device Code) | qwen3-coder-plus, qwen3-coder-flash... — **unlimited** | | 4 | Connect **Gemini CLI** (Google OAuth) | gemini-3-flash, gemini-2.5-pro — **180K/mo free** | | 5 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | @@ -838,6 +863,113 @@ npm install PORT=20128 DASHBOARD_PORT=20129 NEXT_PUBLIC_BASE_URL=http://localhost:20129 npm run dev ``` +
+Void Linux (`xbps-src` template) + +For Void Linux users, you can build a native package using `xbps-src`. Save this block as `srcpkgs/omniroute/template`: + +```bash +# Template file for 'omniroute' +pkgname=omniroute +version=3.4.1 +revision=1 +hostmakedepends="nodejs python3 make" +depends="openssl" +short_desc="Universal AI gateway with smart routing for multiple LLM providers" +maintainer="zenobit " +license="MIT" +homepage="https://github.com/diegosouzapw/OmniRoute" +distfiles="https://github.com/diegosouzapw/OmniRoute/archive/refs/tags/v${version}.tar.gz" +checksum=009400afee90a9f32599d8fe734145cfd84098140b7287990183dde45ae2245b +system_accounts="_omniroute" +omniroute_homedir="/var/lib/omniroute" +export NODE_ENV=production +export npm_config_engine_strict=false +export npm_config_loglevel=error +export npm_config_fund=false +export npm_config_audit=false + +do_build() { + # Determine target CPU arch for node-gyp + local _gyp_arch + case "$XBPS_TARGET_MACHINE" in + aarch64*) _gyp_arch=arm64 ;; + armv7*|armv6*) _gyp_arch=arm ;; + i686*) _gyp_arch=ia32 ;; + *) _gyp_arch=x64 ;; + esac + + # 1) Install all deps – skip scripts (no network in do_build, native modules + # compiled separately below; better-sqlite3 is serverExternalPackage so + # Next.js does not execute it during next build) + NODE_ENV=development npm ci --ignore-scripts + + # 2) Build the Next.js standalone bundle + npm run build + + # 3) Copy static assets into standalone + cp -r .next/static .next/standalone/.next/static + [ -d public ] && cp -r public .next/standalone/public || true + + # 4) Compile better-sqlite3 native binding for the target architecture. + # Use node-gyp directly so CC/CXX from xbps-src cross-toolchain are used + # without npm altering them. + local _node_gyp=/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js + (cd node_modules/better-sqlite3 && node "$_node_gyp" rebuild --arch="$_gyp_arch") + + # 5) Place the compiled binding into the standalone bundle + local _bs3_release=.next/standalone/node_modules/better-sqlite3/build/Release + mkdir -p "$_bs3_release" + cp node_modules/better-sqlite3/build/Release/better_sqlite3.node "$_bs3_release/" + + # 6) Remove arch-specific sharp bundles – upstream sets images.unoptimized=true + # so sharp is not used at runtime; x64 .so files would break aarch64 strip + rm -rf .next/standalone/node_modules/@img + + # 7) Copy pino runtime deps omitted by Next.js static analysis: + # pino-abstract-transport – required by pino's worker thread + # split2 – dep of pino-abstract-transport + # process-warning – dep of pino itself + for _mod in pino-abstract-transport split2 process-warning; do + cp -r "node_modules/$_mod" .next/standalone/node_modules/ + done +} + +do_check() { + npm run test:unit +} + +do_install() { + vmkdir usr/lib/omniroute/.next + + vcopy .next/standalone/. usr/lib/omniroute/.next/standalone + + # Prevent removal of empty Next.js app router dirs by the post-install hook + for _d in \ + .next/standalone/.next/server/app/dashboard \ + .next/standalone/.next/server/app/dashboard/settings \ + .next/standalone/.next/server/app/dashboard/providers; do + touch "${DESTDIR}/usr/lib/omniroute/${_d}/.keep" + done + + cat > "${WRKDIR}/omniroute" <<'EOF' +#!/bin/sh +export PORT="${PORT:-20128}" +export DATA_DIR="${DATA_DIR:-${XDG_DATA_HOME:-${HOME}/.local/share}/omniroute}" +export LOG_TO_FILE="${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 +} +``` + +
+ --- ## 🐳 Docker @@ -886,6 +1018,7 @@ Notes: - Quick Tunnel URLs are temporary and change after every restart. - Managed install currently supports Linux, macOS, and Windows on `x64` / `arm64`. +- Docker images bundle system CA roots and pass them to managed `cloudflared`, which avoids TLS trust failures when the tunnel bootstraps inside the container. - Set `CLOUDFLARED_BIN=/absolute/path/to/cloudflared` if you want OmniRoute to use an existing binary instead of downloading one. **Using Docker Compose with Caddy (HTTPS Auto-TLS):** @@ -983,7 +1116,7 @@ When minimized, OmniRoute lives in your system tray with quick actions: | | MiniMax M2.1 | $0.2/1M | 5-hour rolling | Cheapest option | | | Kimi K2.5 (Moonshot API) 🆕 | Pay-per-use | None | Direct Moonshot API access | | | Kimi K2 | $9/mo flat | 10M tokens/mo | Predictable cost | -| **🆓 FREE** | iFlow | **$0** | Unlimited | 5 models unlimited | +| **🆓 FREE** | Qoder | **$0** | Unlimited | 5 models unlimited | | | Qwen | **$0** | Unlimited | 4 models unlimited | | | Kiro | **$0** | Unlimited | Claude Sonnet/Haiku (AWS Builder) | | | LongCat Flash-Lite 🆕 | **$0** (50M tok/day 🔥) | 1 RPS | Largest free quota on Earth | @@ -998,7 +1131,7 @@ When minimized, OmniRoute lives in your system tray with quick actions: ``` # 🆓 Ultimate Free Stack 2026 — 11 Providers, $0 Forever Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -iFlow (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED +Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed Qwen (qw/) → qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next UNLIMITED @@ -1028,7 +1161,7 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day | `claude-haiku-4.5` | `kr/` | **Unlimited** | No reported daily cap | | `claude-opus-4.6` | `kr/` | **Unlimited** | Latest Opus via Kiro | -### 🟢 IFLOW MODELS (Free OAuth — No Credit Card) +### 🟢 QODER MODELS (Free OAuth — No Credit Card) | Model | Prefix | Limit | Rate Limit | | ------------------ | ------ | ------------- | --------------- | @@ -1127,7 +1260,7 @@ Available free: `qwen3-235b-a22b-instruct-2507` (Qwen3 235B!), `llama-3.1-70b-in > > ``` > Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -> iFlow (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED +> Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED > LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 > Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed > Qwen (qw/) → qwen3-coder models UNLIMITED @@ -1279,21 +1412,22 @@ OmniRoute v2.0 is built as an operational platform, not just a relay proxy. ### ☁️ Deployment & Platform -| Feature | What It Does | -| ----------------------------- | --------------------------------------------------------- | -| 🌐 **Deploy Anywhere** | Localhost, VPS, Docker, Cloud environments | -| 🚇 **Cloudflare Tunnel** 🆕 | One-click Quick Tunnel integration from the dashboard | -| 💾 **Cloud Sync** | Configuration sync via cloud worker | -| 🔄 **Backup/Restore** | Export/import and disaster recovery flows | -| 🧙 **Onboarding Wizard** | First-run guided setup | -| 🔧 **CLI Tools Dashboard** | One-click setup for popular coding tools | -| 🎮 **Model Playground** | Test any provider/model/endpoint from the dashboard | -| 🔏 **CLI Fingerprint Toggle** | Per-provider fingerprint matching in Settings > Security | -| 🌐 **i18n (30 languages)** | Full dashboard + docs language support with RTL coverage | -| 🧹 **Clear All Models** | One-click model list clearing in provider details | -| 👁️ **Sidebar Controls** 🆕 | Hide components and integrations from Appearance Settings | -| 📋 **Issue Templates** | Standardized GitHub templates for bugs and features | -| 📂 **Custom Data Directory** | `DATA_DIR` override for storage location | +| Feature | What It Does | +| ------------------------------ | --------------------------------------------------------------------- | +| 🌐 **Deploy Anywhere** | Localhost, VPS, Docker, Cloud environments | +| 🚇 **Cloudflare Tunnel** 🆕 | One-click Quick Tunnel integration from the dashboard | +| 🔑 **API Key Model Filtering** | Native /v1/models response filtered via assigned Bearer context roles | +| ⚡ **Smart Cache Bypass** | Configurable TTL heuristics and forced refetch controls | +| 🔄 **Backup/Restore** | Export/import and disaster recovery flows | +| 🧙 **Onboarding Wizard** | First-run guided setup | +| 🔧 **CLI Tools Dashboard** | One-click setup for popular coding tools | +| 🎮 **Model Playground** | Test any provider/model/endpoint from the dashboard | +| 🔏 **CLI Fingerprint Toggle** | Per-provider fingerprint matching in Settings > Security | +| 🌐 **i18n (30 languages)** | Full dashboard + docs language support with RTL coverage | +| 🧹 **Clear All Models** | One-click model list clearing in provider details | +| 👁️ **Sidebar Controls** 🆕 | Hide components and integrations from Appearance Settings | +| 📋 **Issue Templates** | Standardized GitHub templates for bugs and features | +| 📂 **Custom Data Directory** | `DATA_DIR` override for storage location | ### Feature Deep Dive @@ -1545,6 +1679,8 @@ Models: **Models:** Access 100+ models from all major providers through a single API key. +**Dashboard behavior:** OpenRouter models are managed from **Available Models**. Manual add, import, and auto-sync all update the same list. +
@@ -1587,11 +1723,11 @@ Models:
🆓 FREE Providers (Emergency Backup) -### iFlow (5 FREE models via OAuth) +### Qoder (5 FREE models via OAuth) ```bash -Dashboard → Connect iFlow -→ iFlow OAuth login +Dashboard → Connect Qoder +→ Qoder OAuth login → Unlimited usage Models: @@ -1789,7 +1925,7 @@ opencode - Check usage stats in Dashboard → Costs - Switch primary model to GLM/MiniMax -- Use free tier (Gemini CLI, iFlow) for non-critical tasks +- Use free tier (Gemini CLI, Qoder) for non-critical tasks **Dashboard/API ports are wrong** @@ -1811,7 +1947,9 @@ opencode **No request logs** -- Set `ENABLE_REQUEST_LOGS=true` in `.env` +- Request artifacts are written to `DATA_DIR/call_logs/` as one JSON file per request +- Enable pipeline capture from Dashboard → Logs → Request Logs if you need detailed per-stage payloads +- Set `APP_LOG_TO_FILE=true` if you also want application console logs in `logs/application/app.log` **Connection test shows "Invalid" for OpenAI-compatible providers** diff --git a/docs/i18n/ms/README.md b/docs/i18n/ms/README.md index 2b9d85b104..2b43e0febc 100644 --- a/docs/i18n/ms/README.md +++ b/docs/i18n/ms/README.md @@ -4,6 +4,7 @@ --- + ### Never stop coding. Smart routing to **FREE & low-cost AI models** with automatic fallback. _Your universal API proxy — one endpoint, 67+ providers, zero downtime. Now with **MCP & A2A** agent orchestration._ @@ -30,6 +31,30 @@ _Your universal API proxy — one endpoint, 67+ providers, zero downtime. Now wi --- +## Breaking Change: Unified Logging Upgrade + +> [!WARNING] +> **This release changes both the on-disk request log layout and the logging environment variables.** +> +> If you are upgrading an existing instance: +> +> - Request logs now live in `DATA_DIR/call_logs/YYYY-MM-DD/` as **one JSON artifact per request**. +> - The old `DATA_DIR/logs/` session folders and `DATA_DIR/log.txt` summary file are removed. +> - On the first startup after upgrading, OmniRoute creates a safety backup at `DATA_DIR/log_archives/*.zip` before removing the deprecated request log layout. +> - Legacy logging env vars such as `LOG_TO_FILE`, `LOG_FILE_PATH`, `LOG_MAX_FILE_SIZE`, `LOG_RETENTION_DAYS`, `LOG_LEVEL`, `LOG_FORMAT`, `ENABLE_REQUEST_LOGS`, `CALL_LOGS_MAX`, `CALL_LOG_PAYLOAD_MODE`, and `PROXY_LOG_MAX_ENTRIES` are no longer supported. +> - Use the new env model instead: +> - `APP_LOG_TO_FILE` +> - `APP_LOG_FILE_PATH` +> - `APP_LOG_MAX_FILE_SIZE` +> - `APP_LOG_RETENTION_DAYS` +> - `APP_LOG_LEVEL` +> - `APP_LOG_FORMAT` +> - `CALL_LOG_RETENTION_DAYS` +> +> For release details and upgrade notes, see the [CHANGELOG](CHANGELOG.md). + +--- + ## 🆕 What's New in v3.0.0 > **Upgrading from v2.9.5?** — See the [full CHANGELOG](CHANGELOG.md#300--2026-03-22-release-candidate--not-yet-merged-to-main) for all changes. @@ -203,7 +228,7 @@ When opening an issue, please run the system-info command and attach the generat npm run system-info ``` -This generates a `system-info.txt` with your Node.js version, OmniRoute version, OS details, installed CLI tools (iflow, gemini, claude, codex, antigravity, droid, etc.), Docker/PM2 status, and system packages — everything we need to reproduce your issue quickly. Attach the file directly to your GitHub issue. +This generates a `system-info.txt` with your Node.js version, OmniRoute version, OS details, installed CLI tools (qoder, gemini, claude, codex, antigravity, droid, etc.), Docker/PM2 status, and system packages — everything we need to reproduce your issue quickly. Attach the file directly to your GitHub issue. --- @@ -229,7 +254,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, │ ↓ budget limit ├─→ [Tier 3: CHEAP] GLM ($0.6/1M), MiniMax ($0.2/1M) │ ↓ budget limit - └─→ [Tier 4: FREE] iFlow, Qwen, Kiro (unlimited) + └─→ [Tier 4: FREE] Qoder, Qwen, Kiro (unlimited) Result: Never stop coding, minimal cost ``` @@ -296,7 +321,7 @@ Not everyone can pay $20–200/month for AI subscriptions. Students, devs from e **How OmniRoute solves it:** -- **Free Tier Providers Built-in** — Native support for 100% free providers: iFlow (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) +- **Free Tier Providers Built-in** — Native support for 100% free providers: Qoder (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) - **Ollama Cloud** — Cloud-hosted Ollama models at `api.ollama.com` with free "Light usage" tier; use `ollamacloud/` prefix - **Free-Only Combos** — Chain `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime - **NVIDIA NIM Free Access** — ~40 RPM dev-forever free access to 70+ models at build.nvidia.com (transitioning from credits to pure rate limits) @@ -360,7 +385,7 @@ Claude Code, Codex, Gemini CLI, Copilot — all use OAuth 2.0 with expiring toke **How OmniRoute solves it:** - **Auto Token Refresh** — OAuth tokens refresh in background before expiration -- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, iFlow +- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder - **Multi-Account OAuth** — Multiple accounts per provider via JWT/ID token extraction - **OAuth LAN/Remote Fix** — Private IP detection for `redirect_uri` + manual URL mode for remote servers - **OAuth Behind Nginx** — Uses `window.location.origin` for reverse proxy compatibility @@ -413,7 +438,7 @@ Installing, configuring, and maintaining an AI proxy across different environmen - **Electron Desktop App** — Native app for Windows/macOS/Linux with system tray, auto-start, offline mode - **Split-Port Mode** — API and Dashboard on separate ports for advanced scenarios (reverse proxy, container networking) - **Cloud Sync** — Config synchronization across devices via Cloudflare Workers -- **DB Backups** — Automatic backup, restore, export and import of all settings +- **DB Backups** — Automatic backup, restore, export and import of all settings, with `DISABLE_SQLITE_AUTO_BACKUP` for externally managed backups
@@ -737,7 +762,7 @@ Outcome: deep fallback depth for deadline-critical workloads | Step | Action | Providers Unlocked | | ---- | -------------------------------------------------- | ------------------------------------------------------------------ | | 1 | Connect **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — **unlimited** | -| 2 | Connect **iFlow** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | +| 2 | Connect **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | | 3 | Connect **Qwen** (Device Code) | qwen3-coder-plus, qwen3-coder-flash... — **unlimited** | | 4 | Connect **Gemini CLI** (Google OAuth) | gemini-3-flash, gemini-2.5-pro — **180K/mo free** | | 5 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | @@ -838,6 +863,113 @@ npm install PORT=20128 DASHBOARD_PORT=20129 NEXT_PUBLIC_BASE_URL=http://localhost:20129 npm run dev ``` +
+Void Linux (`xbps-src` template) + +For Void Linux users, you can build a native package using `xbps-src`. Save this block as `srcpkgs/omniroute/template`: + +```bash +# Template file for 'omniroute' +pkgname=omniroute +version=3.4.1 +revision=1 +hostmakedepends="nodejs python3 make" +depends="openssl" +short_desc="Universal AI gateway with smart routing for multiple LLM providers" +maintainer="zenobit " +license="MIT" +homepage="https://github.com/diegosouzapw/OmniRoute" +distfiles="https://github.com/diegosouzapw/OmniRoute/archive/refs/tags/v${version}.tar.gz" +checksum=009400afee90a9f32599d8fe734145cfd84098140b7287990183dde45ae2245b +system_accounts="_omniroute" +omniroute_homedir="/var/lib/omniroute" +export NODE_ENV=production +export npm_config_engine_strict=false +export npm_config_loglevel=error +export npm_config_fund=false +export npm_config_audit=false + +do_build() { + # Determine target CPU arch for node-gyp + local _gyp_arch + case "$XBPS_TARGET_MACHINE" in + aarch64*) _gyp_arch=arm64 ;; + armv7*|armv6*) _gyp_arch=arm ;; + i686*) _gyp_arch=ia32 ;; + *) _gyp_arch=x64 ;; + esac + + # 1) Install all deps – skip scripts (no network in do_build, native modules + # compiled separately below; better-sqlite3 is serverExternalPackage so + # Next.js does not execute it during next build) + NODE_ENV=development npm ci --ignore-scripts + + # 2) Build the Next.js standalone bundle + npm run build + + # 3) Copy static assets into standalone + cp -r .next/static .next/standalone/.next/static + [ -d public ] && cp -r public .next/standalone/public || true + + # 4) Compile better-sqlite3 native binding for the target architecture. + # Use node-gyp directly so CC/CXX from xbps-src cross-toolchain are used + # without npm altering them. + local _node_gyp=/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js + (cd node_modules/better-sqlite3 && node "$_node_gyp" rebuild --arch="$_gyp_arch") + + # 5) Place the compiled binding into the standalone bundle + local _bs3_release=.next/standalone/node_modules/better-sqlite3/build/Release + mkdir -p "$_bs3_release" + cp node_modules/better-sqlite3/build/Release/better_sqlite3.node "$_bs3_release/" + + # 6) Remove arch-specific sharp bundles – upstream sets images.unoptimized=true + # so sharp is not used at runtime; x64 .so files would break aarch64 strip + rm -rf .next/standalone/node_modules/@img + + # 7) Copy pino runtime deps omitted by Next.js static analysis: + # pino-abstract-transport – required by pino's worker thread + # split2 – dep of pino-abstract-transport + # process-warning – dep of pino itself + for _mod in pino-abstract-transport split2 process-warning; do + cp -r "node_modules/$_mod" .next/standalone/node_modules/ + done +} + +do_check() { + npm run test:unit +} + +do_install() { + vmkdir usr/lib/omniroute/.next + + vcopy .next/standalone/. usr/lib/omniroute/.next/standalone + + # Prevent removal of empty Next.js app router dirs by the post-install hook + for _d in \ + .next/standalone/.next/server/app/dashboard \ + .next/standalone/.next/server/app/dashboard/settings \ + .next/standalone/.next/server/app/dashboard/providers; do + touch "${DESTDIR}/usr/lib/omniroute/${_d}/.keep" + done + + cat > "${WRKDIR}/omniroute" <<'EOF' +#!/bin/sh +export PORT="${PORT:-20128}" +export DATA_DIR="${DATA_DIR:-${XDG_DATA_HOME:-${HOME}/.local/share}/omniroute}" +export LOG_TO_FILE="${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 +} +``` + +
+ --- ## 🐳 Docker @@ -886,6 +1018,7 @@ Notes: - Quick Tunnel URLs are temporary and change after every restart. - Managed install currently supports Linux, macOS, and Windows on `x64` / `arm64`. +- Docker images bundle system CA roots and pass them to managed `cloudflared`, which avoids TLS trust failures when the tunnel bootstraps inside the container. - Set `CLOUDFLARED_BIN=/absolute/path/to/cloudflared` if you want OmniRoute to use an existing binary instead of downloading one. **Using Docker Compose with Caddy (HTTPS Auto-TLS):** @@ -983,7 +1116,7 @@ When minimized, OmniRoute lives in your system tray with quick actions: | | MiniMax M2.1 | $0.2/1M | 5-hour rolling | Cheapest option | | | Kimi K2.5 (Moonshot API) 🆕 | Pay-per-use | None | Direct Moonshot API access | | | Kimi K2 | $9/mo flat | 10M tokens/mo | Predictable cost | -| **🆓 FREE** | iFlow | **$0** | Unlimited | 5 models unlimited | +| **🆓 FREE** | Qoder | **$0** | Unlimited | 5 models unlimited | | | Qwen | **$0** | Unlimited | 4 models unlimited | | | Kiro | **$0** | Unlimited | Claude Sonnet/Haiku (AWS Builder) | | | LongCat Flash-Lite 🆕 | **$0** (50M tok/day 🔥) | 1 RPS | Largest free quota on Earth | @@ -998,7 +1131,7 @@ When minimized, OmniRoute lives in your system tray with quick actions: ``` # 🆓 Ultimate Free Stack 2026 — 11 Providers, $0 Forever Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -iFlow (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED +Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed Qwen (qw/) → qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next UNLIMITED @@ -1028,7 +1161,7 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day | `claude-haiku-4.5` | `kr/` | **Unlimited** | No reported daily cap | | `claude-opus-4.6` | `kr/` | **Unlimited** | Latest Opus via Kiro | -### 🟢 IFLOW MODELS (Free OAuth — No Credit Card) +### 🟢 QODER MODELS (Free OAuth — No Credit Card) | Model | Prefix | Limit | Rate Limit | | ------------------ | ------ | ------------- | --------------- | @@ -1127,7 +1260,7 @@ Available free: `qwen3-235b-a22b-instruct-2507` (Qwen3 235B!), `llama-3.1-70b-in > > ``` > Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -> iFlow (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED +> Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED > LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 > Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed > Qwen (qw/) → qwen3-coder models UNLIMITED @@ -1279,21 +1412,22 @@ OmniRoute v2.0 is built as an operational platform, not just a relay proxy. ### ☁️ Deployment & Platform -| Feature | What It Does | -| ----------------------------- | --------------------------------------------------------- | -| 🌐 **Deploy Anywhere** | Localhost, VPS, Docker, Cloud environments | -| 🚇 **Cloudflare Tunnel** 🆕 | One-click Quick Tunnel integration from the dashboard | -| 💾 **Cloud Sync** | Configuration sync via cloud worker | -| 🔄 **Backup/Restore** | Export/import and disaster recovery flows | -| 🧙 **Onboarding Wizard** | First-run guided setup | -| 🔧 **CLI Tools Dashboard** | One-click setup for popular coding tools | -| 🎮 **Model Playground** | Test any provider/model/endpoint from the dashboard | -| 🔏 **CLI Fingerprint Toggle** | Per-provider fingerprint matching in Settings > Security | -| 🌐 **i18n (30 languages)** | Full dashboard + docs language support with RTL coverage | -| 🧹 **Clear All Models** | One-click model list clearing in provider details | -| 👁️ **Sidebar Controls** 🆕 | Hide components and integrations from Appearance Settings | -| 📋 **Issue Templates** | Standardized GitHub templates for bugs and features | -| 📂 **Custom Data Directory** | `DATA_DIR` override for storage location | +| Feature | What It Does | +| ------------------------------ | --------------------------------------------------------------------- | +| 🌐 **Deploy Anywhere** | Localhost, VPS, Docker, Cloud environments | +| 🚇 **Cloudflare Tunnel** 🆕 | One-click Quick Tunnel integration from the dashboard | +| 🔑 **API Key Model Filtering** | Native /v1/models response filtered via assigned Bearer context roles | +| ⚡ **Smart Cache Bypass** | Configurable TTL heuristics and forced refetch controls | +| 🔄 **Backup/Restore** | Export/import and disaster recovery flows | +| 🧙 **Onboarding Wizard** | First-run guided setup | +| 🔧 **CLI Tools Dashboard** | One-click setup for popular coding tools | +| 🎮 **Model Playground** | Test any provider/model/endpoint from the dashboard | +| 🔏 **CLI Fingerprint Toggle** | Per-provider fingerprint matching in Settings > Security | +| 🌐 **i18n (30 languages)** | Full dashboard + docs language support with RTL coverage | +| 🧹 **Clear All Models** | One-click model list clearing in provider details | +| 👁️ **Sidebar Controls** 🆕 | Hide components and integrations from Appearance Settings | +| 📋 **Issue Templates** | Standardized GitHub templates for bugs and features | +| 📂 **Custom Data Directory** | `DATA_DIR` override for storage location | ### Feature Deep Dive @@ -1545,6 +1679,8 @@ Models: **Models:** Access 100+ models from all major providers through a single API key. +**Dashboard behavior:** OpenRouter models are managed from **Available Models**. Manual add, import, and auto-sync all update the same list. +
@@ -1587,11 +1723,11 @@ Models:
🆓 FREE Providers (Emergency Backup) -### iFlow (5 FREE models via OAuth) +### Qoder (5 FREE models via OAuth) ```bash -Dashboard → Connect iFlow -→ iFlow OAuth login +Dashboard → Connect Qoder +→ Qoder OAuth login → Unlimited usage Models: @@ -1789,7 +1925,7 @@ opencode - Check usage stats in Dashboard → Costs - Switch primary model to GLM/MiniMax -- Use free tier (Gemini CLI, iFlow) for non-critical tasks +- Use free tier (Gemini CLI, Qoder) for non-critical tasks **Dashboard/API ports are wrong** @@ -1811,7 +1947,9 @@ opencode **No request logs** -- Set `ENABLE_REQUEST_LOGS=true` in `.env` +- Request artifacts are written to `DATA_DIR/call_logs/` as one JSON file per request +- Enable pipeline capture from Dashboard → Logs → Request Logs if you need detailed per-stage payloads +- Set `APP_LOG_TO_FILE=true` if you also want application console logs in `logs/application/app.log` **Connection test shows "Invalid" for OpenAI-compatible providers** diff --git a/docs/i18n/nl/README.md b/docs/i18n/nl/README.md index 96bf569dc7..bce17fbaa0 100644 --- a/docs/i18n/nl/README.md +++ b/docs/i18n/nl/README.md @@ -4,6 +4,7 @@ --- + ### Never stop coding. Smart routing to **FREE & low-cost AI models** with automatic fallback. _Your universal API proxy — one endpoint, 67+ providers, zero downtime. Now with **MCP & A2A** agent orchestration._ @@ -30,6 +31,30 @@ _Your universal API proxy — one endpoint, 67+ providers, zero downtime. Now wi --- +## Breaking Change: Unified Logging Upgrade + +> [!WARNING] +> **This release changes both the on-disk request log layout and the logging environment variables.** +> +> If you are upgrading an existing instance: +> +> - Request logs now live in `DATA_DIR/call_logs/YYYY-MM-DD/` as **one JSON artifact per request**. +> - The old `DATA_DIR/logs/` session folders and `DATA_DIR/log.txt` summary file are removed. +> - On the first startup after upgrading, OmniRoute creates a safety backup at `DATA_DIR/log_archives/*.zip` before removing the deprecated request log layout. +> - Legacy logging env vars such as `LOG_TO_FILE`, `LOG_FILE_PATH`, `LOG_MAX_FILE_SIZE`, `LOG_RETENTION_DAYS`, `LOG_LEVEL`, `LOG_FORMAT`, `ENABLE_REQUEST_LOGS`, `CALL_LOGS_MAX`, `CALL_LOG_PAYLOAD_MODE`, and `PROXY_LOG_MAX_ENTRIES` are no longer supported. +> - Use the new env model instead: +> - `APP_LOG_TO_FILE` +> - `APP_LOG_FILE_PATH` +> - `APP_LOG_MAX_FILE_SIZE` +> - `APP_LOG_RETENTION_DAYS` +> - `APP_LOG_LEVEL` +> - `APP_LOG_FORMAT` +> - `CALL_LOG_RETENTION_DAYS` +> +> For release details and upgrade notes, see the [CHANGELOG](CHANGELOG.md). + +--- + ## 🆕 What's New in v3.0.0 > **Upgrading from v2.9.5?** — See the [full CHANGELOG](CHANGELOG.md#300--2026-03-22-release-candidate--not-yet-merged-to-main) for all changes. @@ -203,7 +228,7 @@ When opening an issue, please run the system-info command and attach the generat npm run system-info ``` -This generates a `system-info.txt` with your Node.js version, OmniRoute version, OS details, installed CLI tools (iflow, gemini, claude, codex, antigravity, droid, etc.), Docker/PM2 status, and system packages — everything we need to reproduce your issue quickly. Attach the file directly to your GitHub issue. +This generates a `system-info.txt` with your Node.js version, OmniRoute version, OS details, installed CLI tools (qoder, gemini, claude, codex, antigravity, droid, etc.), Docker/PM2 status, and system packages — everything we need to reproduce your issue quickly. Attach the file directly to your GitHub issue. --- @@ -229,7 +254,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, │ ↓ budget limit ├─→ [Tier 3: CHEAP] GLM ($0.6/1M), MiniMax ($0.2/1M) │ ↓ budget limit - └─→ [Tier 4: FREE] iFlow, Qwen, Kiro (unlimited) + └─→ [Tier 4: FREE] Qoder, Qwen, Kiro (unlimited) Result: Never stop coding, minimal cost ``` @@ -296,7 +321,7 @@ Not everyone can pay $20–200/month for AI subscriptions. Students, devs from e **How OmniRoute solves it:** -- **Free Tier Providers Built-in** — Native support for 100% free providers: iFlow (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) +- **Free Tier Providers Built-in** — Native support for 100% free providers: Qoder (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) - **Ollama Cloud** — Cloud-hosted Ollama models at `api.ollama.com` with free "Light usage" tier; use `ollamacloud/` prefix - **Free-Only Combos** — Chain `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime - **NVIDIA NIM Free Access** — ~40 RPM dev-forever free access to 70+ models at build.nvidia.com (transitioning from credits to pure rate limits) @@ -360,7 +385,7 @@ Claude Code, Codex, Gemini CLI, Copilot — all use OAuth 2.0 with expiring toke **How OmniRoute solves it:** - **Auto Token Refresh** — OAuth tokens refresh in background before expiration -- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, iFlow +- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder - **Multi-Account OAuth** — Multiple accounts per provider via JWT/ID token extraction - **OAuth LAN/Remote Fix** — Private IP detection for `redirect_uri` + manual URL mode for remote servers - **OAuth Behind Nginx** — Uses `window.location.origin` for reverse proxy compatibility @@ -413,7 +438,7 @@ Installing, configuring, and maintaining an AI proxy across different environmen - **Electron Desktop App** — Native app for Windows/macOS/Linux with system tray, auto-start, offline mode - **Split-Port Mode** — API and Dashboard on separate ports for advanced scenarios (reverse proxy, container networking) - **Cloud Sync** — Config synchronization across devices via Cloudflare Workers -- **DB Backups** — Automatic backup, restore, export and import of all settings +- **DB Backups** — Automatic backup, restore, export and import of all settings, with `DISABLE_SQLITE_AUTO_BACKUP` for externally managed backups
@@ -737,7 +762,7 @@ Outcome: deep fallback depth for deadline-critical workloads | Step | Action | Providers Unlocked | | ---- | -------------------------------------------------- | ------------------------------------------------------------------ | | 1 | Connect **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — **unlimited** | -| 2 | Connect **iFlow** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | +| 2 | Connect **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | | 3 | Connect **Qwen** (Device Code) | qwen3-coder-plus, qwen3-coder-flash... — **unlimited** | | 4 | Connect **Gemini CLI** (Google OAuth) | gemini-3-flash, gemini-2.5-pro — **180K/mo free** | | 5 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | @@ -838,6 +863,113 @@ npm install PORT=20128 DASHBOARD_PORT=20129 NEXT_PUBLIC_BASE_URL=http://localhost:20129 npm run dev ``` +
+Void Linux (`xbps-src` template) + +For Void Linux users, you can build a native package using `xbps-src`. Save this block as `srcpkgs/omniroute/template`: + +```bash +# Template file for 'omniroute' +pkgname=omniroute +version=3.4.1 +revision=1 +hostmakedepends="nodejs python3 make" +depends="openssl" +short_desc="Universal AI gateway with smart routing for multiple LLM providers" +maintainer="zenobit " +license="MIT" +homepage="https://github.com/diegosouzapw/OmniRoute" +distfiles="https://github.com/diegosouzapw/OmniRoute/archive/refs/tags/v${version}.tar.gz" +checksum=009400afee90a9f32599d8fe734145cfd84098140b7287990183dde45ae2245b +system_accounts="_omniroute" +omniroute_homedir="/var/lib/omniroute" +export NODE_ENV=production +export npm_config_engine_strict=false +export npm_config_loglevel=error +export npm_config_fund=false +export npm_config_audit=false + +do_build() { + # Determine target CPU arch for node-gyp + local _gyp_arch + case "$XBPS_TARGET_MACHINE" in + aarch64*) _gyp_arch=arm64 ;; + armv7*|armv6*) _gyp_arch=arm ;; + i686*) _gyp_arch=ia32 ;; + *) _gyp_arch=x64 ;; + esac + + # 1) Install all deps – skip scripts (no network in do_build, native modules + # compiled separately below; better-sqlite3 is serverExternalPackage so + # Next.js does not execute it during next build) + NODE_ENV=development npm ci --ignore-scripts + + # 2) Build the Next.js standalone bundle + npm run build + + # 3) Copy static assets into standalone + cp -r .next/static .next/standalone/.next/static + [ -d public ] && cp -r public .next/standalone/public || true + + # 4) Compile better-sqlite3 native binding for the target architecture. + # Use node-gyp directly so CC/CXX from xbps-src cross-toolchain are used + # without npm altering them. + local _node_gyp=/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js + (cd node_modules/better-sqlite3 && node "$_node_gyp" rebuild --arch="$_gyp_arch") + + # 5) Place the compiled binding into the standalone bundle + local _bs3_release=.next/standalone/node_modules/better-sqlite3/build/Release + mkdir -p "$_bs3_release" + cp node_modules/better-sqlite3/build/Release/better_sqlite3.node "$_bs3_release/" + + # 6) Remove arch-specific sharp bundles – upstream sets images.unoptimized=true + # so sharp is not used at runtime; x64 .so files would break aarch64 strip + rm -rf .next/standalone/node_modules/@img + + # 7) Copy pino runtime deps omitted by Next.js static analysis: + # pino-abstract-transport – required by pino's worker thread + # split2 – dep of pino-abstract-transport + # process-warning – dep of pino itself + for _mod in pino-abstract-transport split2 process-warning; do + cp -r "node_modules/$_mod" .next/standalone/node_modules/ + done +} + +do_check() { + npm run test:unit +} + +do_install() { + vmkdir usr/lib/omniroute/.next + + vcopy .next/standalone/. usr/lib/omniroute/.next/standalone + + # Prevent removal of empty Next.js app router dirs by the post-install hook + for _d in \ + .next/standalone/.next/server/app/dashboard \ + .next/standalone/.next/server/app/dashboard/settings \ + .next/standalone/.next/server/app/dashboard/providers; do + touch "${DESTDIR}/usr/lib/omniroute/${_d}/.keep" + done + + cat > "${WRKDIR}/omniroute" <<'EOF' +#!/bin/sh +export PORT="${PORT:-20128}" +export DATA_DIR="${DATA_DIR:-${XDG_DATA_HOME:-${HOME}/.local/share}/omniroute}" +export LOG_TO_FILE="${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 +} +``` + +
+ --- ## 🐳 Docker @@ -886,6 +1018,7 @@ Notes: - Quick Tunnel URLs are temporary and change after every restart. - Managed install currently supports Linux, macOS, and Windows on `x64` / `arm64`. +- Docker images bundle system CA roots and pass them to managed `cloudflared`, which avoids TLS trust failures when the tunnel bootstraps inside the container. - Set `CLOUDFLARED_BIN=/absolute/path/to/cloudflared` if you want OmniRoute to use an existing binary instead of downloading one. **Using Docker Compose with Caddy (HTTPS Auto-TLS):** @@ -983,7 +1116,7 @@ When minimized, OmniRoute lives in your system tray with quick actions: | | MiniMax M2.1 | $0.2/1M | 5-hour rolling | Cheapest option | | | Kimi K2.5 (Moonshot API) 🆕 | Pay-per-use | None | Direct Moonshot API access | | | Kimi K2 | $9/mo flat | 10M tokens/mo | Predictable cost | -| **🆓 FREE** | iFlow | **$0** | Unlimited | 5 models unlimited | +| **🆓 FREE** | Qoder | **$0** | Unlimited | 5 models unlimited | | | Qwen | **$0** | Unlimited | 4 models unlimited | | | Kiro | **$0** | Unlimited | Claude Sonnet/Haiku (AWS Builder) | | | LongCat Flash-Lite 🆕 | **$0** (50M tok/day 🔥) | 1 RPS | Largest free quota on Earth | @@ -998,7 +1131,7 @@ When minimized, OmniRoute lives in your system tray with quick actions: ``` # 🆓 Ultimate Free Stack 2026 — 11 Providers, $0 Forever Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -iFlow (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED +Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed Qwen (qw/) → qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next UNLIMITED @@ -1028,7 +1161,7 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day | `claude-haiku-4.5` | `kr/` | **Unlimited** | No reported daily cap | | `claude-opus-4.6` | `kr/` | **Unlimited** | Latest Opus via Kiro | -### 🟢 IFLOW MODELS (Free OAuth — No Credit Card) +### 🟢 QODER MODELS (Free OAuth — No Credit Card) | Model | Prefix | Limit | Rate Limit | | ------------------ | ------ | ------------- | --------------- | @@ -1127,7 +1260,7 @@ Available free: `qwen3-235b-a22b-instruct-2507` (Qwen3 235B!), `llama-3.1-70b-in > > ``` > Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -> iFlow (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED +> Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED > LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 > Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed > Qwen (qw/) → qwen3-coder models UNLIMITED @@ -1279,21 +1412,22 @@ OmniRoute v2.0 is built as an operational platform, not just a relay proxy. ### ☁️ Deployment & Platform -| Feature | What It Does | -| ----------------------------- | --------------------------------------------------------- | -| 🌐 **Deploy Anywhere** | Localhost, VPS, Docker, Cloud environments | -| 🚇 **Cloudflare Tunnel** 🆕 | One-click Quick Tunnel integration from the dashboard | -| 💾 **Cloud Sync** | Configuration sync via cloud worker | -| 🔄 **Backup/Restore** | Export/import and disaster recovery flows | -| 🧙 **Onboarding Wizard** | First-run guided setup | -| 🔧 **CLI Tools Dashboard** | One-click setup for popular coding tools | -| 🎮 **Model Playground** | Test any provider/model/endpoint from the dashboard | -| 🔏 **CLI Fingerprint Toggle** | Per-provider fingerprint matching in Settings > Security | -| 🌐 **i18n (30 languages)** | Full dashboard + docs language support with RTL coverage | -| 🧹 **Clear All Models** | One-click model list clearing in provider details | -| 👁️ **Sidebar Controls** 🆕 | Hide components and integrations from Appearance Settings | -| 📋 **Issue Templates** | Standardized GitHub templates for bugs and features | -| 📂 **Custom Data Directory** | `DATA_DIR` override for storage location | +| Feature | What It Does | +| ------------------------------ | --------------------------------------------------------------------- | +| 🌐 **Deploy Anywhere** | Localhost, VPS, Docker, Cloud environments | +| 🚇 **Cloudflare Tunnel** 🆕 | One-click Quick Tunnel integration from the dashboard | +| 🔑 **API Key Model Filtering** | Native /v1/models response filtered via assigned Bearer context roles | +| ⚡ **Smart Cache Bypass** | Configurable TTL heuristics and forced refetch controls | +| 🔄 **Backup/Restore** | Export/import and disaster recovery flows | +| 🧙 **Onboarding Wizard** | First-run guided setup | +| 🔧 **CLI Tools Dashboard** | One-click setup for popular coding tools | +| 🎮 **Model Playground** | Test any provider/model/endpoint from the dashboard | +| 🔏 **CLI Fingerprint Toggle** | Per-provider fingerprint matching in Settings > Security | +| 🌐 **i18n (30 languages)** | Full dashboard + docs language support with RTL coverage | +| 🧹 **Clear All Models** | One-click model list clearing in provider details | +| 👁️ **Sidebar Controls** 🆕 | Hide components and integrations from Appearance Settings | +| 📋 **Issue Templates** | Standardized GitHub templates for bugs and features | +| 📂 **Custom Data Directory** | `DATA_DIR` override for storage location | ### Feature Deep Dive @@ -1545,6 +1679,8 @@ Models: **Models:** Access 100+ models from all major providers through a single API key. +**Dashboard behavior:** OpenRouter models are managed from **Available Models**. Manual add, import, and auto-sync all update the same list. +
@@ -1587,11 +1723,11 @@ Models:
🆓 FREE Providers (Emergency Backup) -### iFlow (5 FREE models via OAuth) +### Qoder (5 FREE models via OAuth) ```bash -Dashboard → Connect iFlow -→ iFlow OAuth login +Dashboard → Connect Qoder +→ Qoder OAuth login → Unlimited usage Models: @@ -1789,7 +1925,7 @@ opencode - Check usage stats in Dashboard → Costs - Switch primary model to GLM/MiniMax -- Use free tier (Gemini CLI, iFlow) for non-critical tasks +- Use free tier (Gemini CLI, Qoder) for non-critical tasks **Dashboard/API ports are wrong** @@ -1811,7 +1947,9 @@ opencode **No request logs** -- Set `ENABLE_REQUEST_LOGS=true` in `.env` +- Request artifacts are written to `DATA_DIR/call_logs/` as one JSON file per request +- Enable pipeline capture from Dashboard → Logs → Request Logs if you need detailed per-stage payloads +- Set `APP_LOG_TO_FILE=true` if you also want application console logs in `logs/application/app.log` **Connection test shows "Invalid" for OpenAI-compatible providers** diff --git a/docs/i18n/no/README.md b/docs/i18n/no/README.md index d01cf5b5d7..0823e763ff 100644 --- a/docs/i18n/no/README.md +++ b/docs/i18n/no/README.md @@ -4,6 +4,7 @@ --- + ### Never stop coding. Smart routing to **FREE & low-cost AI models** with automatic fallback. _Your universal API proxy — one endpoint, 67+ providers, zero downtime. Now with **MCP & A2A** agent orchestration._ @@ -30,6 +31,30 @@ _Your universal API proxy — one endpoint, 67+ providers, zero downtime. Now wi --- +## Breaking Change: Unified Logging Upgrade + +> [!WARNING] +> **This release changes both the on-disk request log layout and the logging environment variables.** +> +> If you are upgrading an existing instance: +> +> - Request logs now live in `DATA_DIR/call_logs/YYYY-MM-DD/` as **one JSON artifact per request**. +> - The old `DATA_DIR/logs/` session folders and `DATA_DIR/log.txt` summary file are removed. +> - On the first startup after upgrading, OmniRoute creates a safety backup at `DATA_DIR/log_archives/*.zip` before removing the deprecated request log layout. +> - Legacy logging env vars such as `LOG_TO_FILE`, `LOG_FILE_PATH`, `LOG_MAX_FILE_SIZE`, `LOG_RETENTION_DAYS`, `LOG_LEVEL`, `LOG_FORMAT`, `ENABLE_REQUEST_LOGS`, `CALL_LOGS_MAX`, `CALL_LOG_PAYLOAD_MODE`, and `PROXY_LOG_MAX_ENTRIES` are no longer supported. +> - Use the new env model instead: +> - `APP_LOG_TO_FILE` +> - `APP_LOG_FILE_PATH` +> - `APP_LOG_MAX_FILE_SIZE` +> - `APP_LOG_RETENTION_DAYS` +> - `APP_LOG_LEVEL` +> - `APP_LOG_FORMAT` +> - `CALL_LOG_RETENTION_DAYS` +> +> For release details and upgrade notes, see the [CHANGELOG](CHANGELOG.md). + +--- + ## 🆕 What's New in v3.0.0 > **Upgrading from v2.9.5?** — See the [full CHANGELOG](CHANGELOG.md#300--2026-03-22-release-candidate--not-yet-merged-to-main) for all changes. @@ -203,7 +228,7 @@ When opening an issue, please run the system-info command and attach the generat npm run system-info ``` -This generates a `system-info.txt` with your Node.js version, OmniRoute version, OS details, installed CLI tools (iflow, gemini, claude, codex, antigravity, droid, etc.), Docker/PM2 status, and system packages — everything we need to reproduce your issue quickly. Attach the file directly to your GitHub issue. +This generates a `system-info.txt` with your Node.js version, OmniRoute version, OS details, installed CLI tools (qoder, gemini, claude, codex, antigravity, droid, etc.), Docker/PM2 status, and system packages — everything we need to reproduce your issue quickly. Attach the file directly to your GitHub issue. --- @@ -229,7 +254,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, │ ↓ budget limit ├─→ [Tier 3: CHEAP] GLM ($0.6/1M), MiniMax ($0.2/1M) │ ↓ budget limit - └─→ [Tier 4: FREE] iFlow, Qwen, Kiro (unlimited) + └─→ [Tier 4: FREE] Qoder, Qwen, Kiro (unlimited) Result: Never stop coding, minimal cost ``` @@ -296,7 +321,7 @@ Not everyone can pay $20–200/month for AI subscriptions. Students, devs from e **How OmniRoute solves it:** -- **Free Tier Providers Built-in** — Native support for 100% free providers: iFlow (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) +- **Free Tier Providers Built-in** — Native support for 100% free providers: Qoder (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) - **Ollama Cloud** — Cloud-hosted Ollama models at `api.ollama.com` with free "Light usage" tier; use `ollamacloud/` prefix - **Free-Only Combos** — Chain `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime - **NVIDIA NIM Free Access** — ~40 RPM dev-forever free access to 70+ models at build.nvidia.com (transitioning from credits to pure rate limits) @@ -360,7 +385,7 @@ Claude Code, Codex, Gemini CLI, Copilot — all use OAuth 2.0 with expiring toke **How OmniRoute solves it:** - **Auto Token Refresh** — OAuth tokens refresh in background before expiration -- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, iFlow +- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder - **Multi-Account OAuth** — Multiple accounts per provider via JWT/ID token extraction - **OAuth LAN/Remote Fix** — Private IP detection for `redirect_uri` + manual URL mode for remote servers - **OAuth Behind Nginx** — Uses `window.location.origin` for reverse proxy compatibility @@ -413,7 +438,7 @@ Installing, configuring, and maintaining an AI proxy across different environmen - **Electron Desktop App** — Native app for Windows/macOS/Linux with system tray, auto-start, offline mode - **Split-Port Mode** — API and Dashboard on separate ports for advanced scenarios (reverse proxy, container networking) - **Cloud Sync** — Config synchronization across devices via Cloudflare Workers -- **DB Backups** — Automatic backup, restore, export and import of all settings +- **DB Backups** — Automatic backup, restore, export and import of all settings, with `DISABLE_SQLITE_AUTO_BACKUP` for externally managed backups
@@ -737,7 +762,7 @@ Outcome: deep fallback depth for deadline-critical workloads | Step | Action | Providers Unlocked | | ---- | -------------------------------------------------- | ------------------------------------------------------------------ | | 1 | Connect **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — **unlimited** | -| 2 | Connect **iFlow** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | +| 2 | Connect **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | | 3 | Connect **Qwen** (Device Code) | qwen3-coder-plus, qwen3-coder-flash... — **unlimited** | | 4 | Connect **Gemini CLI** (Google OAuth) | gemini-3-flash, gemini-2.5-pro — **180K/mo free** | | 5 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | @@ -838,6 +863,113 @@ npm install PORT=20128 DASHBOARD_PORT=20129 NEXT_PUBLIC_BASE_URL=http://localhost:20129 npm run dev ``` +
+Void Linux (`xbps-src` template) + +For Void Linux users, you can build a native package using `xbps-src`. Save this block as `srcpkgs/omniroute/template`: + +```bash +# Template file for 'omniroute' +pkgname=omniroute +version=3.4.1 +revision=1 +hostmakedepends="nodejs python3 make" +depends="openssl" +short_desc="Universal AI gateway with smart routing for multiple LLM providers" +maintainer="zenobit " +license="MIT" +homepage="https://github.com/diegosouzapw/OmniRoute" +distfiles="https://github.com/diegosouzapw/OmniRoute/archive/refs/tags/v${version}.tar.gz" +checksum=009400afee90a9f32599d8fe734145cfd84098140b7287990183dde45ae2245b +system_accounts="_omniroute" +omniroute_homedir="/var/lib/omniroute" +export NODE_ENV=production +export npm_config_engine_strict=false +export npm_config_loglevel=error +export npm_config_fund=false +export npm_config_audit=false + +do_build() { + # Determine target CPU arch for node-gyp + local _gyp_arch + case "$XBPS_TARGET_MACHINE" in + aarch64*) _gyp_arch=arm64 ;; + armv7*|armv6*) _gyp_arch=arm ;; + i686*) _gyp_arch=ia32 ;; + *) _gyp_arch=x64 ;; + esac + + # 1) Install all deps – skip scripts (no network in do_build, native modules + # compiled separately below; better-sqlite3 is serverExternalPackage so + # Next.js does not execute it during next build) + NODE_ENV=development npm ci --ignore-scripts + + # 2) Build the Next.js standalone bundle + npm run build + + # 3) Copy static assets into standalone + cp -r .next/static .next/standalone/.next/static + [ -d public ] && cp -r public .next/standalone/public || true + + # 4) Compile better-sqlite3 native binding for the target architecture. + # Use node-gyp directly so CC/CXX from xbps-src cross-toolchain are used + # without npm altering them. + local _node_gyp=/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js + (cd node_modules/better-sqlite3 && node "$_node_gyp" rebuild --arch="$_gyp_arch") + + # 5) Place the compiled binding into the standalone bundle + local _bs3_release=.next/standalone/node_modules/better-sqlite3/build/Release + mkdir -p "$_bs3_release" + cp node_modules/better-sqlite3/build/Release/better_sqlite3.node "$_bs3_release/" + + # 6) Remove arch-specific sharp bundles – upstream sets images.unoptimized=true + # so sharp is not used at runtime; x64 .so files would break aarch64 strip + rm -rf .next/standalone/node_modules/@img + + # 7) Copy pino runtime deps omitted by Next.js static analysis: + # pino-abstract-transport – required by pino's worker thread + # split2 – dep of pino-abstract-transport + # process-warning – dep of pino itself + for _mod in pino-abstract-transport split2 process-warning; do + cp -r "node_modules/$_mod" .next/standalone/node_modules/ + done +} + +do_check() { + npm run test:unit +} + +do_install() { + vmkdir usr/lib/omniroute/.next + + vcopy .next/standalone/. usr/lib/omniroute/.next/standalone + + # Prevent removal of empty Next.js app router dirs by the post-install hook + for _d in \ + .next/standalone/.next/server/app/dashboard \ + .next/standalone/.next/server/app/dashboard/settings \ + .next/standalone/.next/server/app/dashboard/providers; do + touch "${DESTDIR}/usr/lib/omniroute/${_d}/.keep" + done + + cat > "${WRKDIR}/omniroute" <<'EOF' +#!/bin/sh +export PORT="${PORT:-20128}" +export DATA_DIR="${DATA_DIR:-${XDG_DATA_HOME:-${HOME}/.local/share}/omniroute}" +export LOG_TO_FILE="${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 +} +``` + +
+ --- ## 🐳 Docker @@ -886,6 +1018,7 @@ Notes: - Quick Tunnel URLs are temporary and change after every restart. - Managed install currently supports Linux, macOS, and Windows on `x64` / `arm64`. +- Docker images bundle system CA roots and pass them to managed `cloudflared`, which avoids TLS trust failures when the tunnel bootstraps inside the container. - Set `CLOUDFLARED_BIN=/absolute/path/to/cloudflared` if you want OmniRoute to use an existing binary instead of downloading one. **Using Docker Compose with Caddy (HTTPS Auto-TLS):** @@ -983,7 +1116,7 @@ When minimized, OmniRoute lives in your system tray with quick actions: | | MiniMax M2.1 | $0.2/1M | 5-hour rolling | Cheapest option | | | Kimi K2.5 (Moonshot API) 🆕 | Pay-per-use | None | Direct Moonshot API access | | | Kimi K2 | $9/mo flat | 10M tokens/mo | Predictable cost | -| **🆓 FREE** | iFlow | **$0** | Unlimited | 5 models unlimited | +| **🆓 FREE** | Qoder | **$0** | Unlimited | 5 models unlimited | | | Qwen | **$0** | Unlimited | 4 models unlimited | | | Kiro | **$0** | Unlimited | Claude Sonnet/Haiku (AWS Builder) | | | LongCat Flash-Lite 🆕 | **$0** (50M tok/day 🔥) | 1 RPS | Largest free quota on Earth | @@ -998,7 +1131,7 @@ When minimized, OmniRoute lives in your system tray with quick actions: ``` # 🆓 Ultimate Free Stack 2026 — 11 Providers, $0 Forever Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -iFlow (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED +Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed Qwen (qw/) → qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next UNLIMITED @@ -1028,7 +1161,7 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day | `claude-haiku-4.5` | `kr/` | **Unlimited** | No reported daily cap | | `claude-opus-4.6` | `kr/` | **Unlimited** | Latest Opus via Kiro | -### 🟢 IFLOW MODELS (Free OAuth — No Credit Card) +### 🟢 QODER MODELS (Free OAuth — No Credit Card) | Model | Prefix | Limit | Rate Limit | | ------------------ | ------ | ------------- | --------------- | @@ -1127,7 +1260,7 @@ Available free: `qwen3-235b-a22b-instruct-2507` (Qwen3 235B!), `llama-3.1-70b-in > > ``` > Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -> iFlow (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED +> Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED > LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 > Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed > Qwen (qw/) → qwen3-coder models UNLIMITED @@ -1279,21 +1412,22 @@ OmniRoute v2.0 is built as an operational platform, not just a relay proxy. ### ☁️ Deployment & Platform -| Feature | What It Does | -| ----------------------------- | --------------------------------------------------------- | -| 🌐 **Deploy Anywhere** | Localhost, VPS, Docker, Cloud environments | -| 🚇 **Cloudflare Tunnel** 🆕 | One-click Quick Tunnel integration from the dashboard | -| 💾 **Cloud Sync** | Configuration sync via cloud worker | -| 🔄 **Backup/Restore** | Export/import and disaster recovery flows | -| 🧙 **Onboarding Wizard** | First-run guided setup | -| 🔧 **CLI Tools Dashboard** | One-click setup for popular coding tools | -| 🎮 **Model Playground** | Test any provider/model/endpoint from the dashboard | -| 🔏 **CLI Fingerprint Toggle** | Per-provider fingerprint matching in Settings > Security | -| 🌐 **i18n (30 languages)** | Full dashboard + docs language support with RTL coverage | -| 🧹 **Clear All Models** | One-click model list clearing in provider details | -| 👁️ **Sidebar Controls** 🆕 | Hide components and integrations from Appearance Settings | -| 📋 **Issue Templates** | Standardized GitHub templates for bugs and features | -| 📂 **Custom Data Directory** | `DATA_DIR` override for storage location | +| Feature | What It Does | +| ------------------------------ | --------------------------------------------------------------------- | +| 🌐 **Deploy Anywhere** | Localhost, VPS, Docker, Cloud environments | +| 🚇 **Cloudflare Tunnel** 🆕 | One-click Quick Tunnel integration from the dashboard | +| 🔑 **API Key Model Filtering** | Native /v1/models response filtered via assigned Bearer context roles | +| ⚡ **Smart Cache Bypass** | Configurable TTL heuristics and forced refetch controls | +| 🔄 **Backup/Restore** | Export/import and disaster recovery flows | +| 🧙 **Onboarding Wizard** | First-run guided setup | +| 🔧 **CLI Tools Dashboard** | One-click setup for popular coding tools | +| 🎮 **Model Playground** | Test any provider/model/endpoint from the dashboard | +| 🔏 **CLI Fingerprint Toggle** | Per-provider fingerprint matching in Settings > Security | +| 🌐 **i18n (30 languages)** | Full dashboard + docs language support with RTL coverage | +| 🧹 **Clear All Models** | One-click model list clearing in provider details | +| 👁️ **Sidebar Controls** 🆕 | Hide components and integrations from Appearance Settings | +| 📋 **Issue Templates** | Standardized GitHub templates for bugs and features | +| 📂 **Custom Data Directory** | `DATA_DIR` override for storage location | ### Feature Deep Dive @@ -1545,6 +1679,8 @@ Models: **Models:** Access 100+ models from all major providers through a single API key. +**Dashboard behavior:** OpenRouter models are managed from **Available Models**. Manual add, import, and auto-sync all update the same list. +
@@ -1587,11 +1723,11 @@ Models:
🆓 FREE Providers (Emergency Backup) -### iFlow (5 FREE models via OAuth) +### Qoder (5 FREE models via OAuth) ```bash -Dashboard → Connect iFlow -→ iFlow OAuth login +Dashboard → Connect Qoder +→ Qoder OAuth login → Unlimited usage Models: @@ -1789,7 +1925,7 @@ opencode - Check usage stats in Dashboard → Costs - Switch primary model to GLM/MiniMax -- Use free tier (Gemini CLI, iFlow) for non-critical tasks +- Use free tier (Gemini CLI, Qoder) for non-critical tasks **Dashboard/API ports are wrong** @@ -1811,7 +1947,9 @@ opencode **No request logs** -- Set `ENABLE_REQUEST_LOGS=true` in `.env` +- Request artifacts are written to `DATA_DIR/call_logs/` as one JSON file per request +- Enable pipeline capture from Dashboard → Logs → Request Logs if you need detailed per-stage payloads +- Set `APP_LOG_TO_FILE=true` if you also want application console logs in `logs/application/app.log` **Connection test shows "Invalid" for OpenAI-compatible providers** diff --git a/docs/i18n/phi/README.md b/docs/i18n/phi/README.md index d45fb48995..c79ea98657 100644 --- a/docs/i18n/phi/README.md +++ b/docs/i18n/phi/README.md @@ -4,6 +4,7 @@ --- + ### Never stop coding. Smart routing to **FREE & low-cost AI models** with automatic fallback. _Your universal API proxy — one endpoint, 67+ providers, zero downtime. Now with **MCP & A2A** agent orchestration._ @@ -30,6 +31,30 @@ _Your universal API proxy — one endpoint, 67+ providers, zero downtime. Now wi --- +## Breaking Change: Unified Logging Upgrade + +> [!WARNING] +> **This release changes both the on-disk request log layout and the logging environment variables.** +> +> If you are upgrading an existing instance: +> +> - Request logs now live in `DATA_DIR/call_logs/YYYY-MM-DD/` as **one JSON artifact per request**. +> - The old `DATA_DIR/logs/` session folders and `DATA_DIR/log.txt` summary file are removed. +> - On the first startup after upgrading, OmniRoute creates a safety backup at `DATA_DIR/log_archives/*.zip` before removing the deprecated request log layout. +> - Legacy logging env vars such as `LOG_TO_FILE`, `LOG_FILE_PATH`, `LOG_MAX_FILE_SIZE`, `LOG_RETENTION_DAYS`, `LOG_LEVEL`, `LOG_FORMAT`, `ENABLE_REQUEST_LOGS`, `CALL_LOGS_MAX`, `CALL_LOG_PAYLOAD_MODE`, and `PROXY_LOG_MAX_ENTRIES` are no longer supported. +> - Use the new env model instead: +> - `APP_LOG_TO_FILE` +> - `APP_LOG_FILE_PATH` +> - `APP_LOG_MAX_FILE_SIZE` +> - `APP_LOG_RETENTION_DAYS` +> - `APP_LOG_LEVEL` +> - `APP_LOG_FORMAT` +> - `CALL_LOG_RETENTION_DAYS` +> +> For release details and upgrade notes, see the [CHANGELOG](CHANGELOG.md). + +--- + ## 🆕 What's New in v3.0.0 > **Upgrading from v2.9.5?** — See the [full CHANGELOG](CHANGELOG.md#300--2026-03-22-release-candidate--not-yet-merged-to-main) for all changes. @@ -203,7 +228,7 @@ When opening an issue, please run the system-info command and attach the generat npm run system-info ``` -This generates a `system-info.txt` with your Node.js version, OmniRoute version, OS details, installed CLI tools (iflow, gemini, claude, codex, antigravity, droid, etc.), Docker/PM2 status, and system packages — everything we need to reproduce your issue quickly. Attach the file directly to your GitHub issue. +This generates a `system-info.txt` with your Node.js version, OmniRoute version, OS details, installed CLI tools (qoder, gemini, claude, codex, antigravity, droid, etc.), Docker/PM2 status, and system packages — everything we need to reproduce your issue quickly. Attach the file directly to your GitHub issue. --- @@ -229,7 +254,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, │ ↓ budget limit ├─→ [Tier 3: CHEAP] GLM ($0.6/1M), MiniMax ($0.2/1M) │ ↓ budget limit - └─→ [Tier 4: FREE] iFlow, Qwen, Kiro (unlimited) + └─→ [Tier 4: FREE] Qoder, Qwen, Kiro (unlimited) Result: Never stop coding, minimal cost ``` @@ -296,7 +321,7 @@ Not everyone can pay $20–200/month for AI subscriptions. Students, devs from e **How OmniRoute solves it:** -- **Free Tier Providers Built-in** — Native support for 100% free providers: iFlow (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) +- **Free Tier Providers Built-in** — Native support for 100% free providers: Qoder (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) - **Ollama Cloud** — Cloud-hosted Ollama models at `api.ollama.com` with free "Light usage" tier; use `ollamacloud/` prefix - **Free-Only Combos** — Chain `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime - **NVIDIA NIM Free Access** — ~40 RPM dev-forever free access to 70+ models at build.nvidia.com (transitioning from credits to pure rate limits) @@ -360,7 +385,7 @@ Claude Code, Codex, Gemini CLI, Copilot — all use OAuth 2.0 with expiring toke **How OmniRoute solves it:** - **Auto Token Refresh** — OAuth tokens refresh in background before expiration -- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, iFlow +- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder - **Multi-Account OAuth** — Multiple accounts per provider via JWT/ID token extraction - **OAuth LAN/Remote Fix** — Private IP detection for `redirect_uri` + manual URL mode for remote servers - **OAuth Behind Nginx** — Uses `window.location.origin` for reverse proxy compatibility @@ -413,7 +438,7 @@ Installing, configuring, and maintaining an AI proxy across different environmen - **Electron Desktop App** — Native app for Windows/macOS/Linux with system tray, auto-start, offline mode - **Split-Port Mode** — API and Dashboard on separate ports for advanced scenarios (reverse proxy, container networking) - **Cloud Sync** — Config synchronization across devices via Cloudflare Workers -- **DB Backups** — Automatic backup, restore, export and import of all settings +- **DB Backups** — Automatic backup, restore, export and import of all settings, with `DISABLE_SQLITE_AUTO_BACKUP` for externally managed backups
@@ -737,7 +762,7 @@ Outcome: deep fallback depth for deadline-critical workloads | Step | Action | Providers Unlocked | | ---- | -------------------------------------------------- | ------------------------------------------------------------------ | | 1 | Connect **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — **unlimited** | -| 2 | Connect **iFlow** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | +| 2 | Connect **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | | 3 | Connect **Qwen** (Device Code) | qwen3-coder-plus, qwen3-coder-flash... — **unlimited** | | 4 | Connect **Gemini CLI** (Google OAuth) | gemini-3-flash, gemini-2.5-pro — **180K/mo free** | | 5 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | @@ -838,6 +863,113 @@ npm install PORT=20128 DASHBOARD_PORT=20129 NEXT_PUBLIC_BASE_URL=http://localhost:20129 npm run dev ``` +
+Void Linux (`xbps-src` template) + +For Void Linux users, you can build a native package using `xbps-src`. Save this block as `srcpkgs/omniroute/template`: + +```bash +# Template file for 'omniroute' +pkgname=omniroute +version=3.4.1 +revision=1 +hostmakedepends="nodejs python3 make" +depends="openssl" +short_desc="Universal AI gateway with smart routing for multiple LLM providers" +maintainer="zenobit " +license="MIT" +homepage="https://github.com/diegosouzapw/OmniRoute" +distfiles="https://github.com/diegosouzapw/OmniRoute/archive/refs/tags/v${version}.tar.gz" +checksum=009400afee90a9f32599d8fe734145cfd84098140b7287990183dde45ae2245b +system_accounts="_omniroute" +omniroute_homedir="/var/lib/omniroute" +export NODE_ENV=production +export npm_config_engine_strict=false +export npm_config_loglevel=error +export npm_config_fund=false +export npm_config_audit=false + +do_build() { + # Determine target CPU arch for node-gyp + local _gyp_arch + case "$XBPS_TARGET_MACHINE" in + aarch64*) _gyp_arch=arm64 ;; + armv7*|armv6*) _gyp_arch=arm ;; + i686*) _gyp_arch=ia32 ;; + *) _gyp_arch=x64 ;; + esac + + # 1) Install all deps – skip scripts (no network in do_build, native modules + # compiled separately below; better-sqlite3 is serverExternalPackage so + # Next.js does not execute it during next build) + NODE_ENV=development npm ci --ignore-scripts + + # 2) Build the Next.js standalone bundle + npm run build + + # 3) Copy static assets into standalone + cp -r .next/static .next/standalone/.next/static + [ -d public ] && cp -r public .next/standalone/public || true + + # 4) Compile better-sqlite3 native binding for the target architecture. + # Use node-gyp directly so CC/CXX from xbps-src cross-toolchain are used + # without npm altering them. + local _node_gyp=/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js + (cd node_modules/better-sqlite3 && node "$_node_gyp" rebuild --arch="$_gyp_arch") + + # 5) Place the compiled binding into the standalone bundle + local _bs3_release=.next/standalone/node_modules/better-sqlite3/build/Release + mkdir -p "$_bs3_release" + cp node_modules/better-sqlite3/build/Release/better_sqlite3.node "$_bs3_release/" + + # 6) Remove arch-specific sharp bundles – upstream sets images.unoptimized=true + # so sharp is not used at runtime; x64 .so files would break aarch64 strip + rm -rf .next/standalone/node_modules/@img + + # 7) Copy pino runtime deps omitted by Next.js static analysis: + # pino-abstract-transport – required by pino's worker thread + # split2 – dep of pino-abstract-transport + # process-warning – dep of pino itself + for _mod in pino-abstract-transport split2 process-warning; do + cp -r "node_modules/$_mod" .next/standalone/node_modules/ + done +} + +do_check() { + npm run test:unit +} + +do_install() { + vmkdir usr/lib/omniroute/.next + + vcopy .next/standalone/. usr/lib/omniroute/.next/standalone + + # Prevent removal of empty Next.js app router dirs by the post-install hook + for _d in \ + .next/standalone/.next/server/app/dashboard \ + .next/standalone/.next/server/app/dashboard/settings \ + .next/standalone/.next/server/app/dashboard/providers; do + touch "${DESTDIR}/usr/lib/omniroute/${_d}/.keep" + done + + cat > "${WRKDIR}/omniroute" <<'EOF' +#!/bin/sh +export PORT="${PORT:-20128}" +export DATA_DIR="${DATA_DIR:-${XDG_DATA_HOME:-${HOME}/.local/share}/omniroute}" +export LOG_TO_FILE="${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 +} +``` + +
+ --- ## 🐳 Docker @@ -886,6 +1018,7 @@ Notes: - Quick Tunnel URLs are temporary and change after every restart. - Managed install currently supports Linux, macOS, and Windows on `x64` / `arm64`. +- Docker images bundle system CA roots and pass them to managed `cloudflared`, which avoids TLS trust failures when the tunnel bootstraps inside the container. - Set `CLOUDFLARED_BIN=/absolute/path/to/cloudflared` if you want OmniRoute to use an existing binary instead of downloading one. **Using Docker Compose with Caddy (HTTPS Auto-TLS):** @@ -983,7 +1116,7 @@ When minimized, OmniRoute lives in your system tray with quick actions: | | MiniMax M2.1 | $0.2/1M | 5-hour rolling | Cheapest option | | | Kimi K2.5 (Moonshot API) 🆕 | Pay-per-use | None | Direct Moonshot API access | | | Kimi K2 | $9/mo flat | 10M tokens/mo | Predictable cost | -| **🆓 FREE** | iFlow | **$0** | Unlimited | 5 models unlimited | +| **🆓 FREE** | Qoder | **$0** | Unlimited | 5 models unlimited | | | Qwen | **$0** | Unlimited | 4 models unlimited | | | Kiro | **$0** | Unlimited | Claude Sonnet/Haiku (AWS Builder) | | | LongCat Flash-Lite 🆕 | **$0** (50M tok/day 🔥) | 1 RPS | Largest free quota on Earth | @@ -998,7 +1131,7 @@ When minimized, OmniRoute lives in your system tray with quick actions: ``` # 🆓 Ultimate Free Stack 2026 — 11 Providers, $0 Forever Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -iFlow (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED +Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed Qwen (qw/) → qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next UNLIMITED @@ -1028,7 +1161,7 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day | `claude-haiku-4.5` | `kr/` | **Unlimited** | No reported daily cap | | `claude-opus-4.6` | `kr/` | **Unlimited** | Latest Opus via Kiro | -### 🟢 IFLOW MODELS (Free OAuth — No Credit Card) +### 🟢 QODER MODELS (Free OAuth — No Credit Card) | Model | Prefix | Limit | Rate Limit | | ------------------ | ------ | ------------- | --------------- | @@ -1127,7 +1260,7 @@ Available free: `qwen3-235b-a22b-instruct-2507` (Qwen3 235B!), `llama-3.1-70b-in > > ``` > Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -> iFlow (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED +> Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED > LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 > Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed > Qwen (qw/) → qwen3-coder models UNLIMITED @@ -1279,21 +1412,22 @@ OmniRoute v2.0 is built as an operational platform, not just a relay proxy. ### ☁️ Deployment & Platform -| Feature | What It Does | -| ----------------------------- | --------------------------------------------------------- | -| 🌐 **Deploy Anywhere** | Localhost, VPS, Docker, Cloud environments | -| 🚇 **Cloudflare Tunnel** 🆕 | One-click Quick Tunnel integration from the dashboard | -| 💾 **Cloud Sync** | Configuration sync via cloud worker | -| 🔄 **Backup/Restore** | Export/import and disaster recovery flows | -| 🧙 **Onboarding Wizard** | First-run guided setup | -| 🔧 **CLI Tools Dashboard** | One-click setup for popular coding tools | -| 🎮 **Model Playground** | Test any provider/model/endpoint from the dashboard | -| 🔏 **CLI Fingerprint Toggle** | Per-provider fingerprint matching in Settings > Security | -| 🌐 **i18n (30 languages)** | Full dashboard + docs language support with RTL coverage | -| 🧹 **Clear All Models** | One-click model list clearing in provider details | -| 👁️ **Sidebar Controls** 🆕 | Hide components and integrations from Appearance Settings | -| 📋 **Issue Templates** | Standardized GitHub templates for bugs and features | -| 📂 **Custom Data Directory** | `DATA_DIR` override for storage location | +| Feature | What It Does | +| ------------------------------ | --------------------------------------------------------------------- | +| 🌐 **Deploy Anywhere** | Localhost, VPS, Docker, Cloud environments | +| 🚇 **Cloudflare Tunnel** 🆕 | One-click Quick Tunnel integration from the dashboard | +| 🔑 **API Key Model Filtering** | Native /v1/models response filtered via assigned Bearer context roles | +| ⚡ **Smart Cache Bypass** | Configurable TTL heuristics and forced refetch controls | +| 🔄 **Backup/Restore** | Export/import and disaster recovery flows | +| 🧙 **Onboarding Wizard** | First-run guided setup | +| 🔧 **CLI Tools Dashboard** | One-click setup for popular coding tools | +| 🎮 **Model Playground** | Test any provider/model/endpoint from the dashboard | +| 🔏 **CLI Fingerprint Toggle** | Per-provider fingerprint matching in Settings > Security | +| 🌐 **i18n (30 languages)** | Full dashboard + docs language support with RTL coverage | +| 🧹 **Clear All Models** | One-click model list clearing in provider details | +| 👁️ **Sidebar Controls** 🆕 | Hide components and integrations from Appearance Settings | +| 📋 **Issue Templates** | Standardized GitHub templates for bugs and features | +| 📂 **Custom Data Directory** | `DATA_DIR` override for storage location | ### Feature Deep Dive @@ -1545,6 +1679,8 @@ Models: **Models:** Access 100+ models from all major providers through a single API key. +**Dashboard behavior:** OpenRouter models are managed from **Available Models**. Manual add, import, and auto-sync all update the same list. +
@@ -1587,11 +1723,11 @@ Models:
🆓 FREE Providers (Emergency Backup) -### iFlow (5 FREE models via OAuth) +### Qoder (5 FREE models via OAuth) ```bash -Dashboard → Connect iFlow -→ iFlow OAuth login +Dashboard → Connect Qoder +→ Qoder OAuth login → Unlimited usage Models: @@ -1789,7 +1925,7 @@ opencode - Check usage stats in Dashboard → Costs - Switch primary model to GLM/MiniMax -- Use free tier (Gemini CLI, iFlow) for non-critical tasks +- Use free tier (Gemini CLI, Qoder) for non-critical tasks **Dashboard/API ports are wrong** @@ -1811,7 +1947,9 @@ opencode **No request logs** -- Set `ENABLE_REQUEST_LOGS=true` in `.env` +- Request artifacts are written to `DATA_DIR/call_logs/` as one JSON file per request +- Enable pipeline capture from Dashboard → Logs → Request Logs if you need detailed per-stage payloads +- Set `APP_LOG_TO_FILE=true` if you also want application console logs in `logs/application/app.log` **Connection test shows "Invalid" for OpenAI-compatible providers** diff --git a/docs/i18n/pl/README.md b/docs/i18n/pl/README.md index be082c04f5..a71f66a7fa 100644 --- a/docs/i18n/pl/README.md +++ b/docs/i18n/pl/README.md @@ -4,6 +4,7 @@ --- + ### Never stop coding. Smart routing to **FREE & low-cost AI models** with automatic fallback. _Your universal API proxy — one endpoint, 67+ providers, zero downtime. Now with **MCP & A2A** agent orchestration._ @@ -30,6 +31,30 @@ _Your universal API proxy — one endpoint, 67+ providers, zero downtime. Now wi --- +## Breaking Change: Unified Logging Upgrade + +> [!WARNING] +> **This release changes both the on-disk request log layout and the logging environment variables.** +> +> If you are upgrading an existing instance: +> +> - Request logs now live in `DATA_DIR/call_logs/YYYY-MM-DD/` as **one JSON artifact per request**. +> - The old `DATA_DIR/logs/` session folders and `DATA_DIR/log.txt` summary file are removed. +> - On the first startup after upgrading, OmniRoute creates a safety backup at `DATA_DIR/log_archives/*.zip` before removing the deprecated request log layout. +> - Legacy logging env vars such as `LOG_TO_FILE`, `LOG_FILE_PATH`, `LOG_MAX_FILE_SIZE`, `LOG_RETENTION_DAYS`, `LOG_LEVEL`, `LOG_FORMAT`, `ENABLE_REQUEST_LOGS`, `CALL_LOGS_MAX`, `CALL_LOG_PAYLOAD_MODE`, and `PROXY_LOG_MAX_ENTRIES` are no longer supported. +> - Use the new env model instead: +> - `APP_LOG_TO_FILE` +> - `APP_LOG_FILE_PATH` +> - `APP_LOG_MAX_FILE_SIZE` +> - `APP_LOG_RETENTION_DAYS` +> - `APP_LOG_LEVEL` +> - `APP_LOG_FORMAT` +> - `CALL_LOG_RETENTION_DAYS` +> +> For release details and upgrade notes, see the [CHANGELOG](CHANGELOG.md). + +--- + ## 🆕 What's New in v3.0.0 > **Upgrading from v2.9.5?** — See the [full CHANGELOG](CHANGELOG.md#300--2026-03-22-release-candidate--not-yet-merged-to-main) for all changes. @@ -203,7 +228,7 @@ When opening an issue, please run the system-info command and attach the generat npm run system-info ``` -This generates a `system-info.txt` with your Node.js version, OmniRoute version, OS details, installed CLI tools (iflow, gemini, claude, codex, antigravity, droid, etc.), Docker/PM2 status, and system packages — everything we need to reproduce your issue quickly. Attach the file directly to your GitHub issue. +This generates a `system-info.txt` with your Node.js version, OmniRoute version, OS details, installed CLI tools (qoder, gemini, claude, codex, antigravity, droid, etc.), Docker/PM2 status, and system packages — everything we need to reproduce your issue quickly. Attach the file directly to your GitHub issue. --- @@ -229,7 +254,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, │ ↓ budget limit ├─→ [Tier 3: CHEAP] GLM ($0.6/1M), MiniMax ($0.2/1M) │ ↓ budget limit - └─→ [Tier 4: FREE] iFlow, Qwen, Kiro (unlimited) + └─→ [Tier 4: FREE] Qoder, Qwen, Kiro (unlimited) Result: Never stop coding, minimal cost ``` @@ -296,7 +321,7 @@ Not everyone can pay $20–200/month for AI subscriptions. Students, devs from e **How OmniRoute solves it:** -- **Free Tier Providers Built-in** — Native support for 100% free providers: iFlow (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) +- **Free Tier Providers Built-in** — Native support for 100% free providers: Qoder (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) - **Ollama Cloud** — Cloud-hosted Ollama models at `api.ollama.com` with free "Light usage" tier; use `ollamacloud/` prefix - **Free-Only Combos** — Chain `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime - **NVIDIA NIM Free Access** — ~40 RPM dev-forever free access to 70+ models at build.nvidia.com (transitioning from credits to pure rate limits) @@ -360,7 +385,7 @@ Claude Code, Codex, Gemini CLI, Copilot — all use OAuth 2.0 with expiring toke **How OmniRoute solves it:** - **Auto Token Refresh** — OAuth tokens refresh in background before expiration -- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, iFlow +- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder - **Multi-Account OAuth** — Multiple accounts per provider via JWT/ID token extraction - **OAuth LAN/Remote Fix** — Private IP detection for `redirect_uri` + manual URL mode for remote servers - **OAuth Behind Nginx** — Uses `window.location.origin` for reverse proxy compatibility @@ -413,7 +438,7 @@ Installing, configuring, and maintaining an AI proxy across different environmen - **Electron Desktop App** — Native app for Windows/macOS/Linux with system tray, auto-start, offline mode - **Split-Port Mode** — API and Dashboard on separate ports for advanced scenarios (reverse proxy, container networking) - **Cloud Sync** — Config synchronization across devices via Cloudflare Workers -- **DB Backups** — Automatic backup, restore, export and import of all settings +- **DB Backups** — Automatic backup, restore, export and import of all settings, with `DISABLE_SQLITE_AUTO_BACKUP` for externally managed backups
@@ -737,7 +762,7 @@ Outcome: deep fallback depth for deadline-critical workloads | Step | Action | Providers Unlocked | | ---- | -------------------------------------------------- | ------------------------------------------------------------------ | | 1 | Connect **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — **unlimited** | -| 2 | Connect **iFlow** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | +| 2 | Connect **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | | 3 | Connect **Qwen** (Device Code) | qwen3-coder-plus, qwen3-coder-flash... — **unlimited** | | 4 | Connect **Gemini CLI** (Google OAuth) | gemini-3-flash, gemini-2.5-pro — **180K/mo free** | | 5 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | @@ -838,6 +863,113 @@ npm install PORT=20128 DASHBOARD_PORT=20129 NEXT_PUBLIC_BASE_URL=http://localhost:20129 npm run dev ``` +
+Void Linux (`xbps-src` template) + +For Void Linux users, you can build a native package using `xbps-src`. Save this block as `srcpkgs/omniroute/template`: + +```bash +# Template file for 'omniroute' +pkgname=omniroute +version=3.4.1 +revision=1 +hostmakedepends="nodejs python3 make" +depends="openssl" +short_desc="Universal AI gateway with smart routing for multiple LLM providers" +maintainer="zenobit " +license="MIT" +homepage="https://github.com/diegosouzapw/OmniRoute" +distfiles="https://github.com/diegosouzapw/OmniRoute/archive/refs/tags/v${version}.tar.gz" +checksum=009400afee90a9f32599d8fe734145cfd84098140b7287990183dde45ae2245b +system_accounts="_omniroute" +omniroute_homedir="/var/lib/omniroute" +export NODE_ENV=production +export npm_config_engine_strict=false +export npm_config_loglevel=error +export npm_config_fund=false +export npm_config_audit=false + +do_build() { + # Determine target CPU arch for node-gyp + local _gyp_arch + case "$XBPS_TARGET_MACHINE" in + aarch64*) _gyp_arch=arm64 ;; + armv7*|armv6*) _gyp_arch=arm ;; + i686*) _gyp_arch=ia32 ;; + *) _gyp_arch=x64 ;; + esac + + # 1) Install all deps – skip scripts (no network in do_build, native modules + # compiled separately below; better-sqlite3 is serverExternalPackage so + # Next.js does not execute it during next build) + NODE_ENV=development npm ci --ignore-scripts + + # 2) Build the Next.js standalone bundle + npm run build + + # 3) Copy static assets into standalone + cp -r .next/static .next/standalone/.next/static + [ -d public ] && cp -r public .next/standalone/public || true + + # 4) Compile better-sqlite3 native binding for the target architecture. + # Use node-gyp directly so CC/CXX from xbps-src cross-toolchain are used + # without npm altering them. + local _node_gyp=/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js + (cd node_modules/better-sqlite3 && node "$_node_gyp" rebuild --arch="$_gyp_arch") + + # 5) Place the compiled binding into the standalone bundle + local _bs3_release=.next/standalone/node_modules/better-sqlite3/build/Release + mkdir -p "$_bs3_release" + cp node_modules/better-sqlite3/build/Release/better_sqlite3.node "$_bs3_release/" + + # 6) Remove arch-specific sharp bundles – upstream sets images.unoptimized=true + # so sharp is not used at runtime; x64 .so files would break aarch64 strip + rm -rf .next/standalone/node_modules/@img + + # 7) Copy pino runtime deps omitted by Next.js static analysis: + # pino-abstract-transport – required by pino's worker thread + # split2 – dep of pino-abstract-transport + # process-warning – dep of pino itself + for _mod in pino-abstract-transport split2 process-warning; do + cp -r "node_modules/$_mod" .next/standalone/node_modules/ + done +} + +do_check() { + npm run test:unit +} + +do_install() { + vmkdir usr/lib/omniroute/.next + + vcopy .next/standalone/. usr/lib/omniroute/.next/standalone + + # Prevent removal of empty Next.js app router dirs by the post-install hook + for _d in \ + .next/standalone/.next/server/app/dashboard \ + .next/standalone/.next/server/app/dashboard/settings \ + .next/standalone/.next/server/app/dashboard/providers; do + touch "${DESTDIR}/usr/lib/omniroute/${_d}/.keep" + done + + cat > "${WRKDIR}/omniroute" <<'EOF' +#!/bin/sh +export PORT="${PORT:-20128}" +export DATA_DIR="${DATA_DIR:-${XDG_DATA_HOME:-${HOME}/.local/share}/omniroute}" +export LOG_TO_FILE="${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 +} +``` + +
+ --- ## 🐳 Docker @@ -886,6 +1018,7 @@ Notes: - Quick Tunnel URLs are temporary and change after every restart. - Managed install currently supports Linux, macOS, and Windows on `x64` / `arm64`. +- Docker images bundle system CA roots and pass them to managed `cloudflared`, which avoids TLS trust failures when the tunnel bootstraps inside the container. - Set `CLOUDFLARED_BIN=/absolute/path/to/cloudflared` if you want OmniRoute to use an existing binary instead of downloading one. **Using Docker Compose with Caddy (HTTPS Auto-TLS):** @@ -983,7 +1116,7 @@ When minimized, OmniRoute lives in your system tray with quick actions: | | MiniMax M2.1 | $0.2/1M | 5-hour rolling | Cheapest option | | | Kimi K2.5 (Moonshot API) 🆕 | Pay-per-use | None | Direct Moonshot API access | | | Kimi K2 | $9/mo flat | 10M tokens/mo | Predictable cost | -| **🆓 FREE** | iFlow | **$0** | Unlimited | 5 models unlimited | +| **🆓 FREE** | Qoder | **$0** | Unlimited | 5 models unlimited | | | Qwen | **$0** | Unlimited | 4 models unlimited | | | Kiro | **$0** | Unlimited | Claude Sonnet/Haiku (AWS Builder) | | | LongCat Flash-Lite 🆕 | **$0** (50M tok/day 🔥) | 1 RPS | Largest free quota on Earth | @@ -998,7 +1131,7 @@ When minimized, OmniRoute lives in your system tray with quick actions: ``` # 🆓 Ultimate Free Stack 2026 — 11 Providers, $0 Forever Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -iFlow (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED +Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed Qwen (qw/) → qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next UNLIMITED @@ -1028,7 +1161,7 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day | `claude-haiku-4.5` | `kr/` | **Unlimited** | No reported daily cap | | `claude-opus-4.6` | `kr/` | **Unlimited** | Latest Opus via Kiro | -### 🟢 IFLOW MODELS (Free OAuth — No Credit Card) +### 🟢 QODER MODELS (Free OAuth — No Credit Card) | Model | Prefix | Limit | Rate Limit | | ------------------ | ------ | ------------- | --------------- | @@ -1127,7 +1260,7 @@ Available free: `qwen3-235b-a22b-instruct-2507` (Qwen3 235B!), `llama-3.1-70b-in > > ``` > Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -> iFlow (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED +> Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED > LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 > Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed > Qwen (qw/) → qwen3-coder models UNLIMITED @@ -1279,21 +1412,22 @@ OmniRoute v2.0 is built as an operational platform, not just a relay proxy. ### ☁️ Deployment & Platform -| Feature | What It Does | -| ----------------------------- | --------------------------------------------------------- | -| 🌐 **Deploy Anywhere** | Localhost, VPS, Docker, Cloud environments | -| 🚇 **Cloudflare Tunnel** 🆕 | One-click Quick Tunnel integration from the dashboard | -| 💾 **Cloud Sync** | Configuration sync via cloud worker | -| 🔄 **Backup/Restore** | Export/import and disaster recovery flows | -| 🧙 **Onboarding Wizard** | First-run guided setup | -| 🔧 **CLI Tools Dashboard** | One-click setup for popular coding tools | -| 🎮 **Model Playground** | Test any provider/model/endpoint from the dashboard | -| 🔏 **CLI Fingerprint Toggle** | Per-provider fingerprint matching in Settings > Security | -| 🌐 **i18n (30 languages)** | Full dashboard + docs language support with RTL coverage | -| 🧹 **Clear All Models** | One-click model list clearing in provider details | -| 👁️ **Sidebar Controls** 🆕 | Hide components and integrations from Appearance Settings | -| 📋 **Issue Templates** | Standardized GitHub templates for bugs and features | -| 📂 **Custom Data Directory** | `DATA_DIR` override for storage location | +| Feature | What It Does | +| ------------------------------ | --------------------------------------------------------------------- | +| 🌐 **Deploy Anywhere** | Localhost, VPS, Docker, Cloud environments | +| 🚇 **Cloudflare Tunnel** 🆕 | One-click Quick Tunnel integration from the dashboard | +| 🔑 **API Key Model Filtering** | Native /v1/models response filtered via assigned Bearer context roles | +| ⚡ **Smart Cache Bypass** | Configurable TTL heuristics and forced refetch controls | +| 🔄 **Backup/Restore** | Export/import and disaster recovery flows | +| 🧙 **Onboarding Wizard** | First-run guided setup | +| 🔧 **CLI Tools Dashboard** | One-click setup for popular coding tools | +| 🎮 **Model Playground** | Test any provider/model/endpoint from the dashboard | +| 🔏 **CLI Fingerprint Toggle** | Per-provider fingerprint matching in Settings > Security | +| 🌐 **i18n (30 languages)** | Full dashboard + docs language support with RTL coverage | +| 🧹 **Clear All Models** | One-click model list clearing in provider details | +| 👁️ **Sidebar Controls** 🆕 | Hide components and integrations from Appearance Settings | +| 📋 **Issue Templates** | Standardized GitHub templates for bugs and features | +| 📂 **Custom Data Directory** | `DATA_DIR` override for storage location | ### Feature Deep Dive @@ -1545,6 +1679,8 @@ Models: **Models:** Access 100+ models from all major providers through a single API key. +**Dashboard behavior:** OpenRouter models are managed from **Available Models**. Manual add, import, and auto-sync all update the same list. +
@@ -1587,11 +1723,11 @@ Models:
🆓 FREE Providers (Emergency Backup) -### iFlow (5 FREE models via OAuth) +### Qoder (5 FREE models via OAuth) ```bash -Dashboard → Connect iFlow -→ iFlow OAuth login +Dashboard → Connect Qoder +→ Qoder OAuth login → Unlimited usage Models: @@ -1789,7 +1925,7 @@ opencode - Check usage stats in Dashboard → Costs - Switch primary model to GLM/MiniMax -- Use free tier (Gemini CLI, iFlow) for non-critical tasks +- Use free tier (Gemini CLI, Qoder) for non-critical tasks **Dashboard/API ports are wrong** @@ -1811,7 +1947,9 @@ opencode **No request logs** -- Set `ENABLE_REQUEST_LOGS=true` in `.env` +- Request artifacts are written to `DATA_DIR/call_logs/` as one JSON file per request +- Enable pipeline capture from Dashboard → Logs → Request Logs if you need detailed per-stage payloads +- Set `APP_LOG_TO_FILE=true` if you also want application console logs in `logs/application/app.log` **Connection test shows "Invalid" for OpenAI-compatible providers** diff --git a/docs/i18n/pt-BR/README.md b/docs/i18n/pt-BR/README.md index 8e21f474f9..af205d9469 100644 --- a/docs/i18n/pt-BR/README.md +++ b/docs/i18n/pt-BR/README.md @@ -4,6 +4,7 @@ --- + ### Never stop coding. Smart routing to **FREE & low-cost AI models** with automatic fallback. _Your universal API proxy — one endpoint, 67+ providers, zero downtime. Now with **MCP & A2A** agent orchestration._ @@ -30,6 +31,30 @@ _Your universal API proxy — one endpoint, 67+ providers, zero downtime. Now wi --- +## Breaking Change: Unified Logging Upgrade + +> [!WARNING] +> **This release changes both the on-disk request log layout and the logging environment variables.** +> +> If you are upgrading an existing instance: +> +> - Request logs now live in `DATA_DIR/call_logs/YYYY-MM-DD/` as **one JSON artifact per request**. +> - The old `DATA_DIR/logs/` session folders and `DATA_DIR/log.txt` summary file are removed. +> - On the first startup after upgrading, OmniRoute creates a safety backup at `DATA_DIR/log_archives/*.zip` before removing the deprecated request log layout. +> - Legacy logging env vars such as `LOG_TO_FILE`, `LOG_FILE_PATH`, `LOG_MAX_FILE_SIZE`, `LOG_RETENTION_DAYS`, `LOG_LEVEL`, `LOG_FORMAT`, `ENABLE_REQUEST_LOGS`, `CALL_LOGS_MAX`, `CALL_LOG_PAYLOAD_MODE`, and `PROXY_LOG_MAX_ENTRIES` are no longer supported. +> - Use the new env model instead: +> - `APP_LOG_TO_FILE` +> - `APP_LOG_FILE_PATH` +> - `APP_LOG_MAX_FILE_SIZE` +> - `APP_LOG_RETENTION_DAYS` +> - `APP_LOG_LEVEL` +> - `APP_LOG_FORMAT` +> - `CALL_LOG_RETENTION_DAYS` +> +> For release details and upgrade notes, see the [CHANGELOG](CHANGELOG.md). + +--- + ## 🆕 What's New in v3.0.0 > **Upgrading from v2.9.5?** — See the [full CHANGELOG](CHANGELOG.md#300--2026-03-22-release-candidate--not-yet-merged-to-main) for all changes. @@ -203,7 +228,7 @@ When opening an issue, please run the system-info command and attach the generat npm run system-info ``` -This generates a `system-info.txt` with your Node.js version, OmniRoute version, OS details, installed CLI tools (iflow, gemini, claude, codex, antigravity, droid, etc.), Docker/PM2 status, and system packages — everything we need to reproduce your issue quickly. Attach the file directly to your GitHub issue. +This generates a `system-info.txt` with your Node.js version, OmniRoute version, OS details, installed CLI tools (qoder, gemini, claude, codex, antigravity, droid, etc.), Docker/PM2 status, and system packages — everything we need to reproduce your issue quickly. Attach the file directly to your GitHub issue. --- @@ -229,7 +254,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, │ ↓ budget limit ├─→ [Tier 3: CHEAP] GLM ($0.6/1M), MiniMax ($0.2/1M) │ ↓ budget limit - └─→ [Tier 4: FREE] iFlow, Qwen, Kiro (unlimited) + └─→ [Tier 4: FREE] Qoder, Qwen, Kiro (unlimited) Result: Never stop coding, minimal cost ``` @@ -296,7 +321,7 @@ Not everyone can pay $20–200/month for AI subscriptions. Students, devs from e **How OmniRoute solves it:** -- **Free Tier Providers Built-in** — Native support for 100% free providers: iFlow (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) +- **Free Tier Providers Built-in** — Native support for 100% free providers: Qoder (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) - **Ollama Cloud** — Cloud-hosted Ollama models at `api.ollama.com` with free "Light usage" tier; use `ollamacloud/` prefix - **Free-Only Combos** — Chain `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime - **NVIDIA NIM Free Access** — ~40 RPM dev-forever free access to 70+ models at build.nvidia.com (transitioning from credits to pure rate limits) @@ -360,7 +385,7 @@ Claude Code, Codex, Gemini CLI, Copilot — all use OAuth 2.0 with expiring toke **How OmniRoute solves it:** - **Auto Token Refresh** — OAuth tokens refresh in background before expiration -- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, iFlow +- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder - **Multi-Account OAuth** — Multiple accounts per provider via JWT/ID token extraction - **OAuth LAN/Remote Fix** — Private IP detection for `redirect_uri` + manual URL mode for remote servers - **OAuth Behind Nginx** — Uses `window.location.origin` for reverse proxy compatibility @@ -413,7 +438,7 @@ Installing, configuring, and maintaining an AI proxy across different environmen - **Electron Desktop App** — Native app for Windows/macOS/Linux with system tray, auto-start, offline mode - **Split-Port Mode** — API and Dashboard on separate ports for advanced scenarios (reverse proxy, container networking) - **Cloud Sync** — Config synchronization across devices via Cloudflare Workers -- **DB Backups** — Automatic backup, restore, export and import of all settings +- **DB Backups** — Automatic backup, restore, export and import of all settings, with `DISABLE_SQLITE_AUTO_BACKUP` for externally managed backups
@@ -737,7 +762,7 @@ Outcome: deep fallback depth for deadline-critical workloads | Step | Action | Providers Unlocked | | ---- | -------------------------------------------------- | ------------------------------------------------------------------ | | 1 | Connect **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — **unlimited** | -| 2 | Connect **iFlow** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | +| 2 | Connect **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | | 3 | Connect **Qwen** (Device Code) | qwen3-coder-plus, qwen3-coder-flash... — **unlimited** | | 4 | Connect **Gemini CLI** (Google OAuth) | gemini-3-flash, gemini-2.5-pro — **180K/mo free** | | 5 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | @@ -838,6 +863,113 @@ npm install PORT=20128 DASHBOARD_PORT=20129 NEXT_PUBLIC_BASE_URL=http://localhost:20129 npm run dev ``` +
+Void Linux (`xbps-src` template) + +For Void Linux users, you can build a native package using `xbps-src`. Save this block as `srcpkgs/omniroute/template`: + +```bash +# Template file for 'omniroute' +pkgname=omniroute +version=3.4.1 +revision=1 +hostmakedepends="nodejs python3 make" +depends="openssl" +short_desc="Universal AI gateway with smart routing for multiple LLM providers" +maintainer="zenobit " +license="MIT" +homepage="https://github.com/diegosouzapw/OmniRoute" +distfiles="https://github.com/diegosouzapw/OmniRoute/archive/refs/tags/v${version}.tar.gz" +checksum=009400afee90a9f32599d8fe734145cfd84098140b7287990183dde45ae2245b +system_accounts="_omniroute" +omniroute_homedir="/var/lib/omniroute" +export NODE_ENV=production +export npm_config_engine_strict=false +export npm_config_loglevel=error +export npm_config_fund=false +export npm_config_audit=false + +do_build() { + # Determine target CPU arch for node-gyp + local _gyp_arch + case "$XBPS_TARGET_MACHINE" in + aarch64*) _gyp_arch=arm64 ;; + armv7*|armv6*) _gyp_arch=arm ;; + i686*) _gyp_arch=ia32 ;; + *) _gyp_arch=x64 ;; + esac + + # 1) Install all deps – skip scripts (no network in do_build, native modules + # compiled separately below; better-sqlite3 is serverExternalPackage so + # Next.js does not execute it during next build) + NODE_ENV=development npm ci --ignore-scripts + + # 2) Build the Next.js standalone bundle + npm run build + + # 3) Copy static assets into standalone + cp -r .next/static .next/standalone/.next/static + [ -d public ] && cp -r public .next/standalone/public || true + + # 4) Compile better-sqlite3 native binding for the target architecture. + # Use node-gyp directly so CC/CXX from xbps-src cross-toolchain are used + # without npm altering them. + local _node_gyp=/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js + (cd node_modules/better-sqlite3 && node "$_node_gyp" rebuild --arch="$_gyp_arch") + + # 5) Place the compiled binding into the standalone bundle + local _bs3_release=.next/standalone/node_modules/better-sqlite3/build/Release + mkdir -p "$_bs3_release" + cp node_modules/better-sqlite3/build/Release/better_sqlite3.node "$_bs3_release/" + + # 6) Remove arch-specific sharp bundles – upstream sets images.unoptimized=true + # so sharp is not used at runtime; x64 .so files would break aarch64 strip + rm -rf .next/standalone/node_modules/@img + + # 7) Copy pino runtime deps omitted by Next.js static analysis: + # pino-abstract-transport – required by pino's worker thread + # split2 – dep of pino-abstract-transport + # process-warning – dep of pino itself + for _mod in pino-abstract-transport split2 process-warning; do + cp -r "node_modules/$_mod" .next/standalone/node_modules/ + done +} + +do_check() { + npm run test:unit +} + +do_install() { + vmkdir usr/lib/omniroute/.next + + vcopy .next/standalone/. usr/lib/omniroute/.next/standalone + + # Prevent removal of empty Next.js app router dirs by the post-install hook + for _d in \ + .next/standalone/.next/server/app/dashboard \ + .next/standalone/.next/server/app/dashboard/settings \ + .next/standalone/.next/server/app/dashboard/providers; do + touch "${DESTDIR}/usr/lib/omniroute/${_d}/.keep" + done + + cat > "${WRKDIR}/omniroute" <<'EOF' +#!/bin/sh +export PORT="${PORT:-20128}" +export DATA_DIR="${DATA_DIR:-${XDG_DATA_HOME:-${HOME}/.local/share}/omniroute}" +export LOG_TO_FILE="${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 +} +``` + +
+ --- ## 🐳 Docker @@ -886,6 +1018,7 @@ Notes: - Quick Tunnel URLs are temporary and change after every restart. - Managed install currently supports Linux, macOS, and Windows on `x64` / `arm64`. +- Docker images bundle system CA roots and pass them to managed `cloudflared`, which avoids TLS trust failures when the tunnel bootstraps inside the container. - Set `CLOUDFLARED_BIN=/absolute/path/to/cloudflared` if you want OmniRoute to use an existing binary instead of downloading one. **Using Docker Compose with Caddy (HTTPS Auto-TLS):** @@ -983,7 +1116,7 @@ When minimized, OmniRoute lives in your system tray with quick actions: | | MiniMax M2.1 | $0.2/1M | 5-hour rolling | Cheapest option | | | Kimi K2.5 (Moonshot API) 🆕 | Pay-per-use | None | Direct Moonshot API access | | | Kimi K2 | $9/mo flat | 10M tokens/mo | Predictable cost | -| **🆓 FREE** | iFlow | **$0** | Unlimited | 5 models unlimited | +| **🆓 FREE** | Qoder | **$0** | Unlimited | 5 models unlimited | | | Qwen | **$0** | Unlimited | 4 models unlimited | | | Kiro | **$0** | Unlimited | Claude Sonnet/Haiku (AWS Builder) | | | LongCat Flash-Lite 🆕 | **$0** (50M tok/day 🔥) | 1 RPS | Largest free quota on Earth | @@ -998,7 +1131,7 @@ When minimized, OmniRoute lives in your system tray with quick actions: ``` # 🆓 Ultimate Free Stack 2026 — 11 Providers, $0 Forever Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -iFlow (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED +Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed Qwen (qw/) → qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next UNLIMITED @@ -1028,7 +1161,7 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day | `claude-haiku-4.5` | `kr/` | **Unlimited** | No reported daily cap | | `claude-opus-4.6` | `kr/` | **Unlimited** | Latest Opus via Kiro | -### 🟢 IFLOW MODELS (Free OAuth — No Credit Card) +### 🟢 QODER MODELS (Free OAuth — No Credit Card) | Model | Prefix | Limit | Rate Limit | | ------------------ | ------ | ------------- | --------------- | @@ -1127,7 +1260,7 @@ Available free: `qwen3-235b-a22b-instruct-2507` (Qwen3 235B!), `llama-3.1-70b-in > > ``` > Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -> iFlow (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED +> Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED > LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 > Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed > Qwen (qw/) → qwen3-coder models UNLIMITED @@ -1279,21 +1412,22 @@ OmniRoute v2.0 is built as an operational platform, not just a relay proxy. ### ☁️ Deployment & Platform -| Feature | What It Does | -| ----------------------------- | --------------------------------------------------------- | -| 🌐 **Deploy Anywhere** | Localhost, VPS, Docker, Cloud environments | -| 🚇 **Cloudflare Tunnel** 🆕 | One-click Quick Tunnel integration from the dashboard | -| 💾 **Cloud Sync** | Configuration sync via cloud worker | -| 🔄 **Backup/Restore** | Export/import and disaster recovery flows | -| 🧙 **Onboarding Wizard** | First-run guided setup | -| 🔧 **CLI Tools Dashboard** | One-click setup for popular coding tools | -| 🎮 **Model Playground** | Test any provider/model/endpoint from the dashboard | -| 🔏 **CLI Fingerprint Toggle** | Per-provider fingerprint matching in Settings > Security | -| 🌐 **i18n (30 languages)** | Full dashboard + docs language support with RTL coverage | -| 🧹 **Clear All Models** | One-click model list clearing in provider details | -| 👁️ **Sidebar Controls** 🆕 | Hide components and integrations from Appearance Settings | -| 📋 **Issue Templates** | Standardized GitHub templates for bugs and features | -| 📂 **Custom Data Directory** | `DATA_DIR` override for storage location | +| Feature | What It Does | +| ------------------------------ | --------------------------------------------------------------------- | +| 🌐 **Deploy Anywhere** | Localhost, VPS, Docker, Cloud environments | +| 🚇 **Cloudflare Tunnel** 🆕 | One-click Quick Tunnel integration from the dashboard | +| 🔑 **API Key Model Filtering** | Native /v1/models response filtered via assigned Bearer context roles | +| ⚡ **Smart Cache Bypass** | Configurable TTL heuristics and forced refetch controls | +| 🔄 **Backup/Restore** | Export/import and disaster recovery flows | +| 🧙 **Onboarding Wizard** | First-run guided setup | +| 🔧 **CLI Tools Dashboard** | One-click setup for popular coding tools | +| 🎮 **Model Playground** | Test any provider/model/endpoint from the dashboard | +| 🔏 **CLI Fingerprint Toggle** | Per-provider fingerprint matching in Settings > Security | +| 🌐 **i18n (30 languages)** | Full dashboard + docs language support with RTL coverage | +| 🧹 **Clear All Models** | One-click model list clearing in provider details | +| 👁️ **Sidebar Controls** 🆕 | Hide components and integrations from Appearance Settings | +| 📋 **Issue Templates** | Standardized GitHub templates for bugs and features | +| 📂 **Custom Data Directory** | `DATA_DIR` override for storage location | ### Feature Deep Dive @@ -1545,6 +1679,8 @@ Models: **Models:** Access 100+ models from all major providers through a single API key. +**Dashboard behavior:** OpenRouter models are managed from **Available Models**. Manual add, import, and auto-sync all update the same list. +
@@ -1587,11 +1723,11 @@ Models:
🆓 FREE Providers (Emergency Backup) -### iFlow (5 FREE models via OAuth) +### Qoder (5 FREE models via OAuth) ```bash -Dashboard → Connect iFlow -→ iFlow OAuth login +Dashboard → Connect Qoder +→ Qoder OAuth login → Unlimited usage Models: @@ -1789,7 +1925,7 @@ opencode - Check usage stats in Dashboard → Costs - Switch primary model to GLM/MiniMax -- Use free tier (Gemini CLI, iFlow) for non-critical tasks +- Use free tier (Gemini CLI, Qoder) for non-critical tasks **Dashboard/API ports are wrong** @@ -1811,7 +1947,9 @@ opencode **No request logs** -- Set `ENABLE_REQUEST_LOGS=true` in `.env` +- Request artifacts are written to `DATA_DIR/call_logs/` as one JSON file per request +- Enable pipeline capture from Dashboard → Logs → Request Logs if you need detailed per-stage payloads +- Set `APP_LOG_TO_FILE=true` if you also want application console logs in `logs/application/app.log` **Connection test shows "Invalid" for OpenAI-compatible providers** diff --git a/docs/i18n/pt/README.md b/docs/i18n/pt/README.md index f3e391323c..615e9491ea 100644 --- a/docs/i18n/pt/README.md +++ b/docs/i18n/pt/README.md @@ -4,6 +4,7 @@ --- + ### Never stop coding. Smart routing to **FREE & low-cost AI models** with automatic fallback. _Your universal API proxy — one endpoint, 67+ providers, zero downtime. Now with **MCP & A2A** agent orchestration._ @@ -30,6 +31,30 @@ _Your universal API proxy — one endpoint, 67+ providers, zero downtime. Now wi --- +## Breaking Change: Unified Logging Upgrade + +> [!WARNING] +> **This release changes both the on-disk request log layout and the logging environment variables.** +> +> If you are upgrading an existing instance: +> +> - Request logs now live in `DATA_DIR/call_logs/YYYY-MM-DD/` as **one JSON artifact per request**. +> - The old `DATA_DIR/logs/` session folders and `DATA_DIR/log.txt` summary file are removed. +> - On the first startup after upgrading, OmniRoute creates a safety backup at `DATA_DIR/log_archives/*.zip` before removing the deprecated request log layout. +> - Legacy logging env vars such as `LOG_TO_FILE`, `LOG_FILE_PATH`, `LOG_MAX_FILE_SIZE`, `LOG_RETENTION_DAYS`, `LOG_LEVEL`, `LOG_FORMAT`, `ENABLE_REQUEST_LOGS`, `CALL_LOGS_MAX`, `CALL_LOG_PAYLOAD_MODE`, and `PROXY_LOG_MAX_ENTRIES` are no longer supported. +> - Use the new env model instead: +> - `APP_LOG_TO_FILE` +> - `APP_LOG_FILE_PATH` +> - `APP_LOG_MAX_FILE_SIZE` +> - `APP_LOG_RETENTION_DAYS` +> - `APP_LOG_LEVEL` +> - `APP_LOG_FORMAT` +> - `CALL_LOG_RETENTION_DAYS` +> +> For release details and upgrade notes, see the [CHANGELOG](CHANGELOG.md). + +--- + ## 🆕 What's New in v3.0.0 > **Upgrading from v2.9.5?** — See the [full CHANGELOG](CHANGELOG.md#300--2026-03-22-release-candidate--not-yet-merged-to-main) for all changes. @@ -203,7 +228,7 @@ When opening an issue, please run the system-info command and attach the generat npm run system-info ``` -This generates a `system-info.txt` with your Node.js version, OmniRoute version, OS details, installed CLI tools (iflow, gemini, claude, codex, antigravity, droid, etc.), Docker/PM2 status, and system packages — everything we need to reproduce your issue quickly. Attach the file directly to your GitHub issue. +This generates a `system-info.txt` with your Node.js version, OmniRoute version, OS details, installed CLI tools (qoder, gemini, claude, codex, antigravity, droid, etc.), Docker/PM2 status, and system packages — everything we need to reproduce your issue quickly. Attach the file directly to your GitHub issue. --- @@ -229,7 +254,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, │ ↓ budget limit ├─→ [Tier 3: CHEAP] GLM ($0.6/1M), MiniMax ($0.2/1M) │ ↓ budget limit - └─→ [Tier 4: FREE] iFlow, Qwen, Kiro (unlimited) + └─→ [Tier 4: FREE] Qoder, Qwen, Kiro (unlimited) Result: Never stop coding, minimal cost ``` @@ -296,7 +321,7 @@ Not everyone can pay $20–200/month for AI subscriptions. Students, devs from e **How OmniRoute solves it:** -- **Free Tier Providers Built-in** — Native support for 100% free providers: iFlow (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) +- **Free Tier Providers Built-in** — Native support for 100% free providers: Qoder (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) - **Ollama Cloud** — Cloud-hosted Ollama models at `api.ollama.com` with free "Light usage" tier; use `ollamacloud/` prefix - **Free-Only Combos** — Chain `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime - **NVIDIA NIM Free Access** — ~40 RPM dev-forever free access to 70+ models at build.nvidia.com (transitioning from credits to pure rate limits) @@ -360,7 +385,7 @@ Claude Code, Codex, Gemini CLI, Copilot — all use OAuth 2.0 with expiring toke **How OmniRoute solves it:** - **Auto Token Refresh** — OAuth tokens refresh in background before expiration -- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, iFlow +- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder - **Multi-Account OAuth** — Multiple accounts per provider via JWT/ID token extraction - **OAuth LAN/Remote Fix** — Private IP detection for `redirect_uri` + manual URL mode for remote servers - **OAuth Behind Nginx** — Uses `window.location.origin` for reverse proxy compatibility @@ -413,7 +438,7 @@ Installing, configuring, and maintaining an AI proxy across different environmen - **Electron Desktop App** — Native app for Windows/macOS/Linux with system tray, auto-start, offline mode - **Split-Port Mode** — API and Dashboard on separate ports for advanced scenarios (reverse proxy, container networking) - **Cloud Sync** — Config synchronization across devices via Cloudflare Workers -- **DB Backups** — Automatic backup, restore, export and import of all settings +- **DB Backups** — Automatic backup, restore, export and import of all settings, with `DISABLE_SQLITE_AUTO_BACKUP` for externally managed backups
@@ -737,7 +762,7 @@ Outcome: deep fallback depth for deadline-critical workloads | Step | Action | Providers Unlocked | | ---- | -------------------------------------------------- | ------------------------------------------------------------------ | | 1 | Connect **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — **unlimited** | -| 2 | Connect **iFlow** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | +| 2 | Connect **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | | 3 | Connect **Qwen** (Device Code) | qwen3-coder-plus, qwen3-coder-flash... — **unlimited** | | 4 | Connect **Gemini CLI** (Google OAuth) | gemini-3-flash, gemini-2.5-pro — **180K/mo free** | | 5 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | @@ -838,6 +863,113 @@ npm install PORT=20128 DASHBOARD_PORT=20129 NEXT_PUBLIC_BASE_URL=http://localhost:20129 npm run dev ``` +
+Void Linux (`xbps-src` template) + +For Void Linux users, you can build a native package using `xbps-src`. Save this block as `srcpkgs/omniroute/template`: + +```bash +# Template file for 'omniroute' +pkgname=omniroute +version=3.4.1 +revision=1 +hostmakedepends="nodejs python3 make" +depends="openssl" +short_desc="Universal AI gateway with smart routing for multiple LLM providers" +maintainer="zenobit " +license="MIT" +homepage="https://github.com/diegosouzapw/OmniRoute" +distfiles="https://github.com/diegosouzapw/OmniRoute/archive/refs/tags/v${version}.tar.gz" +checksum=009400afee90a9f32599d8fe734145cfd84098140b7287990183dde45ae2245b +system_accounts="_omniroute" +omniroute_homedir="/var/lib/omniroute" +export NODE_ENV=production +export npm_config_engine_strict=false +export npm_config_loglevel=error +export npm_config_fund=false +export npm_config_audit=false + +do_build() { + # Determine target CPU arch for node-gyp + local _gyp_arch + case "$XBPS_TARGET_MACHINE" in + aarch64*) _gyp_arch=arm64 ;; + armv7*|armv6*) _gyp_arch=arm ;; + i686*) _gyp_arch=ia32 ;; + *) _gyp_arch=x64 ;; + esac + + # 1) Install all deps – skip scripts (no network in do_build, native modules + # compiled separately below; better-sqlite3 is serverExternalPackage so + # Next.js does not execute it during next build) + NODE_ENV=development npm ci --ignore-scripts + + # 2) Build the Next.js standalone bundle + npm run build + + # 3) Copy static assets into standalone + cp -r .next/static .next/standalone/.next/static + [ -d public ] && cp -r public .next/standalone/public || true + + # 4) Compile better-sqlite3 native binding for the target architecture. + # Use node-gyp directly so CC/CXX from xbps-src cross-toolchain are used + # without npm altering them. + local _node_gyp=/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js + (cd node_modules/better-sqlite3 && node "$_node_gyp" rebuild --arch="$_gyp_arch") + + # 5) Place the compiled binding into the standalone bundle + local _bs3_release=.next/standalone/node_modules/better-sqlite3/build/Release + mkdir -p "$_bs3_release" + cp node_modules/better-sqlite3/build/Release/better_sqlite3.node "$_bs3_release/" + + # 6) Remove arch-specific sharp bundles – upstream sets images.unoptimized=true + # so sharp is not used at runtime; x64 .so files would break aarch64 strip + rm -rf .next/standalone/node_modules/@img + + # 7) Copy pino runtime deps omitted by Next.js static analysis: + # pino-abstract-transport – required by pino's worker thread + # split2 – dep of pino-abstract-transport + # process-warning – dep of pino itself + for _mod in pino-abstract-transport split2 process-warning; do + cp -r "node_modules/$_mod" .next/standalone/node_modules/ + done +} + +do_check() { + npm run test:unit +} + +do_install() { + vmkdir usr/lib/omniroute/.next + + vcopy .next/standalone/. usr/lib/omniroute/.next/standalone + + # Prevent removal of empty Next.js app router dirs by the post-install hook + for _d in \ + .next/standalone/.next/server/app/dashboard \ + .next/standalone/.next/server/app/dashboard/settings \ + .next/standalone/.next/server/app/dashboard/providers; do + touch "${DESTDIR}/usr/lib/omniroute/${_d}/.keep" + done + + cat > "${WRKDIR}/omniroute" <<'EOF' +#!/bin/sh +export PORT="${PORT:-20128}" +export DATA_DIR="${DATA_DIR:-${XDG_DATA_HOME:-${HOME}/.local/share}/omniroute}" +export LOG_TO_FILE="${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 +} +``` + +
+ --- ## 🐳 Docker @@ -886,6 +1018,7 @@ Notes: - Quick Tunnel URLs are temporary and change after every restart. - Managed install currently supports Linux, macOS, and Windows on `x64` / `arm64`. +- Docker images bundle system CA roots and pass them to managed `cloudflared`, which avoids TLS trust failures when the tunnel bootstraps inside the container. - Set `CLOUDFLARED_BIN=/absolute/path/to/cloudflared` if you want OmniRoute to use an existing binary instead of downloading one. **Using Docker Compose with Caddy (HTTPS Auto-TLS):** @@ -983,7 +1116,7 @@ When minimized, OmniRoute lives in your system tray with quick actions: | | MiniMax M2.1 | $0.2/1M | 5-hour rolling | Cheapest option | | | Kimi K2.5 (Moonshot API) 🆕 | Pay-per-use | None | Direct Moonshot API access | | | Kimi K2 | $9/mo flat | 10M tokens/mo | Predictable cost | -| **🆓 FREE** | iFlow | **$0** | Unlimited | 5 models unlimited | +| **🆓 FREE** | Qoder | **$0** | Unlimited | 5 models unlimited | | | Qwen | **$0** | Unlimited | 4 models unlimited | | | Kiro | **$0** | Unlimited | Claude Sonnet/Haiku (AWS Builder) | | | LongCat Flash-Lite 🆕 | **$0** (50M tok/day 🔥) | 1 RPS | Largest free quota on Earth | @@ -998,7 +1131,7 @@ When minimized, OmniRoute lives in your system tray with quick actions: ``` # 🆓 Ultimate Free Stack 2026 — 11 Providers, $0 Forever Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -iFlow (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED +Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed Qwen (qw/) → qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next UNLIMITED @@ -1028,7 +1161,7 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day | `claude-haiku-4.5` | `kr/` | **Unlimited** | No reported daily cap | | `claude-opus-4.6` | `kr/` | **Unlimited** | Latest Opus via Kiro | -### 🟢 IFLOW MODELS (Free OAuth — No Credit Card) +### 🟢 QODER MODELS (Free OAuth — No Credit Card) | Model | Prefix | Limit | Rate Limit | | ------------------ | ------ | ------------- | --------------- | @@ -1127,7 +1260,7 @@ Available free: `qwen3-235b-a22b-instruct-2507` (Qwen3 235B!), `llama-3.1-70b-in > > ``` > Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -> iFlow (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED +> Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED > LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 > Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed > Qwen (qw/) → qwen3-coder models UNLIMITED @@ -1279,21 +1412,22 @@ OmniRoute v2.0 is built as an operational platform, not just a relay proxy. ### ☁️ Deployment & Platform -| Feature | What It Does | -| ----------------------------- | --------------------------------------------------------- | -| 🌐 **Deploy Anywhere** | Localhost, VPS, Docker, Cloud environments | -| 🚇 **Cloudflare Tunnel** 🆕 | One-click Quick Tunnel integration from the dashboard | -| 💾 **Cloud Sync** | Configuration sync via cloud worker | -| 🔄 **Backup/Restore** | Export/import and disaster recovery flows | -| 🧙 **Onboarding Wizard** | First-run guided setup | -| 🔧 **CLI Tools Dashboard** | One-click setup for popular coding tools | -| 🎮 **Model Playground** | Test any provider/model/endpoint from the dashboard | -| 🔏 **CLI Fingerprint Toggle** | Per-provider fingerprint matching in Settings > Security | -| 🌐 **i18n (30 languages)** | Full dashboard + docs language support with RTL coverage | -| 🧹 **Clear All Models** | One-click model list clearing in provider details | -| 👁️ **Sidebar Controls** 🆕 | Hide components and integrations from Appearance Settings | -| 📋 **Issue Templates** | Standardized GitHub templates for bugs and features | -| 📂 **Custom Data Directory** | `DATA_DIR` override for storage location | +| Feature | What It Does | +| ------------------------------ | --------------------------------------------------------------------- | +| 🌐 **Deploy Anywhere** | Localhost, VPS, Docker, Cloud environments | +| 🚇 **Cloudflare Tunnel** 🆕 | One-click Quick Tunnel integration from the dashboard | +| 🔑 **API Key Model Filtering** | Native /v1/models response filtered via assigned Bearer context roles | +| ⚡ **Smart Cache Bypass** | Configurable TTL heuristics and forced refetch controls | +| 🔄 **Backup/Restore** | Export/import and disaster recovery flows | +| 🧙 **Onboarding Wizard** | First-run guided setup | +| 🔧 **CLI Tools Dashboard** | One-click setup for popular coding tools | +| 🎮 **Model Playground** | Test any provider/model/endpoint from the dashboard | +| 🔏 **CLI Fingerprint Toggle** | Per-provider fingerprint matching in Settings > Security | +| 🌐 **i18n (30 languages)** | Full dashboard + docs language support with RTL coverage | +| 🧹 **Clear All Models** | One-click model list clearing in provider details | +| 👁️ **Sidebar Controls** 🆕 | Hide components and integrations from Appearance Settings | +| 📋 **Issue Templates** | Standardized GitHub templates for bugs and features | +| 📂 **Custom Data Directory** | `DATA_DIR` override for storage location | ### Feature Deep Dive @@ -1545,6 +1679,8 @@ Models: **Models:** Access 100+ models from all major providers through a single API key. +**Dashboard behavior:** OpenRouter models are managed from **Available Models**. Manual add, import, and auto-sync all update the same list. +
@@ -1587,11 +1723,11 @@ Models:
🆓 FREE Providers (Emergency Backup) -### iFlow (5 FREE models via OAuth) +### Qoder (5 FREE models via OAuth) ```bash -Dashboard → Connect iFlow -→ iFlow OAuth login +Dashboard → Connect Qoder +→ Qoder OAuth login → Unlimited usage Models: @@ -1789,7 +1925,7 @@ opencode - Check usage stats in Dashboard → Costs - Switch primary model to GLM/MiniMax -- Use free tier (Gemini CLI, iFlow) for non-critical tasks +- Use free tier (Gemini CLI, Qoder) for non-critical tasks **Dashboard/API ports are wrong** @@ -1811,7 +1947,9 @@ opencode **No request logs** -- Set `ENABLE_REQUEST_LOGS=true` in `.env` +- Request artifacts are written to `DATA_DIR/call_logs/` as one JSON file per request +- Enable pipeline capture from Dashboard → Logs → Request Logs if you need detailed per-stage payloads +- Set `APP_LOG_TO_FILE=true` if you also want application console logs in `logs/application/app.log` **Connection test shows "Invalid" for OpenAI-compatible providers** diff --git a/docs/i18n/ro/README.md b/docs/i18n/ro/README.md index 0ccea73b8b..c621f46f5e 100644 --- a/docs/i18n/ro/README.md +++ b/docs/i18n/ro/README.md @@ -4,6 +4,7 @@ --- + ### Never stop coding. Smart routing to **FREE & low-cost AI models** with automatic fallback. _Your universal API proxy — one endpoint, 67+ providers, zero downtime. Now with **MCP & A2A** agent orchestration._ @@ -30,6 +31,30 @@ _Your universal API proxy — one endpoint, 67+ providers, zero downtime. Now wi --- +## Breaking Change: Unified Logging Upgrade + +> [!WARNING] +> **This release changes both the on-disk request log layout and the logging environment variables.** +> +> If you are upgrading an existing instance: +> +> - Request logs now live in `DATA_DIR/call_logs/YYYY-MM-DD/` as **one JSON artifact per request**. +> - The old `DATA_DIR/logs/` session folders and `DATA_DIR/log.txt` summary file are removed. +> - On the first startup after upgrading, OmniRoute creates a safety backup at `DATA_DIR/log_archives/*.zip` before removing the deprecated request log layout. +> - Legacy logging env vars such as `LOG_TO_FILE`, `LOG_FILE_PATH`, `LOG_MAX_FILE_SIZE`, `LOG_RETENTION_DAYS`, `LOG_LEVEL`, `LOG_FORMAT`, `ENABLE_REQUEST_LOGS`, `CALL_LOGS_MAX`, `CALL_LOG_PAYLOAD_MODE`, and `PROXY_LOG_MAX_ENTRIES` are no longer supported. +> - Use the new env model instead: +> - `APP_LOG_TO_FILE` +> - `APP_LOG_FILE_PATH` +> - `APP_LOG_MAX_FILE_SIZE` +> - `APP_LOG_RETENTION_DAYS` +> - `APP_LOG_LEVEL` +> - `APP_LOG_FORMAT` +> - `CALL_LOG_RETENTION_DAYS` +> +> For release details and upgrade notes, see the [CHANGELOG](CHANGELOG.md). + +--- + ## 🆕 What's New in v3.0.0 > **Upgrading from v2.9.5?** — See the [full CHANGELOG](CHANGELOG.md#300--2026-03-22-release-candidate--not-yet-merged-to-main) for all changes. @@ -203,7 +228,7 @@ When opening an issue, please run the system-info command and attach the generat npm run system-info ``` -This generates a `system-info.txt` with your Node.js version, OmniRoute version, OS details, installed CLI tools (iflow, gemini, claude, codex, antigravity, droid, etc.), Docker/PM2 status, and system packages — everything we need to reproduce your issue quickly. Attach the file directly to your GitHub issue. +This generates a `system-info.txt` with your Node.js version, OmniRoute version, OS details, installed CLI tools (qoder, gemini, claude, codex, antigravity, droid, etc.), Docker/PM2 status, and system packages — everything we need to reproduce your issue quickly. Attach the file directly to your GitHub issue. --- @@ -229,7 +254,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, │ ↓ budget limit ├─→ [Tier 3: CHEAP] GLM ($0.6/1M), MiniMax ($0.2/1M) │ ↓ budget limit - └─→ [Tier 4: FREE] iFlow, Qwen, Kiro (unlimited) + └─→ [Tier 4: FREE] Qoder, Qwen, Kiro (unlimited) Result: Never stop coding, minimal cost ``` @@ -296,7 +321,7 @@ Not everyone can pay $20–200/month for AI subscriptions. Students, devs from e **How OmniRoute solves it:** -- **Free Tier Providers Built-in** — Native support for 100% free providers: iFlow (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) +- **Free Tier Providers Built-in** — Native support for 100% free providers: Qoder (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) - **Ollama Cloud** — Cloud-hosted Ollama models at `api.ollama.com` with free "Light usage" tier; use `ollamacloud/` prefix - **Free-Only Combos** — Chain `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime - **NVIDIA NIM Free Access** — ~40 RPM dev-forever free access to 70+ models at build.nvidia.com (transitioning from credits to pure rate limits) @@ -360,7 +385,7 @@ Claude Code, Codex, Gemini CLI, Copilot — all use OAuth 2.0 with expiring toke **How OmniRoute solves it:** - **Auto Token Refresh** — OAuth tokens refresh in background before expiration -- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, iFlow +- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder - **Multi-Account OAuth** — Multiple accounts per provider via JWT/ID token extraction - **OAuth LAN/Remote Fix** — Private IP detection for `redirect_uri` + manual URL mode for remote servers - **OAuth Behind Nginx** — Uses `window.location.origin` for reverse proxy compatibility @@ -413,7 +438,7 @@ Installing, configuring, and maintaining an AI proxy across different environmen - **Electron Desktop App** — Native app for Windows/macOS/Linux with system tray, auto-start, offline mode - **Split-Port Mode** — API and Dashboard on separate ports for advanced scenarios (reverse proxy, container networking) - **Cloud Sync** — Config synchronization across devices via Cloudflare Workers -- **DB Backups** — Automatic backup, restore, export and import of all settings +- **DB Backups** — Automatic backup, restore, export and import of all settings, with `DISABLE_SQLITE_AUTO_BACKUP` for externally managed backups
@@ -737,7 +762,7 @@ Outcome: deep fallback depth for deadline-critical workloads | Step | Action | Providers Unlocked | | ---- | -------------------------------------------------- | ------------------------------------------------------------------ | | 1 | Connect **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — **unlimited** | -| 2 | Connect **iFlow** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | +| 2 | Connect **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | | 3 | Connect **Qwen** (Device Code) | qwen3-coder-plus, qwen3-coder-flash... — **unlimited** | | 4 | Connect **Gemini CLI** (Google OAuth) | gemini-3-flash, gemini-2.5-pro — **180K/mo free** | | 5 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | @@ -838,6 +863,113 @@ npm install PORT=20128 DASHBOARD_PORT=20129 NEXT_PUBLIC_BASE_URL=http://localhost:20129 npm run dev ``` +
+Void Linux (`xbps-src` template) + +For Void Linux users, you can build a native package using `xbps-src`. Save this block as `srcpkgs/omniroute/template`: + +```bash +# Template file for 'omniroute' +pkgname=omniroute +version=3.4.1 +revision=1 +hostmakedepends="nodejs python3 make" +depends="openssl" +short_desc="Universal AI gateway with smart routing for multiple LLM providers" +maintainer="zenobit " +license="MIT" +homepage="https://github.com/diegosouzapw/OmniRoute" +distfiles="https://github.com/diegosouzapw/OmniRoute/archive/refs/tags/v${version}.tar.gz" +checksum=009400afee90a9f32599d8fe734145cfd84098140b7287990183dde45ae2245b +system_accounts="_omniroute" +omniroute_homedir="/var/lib/omniroute" +export NODE_ENV=production +export npm_config_engine_strict=false +export npm_config_loglevel=error +export npm_config_fund=false +export npm_config_audit=false + +do_build() { + # Determine target CPU arch for node-gyp + local _gyp_arch + case "$XBPS_TARGET_MACHINE" in + aarch64*) _gyp_arch=arm64 ;; + armv7*|armv6*) _gyp_arch=arm ;; + i686*) _gyp_arch=ia32 ;; + *) _gyp_arch=x64 ;; + esac + + # 1) Install all deps – skip scripts (no network in do_build, native modules + # compiled separately below; better-sqlite3 is serverExternalPackage so + # Next.js does not execute it during next build) + NODE_ENV=development npm ci --ignore-scripts + + # 2) Build the Next.js standalone bundle + npm run build + + # 3) Copy static assets into standalone + cp -r .next/static .next/standalone/.next/static + [ -d public ] && cp -r public .next/standalone/public || true + + # 4) Compile better-sqlite3 native binding for the target architecture. + # Use node-gyp directly so CC/CXX from xbps-src cross-toolchain are used + # without npm altering them. + local _node_gyp=/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js + (cd node_modules/better-sqlite3 && node "$_node_gyp" rebuild --arch="$_gyp_arch") + + # 5) Place the compiled binding into the standalone bundle + local _bs3_release=.next/standalone/node_modules/better-sqlite3/build/Release + mkdir -p "$_bs3_release" + cp node_modules/better-sqlite3/build/Release/better_sqlite3.node "$_bs3_release/" + + # 6) Remove arch-specific sharp bundles – upstream sets images.unoptimized=true + # so sharp is not used at runtime; x64 .so files would break aarch64 strip + rm -rf .next/standalone/node_modules/@img + + # 7) Copy pino runtime deps omitted by Next.js static analysis: + # pino-abstract-transport – required by pino's worker thread + # split2 – dep of pino-abstract-transport + # process-warning – dep of pino itself + for _mod in pino-abstract-transport split2 process-warning; do + cp -r "node_modules/$_mod" .next/standalone/node_modules/ + done +} + +do_check() { + npm run test:unit +} + +do_install() { + vmkdir usr/lib/omniroute/.next + + vcopy .next/standalone/. usr/lib/omniroute/.next/standalone + + # Prevent removal of empty Next.js app router dirs by the post-install hook + for _d in \ + .next/standalone/.next/server/app/dashboard \ + .next/standalone/.next/server/app/dashboard/settings \ + .next/standalone/.next/server/app/dashboard/providers; do + touch "${DESTDIR}/usr/lib/omniroute/${_d}/.keep" + done + + cat > "${WRKDIR}/omniroute" <<'EOF' +#!/bin/sh +export PORT="${PORT:-20128}" +export DATA_DIR="${DATA_DIR:-${XDG_DATA_HOME:-${HOME}/.local/share}/omniroute}" +export LOG_TO_FILE="${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 +} +``` + +
+ --- ## 🐳 Docker @@ -886,6 +1018,7 @@ Notes: - Quick Tunnel URLs are temporary and change after every restart. - Managed install currently supports Linux, macOS, and Windows on `x64` / `arm64`. +- Docker images bundle system CA roots and pass them to managed `cloudflared`, which avoids TLS trust failures when the tunnel bootstraps inside the container. - Set `CLOUDFLARED_BIN=/absolute/path/to/cloudflared` if you want OmniRoute to use an existing binary instead of downloading one. **Using Docker Compose with Caddy (HTTPS Auto-TLS):** @@ -983,7 +1116,7 @@ When minimized, OmniRoute lives in your system tray with quick actions: | | MiniMax M2.1 | $0.2/1M | 5-hour rolling | Cheapest option | | | Kimi K2.5 (Moonshot API) 🆕 | Pay-per-use | None | Direct Moonshot API access | | | Kimi K2 | $9/mo flat | 10M tokens/mo | Predictable cost | -| **🆓 FREE** | iFlow | **$0** | Unlimited | 5 models unlimited | +| **🆓 FREE** | Qoder | **$0** | Unlimited | 5 models unlimited | | | Qwen | **$0** | Unlimited | 4 models unlimited | | | Kiro | **$0** | Unlimited | Claude Sonnet/Haiku (AWS Builder) | | | LongCat Flash-Lite 🆕 | **$0** (50M tok/day 🔥) | 1 RPS | Largest free quota on Earth | @@ -998,7 +1131,7 @@ When minimized, OmniRoute lives in your system tray with quick actions: ``` # 🆓 Ultimate Free Stack 2026 — 11 Providers, $0 Forever Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -iFlow (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED +Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed Qwen (qw/) → qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next UNLIMITED @@ -1028,7 +1161,7 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day | `claude-haiku-4.5` | `kr/` | **Unlimited** | No reported daily cap | | `claude-opus-4.6` | `kr/` | **Unlimited** | Latest Opus via Kiro | -### 🟢 IFLOW MODELS (Free OAuth — No Credit Card) +### 🟢 QODER MODELS (Free OAuth — No Credit Card) | Model | Prefix | Limit | Rate Limit | | ------------------ | ------ | ------------- | --------------- | @@ -1127,7 +1260,7 @@ Available free: `qwen3-235b-a22b-instruct-2507` (Qwen3 235B!), `llama-3.1-70b-in > > ``` > Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -> iFlow (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED +> Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED > LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 > Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed > Qwen (qw/) → qwen3-coder models UNLIMITED @@ -1279,21 +1412,22 @@ OmniRoute v2.0 is built as an operational platform, not just a relay proxy. ### ☁️ Deployment & Platform -| Feature | What It Does | -| ----------------------------- | --------------------------------------------------------- | -| 🌐 **Deploy Anywhere** | Localhost, VPS, Docker, Cloud environments | -| 🚇 **Cloudflare Tunnel** 🆕 | One-click Quick Tunnel integration from the dashboard | -| 💾 **Cloud Sync** | Configuration sync via cloud worker | -| 🔄 **Backup/Restore** | Export/import and disaster recovery flows | -| 🧙 **Onboarding Wizard** | First-run guided setup | -| 🔧 **CLI Tools Dashboard** | One-click setup for popular coding tools | -| 🎮 **Model Playground** | Test any provider/model/endpoint from the dashboard | -| 🔏 **CLI Fingerprint Toggle** | Per-provider fingerprint matching in Settings > Security | -| 🌐 **i18n (30 languages)** | Full dashboard + docs language support with RTL coverage | -| 🧹 **Clear All Models** | One-click model list clearing in provider details | -| 👁️ **Sidebar Controls** 🆕 | Hide components and integrations from Appearance Settings | -| 📋 **Issue Templates** | Standardized GitHub templates for bugs and features | -| 📂 **Custom Data Directory** | `DATA_DIR` override for storage location | +| Feature | What It Does | +| ------------------------------ | --------------------------------------------------------------------- | +| 🌐 **Deploy Anywhere** | Localhost, VPS, Docker, Cloud environments | +| 🚇 **Cloudflare Tunnel** 🆕 | One-click Quick Tunnel integration from the dashboard | +| 🔑 **API Key Model Filtering** | Native /v1/models response filtered via assigned Bearer context roles | +| ⚡ **Smart Cache Bypass** | Configurable TTL heuristics and forced refetch controls | +| 🔄 **Backup/Restore** | Export/import and disaster recovery flows | +| 🧙 **Onboarding Wizard** | First-run guided setup | +| 🔧 **CLI Tools Dashboard** | One-click setup for popular coding tools | +| 🎮 **Model Playground** | Test any provider/model/endpoint from the dashboard | +| 🔏 **CLI Fingerprint Toggle** | Per-provider fingerprint matching in Settings > Security | +| 🌐 **i18n (30 languages)** | Full dashboard + docs language support with RTL coverage | +| 🧹 **Clear All Models** | One-click model list clearing in provider details | +| 👁️ **Sidebar Controls** 🆕 | Hide components and integrations from Appearance Settings | +| 📋 **Issue Templates** | Standardized GitHub templates for bugs and features | +| 📂 **Custom Data Directory** | `DATA_DIR` override for storage location | ### Feature Deep Dive @@ -1545,6 +1679,8 @@ Models: **Models:** Access 100+ models from all major providers through a single API key. +**Dashboard behavior:** OpenRouter models are managed from **Available Models**. Manual add, import, and auto-sync all update the same list. +
@@ -1587,11 +1723,11 @@ Models:
🆓 FREE Providers (Emergency Backup) -### iFlow (5 FREE models via OAuth) +### Qoder (5 FREE models via OAuth) ```bash -Dashboard → Connect iFlow -→ iFlow OAuth login +Dashboard → Connect Qoder +→ Qoder OAuth login → Unlimited usage Models: @@ -1789,7 +1925,7 @@ opencode - Check usage stats in Dashboard → Costs - Switch primary model to GLM/MiniMax -- Use free tier (Gemini CLI, iFlow) for non-critical tasks +- Use free tier (Gemini CLI, Qoder) for non-critical tasks **Dashboard/API ports are wrong** @@ -1811,7 +1947,9 @@ opencode **No request logs** -- Set `ENABLE_REQUEST_LOGS=true` in `.env` +- Request artifacts are written to `DATA_DIR/call_logs/` as one JSON file per request +- Enable pipeline capture from Dashboard → Logs → Request Logs if you need detailed per-stage payloads +- Set `APP_LOG_TO_FILE=true` if you also want application console logs in `logs/application/app.log` **Connection test shows "Invalid" for OpenAI-compatible providers** diff --git a/docs/i18n/ru/README.md b/docs/i18n/ru/README.md index f34c0f69a9..d62841c179 100644 --- a/docs/i18n/ru/README.md +++ b/docs/i18n/ru/README.md @@ -4,6 +4,7 @@ --- + ### Never stop coding. Smart routing to **FREE & low-cost AI models** with automatic fallback. _Your universal API proxy — one endpoint, 67+ providers, zero downtime. Now with **MCP & A2A** agent orchestration._ @@ -30,6 +31,30 @@ _Your universal API proxy — one endpoint, 67+ providers, zero downtime. Now wi --- +## Breaking Change: Unified Logging Upgrade + +> [!WARNING] +> **This release changes both the on-disk request log layout and the logging environment variables.** +> +> If you are upgrading an existing instance: +> +> - Request logs now live in `DATA_DIR/call_logs/YYYY-MM-DD/` as **one JSON artifact per request**. +> - The old `DATA_DIR/logs/` session folders and `DATA_DIR/log.txt` summary file are removed. +> - On the first startup after upgrading, OmniRoute creates a safety backup at `DATA_DIR/log_archives/*.zip` before removing the deprecated request log layout. +> - Legacy logging env vars such as `LOG_TO_FILE`, `LOG_FILE_PATH`, `LOG_MAX_FILE_SIZE`, `LOG_RETENTION_DAYS`, `LOG_LEVEL`, `LOG_FORMAT`, `ENABLE_REQUEST_LOGS`, `CALL_LOGS_MAX`, `CALL_LOG_PAYLOAD_MODE`, and `PROXY_LOG_MAX_ENTRIES` are no longer supported. +> - Use the new env model instead: +> - `APP_LOG_TO_FILE` +> - `APP_LOG_FILE_PATH` +> - `APP_LOG_MAX_FILE_SIZE` +> - `APP_LOG_RETENTION_DAYS` +> - `APP_LOG_LEVEL` +> - `APP_LOG_FORMAT` +> - `CALL_LOG_RETENTION_DAYS` +> +> For release details and upgrade notes, see the [CHANGELOG](CHANGELOG.md). + +--- + ## 🆕 What's New in v3.0.0 > **Upgrading from v2.9.5?** — See the [full CHANGELOG](CHANGELOG.md#300--2026-03-22-release-candidate--not-yet-merged-to-main) for all changes. @@ -203,7 +228,7 @@ When opening an issue, please run the system-info command and attach the generat npm run system-info ``` -This generates a `system-info.txt` with your Node.js version, OmniRoute version, OS details, installed CLI tools (iflow, gemini, claude, codex, antigravity, droid, etc.), Docker/PM2 status, and system packages — everything we need to reproduce your issue quickly. Attach the file directly to your GitHub issue. +This generates a `system-info.txt` with your Node.js version, OmniRoute version, OS details, installed CLI tools (qoder, gemini, claude, codex, antigravity, droid, etc.), Docker/PM2 status, and system packages — everything we need to reproduce your issue quickly. Attach the file directly to your GitHub issue. --- @@ -229,7 +254,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, │ ↓ budget limit ├─→ [Tier 3: CHEAP] GLM ($0.6/1M), MiniMax ($0.2/1M) │ ↓ budget limit - └─→ [Tier 4: FREE] iFlow, Qwen, Kiro (unlimited) + └─→ [Tier 4: FREE] Qoder, Qwen, Kiro (unlimited) Result: Never stop coding, minimal cost ``` @@ -296,7 +321,7 @@ Not everyone can pay $20–200/month for AI subscriptions. Students, devs from e **How OmniRoute solves it:** -- **Free Tier Providers Built-in** — Native support for 100% free providers: iFlow (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) +- **Free Tier Providers Built-in** — Native support for 100% free providers: Qoder (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) - **Ollama Cloud** — Cloud-hosted Ollama models at `api.ollama.com` with free "Light usage" tier; use `ollamacloud/` prefix - **Free-Only Combos** — Chain `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime - **NVIDIA NIM Free Access** — ~40 RPM dev-forever free access to 70+ models at build.nvidia.com (transitioning from credits to pure rate limits) @@ -360,7 +385,7 @@ Claude Code, Codex, Gemini CLI, Copilot — all use OAuth 2.0 with expiring toke **How OmniRoute solves it:** - **Auto Token Refresh** — OAuth tokens refresh in background before expiration -- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, iFlow +- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder - **Multi-Account OAuth** — Multiple accounts per provider via JWT/ID token extraction - **OAuth LAN/Remote Fix** — Private IP detection for `redirect_uri` + manual URL mode for remote servers - **OAuth Behind Nginx** — Uses `window.location.origin` for reverse proxy compatibility @@ -413,7 +438,7 @@ Installing, configuring, and maintaining an AI proxy across different environmen - **Electron Desktop App** — Native app for Windows/macOS/Linux with system tray, auto-start, offline mode - **Split-Port Mode** — API and Dashboard on separate ports for advanced scenarios (reverse proxy, container networking) - **Cloud Sync** — Config synchronization across devices via Cloudflare Workers -- **DB Backups** — Automatic backup, restore, export and import of all settings +- **DB Backups** — Automatic backup, restore, export and import of all settings, with `DISABLE_SQLITE_AUTO_BACKUP` for externally managed backups
@@ -737,7 +762,7 @@ Outcome: deep fallback depth for deadline-critical workloads | Step | Action | Providers Unlocked | | ---- | -------------------------------------------------- | ------------------------------------------------------------------ | | 1 | Connect **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — **unlimited** | -| 2 | Connect **iFlow** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | +| 2 | Connect **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | | 3 | Connect **Qwen** (Device Code) | qwen3-coder-plus, qwen3-coder-flash... — **unlimited** | | 4 | Connect **Gemini CLI** (Google OAuth) | gemini-3-flash, gemini-2.5-pro — **180K/mo free** | | 5 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | @@ -838,6 +863,113 @@ npm install PORT=20128 DASHBOARD_PORT=20129 NEXT_PUBLIC_BASE_URL=http://localhost:20129 npm run dev ``` +
+Void Linux (`xbps-src` template) + +For Void Linux users, you can build a native package using `xbps-src`. Save this block as `srcpkgs/omniroute/template`: + +```bash +# Template file for 'omniroute' +pkgname=omniroute +version=3.4.1 +revision=1 +hostmakedepends="nodejs python3 make" +depends="openssl" +short_desc="Universal AI gateway with smart routing for multiple LLM providers" +maintainer="zenobit " +license="MIT" +homepage="https://github.com/diegosouzapw/OmniRoute" +distfiles="https://github.com/diegosouzapw/OmniRoute/archive/refs/tags/v${version}.tar.gz" +checksum=009400afee90a9f32599d8fe734145cfd84098140b7287990183dde45ae2245b +system_accounts="_omniroute" +omniroute_homedir="/var/lib/omniroute" +export NODE_ENV=production +export npm_config_engine_strict=false +export npm_config_loglevel=error +export npm_config_fund=false +export npm_config_audit=false + +do_build() { + # Determine target CPU arch for node-gyp + local _gyp_arch + case "$XBPS_TARGET_MACHINE" in + aarch64*) _gyp_arch=arm64 ;; + armv7*|armv6*) _gyp_arch=arm ;; + i686*) _gyp_arch=ia32 ;; + *) _gyp_arch=x64 ;; + esac + + # 1) Install all deps – skip scripts (no network in do_build, native modules + # compiled separately below; better-sqlite3 is serverExternalPackage so + # Next.js does not execute it during next build) + NODE_ENV=development npm ci --ignore-scripts + + # 2) Build the Next.js standalone bundle + npm run build + + # 3) Copy static assets into standalone + cp -r .next/static .next/standalone/.next/static + [ -d public ] && cp -r public .next/standalone/public || true + + # 4) Compile better-sqlite3 native binding for the target architecture. + # Use node-gyp directly so CC/CXX from xbps-src cross-toolchain are used + # without npm altering them. + local _node_gyp=/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js + (cd node_modules/better-sqlite3 && node "$_node_gyp" rebuild --arch="$_gyp_arch") + + # 5) Place the compiled binding into the standalone bundle + local _bs3_release=.next/standalone/node_modules/better-sqlite3/build/Release + mkdir -p "$_bs3_release" + cp node_modules/better-sqlite3/build/Release/better_sqlite3.node "$_bs3_release/" + + # 6) Remove arch-specific sharp bundles – upstream sets images.unoptimized=true + # so sharp is not used at runtime; x64 .so files would break aarch64 strip + rm -rf .next/standalone/node_modules/@img + + # 7) Copy pino runtime deps omitted by Next.js static analysis: + # pino-abstract-transport – required by pino's worker thread + # split2 – dep of pino-abstract-transport + # process-warning – dep of pino itself + for _mod in pino-abstract-transport split2 process-warning; do + cp -r "node_modules/$_mod" .next/standalone/node_modules/ + done +} + +do_check() { + npm run test:unit +} + +do_install() { + vmkdir usr/lib/omniroute/.next + + vcopy .next/standalone/. usr/lib/omniroute/.next/standalone + + # Prevent removal of empty Next.js app router dirs by the post-install hook + for _d in \ + .next/standalone/.next/server/app/dashboard \ + .next/standalone/.next/server/app/dashboard/settings \ + .next/standalone/.next/server/app/dashboard/providers; do + touch "${DESTDIR}/usr/lib/omniroute/${_d}/.keep" + done + + cat > "${WRKDIR}/omniroute" <<'EOF' +#!/bin/sh +export PORT="${PORT:-20128}" +export DATA_DIR="${DATA_DIR:-${XDG_DATA_HOME:-${HOME}/.local/share}/omniroute}" +export LOG_TO_FILE="${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 +} +``` + +
+ --- ## 🐳 Docker @@ -886,6 +1018,7 @@ Notes: - Quick Tunnel URLs are temporary and change after every restart. - Managed install currently supports Linux, macOS, and Windows on `x64` / `arm64`. +- Docker images bundle system CA roots and pass them to managed `cloudflared`, which avoids TLS trust failures when the tunnel bootstraps inside the container. - Set `CLOUDFLARED_BIN=/absolute/path/to/cloudflared` if you want OmniRoute to use an existing binary instead of downloading one. **Using Docker Compose with Caddy (HTTPS Auto-TLS):** @@ -983,7 +1116,7 @@ When minimized, OmniRoute lives in your system tray with quick actions: | | MiniMax M2.1 | $0.2/1M | 5-hour rolling | Cheapest option | | | Kimi K2.5 (Moonshot API) 🆕 | Pay-per-use | None | Direct Moonshot API access | | | Kimi K2 | $9/mo flat | 10M tokens/mo | Predictable cost | -| **🆓 FREE** | iFlow | **$0** | Unlimited | 5 models unlimited | +| **🆓 FREE** | Qoder | **$0** | Unlimited | 5 models unlimited | | | Qwen | **$0** | Unlimited | 4 models unlimited | | | Kiro | **$0** | Unlimited | Claude Sonnet/Haiku (AWS Builder) | | | LongCat Flash-Lite 🆕 | **$0** (50M tok/day 🔥) | 1 RPS | Largest free quota on Earth | @@ -998,7 +1131,7 @@ When minimized, OmniRoute lives in your system tray with quick actions: ``` # 🆓 Ultimate Free Stack 2026 — 11 Providers, $0 Forever Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -iFlow (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED +Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed Qwen (qw/) → qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next UNLIMITED @@ -1028,7 +1161,7 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day | `claude-haiku-4.5` | `kr/` | **Unlimited** | No reported daily cap | | `claude-opus-4.6` | `kr/` | **Unlimited** | Latest Opus via Kiro | -### 🟢 IFLOW MODELS (Free OAuth — No Credit Card) +### 🟢 QODER MODELS (Free OAuth — No Credit Card) | Model | Prefix | Limit | Rate Limit | | ------------------ | ------ | ------------- | --------------- | @@ -1127,7 +1260,7 @@ Available free: `qwen3-235b-a22b-instruct-2507` (Qwen3 235B!), `llama-3.1-70b-in > > ``` > Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -> iFlow (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED +> Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED > LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 > Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed > Qwen (qw/) → qwen3-coder models UNLIMITED @@ -1279,21 +1412,22 @@ OmniRoute v2.0 is built as an operational platform, not just a relay proxy. ### ☁️ Deployment & Platform -| Feature | What It Does | -| ----------------------------- | --------------------------------------------------------- | -| 🌐 **Deploy Anywhere** | Localhost, VPS, Docker, Cloud environments | -| 🚇 **Cloudflare Tunnel** 🆕 | One-click Quick Tunnel integration from the dashboard | -| 💾 **Cloud Sync** | Configuration sync via cloud worker | -| 🔄 **Backup/Restore** | Export/import and disaster recovery flows | -| 🧙 **Onboarding Wizard** | First-run guided setup | -| 🔧 **CLI Tools Dashboard** | One-click setup for popular coding tools | -| 🎮 **Model Playground** | Test any provider/model/endpoint from the dashboard | -| 🔏 **CLI Fingerprint Toggle** | Per-provider fingerprint matching in Settings > Security | -| 🌐 **i18n (30 languages)** | Full dashboard + docs language support with RTL coverage | -| 🧹 **Clear All Models** | One-click model list clearing in provider details | -| 👁️ **Sidebar Controls** 🆕 | Hide components and integrations from Appearance Settings | -| 📋 **Issue Templates** | Standardized GitHub templates for bugs and features | -| 📂 **Custom Data Directory** | `DATA_DIR` override for storage location | +| Feature | What It Does | +| ------------------------------ | --------------------------------------------------------------------- | +| 🌐 **Deploy Anywhere** | Localhost, VPS, Docker, Cloud environments | +| 🚇 **Cloudflare Tunnel** 🆕 | One-click Quick Tunnel integration from the dashboard | +| 🔑 **API Key Model Filtering** | Native /v1/models response filtered via assigned Bearer context roles | +| ⚡ **Smart Cache Bypass** | Configurable TTL heuristics and forced refetch controls | +| 🔄 **Backup/Restore** | Export/import and disaster recovery flows | +| 🧙 **Onboarding Wizard** | First-run guided setup | +| 🔧 **CLI Tools Dashboard** | One-click setup for popular coding tools | +| 🎮 **Model Playground** | Test any provider/model/endpoint from the dashboard | +| 🔏 **CLI Fingerprint Toggle** | Per-provider fingerprint matching in Settings > Security | +| 🌐 **i18n (30 languages)** | Full dashboard + docs language support with RTL coverage | +| 🧹 **Clear All Models** | One-click model list clearing in provider details | +| 👁️ **Sidebar Controls** 🆕 | Hide components and integrations from Appearance Settings | +| 📋 **Issue Templates** | Standardized GitHub templates for bugs and features | +| 📂 **Custom Data Directory** | `DATA_DIR` override for storage location | ### Feature Deep Dive @@ -1545,6 +1679,8 @@ Models: **Models:** Access 100+ models from all major providers through a single API key. +**Dashboard behavior:** OpenRouter models are managed from **Available Models**. Manual add, import, and auto-sync all update the same list. +
@@ -1587,11 +1723,11 @@ Models:
🆓 FREE Providers (Emergency Backup) -### iFlow (5 FREE models via OAuth) +### Qoder (5 FREE models via OAuth) ```bash -Dashboard → Connect iFlow -→ iFlow OAuth login +Dashboard → Connect Qoder +→ Qoder OAuth login → Unlimited usage Models: @@ -1789,7 +1925,7 @@ opencode - Check usage stats in Dashboard → Costs - Switch primary model to GLM/MiniMax -- Use free tier (Gemini CLI, iFlow) for non-critical tasks +- Use free tier (Gemini CLI, Qoder) for non-critical tasks **Dashboard/API ports are wrong** @@ -1811,7 +1947,9 @@ opencode **No request logs** -- Set `ENABLE_REQUEST_LOGS=true` in `.env` +- Request artifacts are written to `DATA_DIR/call_logs/` as one JSON file per request +- Enable pipeline capture from Dashboard → Logs → Request Logs if you need detailed per-stage payloads +- Set `APP_LOG_TO_FILE=true` if you also want application console logs in `logs/application/app.log` **Connection test shows "Invalid" for OpenAI-compatible providers** diff --git a/docs/i18n/sk/README.md b/docs/i18n/sk/README.md index 68aefccba9..62181cf646 100644 --- a/docs/i18n/sk/README.md +++ b/docs/i18n/sk/README.md @@ -4,6 +4,7 @@ --- + ### Never stop coding. Smart routing to **FREE & low-cost AI models** with automatic fallback. _Your universal API proxy — one endpoint, 67+ providers, zero downtime. Now with **MCP & A2A** agent orchestration._ @@ -30,6 +31,30 @@ _Your universal API proxy — one endpoint, 67+ providers, zero downtime. Now wi --- +## Breaking Change: Unified Logging Upgrade + +> [!WARNING] +> **This release changes both the on-disk request log layout and the logging environment variables.** +> +> If you are upgrading an existing instance: +> +> - Request logs now live in `DATA_DIR/call_logs/YYYY-MM-DD/` as **one JSON artifact per request**. +> - The old `DATA_DIR/logs/` session folders and `DATA_DIR/log.txt` summary file are removed. +> - On the first startup after upgrading, OmniRoute creates a safety backup at `DATA_DIR/log_archives/*.zip` before removing the deprecated request log layout. +> - Legacy logging env vars such as `LOG_TO_FILE`, `LOG_FILE_PATH`, `LOG_MAX_FILE_SIZE`, `LOG_RETENTION_DAYS`, `LOG_LEVEL`, `LOG_FORMAT`, `ENABLE_REQUEST_LOGS`, `CALL_LOGS_MAX`, `CALL_LOG_PAYLOAD_MODE`, and `PROXY_LOG_MAX_ENTRIES` are no longer supported. +> - Use the new env model instead: +> - `APP_LOG_TO_FILE` +> - `APP_LOG_FILE_PATH` +> - `APP_LOG_MAX_FILE_SIZE` +> - `APP_LOG_RETENTION_DAYS` +> - `APP_LOG_LEVEL` +> - `APP_LOG_FORMAT` +> - `CALL_LOG_RETENTION_DAYS` +> +> For release details and upgrade notes, see the [CHANGELOG](CHANGELOG.md). + +--- + ## 🆕 What's New in v3.0.0 > **Upgrading from v2.9.5?** — See the [full CHANGELOG](CHANGELOG.md#300--2026-03-22-release-candidate--not-yet-merged-to-main) for all changes. @@ -203,7 +228,7 @@ When opening an issue, please run the system-info command and attach the generat npm run system-info ``` -This generates a `system-info.txt` with your Node.js version, OmniRoute version, OS details, installed CLI tools (iflow, gemini, claude, codex, antigravity, droid, etc.), Docker/PM2 status, and system packages — everything we need to reproduce your issue quickly. Attach the file directly to your GitHub issue. +This generates a `system-info.txt` with your Node.js version, OmniRoute version, OS details, installed CLI tools (qoder, gemini, claude, codex, antigravity, droid, etc.), Docker/PM2 status, and system packages — everything we need to reproduce your issue quickly. Attach the file directly to your GitHub issue. --- @@ -229,7 +254,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, │ ↓ budget limit ├─→ [Tier 3: CHEAP] GLM ($0.6/1M), MiniMax ($0.2/1M) │ ↓ budget limit - └─→ [Tier 4: FREE] iFlow, Qwen, Kiro (unlimited) + └─→ [Tier 4: FREE] Qoder, Qwen, Kiro (unlimited) Result: Never stop coding, minimal cost ``` @@ -296,7 +321,7 @@ Not everyone can pay $20–200/month for AI subscriptions. Students, devs from e **How OmniRoute solves it:** -- **Free Tier Providers Built-in** — Native support for 100% free providers: iFlow (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) +- **Free Tier Providers Built-in** — Native support for 100% free providers: Qoder (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) - **Ollama Cloud** — Cloud-hosted Ollama models at `api.ollama.com` with free "Light usage" tier; use `ollamacloud/` prefix - **Free-Only Combos** — Chain `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime - **NVIDIA NIM Free Access** — ~40 RPM dev-forever free access to 70+ models at build.nvidia.com (transitioning from credits to pure rate limits) @@ -360,7 +385,7 @@ Claude Code, Codex, Gemini CLI, Copilot — all use OAuth 2.0 with expiring toke **How OmniRoute solves it:** - **Auto Token Refresh** — OAuth tokens refresh in background before expiration -- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, iFlow +- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder - **Multi-Account OAuth** — Multiple accounts per provider via JWT/ID token extraction - **OAuth LAN/Remote Fix** — Private IP detection for `redirect_uri` + manual URL mode for remote servers - **OAuth Behind Nginx** — Uses `window.location.origin` for reverse proxy compatibility @@ -413,7 +438,7 @@ Installing, configuring, and maintaining an AI proxy across different environmen - **Electron Desktop App** — Native app for Windows/macOS/Linux with system tray, auto-start, offline mode - **Split-Port Mode** — API and Dashboard on separate ports for advanced scenarios (reverse proxy, container networking) - **Cloud Sync** — Config synchronization across devices via Cloudflare Workers -- **DB Backups** — Automatic backup, restore, export and import of all settings +- **DB Backups** — Automatic backup, restore, export and import of all settings, with `DISABLE_SQLITE_AUTO_BACKUP` for externally managed backups
@@ -737,7 +762,7 @@ Outcome: deep fallback depth for deadline-critical workloads | Step | Action | Providers Unlocked | | ---- | -------------------------------------------------- | ------------------------------------------------------------------ | | 1 | Connect **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — **unlimited** | -| 2 | Connect **iFlow** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | +| 2 | Connect **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | | 3 | Connect **Qwen** (Device Code) | qwen3-coder-plus, qwen3-coder-flash... — **unlimited** | | 4 | Connect **Gemini CLI** (Google OAuth) | gemini-3-flash, gemini-2.5-pro — **180K/mo free** | | 5 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | @@ -838,6 +863,113 @@ npm install PORT=20128 DASHBOARD_PORT=20129 NEXT_PUBLIC_BASE_URL=http://localhost:20129 npm run dev ``` +
+Void Linux (`xbps-src` template) + +For Void Linux users, you can build a native package using `xbps-src`. Save this block as `srcpkgs/omniroute/template`: + +```bash +# Template file for 'omniroute' +pkgname=omniroute +version=3.4.1 +revision=1 +hostmakedepends="nodejs python3 make" +depends="openssl" +short_desc="Universal AI gateway with smart routing for multiple LLM providers" +maintainer="zenobit " +license="MIT" +homepage="https://github.com/diegosouzapw/OmniRoute" +distfiles="https://github.com/diegosouzapw/OmniRoute/archive/refs/tags/v${version}.tar.gz" +checksum=009400afee90a9f32599d8fe734145cfd84098140b7287990183dde45ae2245b +system_accounts="_omniroute" +omniroute_homedir="/var/lib/omniroute" +export NODE_ENV=production +export npm_config_engine_strict=false +export npm_config_loglevel=error +export npm_config_fund=false +export npm_config_audit=false + +do_build() { + # Determine target CPU arch for node-gyp + local _gyp_arch + case "$XBPS_TARGET_MACHINE" in + aarch64*) _gyp_arch=arm64 ;; + armv7*|armv6*) _gyp_arch=arm ;; + i686*) _gyp_arch=ia32 ;; + *) _gyp_arch=x64 ;; + esac + + # 1) Install all deps – skip scripts (no network in do_build, native modules + # compiled separately below; better-sqlite3 is serverExternalPackage so + # Next.js does not execute it during next build) + NODE_ENV=development npm ci --ignore-scripts + + # 2) Build the Next.js standalone bundle + npm run build + + # 3) Copy static assets into standalone + cp -r .next/static .next/standalone/.next/static + [ -d public ] && cp -r public .next/standalone/public || true + + # 4) Compile better-sqlite3 native binding for the target architecture. + # Use node-gyp directly so CC/CXX from xbps-src cross-toolchain are used + # without npm altering them. + local _node_gyp=/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js + (cd node_modules/better-sqlite3 && node "$_node_gyp" rebuild --arch="$_gyp_arch") + + # 5) Place the compiled binding into the standalone bundle + local _bs3_release=.next/standalone/node_modules/better-sqlite3/build/Release + mkdir -p "$_bs3_release" + cp node_modules/better-sqlite3/build/Release/better_sqlite3.node "$_bs3_release/" + + # 6) Remove arch-specific sharp bundles – upstream sets images.unoptimized=true + # so sharp is not used at runtime; x64 .so files would break aarch64 strip + rm -rf .next/standalone/node_modules/@img + + # 7) Copy pino runtime deps omitted by Next.js static analysis: + # pino-abstract-transport – required by pino's worker thread + # split2 – dep of pino-abstract-transport + # process-warning – dep of pino itself + for _mod in pino-abstract-transport split2 process-warning; do + cp -r "node_modules/$_mod" .next/standalone/node_modules/ + done +} + +do_check() { + npm run test:unit +} + +do_install() { + vmkdir usr/lib/omniroute/.next + + vcopy .next/standalone/. usr/lib/omniroute/.next/standalone + + # Prevent removal of empty Next.js app router dirs by the post-install hook + for _d in \ + .next/standalone/.next/server/app/dashboard \ + .next/standalone/.next/server/app/dashboard/settings \ + .next/standalone/.next/server/app/dashboard/providers; do + touch "${DESTDIR}/usr/lib/omniroute/${_d}/.keep" + done + + cat > "${WRKDIR}/omniroute" <<'EOF' +#!/bin/sh +export PORT="${PORT:-20128}" +export DATA_DIR="${DATA_DIR:-${XDG_DATA_HOME:-${HOME}/.local/share}/omniroute}" +export LOG_TO_FILE="${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 +} +``` + +
+ --- ## 🐳 Docker @@ -886,6 +1018,7 @@ Notes: - Quick Tunnel URLs are temporary and change after every restart. - Managed install currently supports Linux, macOS, and Windows on `x64` / `arm64`. +- Docker images bundle system CA roots and pass them to managed `cloudflared`, which avoids TLS trust failures when the tunnel bootstraps inside the container. - Set `CLOUDFLARED_BIN=/absolute/path/to/cloudflared` if you want OmniRoute to use an existing binary instead of downloading one. **Using Docker Compose with Caddy (HTTPS Auto-TLS):** @@ -983,7 +1116,7 @@ When minimized, OmniRoute lives in your system tray with quick actions: | | MiniMax M2.1 | $0.2/1M | 5-hour rolling | Cheapest option | | | Kimi K2.5 (Moonshot API) 🆕 | Pay-per-use | None | Direct Moonshot API access | | | Kimi K2 | $9/mo flat | 10M tokens/mo | Predictable cost | -| **🆓 FREE** | iFlow | **$0** | Unlimited | 5 models unlimited | +| **🆓 FREE** | Qoder | **$0** | Unlimited | 5 models unlimited | | | Qwen | **$0** | Unlimited | 4 models unlimited | | | Kiro | **$0** | Unlimited | Claude Sonnet/Haiku (AWS Builder) | | | LongCat Flash-Lite 🆕 | **$0** (50M tok/day 🔥) | 1 RPS | Largest free quota on Earth | @@ -998,7 +1131,7 @@ When minimized, OmniRoute lives in your system tray with quick actions: ``` # 🆓 Ultimate Free Stack 2026 — 11 Providers, $0 Forever Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -iFlow (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED +Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed Qwen (qw/) → qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next UNLIMITED @@ -1028,7 +1161,7 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day | `claude-haiku-4.5` | `kr/` | **Unlimited** | No reported daily cap | | `claude-opus-4.6` | `kr/` | **Unlimited** | Latest Opus via Kiro | -### 🟢 IFLOW MODELS (Free OAuth — No Credit Card) +### 🟢 QODER MODELS (Free OAuth — No Credit Card) | Model | Prefix | Limit | Rate Limit | | ------------------ | ------ | ------------- | --------------- | @@ -1127,7 +1260,7 @@ Available free: `qwen3-235b-a22b-instruct-2507` (Qwen3 235B!), `llama-3.1-70b-in > > ``` > Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -> iFlow (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED +> Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED > LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 > Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed > Qwen (qw/) → qwen3-coder models UNLIMITED @@ -1279,21 +1412,22 @@ OmniRoute v2.0 is built as an operational platform, not just a relay proxy. ### ☁️ Deployment & Platform -| Feature | What It Does | -| ----------------------------- | --------------------------------------------------------- | -| 🌐 **Deploy Anywhere** | Localhost, VPS, Docker, Cloud environments | -| 🚇 **Cloudflare Tunnel** 🆕 | One-click Quick Tunnel integration from the dashboard | -| 💾 **Cloud Sync** | Configuration sync via cloud worker | -| 🔄 **Backup/Restore** | Export/import and disaster recovery flows | -| 🧙 **Onboarding Wizard** | First-run guided setup | -| 🔧 **CLI Tools Dashboard** | One-click setup for popular coding tools | -| 🎮 **Model Playground** | Test any provider/model/endpoint from the dashboard | -| 🔏 **CLI Fingerprint Toggle** | Per-provider fingerprint matching in Settings > Security | -| 🌐 **i18n (30 languages)** | Full dashboard + docs language support with RTL coverage | -| 🧹 **Clear All Models** | One-click model list clearing in provider details | -| 👁️ **Sidebar Controls** 🆕 | Hide components and integrations from Appearance Settings | -| 📋 **Issue Templates** | Standardized GitHub templates for bugs and features | -| 📂 **Custom Data Directory** | `DATA_DIR` override for storage location | +| Feature | What It Does | +| ------------------------------ | --------------------------------------------------------------------- | +| 🌐 **Deploy Anywhere** | Localhost, VPS, Docker, Cloud environments | +| 🚇 **Cloudflare Tunnel** 🆕 | One-click Quick Tunnel integration from the dashboard | +| 🔑 **API Key Model Filtering** | Native /v1/models response filtered via assigned Bearer context roles | +| ⚡ **Smart Cache Bypass** | Configurable TTL heuristics and forced refetch controls | +| 🔄 **Backup/Restore** | Export/import and disaster recovery flows | +| 🧙 **Onboarding Wizard** | First-run guided setup | +| 🔧 **CLI Tools Dashboard** | One-click setup for popular coding tools | +| 🎮 **Model Playground** | Test any provider/model/endpoint from the dashboard | +| 🔏 **CLI Fingerprint Toggle** | Per-provider fingerprint matching in Settings > Security | +| 🌐 **i18n (30 languages)** | Full dashboard + docs language support with RTL coverage | +| 🧹 **Clear All Models** | One-click model list clearing in provider details | +| 👁️ **Sidebar Controls** 🆕 | Hide components and integrations from Appearance Settings | +| 📋 **Issue Templates** | Standardized GitHub templates for bugs and features | +| 📂 **Custom Data Directory** | `DATA_DIR` override for storage location | ### Feature Deep Dive @@ -1545,6 +1679,8 @@ Models: **Models:** Access 100+ models from all major providers through a single API key. +**Dashboard behavior:** OpenRouter models are managed from **Available Models**. Manual add, import, and auto-sync all update the same list. +
@@ -1587,11 +1723,11 @@ Models:
🆓 FREE Providers (Emergency Backup) -### iFlow (5 FREE models via OAuth) +### Qoder (5 FREE models via OAuth) ```bash -Dashboard → Connect iFlow -→ iFlow OAuth login +Dashboard → Connect Qoder +→ Qoder OAuth login → Unlimited usage Models: @@ -1789,7 +1925,7 @@ opencode - Check usage stats in Dashboard → Costs - Switch primary model to GLM/MiniMax -- Use free tier (Gemini CLI, iFlow) for non-critical tasks +- Use free tier (Gemini CLI, Qoder) for non-critical tasks **Dashboard/API ports are wrong** @@ -1811,7 +1947,9 @@ opencode **No request logs** -- Set `ENABLE_REQUEST_LOGS=true` in `.env` +- Request artifacts are written to `DATA_DIR/call_logs/` as one JSON file per request +- Enable pipeline capture from Dashboard → Logs → Request Logs if you need detailed per-stage payloads +- Set `APP_LOG_TO_FILE=true` if you also want application console logs in `logs/application/app.log` **Connection test shows "Invalid" for OpenAI-compatible providers** diff --git a/docs/i18n/sv/README.md b/docs/i18n/sv/README.md index c6ada8de40..a7e49c13d4 100644 --- a/docs/i18n/sv/README.md +++ b/docs/i18n/sv/README.md @@ -4,6 +4,7 @@ --- + ### Never stop coding. Smart routing to **FREE & low-cost AI models** with automatic fallback. _Your universal API proxy — one endpoint, 67+ providers, zero downtime. Now with **MCP & A2A** agent orchestration._ @@ -30,6 +31,30 @@ _Your universal API proxy — one endpoint, 67+ providers, zero downtime. Now wi --- +## Breaking Change: Unified Logging Upgrade + +> [!WARNING] +> **This release changes both the on-disk request log layout and the logging environment variables.** +> +> If you are upgrading an existing instance: +> +> - Request logs now live in `DATA_DIR/call_logs/YYYY-MM-DD/` as **one JSON artifact per request**. +> - The old `DATA_DIR/logs/` session folders and `DATA_DIR/log.txt` summary file are removed. +> - On the first startup after upgrading, OmniRoute creates a safety backup at `DATA_DIR/log_archives/*.zip` before removing the deprecated request log layout. +> - Legacy logging env vars such as `LOG_TO_FILE`, `LOG_FILE_PATH`, `LOG_MAX_FILE_SIZE`, `LOG_RETENTION_DAYS`, `LOG_LEVEL`, `LOG_FORMAT`, `ENABLE_REQUEST_LOGS`, `CALL_LOGS_MAX`, `CALL_LOG_PAYLOAD_MODE`, and `PROXY_LOG_MAX_ENTRIES` are no longer supported. +> - Use the new env model instead: +> - `APP_LOG_TO_FILE` +> - `APP_LOG_FILE_PATH` +> - `APP_LOG_MAX_FILE_SIZE` +> - `APP_LOG_RETENTION_DAYS` +> - `APP_LOG_LEVEL` +> - `APP_LOG_FORMAT` +> - `CALL_LOG_RETENTION_DAYS` +> +> For release details and upgrade notes, see the [CHANGELOG](CHANGELOG.md). + +--- + ## 🆕 What's New in v3.0.0 > **Upgrading from v2.9.5?** — See the [full CHANGELOG](CHANGELOG.md#300--2026-03-22-release-candidate--not-yet-merged-to-main) for all changes. @@ -203,7 +228,7 @@ When opening an issue, please run the system-info command and attach the generat npm run system-info ``` -This generates a `system-info.txt` with your Node.js version, OmniRoute version, OS details, installed CLI tools (iflow, gemini, claude, codex, antigravity, droid, etc.), Docker/PM2 status, and system packages — everything we need to reproduce your issue quickly. Attach the file directly to your GitHub issue. +This generates a `system-info.txt` with your Node.js version, OmniRoute version, OS details, installed CLI tools (qoder, gemini, claude, codex, antigravity, droid, etc.), Docker/PM2 status, and system packages — everything we need to reproduce your issue quickly. Attach the file directly to your GitHub issue. --- @@ -229,7 +254,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, │ ↓ budget limit ├─→ [Tier 3: CHEAP] GLM ($0.6/1M), MiniMax ($0.2/1M) │ ↓ budget limit - └─→ [Tier 4: FREE] iFlow, Qwen, Kiro (unlimited) + └─→ [Tier 4: FREE] Qoder, Qwen, Kiro (unlimited) Result: Never stop coding, minimal cost ``` @@ -296,7 +321,7 @@ Not everyone can pay $20–200/month for AI subscriptions. Students, devs from e **How OmniRoute solves it:** -- **Free Tier Providers Built-in** — Native support for 100% free providers: iFlow (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) +- **Free Tier Providers Built-in** — Native support for 100% free providers: Qoder (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) - **Ollama Cloud** — Cloud-hosted Ollama models at `api.ollama.com` with free "Light usage" tier; use `ollamacloud/` prefix - **Free-Only Combos** — Chain `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime - **NVIDIA NIM Free Access** — ~40 RPM dev-forever free access to 70+ models at build.nvidia.com (transitioning from credits to pure rate limits) @@ -360,7 +385,7 @@ Claude Code, Codex, Gemini CLI, Copilot — all use OAuth 2.0 with expiring toke **How OmniRoute solves it:** - **Auto Token Refresh** — OAuth tokens refresh in background before expiration -- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, iFlow +- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder - **Multi-Account OAuth** — Multiple accounts per provider via JWT/ID token extraction - **OAuth LAN/Remote Fix** — Private IP detection for `redirect_uri` + manual URL mode for remote servers - **OAuth Behind Nginx** — Uses `window.location.origin` for reverse proxy compatibility @@ -413,7 +438,7 @@ Installing, configuring, and maintaining an AI proxy across different environmen - **Electron Desktop App** — Native app for Windows/macOS/Linux with system tray, auto-start, offline mode - **Split-Port Mode** — API and Dashboard on separate ports for advanced scenarios (reverse proxy, container networking) - **Cloud Sync** — Config synchronization across devices via Cloudflare Workers -- **DB Backups** — Automatic backup, restore, export and import of all settings +- **DB Backups** — Automatic backup, restore, export and import of all settings, with `DISABLE_SQLITE_AUTO_BACKUP` for externally managed backups
@@ -737,7 +762,7 @@ Outcome: deep fallback depth for deadline-critical workloads | Step | Action | Providers Unlocked | | ---- | -------------------------------------------------- | ------------------------------------------------------------------ | | 1 | Connect **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — **unlimited** | -| 2 | Connect **iFlow** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | +| 2 | Connect **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | | 3 | Connect **Qwen** (Device Code) | qwen3-coder-plus, qwen3-coder-flash... — **unlimited** | | 4 | Connect **Gemini CLI** (Google OAuth) | gemini-3-flash, gemini-2.5-pro — **180K/mo free** | | 5 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | @@ -838,6 +863,113 @@ npm install PORT=20128 DASHBOARD_PORT=20129 NEXT_PUBLIC_BASE_URL=http://localhost:20129 npm run dev ``` +
+Void Linux (`xbps-src` template) + +For Void Linux users, you can build a native package using `xbps-src`. Save this block as `srcpkgs/omniroute/template`: + +```bash +# Template file for 'omniroute' +pkgname=omniroute +version=3.4.1 +revision=1 +hostmakedepends="nodejs python3 make" +depends="openssl" +short_desc="Universal AI gateway with smart routing for multiple LLM providers" +maintainer="zenobit " +license="MIT" +homepage="https://github.com/diegosouzapw/OmniRoute" +distfiles="https://github.com/diegosouzapw/OmniRoute/archive/refs/tags/v${version}.tar.gz" +checksum=009400afee90a9f32599d8fe734145cfd84098140b7287990183dde45ae2245b +system_accounts="_omniroute" +omniroute_homedir="/var/lib/omniroute" +export NODE_ENV=production +export npm_config_engine_strict=false +export npm_config_loglevel=error +export npm_config_fund=false +export npm_config_audit=false + +do_build() { + # Determine target CPU arch for node-gyp + local _gyp_arch + case "$XBPS_TARGET_MACHINE" in + aarch64*) _gyp_arch=arm64 ;; + armv7*|armv6*) _gyp_arch=arm ;; + i686*) _gyp_arch=ia32 ;; + *) _gyp_arch=x64 ;; + esac + + # 1) Install all deps – skip scripts (no network in do_build, native modules + # compiled separately below; better-sqlite3 is serverExternalPackage so + # Next.js does not execute it during next build) + NODE_ENV=development npm ci --ignore-scripts + + # 2) Build the Next.js standalone bundle + npm run build + + # 3) Copy static assets into standalone + cp -r .next/static .next/standalone/.next/static + [ -d public ] && cp -r public .next/standalone/public || true + + # 4) Compile better-sqlite3 native binding for the target architecture. + # Use node-gyp directly so CC/CXX from xbps-src cross-toolchain are used + # without npm altering them. + local _node_gyp=/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js + (cd node_modules/better-sqlite3 && node "$_node_gyp" rebuild --arch="$_gyp_arch") + + # 5) Place the compiled binding into the standalone bundle + local _bs3_release=.next/standalone/node_modules/better-sqlite3/build/Release + mkdir -p "$_bs3_release" + cp node_modules/better-sqlite3/build/Release/better_sqlite3.node "$_bs3_release/" + + # 6) Remove arch-specific sharp bundles – upstream sets images.unoptimized=true + # so sharp is not used at runtime; x64 .so files would break aarch64 strip + rm -rf .next/standalone/node_modules/@img + + # 7) Copy pino runtime deps omitted by Next.js static analysis: + # pino-abstract-transport – required by pino's worker thread + # split2 – dep of pino-abstract-transport + # process-warning – dep of pino itself + for _mod in pino-abstract-transport split2 process-warning; do + cp -r "node_modules/$_mod" .next/standalone/node_modules/ + done +} + +do_check() { + npm run test:unit +} + +do_install() { + vmkdir usr/lib/omniroute/.next + + vcopy .next/standalone/. usr/lib/omniroute/.next/standalone + + # Prevent removal of empty Next.js app router dirs by the post-install hook + for _d in \ + .next/standalone/.next/server/app/dashboard \ + .next/standalone/.next/server/app/dashboard/settings \ + .next/standalone/.next/server/app/dashboard/providers; do + touch "${DESTDIR}/usr/lib/omniroute/${_d}/.keep" + done + + cat > "${WRKDIR}/omniroute" <<'EOF' +#!/bin/sh +export PORT="${PORT:-20128}" +export DATA_DIR="${DATA_DIR:-${XDG_DATA_HOME:-${HOME}/.local/share}/omniroute}" +export LOG_TO_FILE="${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 +} +``` + +
+ --- ## 🐳 Docker @@ -886,6 +1018,7 @@ Notes: - Quick Tunnel URLs are temporary and change after every restart. - Managed install currently supports Linux, macOS, and Windows on `x64` / `arm64`. +- Docker images bundle system CA roots and pass them to managed `cloudflared`, which avoids TLS trust failures when the tunnel bootstraps inside the container. - Set `CLOUDFLARED_BIN=/absolute/path/to/cloudflared` if you want OmniRoute to use an existing binary instead of downloading one. **Using Docker Compose with Caddy (HTTPS Auto-TLS):** @@ -983,7 +1116,7 @@ When minimized, OmniRoute lives in your system tray with quick actions: | | MiniMax M2.1 | $0.2/1M | 5-hour rolling | Cheapest option | | | Kimi K2.5 (Moonshot API) 🆕 | Pay-per-use | None | Direct Moonshot API access | | | Kimi K2 | $9/mo flat | 10M tokens/mo | Predictable cost | -| **🆓 FREE** | iFlow | **$0** | Unlimited | 5 models unlimited | +| **🆓 FREE** | Qoder | **$0** | Unlimited | 5 models unlimited | | | Qwen | **$0** | Unlimited | 4 models unlimited | | | Kiro | **$0** | Unlimited | Claude Sonnet/Haiku (AWS Builder) | | | LongCat Flash-Lite 🆕 | **$0** (50M tok/day 🔥) | 1 RPS | Largest free quota on Earth | @@ -998,7 +1131,7 @@ When minimized, OmniRoute lives in your system tray with quick actions: ``` # 🆓 Ultimate Free Stack 2026 — 11 Providers, $0 Forever Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -iFlow (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED +Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed Qwen (qw/) → qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next UNLIMITED @@ -1028,7 +1161,7 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day | `claude-haiku-4.5` | `kr/` | **Unlimited** | No reported daily cap | | `claude-opus-4.6` | `kr/` | **Unlimited** | Latest Opus via Kiro | -### 🟢 IFLOW MODELS (Free OAuth — No Credit Card) +### 🟢 QODER MODELS (Free OAuth — No Credit Card) | Model | Prefix | Limit | Rate Limit | | ------------------ | ------ | ------------- | --------------- | @@ -1127,7 +1260,7 @@ Available free: `qwen3-235b-a22b-instruct-2507` (Qwen3 235B!), `llama-3.1-70b-in > > ``` > Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -> iFlow (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED +> Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED > LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 > Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed > Qwen (qw/) → qwen3-coder models UNLIMITED @@ -1279,21 +1412,22 @@ OmniRoute v2.0 is built as an operational platform, not just a relay proxy. ### ☁️ Deployment & Platform -| Feature | What It Does | -| ----------------------------- | --------------------------------------------------------- | -| 🌐 **Deploy Anywhere** | Localhost, VPS, Docker, Cloud environments | -| 🚇 **Cloudflare Tunnel** 🆕 | One-click Quick Tunnel integration from the dashboard | -| 💾 **Cloud Sync** | Configuration sync via cloud worker | -| 🔄 **Backup/Restore** | Export/import and disaster recovery flows | -| 🧙 **Onboarding Wizard** | First-run guided setup | -| 🔧 **CLI Tools Dashboard** | One-click setup for popular coding tools | -| 🎮 **Model Playground** | Test any provider/model/endpoint from the dashboard | -| 🔏 **CLI Fingerprint Toggle** | Per-provider fingerprint matching in Settings > Security | -| 🌐 **i18n (30 languages)** | Full dashboard + docs language support with RTL coverage | -| 🧹 **Clear All Models** | One-click model list clearing in provider details | -| 👁️ **Sidebar Controls** 🆕 | Hide components and integrations from Appearance Settings | -| 📋 **Issue Templates** | Standardized GitHub templates for bugs and features | -| 📂 **Custom Data Directory** | `DATA_DIR` override for storage location | +| Feature | What It Does | +| ------------------------------ | --------------------------------------------------------------------- | +| 🌐 **Deploy Anywhere** | Localhost, VPS, Docker, Cloud environments | +| 🚇 **Cloudflare Tunnel** 🆕 | One-click Quick Tunnel integration from the dashboard | +| 🔑 **API Key Model Filtering** | Native /v1/models response filtered via assigned Bearer context roles | +| ⚡ **Smart Cache Bypass** | Configurable TTL heuristics and forced refetch controls | +| 🔄 **Backup/Restore** | Export/import and disaster recovery flows | +| 🧙 **Onboarding Wizard** | First-run guided setup | +| 🔧 **CLI Tools Dashboard** | One-click setup for popular coding tools | +| 🎮 **Model Playground** | Test any provider/model/endpoint from the dashboard | +| 🔏 **CLI Fingerprint Toggle** | Per-provider fingerprint matching in Settings > Security | +| 🌐 **i18n (30 languages)** | Full dashboard + docs language support with RTL coverage | +| 🧹 **Clear All Models** | One-click model list clearing in provider details | +| 👁️ **Sidebar Controls** 🆕 | Hide components and integrations from Appearance Settings | +| 📋 **Issue Templates** | Standardized GitHub templates for bugs and features | +| 📂 **Custom Data Directory** | `DATA_DIR` override for storage location | ### Feature Deep Dive @@ -1545,6 +1679,8 @@ Models: **Models:** Access 100+ models from all major providers through a single API key. +**Dashboard behavior:** OpenRouter models are managed from **Available Models**. Manual add, import, and auto-sync all update the same list. +
@@ -1587,11 +1723,11 @@ Models:
🆓 FREE Providers (Emergency Backup) -### iFlow (5 FREE models via OAuth) +### Qoder (5 FREE models via OAuth) ```bash -Dashboard → Connect iFlow -→ iFlow OAuth login +Dashboard → Connect Qoder +→ Qoder OAuth login → Unlimited usage Models: @@ -1789,7 +1925,7 @@ opencode - Check usage stats in Dashboard → Costs - Switch primary model to GLM/MiniMax -- Use free tier (Gemini CLI, iFlow) for non-critical tasks +- Use free tier (Gemini CLI, Qoder) for non-critical tasks **Dashboard/API ports are wrong** @@ -1811,7 +1947,9 @@ opencode **No request logs** -- Set `ENABLE_REQUEST_LOGS=true` in `.env` +- Request artifacts are written to `DATA_DIR/call_logs/` as one JSON file per request +- Enable pipeline capture from Dashboard → Logs → Request Logs if you need detailed per-stage payloads +- Set `APP_LOG_TO_FILE=true` if you also want application console logs in `logs/application/app.log` **Connection test shows "Invalid" for OpenAI-compatible providers** diff --git a/docs/i18n/th/README.md b/docs/i18n/th/README.md index a122fa9ed7..ade7f8ab7f 100644 --- a/docs/i18n/th/README.md +++ b/docs/i18n/th/README.md @@ -4,6 +4,7 @@ --- + ### Never stop coding. Smart routing to **FREE & low-cost AI models** with automatic fallback. _Your universal API proxy — one endpoint, 67+ providers, zero downtime. Now with **MCP & A2A** agent orchestration._ @@ -30,6 +31,30 @@ _Your universal API proxy — one endpoint, 67+ providers, zero downtime. Now wi --- +## Breaking Change: Unified Logging Upgrade + +> [!WARNING] +> **This release changes both the on-disk request log layout and the logging environment variables.** +> +> If you are upgrading an existing instance: +> +> - Request logs now live in `DATA_DIR/call_logs/YYYY-MM-DD/` as **one JSON artifact per request**. +> - The old `DATA_DIR/logs/` session folders and `DATA_DIR/log.txt` summary file are removed. +> - On the first startup after upgrading, OmniRoute creates a safety backup at `DATA_DIR/log_archives/*.zip` before removing the deprecated request log layout. +> - Legacy logging env vars such as `LOG_TO_FILE`, `LOG_FILE_PATH`, `LOG_MAX_FILE_SIZE`, `LOG_RETENTION_DAYS`, `LOG_LEVEL`, `LOG_FORMAT`, `ENABLE_REQUEST_LOGS`, `CALL_LOGS_MAX`, `CALL_LOG_PAYLOAD_MODE`, and `PROXY_LOG_MAX_ENTRIES` are no longer supported. +> - Use the new env model instead: +> - `APP_LOG_TO_FILE` +> - `APP_LOG_FILE_PATH` +> - `APP_LOG_MAX_FILE_SIZE` +> - `APP_LOG_RETENTION_DAYS` +> - `APP_LOG_LEVEL` +> - `APP_LOG_FORMAT` +> - `CALL_LOG_RETENTION_DAYS` +> +> For release details and upgrade notes, see the [CHANGELOG](CHANGELOG.md). + +--- + ## 🆕 What's New in v3.0.0 > **Upgrading from v2.9.5?** — See the [full CHANGELOG](CHANGELOG.md#300--2026-03-22-release-candidate--not-yet-merged-to-main) for all changes. @@ -203,7 +228,7 @@ When opening an issue, please run the system-info command and attach the generat npm run system-info ``` -This generates a `system-info.txt` with your Node.js version, OmniRoute version, OS details, installed CLI tools (iflow, gemini, claude, codex, antigravity, droid, etc.), Docker/PM2 status, and system packages — everything we need to reproduce your issue quickly. Attach the file directly to your GitHub issue. +This generates a `system-info.txt` with your Node.js version, OmniRoute version, OS details, installed CLI tools (qoder, gemini, claude, codex, antigravity, droid, etc.), Docker/PM2 status, and system packages — everything we need to reproduce your issue quickly. Attach the file directly to your GitHub issue. --- @@ -229,7 +254,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, │ ↓ budget limit ├─→ [Tier 3: CHEAP] GLM ($0.6/1M), MiniMax ($0.2/1M) │ ↓ budget limit - └─→ [Tier 4: FREE] iFlow, Qwen, Kiro (unlimited) + └─→ [Tier 4: FREE] Qoder, Qwen, Kiro (unlimited) Result: Never stop coding, minimal cost ``` @@ -296,7 +321,7 @@ Not everyone can pay $20–200/month for AI subscriptions. Students, devs from e **How OmniRoute solves it:** -- **Free Tier Providers Built-in** — Native support for 100% free providers: iFlow (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) +- **Free Tier Providers Built-in** — Native support for 100% free providers: Qoder (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) - **Ollama Cloud** — Cloud-hosted Ollama models at `api.ollama.com` with free "Light usage" tier; use `ollamacloud/` prefix - **Free-Only Combos** — Chain `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime - **NVIDIA NIM Free Access** — ~40 RPM dev-forever free access to 70+ models at build.nvidia.com (transitioning from credits to pure rate limits) @@ -360,7 +385,7 @@ Claude Code, Codex, Gemini CLI, Copilot — all use OAuth 2.0 with expiring toke **How OmniRoute solves it:** - **Auto Token Refresh** — OAuth tokens refresh in background before expiration -- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, iFlow +- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder - **Multi-Account OAuth** — Multiple accounts per provider via JWT/ID token extraction - **OAuth LAN/Remote Fix** — Private IP detection for `redirect_uri` + manual URL mode for remote servers - **OAuth Behind Nginx** — Uses `window.location.origin` for reverse proxy compatibility @@ -413,7 +438,7 @@ Installing, configuring, and maintaining an AI proxy across different environmen - **Electron Desktop App** — Native app for Windows/macOS/Linux with system tray, auto-start, offline mode - **Split-Port Mode** — API and Dashboard on separate ports for advanced scenarios (reverse proxy, container networking) - **Cloud Sync** — Config synchronization across devices via Cloudflare Workers -- **DB Backups** — Automatic backup, restore, export and import of all settings +- **DB Backups** — Automatic backup, restore, export and import of all settings, with `DISABLE_SQLITE_AUTO_BACKUP` for externally managed backups
@@ -737,7 +762,7 @@ Outcome: deep fallback depth for deadline-critical workloads | Step | Action | Providers Unlocked | | ---- | -------------------------------------------------- | ------------------------------------------------------------------ | | 1 | Connect **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — **unlimited** | -| 2 | Connect **iFlow** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | +| 2 | Connect **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | | 3 | Connect **Qwen** (Device Code) | qwen3-coder-plus, qwen3-coder-flash... — **unlimited** | | 4 | Connect **Gemini CLI** (Google OAuth) | gemini-3-flash, gemini-2.5-pro — **180K/mo free** | | 5 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | @@ -838,6 +863,113 @@ npm install PORT=20128 DASHBOARD_PORT=20129 NEXT_PUBLIC_BASE_URL=http://localhost:20129 npm run dev ``` +
+Void Linux (`xbps-src` template) + +For Void Linux users, you can build a native package using `xbps-src`. Save this block as `srcpkgs/omniroute/template`: + +```bash +# Template file for 'omniroute' +pkgname=omniroute +version=3.4.1 +revision=1 +hostmakedepends="nodejs python3 make" +depends="openssl" +short_desc="Universal AI gateway with smart routing for multiple LLM providers" +maintainer="zenobit " +license="MIT" +homepage="https://github.com/diegosouzapw/OmniRoute" +distfiles="https://github.com/diegosouzapw/OmniRoute/archive/refs/tags/v${version}.tar.gz" +checksum=009400afee90a9f32599d8fe734145cfd84098140b7287990183dde45ae2245b +system_accounts="_omniroute" +omniroute_homedir="/var/lib/omniroute" +export NODE_ENV=production +export npm_config_engine_strict=false +export npm_config_loglevel=error +export npm_config_fund=false +export npm_config_audit=false + +do_build() { + # Determine target CPU arch for node-gyp + local _gyp_arch + case "$XBPS_TARGET_MACHINE" in + aarch64*) _gyp_arch=arm64 ;; + armv7*|armv6*) _gyp_arch=arm ;; + i686*) _gyp_arch=ia32 ;; + *) _gyp_arch=x64 ;; + esac + + # 1) Install all deps – skip scripts (no network in do_build, native modules + # compiled separately below; better-sqlite3 is serverExternalPackage so + # Next.js does not execute it during next build) + NODE_ENV=development npm ci --ignore-scripts + + # 2) Build the Next.js standalone bundle + npm run build + + # 3) Copy static assets into standalone + cp -r .next/static .next/standalone/.next/static + [ -d public ] && cp -r public .next/standalone/public || true + + # 4) Compile better-sqlite3 native binding for the target architecture. + # Use node-gyp directly so CC/CXX from xbps-src cross-toolchain are used + # without npm altering them. + local _node_gyp=/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js + (cd node_modules/better-sqlite3 && node "$_node_gyp" rebuild --arch="$_gyp_arch") + + # 5) Place the compiled binding into the standalone bundle + local _bs3_release=.next/standalone/node_modules/better-sqlite3/build/Release + mkdir -p "$_bs3_release" + cp node_modules/better-sqlite3/build/Release/better_sqlite3.node "$_bs3_release/" + + # 6) Remove arch-specific sharp bundles – upstream sets images.unoptimized=true + # so sharp is not used at runtime; x64 .so files would break aarch64 strip + rm -rf .next/standalone/node_modules/@img + + # 7) Copy pino runtime deps omitted by Next.js static analysis: + # pino-abstract-transport – required by pino's worker thread + # split2 – dep of pino-abstract-transport + # process-warning – dep of pino itself + for _mod in pino-abstract-transport split2 process-warning; do + cp -r "node_modules/$_mod" .next/standalone/node_modules/ + done +} + +do_check() { + npm run test:unit +} + +do_install() { + vmkdir usr/lib/omniroute/.next + + vcopy .next/standalone/. usr/lib/omniroute/.next/standalone + + # Prevent removal of empty Next.js app router dirs by the post-install hook + for _d in \ + .next/standalone/.next/server/app/dashboard \ + .next/standalone/.next/server/app/dashboard/settings \ + .next/standalone/.next/server/app/dashboard/providers; do + touch "${DESTDIR}/usr/lib/omniroute/${_d}/.keep" + done + + cat > "${WRKDIR}/omniroute" <<'EOF' +#!/bin/sh +export PORT="${PORT:-20128}" +export DATA_DIR="${DATA_DIR:-${XDG_DATA_HOME:-${HOME}/.local/share}/omniroute}" +export LOG_TO_FILE="${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 +} +``` + +
+ --- ## 🐳 Docker @@ -886,6 +1018,7 @@ Notes: - Quick Tunnel URLs are temporary and change after every restart. - Managed install currently supports Linux, macOS, and Windows on `x64` / `arm64`. +- Docker images bundle system CA roots and pass them to managed `cloudflared`, which avoids TLS trust failures when the tunnel bootstraps inside the container. - Set `CLOUDFLARED_BIN=/absolute/path/to/cloudflared` if you want OmniRoute to use an existing binary instead of downloading one. **Using Docker Compose with Caddy (HTTPS Auto-TLS):** @@ -983,7 +1116,7 @@ When minimized, OmniRoute lives in your system tray with quick actions: | | MiniMax M2.1 | $0.2/1M | 5-hour rolling | Cheapest option | | | Kimi K2.5 (Moonshot API) 🆕 | Pay-per-use | None | Direct Moonshot API access | | | Kimi K2 | $9/mo flat | 10M tokens/mo | Predictable cost | -| **🆓 FREE** | iFlow | **$0** | Unlimited | 5 models unlimited | +| **🆓 FREE** | Qoder | **$0** | Unlimited | 5 models unlimited | | | Qwen | **$0** | Unlimited | 4 models unlimited | | | Kiro | **$0** | Unlimited | Claude Sonnet/Haiku (AWS Builder) | | | LongCat Flash-Lite 🆕 | **$0** (50M tok/day 🔥) | 1 RPS | Largest free quota on Earth | @@ -998,7 +1131,7 @@ When minimized, OmniRoute lives in your system tray with quick actions: ``` # 🆓 Ultimate Free Stack 2026 — 11 Providers, $0 Forever Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -iFlow (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED +Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed Qwen (qw/) → qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next UNLIMITED @@ -1028,7 +1161,7 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day | `claude-haiku-4.5` | `kr/` | **Unlimited** | No reported daily cap | | `claude-opus-4.6` | `kr/` | **Unlimited** | Latest Opus via Kiro | -### 🟢 IFLOW MODELS (Free OAuth — No Credit Card) +### 🟢 QODER MODELS (Free OAuth — No Credit Card) | Model | Prefix | Limit | Rate Limit | | ------------------ | ------ | ------------- | --------------- | @@ -1127,7 +1260,7 @@ Available free: `qwen3-235b-a22b-instruct-2507` (Qwen3 235B!), `llama-3.1-70b-in > > ``` > Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -> iFlow (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED +> Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED > LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 > Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed > Qwen (qw/) → qwen3-coder models UNLIMITED @@ -1279,21 +1412,22 @@ OmniRoute v2.0 is built as an operational platform, not just a relay proxy. ### ☁️ Deployment & Platform -| Feature | What It Does | -| ----------------------------- | --------------------------------------------------------- | -| 🌐 **Deploy Anywhere** | Localhost, VPS, Docker, Cloud environments | -| 🚇 **Cloudflare Tunnel** 🆕 | One-click Quick Tunnel integration from the dashboard | -| 💾 **Cloud Sync** | Configuration sync via cloud worker | -| 🔄 **Backup/Restore** | Export/import and disaster recovery flows | -| 🧙 **Onboarding Wizard** | First-run guided setup | -| 🔧 **CLI Tools Dashboard** | One-click setup for popular coding tools | -| 🎮 **Model Playground** | Test any provider/model/endpoint from the dashboard | -| 🔏 **CLI Fingerprint Toggle** | Per-provider fingerprint matching in Settings > Security | -| 🌐 **i18n (30 languages)** | Full dashboard + docs language support with RTL coverage | -| 🧹 **Clear All Models** | One-click model list clearing in provider details | -| 👁️ **Sidebar Controls** 🆕 | Hide components and integrations from Appearance Settings | -| 📋 **Issue Templates** | Standardized GitHub templates for bugs and features | -| 📂 **Custom Data Directory** | `DATA_DIR` override for storage location | +| Feature | What It Does | +| ------------------------------ | --------------------------------------------------------------------- | +| 🌐 **Deploy Anywhere** | Localhost, VPS, Docker, Cloud environments | +| 🚇 **Cloudflare Tunnel** 🆕 | One-click Quick Tunnel integration from the dashboard | +| 🔑 **API Key Model Filtering** | Native /v1/models response filtered via assigned Bearer context roles | +| ⚡ **Smart Cache Bypass** | Configurable TTL heuristics and forced refetch controls | +| 🔄 **Backup/Restore** | Export/import and disaster recovery flows | +| 🧙 **Onboarding Wizard** | First-run guided setup | +| 🔧 **CLI Tools Dashboard** | One-click setup for popular coding tools | +| 🎮 **Model Playground** | Test any provider/model/endpoint from the dashboard | +| 🔏 **CLI Fingerprint Toggle** | Per-provider fingerprint matching in Settings > Security | +| 🌐 **i18n (30 languages)** | Full dashboard + docs language support with RTL coverage | +| 🧹 **Clear All Models** | One-click model list clearing in provider details | +| 👁️ **Sidebar Controls** 🆕 | Hide components and integrations from Appearance Settings | +| 📋 **Issue Templates** | Standardized GitHub templates for bugs and features | +| 📂 **Custom Data Directory** | `DATA_DIR` override for storage location | ### Feature Deep Dive @@ -1545,6 +1679,8 @@ Models: **Models:** Access 100+ models from all major providers through a single API key. +**Dashboard behavior:** OpenRouter models are managed from **Available Models**. Manual add, import, and auto-sync all update the same list. +
@@ -1587,11 +1723,11 @@ Models:
🆓 FREE Providers (Emergency Backup) -### iFlow (5 FREE models via OAuth) +### Qoder (5 FREE models via OAuth) ```bash -Dashboard → Connect iFlow -→ iFlow OAuth login +Dashboard → Connect Qoder +→ Qoder OAuth login → Unlimited usage Models: @@ -1789,7 +1925,7 @@ opencode - Check usage stats in Dashboard → Costs - Switch primary model to GLM/MiniMax -- Use free tier (Gemini CLI, iFlow) for non-critical tasks +- Use free tier (Gemini CLI, Qoder) for non-critical tasks **Dashboard/API ports are wrong** @@ -1811,7 +1947,9 @@ opencode **No request logs** -- Set `ENABLE_REQUEST_LOGS=true` in `.env` +- Request artifacts are written to `DATA_DIR/call_logs/` as one JSON file per request +- Enable pipeline capture from Dashboard → Logs → Request Logs if you need detailed per-stage payloads +- Set `APP_LOG_TO_FILE=true` if you also want application console logs in `logs/application/app.log` **Connection test shows "Invalid" for OpenAI-compatible providers** diff --git a/docs/i18n/uk-UA/README.md b/docs/i18n/uk-UA/README.md index f260d69563..aea80d21a0 100644 --- a/docs/i18n/uk-UA/README.md +++ b/docs/i18n/uk-UA/README.md @@ -4,6 +4,7 @@ --- + ### Never stop coding. Smart routing to **FREE & low-cost AI models** with automatic fallback. _Your universal API proxy — one endpoint, 67+ providers, zero downtime. Now with **MCP & A2A** agent orchestration._ @@ -30,6 +31,30 @@ _Your universal API proxy — one endpoint, 67+ providers, zero downtime. Now wi --- +## Breaking Change: Unified Logging Upgrade + +> [!WARNING] +> **This release changes both the on-disk request log layout and the logging environment variables.** +> +> If you are upgrading an existing instance: +> +> - Request logs now live in `DATA_DIR/call_logs/YYYY-MM-DD/` as **one JSON artifact per request**. +> - The old `DATA_DIR/logs/` session folders and `DATA_DIR/log.txt` summary file are removed. +> - On the first startup after upgrading, OmniRoute creates a safety backup at `DATA_DIR/log_archives/*.zip` before removing the deprecated request log layout. +> - Legacy logging env vars such as `LOG_TO_FILE`, `LOG_FILE_PATH`, `LOG_MAX_FILE_SIZE`, `LOG_RETENTION_DAYS`, `LOG_LEVEL`, `LOG_FORMAT`, `ENABLE_REQUEST_LOGS`, `CALL_LOGS_MAX`, `CALL_LOG_PAYLOAD_MODE`, and `PROXY_LOG_MAX_ENTRIES` are no longer supported. +> - Use the new env model instead: +> - `APP_LOG_TO_FILE` +> - `APP_LOG_FILE_PATH` +> - `APP_LOG_MAX_FILE_SIZE` +> - `APP_LOG_RETENTION_DAYS` +> - `APP_LOG_LEVEL` +> - `APP_LOG_FORMAT` +> - `CALL_LOG_RETENTION_DAYS` +> +> For release details and upgrade notes, see the [CHANGELOG](CHANGELOG.md). + +--- + ## 🆕 What's New in v3.0.0 > **Upgrading from v2.9.5?** — See the [full CHANGELOG](CHANGELOG.md#300--2026-03-22-release-candidate--not-yet-merged-to-main) for all changes. @@ -203,7 +228,7 @@ When opening an issue, please run the system-info command and attach the generat npm run system-info ``` -This generates a `system-info.txt` with your Node.js version, OmniRoute version, OS details, installed CLI tools (iflow, gemini, claude, codex, antigravity, droid, etc.), Docker/PM2 status, and system packages — everything we need to reproduce your issue quickly. Attach the file directly to your GitHub issue. +This generates a `system-info.txt` with your Node.js version, OmniRoute version, OS details, installed CLI tools (qoder, gemini, claude, codex, antigravity, droid, etc.), Docker/PM2 status, and system packages — everything we need to reproduce your issue quickly. Attach the file directly to your GitHub issue. --- @@ -229,7 +254,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, │ ↓ budget limit ├─→ [Tier 3: CHEAP] GLM ($0.6/1M), MiniMax ($0.2/1M) │ ↓ budget limit - └─→ [Tier 4: FREE] iFlow, Qwen, Kiro (unlimited) + └─→ [Tier 4: FREE] Qoder, Qwen, Kiro (unlimited) Result: Never stop coding, minimal cost ``` @@ -296,7 +321,7 @@ Not everyone can pay $20–200/month for AI subscriptions. Students, devs from e **How OmniRoute solves it:** -- **Free Tier Providers Built-in** — Native support for 100% free providers: iFlow (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) +- **Free Tier Providers Built-in** — Native support for 100% free providers: Qoder (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) - **Ollama Cloud** — Cloud-hosted Ollama models at `api.ollama.com` with free "Light usage" tier; use `ollamacloud/` prefix - **Free-Only Combos** — Chain `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime - **NVIDIA NIM Free Access** — ~40 RPM dev-forever free access to 70+ models at build.nvidia.com (transitioning from credits to pure rate limits) @@ -360,7 +385,7 @@ Claude Code, Codex, Gemini CLI, Copilot — all use OAuth 2.0 with expiring toke **How OmniRoute solves it:** - **Auto Token Refresh** — OAuth tokens refresh in background before expiration -- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, iFlow +- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder - **Multi-Account OAuth** — Multiple accounts per provider via JWT/ID token extraction - **OAuth LAN/Remote Fix** — Private IP detection for `redirect_uri` + manual URL mode for remote servers - **OAuth Behind Nginx** — Uses `window.location.origin` for reverse proxy compatibility @@ -413,7 +438,7 @@ Installing, configuring, and maintaining an AI proxy across different environmen - **Electron Desktop App** — Native app for Windows/macOS/Linux with system tray, auto-start, offline mode - **Split-Port Mode** — API and Dashboard on separate ports for advanced scenarios (reverse proxy, container networking) - **Cloud Sync** — Config synchronization across devices via Cloudflare Workers -- **DB Backups** — Automatic backup, restore, export and import of all settings +- **DB Backups** — Automatic backup, restore, export and import of all settings, with `DISABLE_SQLITE_AUTO_BACKUP` for externally managed backups
@@ -737,7 +762,7 @@ Outcome: deep fallback depth for deadline-critical workloads | Step | Action | Providers Unlocked | | ---- | -------------------------------------------------- | ------------------------------------------------------------------ | | 1 | Connect **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — **unlimited** | -| 2 | Connect **iFlow** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | +| 2 | Connect **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | | 3 | Connect **Qwen** (Device Code) | qwen3-coder-plus, qwen3-coder-flash... — **unlimited** | | 4 | Connect **Gemini CLI** (Google OAuth) | gemini-3-flash, gemini-2.5-pro — **180K/mo free** | | 5 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | @@ -838,6 +863,113 @@ npm install PORT=20128 DASHBOARD_PORT=20129 NEXT_PUBLIC_BASE_URL=http://localhost:20129 npm run dev ``` +
+Void Linux (`xbps-src` template) + +For Void Linux users, you can build a native package using `xbps-src`. Save this block as `srcpkgs/omniroute/template`: + +```bash +# Template file for 'omniroute' +pkgname=omniroute +version=3.4.1 +revision=1 +hostmakedepends="nodejs python3 make" +depends="openssl" +short_desc="Universal AI gateway with smart routing for multiple LLM providers" +maintainer="zenobit " +license="MIT" +homepage="https://github.com/diegosouzapw/OmniRoute" +distfiles="https://github.com/diegosouzapw/OmniRoute/archive/refs/tags/v${version}.tar.gz" +checksum=009400afee90a9f32599d8fe734145cfd84098140b7287990183dde45ae2245b +system_accounts="_omniroute" +omniroute_homedir="/var/lib/omniroute" +export NODE_ENV=production +export npm_config_engine_strict=false +export npm_config_loglevel=error +export npm_config_fund=false +export npm_config_audit=false + +do_build() { + # Determine target CPU arch for node-gyp + local _gyp_arch + case "$XBPS_TARGET_MACHINE" in + aarch64*) _gyp_arch=arm64 ;; + armv7*|armv6*) _gyp_arch=arm ;; + i686*) _gyp_arch=ia32 ;; + *) _gyp_arch=x64 ;; + esac + + # 1) Install all deps – skip scripts (no network in do_build, native modules + # compiled separately below; better-sqlite3 is serverExternalPackage so + # Next.js does not execute it during next build) + NODE_ENV=development npm ci --ignore-scripts + + # 2) Build the Next.js standalone bundle + npm run build + + # 3) Copy static assets into standalone + cp -r .next/static .next/standalone/.next/static + [ -d public ] && cp -r public .next/standalone/public || true + + # 4) Compile better-sqlite3 native binding for the target architecture. + # Use node-gyp directly so CC/CXX from xbps-src cross-toolchain are used + # without npm altering them. + local _node_gyp=/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js + (cd node_modules/better-sqlite3 && node "$_node_gyp" rebuild --arch="$_gyp_arch") + + # 5) Place the compiled binding into the standalone bundle + local _bs3_release=.next/standalone/node_modules/better-sqlite3/build/Release + mkdir -p "$_bs3_release" + cp node_modules/better-sqlite3/build/Release/better_sqlite3.node "$_bs3_release/" + + # 6) Remove arch-specific sharp bundles – upstream sets images.unoptimized=true + # so sharp is not used at runtime; x64 .so files would break aarch64 strip + rm -rf .next/standalone/node_modules/@img + + # 7) Copy pino runtime deps omitted by Next.js static analysis: + # pino-abstract-transport – required by pino's worker thread + # split2 – dep of pino-abstract-transport + # process-warning – dep of pino itself + for _mod in pino-abstract-transport split2 process-warning; do + cp -r "node_modules/$_mod" .next/standalone/node_modules/ + done +} + +do_check() { + npm run test:unit +} + +do_install() { + vmkdir usr/lib/omniroute/.next + + vcopy .next/standalone/. usr/lib/omniroute/.next/standalone + + # Prevent removal of empty Next.js app router dirs by the post-install hook + for _d in \ + .next/standalone/.next/server/app/dashboard \ + .next/standalone/.next/server/app/dashboard/settings \ + .next/standalone/.next/server/app/dashboard/providers; do + touch "${DESTDIR}/usr/lib/omniroute/${_d}/.keep" + done + + cat > "${WRKDIR}/omniroute" <<'EOF' +#!/bin/sh +export PORT="${PORT:-20128}" +export DATA_DIR="${DATA_DIR:-${XDG_DATA_HOME:-${HOME}/.local/share}/omniroute}" +export LOG_TO_FILE="${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 +} +``` + +
+ --- ## 🐳 Docker @@ -886,6 +1018,7 @@ Notes: - Quick Tunnel URLs are temporary and change after every restart. - Managed install currently supports Linux, macOS, and Windows on `x64` / `arm64`. +- Docker images bundle system CA roots and pass them to managed `cloudflared`, which avoids TLS trust failures when the tunnel bootstraps inside the container. - Set `CLOUDFLARED_BIN=/absolute/path/to/cloudflared` if you want OmniRoute to use an existing binary instead of downloading one. **Using Docker Compose with Caddy (HTTPS Auto-TLS):** @@ -983,7 +1116,7 @@ When minimized, OmniRoute lives in your system tray with quick actions: | | MiniMax M2.1 | $0.2/1M | 5-hour rolling | Cheapest option | | | Kimi K2.5 (Moonshot API) 🆕 | Pay-per-use | None | Direct Moonshot API access | | | Kimi K2 | $9/mo flat | 10M tokens/mo | Predictable cost | -| **🆓 FREE** | iFlow | **$0** | Unlimited | 5 models unlimited | +| **🆓 FREE** | Qoder | **$0** | Unlimited | 5 models unlimited | | | Qwen | **$0** | Unlimited | 4 models unlimited | | | Kiro | **$0** | Unlimited | Claude Sonnet/Haiku (AWS Builder) | | | LongCat Flash-Lite 🆕 | **$0** (50M tok/day 🔥) | 1 RPS | Largest free quota on Earth | @@ -998,7 +1131,7 @@ When minimized, OmniRoute lives in your system tray with quick actions: ``` # 🆓 Ultimate Free Stack 2026 — 11 Providers, $0 Forever Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -iFlow (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED +Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed Qwen (qw/) → qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next UNLIMITED @@ -1028,7 +1161,7 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day | `claude-haiku-4.5` | `kr/` | **Unlimited** | No reported daily cap | | `claude-opus-4.6` | `kr/` | **Unlimited** | Latest Opus via Kiro | -### 🟢 IFLOW MODELS (Free OAuth — No Credit Card) +### 🟢 QODER MODELS (Free OAuth — No Credit Card) | Model | Prefix | Limit | Rate Limit | | ------------------ | ------ | ------------- | --------------- | @@ -1127,7 +1260,7 @@ Available free: `qwen3-235b-a22b-instruct-2507` (Qwen3 235B!), `llama-3.1-70b-in > > ``` > Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -> iFlow (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED +> Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED > LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 > Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed > Qwen (qw/) → qwen3-coder models UNLIMITED @@ -1279,21 +1412,22 @@ OmniRoute v2.0 is built as an operational platform, not just a relay proxy. ### ☁️ Deployment & Platform -| Feature | What It Does | -| ----------------------------- | --------------------------------------------------------- | -| 🌐 **Deploy Anywhere** | Localhost, VPS, Docker, Cloud environments | -| 🚇 **Cloudflare Tunnel** 🆕 | One-click Quick Tunnel integration from the dashboard | -| 💾 **Cloud Sync** | Configuration sync via cloud worker | -| 🔄 **Backup/Restore** | Export/import and disaster recovery flows | -| 🧙 **Onboarding Wizard** | First-run guided setup | -| 🔧 **CLI Tools Dashboard** | One-click setup for popular coding tools | -| 🎮 **Model Playground** | Test any provider/model/endpoint from the dashboard | -| 🔏 **CLI Fingerprint Toggle** | Per-provider fingerprint matching in Settings > Security | -| 🌐 **i18n (30 languages)** | Full dashboard + docs language support with RTL coverage | -| 🧹 **Clear All Models** | One-click model list clearing in provider details | -| 👁️ **Sidebar Controls** 🆕 | Hide components and integrations from Appearance Settings | -| 📋 **Issue Templates** | Standardized GitHub templates for bugs and features | -| 📂 **Custom Data Directory** | `DATA_DIR` override for storage location | +| Feature | What It Does | +| ------------------------------ | --------------------------------------------------------------------- | +| 🌐 **Deploy Anywhere** | Localhost, VPS, Docker, Cloud environments | +| 🚇 **Cloudflare Tunnel** 🆕 | One-click Quick Tunnel integration from the dashboard | +| 🔑 **API Key Model Filtering** | Native /v1/models response filtered via assigned Bearer context roles | +| ⚡ **Smart Cache Bypass** | Configurable TTL heuristics and forced refetch controls | +| 🔄 **Backup/Restore** | Export/import and disaster recovery flows | +| 🧙 **Onboarding Wizard** | First-run guided setup | +| 🔧 **CLI Tools Dashboard** | One-click setup for popular coding tools | +| 🎮 **Model Playground** | Test any provider/model/endpoint from the dashboard | +| 🔏 **CLI Fingerprint Toggle** | Per-provider fingerprint matching in Settings > Security | +| 🌐 **i18n (30 languages)** | Full dashboard + docs language support with RTL coverage | +| 🧹 **Clear All Models** | One-click model list clearing in provider details | +| 👁️ **Sidebar Controls** 🆕 | Hide components and integrations from Appearance Settings | +| 📋 **Issue Templates** | Standardized GitHub templates for bugs and features | +| 📂 **Custom Data Directory** | `DATA_DIR` override for storage location | ### Feature Deep Dive @@ -1545,6 +1679,8 @@ Models: **Models:** Access 100+ models from all major providers through a single API key. +**Dashboard behavior:** OpenRouter models are managed from **Available Models**. Manual add, import, and auto-sync all update the same list. +
@@ -1587,11 +1723,11 @@ Models:
🆓 FREE Providers (Emergency Backup) -### iFlow (5 FREE models via OAuth) +### Qoder (5 FREE models via OAuth) ```bash -Dashboard → Connect iFlow -→ iFlow OAuth login +Dashboard → Connect Qoder +→ Qoder OAuth login → Unlimited usage Models: @@ -1789,7 +1925,7 @@ opencode - Check usage stats in Dashboard → Costs - Switch primary model to GLM/MiniMax -- Use free tier (Gemini CLI, iFlow) for non-critical tasks +- Use free tier (Gemini CLI, Qoder) for non-critical tasks **Dashboard/API ports are wrong** @@ -1811,7 +1947,9 @@ opencode **No request logs** -- Set `ENABLE_REQUEST_LOGS=true` in `.env` +- Request artifacts are written to `DATA_DIR/call_logs/` as one JSON file per request +- Enable pipeline capture from Dashboard → Logs → Request Logs if you need detailed per-stage payloads +- Set `APP_LOG_TO_FILE=true` if you also want application console logs in `logs/application/app.log` **Connection test shows "Invalid" for OpenAI-compatible providers** diff --git a/docs/i18n/vi/README.md b/docs/i18n/vi/README.md index a01bc27a74..0229e3134d 100644 --- a/docs/i18n/vi/README.md +++ b/docs/i18n/vi/README.md @@ -4,6 +4,7 @@ --- + ### Never stop coding. Smart routing to **FREE & low-cost AI models** with automatic fallback. _Your universal API proxy — one endpoint, 67+ providers, zero downtime. Now with **MCP & A2A** agent orchestration._ @@ -30,6 +31,30 @@ _Your universal API proxy — one endpoint, 67+ providers, zero downtime. Now wi --- +## Breaking Change: Unified Logging Upgrade + +> [!WARNING] +> **This release changes both the on-disk request log layout and the logging environment variables.** +> +> If you are upgrading an existing instance: +> +> - Request logs now live in `DATA_DIR/call_logs/YYYY-MM-DD/` as **one JSON artifact per request**. +> - The old `DATA_DIR/logs/` session folders and `DATA_DIR/log.txt` summary file are removed. +> - On the first startup after upgrading, OmniRoute creates a safety backup at `DATA_DIR/log_archives/*.zip` before removing the deprecated request log layout. +> - Legacy logging env vars such as `LOG_TO_FILE`, `LOG_FILE_PATH`, `LOG_MAX_FILE_SIZE`, `LOG_RETENTION_DAYS`, `LOG_LEVEL`, `LOG_FORMAT`, `ENABLE_REQUEST_LOGS`, `CALL_LOGS_MAX`, `CALL_LOG_PAYLOAD_MODE`, and `PROXY_LOG_MAX_ENTRIES` are no longer supported. +> - Use the new env model instead: +> - `APP_LOG_TO_FILE` +> - `APP_LOG_FILE_PATH` +> - `APP_LOG_MAX_FILE_SIZE` +> - `APP_LOG_RETENTION_DAYS` +> - `APP_LOG_LEVEL` +> - `APP_LOG_FORMAT` +> - `CALL_LOG_RETENTION_DAYS` +> +> For release details and upgrade notes, see the [CHANGELOG](CHANGELOG.md). + +--- + ## 🆕 What's New in v3.0.0 > **Upgrading from v2.9.5?** — See the [full CHANGELOG](CHANGELOG.md#300--2026-03-22-release-candidate--not-yet-merged-to-main) for all changes. @@ -203,7 +228,7 @@ When opening an issue, please run the system-info command and attach the generat npm run system-info ``` -This generates a `system-info.txt` with your Node.js version, OmniRoute version, OS details, installed CLI tools (iflow, gemini, claude, codex, antigravity, droid, etc.), Docker/PM2 status, and system packages — everything we need to reproduce your issue quickly. Attach the file directly to your GitHub issue. +This generates a `system-info.txt` with your Node.js version, OmniRoute version, OS details, installed CLI tools (qoder, gemini, claude, codex, antigravity, droid, etc.), Docker/PM2 status, and system packages — everything we need to reproduce your issue quickly. Attach the file directly to your GitHub issue. --- @@ -229,7 +254,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, │ ↓ budget limit ├─→ [Tier 3: CHEAP] GLM ($0.6/1M), MiniMax ($0.2/1M) │ ↓ budget limit - └─→ [Tier 4: FREE] iFlow, Qwen, Kiro (unlimited) + └─→ [Tier 4: FREE] Qoder, Qwen, Kiro (unlimited) Result: Never stop coding, minimal cost ``` @@ -296,7 +321,7 @@ Not everyone can pay $20–200/month for AI subscriptions. Students, devs from e **How OmniRoute solves it:** -- **Free Tier Providers Built-in** — Native support for 100% free providers: iFlow (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) +- **Free Tier Providers Built-in** — Native support for 100% free providers: Qoder (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) - **Ollama Cloud** — Cloud-hosted Ollama models at `api.ollama.com` with free "Light usage" tier; use `ollamacloud/` prefix - **Free-Only Combos** — Chain `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime - **NVIDIA NIM Free Access** — ~40 RPM dev-forever free access to 70+ models at build.nvidia.com (transitioning from credits to pure rate limits) @@ -360,7 +385,7 @@ Claude Code, Codex, Gemini CLI, Copilot — all use OAuth 2.0 with expiring toke **How OmniRoute solves it:** - **Auto Token Refresh** — OAuth tokens refresh in background before expiration -- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, iFlow +- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder - **Multi-Account OAuth** — Multiple accounts per provider via JWT/ID token extraction - **OAuth LAN/Remote Fix** — Private IP detection for `redirect_uri` + manual URL mode for remote servers - **OAuth Behind Nginx** — Uses `window.location.origin` for reverse proxy compatibility @@ -413,7 +438,7 @@ Installing, configuring, and maintaining an AI proxy across different environmen - **Electron Desktop App** — Native app for Windows/macOS/Linux with system tray, auto-start, offline mode - **Split-Port Mode** — API and Dashboard on separate ports for advanced scenarios (reverse proxy, container networking) - **Cloud Sync** — Config synchronization across devices via Cloudflare Workers -- **DB Backups** — Automatic backup, restore, export and import of all settings +- **DB Backups** — Automatic backup, restore, export and import of all settings, with `DISABLE_SQLITE_AUTO_BACKUP` for externally managed backups
@@ -737,7 +762,7 @@ Outcome: deep fallback depth for deadline-critical workloads | Step | Action | Providers Unlocked | | ---- | -------------------------------------------------- | ------------------------------------------------------------------ | | 1 | Connect **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — **unlimited** | -| 2 | Connect **iFlow** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | +| 2 | Connect **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | | 3 | Connect **Qwen** (Device Code) | qwen3-coder-plus, qwen3-coder-flash... — **unlimited** | | 4 | Connect **Gemini CLI** (Google OAuth) | gemini-3-flash, gemini-2.5-pro — **180K/mo free** | | 5 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | @@ -838,6 +863,113 @@ npm install PORT=20128 DASHBOARD_PORT=20129 NEXT_PUBLIC_BASE_URL=http://localhost:20129 npm run dev ``` +
+Void Linux (`xbps-src` template) + +For Void Linux users, you can build a native package using `xbps-src`. Save this block as `srcpkgs/omniroute/template`: + +```bash +# Template file for 'omniroute' +pkgname=omniroute +version=3.4.1 +revision=1 +hostmakedepends="nodejs python3 make" +depends="openssl" +short_desc="Universal AI gateway with smart routing for multiple LLM providers" +maintainer="zenobit " +license="MIT" +homepage="https://github.com/diegosouzapw/OmniRoute" +distfiles="https://github.com/diegosouzapw/OmniRoute/archive/refs/tags/v${version}.tar.gz" +checksum=009400afee90a9f32599d8fe734145cfd84098140b7287990183dde45ae2245b +system_accounts="_omniroute" +omniroute_homedir="/var/lib/omniroute" +export NODE_ENV=production +export npm_config_engine_strict=false +export npm_config_loglevel=error +export npm_config_fund=false +export npm_config_audit=false + +do_build() { + # Determine target CPU arch for node-gyp + local _gyp_arch + case "$XBPS_TARGET_MACHINE" in + aarch64*) _gyp_arch=arm64 ;; + armv7*|armv6*) _gyp_arch=arm ;; + i686*) _gyp_arch=ia32 ;; + *) _gyp_arch=x64 ;; + esac + + # 1) Install all deps – skip scripts (no network in do_build, native modules + # compiled separately below; better-sqlite3 is serverExternalPackage so + # Next.js does not execute it during next build) + NODE_ENV=development npm ci --ignore-scripts + + # 2) Build the Next.js standalone bundle + npm run build + + # 3) Copy static assets into standalone + cp -r .next/static .next/standalone/.next/static + [ -d public ] && cp -r public .next/standalone/public || true + + # 4) Compile better-sqlite3 native binding for the target architecture. + # Use node-gyp directly so CC/CXX from xbps-src cross-toolchain are used + # without npm altering them. + local _node_gyp=/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js + (cd node_modules/better-sqlite3 && node "$_node_gyp" rebuild --arch="$_gyp_arch") + + # 5) Place the compiled binding into the standalone bundle + local _bs3_release=.next/standalone/node_modules/better-sqlite3/build/Release + mkdir -p "$_bs3_release" + cp node_modules/better-sqlite3/build/Release/better_sqlite3.node "$_bs3_release/" + + # 6) Remove arch-specific sharp bundles – upstream sets images.unoptimized=true + # so sharp is not used at runtime; x64 .so files would break aarch64 strip + rm -rf .next/standalone/node_modules/@img + + # 7) Copy pino runtime deps omitted by Next.js static analysis: + # pino-abstract-transport – required by pino's worker thread + # split2 – dep of pino-abstract-transport + # process-warning – dep of pino itself + for _mod in pino-abstract-transport split2 process-warning; do + cp -r "node_modules/$_mod" .next/standalone/node_modules/ + done +} + +do_check() { + npm run test:unit +} + +do_install() { + vmkdir usr/lib/omniroute/.next + + vcopy .next/standalone/. usr/lib/omniroute/.next/standalone + + # Prevent removal of empty Next.js app router dirs by the post-install hook + for _d in \ + .next/standalone/.next/server/app/dashboard \ + .next/standalone/.next/server/app/dashboard/settings \ + .next/standalone/.next/server/app/dashboard/providers; do + touch "${DESTDIR}/usr/lib/omniroute/${_d}/.keep" + done + + cat > "${WRKDIR}/omniroute" <<'EOF' +#!/bin/sh +export PORT="${PORT:-20128}" +export DATA_DIR="${DATA_DIR:-${XDG_DATA_HOME:-${HOME}/.local/share}/omniroute}" +export LOG_TO_FILE="${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 +} +``` + +
+ --- ## 🐳 Docker @@ -886,6 +1018,7 @@ Notes: - Quick Tunnel URLs are temporary and change after every restart. - Managed install currently supports Linux, macOS, and Windows on `x64` / `arm64`. +- Docker images bundle system CA roots and pass them to managed `cloudflared`, which avoids TLS trust failures when the tunnel bootstraps inside the container. - Set `CLOUDFLARED_BIN=/absolute/path/to/cloudflared` if you want OmniRoute to use an existing binary instead of downloading one. **Using Docker Compose with Caddy (HTTPS Auto-TLS):** @@ -983,7 +1116,7 @@ When minimized, OmniRoute lives in your system tray with quick actions: | | MiniMax M2.1 | $0.2/1M | 5-hour rolling | Cheapest option | | | Kimi K2.5 (Moonshot API) 🆕 | Pay-per-use | None | Direct Moonshot API access | | | Kimi K2 | $9/mo flat | 10M tokens/mo | Predictable cost | -| **🆓 FREE** | iFlow | **$0** | Unlimited | 5 models unlimited | +| **🆓 FREE** | Qoder | **$0** | Unlimited | 5 models unlimited | | | Qwen | **$0** | Unlimited | 4 models unlimited | | | Kiro | **$0** | Unlimited | Claude Sonnet/Haiku (AWS Builder) | | | LongCat Flash-Lite 🆕 | **$0** (50M tok/day 🔥) | 1 RPS | Largest free quota on Earth | @@ -998,7 +1131,7 @@ When minimized, OmniRoute lives in your system tray with quick actions: ``` # 🆓 Ultimate Free Stack 2026 — 11 Providers, $0 Forever Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -iFlow (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED +Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed Qwen (qw/) → qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next UNLIMITED @@ -1028,7 +1161,7 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day | `claude-haiku-4.5` | `kr/` | **Unlimited** | No reported daily cap | | `claude-opus-4.6` | `kr/` | **Unlimited** | Latest Opus via Kiro | -### 🟢 IFLOW MODELS (Free OAuth — No Credit Card) +### 🟢 QODER MODELS (Free OAuth — No Credit Card) | Model | Prefix | Limit | Rate Limit | | ------------------ | ------ | ------------- | --------------- | @@ -1127,7 +1260,7 @@ Available free: `qwen3-235b-a22b-instruct-2507` (Qwen3 235B!), `llama-3.1-70b-in > > ``` > Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -> iFlow (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED +> Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED > LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 > Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed > Qwen (qw/) → qwen3-coder models UNLIMITED @@ -1279,21 +1412,22 @@ OmniRoute v2.0 is built as an operational platform, not just a relay proxy. ### ☁️ Deployment & Platform -| Feature | What It Does | -| ----------------------------- | --------------------------------------------------------- | -| 🌐 **Deploy Anywhere** | Localhost, VPS, Docker, Cloud environments | -| 🚇 **Cloudflare Tunnel** 🆕 | One-click Quick Tunnel integration from the dashboard | -| 💾 **Cloud Sync** | Configuration sync via cloud worker | -| 🔄 **Backup/Restore** | Export/import and disaster recovery flows | -| 🧙 **Onboarding Wizard** | First-run guided setup | -| 🔧 **CLI Tools Dashboard** | One-click setup for popular coding tools | -| 🎮 **Model Playground** | Test any provider/model/endpoint from the dashboard | -| 🔏 **CLI Fingerprint Toggle** | Per-provider fingerprint matching in Settings > Security | -| 🌐 **i18n (30 languages)** | Full dashboard + docs language support with RTL coverage | -| 🧹 **Clear All Models** | One-click model list clearing in provider details | -| 👁️ **Sidebar Controls** 🆕 | Hide components and integrations from Appearance Settings | -| 📋 **Issue Templates** | Standardized GitHub templates for bugs and features | -| 📂 **Custom Data Directory** | `DATA_DIR` override for storage location | +| Feature | What It Does | +| ------------------------------ | --------------------------------------------------------------------- | +| 🌐 **Deploy Anywhere** | Localhost, VPS, Docker, Cloud environments | +| 🚇 **Cloudflare Tunnel** 🆕 | One-click Quick Tunnel integration from the dashboard | +| 🔑 **API Key Model Filtering** | Native /v1/models response filtered via assigned Bearer context roles | +| ⚡ **Smart Cache Bypass** | Configurable TTL heuristics and forced refetch controls | +| 🔄 **Backup/Restore** | Export/import and disaster recovery flows | +| 🧙 **Onboarding Wizard** | First-run guided setup | +| 🔧 **CLI Tools Dashboard** | One-click setup for popular coding tools | +| 🎮 **Model Playground** | Test any provider/model/endpoint from the dashboard | +| 🔏 **CLI Fingerprint Toggle** | Per-provider fingerprint matching in Settings > Security | +| 🌐 **i18n (30 languages)** | Full dashboard + docs language support with RTL coverage | +| 🧹 **Clear All Models** | One-click model list clearing in provider details | +| 👁️ **Sidebar Controls** 🆕 | Hide components and integrations from Appearance Settings | +| 📋 **Issue Templates** | Standardized GitHub templates for bugs and features | +| 📂 **Custom Data Directory** | `DATA_DIR` override for storage location | ### Feature Deep Dive @@ -1545,6 +1679,8 @@ Models: **Models:** Access 100+ models from all major providers through a single API key. +**Dashboard behavior:** OpenRouter models are managed from **Available Models**. Manual add, import, and auto-sync all update the same list. +
@@ -1587,11 +1723,11 @@ Models:
🆓 FREE Providers (Emergency Backup) -### iFlow (5 FREE models via OAuth) +### Qoder (5 FREE models via OAuth) ```bash -Dashboard → Connect iFlow -→ iFlow OAuth login +Dashboard → Connect Qoder +→ Qoder OAuth login → Unlimited usage Models: @@ -1789,7 +1925,7 @@ opencode - Check usage stats in Dashboard → Costs - Switch primary model to GLM/MiniMax -- Use free tier (Gemini CLI, iFlow) for non-critical tasks +- Use free tier (Gemini CLI, Qoder) for non-critical tasks **Dashboard/API ports are wrong** @@ -1811,7 +1947,9 @@ opencode **No request logs** -- Set `ENABLE_REQUEST_LOGS=true` in `.env` +- Request artifacts are written to `DATA_DIR/call_logs/` as one JSON file per request +- Enable pipeline capture from Dashboard → Logs → Request Logs if you need detailed per-stage payloads +- Set `APP_LOG_TO_FILE=true` if you also want application console logs in `logs/application/app.log` **Connection test shows "Invalid" for OpenAI-compatible providers** diff --git a/docs/i18n/zh-CN/README.md b/docs/i18n/zh-CN/README.md index b4dc36dd0a..07fb07a4f2 100644 --- a/docs/i18n/zh-CN/README.md +++ b/docs/i18n/zh-CN/README.md @@ -4,6 +4,7 @@ --- + ### Never stop coding. Smart routing to **FREE & low-cost AI models** with automatic fallback. _Your universal API proxy — one endpoint, 67+ providers, zero downtime. Now with **MCP & A2A** agent orchestration._ @@ -30,6 +31,30 @@ _Your universal API proxy — one endpoint, 67+ providers, zero downtime. Now wi --- +## Breaking Change: Unified Logging Upgrade + +> [!WARNING] +> **This release changes both the on-disk request log layout and the logging environment variables.** +> +> If you are upgrading an existing instance: +> +> - Request logs now live in `DATA_DIR/call_logs/YYYY-MM-DD/` as **one JSON artifact per request**. +> - The old `DATA_DIR/logs/` session folders and `DATA_DIR/log.txt` summary file are removed. +> - On the first startup after upgrading, OmniRoute creates a safety backup at `DATA_DIR/log_archives/*.zip` before removing the deprecated request log layout. +> - Legacy logging env vars such as `LOG_TO_FILE`, `LOG_FILE_PATH`, `LOG_MAX_FILE_SIZE`, `LOG_RETENTION_DAYS`, `LOG_LEVEL`, `LOG_FORMAT`, `ENABLE_REQUEST_LOGS`, `CALL_LOGS_MAX`, `CALL_LOG_PAYLOAD_MODE`, and `PROXY_LOG_MAX_ENTRIES` are no longer supported. +> - Use the new env model instead: +> - `APP_LOG_TO_FILE` +> - `APP_LOG_FILE_PATH` +> - `APP_LOG_MAX_FILE_SIZE` +> - `APP_LOG_RETENTION_DAYS` +> - `APP_LOG_LEVEL` +> - `APP_LOG_FORMAT` +> - `CALL_LOG_RETENTION_DAYS` +> +> For release details and upgrade notes, see the [CHANGELOG](CHANGELOG.md). + +--- + ## 🆕 What's New in v3.0.0 > **Upgrading from v2.9.5?** — See the [full CHANGELOG](CHANGELOG.md#300--2026-03-22-release-candidate--not-yet-merged-to-main) for all changes. @@ -203,7 +228,7 @@ When opening an issue, please run the system-info command and attach the generat npm run system-info ``` -This generates a `system-info.txt` with your Node.js version, OmniRoute version, OS details, installed CLI tools (iflow, gemini, claude, codex, antigravity, droid, etc.), Docker/PM2 status, and system packages — everything we need to reproduce your issue quickly. Attach the file directly to your GitHub issue. +This generates a `system-info.txt` with your Node.js version, OmniRoute version, OS details, installed CLI tools (qoder, gemini, claude, codex, antigravity, droid, etc.), Docker/PM2 status, and system packages — everything we need to reproduce your issue quickly. Attach the file directly to your GitHub issue. --- @@ -229,7 +254,7 @@ This generates a `system-info.txt` with your Node.js version, OmniRoute version, │ ↓ budget limit ├─→ [Tier 3: CHEAP] GLM ($0.6/1M), MiniMax ($0.2/1M) │ ↓ budget limit - └─→ [Tier 4: FREE] iFlow, Qwen, Kiro (unlimited) + └─→ [Tier 4: FREE] Qoder, Qwen, Kiro (unlimited) Result: Never stop coding, minimal cost ``` @@ -296,7 +321,7 @@ Not everyone can pay $20–200/month for AI subscriptions. Students, devs from e **How OmniRoute solves it:** -- **Free Tier Providers Built-in** — Native support for 100% free providers: iFlow (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) +- **Free Tier Providers Built-in** — Native support for 100% free providers: Qoder (5 unlimited models via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) - **Ollama Cloud** — Cloud-hosted Ollama models at `api.ollama.com` with free "Light usage" tier; use `ollamacloud/` prefix - **Free-Only Combos** — Chain `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime - **NVIDIA NIM Free Access** — ~40 RPM dev-forever free access to 70+ models at build.nvidia.com (transitioning from credits to pure rate limits) @@ -360,7 +385,7 @@ Claude Code, Codex, Gemini CLI, Copilot — all use OAuth 2.0 with expiring toke **How OmniRoute solves it:** - **Auto Token Refresh** — OAuth tokens refresh in background before expiration -- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, iFlow +- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder - **Multi-Account OAuth** — Multiple accounts per provider via JWT/ID token extraction - **OAuth LAN/Remote Fix** — Private IP detection for `redirect_uri` + manual URL mode for remote servers - **OAuth Behind Nginx** — Uses `window.location.origin` for reverse proxy compatibility @@ -413,7 +438,7 @@ Installing, configuring, and maintaining an AI proxy across different environmen - **Electron Desktop App** — Native app for Windows/macOS/Linux with system tray, auto-start, offline mode - **Split-Port Mode** — API and Dashboard on separate ports for advanced scenarios (reverse proxy, container networking) - **Cloud Sync** — Config synchronization across devices via Cloudflare Workers -- **DB Backups** — Automatic backup, restore, export and import of all settings +- **DB Backups** — Automatic backup, restore, export and import of all settings, with `DISABLE_SQLITE_AUTO_BACKUP` for externally managed backups
@@ -737,7 +762,7 @@ Outcome: deep fallback depth for deadline-critical workloads | Step | Action | Providers Unlocked | | ---- | -------------------------------------------------- | ------------------------------------------------------------------ | | 1 | Connect **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — **unlimited** | -| 2 | Connect **iFlow** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | +| 2 | Connect **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | | 3 | Connect **Qwen** (Device Code) | qwen3-coder-plus, qwen3-coder-flash... — **unlimited** | | 4 | Connect **Gemini CLI** (Google OAuth) | gemini-3-flash, gemini-2.5-pro — **180K/mo free** | | 5 | `/dashboard/combos` → **Free Stack ($0)** template | Round-robin all free providers automatically | @@ -838,6 +863,113 @@ npm install PORT=20128 DASHBOARD_PORT=20129 NEXT_PUBLIC_BASE_URL=http://localhost:20129 npm run dev ``` +
+Void Linux (`xbps-src` template) + +For Void Linux users, you can build a native package using `xbps-src`. Save this block as `srcpkgs/omniroute/template`: + +```bash +# Template file for 'omniroute' +pkgname=omniroute +version=3.4.1 +revision=1 +hostmakedepends="nodejs python3 make" +depends="openssl" +short_desc="Universal AI gateway with smart routing for multiple LLM providers" +maintainer="zenobit " +license="MIT" +homepage="https://github.com/diegosouzapw/OmniRoute" +distfiles="https://github.com/diegosouzapw/OmniRoute/archive/refs/tags/v${version}.tar.gz" +checksum=009400afee90a9f32599d8fe734145cfd84098140b7287990183dde45ae2245b +system_accounts="_omniroute" +omniroute_homedir="/var/lib/omniroute" +export NODE_ENV=production +export npm_config_engine_strict=false +export npm_config_loglevel=error +export npm_config_fund=false +export npm_config_audit=false + +do_build() { + # Determine target CPU arch for node-gyp + local _gyp_arch + case "$XBPS_TARGET_MACHINE" in + aarch64*) _gyp_arch=arm64 ;; + armv7*|armv6*) _gyp_arch=arm ;; + i686*) _gyp_arch=ia32 ;; + *) _gyp_arch=x64 ;; + esac + + # 1) Install all deps – skip scripts (no network in do_build, native modules + # compiled separately below; better-sqlite3 is serverExternalPackage so + # Next.js does not execute it during next build) + NODE_ENV=development npm ci --ignore-scripts + + # 2) Build the Next.js standalone bundle + npm run build + + # 3) Copy static assets into standalone + cp -r .next/static .next/standalone/.next/static + [ -d public ] && cp -r public .next/standalone/public || true + + # 4) Compile better-sqlite3 native binding for the target architecture. + # Use node-gyp directly so CC/CXX from xbps-src cross-toolchain are used + # without npm altering them. + local _node_gyp=/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js + (cd node_modules/better-sqlite3 && node "$_node_gyp" rebuild --arch="$_gyp_arch") + + # 5) Place the compiled binding into the standalone bundle + local _bs3_release=.next/standalone/node_modules/better-sqlite3/build/Release + mkdir -p "$_bs3_release" + cp node_modules/better-sqlite3/build/Release/better_sqlite3.node "$_bs3_release/" + + # 6) Remove arch-specific sharp bundles – upstream sets images.unoptimized=true + # so sharp is not used at runtime; x64 .so files would break aarch64 strip + rm -rf .next/standalone/node_modules/@img + + # 7) Copy pino runtime deps omitted by Next.js static analysis: + # pino-abstract-transport – required by pino's worker thread + # split2 – dep of pino-abstract-transport + # process-warning – dep of pino itself + for _mod in pino-abstract-transport split2 process-warning; do + cp -r "node_modules/$_mod" .next/standalone/node_modules/ + done +} + +do_check() { + npm run test:unit +} + +do_install() { + vmkdir usr/lib/omniroute/.next + + vcopy .next/standalone/. usr/lib/omniroute/.next/standalone + + # Prevent removal of empty Next.js app router dirs by the post-install hook + for _d in \ + .next/standalone/.next/server/app/dashboard \ + .next/standalone/.next/server/app/dashboard/settings \ + .next/standalone/.next/server/app/dashboard/providers; do + touch "${DESTDIR}/usr/lib/omniroute/${_d}/.keep" + done + + cat > "${WRKDIR}/omniroute" <<'EOF' +#!/bin/sh +export PORT="${PORT:-20128}" +export DATA_DIR="${DATA_DIR:-${XDG_DATA_HOME:-${HOME}/.local/share}/omniroute}" +export LOG_TO_FILE="${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 +} +``` + +
+ --- ## 🐳 Docker @@ -886,6 +1018,7 @@ Notes: - Quick Tunnel URLs are temporary and change after every restart. - Managed install currently supports Linux, macOS, and Windows on `x64` / `arm64`. +- Docker images bundle system CA roots and pass them to managed `cloudflared`, which avoids TLS trust failures when the tunnel bootstraps inside the container. - Set `CLOUDFLARED_BIN=/absolute/path/to/cloudflared` if you want OmniRoute to use an existing binary instead of downloading one. **Using Docker Compose with Caddy (HTTPS Auto-TLS):** @@ -983,7 +1116,7 @@ When minimized, OmniRoute lives in your system tray with quick actions: | | MiniMax M2.1 | $0.2/1M | 5-hour rolling | Cheapest option | | | Kimi K2.5 (Moonshot API) 🆕 | Pay-per-use | None | Direct Moonshot API access | | | Kimi K2 | $9/mo flat | 10M tokens/mo | Predictable cost | -| **🆓 FREE** | iFlow | **$0** | Unlimited | 5 models unlimited | +| **🆓 FREE** | Qoder | **$0** | Unlimited | 5 models unlimited | | | Qwen | **$0** | Unlimited | 4 models unlimited | | | Kiro | **$0** | Unlimited | Claude Sonnet/Haiku (AWS Builder) | | | LongCat Flash-Lite 🆕 | **$0** (50M tok/day 🔥) | 1 RPS | Largest free quota on Earth | @@ -998,7 +1131,7 @@ When minimized, OmniRoute lives in your system tray with quick actions: ``` # 🆓 Ultimate Free Stack 2026 — 11 Providers, $0 Forever Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -iFlow (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED +Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed Qwen (qw/) → qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next UNLIMITED @@ -1028,7 +1161,7 @@ Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day | `claude-haiku-4.5` | `kr/` | **Unlimited** | No reported daily cap | | `claude-opus-4.6` | `kr/` | **Unlimited** | Latest Opus via Kiro | -### 🟢 IFLOW MODELS (Free OAuth — No Credit Card) +### 🟢 QODER MODELS (Free OAuth — No Credit Card) | Model | Prefix | Limit | Rate Limit | | ------------------ | ------ | ------------- | --------------- | @@ -1127,7 +1260,7 @@ Available free: `qwen3-235b-a22b-instruct-2507` (Qwen3 235B!), `llama-3.1-70b-in > > ``` > Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -> iFlow (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED +> Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED > LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 > Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed > Qwen (qw/) → qwen3-coder models UNLIMITED @@ -1279,21 +1412,22 @@ OmniRoute v2.0 is built as an operational platform, not just a relay proxy. ### ☁️ Deployment & Platform -| Feature | What It Does | -| ----------------------------- | --------------------------------------------------------- | -| 🌐 **Deploy Anywhere** | Localhost, VPS, Docker, Cloud environments | -| 🚇 **Cloudflare Tunnel** 🆕 | One-click Quick Tunnel integration from the dashboard | -| 💾 **Cloud Sync** | Configuration sync via cloud worker | -| 🔄 **Backup/Restore** | Export/import and disaster recovery flows | -| 🧙 **Onboarding Wizard** | First-run guided setup | -| 🔧 **CLI Tools Dashboard** | One-click setup for popular coding tools | -| 🎮 **Model Playground** | Test any provider/model/endpoint from the dashboard | -| 🔏 **CLI Fingerprint Toggle** | Per-provider fingerprint matching in Settings > Security | -| 🌐 **i18n (30 languages)** | Full dashboard + docs language support with RTL coverage | -| 🧹 **Clear All Models** | One-click model list clearing in provider details | -| 👁️ **Sidebar Controls** 🆕 | Hide components and integrations from Appearance Settings | -| 📋 **Issue Templates** | Standardized GitHub templates for bugs and features | -| 📂 **Custom Data Directory** | `DATA_DIR` override for storage location | +| Feature | What It Does | +| ------------------------------ | --------------------------------------------------------------------- | +| 🌐 **Deploy Anywhere** | Localhost, VPS, Docker, Cloud environments | +| 🚇 **Cloudflare Tunnel** 🆕 | One-click Quick Tunnel integration from the dashboard | +| 🔑 **API Key Model Filtering** | Native /v1/models response filtered via assigned Bearer context roles | +| ⚡ **Smart Cache Bypass** | Configurable TTL heuristics and forced refetch controls | +| 🔄 **Backup/Restore** | Export/import and disaster recovery flows | +| 🧙 **Onboarding Wizard** | First-run guided setup | +| 🔧 **CLI Tools Dashboard** | One-click setup for popular coding tools | +| 🎮 **Model Playground** | Test any provider/model/endpoint from the dashboard | +| 🔏 **CLI Fingerprint Toggle** | Per-provider fingerprint matching in Settings > Security | +| 🌐 **i18n (30 languages)** | Full dashboard + docs language support with RTL coverage | +| 🧹 **Clear All Models** | One-click model list clearing in provider details | +| 👁️ **Sidebar Controls** 🆕 | Hide components and integrations from Appearance Settings | +| 📋 **Issue Templates** | Standardized GitHub templates for bugs and features | +| 📂 **Custom Data Directory** | `DATA_DIR` override for storage location | ### Feature Deep Dive @@ -1545,6 +1679,8 @@ Models: **Models:** Access 100+ models from all major providers through a single API key. +**Dashboard behavior:** OpenRouter models are managed from **Available Models**. Manual add, import, and auto-sync all update the same list. +
@@ -1587,11 +1723,11 @@ Models:
🆓 FREE Providers (Emergency Backup) -### iFlow (5 FREE models via OAuth) +### Qoder (5 FREE models via OAuth) ```bash -Dashboard → Connect iFlow -→ iFlow OAuth login +Dashboard → Connect Qoder +→ Qoder OAuth login → Unlimited usage Models: @@ -1789,7 +1925,7 @@ opencode - Check usage stats in Dashboard → Costs - Switch primary model to GLM/MiniMax -- Use free tier (Gemini CLI, iFlow) for non-critical tasks +- Use free tier (Gemini CLI, Qoder) for non-critical tasks **Dashboard/API ports are wrong** @@ -1811,7 +1947,9 @@ opencode **No request logs** -- Set `ENABLE_REQUEST_LOGS=true` in `.env` +- Request artifacts are written to `DATA_DIR/call_logs/` as one JSON file per request +- Enable pipeline capture from Dashboard → Logs → Request Logs if you need detailed per-stage payloads +- Set `APP_LOG_TO_FILE=true` if you also want application console logs in `logs/application/app.log` **Connection test shows "Invalid" for OpenAI-compatible providers** diff --git a/src/lib/apiBridgeServer.ts b/src/lib/apiBridgeServer.ts index e8b7782ff4..d14bdada2e 100644 --- a/src/lib/apiBridgeServer.ts +++ b/src/lib/apiBridgeServer.ts @@ -26,6 +26,8 @@ const OPENAI_COMPAT_PATHS = [ /^\/responses(?:\?|$)/, /^\/models(?:\?|$)/, /^\/codex(?:\/|\?|$)/, + /^\/api\/oauth(?:\/|$)/, + /^\/callback(?:\?|$)/, ]; function isOpenAiCompatiblePath(pathname: string): boolean { diff --git a/src/shared/utils/apiAuth.ts b/src/shared/utils/apiAuth.ts index ffeb6a638e..195d3ecd18 100644 --- a/src/shared/utils/apiAuth.ts +++ b/src/shared/utils/apiAuth.ts @@ -149,8 +149,13 @@ export async function isAuthRequired(): Promise { // reset-password CLI tool (bin/reset-password.mjs). if (!settings.password && !process.env.INITIAL_PASSWORD) return false; return true; - } catch { + } catch (error: any) { // On error, require auth (secure by default) + // Log the error so failures (e.g., SQLITE_BUSY) aren't silent 401s + console.error( + "[API_AUTH_GUARD] isAuthRequired failed, defaulting to true:", + error?.message || error + ); return true; } } From 597a0f21e043569035d149c688729c5be1721988 Mon Sep 17 00:00:00 2001 From: diegosouzapw Date: Tue, 31 Mar 2026 16:14:47 -0300 Subject: [PATCH 2/5] chore: rollback to 3.4.1, add env migration script, restore debug menu, and consolidate orphaned a2a/mcp routes --- CHANGELOG.md | 5 + docs/openapi.yaml | 2 +- electron/package.json | 2 +- open-sse/executors/antigravity.ts | 25 +- open-sse/executors/kiro.ts | 16 ++ open-sse/package.json | 2 +- open-sse/translator/request/openai-to-kiro.ts | 16 +- package-lock.json | 12 +- package.json | 6 +- scripts/migrate-env.mjs | 67 +++++ scripts/native-binary-compat.mjs | 6 +- .../(dashboard)/dashboard/audit-log/page.tsx | 237 ------------------ .../components/A2ADashboard.tsx} | 0 .../components/MCPDashboard.tsx} | 0 .../(dashboard)/dashboard/endpoint/page.tsx | 4 +- .../(dashboard)/dashboard/profile/page.tsx | 5 - src/app/(dashboard)/dashboard/usage/page.tsx | 28 --- src/shared/constants/sidebarVisibility.ts | 2 + src/shared/services/cliRuntime.ts | 26 +- 19 files changed, 157 insertions(+), 304 deletions(-) create mode 100755 scripts/migrate-env.mjs delete mode 100644 src/app/(dashboard)/dashboard/audit-log/page.tsx rename src/app/(dashboard)/dashboard/{a2a/page.tsx => endpoint/components/A2ADashboard.tsx} (100%) rename src/app/(dashboard)/dashboard/{mcp/page.tsx => endpoint/components/MCPDashboard.tsx} (100%) delete mode 100644 src/app/(dashboard)/dashboard/profile/page.tsx delete mode 100644 src/app/(dashboard)/dashboard/usage/page.tsx diff --git a/CHANGELOG.md b/CHANGELOG.md index 242f19b837..dc94a5950d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,12 +2,17 @@ ## [Unreleased] +## [3.4.1] - 2026-03-31 + > [!WARNING] > **BREAKING CHANGE: request logging, retention, and logging environment variables have been redesigned.** > On the first startup after upgrading, OmniRoute archives legacy request logs from `DATA_DIR/logs/`, legacy `DATA_DIR/call_logs/`, and `DATA_DIR/log.txt` into `DATA_DIR/log_archives/*.zip`, then removes the deprecated layout and switches to the new unified artifact format under `DATA_DIR/call_logs/`. ### ✨ New Features +- **.ENV Migration Utility:** Included `scripts/migrate-env.mjs` to seamlessly migrate ` 0 || outputTokens > 0) { state.usage = { prompt_tokens: inputTokens, completion_tokens: outputTokens, total_tokens: inputTokens + outputTokens, + ...(cacheReadTokens > 0 && { cache_read_input_tokens: cacheReadTokens }), + ...(cacheCreationTokens > 0 && { + cache_creation_input_tokens: cacheCreationTokens, + }), }; } } diff --git a/open-sse/package.json b/open-sse/package.json index d1af6b587f..e211c738ce 100644 --- a/open-sse/package.json +++ b/open-sse/package.json @@ -1,6 +1,6 @@ { "name": "@omniroute/open-sse", - "version": "3.3.11", + "version": "3.4.1", "description": "Express SSE sidecar for OmniRoute — handles streaming, protocol translation, and provider orchestration", "type": "module", "main": "index.js", diff --git a/open-sse/translator/request/openai-to-kiro.ts b/open-sse/translator/request/openai-to-kiro.ts index 626c77a7c6..ba36a5d2ce 100644 --- a/open-sse/translator/request/openai-to-kiro.ts +++ b/open-sse/translator/request/openai-to-kiro.ts @@ -287,7 +287,7 @@ export function buildKiroPayload(model, body, stream, credentials) { } = { conversationState: { chatTriggerType: "MANUAL", - conversationId: uuidv4(), + conversationId: uuidv4(), // We must override this with deterministic ID currentMessage: { userInputMessage: { content: finalContent, @@ -302,6 +302,20 @@ export function buildKiroPayload(model, body, stream, credentials) { }, }; + // Determistic session caching for Kiro + const NAMESPACE_KIRO = "34f7193f-561d-4050-bc84-9547d953d6bf"; + const firstContent = + history.length > 0 && history[0].userInputMessage?.content + ? history[0].userInputMessage.content + : finalContent; + + // Use uuidv5 with the hash of the system prompt / first message to maintain AWS Builder ID context cache + const { v5: uuidv5 } = require("uuid"); + payload.conversationState.conversationId = uuidv5( + (firstContent || "").substring(0, 4000), + NAMESPACE_KIRO + ); + if (profileArn) { payload.profileArn = profileArn; } diff --git a/package-lock.json b/package-lock.json index c884d26fcb..5fdb8f5a09 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "omniroute", - "version": "3.4.0", + "version": "3.4.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "omniroute", - "version": "3.4.0", + "version": "3.4.1", "hasInstallScript": true, "license": "MIT", "workspaces": [ @@ -26,7 +26,6 @@ "http-proxy-middleware": "^3.0.5", "https-proxy-agent": "^8.0.0", "jose": "^6.1.3", - "keytar": "^7.9.0", "lowdb": "^7.0.1", "monaco-editor": "^0.55.1", "next": "^16.0.10", @@ -77,6 +76,9 @@ }, "engines": { "node": ">=18.0.0 <24.0.0" + }, + "optionalDependencies": { + "keytar": "^7.9.0" } }, "node_modules/@alloc/quick-lru": { @@ -12613,6 +12615,7 @@ "integrity": "sha512-VPD8mtVtm5JNtA2AErl6Chp06JBfy7diFQ7TQQhdpWOl6MrCRB+eRbvAZUsbGQS9kiMq0coJsy0W0vHpDCkWsQ==", "hasInstallScript": true, "license": "MIT", + "optional": true, "dependencies": { "node-addon-api": "^4.3.0", "prebuild-install": "^7.0.1" @@ -12622,7 +12625,8 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.3.0.tgz", "integrity": "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==", - "license": "MIT" + "license": "MIT", + "optional": true }, "node_modules/keyv": { "version": "4.5.4", diff --git a/package.json b/package.json index a67370006b..3a2bf902ea 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "omniroute", - "version": "3.4.0", + "version": "3.4.1", "description": "Smart AI Router with auto fallback — route to FREE & cheap models, zero downtime. Works with Cursor, Cline, Claude Desktop, Codex, and any OpenAI-compatible tool.", "type": "module", "bin": { @@ -97,7 +97,6 @@ "http-proxy-middleware": "^3.0.5", "https-proxy-agent": "^8.0.0", "jose": "^6.1.3", - "keytar": "^7.9.0", "lowdb": "^7.0.1", "monaco-editor": "^0.55.1", "next": "^16.0.10", @@ -119,6 +118,9 @@ "zod": "^4.3.6", "zustand": "^5.0.10" }, + "optionalDependencies": { + "keytar": "^7.9.0" + }, "devDependencies": { "@playwright/test": "^1.58.2", "@tailwindcss/postcss": "^4.1.18", diff --git a/scripts/migrate-env.mjs b/scripts/migrate-env.mjs new file mode 100755 index 0000000000..f6ac0c34aa --- /dev/null +++ b/scripts/migrate-env.mjs @@ -0,0 +1,67 @@ +#!/usr/bin/env node + +/** + * OmniRoute v3.3 -> v3.4 Environment Migration Script + * Resolves breaking changes in environment variables format and validation. + */ + +import fs from "fs"; +import path from "path"; +import crypto from "crypto"; + +const envPath = path.resolve(process.cwd(), ".env"); + +if (!fs.existsSync(envPath)) { + console.log("No .env file found. Migration skipped."); + process.exit(0); +} + +let content = fs.readFileSync(envPath, "utf8"); +let modified = false; + +// 1. Migrate NEXTAUTH_SECRET to JWT_SECRET if missing +const nextAuthMatch = content.match(/^NEXTAUTH_SECRET=(.+)$/m); +const jwtMatch = content.match(/^JWT_SECRET=(.+)$/m); + +if (nextAuthMatch && !jwtMatch) { + console.log("Migrating NEXTAUTH_SECRET to JWT_SECRET..."); + let newJwt = nextAuthMatch[1].trim(); + + // Enforce 32 char minimum for secretsValidator.ts + if (newJwt.length < 32) { + console.warn( + `Original NEXTAUTH_SECRET was too short (${newJwt.length} chars). Generating a secure one...` + ); + newJwt = crypto.randomBytes(48).toString("base64"); + } + + content += `\n# Migrated from NEXTAUTH_SECRET\nJWT_SECRET=${newJwt}\n`; + modified = true; +} else if (jwtMatch && jwtMatch[1].trim().length < 32) { + console.warn( + `JWT_SECRET is too short (${jwtMatch[1].trim().length} chars). Generating a secure one for v3.4.0+...` + ); + const newJwt = crypto.randomBytes(48).toString("base64"); + content = content.replace(/^JWT_SECRET=(.*)$/m, `JWT_SECRET=${newJwt}`); + modified = true; +} + +// 2. Ensure API_KEY_SECRET exists (required in 3.4.0) +if (!content.match(/^API_KEY_SECRET=/m)) { + console.log("Adding required API_KEY_SECRET for v3.4.0..."); + const newApiSecret = crypto.randomBytes(32).toString("hex"); + content += `\n# Required for v3.4.0 API Key HMAC\nAPI_KEY_SECRET=${newApiSecret}\n`; + modified = true; +} + +if (modified) { + // Backup old .env + fs.writeFileSync(envPath + ".bak", fs.readFileSync(envPath)); + console.log("Created backup at .env.bak"); + + // Write new .env + fs.writeFileSync(envPath, content, "utf8"); + console.log("Successfully migrated .env file for OmniRoute 3.4.x."); +} else { + console.log(".env file is already compatible with OmniRoute 3.4.x."); +} diff --git a/scripts/native-binary-compat.mjs b/scripts/native-binary-compat.mjs index 1b5ab353e7..4e3217edd6 100644 --- a/scripts/native-binary-compat.mjs +++ b/scripts/native-binary-compat.mjs @@ -146,7 +146,11 @@ export function isNativeBinaryCompatible( const target = readNativeBinaryTarget(binaryPath); if (target) { - if (target.platform !== runtimePlatform || !target.architectures.includes(runtimeArch)) { + if ( + (target.platform !== runtimePlatform && + !(target.platform === "linux" && runtimePlatform === "android")) || + !target.architectures.includes(runtimeArch) + ) { return false; } } else if (runtimePlatform !== PUBLISHED_BUILD_PLATFORM || runtimeArch !== PUBLISHED_BUILD_ARCH) { diff --git a/src/app/(dashboard)/dashboard/audit-log/page.tsx b/src/app/(dashboard)/dashboard/audit-log/page.tsx deleted file mode 100644 index b0f4c4dcef..0000000000 --- a/src/app/(dashboard)/dashboard/audit-log/page.tsx +++ /dev/null @@ -1,237 +0,0 @@ -"use client"; - -/** - * Audit Log Viewer — P-2 - * - * Dashboard page for viewing administrative audit log entries. - * Fetches from /api/compliance/audit-log with filter support. - */ - -import { useState, useEffect, useCallback } from "react"; -import { useTranslations } from "next-intl"; - -interface AuditEntry { - id: number; - timestamp: string; - action: string; - actor: string; - target: string | null; - details: any; - ip_address: string | null; -} - -const PAGE_SIZE = 25; - -export default function AuditLogPage() { - const t = useTranslations("auditLog"); - const tc = useTranslations("common"); - const [entries, setEntries] = useState([]); - const [loading, setLoading] = useState(true); - const [error, setError] = useState(null); - const [actionFilter, setActionFilter] = useState(""); - const [actorFilter, setActorFilter] = useState(""); - const [offset, setOffset] = useState(0); - const [hasMore, setHasMore] = useState(false); - - const fetchEntries = useCallback(async () => { - setLoading(true); - setError(null); - try { - const params = new URLSearchParams(); - if (actionFilter) params.set("action", actionFilter); - if (actorFilter) params.set("actor", actorFilter); - params.set("limit", String(PAGE_SIZE + 1)); - params.set("offset", String(offset)); - - const res = await fetch(`/api/compliance/audit-log?${params.toString()}`); - if (!res.ok) throw new Error(`HTTP ${res.status}`); - const data: AuditEntry[] = await res.json(); - - setHasMore(data.length > PAGE_SIZE); - setEntries(data.slice(0, PAGE_SIZE)); - } catch (err: any) { - setError(err.message || t("failedFetchAuditLog")); - } finally { - setLoading(false); - } - }, [actionFilter, actorFilter, offset, t]); - - useEffect(() => { - fetchEntries(); - }, [fetchEntries]); - - const handleSearch = () => { - setOffset(0); - fetchEntries(); - }; - - const formatTimestamp = (ts: string) => { - try { - return new Date(ts).toLocaleString(); - } catch { - return ts; - } - }; - - const actionBadgeColor = (action: string) => { - if (action.includes("delete") || action.includes("remove")) - return "bg-red-500/15 text-red-400 border-red-500/20"; - if (action.includes("create") || action.includes("add")) - return "bg-green-500/15 text-green-400 border-green-500/20"; - if (action.includes("update") || action.includes("change")) - return "bg-blue-500/15 text-blue-400 border-blue-500/20"; - if (action.includes("login") || action.includes("auth")) - return "bg-purple-500/15 text-purple-400 border-purple-500/20"; - return "bg-gray-500/15 text-gray-400 border-gray-500/20"; - }; - - return ( -
- {/* Header */} -
-
-

{t("title")}

-

{t("description")}

-
- -
- - {/* Filters */} -
- setActionFilter(e.target.value)} - onKeyDown={(e) => e.key === "Enter" && handleSearch()} - aria-label={t("filterByActionTypeAria")} - className="flex-1 min-w-[180px] px-3 py-2 rounded-lg text-sm bg-[var(--color-bg)] border border-[var(--color-border)] text-[var(--color-text-main)] placeholder:text-[var(--color-text-muted)] focus:outline-2 focus:outline-[var(--color-accent)]" - /> - setActorFilter(e.target.value)} - onKeyDown={(e) => e.key === "Enter" && handleSearch()} - aria-label={t("filterByActorAria")} - className="flex-1 min-w-[180px] px-3 py-2 rounded-lg text-sm bg-[var(--color-bg)] border border-[var(--color-border)] text-[var(--color-text-main)] placeholder:text-[var(--color-text-muted)] focus:outline-2 focus:outline-[var(--color-accent)]" - /> - -
- - {/* Error */} - {error && ( -
- {error} -
- )} - - {/* Table */} -
- - - - - - - - - - - - - {entries.length === 0 && !loading ? ( - - - - ) : ( - entries.map((entry) => ( - - - - - - - - - )) - )} - -
- {t("timestamp")} - - {t("action")} - - {t("actor")} - - {t("target")} - - {tc("details")} - - {t("ipAddress")} -
- {t("noEntries")} -
- {formatTimestamp(entry.timestamp)} - - - {entry.action} - - {entry.actor} - {entry.target || t("notAvailable")} - - {entry.details ? JSON.stringify(entry.details) : t("notAvailable")} - - {entry.ip_address || t("notAvailable")} -
-
- - {/* Pagination */} -
-

- {t("showing", { count: entries.length, offset })} -

-
- - -
-
-
- ); -} diff --git a/src/app/(dashboard)/dashboard/a2a/page.tsx b/src/app/(dashboard)/dashboard/endpoint/components/A2ADashboard.tsx similarity index 100% rename from src/app/(dashboard)/dashboard/a2a/page.tsx rename to src/app/(dashboard)/dashboard/endpoint/components/A2ADashboard.tsx diff --git a/src/app/(dashboard)/dashboard/mcp/page.tsx b/src/app/(dashboard)/dashboard/endpoint/components/MCPDashboard.tsx similarity index 100% rename from src/app/(dashboard)/dashboard/mcp/page.tsx rename to src/app/(dashboard)/dashboard/endpoint/components/MCPDashboard.tsx diff --git a/src/app/(dashboard)/dashboard/endpoint/page.tsx b/src/app/(dashboard)/dashboard/endpoint/page.tsx index d8277b31d7..fb97242642 100644 --- a/src/app/(dashboard)/dashboard/endpoint/page.tsx +++ b/src/app/(dashboard)/dashboard/endpoint/page.tsx @@ -3,8 +3,8 @@ import { useState, useEffect, useCallback } from "react"; import { SegmentedControl } from "@/shared/components"; import EndpointPageClient from "./EndpointPageClient"; -import McpDashboardPage from "../mcp/page"; -import A2ADashboardPage from "../a2a/page"; +import McpDashboardPage from "./components/MCPDashboard"; +import A2ADashboardPage from "./components/A2ADashboard"; import ApiEndpointsTab from "./ApiEndpointsTab"; import { useTranslations } from "next-intl"; import { copyToClipboard } from "@/shared/utils/clipboard"; diff --git a/src/app/(dashboard)/dashboard/profile/page.tsx b/src/app/(dashboard)/dashboard/profile/page.tsx deleted file mode 100644 index ea8b62cdf5..0000000000 --- a/src/app/(dashboard)/dashboard/profile/page.tsx +++ /dev/null @@ -1,5 +0,0 @@ -import { redirect } from "next/navigation"; - -export default function ProfilePage() { - redirect("/dashboard/settings"); -} diff --git a/src/app/(dashboard)/dashboard/usage/page.tsx b/src/app/(dashboard)/dashboard/usage/page.tsx deleted file mode 100644 index 51626bdc8c..0000000000 --- a/src/app/(dashboard)/dashboard/usage/page.tsx +++ /dev/null @@ -1,28 +0,0 @@ -"use client"; - -import { useTranslations } from "next-intl"; - -import { useState } from "react"; -import { RequestLoggerV2, ProxyLogger, SegmentedControl } from "@/shared/components"; - -export default function UsagePage() { - const t = useTranslations("usage"); - const [activeTab, setActiveTab] = useState("logs"); - - return ( -
- - - {/* Content */} - {activeTab === "logs" && } - {activeTab === "proxy-logs" && } -
- ); -} diff --git a/src/shared/constants/sidebarVisibility.ts b/src/shared/constants/sidebarVisibility.ts index b3dd15904f..1b31878424 100644 --- a/src/shared/constants/sidebarVisibility.ts +++ b/src/shared/constants/sidebarVisibility.ts @@ -4,6 +4,7 @@ export const HIDEABLE_SIDEBAR_ITEM_IDS = [ "api-manager", "providers", "combos", + "auto-combo", "costs", "analytics", "limits", @@ -49,6 +50,7 @@ const PRIMARY_SIDEBAR_ITEMS: readonly SidebarItemDefinition[] = [ { id: "api-manager", href: "/dashboard/api-manager", i18nKey: "apiManager", icon: "vpn_key" }, { id: "providers", href: "/dashboard/providers", i18nKey: "providers", icon: "dns" }, { id: "combos", href: "/dashboard/combos", i18nKey: "combos", icon: "layers" }, + { id: "auto-combo", href: "/dashboard/auto-combo", i18nKey: "autoCombo", icon: "auto_awesome" }, { id: "costs", href: "/dashboard/costs", i18nKey: "costs", icon: "account_balance_wallet" }, { id: "analytics", href: "/dashboard/analytics", i18nKey: "analytics", icon: "analytics" }, { id: "limits", href: "/dashboard/limits", i18nKey: "limits", icon: "tune" }, diff --git a/src/shared/services/cliRuntime.ts b/src/shared/services/cliRuntime.ts index 8127ce29a2..784887f34d 100644 --- a/src/shared/services/cliRuntime.ts +++ b/src/shared/services/cliRuntime.ts @@ -525,34 +525,20 @@ const locateCommand = async (command: string, env: Record normalizeMsys2Path(line.trim())) - .filter(Boolean); - - // Issue #809: Prioritize executable wrappers (.cmd, .exe, .bat) over extensionless bash scripts - // that NPM often drops alongside the wrappers in global installs. - const first = lines.find((line) => /\.(cmd|exe|bat)$/i.test(line)) || lines[0] || null; - - return { installed: !!first, commandPath: first, reason: first ? null : "not_found" }; + return { installed: false, commandPath: null, reason: "not_found" }; } const located = await runProcess("sh", ["-c", 'command -v -- "$1"', "sh", command], { env, timeoutMs: 3000, }); - if (!located.ok || !located.stdout) { - return { installed: false, commandPath: null, reason: "not_found" }; + if (located.ok && located.stdout) { + return { installed: true, commandPath: command, reason: null }; } - const first = - located.stdout - .split(/\r?\n/) - .map((line) => normalizeMsys2Path(line.trim())) - .find(Boolean) || null; - return { installed: !!first, commandPath: first, reason: first ? null : "not_found" }; + return { installed: false, commandPath: null, reason: "not_found" }; }; /** From b38351a47000a31b087387a0fcc6dcea7384d610 Mon Sep 17 00:00:00 2001 From: diegosouzapw Date: Tue, 31 Mar 2026 18:39:25 -0300 Subject: [PATCH 3/5] fix(core): v3.4.1 stabilization (QWEN OAuth, ZAI null content, Codex payload, NIM 404) --- CHANGELOG.md | 4 ++++ open-sse/config/audioRegistry.ts | 4 ++-- open-sse/handlers/responseTranslator.ts | 11 +++++++---- open-sse/handlers/sseParser.ts | 10 +++++++--- open-sse/services/tokenRefresh.ts | 2 +- src/lib/oauth/providers/qwen.ts | 2 +- 6 files changed, 22 insertions(+), 11 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index dc94a5950d..6d1a354407 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -26,6 +26,10 @@ - **Provider Quota & Token Parsing:** Switched Antigravity limits to use `retrieveUserQuota` natively and correctly mapped Claude token refresh payloads to URL-encoded forms (#862) - **Rate-Limiting Stability:** Universalized the 429 Retry-After parsing architecture to cap provider-induced cooldowns at 24 hours max (#862) - **Dashboard Limit Rendering:** Re-architected `/dashboard/limits` quota mapping to render immediately inside chunks, fixing a major UI freezing delay on accounts exceeding 70 active connections (#784) +- **QWEN OAuth Authorization:** Mapped the OIDC `id_token` as the primary API Bearer token for Dashscope requests, fixing immediate 401 Unauthorized errors after connecting accounts or refreshing tokens (#864) +- **ZAI API Stability:** Hardened Server-Sent Events compiler to gracefully fallback to empty strings when DeepSeek providers stream mathematically null content during reasoning phases (#871) +- **Claude Code/Codex Translations:** Protected non-streaming payload conversions against empty responses from upstream Codex tools, avoiding catastrophic TypeErrors (#866) +- **NVIDIA NIM Rendering:** Conditionally stripped identical provider prefixes dynamically pushed by audio models, eliminating duplicate `nim/nim` tag structures throwing 404 on the Media Playground (#872) ### ⚠️ Breaking Changes diff --git a/open-sse/config/audioRegistry.ts b/open-sse/config/audioRegistry.ts index 906bec7100..d95c1483c2 100644 --- a/open-sse/config/audioRegistry.ts +++ b/open-sse/config/audioRegistry.ts @@ -341,7 +341,7 @@ export function getAllAudioModels() { for (const [providerId, config] of Object.entries(AUDIO_TRANSCRIPTION_PROVIDERS)) { for (const model of config.models) { models.push({ - id: `${providerId}/${model.id}`, + id: model.id.startsWith(`${providerId}/`) ? model.id : `${providerId}/${model.id}`, name: model.name, provider: providerId, subtype: "transcription", @@ -352,7 +352,7 @@ export function getAllAudioModels() { for (const [providerId, config] of Object.entries(AUDIO_SPEECH_PROVIDERS)) { for (const model of config.models) { models.push({ - id: `${providerId}/${model.id}`, + id: model.id.startsWith(`${providerId}/`) ? model.id : `${providerId}/${model.id}`, name: model.name, provider: providerId, subtype: "speech", diff --git a/open-sse/handlers/responseTranslator.ts b/open-sse/handlers/responseTranslator.ts index ecb78bbb72..ef2fe7d3df 100644 --- a/open-sse/handlers/responseTranslator.ts +++ b/open-sse/handlers/responseTranslator.ts @@ -402,11 +402,14 @@ export function translateNonStreamingResponse( * Helper to convert an OpenAI chat.completion JSON object to Claude format for non-streaming. */ function convertOpenAINonStreamingToClaude(openaiResponse: JsonRecord): JsonRecord { - const choice = Array.isArray(openaiResponse.choices) ? openaiResponse.choices[0] : null; - if (!choice) return openaiResponse; // If it doesn't look like OpenAI, return as-is + const isChoicesArray = Array.isArray(openaiResponse.choices); + if (!isChoicesArray && openaiResponse.object !== "chat.completion") { + return openaiResponse; // If it doesn't look like OpenAI, return as-is + } - const choiceObj = toRecord(choice); - const messageObj = toRecord(choiceObj.message); + const choice = isChoicesArray ? openaiResponse.choices[0] : null; + const choiceObj = choice ? toRecord(choice) : {}; + const messageObj = choiceObj.message ? toRecord(choiceObj.message) : {}; const content: JsonRecord[] = []; diff --git a/open-sse/handlers/sseParser.ts b/open-sse/handlers/sseParser.ts index aa579010bc..39758d409e 100644 --- a/open-sse/handlers/sseParser.ts +++ b/open-sse/handlers/sseParser.ts @@ -53,7 +53,11 @@ export function parseSSEToOpenAIResponse(rawSSE, fallbackModel) { reasoningParts.push(delta.reasoning_content); } // Normalize `reasoning` alias (NVIDIA kimi-k2.5 etc.) - if (typeof delta.reasoning === "string" && delta.reasoning.length > 0 && !delta.reasoning_content) { + if ( + typeof delta.reasoning === "string" && + delta.reasoning.length > 0 && + !delta.reasoning_content + ) { reasoningParts.push(delta.reasoning); } @@ -98,11 +102,11 @@ export function parseSSEToOpenAIResponse(rawSSE, fallbackModel) { } } - const joinedContent = contentParts.length > 0 ? contentParts.join("").trim() : null; + const joinedContent = contentParts.length > 0 ? contentParts.join("").trim() : ""; const joinedReasoning = reasoningParts.length > 0 ? reasoningParts.join("").trim() : null; const message: Record = { role: "assistant", - content: joinedContent || null, + content: joinedContent, }; if (joinedReasoning) { message.reasoning_content = joinedReasoning; diff --git a/open-sse/services/tokenRefresh.ts b/open-sse/services/tokenRefresh.ts index cb2f020e14..c661326cb4 100644 --- a/open-sse/services/tokenRefresh.ts +++ b/open-sse/services/tokenRefresh.ts @@ -324,7 +324,7 @@ export async function refreshQwenToken(refreshToken, log) { }); return { - accessToken: tokens.access_token, + accessToken: tokens.id_token || tokens.access_token, refreshToken: tokens.refresh_token || refreshToken, expiresIn: tokens.expires_in, }; diff --git a/src/lib/oauth/providers/qwen.ts b/src/lib/oauth/providers/qwen.ts index 0a31c09212..a400bdb2cb 100644 --- a/src/lib/oauth/providers/qwen.ts +++ b/src/lib/oauth/providers/qwen.ts @@ -60,7 +60,7 @@ export const qwen = { } return { - accessToken: tokens.access_token, + accessToken: tokens.id_token || tokens.access_token, refreshToken: tokens.refresh_token, expiresIn: tokens.expires_in, idToken: tokens.id_token, From 30558764ba7ee8ad3662a3c8181f76a4dc6cd17e Mon Sep 17 00:00:00 2001 From: diegosouzapw Date: Tue, 31 Mar 2026 19:16:44 -0300 Subject: [PATCH 4/5] chore(release): bump v3.4.1 and fix integration paths --- docs/openapi.yaml | 2 +- package-lock.json | 4 ++-- package.json | 2 +- tests/integration/integration-wiring.test.mjs | 8 ++++---- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/openapi.yaml b/docs/openapi.yaml index 3e3003e693..2239fc898b 100644 --- a/docs/openapi.yaml +++ b/docs/openapi.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: title: OmniRoute API - version: 3.3.11 + version: 3.4.1 description: | OmniRoute is a local-first AI API proxy router. It provides an OpenAI-compatible endpoint that routes requests to multiple AI providers with load balancing, diff --git a/package-lock.json b/package-lock.json index c884d26fcb..74af804f7a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "omniroute", - "version": "3.4.0", + "version": "3.4.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "omniroute", - "version": "3.4.0", + "version": "3.4.1", "hasInstallScript": true, "license": "MIT", "workspaces": [ diff --git a/package.json b/package.json index a67370006b..95ce7ae36b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "omniroute", - "version": "3.4.0", + "version": "3.4.1", "description": "Smart AI Router with auto fallback — route to FREE & cheap models, zero downtime. Works with Cursor, Cline, Claude Desktop, Codex, and any OpenAI-compatible tool.", "type": "module", "bin": { diff --git a/tests/integration/integration-wiring.test.mjs b/tests/integration/integration-wiring.test.mjs index b20969c9d4..825fc87bd2 100644 --- a/tests/integration/integration-wiring.test.mjs +++ b/tests/integration/integration-wiring.test.mjs @@ -256,11 +256,11 @@ describe("DashboardLayout Integration", () => { }); }); -describe("Page Integration — usage page wiring", () => { - const src = readProjectFile("src/app/(dashboard)/dashboard/usage/page.tsx"); +describe("Page Integration — logs page wiring", () => { + const src = readProjectFile("src/app/(dashboard)/dashboard/logs/page.tsx"); - it("should wire segmented usage tabs", () => { - assert.ok(src, "src/app/(dashboard)/dashboard/usage/page.tsx should exist"); + it("should wire segmented log tabs", () => { + assert.ok(src, "src/app/(dashboard)/dashboard/logs/page.tsx should exist"); assert.match(src, /SegmentedControl/); assert.match(src, /RequestLoggerV2/); assert.match(src, /ProxyLogger/); From f250cd246cc25eb3a92e2a9e28c86fb2b7437879 Mon Sep 17 00:00:00 2001 From: diegosouzapw Date: Tue, 31 Mar 2026 21:56:54 -0300 Subject: [PATCH 5/5] chore(docs): refactor root readmes and update pr-review workflow --- .agents/workflows/review-prs.md | 40 +- README.ar.md | 2077 +----------------------------- README.bg.md | 2078 +----------------------------- README.cs.md | 2085 +------------------------------ README.da.md | 2078 +----------------------------- README.fi.md | 2078 +----------------------------- README.he.md | 2078 +----------------------------- README.hu.md | 2078 +----------------------------- README.id.md | 2078 +----------------------------- README.in.md | 1966 +---------------------------- README.ja.md | 2077 +----------------------------- README.ko.md | 2078 +----------------------------- README.ms.md | 2078 +----------------------------- README.nl.md | 2078 +----------------------------- README.no.md | 2078 +----------------------------- README.phi.md | 2078 +----------------------------- README.pl.md | 2078 +----------------------------- README.ro.md | 2078 +----------------------------- README.sk.md | 2084 +----------------------------- README.sv.md | 2078 +----------------------------- README.th.md | 2078 +----------------------------- README.uk-UA.md | 2083 +----------------------------- README.vi.md | 2078 +----------------------------- 23 files changed, 93 insertions(+), 45567 deletions(-) diff --git a/.agents/workflows/review-prs.md b/.agents/workflows/review-prs.md index 865a795993..1f474b5a9b 100644 --- a/.agents/workflows/review-prs.md +++ b/.agents/workflows/review-prs.md @@ -137,29 +137,43 @@ Perform a **global impact assessment** to verify whether the PR changes are comp - **Approved with changes** → Implement the fixes and corrections before merging - **Rejected** → Close the PR or leave a review comment -### 7. Implementation (if approved) +### 7. Pre-Merge Fixes & CI Green-Lighting (if approved) -> **⚠️ ALL work happens on the release branch, NOT the PR branch.** +> **⚠️ Fixes should be pushed back to the PR branch before merging.** We want the PR itself to be green and fully valid before it integrates. -- Cherry-pick or merge the PR's changes into the current release branch: +- **Sync latest fixes:** Merge `main` or the current `release` branch into the PR branch so the PR inherits any latest CI or integration test fixes (preventing false-positive failures). +- **Implement improvements:** Apply the required fixes identified in the analysis directly on the PR branch (e.g., adding missing API routes, fixing SSRF, applying comments from other agents). +- **Pushing changes to PR branches:** ```bash - # Option A: Merge PR branch into release branch - git merge --no-ff -m "Merge PR #: " + # Checkout the PR locally + gh pr checkout <NUMBER> - # Option B: Cherry-pick if cleaner - git cherry-pick <commit-hash> + # Apply fixes, commit your changes + git commit -m "chore: apply review suggestions and missing layers" + + # Attempt to push directly to the PR branch + git push ``` -- Implement any required fixes identified in the analysis **on the release branch** -- If the Cross-Layer Analysis (4f) identified missing frontend/backend counterparts, implement them -- Run the project's test suite to verify nothing breaks +- **Fallback (For external forks without maintainer edit access):** + If `git push` fails because the PR comes from an external fork without write access, you MUST: + 1. Create a new branch ending in `-fix` (e.g., `checkout -b fix-pr-<NUMBER>`). + 2. Push your branch to the main repo (`git push origin fix-pr-<NUMBER>`). + 3. Create a Pull Request targeting the contributor's repository and branch (use `gh pr create --repo <contributor-repo> --base <contributor-branch> --head diegosouzapw:fix-pr-<NUMBER>`). + 4. Once they accept our PR into their branch, their original PR to our `main` will automatically update and become green. + +- Run the project's test suite locally to verify nothing breaks: // turbo - Run: `npm test` or equivalent test command -- Commit improvements with descriptive messages -- Push the release branch: `git push origin release/vX.Y.Z` -### 8. Thank the Contributor +### 8. Merge & Integrate + +- Once the PR is green (you can check with `gh pr status`), proceed to merge the PR into the current release branch (`release/vX.Y.Z`). + + ```bash + gh pr merge <NUMBER> --repo <owner>/<repo> + ``` - Post a **thank-you comment** on the PR via the GitHub API - The message should: diff --git a/README.ar.md b/README.ar.md index 440ed026c1..7543673d2a 100644 --- a/README.ar.md +++ b/README.ar.md @@ -1,2076 +1,5 @@ -# 🚀 OmniRoute — بوابة الذكاء الاصطناعي المجانية +# 🌐 OmniRoute (ar) -### لا تتوقف أبدًا عن البرمجة. التوجيه الذكي إلى **نماذج الذكاء الاصطناعي المجانية ومنخفضة التكلفة** مع الرجوع التلقائي. +The documentation has been formalized and moved to our centralized i18n structure. -_وكيل واجهة برمجة التطبيقات العالمي الخاص بك - نقطة نهاية واحدة، وأكثر من 67 موفرًا، بدون أي توقف عن العمل. الآن مع تنسيق الوكيل **MCP & A2A**._ - -**إكمالات الدردشة • التضمينات • إنشاء الصور • الفيديو • الموسيقى • الصوت • إعادة الترتيب • **بحث الويب** • خادم MCP • بروتوكول A2A • 100% TypeScript** - ---- - -<div align="center"> - -[![npm version](https://img.shields.io/npm/v/omniroute?color=cb3837&logo=npm)](https://www.npmjs.com/package/omniroute) -[![npm downloads](https://img.shields.io/npm/dm/omniroute?color=cb3837&logo=npm&label=npm%20downloads)](https://www.npmjs.com/package/omniroute) -[![Docker Hub](https://img.shields.io/docker/v/diegosouzapw/omniroute?label=Docker%20Hub&logo=docker&color=2496ED)](https://hub.docker.com/r/diegosouzapw/omniroute) -[![Docker Pulls](https://img.shields.io/docker/pulls/diegosouzapw/omniroute?logo=docker&color=2496ED&label=docker%20pulls)](https://hub.docker.com/r/diegosouzapw/omniroute) -[![License](https://img.shields.io/github/license/diegosouzapw/OmniRoute)](https://github.com/diegosouzapw/OmniRoute/blob/main/LICENSE) -[![Website](https://img.shields.io/badge/Website-omniroute.online-blue?logo=google-chrome&logoColor=white)](https://omniroute.online) -[![WhatsApp](https://img.shields.io/badge/WhatsApp-Community-25D366?logo=whatsapp&logoColor=white)](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) - -[🌐 Website](https://omniroute.online) • [🚀 Quick Start](#-quick-start) • [💡 Features](#-key-features) • [📖 Docs](#-documentation) • [💰 Pricing](#-pricing-at-a-glance) • [💬 WhatsApp](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) - -</div> - -🌐 **متوفر في:** 🇺🇸 [English](README.md) | 🇧🇷 [Português (Brasil)](docs/i18n/pt-BR/README.md) | 🇪🇸 [Español](docs/i18n/es/README.md) | 🇫🇷 [Français](docs/i18n/fr/README.md) | 🇮🇹 [Italiano](docs/i18n/it/README.md) | 🇷🇺 [Русский](docs/i18n/ru/README.md) | 🇨🇳 [中文 (简体)](docs/i18n/zh-CN/README.md) | 🇩🇪 [Deutsch](docs/i18n/de/README.md) | 🇮🇳 [हिन्दी](docs/i18n/in/README.md) | 🇹🇭 [ไทย](docs/i18n/th/README.md) | 🇺🇦 [Українська](docs/i18n/uk-UA/README.md) | 🇸🇦 [العربية](docs/i18n/ar/README.md) | 🇯🇵 [日本語](docs/i18n/ja/README.md) | 🇻🇳 [Tiếng Việt](docs/i18n/vi/README.md) | 🇧🇬 [Български](docs/i18n/bg/README.md) | 🇩🇰 [Dansk](docs/i18n/da/README.md) | 🇫🇮 [Suomi](docs/i18n/fi/README.md) | 🇮🇱 [עברית](docs/i18n/he/README.md) | 🇭🇺 [Magyar](docs/i18n/hu/README.md) | 🇮🇩 [Bahasa Indonesia](docs/i18n/id/README.md) | 🇰🇷 [한국어](docs/i18n/ko/README.md) | 🇲🇾 [Bahasa Melayu](docs/i18n/ms/README.md) | 🇳🇱 [Nederlands](docs/i18n/nl/README.md) | 🇳🇴 [Norsk](docs/i18n/no/README.md) | 🇵🇹 [Português (Portugal)](docs/i18n/pt/README.md) | 🇷🇴 [Română](docs/i18n/ro/README.md) | 🇵🇱 [Polski](docs/i18n/pl/README.md) | 🇸🇰 [Slovenčina](docs/i18n/sk/README.md) | 🇸🇪 [Svenska](docs/i18n/sv/README.md) | 🇵🇭 [Filipino](docs/i18n/phi/README.md) | 🇨🇿 [Čeština](docs/i18n/cs/README.md) - ---- - -## 🆕 الجديد في الإصدار 3.0.0 - -> **الترقية من الإصدار 2.9.5؟** — راجع [full CHANGELOG](CHANGELOG.md#300--2026-03-22-release-candidate--not-yet-merged-to-main) للتعرف على كافة التغييرات. - -| المنطقة | التغيير | -| --------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 🔒 **أمان CodeQL** | تم إصلاح 10+ تنبيهات CodeQL: متعددات الحدود، العشوائية غير الآمنة، معالجة حقن الصدفة | -| ✅ **التحقق من صحة المسار** | تم الآن التحقق من صحة جميع مسارات واجهة برمجة التطبيقات البالغ عددها 176 باستخدام مخططات Zod + `validateBody()` — CI `check:route-validation:t06` يمر | -| 🐛 ** تسرب علامة omniModel ** | لم تعد علامات `<omniModel>` الداخلية تتسرب إلى العملاء في استجابات تدفق SSE (#585) | -| 🔑 **واجهة برمجة التطبيقات للمفاتيح المسجلة** | توفير مفاتيح واجهة برمجة التطبيقات تلقائيًا عبر `POST /api/v1/registered-keys` مع فرض الحصص لكل مزود/حساب، والصلاحية، وتخزين SHA-256، والإبلاغ الاختياري عن مشكلات GitHub | -| 🎨 **أيقونات الموفر** | أكثر من 130 شعارًا للموفر عبر `@lobehub/icons` (SVG) مع PNG → سلسلة احتياطية عامة | -| 🔄 **المزامنة التلقائية للنموذج** | جدولة على مدار 24 ساعة وتبديل واجهة المستخدم اليدوية لمزامنة قوائم النماذج لموفري الخدمات المدمجين والمخصصين المتوافقين مع OpenAI | -| 🌐 **OpenCode Zen/Go** | مقدمان جديدان من @kang-heewon عبر PR #530: طبقة مجانية + طبقة اشتراك عبر `OpencodeExecutor` | -| 🐛 **Gemini CLI OAuth** | خطأ قابل للتنفيذ عندما يكون `GEMINI_OAUTH_CLIENT_SECRET` مفقودًا في Docker (كان خطأ Google غامضًا) | -| 🐛 **تكوين OpenCode** | `saveOpenCodeConfig()` يكتب الآن TOML بشكل صحيح إلى `XDG_CONFIG_HOME` | -| 🐛 **تجاوز النموذج المثبت** | `body.model` تم ضبطه بشكل صحيح على `pinnedModel` في حماية ذاكرة التخزين المؤقت للسياق | -| 🐛 **حلقة الدستور الغذائي/كلود** | تم الآن تحويل كتل `tool_result` إلى نص لإيقاف الحلقات اللانهائية | -| 🐛 **إعادة توجيه تسجيل الدخول** | لم يعد تسجيل الدخول يتجمد بعد تخطي إعداد كلمة المرور | -| 🐛 **مسارات الويندوز** | تمت تسوية مسارات MSYS2/Git-Bash (`/c/...`) إلى `C:\...` تلقائيًا | - ---- - -## 🖼️ لوحة التحكم الرئيسية - -<div align="center"> - <img src="./docs/screenshots/MainOmniRoute.png" alt="OmniRoute Dashboard" width="800"/> -</div> - ---- - -## 📸 معاينة لوحة التحكم - -<details> -<summary><b>انقر لرؤية لقطات شاشة لوحة المعلومات</b></summary> - -| صفحة | لقطة شاشة | -| --------------------- | ------------------------------------------------- | -| ** مقدمو الخدمة ** | ![Providers](docs/screenshots/01-providers.png) | -| **المجموعات** | ![Combos](docs/screenshots/02-combos.png) | -| **تحليلات** | ![Analytics](docs/screenshots/03-analytics.png) | -| **الصحة** | ![Health](docs/screenshots/04-health.png) | -| **مترجم** | ![Translator](docs/screenshots/05-translator.png) | -| **الإعدادات** | ![Settings](docs/screenshots/06-settings.png) | -| **أدوات سطر الأوامر** | ![CLI Tools](docs/screenshots/07-cli-tools.png) | -| **سجلات الاستخدام** | ![Usage](docs/screenshots/08-usage.png) | -| **نقاط النهاية** | ![Endpoints](docs/screenshots/09-endpoint.png) | - -</details> - ---- - -### 🤖 موفر الذكاء الاصطناعي المجاني لوكلاء البرمجة المفضلين لديك - -_قم بتوصيل أي أداة IDE أو CLI مدعومة بالذكاء الاصطناعي من خلال OmniRoute - بوابة واجهة برمجة التطبيقات المجانية للترميز غير المحدود._ - - <table> - <tr> - <td align="center" width="110"> - <a href="https://github.com/openclaw/openclaw"> - <img src="./public/providers/openclaw.png" alt="OpenClaw" width="48"/><br/> - <b>OpenClaw</b> - </a><br/> - <sub>⭐ 205K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/HKUDS/nanobot"> - <img src="./public/providers/nanobot.png" alt="NanoBot" width="48"/><br/> - <b>NanoBot</b> - </a><br/> - <sub>⭐ 20.9K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/sipeed/picoclaw"> - <img src="./public/providers/picoclaw.jpg" alt="PicoClaw" width="48"/><br/> - <b>PicoClaw</b> - </a><br/> - <sub>⭐ 14.6K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/zeroclaw-labs/zeroclaw"> - <img src="./public/providers/zeroclaw.png" alt="ZeroClaw" width="48"/><br/> - <b>ZeroClaw</b> - </a><br/> - <sub>⭐ 9.9K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/nearai/ironclaw"> - <img src="./public/providers/ironclaw.png" alt="IronClaw" width="48"/><br/> - <b>IronClaw</b> - </a><br/> - <sub>⭐ 2.1K</sub> - </td> - </tr> - <tr> - <td align="center" width="110"> - <a href="https://github.com/anomalyco/opencode"> - <img src="./public/providers/opencode.svg" alt="OpenCode" width="48"/><br/> - <b>OpenCode</b> - </a><br/> - <sub>⭐ 106K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/openai/codex"> - <img src="./public/providers/codex.png" alt="Codex CLI" width="48"/><br/> - <b>Codex CLI</b> - </a><br/> - <sub>⭐ 60.8K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/anthropics/claude-code"> - <img src="./public/providers/claude.png" alt="Claude Code" width="48"/><br/> - <b>Claude Code</b> - </a><br/> - <sub>⭐ 67.3K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/google-gemini/gemini-cli"> - <img src="./public/providers/gemini-cli.png" alt="Gemini CLI" width="48"/><br/> - <b>Gemini CLI</b> - </a><br/> - <sub>⭐ 94.7K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/Kilo-Org/kilocode"> - <img src="./public/providers/kilocode.png" alt="Kilo Code" width="48"/><br/> - <b>Kilo Code</b> - </a><br/> - <sub>⭐ 15.5K</sub> - </td> - </tr> - </table> - -<sub>📡 يتصل جميع الوكلاء عبر <code>http://localhost:20128/v1</code> أو <code>http://cloud.omniroute.online/v1</code> — تكوين واحد ونماذج غير محدودة و الحصة</sub> - ---- - -## 🤔 لماذا OmniRoute؟ - -**توقف عن إهدار المال وضرب الحدود:** - -- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> تنتهي صلاحية حصة الاشتراك غير المستخدمة كل شهر -- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> حدود الأسعار تمنعك من الترميز المتوسط -- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> واجهات برمجة التطبيقات باهظة الثمن (20-50 دولارًا شهريًا لكل مزود) -- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> التبديل اليدوي بين مقدمي الخدمة - -** OmniRoute يحل هذا: ** - -- ✅ **تعظيم الاشتراكات** - تتبع الحصة، استخدم كل جزء منها قبل إعادة التعيين -- ✅ **الرجوع التلقائي** - الاشتراك → مفتاح واجهة برمجة التطبيقات → رخيص → مجاني، بدون توقف -- ✅ **حسابات متعددة** - جولة روبن بين الحسابات لكل مزود -- ✅ **عالمي** - يعمل مع Claude Code وCodex وGemini CLI وCursor وCline وOpenClaw وأي أداة CLI - ---- - -## 📧 الدعم - -> 💬 **انضم إلى مجتمعنا!** [WhatsApp Group](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) — احصل على المساعدة وشارك النصائح وابق على اطلاع. - -- **الموقع الإلكتروني**: [omniroute.online](https://omniroute.online) -- **جيثب**: [github.com/diegosouzapw/OmniRoute](https://github.com/diegosouzapw/OmniRoute) -- **المشاكل**: [github.com/diegosouzapw/OmniRoute/issues](https://github.com/diegosouzapw/OmniRoute/issues) -- **واتساب**: [Community Group](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) -- **المساهمة**: راجع [CONTRIBUTING.md](CONTRIBUTING.md)، أو افتح علاقة عامة، أو اختر `good first issue` -- **المشروع الأصلي**: [9router by decolua](https://github.com/decolua/9router) - -### 🐛 الإبلاغ عن خطأ؟ - -عند فتح مشكلة، يرجى تشغيل أمر معلومات النظام وإرفاق الملف الذي تم إنشاؤه: - -```bash -npm run system-info -``` - -يؤدي هذا إلى إنشاء `system-info.txt` مع إصدار Node.js، وإصدار OmniRoute، وتفاصيل نظام التشغيل، وأدوات CLI المثبتة (qoder، وgemini، و claude، وcodex، وantigravity، وdroid، وما إلى ذلك)، وحالة Docker/PM2، وحزم النظام - كل ما نحتاجه لإعادة إنتاج مشكلتك بسرعة. قم بإرفاق الملف مباشرة بمشكلة GitHub الخاصة بك. - ---- - -## 🔄 كيف يعمل - -``` -┌─────────────┐ -│ Your CLI │ (Claude Code, Codex, Gemini CLI, OpenClaw, Cursor, Cline...) -│ Tool │ -└──────┬──────┘ - │ http://localhost:20128/v1 - ↓ -┌─────────────────────────────────────────┐ -│ OmniRoute (Smart Router) │ -│ • Format translation (OpenAI ↔ Claude) │ -│ • Quota tracking + Embeddings + Images │ -│ • Auto token refresh │ -└──────┬──────────────────────────────────┘ - │ - ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex, Gemini CLI - │ ↓ quota exhausted - ├─→ [Tier 2: API KEY] DeepSeek, Groq, xAI, Mistral, NVIDIA NIM, etc. - │ ↓ budget limit - ├─→ [Tier 3: CHEAP] GLM ($0.6/1M), MiniMax ($0.2/1M) - │ ↓ budget limit - └─→ [Tier 4: FREE] Qoder, Qwen, Kiro (unlimited) - -Result: Never stop coding, minimal cost -``` - ---- - -## 🎯 ما يحله OmniRoute — 30 مشكلة حقيقية وحالات استخدام - -> **يواجه كل مطور يستخدم أدوات الذكاء الاصطناعي هذه المشكلات يوميًا.** تم تصميم OmniRoute لحلها جميعًا — بدءًا من تجاوز التكاليف وحتى الكتل الإقليمية، ومن تدفقات OAuth المعطلة إلى عمليات البروتوكول وإمكانية مراقبة المؤسسة. - -<details> -<summary><b>💸 1. "أدفع مقابل اشتراك باهظ الثمن ولكن لا يزال يتم مقاطعتي بسبب الحدود"</b></summary> - -يدفع المطورون ما بين 20 إلى 200 دولار شهريًا مقابل Claude Pro أو Codex Pro أو GitHub Copilot. حتى عند الدفع، فإن الحصة لها حد أقصى — 5 ساعات من الاستخدام، أو حدود أسبوعية، أو حدود لسعر الدقيقة. في منتصف جلسة الترميز، يتوقف الموفر عن الاستجابة ويفقد المطور التدفق والإنتاجية. - -**كيف يحل OmniRoute المشكلة:** - -- **الاحتياطي الذكي ذو 4 طبقات** — في حالة نفاد حصة الاشتراك، تتم إعادة التوجيه تلقائيًا إلى مفتاح واجهة برمجة التطبيقات ← رخيص ← مجاني بدون أي تدخل يدوي -- **تتبع الحصص في الوقت الفعلي** — يعرض استهلاك الرمز المميز في الوقت الفعلي مع العد التنازلي لإعادة التعيين (5 ساعات، يوميًا، أسبوعيًا) -- **دعم الحسابات المتعددة** — حسابات متعددة لكل مزود مع نظام روبن تلقائي — عند نفاد الحساب، يتم التبديل إلى التالي -- **مجموعات مخصصة** — سلاسل احتياطية قابلة للتخصيص مع 6 إستراتيجيات موازنة (الملء أولاً، جولة روبن، P2C، عشوائي، الأقل استخدامًا، الأمثل من حيث التكلفة) -- **حصص الدستور الغذائي** — مراقبة حصص مساحة عمل الشركة/الفريق مباشرة في لوحة المعلومات - -</details> - -<details> -<summary><b>🔌 2. "أحتاج إلى استخدام موفري خدمات متعددين ولكن لكل منهم واجهة برمجة تطبيقات مختلفة"</b></summary> - -يستخدم OpenAI تنسيقًا واحدًا، ويستخدم Claude (Anthropic) تنسيقًا آخر، ويستخدم Gemini تنسيقًا آخر. إذا أراد أحد المطورين اختبار النماذج من موفري خدمات مختلفين أو إجراء بديل فيما بينهم، فسيحتاج إلى إعادة تكوين مجموعات تطوير البرامج (SDK)، وتغيير نقاط النهاية، والتعامل مع التنسيقات غير المتوافقة. لدى موفري الخدمة المخصصين (FriendLI، NIM) نقاط نهاية نموذجية غير قياسية. - -**كيف يحل OmniRoute المشكلة:** - -- **نقطة النهاية الموحدة** — تعمل `http://localhost:20128/v1` كوكيل لجميع مقدمي الخدمة الذين يزيد عددهم عن 67 شخصًا -- **تنسيق الترجمة** — تلقائي وشفاف: OpenAI ↔ Claude ↔ Gemini ↔ Responses API -- **تطهير الاستجابة** — إزالة الحقول غير القياسية (`x_groq`، `usage_breakdown`، `service_tier`) التي تكسر الإصدار 1.83+ من OpenAI SDK -- **تطبيع الدور** — تحويل `developer` → `system` لمقدمي الخدمات غير التابعين لـ OpenAI؛ `system` → `user` لـ GLM/ERNIE -- **Think Tag Extraction** — يستخرج كتل `<think>` من نماذج مثل DeepSeek R1 إلى `reasoning_content` الموحدة -- **الإخراج المنظم لـ Gemini** — `json_schema` → `responseMimeType`/`responseSchema` تحويل تلقائي -- **`stream` الإعدادات الافتراضية هي `false`** — تتماشى مع مواصفات OpenAI، وتجنب SSE غير المتوقع في Python/Rust/Go SDKs - -</details> - -<details> -<summary><b>🌐 3. "يحظر موفر الذكاء الاصطناعي الخاص بي منطقتي/بلدي"</b></summary> - -يقوم مقدمو الخدمة مثل OpenAI/Codex بحظر الوصول من مناطق جغرافية معينة. يحصل المستخدمون على أخطاء مثل `unsupported_country_region_territory` أثناء اتصالات OAuth وAPI. وهذا أمر محبط بشكل خاص للمطورين من البلدان النامية. - -**كيف يحل OmniRoute المشكلة:** - -- **تكوين الوكيل ثلاثي المستوى** — وكيل قابل للتكوين على 3 مستويات: عالمي (كل حركة المرور)، لكل مزود (موفر واحد فقط)، ولكل اتصال/مفتاح -- **شارات الوكيل المرمزة بالألوان** — المؤشرات المرئية: 🟢 الوكيل العالمي، 🟡 وكيل الموفر، 🔵 وكيل الاتصال، يظهر دائمًا عنوان IP -- **تبادل رمز OAuth عبر الوكيل** — يمر تدفق OAuth أيضًا عبر الوكيل، مما يؤدي إلى حل `unsupported_country_region_territory` -- **اختبارات الاتصال عبر الوكيل** — تستخدم اختبارات الاتصال الوكيل الذي تم تكوينه (لا مزيد من التجاوز المباشر) -- **دعم SOCKS5** — دعم وكيل SOCKS5 الكامل للتوجيه الخارجي -- ** انتحال بصمة إصبع TLS ** — بصمة TLS الشبيهة بالمتصفح عبر `wreq-js` لتجاوز اكتشاف الروبوتات -- **🔏 مطابقة بصمة CLI** — إعادة ترتيب الرؤوس وحقول النص لمطابقة التوقيعات الثنائية لـ CLI الأصلية، مما يقلل بشكل كبير من مخاطر الإبلاغ عن الحساب. يتم الحفاظ على عنوان IP الخاص بالوكيل — حيث يمكنك الحصول على إخفاء ** و** IP في وقت واحد - -</details> - -<details> -<summary><b>🆓 4. "أريد استخدام الذكاء الاصطناعي للبرمجة ولكن ليس لدي المال"</b></summary> - -لا يستطيع الجميع دفع ما بين 20 إلى 200 دولار شهريًا مقابل اشتراكات الذكاء الاصطناعي. يحتاج الطلاب والمطورون من البلدان الناشئة والهواة والمستقلون إلى الوصول إلى نماذج عالية الجودة بدون تكلفة. - -**كيف يحل OmniRoute المشكلة:** - -- **موفرو الطبقة المجانية المضمنون** — دعم أصلي لمقدمي الخدمة المجانية بنسبة 100%: Qoder (5 نماذج غير محدودة عبر OAuth: kimi-k2-thinking، qwen3-coder-plus، Deepseek-r1، minimax-m2، kimi-k2)، Qwen (4 نماذج غير محدودة: qwen3-coder-plus، qwen3-coder-flash، qwen3-coder-next، Vision-model)، Kiro (Claude + AWS Builder ID مجانًا)، Gemini CLI (180 ألف رمز مميز شهريًا مجانًا) -- **Ollama Cloud** — نماذج Ollama المستضافة على السحابة في `api.ollama.com` مع فئة "الاستخدام الخفيف" مجانًا؛ استخدم البادئة `ollamacloud/<model>` -- **المجموعات المجانية فقط** — السلسلة `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = 0 USD/الشهر بدون أي توقف عن العمل -- **NVIDIA NIM Free Access** — ~40 دورة في الدقيقة وصول مجاني للأبد إلى أكثر من 70 نموذجًا على build.nvidia.com (الانتقال من الاعتمادات إلى حدود المعدل النقي) -- **استراتيجية التكلفة المحسنة** — استراتيجية التوجيه التي تختار تلقائيًا أرخص مزود متاح - -</details> - -<details> -<summary><b>🔒 5. "أحتاج إلى حماية بوابة الذكاء الاصطناعي الخاصة بي من الوصول غير المصرح به"</b></summary> - -عند تعريض بوابة AI للشبكة (LAN، VPS، Docker)، يمكن لأي شخص لديه العنوان استهلاك الرموز المميزة/الحصة النسبية للمطور. بدون الحماية، تكون واجهات برمجة التطبيقات (API) عرضة لإساءة الاستخدام والحقن الفوري وإساءة الاستخدام. - -**كيف يحل OmniRoute المشكلة:** - -- **إدارة مفاتيح واجهة برمجة التطبيقات** — الإنشاء والتدوير وتحديد النطاق لكل مزود باستخدام صفحة `/dashboard/api-manager` مخصصة -- **أذونات على مستوى النموذج** — تقييد مفاتيح واجهة برمجة التطبيقات (API) على نماذج محددة (`openai/*`، أنماط أحرف البدل)، مع تبديل السماح للكل/تقييد -- **API Endpoint Protection** — اطلب مفتاحًا لـ `/v1/models` واحظر موفري خدمة محددين من القائمة -- **Auth Guard + CSRF Protection** — جميع مسارات لوحة المعلومات محمية باستخدام البرامج الوسيطة `withAuth` + رموز CSRF المميزة -- **محدد المعدل** — تحديد معدل لكل IP مع نوافذ قابلة للتكوين -- **تصفية IP** — القائمة المسموح بها/القائمة المحظورة للتحكم في الوصول -- **حماية الحقن الفوري** — التعقيم ضد أنماط المطالبة الضارة -- **تشفير AES-256-GCM** — بيانات الاعتماد مشفرة في حالة عدم النشاط - -</details> - -<details> -<summary><b>🛑 6. "تعطل مزود الخدمة الخاص بي وفقدت تدفق الترميز الخاص بي"</b></summary> - -يمكن أن يصبح موفرو الذكاء الاصطناعي غير مستقرين، أو يعرضون أخطاء 5xx، أو يصلون إلى حدود المعدلات المؤقتة. إذا كان أحد المطورين يعتمد على موفر واحد، فسيتم مقاطعته. بدون قواطع الدائرة، يمكن أن تؤدي عمليات إعادة المحاولة المتكررة إلى تعطل التطبيق. - -**كيف يحل OmniRoute المشكلة:** - -- **قاطع الدائرة لكل نموذج** — فتح/إغلاق تلقائي مع حدود قابلة للتكوين وفترة تهدئة (مغلق/مفتوح/نصف مفتوح)، محدد النطاق لكل نموذج لتجنب الكتل المتتالية -- **التراجع الأسي** — تأخير إعادة المحاولة التدريجي -- **مكافحة الرعد القطيع** — Mutex + حماية الإشارة ضد عواصف إعادة المحاولة المتزامنة -- **السلاسل الاحتياطية المجمعة** — إذا فشل الموفر الأساسي، فسيتم دخوله تلقائيًا عبر السلسلة دون أي تدخل -- **Combo Circuit Breaker** — التعطيل التلقائي لمقدمي الخدمات الفاشلين ضمن سلسلة التحرير والسرد -- **لوحة معلومات الصحة** — مراقبة وقت التشغيل، وحالات قاطع الدائرة، وعمليات التأمين، وإحصائيات ذاكرة التخزين المؤقت، ووقت الاستجابة p50/p95/p99 - -</details> - -<details> -<summary><b>🔧 7. "تكوين كل أداة من أدوات الذكاء الاصطناعي أمر ممل ومتكرر"</b></summary> - -يستخدم المطورون Cursor وClaude Code وCodex CLI وOpenClaw وGemini CLI وKilo Code... تحتاج كل أداة إلى تكوين مختلف (نقطة نهاية واجهة برمجة التطبيقات، المفتاح، النموذج). تعد إعادة التكوين عند تبديل مقدمي الخدمات أو النماذج مضيعة للوقت. - -**كيف يحل OmniRoute المشكلة:** - -- **لوحة أدوات أدوات CLI** — صفحة مخصصة مع إعداد بنقرة واحدة لـ Claude Code، وCodex CLI، وOpenClaw، وKilo Code، وAntigravity، وCline -- **GitHub Copilot Config Generator** — يُنشئ `chatLanguageModels.json` لرمز VS مع اختيار نموذج مجمع -- **معالج الإعداد** — إعداد إرشادي من 4 خطوات للمستخدمين لأول مرة -- **نقطة نهاية واحدة، جميع الطرز** — قم بتكوين `http://localhost:20128/v1` مرة واحدة، والوصول إلى أكثر من 67 موفرًا - -</details> - -<details> -<summary><b>🔑 8. "إدارة رموز OAuth المميزة من موفري خدمات متعددين أمر جحيم"</b></summary> - -Claude Code، وCodex، وGemini CLI، وCopilot — جميعهم يستخدمون OAuth 2.0 مع الرموز المميزة التي تنتهي صلاحيتها. يحتاج المطورون إلى إعادة المصادقة باستمرار، والتعامل مع `client_secret is missing`، `redirect_uri_mismatch`، والفشل على الخوادم البعيدة. يعد OAuth على LAN/VPS مشكلة بشكل خاص. - -**كيف يحل OmniRoute المشكلة:** - -- **التحديث التلقائي للرمز المميز** — يتم تحديث رموز OAuth المميزة في الخلفية قبل انتهاء الصلاحية -- **OAuth 2.0 (PKCE) مدمج** — التدفق التلقائي لـ Claude Code وCodex وGemini CLI وCopilot وKiro وQwen وQoder -- **OAuth متعدد الحسابات** — حسابات متعددة لكل مزود عبر استخراج الرمز المميز JWT/ID -- **OAuth LAN/Remote Fix** — اكتشاف IP الخاص لـ `redirect_uri` + وضع URL اليدوي للخوادم البعيدة -- **OAuth Behind Nginx** — يستخدم `window.location.origin` للتوافق العكسي مع الوكيل -- **دليل OAuth عن بعد** — دليل خطوة بخطوة لبيانات اعتماد Google Cloud على VPS/Docker - -</details> - -<details> -<summary><b>📊 9. "لا أعرف مقدار المبلغ الذي أنفقه أو أين"</b></summary> - -يستخدم المطورون العديد من مقدمي الخدمات المدفوعة ولكن ليس لديهم رؤية موحدة للإنفاق. يمتلك كل مزود خدمة لوحة تحكم الفوترة الخاصة به، ولكن لا يوجد عرض موحد. التكاليف غير المتوقعة يمكن أن تتراكم. - -**كيف يحل OmniRoute المشكلة:** - -- **لوحة معلومات تحليلات التكلفة** — تتبع التكلفة لكل رمز مميز وإدارة الميزانية لكل مزود -- **حدود الميزانية لكل طبقة** — سقف الإنفاق لكل طبقة يؤدي إلى حدوث تراجع تلقائي -- **تكوين التسعير لكل نموذج** — أسعار قابلة للتكوين لكل نموذج -- **إحصاءات الاستخدام لكل مفتاح API** — عدد الطلبات والطابع الزمني الأخير المستخدم لكل مفتاح -- **لوحة التحكم التحليلية** — بطاقات الإحصائيات، ومخطط استخدام النموذج، وجدول الموفر مع معدلات النجاح وزمن الاستجابة - -</details> - -<details> -<summary><b>🐛 10. "لا يمكنني تشخيص الأخطاء والمشكلات في مكالمات الذكاء الاصطناعي"</b></summary> - -عندما تفشل المكالمة، لا يعرف المطور ما إذا كان هناك حد للسعر، أو رمز مميز منتهي الصلاحية، أو تنسيق خاطئ، أو خطأ في الموفر. سجلات مجزأة عبر محطات مختلفة. وبدون إمكانية الملاحظة، يكون تصحيح الأخطاء عبارة عن تجربة وخطأ. - -**كيف يحل OmniRoute المشكلة:** - -- **لوحة تحكم السجلات الموحدة** — 4 علامات تبويب: سجلات الطلبات، وسجلات الوكيل، وسجلات التدقيق، ووحدة التحكم -- **عارض سجل وحدة التحكم** — عارض بنمط المحطة الطرفية في الوقت الفعلي مع مستويات مرمزة بالألوان، والتمرير التلقائي، والبحث، والتصفية -- **سجلات وكيل SQLite** — السجلات المستمرة التي تستمر حتى بعد إعادة تشغيل الخادم -- **ساحة المترجم** — 4 أوضاع لتصحيح الأخطاء: ساحة اللعب (ترجمة التنسيق)، اختبار الدردشة (ذهابًا وإيابًا)، منصة الاختبار (دفعة)، المراقبة المباشرة (في الوقت الفعلي) -- **قياس الطلب عن بعد** — زمن الاستجابة p50/p95/p99 + تتبع معرف طلب X -- **التسجيل المستند إلى الملف مع التدوير** — يلتقط جهاز اعتراض وحدة التحكم كل شيء إلى سجل JSON من خلال التدوير المستند إلى الحجم -- **تقرير معلومات النظام** — `npm run system-info` ينشئ `system-info.txt` مع بيئتك الكاملة (إصدار العقدة، إصدار OmniRoute، نظام التشغيل، أدوات CLI، حالة Docker/PM2). قم بإرفاقه عند الإبلاغ عن مشكلات للفرز الفوري. - -</details> - -<details> -<summary><b>🏗️ 11. "إن نشر البوابة وصيانتها أمر معقد"</b></summary> - -يعد تثبيت وكيل AI وتكوينه وصيانته عبر بيئات مختلفة (محلية، VPS، Docker، سحابية) عملية كثيفة العمالة. مشاكل مثل المسارات المضمنة، `EACCES` في الدلائل، وتعارضات المنافذ، والبنيات عبر الأنظمة الأساسية تزيد من الاحتكاك. - -**كيف يحل OmniRoute المشكلة:** - -- **تثبيت npm الشامل** — `npm install -g omniroute && omniroute` — تم -- **منصة Docker المتعددة** — AMD64 + ARM64 الأصلي (Apple Silicon، AWS Graviton، Raspberry Pi) -- **ملفات تعريف Docker Compose** — `base` (لا توجد أدوات CLI) و`cli` (مع Claude Code، Codex، OpenClaw) -- **Electron Desktop App** — تطبيق أصلي لنظام التشغيل Windows/macOS/Linux مع علبة النظام، والتشغيل التلقائي، ووضع عدم الاتصال -- **وضع المنفذ المقسم** — واجهة برمجة التطبيقات ولوحة المعلومات على منافذ منفصلة للسيناريوهات المتقدمة (الوكيل العكسي، وشبكات الحاويات) -- **Cloud Sync** — مزامنة التكوين عبر الأجهزة عبر Cloudflare Workers -- **النسخ الاحتياطية لقاعدة البيانات** — النسخ الاحتياطي التلقائي لجميع الإعدادات واستعادتها وتصديرها واستيرادها - -</details> - -<details> -<summary><b>🌍 12. "الواجهة باللغة الإنجليزية فقط وفريقي لا يتحدث الإنجليزية"</b></summary> - -تواجه الفرق في البلدان غير الناطقة باللغة الإنجليزية، وخاصة في أمريكا اللاتينية وآسيا وأوروبا، صعوبة في التعامل مع الواجهات التي تستخدم اللغة الإنجليزية فقط. تعمل حواجز اللغة على تقليل الاعتماد وزيادة أخطاء التكوين. - -**كيف يحل OmniRoute المشكلة:** - -- **لوحة المعلومات i18n — 30 لغة** — أكثر من 500 مفتاح مترجم بما في ذلك العربية والبلغارية والدنماركية والألمانية والإسبانية والفنلندية والفرنسية والعبرية والهندية والمجرية والإندونيسية والإيطالية واليابانية والكورية والماليزية والهولندية والنرويجية والبولندية والبرتغالية (PT/BR) والرومانية والروسية والسلوفاكية والسويدية والتايلاندية والأوكرانية والفيتنامية والصينية والفلبينية والإنجليزية -- **دعم RTL** — دعم من اليمين إلى اليسار للغتين العربية والعبرية -- **الملفات التمهيدية متعددة اللغات** — 30 ترجمة كاملة للوثائق -- **محدد اللغة** — رمز الكرة الأرضية في رأس الصفحة للتبديل في الوقت الفعلي - -</details> - -<details> -<summary><b>🔄 13. "أحتاج إلى أكثر من مجرد الدردشة - أحتاج إلى عمليات التضمين والصور والصوت"</b></summary> - -الذكاء الاصطناعي ليس مجرد استكمال للدردشة. يحتاج المطورون إلى إنشاء صور، ونسخ الصوت، وإنشاء تضمينات لـ RAG، وإعادة ترتيب المستندات، والإشراف على المحتوى. تحتوي كل واجهة برمجة تطبيقات على نقطة نهاية وتنسيق مختلفين. - -**كيف يحل OmniRoute المشكلة:** - -- **التضمينات** — `/v1/embeddings` مع 6 موفري خدمة وأكثر من 9 نماذج -- **إنشاء الصور** — `/v1/images/generations` مع 10 موفري وأكثر من 20 نموذجًا (OpenAI، وxAI، وTogether، وFireworks، وNebius، وHyperbolic، وNanoBanana، وAntigravity، وSD WebUI، وComfyUI) -- **تحويل النص إلى فيديو** — `/v1/videos/generations` — ComfyUI (AnimateDiff، SVD) وSD WebUI -- **تحويل النص إلى موسيقى** — `/v1/music/generations` — ComfyUI (فتح الصوت الثابت، MusicGen) -- **النسخ الصوتي** — `/v1/audio/transcriptions` — Whisper + Nvidia NIM، HuggingFace، Qwen3 -- **تحويل النص إلى كلام** — `/v1/audio/speech` — ElevenLabs، Nvidia NIM، HuggingFace، Coqui، Tortoise، Qwen3، **Inworld**، **Cartesia**، **PlayHT**، + مقدمي الخدمة الحاليين -- **الإشراف** — `/v1/moderations` — التحقق من سلامة المحتوى -- **إعادة الترتيب** — `/v1/rerank` — إعادة ترتيب مدى ملاءمة المستند -- **Responses API** — الدعم الكامل `/v1/responses` للمخطوطة - -</details> - -<details> -<summary><b>🧪 14. "ليس لدي طريقة لاختبار ومقارنة الجودة عبر النماذج"</b></summary> - -يرغب المطورون في معرفة النموذج الأفضل لحالة الاستخدام الخاصة بهم - التعليمات البرمجية، والترجمة، والتفكير - ولكن المقارنة يدويًا بطيئة. لا توجد أدوات تقييم متكاملة. - -**كيف يحل OmniRoute المشكلة:** - -- ** تقييمات LLM ** — اختبار المجموعة الذهبية مع 10 حالات محملة مسبقًا تغطي التحيات، والرياضيات، والجغرافيا، وإنشاء التعليمات البرمجية، والامتثال لـ JSON، والترجمة، وتخفيض السعر، والرفض الآمن -- **4 إستراتيجيات مطابقة** — `exact`، `contains`، `regex`، `custom` (وظيفة JS) -- **منصة اختبار ساحة المترجم** — اختبار الدفعات بمدخلات متعددة ومخرجات متوقعة، ومقارنة بين الموفرين -- **أداة اختبار الدردشة** — رحلة ذهابًا وإيابًا كاملة مع عرض الاستجابة المرئية -- **المراقبة المباشرة** — البث المباشر لجميع الطلبات المتدفقة عبر الوكيل - -</details> - -<details> -<summary><b>📈 15. "أحتاج إلى التوسع دون فقدان الأداء"</b></summary> - -مع نمو حجم الطلب، يؤدي عدم التخزين المؤقت لنفس الأسئلة إلى توليد تكاليف مكررة. دون العجز، طلبات مكررة معالجة النفايات. يجب احترام حدود الأسعار لكل مزود. - -**كيف يحل OmniRoute المشكلة:** - -- **ذاكرة التخزين المؤقت الدلالية** — تعمل ذاكرة التخزين المؤقت ذات المستويين (التوقيع + الدلالي) على تقليل التكلفة ووقت الاستجابة -- **صلاحية الطلب** — نافذة إلغاء البيانات المكررة لمدة 5 ثوانٍ للطلبات المتماثلة -- **الكشف عن حدود المعدل** — عدد الدورات في الدقيقة لكل مزود، والفجوة الدنيا، والحد الأقصى للتتبع المتزامن -- **حدود المعدل القابلة للتحرير** — الإعدادات الافتراضية القابلة للتكوين في الإعدادات → المرونة مع الثبات -- **ذاكرة التخزين المؤقت للتحقق من صحة مفتاح واجهة برمجة التطبيقات** — ذاكرة تخزين مؤقت ثلاثية الطبقات لأداء الإنتاج -- **لوحة معلومات الصحة مع القياس عن بعد** — زمن الاستجابة p50/p95/p99، وإحصائيات ذاكرة التخزين المؤقت، ووقت التشغيل - -</details> - -<details> -<summary><b>🤖 16. "أريد التحكم في سلوك النموذج عالميًا"</b></summary> - -المطورون الذين يريدون جميع الاستجابات بلغة معينة، بنبرة معينة، أو يريدون الحد من الرموز المميزة للاستدلال. يعد تكوين هذا في كل أداة/طلب أمرًا غير عملي. - -**كيف يحل OmniRoute المشكلة:** - -- **الحقن الفوري للنظام** — يتم تطبيق المطالبة العامة على جميع الطلبات -- **التحقق من صحة ميزانية التفكير** — التحكم في تخصيص الرمز المميز لكل طلب (العبور، التلقائي، المخصص، التكيفي) -- **6 إستراتيجيات التوجيه** — إستراتيجيات عالمية تحدد كيفية توزيع الطلبات -- **Wildcard Router** — يتم توجيه أنماط `provider/*` ديناميكيًا إلى أي مزود -- **تبديل تمكين/تعطيل التحرير والسرد** — تبديل المجموعات مباشرة من لوحة المعلومات -- **تبديل الموفر** — تمكين/تعطيل جميع اتصالات الموفر بنقرة واحدة -- **موفري الخدمة المحظورون** — استبعاد موفري خدمة محددين من قائمة `/v1/models` - -</details> - -<details> -<summary><b>🧰 17. "أحتاج إلى أدوات MCP كإمكانيات منتج من الدرجة الأولى"</b></summary> - -تعرض العديد من بوابات الذكاء الاصطناعي MCP فقط كتفاصيل تنفيذ مخفية. تحتاج الفرق إلى طبقة تشغيل مرئية ويمكن التحكم فيها. - -**كيف يحل OmniRoute المشكلة:** - -- يظهر MCP في لوحة التحكم وعلامة تبويب بروتوكول نقطة النهاية -- صفحة إدارة MCP مخصصة تحتوي على العمليات والأدوات والنطاقات والتدقيق -- البدء السريع المدمج لـ `omniroute --mcp` وتأهيل العميل - -</details> - -<details> -<summary><b>🧠 18. "أحتاج إلى تنسيق A2A مع المزامنة + مسارات المهام الدفقية"</b></summary> - -تحتاج مسارات عمل الوكيل إلى ردود مباشرة وتنفيذ متدفق طويل الأمد مع التحكم في دورة الحياة. - -**كيف يحل OmniRoute المشكلة:** - -- نقطة نهاية A2A JSON-RPC (`POST /a2a`) مع `message/send` و`message/stream` -- تدفق SSE مع انتشار الحالة الطرفية -- واجهات برمجة التطبيقات لدورة حياة المهام لـ `tasks/get` و`tasks/cancel` - -</details> - -<details> -<summary><b>🛰️ 19. "أحتاج إلى صحة عملية MCP حقيقية، وليس حالة تخمينية"</b></summary> - -تحتاج الفرق التشغيلية إلى معرفة ما إذا كان MCP حيًا بالفعل، وليس فقط ما إذا كان يمكن الوصول إلى واجهة برمجة التطبيقات (API). - -**كيف يحل OmniRoute المشكلة:** - -- ملف نبضات وقت التشغيل مع PID والطوابع الزمنية والنقل وعدد الأدوات ووضع النطاق -- واجهة برمجة تطبيقات حالة MCP التي تجمع بين نبضات القلب + النشاط الأخير -- بطاقات حالة واجهة المستخدم للعملية/وقت التشغيل/نضارة نبضات القلب - -</details> - -<details> -<summary><b>📋 20. "أحتاج إلى تنفيذ أداة MCP قابلة للتدقيق"</b></summary> - -عندما تقوم الأدوات بتغيير التكوين أو تشغيل إجراءات العمليات، تحتاج الفرق إلى إمكانية التتبع الجنائي. - -**كيف يحل OmniRoute المشكلة:** - -- تسجيل التدقيق المدعوم من SQLite لاستدعاءات أداة MCP -- عوامل التصفية حسب الأداة، والنجاح/الفشل، ومفتاح API، وترقيم الصفحات -- جدول تدقيق لوحة المعلومات + إحصائيات نقاط النهاية للأتمتة - -</details> - -<details> -<summary><b>🔐 21. "أحتاج إلى أذونات MCP محددة لكل عملية تكامل"</b></summary> - -يجب أن يتمتع العملاء المختلفون بإمكانية الوصول الأقل امتيازًا إلى فئات الأدوات. - -**كيف يحل OmniRoute المشكلة:** - -- 9 نطاقات MCP محببة للتحكم في الوصول إلى الأدوات -- إنفاذ النطاق والرؤية في واجهة مستخدم إدارة MCP -- الوضع الافتراضي الآمن للأدوات التشغيلية - -</details> - -<details> -<summary><b>⚙️ 22. "أحتاج إلى عناصر تحكم تشغيلية دون إعادة النشر"</b></summary> - -تحتاج الفرق إلى تغييرات سريعة في وقت التشغيل أثناء الحوادث أو أحداث التكلفة. - -**كيف يحل OmniRoute المشكلة:** - -- قم بتبديل تنشيط التحرير والسرد مباشرةً من لوحة معلومات MCP -- تطبيق ملفات تعريف المرونة من حزم السياسات المحددة مسبقًا -- إعادة ضبط حالة قاطع الدائرة من نفس لوحة العمليات - -</details> - -<details> -<summary><b>🔄 23. "أحتاج إلى رؤية وإلغاء دورة حياة مهمة A2A المباشرة"</b></summary> - -وبدون رؤية دورة الحياة، يصبح من الصعب فرز حوادث المهام. - -**كيف يحل OmniRoute المشكلة:** - -- قائمة المهام/التصفية حسب الحالة/المهارة مع ترقيم الصفحات -- التعمق في البيانات الوصفية للمهمة، والأحداث، والتحف -- نقطة نهاية إلغاء المهمة وإجراء واجهة المستخدم مع التأكيد - -</details> - -<details> -<summary><b>🌊 24. "أحتاج إلى مقاييس التدفق النشطة لتحميل A2A"</b></summary> - -يتطلب تدفق سير العمل رؤية تشغيلية للتزامن والاتصالات المباشرة. - -**كيف يحل OmniRoute المشكلة:** - -- عدادات التدفق النشطة مدمجة في حالة A2A -- الطابع الزمني للمهمة الأخيرة وعدد كل ولاية -- بطاقات لوحة القيادة A2A لمراقبة العمليات في الوقت الفعلي - -</details> - -<details> -<summary><b>🪪 25. "أحتاج إلى اكتشاف الوكيل القياسي للعملاء"</b></summary> - -يحتاج العملاء والمنسقون الخارجيون إلى بيانات تعريف يمكن قراءتها آليًا من أجل الإعداد. - -**كيف يحل OmniRoute المشكلة:** - -- تم الكشف عن بطاقة الوكيل في `/.well-known/agent.json` -- القدرات والمهارات الموضحة في واجهة المستخدم الإدارية -- تتضمن واجهة برمجة التطبيقات لحالة A2A بيانات تعريف الاكتشاف للأتمتة - -</details> - -<details> -<summary><b>🧭 26. "أحتاج إلى إمكانية اكتشاف البروتوكول في تجربة المستخدم للمنتج"</b></summary> - -إذا لم يتمكن المستخدمون من اكتشاف أسطح البروتوكول، فسوف ينخفض جودة الاعتماد والدعم. - -**كيف يحل OmniRoute المشكلة:** - -- صفحة **نقاط النهاية** الموحدة مع علامات تبويب Proxy وMCP وA2A وAPI Endpoints -- تبديل حالة الخدمة المضمنة (متصل/غير متصل) لـ MCP وA2A -- روابط من النظرة العامة إلى علامات تبويب الإدارة المخصصة - -</details> - -<details> -<summary><b>🧪 27. "أحتاج إلى التحقق من صحة البروتوكول الشامل مع عملاء حقيقيين"</b></summary> - -الاختبارات الوهمية ليست كافية للتحقق من توافق البروتوكول قبل الإصدار. - -**كيف يحل OmniRoute المشكلة:** - -- مجموعة E2E التي تعمل على تشغيل التطبيق وتستخدم نقل عميل MCP SDK الحقيقي -- اختبارات عميل A2A لاكتشاف التدفقات وإرسالها ودفقها والحصول عليها وإلغائها -- التحقق من التأكيدات ضد تدقيق MCP وواجهات برمجة تطبيقات مهام A2A - -</details> - -<details> -<summary><b>📡 28. "أحتاج إلى إمكانية ملاحظة موحدة عبر جميع الواجهات"</b></summary> - -يؤدي تقسيم إمكانية المراقبة حسب البروتوكول إلى إنشاء نقاط عمياء وMTTR أطول. - -**كيف يحل OmniRoute المشكلة:** - -- لوحات معلومات/سجلات/تحليلات موحدة في منتج واحد -- الصحة + التدقيق + طلب القياس عن بعد عبر طبقات OpenAI وMCP وA2A -- واجهات برمجة التطبيقات التشغيلية للحالة والأتمتة - -</details> - -<details> -<summary><b>💼 29. "أحتاج إلى وقت تشغيل واحد للوكيل + الأدوات + تنسيق الوكيل"</b></summary> - -يؤدي تشغيل العديد من الخدمات المنفصلة إلى زيادة تكلفة التشغيل وأوضاع الفشل. - -**كيف يحل OmniRoute المشكلة:** - -- وكيل متوافق مع OpenAI وخادم MCP وخادم A2A في مكدس واحد -- المصادقة المشتركة والمرونة وتخزين البيانات وإمكانية الملاحظة -- نموذج سياسة متسق عبر جميع أسطح التفاعل - -</details> - -<details> -<summary><b>🚀 30. "أحتاج إلى شحن عمليات سير عمل الوكيل دون امتداد التعليمات البرمجية اللاصقة"</b></summary> - -تفقد الفرق سرعتها عند دمج العديد من الخدمات والبرامج النصية المخصصة. - -**كيف يحل OmniRoute المشكلة:** - -- استراتيجية نقطة النهاية الموحدة للعملاء والوكلاء -- واجهات مستخدم لإدارة البروتوكول مدمجة ومسارات التحقق من صحة الدخان -- أسس جاهزة للإنتاج (الأمان، التسجيل، المرونة، النسخ الاحتياطي) - -</details> - -### أمثلة لقواعد اللعبة (حالات الاستخدام المتكاملة) - -** قواعد اللعبة أ: زيادة الاشتراك المدفوع إلى الحد الأقصى + نسخة احتياطية رخيصة ** - -```txt -Combo: "maximize-claude" - 1. cc/claude-opus-4-6 - 2. glm/glm-4.7 - 3. if/kimi-k2-thinking - -Monthly cost: $20 + small backup spend -Outcome: higher quality, near-zero interruption -``` - -**دليل التشغيل ب: مكدس البرمجة بدون تكلفة** - -```txt -Combo: "free-forever" - 1. gc/gemini-3-flash - 2. if/kimi-k2-thinking - 3. qw/qwen3-coder-plus - -Monthly cost: $0 -Outcome: stable free coding workflow -``` - -**Playbook C: سلسلة احتياطية تعمل دائمًا على مدار 24 ساعة طوال أيام الأسبوع** - -```txt -Combo: "always-on" - 1. cc/claude-opus-4-6 - 2. cx/gpt-5.2-codex - 3. glm/glm-4.7 - 4. minimax/MiniMax-M2.1 - 5. if/kimi-k2-thinking - -Outcome: deep fallback depth for deadline-critical workloads -``` - -**قواعد اللعبة د: عمليات العميل مع MCP + A2A** - -```txt -1) Start MCP transport (`omniroute --mcp`) for tool-driven operations -2) Run A2A tasks via `message/send` and `message/stream` -3) Observe via /dashboard/endpoint (MCP and A2A tabs) -4) Toggle services via inline status controls -``` - ---- - -## 🆓 ابدأ مجانًا — بدون تكلفة تكوين - -> قم بإعداد ترميز الذكاء الاصطناعي في دقائق بسعر **$0/الشهر**. قم بتوصيل هذه الحسابات المجانية واستخدم المجموعة المدمجة **Free Stack**. - -| خطوة | العمل | مقدمي الخدمات مقفلة | -| ---- | -------------------------------------------------- | ------------------------------------------------------------------ | -| 1 | الاتصال **Kiro** (معرف AWS Builder OAuth) | كلود سونيت 4.5، هايكو 4.5 — **غير محدود** | -| 2 | ربط **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, Deepseek-r1... — **غير محدود** | -| 3 | ربط **كوين** (رمز الجهاز) | qwen3-coder-plus، qwen3-coder-flash... — **غير محدود** | -| 4 | الاتصال **Gemini CLI** (Google OAuth) | gemini-3-flash,gemini-2.5-pro — **180 ألف/الشهر مجانًا** | -| 5 | `/dashboard/combos` → **قالب المكدس المجاني ($0)** | جولة روبن لجميع مقدمي الخدمات المجانية تلقائيًا | - -**قم بتوجيه أي IDE/CLI إلى:** `http://localhost:20128/v1` · مفتاح API: `any-string` · تم. - -> **تغطية إضافية اختيارية (مجانية أيضًا):** مفتاح Groq API (30 دورة في الدقيقة مجانًا)، NVIDIA NIM (40 دورة في الدقيقة مجانًا، أكثر من 70 طرازًا)، Cerebras (1 مليون tok/يوم)، مفتاح LongCat API (50 مليون رمز مميز/يوم!)، Cloudflare Workers AI (10 آلاف خلية عصبية/يوم، أكثر من 50 نموذجًا). - -## ⚡ بداية سريعة - -### 1) التثبيت والتشغيل - -```bash -npm install -g omniroute -omniroute -``` - -> **مستخدمي pnpm:** قم بتشغيل `pnpm approve-builds -g` بعد التثبيت لتمكين البرامج النصية للبناء الأصلي المطلوبة بواسطة `better-sqlite3` و`@swc/core`: -> -> ```bash -> pnpm install -g omniroute -> pnpm approve-builds -g # Select all packages → approve -> omniroute -> ``` - -تفتح لوحة المعلومات على `http://localhost:20128` وعنوان URL الأساسي لواجهة برمجة التطبيقات هو `http://localhost:20128/v1`. - -| الأمر | الوصف | -| ----------------------- | ------------------------------------------------------------------------------------- | -| `omniroute` | بدء تشغيل الخادم (`PORT=20128` وواجهة برمجة التطبيقات ولوحة المعلومات على نفس المنفذ) | -| `omniroute --port 3000` | اضبط منفذ Canonical/API على 3000 | -| `omniroute --mcp` | بدء تشغيل خادم MCP (نقل stdio) | -| `omniroute --no-open` | لا تفتح المتصفح تلقائيًا | -| `omniroute --help` | عرض المساعدة | - -وضع المنفذ المقسم الاختياري: - -```bash -PORT=20128 DASHBOARD_PORT=20129 omniroute -# API: http://localhost:20128/v1 -# Dashboard: http://localhost:20129 -``` - -### 2) قم بتوصيل مقدمي الخدمة وإنشاء مفتاح واجهة برمجة التطبيقات (API) الخاص بك - -1. افتح لوحة المعلومات → `Providers` وقم بتوصيل موفر واحد على الأقل (مفتاح OAuth أو API). -2. افتح لوحة المعلومات → `Endpoints` وأنشئ مفتاح API. -3. (اختياري) افتح لوحة المعلومات → `Combos` وقم بتعيين السلسلة الاحتياطية. - -### 3) قم بتوجيه أداة الترميز الخاصة بك إلى OmniRoute - -```txt -Base URL: http://localhost:20128/v1 -API Key: [copy from Endpoint page] -Model: if/kimi-k2-thinking (or any provider/model prefix) -``` - -يعمل مع Claude Code، وCodex CLI، وGemini CLI، وCursor، وCline، وOpenClaw، وOpenCode، وحزم SDK المتوافقة مع OpenAI. - -### 4) تمكين البروتوكولات والتحقق من صحتها (الإصدار 2.0) - -**MCP (للعمليات التي تعتمد على الأدوات):** - -```bash -omniroute --mcp -``` - -ثم قم بتوصيل عميل MCP الخاص بك عبر `stdio` وأدوات الاختبار مثل: - -- `omniroute_get_health` -- `omniroute_list_combos` - -**A2A (لسير العمل من وكيل إلى وكيل):** - -```bash -curl http://localhost:20128/.well-known/agent.json -``` - -```bash -curl -X POST http://localhost:20128/a2a \ - -H 'content-type: application/json' \ - -d '{"jsonrpc":"2.0","id":"quickstart","method":"message/send","params":{"skill":"quota-management","messages":[{"role":"user","content":"Give me a short quota summary."}]}}' -``` - -### 5) التحقق من صحة كل شيء من البداية إلى النهاية (مستحسن) - -```bash -npm run test:protocols:e2e -``` - -يتحقق هذا الجناح من تدفقات عميل MCP وA2A الحقيقية مقابل تطبيق قيد التشغيل. - -### البديل: التشغيل من المصدر - -```bash -cp .env.example .env -npm install -PORT=20128 DASHBOARD_PORT=20129 NEXT_PUBLIC_BASE_URL=http://localhost:20129 npm run dev -``` - ---- - -## 🐳 عامل الميناء - -OmniRoute متاح كصورة Docker عامة على [Docker Hub](https://hub.docker.com/r/diegosouzapw/omniroute). - -**الجري السريع:** - -```bash -docker run -d \ - --name omniroute \ - --restart unless-stopped \ - -p 20128:20128 \ - -v omniroute-data:/app/data \ - diegosouzapw/omniroute:latest -``` - -** مع ملف البيئة: ** - -```bash -# Copy and edit .env first -cp .env.example .env - -docker run -d \ - --name omniroute \ - --restart unless-stopped \ - --env-file .env \ - -p 20128:20128 \ - -v omniroute-data:/app/data \ - diegosouzapw/omniroute:latest -``` - -**استخدام Docker Compose:** - -```bash -# Base profile (no CLI tools) -docker compose --profile base up -d - -# CLI profile (Claude Code, Codex, OpenClaw built-in) -docker compose --profile cli up -d -``` - -| صورة | العلامة | الحجم | الوصف | -| ------------------------ | -------- | ------------- | ---------------- | -| `diegosouzapw/omniroute` | `latest` | ~250 ميجابايت | أحدث إصدار مستقر | -| `diegosouzapw/omniroute` | `1.0.3` | ~250 ميجابايت | النسخة الحالية | - ---- - -## 🖥️ تطبيق سطح المكتب - غير متصل بالإنترنت ومتاح دائمًا - -> 🆕 **جديد!** OmniRoute متوفر الآن كتطبيق سطح مكتب أصلي\*\* لأنظمة التشغيل Windows وmacOS وLinux. - -قم بتشغيل OmniRoute كتطبيق مستقل لسطح المكتب - لا توجد محطة طرفية أو متصفح أو إنترنت مطلوب للطرز المحلية. يتضمن التطبيق المعتمد على Electron ما يلي: - -- 🖥️ **النافذة الأصلية** — نافذة تطبيق مخصصة مع تكامل علبة النظام -- 🔄 **البدء التلقائي** — قم بتشغيل OmniRoute عند تسجيل الدخول إلى النظام -- 🔔 **الإشعارات الأصلية** — احصل على تنبيهات بشأن استنفاد الحصص أو مشكلات المزود -- ⚡ **التثبيت بنقرة واحدة** — NSIS (Windows)، DMG (macOS)، AppImage (Linux) -- 🌐 **وضع عدم الاتصال بالإنترنت** — يعمل بشكل كامل دون اتصال بالإنترنت مع الخادم المُجمَّع - -### بداية سريعة - -```bash -# Development mode -npm run electron:dev - -# Build for your platform -npm run electron:build # Current platform -npm run electron:build:win # Windows (.exe) -npm run electron:build:mac # macOS (.dmg) — x64 & arm64 -npm run electron:build:linux # Linux (.AppImage) -``` - -### علبة النظام - -عند تصغيره، يظل OmniRoute موجودًا في علبة النظام لديك من خلال الإجراءات السريعة: - -- فتح لوحة القيادة -- تغيير منفذ الخادم -- قم بإنهاء التطبيق - -📖 التوثيق الكامل: [**OMNI_TOKEN_153**](electron/README.md) - ---- - -## 💰 لمحة سريعة عن الأسعار - -| الطبقة | مقدم | التكلفة | إعادة ضبط الحصص | الأفضل لـ | -| ---------------------------------- | ---------------------------- | -------------------------------------- | ------------------------------------------- | ---------------------------------------------------------------------- | -| **💳الإشتراك** | كلود كود (برو) | 20 دولارًا شهريًا | 5 ساعات + أسبوعي | اشتركت بالفعل | -| | الدستور الغذائي (زائد / برو) | 20-200 دولار شهريًا | 5 ساعات + أسبوعي | مستخدمي OpenAI | -| | الجوزاء CLI | **مجاني** | 180 ألف/شهر + 1 ألف/يوم | الجميع! | -| | جيثب مساعد الطيار | 10-19 دولارًا شهريًا | شهري | مستخدمي جيثب | -| **🔑 مفتاح واجهة برمجة التطبيقات** | نفيديا نيم | **مجانًا** (مطور للأبد) | ~40 دورة في الدقيقة | 70+ نماذج مفتوحة | -| | المخيخ | **مجانًا** (1 مليون توك/يوم) | 60 ألف دورة في الدقيقة / 30 دورة في الدقيقة | الأسرع في العالم | -| | جروك | **مجانًا** (30 دورة في الدقيقة) | 14.4K دورة في الدقيقة | لاما/جيما فائقة السرعة | -| | ديب سيك V3.2 | 0.27 دولار/1.10 دولار لكل مليون | لا شيء | أفضل منطق السعر/الجودة | -| | xAI Grok-4 سريع | **0.20 دولار/0.50 دولار لكل مليون** 🆕 | لا شيء | أسرع + أداة استدعاء، منخفضة للغاية | -| | xAI Grok-4 (قياسي) | 0.20 دولار/1.50 دولار لكل مليون 🆕 | لا شيء | المنطق الرائد من xAI | -| | ميسترال | تجربة مجانية + مدفوعة | معدل محدود | الذكاء الاصطناعي الأوروبي | -| | اوبن راوتر | الدفع لكل استخدام | لا شيء | 100+ نماذج مجمعة. | -| **💰 رخيص** | GLM-5 (عبر Z.AI) 🆕 | 0.5 دولار/1 مليون | يوميا 10 صباحا | إخراج 128 كيلو، أحدث الرائد | -| | جي إل إم-4.7 | 0.6 دولار/1 مليون | يوميا 10 صباحا | نسخة احتياطية للميزانية | -| | ميني ماكس M2.5 🆕 | إدخال 0.3 دولار/1 مليون | المتداول لمدة 5 ساعات | الاستدلال + المهام الوكيلة | -| | ميني ماكس M2.1 | 0.2 دولار/1 مليون | المتداول لمدة 5 ساعات | الخيار الأرخص | -| | كيمي K2.5 (Moonshot API) 🆕 | الدفع لكل استخدام | لا شيء | الوصول المباشر إلى Moonshot API | -| | كيمي ك2 | 9 دولارات شهريًا مسطحة | 10 مليون رمز/شهر | التكلفة المتوقعة | -| **🆓مجانًا** | اي فلو | **$0** | غير محدود | 5 نماذج غير محدودة | -| | كوين | **$0** | غير محدود | 4 نماذج غير محدودة | -| | كيرو | **$0** | غير محدود | كلود سونيت/هايكو (AWS Builder) | -| | LongCat Flash-Lite 🆕 | **$0** (50 مليون توك/يوم 🔥) | 1 دورة في الثانية | أكبر حصة مجانية على وجه الأرض | -| | التلقيحات AI 🆕 | **$0** (لا حاجة لمفتاح) | 1 متطلب/15 ثانية | جي بي تي-5، كلود، ديب سيك، لاما 4 | -| | Cloudflare Workers AI 🆕 | **$0** (10 آلاف خلية عصبية/اليوم) | ~150 راحة/يوم | أكثر من 50 نموذجًا، حافة عالمية | -| | سكيليواي AI 🆕 | **$0** (إجمالي 1 مليون رمز) | معدل محدود | الاتحاد الأوروبي/اللائحة العامة لحماية البيانات، Qwen3 235B، Llama 70B | - -> 🆕 **تمت إضافة نماذج جديدة (مارس 2026):** عائلة Grok-4 Fast بسعر 0.20 دولار أمريكي/0.50 دولار أمريكي/م (تم قياسها عند 1143 مللي ثانية - أسرع بنسبة 30% من Gemini 2.5 Flash)، وGLM-5 عبر Z.AI بإخراج 128 ألف، واستدلال MiniMax M2.5، وتسعير DeepSeek V3.2 المحدث، وKimi K2.5 عبر Moonshot direct API. - -**💡 $0 Combo Stack — الإعداد المجاني الكامل:** - -``` -# 🆓 Ultimate Free Stack 2026 — 11 Providers, $0 Forever -Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED -LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 -Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed -Qwen (qw/) → qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next UNLIMITED -Gemini (gemini/) → Gemini 2.5 Flash — 1,500 req/day free API key -Cloudflare AI (cf/) → Llama 70B, Gemma 3, Mistral — 10K Neurons/day -Scaleway (scw/) → Qwen3 235B, Llama 70B — 1M free tokens (EU) -Groq (groq/) → Llama/Gemma ultra-fast — 14.4K req/day -NVIDIA NIM (nvidia/) → 70+ open models — 40 RPM forever -Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day -``` - -**تكلفة صفر. لا تتوقف أبدًا عن البرمجة. ** قم بتكوين هذا كمجموعة واحدة من OmniRoute وستحدث جميع الإجراءات الاحتياطية تلقائيًا - لا يوجد تبديل يدوي على الإطلاق. - ---- - ---- - -## 🆓 نماذج مجانية — ما تحصل عليه بالفعل - -> جميع الموديلات أدناه **مجانية بنسبة 100% ولا تتطلب أي بطاقة ائتمان**. يقوم OmniRoute بالمسارات التلقائية بينهما عند نفاد حصة واحدة - اجمعها جميعًا للحصول على مجموعة غير قابلة للكسر بقيمة 0 دولار. - -### 🔵 نماذج كلود (عبر Kiro — AWS Builder ID) - -| نموذج | البادئة | الحد | حد السعر | -| ------------------- | ------- | ------------- | ------------------------------------ | -| `claude-sonnet-4.5` | `kr/` | **غير محدود** | لم يتم الإبلاغ عن الحد الأقصى اليومي | -| `claude-haiku-4.5` | `kr/` | **غير محدود** | لم يتم الإبلاغ عن الحد الأقصى اليومي | -| `claude-opus-4.6` | `kr/` | **غير محدود** | أحدث أعمال أوبوس عبر كيرو | - -### 🟢 نماذج QODER (بروتوكول OAuth مجاني — بدون بطاقة ائتمان) - -| نموذج | البادئة | الحد | حد السعر | -| ------------------ | ------- | ------------- | ----------------------------- | -| `kimi-k2-thinking` | `if/` | **غير محدود** | لم يتم الإبلاغ عن الحد الأقصى | -| `qwen3-coder-plus` | `if/` | **غير محدود** | لم يتم الإبلاغ عن الحد الأقصى | -| `deepseek-r1` | `if/` | **غير محدود** | لم يتم الإبلاغ عن الحد الأقصى | -| `minimax-m2.1` | `if/` | **غير محدود** | لم يتم الإبلاغ عن الحد الأقصى | -| `kimi-k2` | `if/` | **غير محدود** | لم يتم الإبلاغ عن الحد الأقصى | - -### 🟡 نماذج QWEN (مصادقة رمز الجهاز) - -| نموذج | البادئة | الحد | حد السعر | -| ------------------- | ------- | ------------- | ----------------------------- | -| `qwen3-coder-plus` | `qw/` | **غير محدود** | لم يتم الإبلاغ عن الحد الأقصى | -| `qwen3-coder-flash` | `qw/` | **غير محدود** | لم يتم الإبلاغ عن الحد الأقصى | -| `qwen3-coder-next` | `qw/` | **غير محدود** | لم يتم الإبلاغ عن الحد الأقصى | -| `vision-model` | `qw/` | **غير محدود** | الوسائط المتعددة (صور) | - -### 🟣 GEMINI CLI (Google OAuth) - -| نموذج | البادئة | الحد | حد السعر | -| ------------------------ | ------- | ------------------------------- | ------------------- | -| `gemini-3-flash-preview` | `gc/` | **180 ألف توك/شهر** + 1 ألف/يوم | إعادة الضبط الشهرية | -| `gemini-2.5-pro` | `gc/` | 180 ألف/شهر (مسبح مشترك) | جودة عالية | - -### ⚫ NVIDIA NIM (مفتاح واجهة برمجة التطبيقات المجاني — build.nvidia.com) - -| الطبقة | الحد اليومي | حد السعر | ملاحظات | -| ----------- | ----------------- | ----------------------- | ----------------------------------------------------------------- | -| مجاني (ديف) | لا يوجد غطاء رمزي | **~40 دورة في الدقيقة** | أكثر من 70 نموذجًا؛ الانتقال إلى حدود المعدل النقي منتصف عام 2025 | - -النماذج المجانية الشهيرة: `moonshotai/kimi-k2.5` (Kimi K2.5)، `z-ai/glm4.7` (GLM 4.7)، `deepseek-ai/deepseek-v3.2` (DeepSeek V3.2)، `nvidia/llama-3.3-70b-instruct`، `deepseek/deepseek-r1` - -### ⚪ CEREBRAS (مفتاح واجهة برمجة التطبيقات المجاني — inference.cerebras.ai) - -| الطبقة | الحد اليومي | حد السعر | ملاحظات | -| ------ | -------------------- | ------------------------------------------- | --------------------------------------------- | -| مجاني | **1 مليون قطعة/يوم** | 60 ألف دورة في الدقيقة / 30 دورة في الدقيقة | أسرع استنتاج LLM في العالم؛ إعادة تعيين يوميا | - -متاح مجانًا: `llama-3.3-70b`، `llama-3.1-8b`، `deepseek-r1-distill-llama-70b` - -### 🔴 GROQ (مفتاح واجهة برمجة التطبيقات المجاني — console.groq.com) - -| الطبقة | الحد اليومي | حد السعر | ملاحظات | -| ------ | ------------------------------- | ---------------------------- | ---------------------------------------------- | -| مجاني | ** 14.4 كيلو دورة في الدقيقة ** | 30 دورة في الدقيقة لكل موديل | لا توجد بطاقة ائتمان؛ 429 على الحد، غير مشحونة | - -متاح مجانًا: `llama-3.3-70b-versatile`، `gemma2-9b-it`، `mixtral-8x7b`، `whisper-large-v3` - -### 🔴 LONGCAT AI (مفتاح واجهة برمجة التطبيقات المجاني — longcat.chat) 🆕 - -| نموذج | البادئة | الحصة اليومية المجانية | ملاحظات | -| ----------------------------- | ------- | ---------------------- | --------------------------- | -| `LongCat-Flash-Lite` | `lc/` | **50 مليون رمز** 💥 | أكبر حصة مجانية على الإطلاق | -| `LongCat-Flash-Chat` | `lc/` | 500 ألف رمز | دردشة متعددة المنعطفات | -| `LongCat-Flash-Thinking` | `lc/` | 500 ألف رمز | الاستدلال / CoT | -| `LongCat-Flash-Thinking-2601` | `lc/` | 500 ألف رمز | نسخة يناير 2026 | -| `LongCat-Flash-Omni-2603` | `lc/` | 500 ألف رمز | الوسائط المتعددة | - -> مجاني 100% أثناء وجودك في النسخة التجريبية العامة. قم بالتسجيل في [longcat.chat](https://longcat.chat) عبر البريد الإلكتروني أو الهاتف. تتم إعادة الضبط يوميًا في تمام الساعة 00:00 بالتوقيت العالمي المنسق. - -### 🟢 الذكاء الاصطناعي للتلقيح (لا يلزم وجود مفتاح API) 🆕 - -| نموذج | البادئة | حد السعر | مقدم خلف | -| ---------- | ------- | ---------------- | ---------------------------- | -| `openai` | `pol/` | 1 متطلب/15 ثانية | جي بي تي-5 | -| `claude` | `pol/` | 1 متطلب/15 ثانية | أنثروبي كلود | -| `gemini` | `pol/` | 1 متطلب/15 ثانية | جوجل الجوزاء | -| `deepseek` | `pol/` | 1 متطلب/15 ثانية | ديب سيك V3 | -| `llama` | `pol/` | 1 متطلب/15 ثانية | ميتا لاما 4 كشاف | -| `mistral` | `pol/` | 1 متطلب/15 ثانية | ميسترال لمنظمة العفو الدولية | - -> ✨ **بدون احتكاك:** لا يوجد اشتراك، ولا يوجد مفتاح API. أضف موفر التلقيح بحقل مفتاح فارغ وسيعمل على الفور. - -### 🟠 الذكاء الاصطناعي لعمال CLOUDFLARE (مفتاح API مجاني — cloudflare.com) 🆕 - -| الطبقة | الخلايا العصبية اليومية | الاستخدام المعادل | ملاحظات | -| ------ | ----------------------- | -------------------------------------------- | ----------------------------------- | -| مجاني | **10,000** | ~150 LLM resp / 500 ثانية صوت / 15 ألف تضمين | الحافة العالمية، أكثر من 50 نموذجًا | - -النماذج المجانية الشهيرة: `@cf/meta/llama-3.3-70b-instruct`، `@cf/google/gemma-3-12b-it`، `@cf/openai/whisper-large-v3-turbo` (صوت مجاني!)، `@cf/qwen/qwen2.5-coder-15b-instruct` - -> يتطلب رمز API المميز + معرف الحساب من [dash.cloudflare.com](https://dash.cloudflare.com). قم بتخزين معرف الحساب في إعدادات الموفر. - -### 🟣 SCALEWAY AI (مليون عملة مجانية —scaleway.com) 🆕 - -| الطبقة | حصة مجانية | الموقع | ملاحظات | -| ------ | -------------- | -------------------------- | ---------------------------------- | -| مجاني | **مليون قطعة** | 🇫🇷 باريس، الاتحاد الأوروبي | لا حاجة لبطاقة الائتمان ضمن الحدود | - -متاح مجانًا: `qwen3-235b-a22b-instruct-2507` (Qwen3 235B!)، `llama-3.1-70b-instruct`، `mistral-small-3.2-24b-instruct-2506`، `deepseek-v3-0324` - -> متوافقة مع الاتحاد الأوروبي/اللائحة العامة لحماية البيانات. احصل على مفتاح API على [console.scaleway.com](https://console.scaleway.com). - -> **💡 المجموعة المجانية المطلقة (11 مقدمًا، 0 دولار للأبد):** -> -> ``` -> Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -> Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED -> LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 -> Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed -> Qwen (qw/) → qwen3-coder models UNLIMITED -> Gemini (gemini/) → Gemini 2.5 Flash — 1,500 req/day free -> Cloudflare AI (cf/) → 50+ models — 10K Neurons/day -> Scaleway (scw/) → Qwen3 235B, Llama 70B — 1M free tokens (EU) -> Groq (groq/) → Llama/Gemma — 14.4K req/day ultra-fast -> NVIDIA NIM (nvidia/) → 70+ open models — 40 RPM forever -> Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day -> ``` - -## 🎙️ مجموعة النسخ المجانية - -> قم بنسخ أي صوت/فيديو مقابل **$0** — تقدم Deepgram مبلغًا مجانيًا بقيمة 200 دولار أمريكي، ونسخة احتياطية من AssemblyAI بقيمة 50 دولارًا أمريكيًا، وGroq Whisper كنسخة احتياطية غير محدودة للطوارئ. - -| مقدم | اعتمادات مجانية | أفضل موديل | حد السعر | -| ----------------- | -------------------------------- | ----------------------------------------------------------------- | ------------------------------------------- | -| 🟢 **ديبجرام** | ** 200 دولار مجانًا ** (اشتراك) | `nova-3` — أفضل دقة، أكثر من 30 لغة | لا يوجد حد لعدد RPM على الاعتمادات المجانية | -| 🔵 **AssemblyAI** | ** 50 دولارًا مجانًا ** (اشتراك) | `universal-3-pro` — الفصول، المشاعر، معلومات تحديد الهوية الشخصية | لا يوجد حد لعدد RPM على الاعتمادات المجانية | -| 🔴 **جروق** | **مجاني للأبد** | `whisper-large-v3` — OpenAI Whisper | 30 دورة في الدقيقة (معدل محدود) | - -**التحرير والسرد المقترح في `/dashboard/combos`:** - -``` -Name: free-transcription -Strategy: Priority -Nodes: - [1] deepgram/nova-3 → uses $200 free first - [2] assemblyai/universal-3-pro → fallback when Deepgram credits run out - [3] groq/whisper-large-v3 → free forever, emergency fallback -``` - -بعد ذلك، انتقل إلى `/dashboard/media` → علامة التبويب **Transcription**: قم بتحميل أي ملف صوت أو فيديو ← حدد نقطة نهاية التحرير والسرد الخاصة بك ← احصل على النسخ بتنسيقات مدعومة. - -## 💡 الميزات الرئيسية - -تم تصميم OmniRoute v2.0 كمنصة تشغيلية، وليس مجرد وكيل ترحيل. - -### 🆕 جديد — تحسينات مستوحاة من ClawRouter (مارس 2026) - -| ميزة | ماذا يفعل | -| ------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | -| ⚡ **Grok-4 Fast Family** | طرازات xAI بسعر 0.20 دولارًا أمريكيًا/0.50 دولارًا أمريكيًا للمتر المربع - تم قياسها بـ 1143 مللي ثانية (أسرع بنسبة 30% من Gemini 2.5 Flash) | -| 🧠 **GLM-5 عبر Z.AI** | سياق إخراج 128 ألفًا، 0.5 دولار أمريكي/1 مليون — أحدث منتج رئيسي من عائلة GLM | -| 🔮 **ميني ماكس M2.5** | الاستدلال + المهام الوكيلة بسعر 0.30 دولارًا أمريكيًا/مليون واحد — ترقية كبيرة من M2.1 | -| 🎯 **أداة استدعاء العلم لكل نموذج** | لكل طراز `toolCalling: true/false` في التسجيل - يتخطى AutoCombo الطرز التي لا تحتوي على أدوات | -| 🌍 **كشف النوايا المتعددة اللغات** | الكلمات الأساسية PT/ZH/ES/AR في تسجيل AutoCombo — اختيار نموذج أفضل للمحتوى غير الإنجليزي | -| 📊 **الإجراءات الاحتياطية المستندة إلى المعايير** | زمن استجابة حقيقي p95 من الطلبات المباشرة يغذي تسجيل التحرير والسرد - يتعلم AutoCombo من البيانات الفعلية | -| 🔁 **طلب إلغاء البيانات المكررة** | نافذة إلغاء البيانات المستندة إلى تجزئة المحتوى — آمنة متعددة الوكلاء، وتمنع الرسوم المكررة | -| 🔌 **استراتيجية جهاز التوجيه القابل للتوصيل** | واجهة `RouterStrategy` القابلة للتوسيع - أضف منطق توجيه مخصص كمكونات إضافية | - -### 🚀 الإصدار 2.0.9+ السابق — ساحة اللعب وبصمات أصابع CLI وACP - -| ميزة | ماذا يفعل | -| --------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 🎮 **ساحة اللعب النموذجية** | صفحة لوحة التحكم لاختبار أي نموذج مباشرة - محددات الموفر/النموذج/نقطة النهاية، محرر موناكو، البث، الإجهاض، التوقيت | -| 🔏 **مطابقة بصمة CLI** | ترتيب الرأس/النص لكل موفر لمطابقة توقيعات CLI الأصلية - قم بالتبديل لكل موفر في الإعدادات > الأمان. ** يتم الاحتفاظ بـ IP الوكيل الخاص بك ** | -| 🤝 **دعم ACP (بروتوكول العميل الوكيل)** | اكتشاف وكيل CLI (Codex، Claude، Goose، Gemini CLI، OpenClaw + 9 آخرين)، مولد العملية، `/api/acp/agents` نقطة النهاية | -| 🤖 **لوحة تحكم وكلاء ACP** | التصحيح › صفحة الوكلاء - شبكة مكونة من 14 وكيلًا مع حالة التثبيت والإصدار ونموذج الوكيل المخصص لأي أداة CLI. يحصل مستخدمو **OpenCode** على زر "تنزيل opencode.json" الذي يقوم تلقائيًا بإنشاء تكوين جاهز للاستخدام مع جميع الطرز المتاحة. | -| 🔧 **نموذج مخصص `apiFormat` التوجيه** | يتم الآن توجيه النماذج المخصصة ذات `apiFormat: "responses"` بشكل صحيح إلى مترجم Responses API | -| 🏢 **عزل مساحة عمل الدستور الغذائي** | مساحات عمل Codex متعددة لكل بريد إلكتروني - يفصل OAuth الاتصالات بشكل صحيح عن طريق معرف مساحة العمل | -| 🔄 **التحديث التلقائي الإلكتروني** | يتحقق تطبيق سطح المكتب من التحديثات + التثبيت التلقائي عند إعادة التشغيل | - -### 🤖 عمليات الوكيل والبروتوكول (الإصدار 2.0) - -| ميزة | ماذا يفعل | -| ----------------------------------- | ---------------------------------------------------------------------------------------------------- | -| 🔧 **خادم MCP (16 أداة)** | أدوات IDE/agent عبر 3 وسائل نقل: stdio، SSE (`/api/mcp/sse`)، HTTP القابل للتدفق (`/api/mcp/stream`) | -| 🤝 **خادم A2A (JSON-RPC + SSE)** | تنفيذ المهام من وكيل إلى وكيل مع تدفقات المزامنة والتدفق | -| 🧭 **صفحة نقاط النهاية الموحدة** | صفحة إدارة مبوبة مع علامات تبويب Endpoint Proxy وMCP وA2A وAPI Endpoints | -| 🎚️ ** تبديل تمكين / تعطيل الخدمة ** | مفاتيح التشغيل/الإيقاف لـ MCP وA2A مع ثبات الإعدادات (الافتراضي: OFF) | -| 🛰️ **نبضات وقت تشغيل MCP** | حالة العملية الحقيقية (معرف المنتج، وقت التشغيل، عمر نبضات القلب، النقل، وضع النطاق) | -| 📋 **مسار تدقيق MCP** | سجلات التدقيق القابلة للتصفية مع النجاح/الفشل والإسناد الرئيسي | -| 🔐 **تنفيذ نطاق MCP** | 9 أذونات نطاق تفصيلية للوصول إلى الأدوات الخاضعة للرقابة | -| 📡 **إدارة دورة حياة المهام A2A** | قائمة/تصفية المهام، فحص الأحداث/التحف، إلغاء المهام قيد التشغيل | -| 📋 **اكتشاف بطاقة الوكيل** | `/.well-known/agent.json` للاكتشاف التلقائي للعميل | -| 🧪 **أداة اختبار البروتوكول E2E** | يتدفق عميل MCP SDK + A2A الحقيقي في `test:protocols:e2e` | -| ⚙️ **ضوابط التشغيل** | مجموعة التبديل، وتطبيق ملفات تعريف المرونة، وإعادة ضبط القواطع من سطح تحكم واحد | - -### 🧠 التوجيه والاستخبارات - -| ميزة | ماذا يفعل | -| ----------------------------------------- | ----------------------------------------------------------------------- | -| 🎯 **احتياطي ذكي من 4 طبقات** | المسار التلقائي: الاشتراك → مفتاح API → رخيص → مجاني | -| 📊 **تتبع الحصص في الوقت الفعلي** | عدد الرموز الحية + إعادة تعيين العد التنازلي لكل مزود | -| 🔄 **تنسيق الترجمة** | OpenAI ↔ Claude ↔ Gemini ↔ الردود مع التحويلات الآمنة للمخطط | -| 👥 **دعم الحسابات المتعددة** | حسابات متعددة لكل مزود مع اختيار ذكي | -| 🔄 **تحديث تلقائي للرمز** | يتم تحديث رموز OAuth المميزة تلقائيًا من خلال إعادة المحاولة | -| 🎨 **مجموعات مخصصة** | 6 استراتيجيات موازنة + التحكم في السلسلة الاحتياطية | -| 🌐 **جهاز توجيه Wildcard** | `provider/*` التوجيه الديناميكي | -| 🧠 **التفكير في ضوابط الميزانية** | حدود التفكير المنطقي والتلقائي والمخصص والتكيفي | -| 🔀 **الأسماء المستعارة للنماذج** | مدمج + اسم مستعار للنموذج المخصص وأمان الترحيل | -| ⚡ **تدهور الخلفية** | قم بتوجيه مهام الخلفية ذات الأولوية المنخفضة إلى نماذج أرخص | -| 🧪 ** التوجيه الذكي المدرك للمهام ** | تحديد النموذج تلقائيًا حسب نوع المحتوى (الترميز/الرؤية/التحليل/التلخيص) | -| 💬 **الحقن الفوري للنظام** | يتم تطبيق ضوابط السلوك العالمية بشكل متسق | -| 📄 **توافق واجهة برمجة التطبيقات للردود** | الدعم الكامل `/v1/responses` للدستور الغذائي وسير عمل الوكيل المتقدم | - -### 🎵 واجهات برمجة التطبيقات متعددة الوسائط - -| ميزة | ماذا يفعل | -| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 🖼️ **إنشاء الصور** | `/v1/images/generations` مع الواجهات الخلفية السحابية والمحلية | -| 📐 **المضامين** | `/v1/embeddings` للبحث وخطوط أنابيب RAG | -| 🎤 **نسخ صوتي** | `/v1/audio/transcriptions` — 7 مقدمي خدمات (Deepgram Nova 3، AssemblyAI، Groq Whisper، HuggingFace، ElevenLabs، OpenAI، Azure)، اكتشاف تلقائي للغة، دعم MP4/MP3/WAV | -| 🔊 **تحويل النص إلى كلام** | `/v1/audio/speech` — 10 مقدمي خدمات (ElevenLabs، OpenAI، Deepgram، Cartesia، PlayHT، HuggingFace، Nvidia NIM، Inworld، Coqui، Tortoise) مع رسائل الخطأ الصحيحة | -| 🎬 **توليد الفيديو** | `/v1/videos/generations` (سير عمل ComfyUI + SD WebUI) | -| 🎵 **جيل الموسيقى** | `/v1/music/generations` (ComfyUI workflows) | -| 🛡️ **اعتدالات** | `/v1/moderations` فحوصات السلامة | -| 🔀 **إعادة الترتيب** | `/v1/rerank` لتسجيل نقاط الصلة | -| 🔍 **بحث الويب** 🆕 | `/v1/search` — 5 مقدمي خدمات (Serper، Brave، Perplexity، Exa، Tavily)، أكثر من 6500 مجانًا شهريًا، تجاوز الفشل التلقائي، ذاكرة التخزين المؤقت | - -### 🛡️ المرونة والأمن والحوكمة - -| ميزة | ماذا يفعل | -| -------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | -| 🔌 **قواطع الدائرة** | رحلة/استرداد لكل نموذج مع عناصر التحكم في العتبة | -| 🎯 **نماذج تدرك نقطة النهاية** | تعلن النماذج المخصصة عن نقاط النهاية المدعومة + تنسيق API | -| 🛡️ **القطيع المضاد للرعد** | حماية Mutex + الإشارة في أحداث إعادة المحاولة/التقييم | -| 🧠 ** ذاكرة التخزين المؤقت الدلالية + التوقيع ** | تقليل التكلفة/زمن الوصول باستخدام طبقتين من ذاكرة التخزين المؤقت | -| ⚡ **طلب العجز** | نافذة الحماية المكررة | -| 🔒 **انتحال بصمة الإصبع TLS** | بصمة TLS الشبيهة بالمتصفح - **تقلل من اكتشاف الروبوتات ووضع علامة على الحساب** | -| 🔏 **مطابقة بصمة CLI** | يطابق توقيعات طلب واجهة سطر الأوامر (CLI) الأصلية - **يقلل من مخاطر الحظر مع الحفاظ على عنوان IP الخاص بالوكيل** | -| 🌐 **تصفية IP** | التحكم في القائمة المسموح بها/القائمة المحظورة لعمليات النشر المكشوفة | -| 📊 **حدود المعدل القابلة للتحرير** | حدود عالمية/مستوى مزود قابلة للتكوين مع الثبات | -| 🔑 **إدارة مفاتيح واجهة برمجة التطبيقات + تحديد النطاق** | تأمين إصدار/تدوير المفتاح وضوابط النموذج/المزود | -| 🛡️ **محمي `/models`** | بوابة مصادقة اختيارية وإخفاء الموفر لكتالوج النماذج | - -### 📊 إمكانية الملاحظة والتحليلات - -| ميزة | ماذا يفعل | -| -------------------------------- | ------------------------------------------------------------------------- | -| 📝 **الطلب + تسجيل الوكيل** | الطلب/الاستجابة الكاملة وتسجيل الوكيل | -| 📉 **Streamed Detailed Logs** 🆕 | Reconstructs SSE payload streams cleanly into the UI | -| 📋 **لوحة تحكم السجلات الموحدة** | طلب العروض والوكيل والتدقيق ووحدة التحكم في صفحة واحدة | -| 🔍 **طلب القياس عن بعد** | زمن الاستجابة p50/p95/p99 وطلب التتبع | -| 🏥 **لوحة المعلومات الصحية** | وقت التشغيل، حالات الكسارة، عمليات الإغلاق، إحصائيات ذاكرة التخزين المؤقت | -| 💰 **تتبع التكلفة** | ضوابط الميزانية ورؤية التسعير لكل نموذج | -| 📈 **تصورات التحليلات** | رؤى استخدام النموذج/الموفر وطرق عرض الاتجاه | -| 🧪 **إطار التقييم** | اختبار المجموعة الذهبية مع استراتيجيات المطابقة القابلة للتكوين | - -### ☁️ النشر والمنصة - -| ميزة | ماذا يفعل | -| -------------------------------- | --------------------------------------------------------- | -| 🌐 **النشر في أي مكان** | المضيف المحلي، VPS، Docker، البيئات السحابية | -| 💾 **المزامنة السحابية** | مزامنة التكوين عبر عامل السحابة | -| 🔄 **النسخ الاحتياطي/الاستعادة** | تدفقات التصدير/الاستيراد والتعافي من الكوارث | -| 🧙 **معالج الإعداد** | الإعداد الموجه لأول مرة | -| 🔧 **لوحة تحكم أدوات CLI** | إعداد بنقرة واحدة لأدوات الترميز الشائعة | -| 🎮 **ساحة اللعب النموذجية** | اختبر أي موفر/نموذج/نقطة نهاية من لوحة المعلومات | -| 🔏 **تبديل بصمة الإصبع CLI** | مطابقة بصمات الأصابع لكل موفر في الإعدادات > الأمان | -| 🌐 **i18n (30 لغة)** | لوحة تحكم كاملة + دعم لغة المستندات مع تغطية RTL | -| 🧹 **مسح كافة النماذج** | مسح قائمة النماذج بنقرة واحدة في تفاصيل المزود | -| 👁️ **Sidebar Controls** 🆕 | Hide components and integrations from Appearance Settings | -| 📋 **نماذج الإصدارات** | قوالب GitHub الموحدة للأخطاء والميزات | -| 📂 **دليل البيانات المخصصة** | `DATA_DIR` تجاوز لموقع التخزين | - -### ميزة الغوص العميق - -#### إجراء احتياطي ذكي مع التحكم العملي في التكلفة - -```txt -Combo: "my-coding-stack" - 1. cc/claude-opus-4-6 - 2. nvidia/llama-3.3-70b - 3. glm/glm-4.7 - 4. if/kimi-k2-thinking -``` - -عند فشل الحصة أو المعدل أو الصحة، ينتقل OmniRoute تلقائيًا إلى المرشح التالي دون التبديل اليدوي. - -#### إدارة البروتوكول مرئية وقابلة للتشغيل - -- يمكن اكتشاف MCP + A2A في واجهة المستخدم والمستندات (غير مخفية) -- تعرض واجهات برمجة التطبيقات لحالة البروتوكول بيانات التشغيل المباشرة (`/api/mcp/*`، `/api/a2a/*`) -- تتضمن لوحات المعلومات إجراءات لعمليات اليوم الثاني (تبديل التحرير والسرد، وإعادة ضبط الكسارة، وإلغاء المهام) - -#### سير عمل المترجم + التحقق من الصحة - -منطقة المترجم تشمل: - -- **الملعب**: طلب عمليات التحقق من التحويل -- **أداة اختبار الدردشة**: الطلب/الإجابة الكاملة ذهابًا وإيابًا -- **منصة الاختبار**: حالات متعددة في جولة واحدة -- **المراقبة المباشرة**: عرض حركة المرور في الوقت الحقيقي - -بالإضافة إلى التحقق من صحة البروتوكول مع عملاء حقيقيين عبر `npm run test:protocols:e2e`. - -> 📖 **[MCP Server README](open-sse/mcp-server/README.md)** — مرجع الأداة وتكوينات IDE وأمثلة العميل -> -> 📖 **[A2A Server README](src/lib/a2a/README.md)** — المهارات وأساليب JSON-RPC والبث ودورة حياة المهمة - -## 🧪 التقييمات (التقييمات) - -يشتمل OmniRoute على إطار تقييم مدمج لاختبار جودة استجابة LLM مقابل المجموعة الذهبية. يمكنك الوصول إليه عبر **Analytics → Evals** في لوحة التحكم. - -### الطقم الذهبي المدمج - -تحتوي "OmniRoute Golden Set" المحملة مسبقًا على حالات اختبار لما يلي: - -- تحياتي، الرياضيات، الجغرافيا، توليد التعليمات البرمجية -- الامتثال لتنسيق JSON والترجمة وإنشاء تخفيض السعر -- رفض السلامة (المحتوى الضار)، العد، المنطق المنطقي - -### استراتيجيات التقييم - -| استراتيجية | الوصف | مثال | -| ---------- | ------------------------------------------------------------- | -------------------------------- | -| `exact` | يجب أن يتطابق الإخراج تمامًا مع | `"4"` | -| `contains` | يجب أن يحتوي الإخراج على سلسلة فرعية (غير حساسة لحالة الأحرف) | `"Paris"` | -| `regex` | يجب أن يتطابق الإخراج مع نمط regex | `"1.*2.*3"` | -| `custom` | ترجع دالة JS المخصصة صواب/خطأ | `(output) => output.length > 10` | - ---- - -## 📖 دليل الإعداد - -### إعداد البروتوكول (MCP + A2A) - -<details> -<summary><b>🧩 إعداد MCP (بروتوكول سياق النموذج)</b></summary> - -بدء نقل MCP في وضع stdio: - -```bash -omniroute --mcp -``` - -تدفق التحقق الموصى به: - -1. قم بتوصيل عميل MCP الخاص بك عبر stdio. -2. قم بتشغيل `omniroute_get_health`. -3. قم بتشغيل `omniroute_list_combos`. -4. افتح `/dashboard/mcp` لتأكيد نبضات القلب والنشاط والتدقيق. - -واجهات برمجة التطبيقات المفيدة للأتمتة: - -- `GET /api/mcp/status` -- `GET /api/mcp/tools` -- `GET /api/mcp/audit` -- `GET /api/mcp/audit/stats` - -</details> - -<details> -<summary><b>🤝 إعداد A2A (Agent2Agent)</b></summary> - -اكتشف الوكيل: - -```bash -curl http://localhost:20128/.well-known/agent.json -``` - -إرسال مهمة: - -```bash -curl -X POST http://localhost:20128/a2a \ - -H 'content-type: application/json' \ - -d '{"jsonrpc":"2.0","id":"setup-a2a","method":"message/send","params":{"skill":"quota-management","messages":[{"role":"user","content":"Summarize quota status."}]}}' -``` - -إدارة دورة الحياة: - -- `GET /api/a2a/status` -- `GET /api/a2a/tasks` -- `GET /api/a2a/tasks/:id` -- `POST /api/a2a/tasks/:id/cancel` - -واجهة المستخدم التشغيلية: - -- `/dashboard/a2a` لإمكانية ملاحظة المهمة/الحالة/الدفق وإجراءات الدخان - -</details> - -<details> -<summary><b>🧪 التحقق من صحة البروتوكول من طرف إلى طرف</b></summary> - -التحقق من صحة كلا البروتوكولين مع عملاء حقيقيين: - -```bash -npm run test:protocols:e2e -``` - -هذا يتحقق: - -- اتصال/قائمة/اتصال عميل MCP SDK -- اكتشاف A2A/إرسال/دفق/حصول على/إلغاء -- التحقق من البيانات في تدقيق MCP وواجهات برمجة التطبيقات لإدارة المهام A2A - -</details> - -<details> -<summary><b>💳 موفري الاشتراك</b></summary> - -### كلود كود (برو/ماكس) - -```bash -Dashboard → Providers → Connect Claude Code -→ OAuth login → Auto token refresh -→ 5-hour + weekly quota tracking - -Models: - cc/claude-opus-4-6 - cc/claude-sonnet-4-5-20250929 - cc/claude-haiku-4-5-20251001 -``` - -**نصيحة احترافية:** استخدم Opus للمهام المعقدة، وSonnet للسرعة. OmniRoute يتتبع الحصة لكل نموذج! - -### OpenAI Codex (Plus/Pro) - -```bash -Dashboard → Providers → Connect Codex -→ OAuth login (port 1455) -→ 5-hour + weekly reset - -Models: - cx/gpt-5.2-codex - cx/gpt-5.1-codex-max -``` - -#### إدارة حدود حساب الدستور الغذائي (5 ساعات + أسبوعيًا) - -يحتوي كل حساب Codex الآن على تبديل السياسة في `Dashboard -> Providers`: - -- `5h` (تشغيل/إيقاف): فرض سياسة عتبة النافذة البالغة 5 ساعات. -- `Weekly` (تشغيل/إيقاف): فرض سياسة حد النافذة الأسبوعية. -- سلوك العتبة: عندما تصل النافذة الممكّنة إلى >=90% من الاستخدام، يتم تخطي هذا الحساب. -- سلوك التناوب: يقوم OmniRoute بتوجيه حساب Codex المؤهل التالي تلقائيًا. -- إعادة تعيين السلوك: عندما يمر وقت الموفر `resetAt`، يصبح الحساب مؤهلاً مرة أخرى تلقائيًا. - -السيناريوهات: - -- `5h ON` + `Weekly ON`: يتم تخطي الحساب عندما تصل إحدى النافذتين إلى الحد الأدنى. -- `5h OFF` + `Weekly ON`: الاستخدام الأسبوعي فقط يمكنه حظر الحساب. -- `5h ON` + `Weekly OFF`: الاستخدام لمدة 5 ساعات فقط يمكنه حظر الحساب. -- تم اجتياز `resetAt`: يدخل الحساب مرة أخرى في عملية التدوير تلقائيًا (لا توجد إعادة تمكين يدوية). - -### Gemini CLI (180 ألفًا شهريًا مجانًا!) - -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**أفضل قيمة:** طبقة مجانية ضخمة! استخدم هذا قبل المستويات المدفوعة. - -### مساعد جيثب - -```bash -Dashboard → Providers → Connect GitHub -→ OAuth via GitHub -→ Monthly reset (1st of month) - -Models: - gh/gpt-5 - gh/claude-4.5-sonnet - gh/gemini-3-pro -``` - -</details> - -<details> -<summary><b>🔑 موفري مفاتيح واجهة برمجة التطبيقات</b></summary> - -### NVIDIA NIM (وصول مجاني للمطورين — أكثر من 70 طرازًا) - -1. قم بالتسجيل: [build.nvidia.com](https://build.nvidia.com) -2. احصل على مفتاح واجهة برمجة التطبيقات (API) مجانًا (يتضمن 1000 نقطة استدلال) -3. لوحة المعلومات → إضافة موفر → NVIDIA NIM: - - مفتاح واجهة برمجة التطبيقات: `nvapi-your-key` - -**النماذج:** `nvidia/llama-3.3-70b-instruct`، `nvidia/mistral-7b-instruct`، وأكثر من 50 طرازًا آخر - -**نصيحة احترافية:** واجهة برمجة التطبيقات المتوافقة مع OpenAI — تعمل بسلاسة مع ترجمة تنسيق OmniRoute! - -### ديب سيك - -1. قم بالتسجيل: [platform.deepseek.com](https://platform.deepseek.com) -2. احصل على مفتاح API -3. لوحة المعلومات → إضافة موفر → DeepSeek - -**النماذج:** `deepseek/deepseek-chat`, `deepseek/deepseek-coder` - -### Groq (الطبقة المجانية متاحة!) - -1. قم بالتسجيل: [console.groq.com](https://console.groq.com) -2. احصل على مفتاح API (الطبقة المجانية متضمنة) -3. لوحة المعلومات → إضافة موفر → Groq - -**النماذج:** `groq/llama-3.3-70b`, `groq/mixtral-8x7b` - -**نصيحة احترافية:** استنتاج فائق السرعة — الأفضل للبرمجة في الوقت الفعلي! - -### OpenRouter (+100 موديل) - -1. قم بالتسجيل: [openrouter.ai](https://openrouter.ai) -2. احصل على مفتاح API -3. لوحة المعلومات → إضافة موفر → OpenRouter - -**النماذج:** يمكنك الوصول إلى أكثر من 100 نموذج من جميع المزودين الرئيسيين من خلال مفتاح واجهة برمجة التطبيقات (API) واحد. - -</details> - -<details> -<summary><b>💰 مقدمو الخدمة الرخيصة (النسخ الاحتياطي)</b></summary> - -### GLM-4.7 (إعادة التعيين اليومي، 0.6 دولار/1 مليون) - -1. قم بالتسجيل: [Zhipu AI](https://open.bigmodel.cn/) -2. احصل على مفتاح API من خطة الترميز -3. لوحة المعلومات → إضافة مفتاح واجهة برمجة التطبيقات: - - الموفر: `glm` - - مفتاح واجهة برمجة التطبيقات: `your-key` - -**الاستخدام:** `glm/glm-4.7` - -**نصيحة احترافية:** توفر خطة البرمجة حصة 3× بتكلفة 1/7! إعادة الضبط يوميًا الساعة 10:00 صباحًا. - -### MiniMax M2.1 (إعادة الضبط لمدة 5 ساعات، 0.20 دولار/1 مليون) - -1. قم بالتسجيل: [MiniMax](https://www.minimax.io/) -2. احصل على مفتاح API -3. لوحة المعلومات → إضافة مفتاح API - -**الاستخدام:** `minimax/MiniMax-M2.1` - -**نصيحة احترافية:** الخيار الأرخص للسياق الطويل (مليون رمز)! - -### كيمي K2 (شقة بقيمة 9 دولارات شهريًا) - -1. الاشتراك: [Moonshot AI](https://platform.moonshot.ai/) -2. احصل على مفتاح API -3. لوحة المعلومات → إضافة مفتاح API - -**الاستخدام:** `kimi/kimi-latest` - -**نصيحة احترافية:** سعر ثابت قدره 9 دولارات شهريًا مقابل 10 ملايين رمز مميز = 0.90 دولارًا أمريكيًا/مليون تكلفة فعالة! - -</details> - -<details> -<summary><b>🆓 موفرو الخدمة المجانية (النسخ الاحتياطي في حالات الطوارئ)</b></summary> - -### Qoder (5 نماذج مجانية عبر OAuth) - -```bash -Dashboard → Connect Qoder -→ Qoder OAuth login -→ Unlimited usage - -Models: - if/kimi-k2-thinking - if/qwen3-coder-plus - if/glm-4.7 - if/minimax-m2 - if/deepseek-r1 -``` - -### Qwen (4 موديلات مجانية عبر رمز الجهاز) - -```bash -Dashboard → Connect Qwen -→ Device code authorization -→ Unlimited usage - -Models: - qw/qwen3-coder-plus - qw/qwen3-coder-flash -``` - -### كيرو (كلود فري) - -```bash -Dashboard → Connect Kiro -→ AWS Builder ID or Google/GitHub -→ Unlimited usage - -Models: - kr/claude-sonnet-4.5 - kr/claude-haiku-4.5 -``` - -</details> - -<details> -<summary><b>🎨 إنشاء مجموعات</b></summary> - -### مثال 1: زيادة الاشتراك إلى الحد الأقصى → النسخ الاحتياطي الرخيص - -``` -Dashboard → Combos → Create New - -Name: premium-coding -Models: - 1. cc/claude-opus-4-6 (Subscription primary) - 2. glm/glm-4.7 (Cheap backup, $0.6/1M) - 3. minimax/MiniMax-M2.1 (Cheapest fallback, $0.20/1M) - -Use in CLI: premium-coding -``` - -### المثال 2: مجاني فقط (بدون تكلفة) - -``` -Name: free-combo -Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) - -Cost: $0 forever! -``` - -</details> - -<details> -<summary><b>🔧 تكامل سطر الأوامر</b></summary> - -### بيئة تطوير متكاملة للمؤشر - -``` -Settings → Models → Advanced: - OpenAI API Base URL: http://localhost:20128/v1 - OpenAI API Key: [from OmniRoute dashboard] - Model: cc/claude-opus-4-6 -``` - -### كلود كود - -استخدم صفحة **أدوات CLI** في لوحة المعلومات للتكوين بنقرة واحدة، أو قم بتحرير `~/.claude/settings.json` يدويًا. - -### كوديكس سطر الأوامر - -```bash -export OPENAI_BASE_URL="http://localhost:20128" -export OPENAI_API_KEY="your-omniroute-api-key" - -codex "your prompt" -``` - -### OpenClaw - -**الخيار 1 — لوحة التحكم (مستحسن):** - -``` -Dashboard → CLI Tools → OpenClaw → Select Model → Apply -``` - -**الخيار 2 — يدويًا:** تحرير `~/.openclaw/openclaw.json`: - -```json -{ - "models": { - "providers": { - "omniroute": { - "baseUrl": "http://127.0.0.1:20128/v1", - "apiKey": "sk_omniroute", - "api": "openai-completions" - } - } - } -} -``` - -> **ملاحظة:** يعمل OpenClaw فقط مع OmniRoute المحلي. استخدم `127.0.0.1` بدلاً من `localhost` لتجنب مشكلات دقة IPv6. - -### كلاين / متابعة / RooCode - -``` -Settings → API Configuration: - Provider: OpenAI Compatible - Base URL: http://localhost:20128/v1 - API Key: [from OmniRoute dashboard] - Model: if/kimi-k2-thinking -``` - -### الكود المفتوح - -**الخطوة 1:** أضف OmniRoute كموفر مخصص: - -```bash -opencode -/connect -# Select "Other" → Enter ID: "omniroute" → Enter your OmniRoute API key -``` - -**الخطوة 2:** إنشاء/تحرير `opencode.json` في جذر مشروعك: - -```json -{ - "$schema": "https://opencode.ai/config.json", - "provider": { - "omniroute": { - "npm": "@ai-sdk/openai-compatible", - "name": "OmniRoute", - "options": { - "baseURL": "http://localhost:20128/v1" - }, - "models": { - "cc/claude-sonnet-4-20250514": { "name": "Claude Sonnet 4" }, - "gg/gemini-2.5-pro": { "name": "Gemini 2.5 Pro" }, - "if/kimi-k2-thinking": { "name": "Kimi K2 (Free)" } - } - } - } -} -``` - -**الخطوة 3:** حدد النموذج في OpenCode: - -```bash -/models -# Select any OmniRoute model from the list -``` - -> **نصيحة:** أضف أي نموذج متاح في نقطة النهاية OmniRoute `/v1/models` إلى القسم `models`. استخدم التنسيق `provider/model-id` من لوحة تحكم OmniRoute. - -</details> - ---- - -## 🐛 استكشاف الأخطاء وإصلاحها - -<details> -<summary><b>انقر لتوسيع دليل استكشاف الأخطاء وإصلاحها</b></summary> - -**"نموذج اللغة لم يقدم رسائل"** - -- استنفدت حصة الموفر → تحقق من تعقب حصة الموفر في لوحة المعلومات -- الحل: استخدم خيار التحرير والسرد الاحتياطي أو قم بالتبديل إلى مستوى أرخص - -** الحد من المعدل ** - -- حصة الاشتراك المحددة → الرجوع إلى GLM/MiniMax -- إضافة التحرير والسرد: `cc/claude-opus-4-6 → glm/glm-4.7 → if/kimi-k2-thinking` - -** انتهت صلاحية رمز OAuth ** - -- يتم التحديث تلقائيًا بواسطة OmniRoute -- إذا استمرت المشكلات: لوحة المعلومات → الموفر → إعادة الاتصال - -**تكاليف مرتفعة** - -- التحقق من إحصائيات الاستخدام في لوحة المعلومات → التكاليف -- تبديل النموذج الأساسي إلى GLM/MiniMax -- استخدم الطبقة المجانية (Gemini CLI، Qoder) للمهام غير الحرجة - -**منافذ لوحة المعلومات/واجهة برمجة التطبيقات غير صحيحة** - -- `PORT` هو المنفذ الأساسي الأساسي (ومنفذ API افتراضيًا) -- `API_PORT` يتجاوز فقط مستمع واجهة برمجة التطبيقات المتوافق مع OpenAI -- `DASHBOARD_PORT` يتجاوز مستمع لوحة المعلومات/Next.js فقط -- قم بتعيين `NEXT_PUBLIC_BASE_URL` على لوحة التحكم/عنوان URL العام (لردود اتصال OAuth) - -**أخطاء المزامنة السحابية** - -- تحقق من نقاط `BASE_URL` لمثيلك قيد التشغيل -- تحقق من نقاط `CLOUD_URL` إلى نقطة النهاية السحابية المتوقعة -- احتفظ بقيم `NEXT_PUBLIC_*` متوافقة مع القيم من جانب الخادم - -**تسجيل الدخول الأول لا يعمل** - -- تحقق من `INITIAL_PASSWORD` في `.env` -- في حالة عدم تعيينها، تكون كلمة المرور الاحتياطية هي `123456` - -** لا توجد سجلات الطلب ** - -- اضبط `ENABLE_REQUEST_LOGS=true` في `.env` - -**يظهر اختبار الاتصال "غير صالح" لمقدمي الخدمات المتوافقين مع OpenAI** - -- لا يكشف العديد من مقدمي الخدمة عن نقطة نهاية `/models` -- يتضمن OmniRoute v1.0.6+ التحقق الاحتياطي من خلال إكمال الدردشة -- تأكد من أن عنوان URL الأساسي يتضمن اللاحقة `/v1` - -### 🔐 OAuth على خادم بعيد - -<a name="oauth-on-a-remote-server"></a> -<a name="oauth-em-servidor-remoto"></a> - -> **⚠️ مهم للمستخدمين الذين يقومون بتشغيل OmniRoute على VPS أو Docker أو أي خادم بعيد** - -#### لماذا يفشل Antigravity / Gemini CLI OAuth على الخوادم البعيدة؟ - -يستخدم موفرو **Antigravity** و**Gemini CLI** **Google OAuth 2.0**. تتطلب Google أن يكون `redirect_uri` في تدفق OAuth مطابقًا تمامًا لأحد معرفات URI المسجلة مسبقًا في Google Cloud Console للتطبيق. - -تم تسجيل بيانات اعتماد OAuth المجمعة في OmniRoute **لـ `localhost` فقط**. عند الوصول إلى OmniRoute على خادم بعيد (على سبيل المثال `https://omniroute.myserver.com`)، يرفض Google المصادقة باستخدام: - -``` -Error 400: redirect_uri_mismatch -``` - -#### الحل: قم بتكوين بيانات اعتماد OAuth الخاصة بك - -يلزمك إنشاء **OAuth 2.0 Client ID** في Google Cloud Console باستخدام معرف URI الخاص بخادمك. - -#### خطوة بخطوة - -**1. افتح Google Cloud Console** - -انتقل إلى: [https://console.cloud.google.com/apis/credentials](https://console.cloud.google.com/apis/credentials) - -**2. قم بإنشاء معرف عميل OAuth 2.0 جديد** - -- انقر على **"+ إنشاء بيانات اعتماد"** → **"معرف عميل OAuth"** -- نوع التطبيق: **"تطبيق ويب"** -- الاسم: أي شيء تريده (على سبيل المثال `OmniRoute Remote`) - -**3. أضف عناوين URI لإعادة التوجيه المعتمدة** - -في الحقل **"عناوين URI لإعادة التوجيه المعتمدة"**، أضف: - -``` -https://your-server.com/callback -``` - -> استبدل `your-server.com` بنطاق الخادم الخاص بك أو عنوان IP (قم بتضمين المنفذ إذا لزم الأمر، على سبيل المثال `http://45.33.32.156:20128/callback`). - -**4. حفظ ونسخ بيانات الاعتماد ** - -بعد الإنشاء، ستعرض Google **معرف العميل** و**سر العميل**. - -**5. تعيين متغيرات البيئة ** - -في `.env` (أو متغيرات بيئة Docker): - -```bash -# For Antigravity: -ANTIGRAVITY_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com -ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-your-secret - -# For Gemini CLI: -GEMINI_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com -GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -``` - -**6. أعد تشغيل OmniRoute** - -```bash -# npm: -npm run dev - -# Docker: -docker restart omniroute -``` - -**7. حاول الاتصال مرة أخرى** - -لوحة المعلومات → الموفرون → Antigravity (أو Gemini CLI) → OAuth - -سيقوم Google الآن بإعادة التوجيه بشكل صحيح إلى `https://your-server.com/callback`. - ---- - -#### الحل المؤقت (بدون بيانات اعتماد مخصصة) - -إذا كنت لا ترغب في إعداد بيانات الاعتماد الخاصة بك الآن، فلا يزال بإمكانك استخدام **تدفق عنوان URL اليدوي**: - -1. يفتح OmniRoute عنوان URL لتفويض Google -2. بعد التفويض، يحاول Google إعادة التوجيه إلى `localhost` (والذي يفشل على الخادم البعيد) -3. **انسخ عنوان URL الكامل** من شريط عنوان المتصفح (حتى لو لم يتم تحميل الصفحة) -4. الصق عنوان URL هذا في الحقل الموضح في نموذج اتصال OmniRoute -5. انقر **"اتصال"** - -> يعمل هذا لأن رمز التفويض الموجود في عنوان URL صالح بغض النظر عما إذا تم تحميل صفحة إعادة التوجيه أم لا. - ---- - -<details> -<summary><b>🇧🇷 النسخة البرتغالية</b></summary> - -#### لماذا يستخدم OAuth Antigravity / Gemini CLI في الخوادم البعيدة؟ - -تم إثبات **Antigravity** e **Gemini CLI** باستخدام **Google OAuth 2.0** للمصادقة. تطلب Google أن يتم استخدام `redirect_uri` بدون تدفق OAuth، **بالتأكيد**، من معرفات URI السابقة على تطبيق Google Cloud Console. - -نظرًا لأن اعتمادات OAuth المُدمجة ليست في OmniRoute، فهي عبارة عن سجلات **apenas لـ `localhost`**. عندما تصل إلى OmniRoute من خادم بعيد (على سبيل المثال: `https://omniroute.meuservidor.com`)، تحصل Google على مصادقة عبر: - -``` -Error 400: redirect_uri_mismatch -``` - -#### الحل: تكوين OAuth الخاص بك - -يجب عليك إنشاء **OAuth 2.0 Client ID** على Google Cloud Console باستخدام URI لخادمك. - -#### باسو باسو - -**1. الوصول إلى Google Cloud Console** - -العبرة: [https://console.cloud.google.com/apis/credentials](https://console.cloud.google.com/apis/credentials) - -**2. طلب معرف عميل OAuth 2.0 ** - -- انقر على **"+ إنشاء بيانات الاعتماد"** → **"معرف عميل OAuth"** -- نوع التطبيق: **"تطبيق ويب"** -- الاسم: اسم escolha qualquer (على سبيل المثال: `OmniRoute Remote`) - -**3. Adicione كمحددات URI لإعادة التوجيه المعتمدة** - -ليس هناك مجال **"عناوين URI لإعادة التوجيه المعتمدة"**، أضف: - -``` -https://seu-servidor.com/callback -``` - -> استبدال `seu-servidor.com` بنطاقك أو IP الخاص بخادمك (بما في ذلك البوابة الضرورية، على سبيل المثال: `http://45.33.32.156:20128/callback`). - -**4. حفظ ونسخ كمعتمدة** - -وبعد ذلك، قم بإنشاء أو عرض Google o **معرف العميل** أو **سر العميل**. - -**5. تكوين كمتغيرات البيئة ** - -لا يوجد `.env` (أو متغيرات بيئة Docker): - -```bash -# Para Antigravity: -ANTIGRAVITY_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com -ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret - -# Para Gemini CLI: -GEMINI_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com -GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -``` - -**6. Reinicie أو OmniRoute** - -```bash -# Se usando npm: -npm run dev - -# Se usando Docker: -docker restart omniroute -``` - -**7. خيمة تواصل جديدة** - -لوحة المعلومات → الموفرون → Antigravity (ou Gemini CLI) → OAuth - -الآن سيتم إعادة توجيه Google بشكل صحيح لـ `https://seu-servidor.com/callback` ووظيفة المصادقة. - ---- - -#### الحل المؤقت (لم يتم تكوين الاعتمادات الخاصة) - -إذا لم ترغب في إنشاء بيانات اعتماد خاصة بك منذ الآن، فمن الممكن استخدام التدفق **دليل URL**: - -1. يفتح OmniRoute عنوان URL لتفويض Google -2. قم بتفويض Google لإعادة التوجيه إلى `localhost` (لا يوجد خادم عن بعد) -3. **انسخ عنوان URL كاملاً** من شريط الإدخال في متصفحك (حتى لا يتم نقل الصفحة) -4. هذا هو عنوان URL الذي يظهر في وضع الاتصال بـ OmniRoute -5. انقر على **"الاتصال"** - -> يعمل هذا الحل البديل لأن رمز التفويض الموجود على عنوان URL يكون صالحًا بشكل مستقل لإعادة التوجيه حيث يتم تحميله أو لا. - -</details> - ---- - -</details> - -## 🛠️ تيك ستاك - -<details> -<summary><b>انقر لتوسيع تفاصيل المجموعة التقنية</b></summary> - -- **وقت التشغيل**: Node.js 18–22 LTS (⚠️ Node.js 24+ **غير مدعومة** — `better-sqlite3` الثنائيات الأصلية غير متوافقة) -- **اللغة**: TypeScript 5.9 — **TypeScript بنسبة 100%** عبر `src/` و`open-sse/` (صفر `any` في الوحدات الأساسية منذ الإصدار 2.0) -- **الإطار**: Next.js 16 + React 19 + Tailwind CSS 4 -- **قاعدة البيانات**: LowDB (JSON) + SQLite (حالة المجال + سجلات الوكيل + تدقيق MCP + قرارات التوجيه) -- **المخططات**: Zod (التحقق من صحة الإدخال/الإخراج لأداة MCP، وعقود API) -- **البروتوكولات**: MCP (stdio/HTTP) + A2A v0.3 (JSON-RPC 2.0 + SSE) -- **البث**: الأحداث المرسلة من الخادم (SSE) -- **المصادقة**: OAuth 2.0 (PKCE) + JWT + مفاتيح API + ترخيص نطاق MCP -- **الاختبار**: مشغل اختبار Node.js + Vitest (أكثر من 900 اختبار بما في ذلك الوحدة والتكامل وE2E) -- **CI/CD**: إجراءات GitHub (نشر npm التلقائي + Docker Hub عند الإصدار) -- **الموقع الإلكتروني**: [omniroute.online](https://omniroute.online) -- **الحزمة**: [npmjs.com/package/omniroute](https://www.npmjs.com/package/omniroute) -- **عامل الميناء**: [hub.docker.com/r/diegosouzapw/omniroute](https://hub.docker.com/r/diegosouzapw/omniroute) -- **المرونة**: قاطع الدائرة، والتراجع الأسي، وقطيع مكافحة الرعد، وانتحال TLS، والإصلاح الذاتي للتحرير والسرد التلقائي - -</details> - ---- - -## 📖 التوثيق - -| وثيقة | الوصف | -| ---------------------------------------------- | ----------------------------------------------------- | -| [User Guide](docs/USER_GUIDE.md) | مقدمو الخدمات، والمجموعات، وتكامل CLI، والنشر | -| [API Reference](docs/API_REFERENCE.md) | جميع نقاط النهاية مع الأمثلة | -| [MCP Server](open-sse/mcp-server/README.md) | 16 أدوات MCP وتكوينات IDE وعملاء Python/TS/Go | -| [A2A Server](src/lib/a2a/README.md) | بروتوكول JSON-RPC 2.0، المهارات، التدفق، إدارة المهام | -| [Auto-Combo Engine](docs/auto-combo.md) | تسجيل 6 عوامل، حزم الوضع، الشفاء الذاتي | -| [Troubleshooting](docs/TROUBLESHOOTING.md) | المشاكل والحلول الشائعة | -| [Architecture](docs/ARCHITECTURE.md) | بنية النظام والداخلية | -| [Contributing](CONTRIBUTING.md) | إعداد التطوير والمبادئ التوجيهية | -| [OpenAPI Spec](docs/openapi.yaml) | مواصفات OpenAPI 3.0 | -| [Security Policy](SECURITY.md) | الإبلاغ عن الثغرات الأمنية والممارسات الأمنية | -| [VM Deployment](docs/VM_DEPLOYMENT_GUIDE.md) | الدليل الكامل: إعداد VM + nginx + Cloudflare | -| [Features Gallery](docs/FEATURES.md) | جولة لوحة القيادة المرئية مع لقطات الشاشة | -| [Release Checklist](docs/RELEASE_CHECKLIST.md) | خطوات التحقق من صحة الإصدار المسبق | - ---- - -## 🗺️خريطة الطريق - -يحتوي OmniRoute على **210+ ميزات مخطط لها** عبر مراحل تطوير متعددة. فيما يلي المجالات الرئيسية: - -| الفئة | الميزات المخططة | أبرز الأحداث | -| --------------------------- | --------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | -| 🧠 **التوجيه والاستخبارات** | 25+ | التوجيه ذو زمن الاستجابة الأقل، والتوجيه القائم على العلامات، والاختبار المبدئي للحصة، واختيار حساب P2C | -| 🔒 **الأمان والامتثال** | 20+ | تقوية SSRF، وإخفاء بيانات الاعتماد، والحد الأقصى للمعدل لكل نقطة نهاية، وتحديد نطاق مفتاح الإدارة | -| 📊 **قابلية الملاحظة** | 15+ | تكامل OpenTelemetry ومراقبة الحصص في الوقت الفعلي وتتبع التكلفة لكل نموذج | -| 🔄 **تكامل الموفر** | 20+ | تسجيل النموذج الديناميكي، فترات تهدئة الموفر، الدستور الغذائي متعدد الحسابات، تحليل حصة الطيار المساعد | -| ⚡ **الأداء** | 15+ | طبقة ذاكرة التخزين المؤقت المزدوجة، ذاكرة التخزين المؤقت السريعة، ذاكرة التخزين المؤقت للاستجابة، استمرار البث، واجهة برمجة التطبيقات الدفعية | -| 🌐 **النظام البيئي** | 10+ | WebSocket API، إعادة تحميل التكوين السريع، مخزن التكوين الموزع، الوضع التجاري | - -### 🔜قريبا - -- 🔗 **تكامل OpenCode** — دعم الموفر الأصلي لـ OpenCode AI IDE للترميز -- 🔗 **تكامل TRAE** — الدعم الكامل لإطار تطوير TRAE AI -- 📦 **Batch API** — معالجة الدفعات غير المتزامنة للطلبات المجمعة -- 🎯 **التوجيه المعتمد على العلامات** — توجيه الطلبات بناءً على العلامات المخصصة والبيانات الوصفية -- 💰 **إستراتيجية أقل تكلفة** — تحديد أرخص مزود متاح تلقائيًا - -> 📝 مواصفات الميزات الكاملة متوفرة في [**OMNI_TOKEN_342**](docs/new-features/) (217 مواصفات تفصيلية) - ---- - -## 👥 المساهمون - -[![Contributors](https://contrib.rocks/image?repo=diegosouzapw/OmniRoute&max=100&columns=20&anon=1)](https://github.com/diegosouzapw/OmniRoute/graphs/contributors) - -### كيفية المساهمة - -1. شوكة المستودع -2. قم بإنشاء فرع الميزات الخاص بك (`git checkout -b feature/amazing-feature`) -3. تنفيذ التغييرات (`git commit -m 'Add amazing feature'`) -4. ادفع إلى الفرع (`git push origin feature/amazing-feature`) -5. افتح طلب السحب - -راجع [CONTRIBUTING.md](CONTRIBUTING.md) للحصول على إرشادات مفصلة. - -### إطلاق نسخة جديدة - -```bash -# Create a release — npm publish happens automatically -gh release create v2.0.0 --title "v2.0.0" --generate-notes -``` - ---- - -## 📊 تاريخ النجوم - -## مراقبو النجوم مع مرور الوقت - -## [![Stargazers over time](https://starchart.cc/diegosouzapw/OmniRoute.svg?variant=adaptive)](https://starchart.cc/diegosouzapw/OmniRoute) - -## 🙏 شكر وتقدير - -شكر خاص لـ **[9router](https://github.com/decolua/9router)** بواسطة **[decolua](https://github.com/decolua)** — المشروع الأصلي الذي ألهم هذه الشوكة. يعتمد OmniRoute على هذا الأساس المذهل مع ميزات إضافية وواجهات برمجة التطبيقات متعددة الوسائط وإعادة كتابة TypeScript كاملة. - -شكر خاص لـ **[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)** — تطبيق Go الأصلي الذي ألهم منفذ JavaScript هذا. - ---- - -## 📄 الترخيص - -ترخيص MIT - راجع [LICENSE](LICENSE) للحصول على التفاصيل. - ---- - -<div align="center"> - <sub> تم تصميمه باستخدام ❤️ للمطورين الذين يبرمجون 24/7</sub> - <br/> - <sub><a href="https://omniroute.online">omniroute.online</a></sub> -</div> -<!-- تم تمكين مناقشات GitHub للأسئلة والأجوبة بالمجتمع --> +👉 **[Read the Documentation here](docs/i18n/ar/README.md)** diff --git a/README.bg.md b/README.bg.md index 25e01c649a..ace55dd961 100644 --- a/README.bg.md +++ b/README.bg.md @@ -1,2077 +1,5 @@ -# 🚀 OmniRoute — Безплатният AI Gateway +# 🌐 OmniRoute (bg) -### Никога не спирайте да кодирате. Интелигентно маршрутизиране към **БЕЗПЛАТНИ и евтини AI модели** с автоматичен резервен вариант. +The documentation has been formalized and moved to our centralized i18n structure. -_Вашият универсален API прокси — една крайна точка, 67+ доставчици, нулев престой. Сега с **MCP & A2A** агентска оркестрация._ - -**Завършвания на чат • Вграждания • Генериране на изображения • Видео • Музика • Аудио • Прекласиране • **Уеб търсене** • MCP сървър • A2A протокол • 100% TypeScript** - ---- - -<div align="center"> - -[![npm version](https://img.shields.io/npm/v/omniroute?color=cb3837&logo=npm)](https://www.npmjs.com/package/omniroute) -[![npm downloads](https://img.shields.io/npm/dm/omniroute?color=cb3837&logo=npm&label=npm%20downloads)](https://www.npmjs.com/package/omniroute) -[![Docker Hub](https://img.shields.io/docker/v/diegosouzapw/omniroute?label=Docker%20Hub&logo=docker&color=2496ED)](https://hub.docker.com/r/diegosouzapw/omniroute) -[![Docker Pulls](https://img.shields.io/docker/pulls/diegosouzapw/omniroute?logo=docker&color=2496ED&label=docker%20pulls)](https://hub.docker.com/r/diegosouzapw/omniroute) -[![License](https://img.shields.io/github/license/diegosouzapw/OmniRoute)](https://github.com/diegosouzapw/OmniRoute/blob/main/LICENSE) -[![Website](https://img.shields.io/badge/Website-omniroute.online-blue?logo=google-chrome&logoColor=white)](https://omniroute.online) -[![WhatsApp](https://img.shields.io/badge/WhatsApp-Community-25D366?logo=whatsapp&logoColor=white)](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) - -[🌐 Website](https://omniroute.online) • [🚀 Quick Start](#-quick-start) • [💡 Features](#-key-features) • [📖 Docs](#-documentation) • [💰 Pricing](#-pricing-at-a-glance) • [💬 WhatsApp](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) - -</div> - -🌐 **Налично в:** 🇺🇸 [English](README.md) | 🇧🇷 [Português (Brasil)](docs/i18n/pt-BR/README.md) | 🇪🇸 [Español](docs/i18n/es/README.md) | 🇫🇷 [Français](docs/i18n/fr/README.md) | 🇮🇹 [Italiano](docs/i18n/it/README.md) | 🇷🇺 [Русский](docs/i18n/ru/README.md) | 🇨🇳 [中文 (简体)](docs/i18n/zh-CN/README.md) | 🇩🇪 [Deutsch](docs/i18n/de/README.md) | 🇮🇳 [हिन्दी](docs/i18n/in/README.md) | 🇹🇭 [ไทย](docs/i18n/th/README.md) | 🇺🇦 [Українська](docs/i18n/uk-UA/README.md) | 🇸🇦 [العربية](docs/i18n/ar/README.md) | 🇯🇵 [日本語](docs/i18n/ja/README.md) | 🇻🇳 [Tiếng Việt](docs/i18n/vi/README.md) | 🇧🇬 [Български](docs/i18n/bg/README.md) | 🇩🇰 [Dansk](docs/i18n/da/README.md) | 🇫🇮 [Suomi](docs/i18n/fi/README.md) | 🇮🇱 [עברית](docs/i18n/he/README.md) | 🇭🇺 [Magyar](docs/i18n/hu/README.md) | 🇮🇩 [Bahasa Indonesia](docs/i18n/id/README.md) | 🇰🇷 [한국어](docs/i18n/ko/README.md) | 🇲🇾 [Bahasa Melayu](docs/i18n/ms/README.md) | 🇳🇱 [Nederlands](docs/i18n/nl/README.md) | 🇳🇴 [Norsk](docs/i18n/no/README.md) | 🇵🇹 [Português (Portugal)](docs/i18n/pt/README.md) | 🇷🇴 [Română](docs/i18n/ro/README.md) | 🇵🇱 [Polski](docs/i18n/pl/README.md) | 🇸🇰 [Slovenčina](docs/i18n/sk/README.md) | 🇸🇪 [Svenska](docs/i18n/sv/README.md) | 🇵🇭 [Filipino](docs/i18n/phi/README.md) | 🇨🇿 [Čeština](docs/i18n/cs/README.md) - ---- - -## 🆕 Какво е новото във v3.0.0 - -> **Надстройване от v2.9.5?** — Вижте [full CHANGELOG](CHANGELOG.md#300--2026-03-22-release-candidate--not-yet-merged-to-main) за всички промени. - -| Площ | Промяна | -| ------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 🔒 **CodeQL Security** | Коригирани 10+ CodeQL предупреждения: полиномно повторение, несигурна произволност, коригиране на инжектиране на обвивка | -| ✅ **Потвърждение на маршрута** | Всичките 176 API маршрута вече са валидирани със схеми на Zod + `validateBody()` — CI `check:route-validation:t06` пропуски | -| 🐛 **Изтичане на етикет на omniModel** | Вътрешните `<omniModel>` тагове вече не изтичат към клиентите в SSE поточни отговори (#585) | -| 🔑 **API за регистрирани ключове** | API ключове за автоматично предоставяне чрез `POST /api/v1/registered-keys` с прилагане на квотата за всеки доставчик/акаунт, идемпотентност, SHA-256 съхранение и незадължително отчитане на проблеми в GitHub | -| 🎨 **Икони на доставчици** | 130+ лога на доставчици чрез `@lobehub/icons` (SVG) с PNG → обща резервна верига | -| 🔄 **Автоматично синхронизиране на модела** | 24-часов планировчик и ръчно превключване на потребителския интерфейс за синхронизиране на списъци с модели за вградени и персонализирани OpenAI-съвместими доставчици | -| 🌐 **OpenCode Zen/Go** | Два нови доставчика от @kang-heewon чрез PR #530: безплатно ниво + абонаментно ниво чрез `OpencodeExecutor` | -| 🐛 **Gemini CLI OAuth** | Възможна грешка, когато `GEMINI_OAUTH_CLIENT_SECRET` липсва в Docker (беше загадъчна грешка на Google) | -| 🐛 **Конфигурация на OpenCode** | `saveOpenCodeConfig()` вече правилно записва TOML в `XDG_CONFIG_HOME` | -| 🐛 **Замяна на фиксиран модел** | `body.model` правилно зададен на `pinnedModel` при защита на контекстния кеш | -| 🐛 **Codex/Claude loop** | `tool_result` блокове вече се преобразуват в текст, за да спрат безкрайните цикли | -| 🐛 **Пренасочване при влизане** | Входът вече не замръзва след пропускане на настройката на парола | -| 🐛 **Пътища на Windows** | MSYS2/Git-Bash пътища (`/c/...`), нормализирани до `C:\...` автоматично | - ---- - -## 🖼️ Главно табло за управление - -<div align="center"> - <img src="./docs/screenshots/MainOmniRoute.png" alt="OmniRoute Dashboard" width="800"/> -</div> - ---- - -## 📸 Визуализация на таблото за управление - -<details> -<summary><b>Щракнете, за да видите екранни снимки на таблото за управление</b></summary> - -| Страница | Екранна снимка | -| -------------------------- | ------------------------------------------------- | -| **Доставчици** | ![Providers](docs/screenshots/01-providers.png) | -| **Комбота** | ![Combos](docs/screenshots/02-combos.png) | -| **Анализ** | ![Analytics](docs/screenshots/03-analytics.png) | -| **Здраве** | ![Health](docs/screenshots/04-health.png) | -| **Преводач** | ![Translator](docs/screenshots/05-translator.png) | -| **Настройки** | ![Settings](docs/screenshots/06-settings.png) | -| **CLI инструменти** | ![CLI Tools](docs/screenshots/07-cli-tools.png) | -| **Дневници за използване** | ![Usage](docs/screenshots/08-usage.png) | -| **Крайни точки** | ![Endpoints](docs/screenshots/09-endpoint.png) | - -</details> - ---- - -### 🤖 Безплатен доставчик на AI за вашите любими кодиращи агенти - -_Свържете всеки базиран на AI IDE или CLI инструмент чрез OmniRoute — безплатен API шлюз за неограничено кодиране._ - - <table> - <tr> - <td align="center" width="110"> - <a href="https://github.com/openclaw/openclaw"> - <img src="./public/providers/openclaw.png" alt="OpenClaw" width="48"/><br/> - <b>OpenClaw</b> - </a><br/> - <sub>⭐ 205K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/HKUDS/nanobot"> - <img src="./public/providers/nanobot.png" alt="NanoBot" width="48"/><br/> - <b>NanoBot</b> - </a><br/> - <sub>⭐ 20.9K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/sipeed/picoclaw"> - <img src="./public/providers/picoclaw.jpg" alt="PicoClaw" width="48"/><br/> - <b>PicoClaw</b> - </a><br/> - <sub>⭐ 14.6K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/zeroclaw-labs/zeroclaw"> - <img src="./public/providers/zeroclaw.png" alt="ZeroClaw" width="48"/><br/> - <b>ZeroClaw</b> - </a><br/> - <sub>⭐ 9.9K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/nearai/ironclaw"> - <img src="./public/providers/ironclaw.png" alt="IronClaw" width="48"/><br/> - <b>IronClaw</b> - </a><br/> - <sub>⭐ 2.1K</sub> - </td> - </tr> - <tr> - <td align="center" width="110"> - <a href="https://github.com/anomalyco/opencode"> - <img src="./public/providers/opencode.svg" alt="OpenCode" width="48"/><br/> - <b>OpenCode</b> - </a><br/> - <sub>⭐ 106K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/openai/codex"> - <img src="./public/providers/codex.png" alt="Codex CLI" width="48"/><br/> - <b>Codex CLI</b> - </a><br/> - <sub>⭐ 60.8K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/anthropics/claude-code"> - <img src="./public/providers/claude.png" alt="Claude Code" width="48"/><br/> - <b>Claude Code</b> - </a><br/> - <sub>⭐ 67.3K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/google-gemini/gemini-cli"> - <img src="./public/providers/gemini-cli.png" alt="Gemini CLI" width="48"/><br/> - <b>Gemini CLI</b> - </a><br/> - <sub>⭐ 94.7K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/Kilo-Org/kilocode"> - <img src="./public/providers/kilocode.png" alt="Kilo Code" width="48"/><br/> - <b>Kilo Code</b> - </a><br/> - <sub>⭐ 15.5K</sub> - </td> - </tr> - </table> - -<sub>📡 Всички агенти се свързват чрез <code>http://localhost:20128/v1</code> или <code>http://cloud.omniroute.online/v1</code> — една конфигурация, неограничени модели и квота</sub> - ---- - -## 🤔 Защо OmniRoute? - -**Спрете да пилеете пари и да достигате лимити:** - -- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Абонаментната квота изтича неизползвана всеки месец -- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Ограниченията на скоростта ви спират да кодирате по средата -- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Скъпи API ($20-50/месец на доставчик) -- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Ръчно превключване между доставчици - -**OmniRoute решава това:** - -- ✅ **Увеличете максимално абонаментите** - Проследете квотата, използвайте всеки бит преди нулиране -- ✅ **Автоматично възстановяване** - Абонамент → API ключ → Евтино → Безплатно, нулево време на престой -- ✅ **Множество акаунти** - Кръгови сметки между акаунти на доставчик -- ✅ **Универсален** - Работи с Claude Code, Codex, Gemini CLI, Cursor, Cline, OpenClaw, всеки CLI инструмент - ---- - -## 📧 Поддръжка - -> 💬 **Присъединете се към нашата общност!** [WhatsApp Group](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) — Получете помощ, споделете съвети и бъдете в течение. - -- **Уебсайт**: [omniroute.online](https://omniroute.online) -- **GitHub**: [github.com/diegosouzapw/OmniRoute](https://github.com/diegosouzapw/OmniRoute) -- **Проблеми**: [github.com/diegosouzapw/OmniRoute/issues](https://github.com/diegosouzapw/OmniRoute/issues) -- **WhatsApp**: [Community Group](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) -- **Принос**: Вижте [CONTRIBUTING.md](CONTRIBUTING.md), отворете PR или изберете `good first issue` -- **Оригинален проект**: [9router by decolua](https://github.com/decolua/9router) - -### 🐛 Съобщавате за грешка? - -Когато отваряте проблем, моля, изпълнете командата system-info и прикачете генерирания файл: - -```bash -npm run system-info -``` - -Това генерира `system-info.txt` с вашата версия на Node.js, версия на OmniRoute, подробности за операционната система, инсталирани CLI инструменти (qoder, gemini, claude, codex, antigravity, droid и т.н.), състояние на Docker/PM2 и системни пакети — всичко, от което се нуждаем, за да възпроизведем бързо проблема ви. Прикачете файла директно към вашия проблем с GitHub. - ---- - -## 🔄 Как работи - -``` -┌─────────────┐ -│ Your CLI │ (Claude Code, Codex, Gemini CLI, OpenClaw, Cursor, Cline...) -│ Tool │ -└──────┬──────┘ - │ http://localhost:20128/v1 - ↓ -┌─────────────────────────────────────────┐ -│ OmniRoute (Smart Router) │ -│ • Format translation (OpenAI ↔ Claude) │ -│ • Quota tracking + Embeddings + Images │ -│ • Auto token refresh │ -└──────┬──────────────────────────────────┘ - │ - ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex, Gemini CLI - │ ↓ quota exhausted - ├─→ [Tier 2: API KEY] DeepSeek, Groq, xAI, Mistral, NVIDIA NIM, etc. - │ ↓ budget limit - ├─→ [Tier 3: CHEAP] GLM ($0.6/1M), MiniMax ($0.2/1M) - │ ↓ budget limit - └─→ [Tier 4: FREE] Qoder, Qwen, Kiro (unlimited) - -Result: Never stop coding, minimal cost -``` - ---- - -## 🎯 Какво решава OmniRoute — 30 реални болни точки и случаи на употреба - -> **Всеки разработчик, използващ AI инструменти, се сблъсква с тези проблеми всеки ден.** OmniRoute е създаден, за да разреши всички тях — от преразход на разходите до регионални блокове, от повредени OAuth потоци до операции на протоколи и корпоративна наблюдаемост. - -<details> -<summary><b>💸 1. „Плащам за скъп абонамент, но все още ме прекъсват ограничения“</b></summary> - -Разработчиците плащат $20–200/месец за Claude Pro, Codex Pro или GitHub Copilot. Дори и да плащате, квотата има таван — 5 часа използване, седмични лимити или лимити на цените на минута. По средата на сесията на кодиране, доставчикът спира да отговаря и разработчикът губи поток и производителност. - -**Как OmniRoute го решава:** - -- **Smart 4-Tier Fallback** — Ако квотата за абонамент се изчерпи, автоматично пренасочва към API Key → Евтино → Безплатно с нулева ръчна намеса -- **Проследяване на квоти в реално време** — Показва потреблението на токени в реално време с нулиране на обратното броене (5 часа, ежедневно, седмично) -- **Поддръжка на множество акаунти** — Множество акаунти на доставчик с автоматичен кръгов режим — когато единият свърши, превключва към следващия -- **Персонализирани комбинации** — Възможност за персонализиране на резервни вериги с 6 стратегии за балансиране (първо попълване, кръгово, P2C, произволно, най-малко използвано, оптимизирано по отношение на разходите) -- **Codex Business Quotas** — Мониторинг на квотите на работното пространство на бизнеса/екипа директно в таблото за управление - -</details> - -<details> -<summary><b>🔌 2. „Трябва да използвам няколко доставчика, но всеки има различен API“</b></summary> - -OpenAI използва един формат, Claude (Anthropic) използва друг, Gemini още един. Ако разработчикът иска да тества модели от различни доставчици или резервен вариант между тях, той трябва да преконфигурира SDK, да промени крайните точки, да се справи с несъвместими формати. Персонализираните доставчици (FriendLI, NIM) имат крайни точки на нестандартен модел. - -**Как OmniRoute го решава:** - -- **Unified Endpoint** — Единичен `http://localhost:20128/v1` служи като прокси за всички 67+ доставчици -- **Превод на формати** — Автоматично и прозрачно: OpenAI ↔ Claude ↔ Gemini ↔ Responses API -- **Response Sanitization** — Премахва нестандартните полета (`x_groq`, `usage_breakdown`, `service_tier`), които нарушават OpenAI SDK v1.83+ -- **Нормализиране на ролята** — Преобразува `developer` → `system` за доставчици, които не са OpenAI; `system` → `user` за GLM/ERNIE -- **Think Tag Extraction** — Извлича `<think>` блокове от модели като DeepSeek R1 в стандартизирани `reasoning_content` -- **Структуриран изход за Gemini** — `json_schema` → `responseMimeType`/`responseSchema` автоматично преобразуване -- **`stream` по подразбиране е `false`** — Подравнява се със спецификацията на OpenAI, като се избягват неочаквани SSE в SDK на Python/Rust/Go - -</details> - -<details> -<summary><b>🌐 3. „Моят доставчик на AI блокира моя регион/държава“</b></summary> - -Доставчици като OpenAI/Codex блокират достъпа от определени географски региони. Потребителите получават грешки като `unsupported_country_region_territory` по време на OAuth и API връзки. Това е особено разочароващо за разработчиците от развиващите се страни. - -**Как OmniRoute го решава:** - -- **3-Level Proxy Config** — Конфигурируем прокси на 3 нива: глобално (цял трафик), на доставчик (само един доставчик) и на връзка/ключ -- **Цветно кодирани прокси значки** — Визуални индикатори: 🟢 глобален прокси, 🟡 прокси на доставчик, 🔵 прокси за връзка, винаги показващ IP -- **OAuth Token Exchange чрез прокси** — OAuth потокът също минава през проксито, решавайки `unsupported_country_region_territory` -- **Тестове за връзка чрез прокси** — Тестовете за връзка използват конфигурирания прокси (без повече директен байпас) -- **SOCKS5 Support** — Пълна SOCKS5 прокси поддръжка за изходящо маршрутизиране -- **TLS Fingerprint Spoofing** — подобен на браузър TLS пръстов отпечатък чрез `wreq-js` за заобикаляне на откриването на ботове -- **🔏 Съпоставяне на пръстови отпечатъци на CLI** — Пренарежда заглавките и полетата на основния текст, за да съответстват на собствените двоични подписи на CLI, драстично намалявайки риска от маркиране на акаунта. Прокси IP адресът се запазва — получавате едновременно стелт **и** IP маскиране - -</details> - -<details> -<summary><b>🆓 4. „Искам да използвам AI за кодиране, но нямам пари“</b></summary> - -Не всеки може да плаща $20-200/месец за абонаменти за AI. Студенти, разработчици от развиващи се страни, любители и фрийлансъри се нуждаят от достъп до качествени модели на нулева цена. - -**Как OmniRoute го решава:** - -- **Вградени доставчици на безплатни нива** — Вградена поддръжка за 100% безплатни доставчици: Qoder (5 неограничени модела чрез OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 неограничени модела: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID безплатно), Gemini CLI (180K токена/месец безплатно) -- **Ollama Cloud** — Хоствани в облака Ollama модели на `api.ollama.com` с безплатно ниво „Light usage“; използвайте префикс `ollamacloud/<model>` -- **Безплатни само комбинации** — Верига `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/месец с нулев престой -- **NVIDIA NIM безплатен достъп** — ~40 RPM dev-вечно безплатен достъп до 70+ модела на build.nvidia.com (преход от кредити към чисти лимити на скоростта) -- **Стратегия за оптимизиране на разходите** — Стратегия за маршрутизиране, която автоматично избира най-евтиния наличен доставчик - -</details> - -<details> -<summary><b>🔒 5. „Трябва да защитя моя AI шлюз от неоторизиран достъп“</b></summary> - -При излагане на AI шлюз към мрежата (LAN, VPS, Docker), всеки с адреса може да използва токените/квотата на разработчика. Без защита приложните програмни интерфейси (API) са уязвими за злоупотреба, незабавно инжектиране и злоупотреба. - -**Как OmniRoute го решава:** - -- **API Key Management** — Генериране, ротация и обхват за всеки доставчик със специална страница `/dashboard/api-manager` -- **Разрешения на ниво модел** — Ограничете ключовете на API до конкретни модели (`openai/*`, шаблони със заместващи знаци), с превключвател Разрешаване на всички/Ограничаване -- **API Endpoint Protection** — Изискване на ключ за `/v1/models` и блокиране на определени доставчици от списъка -- **Auth Guard + CSRF Protection** — Всички маршрути на таблото са защитени с `withAuth` мидълуер + CSRF токени -- **Ограничител на скоростта** — Ограничаване на скоростта на IP с конфигурируеми прозорци -- **IP Filtering** — Списък с разрешени/списък с блокирани за контрол на достъпа -- **Prompt Injection Guard** — Дезинфекция срещу злонамерени бързи модели -- **AES-256-GCM криптиране** — Идентификационните данни са криптирани в покой - -</details> - -<details> -<summary><b>🛑 6. „Доставчикът ми прекъсна и загубих потока на кодиране“</b></summary> - -Доставчиците на AI могат да станат нестабилни, да върнат грешки 5xx или да достигнат временни лимити на скоростта. Ако разработчикът зависи от един доставчик, той е прекъснат. Без прекъсвачи многократните повторни опити могат да сринат приложението. - -**Как OmniRoute го решава:** - -- **Прекъсвач за всеки модел** — Автоматично отваряне/затваряне с конфигурируеми прагове и изчакване (затворен/отворен/полуотворен), обхват за всеки модел, за да се избегнат каскадни блокове -- **Exponential Backoff** — Прогресивни закъснения при повторен опит -- **Anti-Thundering Herd** — Mutex + семафорна защита срещу едновременни повторни бури -- **Combo Fallback Chains** — Ако основният доставчик се провали, автоматично преминава през веригата без намеса -- **Combo Circuit Breaker** — Автоматично деактивира неуспешни доставчици в рамките на комбинирана верига -- **Health Dashboard** — Мониторинг на времето на работа, състояния на прекъсвачи, блокировки, статистика на кеша, латентност на p50/p95/p99 - -</details> - -<details> -<summary><b>🔧 7. „Конфигурирането на всеки AI инструмент е досадно и повтарящо се“</b></summary> - -Разработчиците използват Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code... Всеки инструмент се нуждае от различна конфигурация (крайна точка на API, ключ, модел). Преконфигурирането при смяна на доставчик или модел е загуба на време. - -**Как OmniRoute го решава:** - -- **CLI Tools Dashboard** — Специална страница с настройка с едно кликване за Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline -- **GitHub Copilot Config Generator** — Генерира `chatLanguageModels.json` за VS код с групов избор на модел -- **Onboarding Wizard** — Насочвана настройка в 4 стъпки за потребители за първи път -- **Една крайна точка, всички модели** — Конфигурирайте `http://localhost:20128/v1` веднъж, достъп до 67+ доставчици - -</details> - -<details> -<summary><b>🔑 8. „Управлението на OAuth токени от множество доставчици е ад“</b></summary> - -Claude Code, Codex, Gemini CLI, Copilot — всички използват OAuth 2.0 с изтичащи токени. Разработчиците трябва постоянно да се удостоверяват повторно, да се справят с `client_secret is missing`, `redirect_uri_mismatch` и повреди на отдалечени сървъри. OAuth на LAN/VPS е особено проблематичен. - -**Как OmniRoute го решава:** - -- **Auto Token Refresh** — OAuth токените се опресняват във фонов режим преди изтичане -- **OAuth 2.0 (PKCE) Вграден** — Автоматичен поток за Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder -- **Multi-Account OAuth** — Множество акаунти на доставчик чрез JWT/ID извличане на токени -- **OAuth LAN/Remote Fix** — Частно IP откриване за `redirect_uri` + ръчен URL режим за отдалечени сървъри -- **OAuth зад Nginx** — Използва `window.location.origin` за обратна прокси съвместимост -- **Отдалечено ръководство за OAuth** — Ръководство стъпка по стъпка за идентификационни данни на Google Cloud на VPS/Docker - -</details> - -<details> -<summary><b>📊 9. „Не знам колко харча или къде“</b></summary> - -Разработчиците използват множество платени доставчици, но нямат унифициран поглед върху разходите. Всеки доставчик има собствено табло за таксуване, но няма консолидиран изглед. Неочакваните разходи могат да се натрупат. - -**Как OmniRoute го решава:** - -- **Табло за анализ на разходите** — Проследяване на разходите за токени и управление на бюджета за доставчик -- **Бюджетни ограничения за ниво** — Таван на разходите за ниво, което задейства автоматичен резервен вариант -- **Конфигурация на ценообразуване за модел** — Конфигурируеми цени за модел -- **Статистика на използването на API ключ** — Брой заявки и последно използвано клеймо за всеки ключ -- **Табло за управление на анализи** — Статистически карти, диаграма на използването на модела, таблица на доставчика с проценти на успех и закъснение - -</details> - -<details> -<summary><b>🐛 10. „Не мога да диагностицирам грешки и проблеми в обажданията с изкуствен интелект“</b></summary> - -Когато обаждането е неуспешно, разработчикът не знае дали е ограничение на скоростта, изтекъл токен, грешен формат или грешка на доставчика. Фрагментирани регистрационни файлове в различни терминали. Без възможност за наблюдение отстраняването на грешки е метод проба-грешка. - -**Как OmniRoute го решава:** - -- **Табло за управление на унифицирани регистрационни файлове** — 4 раздела: регистрационни файлове за заявки, регистрационни файлове за прокси, регистрационни файлове за одит, конзола -- **Console Log Viewer** — Преглед в стил терминал в реално време с цветно кодирани нива, автоматично превъртане, търсене, филтър -- **SQLite Proxy Logs** — Постоянни регистрационни файлове, които оцеляват при рестартиране на сървъра -- **Translator Playground** — 4 режима за отстраняване на грешки: Playground (превод на формат), Chat Tester (обиколно пътуване), Test Bench (партида), Live Monitor (в реално време) -- **Заявка за телеметрия** — p50/p95/p99 латентност + проследяване на X-Request-Id -- **Регистриране на базата на файлове с ротация** — Прехващачът на конзолата улавя всичко в JSON журнал с ротация, базирана на размера -- **Системен информационен отчет** — `npm run system-info` генерира `system-info.txt` с вашата пълна среда (версия на възел, версия на OmniRoute, OS, CLI инструменти, състояние на Docker/PM2). Прикачете го, когато докладвате за проблеми за незабавно сортиране. - -</details> - -<details> -<summary><b>🏗️ 11. „Внедряването и поддържането на шлюза е сложно“</b></summary> - -Инсталирането, конфигурирането и поддържането на AI прокси в различни среди (локални, VPS, Docker, облак) е трудоемко. Проблеми като твърдо кодирани пътища, `EACCES` в директории, конфликти на портове и междуплатформени компилации добавят триене. - -**Как OmniRoute го решава:** - -- **npm глобално инсталиране** — `npm install -g omniroute && omniroute` — готово -- **Docker Multi-Platform** — роден AMD64 + ARM64 (Apple Silicon, AWS Graviton, Raspberry Pi) -- **Docker Compose Profiles** — `base` (без CLI инструменти) и `cli` (с Claude Code, Codex, OpenClaw) -- **Electron Desktop App** — родно приложение за Windows/macOS/Linux със системна област, автоматично стартиране, офлайн режим -- **Split-Port Mode** — API и табло за управление на отделни портове за разширени сценарии (обратен прокси, контейнерна мрежа) -- **Cloud Sync** — Конфигуриране на синхронизиране между устройства чрез Cloudflare Workers -- **DB Backups** — Автоматично архивиране, възстановяване, експортиране и импортиране на всички настройки - -</details> - -<details> -<summary><b>🌍 12. „Интерфейсът е само на английски и екипът ми не говори английски“</b></summary> - -Екипите в неанглоговорящите страни, особено в Латинска Америка, Азия и Европа, се затрудняват с интерфейси само на английски. Езиковите бариери намаляват приемането и увеличават грешките в конфигурацията. - -**Как OmniRoute го решава:** - -- **Dashboard i18n — 30 езика** — Преведени всички 500+ клавиша, включително арабски, български, датски, немски, испански, фински, френски, иврит, хинди, унгарски, индонезийски, италиански, японски, корейски, малайски, холандски, норвежки, полски, португалски (PT/BR), румънски, руски, словашки, шведски, тайландски, украински, виетнамски, китайски, филипински, английски -- **RTL Support** — Поддръжка отдясно наляво за арабски и иврит -- **Многоезични READMEs** — 30 пълни превода на документация -- **Избор на език** — Икона на глобус в заглавката за превключване в реално време - -</details> - -<details> -<summary><b>🔄 13. „Имам нужда от повече от чат — имам нужда от вграждания, изображения, аудио“</b></summary> - -AI не е просто завършване на чат. Разработчиците трябва да генерират изображения, да транскрибират аудио, да създават вграждания за RAG, да прекласират документи и да модерират съдържание. Всеки API има различна крайна точка и формат. - -**Как OmniRoute го решава:** - -- **Вграждания** — `/v1/embeddings` с 6 доставчика и 9+ модела -- **Генериране на изображения** — `/v1/images/generations` с 10 доставчика и 20+ модела (OpenAI, xAI, Together, Fireworks, Nebius, Hyperbolic, NanoBanana, Antigravity, SD WebUI, ComfyUI) -- **Текст към видео** — `/v1/videos/generations` — ComfyUI (AnimateDiff, SVD) и SD WebUI -- **Текст към музика** — `/v1/music/generations` — ComfyUI (Stable Audio Open, MusicGen) -- **Аудио транскрипция** — `/v1/audio/transcriptions` — Whisper + Nvidia NIM, HuggingFace, Qwen3 -- **Текст-към-говор** — `/v1/audio/speech` — ElevenLabs, Nvidia NIM, HuggingFace, Coqui, Tortoise, Qwen3, **Inworld**, **Cartesia**, **PlayHT**, + съществуващи доставчици -- **Модерации** — `/v1/moderations` — Проверки за безопасност на съдържанието -- **Прекласиране** — `/v1/rerank` — Прекласиране на уместността на документа -- **API за отговори** — Пълна поддръжка на `/v1/responses` за Codex - -</details> - -<details> -<summary><b>🧪 14. „Нямам начин да тествам и сравнявам качеството между моделите“</b></summary> - -Разработчиците искат да знаят кой модел е най-подходящ за техния случай на употреба – код, превод, разсъждения – но ръчното сравняване е бавно. Не съществуват интегрирани инструменти за оценка. - -**Как OmniRoute го решава:** - -- **Оценки на LLM** — Тестване със златен комплект с 10 предварително заредени случая, обхващащи поздрави, математика, география, генериране на код, съответствие с JSON, превод, маркдаун, отказ за безопасност -- **4 стратегии за съвпадение** — `exact`, `contains`, `regex`, `custom` (JS функция) -- **Translator Playground Test Bench** — Пакетно тестване с множество входове и очаквани изходи, сравнение между доставчици -- **Chat Tester** — Пълно двупосочно пътуване с визуално изобразяване на отговора -- **Монитор на живо** — Поток в реално време на всички заявки, преминаващи през проксито - -</details> - -<details> -<summary><b>📈 15. „Трябва да мащабирам, без да губя производителност“</b></summary> - -Тъй като обемът на заявките нараства, без кеширане едни и същи въпроси генерират дублиращи се разходи. Без идемпотентност, дубликат иска обработка на отпадъци. Трябва да се спазват ограниченията на тарифите за всеки доставчик. - -**Как OmniRoute го решава:** - -- **Семантичен кеш** — Двуслоен кеш (подпис + семантичен) намалява разходите и забавянето -- **Request Idempotency** — 5s прозорец за дедупликация за идентични заявки -- **Rate Limit Detection** — RPM на доставчик, минимална разлика и максимално едновременно проследяване -- **Редактируеми ограничения на скоростта** — Конфигурируеми настройки по подразбиране в Настройки → Устойчивост с постоянство -- **API Key Validation Cache** — 3-степенен кеш за производствена производителност -- **Здравно табло с телеметрия** — p50/p95/p99 латентност, статистика на кеша, ъптайм - -</details> - -<details> -<summary><b>🤖 16. „Искам да контролирам поведението на модела глобално“</b></summary> - -Разработчици, които искат всички отговори на конкретен език, със специфичен тон или искат да ограничат токените за мотивиране. Конфигурирането на това във всеки инструмент/заявка е непрактично. - -**Как OmniRoute го решава:** - -- **Инжектиране на системна подкана** — Глобална подкана, приложена към всички заявки -- **Thinking Budget Validation** — Разсъждаващ контрол на разпределението на токени за всяка заявка (преминаване, автоматично, персонализирано, адаптивно) -- **6 стратегии за маршрутизиране** — Глобални стратегии, които определят как се разпределят заявките -- **Wildcard Router** — `provider/*` шаблони маршрутизират динамично към всеки доставчик -- **Combo Enable/Disable Toggle** — Превключвайте комбинации директно от таблото за управление -- **Превключване на доставчика** — Активирайте/деактивирайте всички връзки за доставчик с едно щракване -- **Блокирани доставчици** — Изключете конкретни доставчици от списъка `/v1/models` - -</details> - -<details> -<summary><b>🧰 17. „Имам нужда от MCP инструменти като първокласни продуктови възможности“</b></summary> - -Много AI шлюзове разкриват MCP само като скрит детайл за изпълнение. Екипите се нуждаят от видим, управляем оперативен слой. - -**Как OmniRoute го решава:** - -- MCP се появява в раздела за навигация на таблото за управление и протокол на крайна точка -- Специализирана страница за управление на MCP с процес, инструменти, обхвати и одит -- Вградено бързо стартиране за `omniroute --mcp` и включване на клиента - -</details> - -<details> -<summary><b>🧠 18. „Имам нужда от A2A оркестрация със синхронизиране + пътеки на задачи за поток“</b></summary> - -Работните потоци на агентите се нуждаят както от директни отговори, така и от дълготрайно поточно изпълнение с контрол на жизнения цикъл. - -**Как OmniRoute го решава:** - -- A2A JSON-RPC крайна точка (`POST /a2a`) с `message/send` и `message/stream` -- SSE поточно предаване с разпространение на състоянието на терминала -- API на жизнения цикъл на задачите за `tasks/get` и `tasks/cancel` - -</details> - -<details> -<summary><b>🛰️ 19. „Имам нужда от реално състояние на MCP процес, а не от познат статус“</b></summary> - -Оперативните екипи трябва да знаят дали MCP действително е жив, а не само дали API е достъпен. - -**Как OmniRoute го решава:** - -- Сърдечен файл по време на изпълнение с PID, времеви отпечатъци, транспорт, брой инструменти и режим на обхват -- API за състояние на MCP, комбиниращ сърдечен ритъм + скорошна активност -- Карти за състояние на потребителския интерфейс за свежест на процеса/време на работа/пулс - -</details> - -<details> -<summary><b>📋 20. „Имам нужда от изпълнение на MCP инструмент с възможност за проверка“</b></summary> - -Когато инструментите променят конфигурацията или задействат оперативни действия, екипите се нуждаят от криминалистична проследимост. - -**Как OmniRoute го решава:** - -- Поддържано от SQLite одитно регистриране за извиквания на MCP инструмент -- Филтрира по инструмент, успех/неуспех, API ключ и пагинация -- Таблица за одит на таблото + статистически крайни точки за автоматизация - -</details> - -<details> -<summary><b>🔐 21. „Имам нужда от MCP разрешения с обхват за интеграция“</b></summary> - -Различните клиенти трябва да имат най-малко привилегирован достъп до категории инструменти. - -**Как OmniRoute го решава:** - -- 9 гранулирани MCP обхвата за контролиран достъп до инструмента -- Налагане на обхват и видимост в потребителския интерфейс за управление на MCP -- Безопасна поза по подразбиране за оперативни инструменти - -</details> - -<details> -<summary><b>⚙️ 22. „Имам нужда от оперативни контроли без повторно разполагане“</b></summary> - -Екипите се нуждаят от бързи промени във времето на изпълнение по време на инциденти или разходни събития. - -**Как OmniRoute го решава:** - -- Превключете комбо активирането директно от таблото за управление на MCP -- Прилагайте профили на устойчивост от предварително дефинирани пакети с правила -- Нулирайте състоянието на прекъсвача от същия операционен панел - -</details> - -<details> -<summary><b>🔄 23. „Имам нужда от видимост и анулиране на жизнения цикъл на задача A2A на живо“</b></summary> - -Без видимост на жизнения цикъл инцидентите със задачи стават трудни за сортиране. - -**Как OmniRoute го решава:** - -- Списък със задачи/филтриране по състояние/умение с пагинация -- Разбивка на метаданни, събития и артефакти на задачи -- Крайна точка за анулиране на задача и действие на потребителския интерфейс с потвърждение - -</details> - -<details> -<summary><b>🌊 24. „Имам нужда от активни показатели на потока за A2A натоварване“</b></summary> - -Поточните работни потоци изискват оперативно вникване в паралелността и живите връзки. - -**Как OmniRoute го решава:** - -- Броячи на активни потоци, интегрирани в статуса A2A -- Времево клеймо на последната задача и броя на състоянието -- A2A карти на таблото за наблюдение на операциите в реално време - -</details> - -<details> -<summary><b>🪪 25. „Имам нужда от стандартно откриване на агент за клиенти“</b></summary> - -Външните клиенти и оркестраторите се нуждаят от машинночетими метаданни за включване. - -**Как OmniRoute го решава:** - -- Карта на агент, разкрита на `/.well-known/agent.json` -- Възможности и умения, показани в потребителския интерфейс за управление -- API за състояние A2A включва метаданни за откриване за автоматизация - -</details> - -<details> -<summary><b>🧭 26. „Имам нужда от откриваемост на протокола в UX на продукта“</b></summary> - -Ако потребителите не могат да открият повърхности на протокола, качеството на приемане и поддръжка пада. - -**Как OmniRoute го решава:** - -- Консолидирана страница **Крайни точки** с раздели за прокси, MCP, A2A и API крайни точки -- Превключва състоянието на вградената услуга (онлайн/офлайн) за MCP и A2A -- Връзки от преглед към специални раздели за управление - -</details> - -<details> -<summary><b>🧪 27. „Имам нужда от валидиране на протокол от край до край с реални клиенти“</b></summary> - -Фалшивите тестове не са достатъчни за валидиране на съвместимостта на протокола преди пускане. - -**Как OmniRoute го решава:** - -- E2E пакет, който зарежда приложение и използва реален MCP SDK клиентски транспорт -- Клиент A2A тества за потоци откриване, изпращане, поточно предаване, получаване и отмяна -- Кръстосана проверка на твърдения срещу MCP одит и API на A2A задачи - -</details> - -<details> -<summary><b>📡 28. „Имам нужда от унифицирана видимост във всички интерфейси“</b></summary> - -Разделянето на наблюдаемостта по протокол създава слепи зони и по-дълъг MTTR. - -**Как OmniRoute го решава:** - -- Унифицирани табла за управление/логове/аналитика в един продукт -- Здраве + одит + заявка за телеметрия в OpenAI, MCP и A2A слоеве -- Оперативни API за статус и автоматизация - -</details> - -<details> -<summary><b>💼 29. „Имам нужда от едно време за изпълнение за прокси + инструменти + оркестрация на агент“</b></summary> - -Изпълнението на много отделни услуги увеличава оперативните разходи и режимите на отказ. - -**Как OmniRoute го решава:** - -- OpenAI-съвместим прокси, MCP сървър и A2A сървър в един стек -- Споделено удостоверяване, устойчивост, съхранение на данни и възможност за наблюдение -- Последователен модел на политика във всички повърхности на взаимодействие - -</details> - -<details> -<summary><b>🚀 30. „Трябва да изпратя агентски работни потоци без разрастване на лепен код“</b></summary> - -Екипите губят скорост, когато свързват множество ad-hoc услуги и скриптове. - -**Как OmniRoute го решава:** - -- Единна стратегия за крайни точки за клиенти и агенти -- Вграден потребителски интерфейс за управление на протоколи и пътеки за проверка на дим -- Готови за производство основи (сигурност, регистриране, устойчивост, архивиране) - -</details> - -### Примерни книги за игри (интегрирани случаи на употреба) - -**Playbook A: Увеличете максимално платения абонамент + евтино архивиране** - -```txt -Combo: "maximize-claude" - 1. cc/claude-opus-4-6 - 2. glm/glm-4.7 - 3. if/kimi-k2-thinking - -Monthly cost: $20 + small backup spend -Outcome: higher quality, near-zero interruption -``` - -**Playbook B: Стек за кодиране с нулеви разходи** - -```txt -Combo: "free-forever" - 1. gc/gemini-3-flash - 2. if/kimi-k2-thinking - 3. qw/qwen3-coder-plus - -Monthly cost: $0 -Outcome: stable free coding workflow -``` - -**Playbook C: 24/7 винаги включена резервна верига** - -```txt -Combo: "always-on" - 1. cc/claude-opus-4-6 - 2. cx/gpt-5.2-codex - 3. glm/glm-4.7 - 4. minimax/MiniMax-M2.1 - 5. if/kimi-k2-thinking - -Outcome: deep fallback depth for deadline-critical workloads -``` - -**Playbook D: Операции на агент с MCP + A2A** - -```txt -1) Start MCP transport (`omniroute --mcp`) for tool-driven operations -2) Run A2A tasks via `message/send` and `message/stream` -3) Observe via /dashboard/endpoint (MCP and A2A tabs) -4) Toggle services via inline status controls -``` - ---- - -## 🆓 Започнете безплатно — нулеви разходи за конфигурация - -> Настройте AI кодиране за минути при **$0/месец**. Свържете тези безплатни акаунти и използвайте вградената комбинация **Free Stack**. - -| Стъпка | Действие | Отключени доставчици | -| ------ | ---------------------------------------------------- | ------------------------------------------------------------------- | -| 1 | Свържете **Kiro** (AWS Builder ID OAuth) | Клод Сонет 4.5, Хайку 4.5 — **неограничен** | -| 2 | Свържете **Qoder** (Google OAuth) | kimi-k2-мислене, qwen3-coder-plus, deepseek-r1... — **неограничен** | -| 3 | Свържете **Qwen** (Код на устройството) | qwen3-coder-plus, qwen3-coder-flash... — **неограничен** | -| 4 | Свържете **Gemini CLI** (Google OAuth) | gemini-3-flash, gemini-2.5-pro — **180K/мес безплатно** | -| 5 | `/dashboard/combos` → **Безплатен стек ($0)** шаблон | Кръгово обвързване на всички безплатни доставчици автоматично | - -**Насочете всяка IDE/CLI към:** `http://localhost:20128/v1` · API ключ: `any-string` · Готово. - -> **Допълнително покритие по избор (също безплатно):** Groq API ключ (30 RPM безплатно), NVIDIA NIM (40 RPM безплатно, 70+ модела), Cerebras (1M tok/ден), LongCat API ключ (50M tokens/ден!), Cloudflare Workers AI (10K Neurons/ден, 50+ модела). - -## ⚡ Бърз старт - -### 1) Инсталирайте и стартирайте - -```bash -npm install -g omniroute -omniroute -``` - -> **pnpm потребители:** Стартирайте `pnpm approve-builds -g` след инсталирането, за да активирате собствените скриптове за компилация, изисквани от `better-sqlite3` и `@swc/core`: -> -> ```bash -> pnpm install -g omniroute -> pnpm approve-builds -g # Select all packages → approve -> omniroute -> ``` - -Таблото за управление се отваря на `http://localhost:20128` и основният URL адрес на API е `http://localhost:20128/v1`. - -| Команда | Описание | -| ----------------------- | ---------------------------------------------------------------------------- | -| `omniroute` | Стартиране на сървър (`PORT=20128`, API и табло за управление на същия порт) | -| `omniroute --port 3000` | Задайте каноничен/API порт на 3000 | -| `omniroute --mcp` | Стартирайте MCP сървър (stdio транспорт) | -| `omniroute --no-open` | Без автоматично отваряне на браузъра | -| `omniroute --help` | Показване на помощ | - -Допълнителен режим на разделен порт: - -```bash -PORT=20128 DASHBOARD_PORT=20129 omniroute -# API: http://localhost:20128/v1 -# Dashboard: http://localhost:20129 -``` - -### 2) Свържете доставчици и създайте своя API ключ - -1. Отворете таблото → `Providers` и свържете поне един доставчик (OAuth или API ключ). -2. Отворете таблото → `Endpoints` и създайте API ключ. -3. (По избор) Отворете таблото за управление → `Combos` и задайте вашата резервна верига. - -### 3) Насочете вашия инструмент за кодиране към OmniRoute - -```txt -Base URL: http://localhost:20128/v1 -API Key: [copy from Endpoint page] -Model: if/kimi-k2-thinking (or any provider/model prefix) -``` - -Работи с Claude Code, Codex CLI, Gemini CLI, Cursor, Cline, OpenClaw, OpenCode и OpenAI-съвместими SDK. - -### 4) Активиране и валидиране на протоколи (v2.0) - -**MCP (за операции, управлявани от инструменти):** - -```bash -omniroute --mcp -``` - -След това свържете вашия MCP клиент през `stdio` и тествайте инструменти като: - -- `omniroute_get_health` -- `omniroute_list_combos` - -**A2A (за работни процеси от агент към агент):** - -```bash -curl http://localhost:20128/.well-known/agent.json -``` - -```bash -curl -X POST http://localhost:20128/a2a \ - -H 'content-type: application/json' \ - -d '{"jsonrpc":"2.0","id":"quickstart","method":"message/send","params":{"skill":"quota-management","messages":[{"role":"user","content":"Give me a short quota summary."}]}}' -``` - -### 5) Валидирайте всичко от край до край (препоръчително) - -```bash -npm run test:protocols:e2e -``` - -Този пакет валидира реални MCP и A2A клиентски потоци спрямо работещо приложение. - -### Алтернатива: стартирайте от източника - -```bash -cp .env.example .env -npm install -PORT=20128 DASHBOARD_PORT=20129 NEXT_PUBLIC_BASE_URL=http://localhost:20129 npm run dev -``` - ---- - -## 🐳 Докер - -OmniRoute е наличен като публично изображение на Docker на [Docker Hub](https://hub.docker.com/r/diegosouzapw/omniroute). - -**Бързо бягане:** - -```bash -docker run -d \ - --name omniroute \ - --restart unless-stopped \ - -p 20128:20128 \ - -v omniroute-data:/app/data \ - diegosouzapw/omniroute:latest -``` - -**С файл на средата:** - -```bash -# Copy and edit .env first -cp .env.example .env - -docker run -d \ - --name omniroute \ - --restart unless-stopped \ - --env-file .env \ - -p 20128:20128 \ - -v omniroute-data:/app/data \ - diegosouzapw/omniroute:latest -``` - -**Използване на Docker Compose:** - -```bash -# Base profile (no CLI tools) -docker compose --profile base up -d - -# CLI profile (Claude Code, Codex, OpenClaw built-in) -docker compose --profile cli up -d -``` - -| Изображение | Етикет | Размер | Описание | -| ------------------------ | -------- | ------ | -------------------------- | -| `diegosouzapw/omniroute` | `latest` | ~250MB | Най-новата стабилна версия | -| `diegosouzapw/omniroute` | `1.0.3` | ~250MB | Текуща версия | - ---- - -## 🖥️ Настолно приложение — офлайн и винаги включено - -> 🆕 **НОВО!** OmniRoute вече е наличен като **стандартно настолно приложение** за Windows, macOS и Linux. - -Стартирайте OmniRoute като самостоятелно настолно приложение — без терминал, без браузър, без интернет, необходим за локалните модели. Базираното на Electron приложение включва: - -- 🖥️ **Собствен прозорец** — Специален прозорец на приложението с интеграция в системната област -- 🔄 **Автоматично стартиране** — Стартирайте OmniRoute при влизане в системата -- 🔔 **Нативни известия** — Получавайте сигнали за изчерпване на квотата или проблеми с доставчика -- ⚡ **Инсталиране с едно щракване** — NSIS (Windows), DMG (macOS), AppImage (Linux) -- 🌐 **Офлайн режим** — Работи напълно офлайн с пакетния сървър - -### Бърз старт - -```bash -# Development mode -npm run electron:dev - -# Build for your platform -npm run electron:build # Current platform -npm run electron:build:win # Windows (.exe) -npm run electron:build:mac # macOS (.dmg) — x64 & arm64 -npm run electron:build:linux # Linux (.AppImage) -``` - -### Системна област - -Когато е минимизиран, OmniRoute живее в системната област с бързи действия: - -- Отворете таблото -- Промяна на сървърния порт -- Излезте от приложението - -📖 Пълна документация: [**OMNI_TOKEN_153**](electron/README.md) - ---- - -## 💰 Ценообразуването с един поглед - -| Ниво | Доставчик | Цена | Нулиране на квота | Най-добро за | -| ------------------ | --------------------------- | -------------------------------- | ----------------------- | ----------------------------------------------- | -| **💳 АБОНАМЕНТ** | Claude Code (Pro) | $20/месец | 5 часа + седмично | Вече сте абонирани | -| | Codex (Plus/Pro) | $20-200/месец | 5 часа + седмично | Потребители на OpenAI | -| | Gemini CLI | **БЕЗПЛАТНО** | 180K/месец + 1K/ден | всички! | -| | Копилот на GitHub | $10-19/месец | Месечно | Потребители на GitHub | -| **🔑 КЛЮЧ ЗА API** | NVIDIA NIM | **БЕЗПЛАТНО** (dev forever) | ~40 RPM | 70+ отворени модела | -| | Мозъци | **БЕЗПЛАТНО** (1M ток/ден) | 60K TPM / 30 RPM | Най-бързият в света | -| | Groq | **БЕЗПЛАТНО** (30 RPM) | 14.4K RPD | Ултра-бърз Llama/Gemma | -| | DeepSeek V3.2 | $0,27/$1,10 за 1M | Няма | Обосновка за най-добра цена/качество | -| | xAI Grok-4 Бърз | **$0,20/$0,50 за 1M** 🆕 | Няма | Най-бързо + извикване на инструмент, ултраниско | -| | xAI Grok-4 (стандартен) | $0,20/$1,50 за 1M 🆕 | Няма | Разсъждаващ флагман от xAI | -| | Мистрал | Безплатен пробен период + платен | Ограничена скорост | Европейски AI | -| | OpenRouter | Плащане при използване | Няма | 100+ модела агр. | -| **💰 ЕВТИНО** | GLM-5 (чрез Z.AI) 🆕 | $0,5/1 милион | Ежедневно 10 сутринта | 128K изход, най-новият флагман | -| | GLM-4.7 | $0,6/1 милион | Ежедневно 10 сутринта | Резервно копие на бюджета | -| | MiniMax M2.5 🆕 | $0,3/1M вход | 5-часово търкаляне | Разсъждение + агентски задачи | -| | MiniMax M2.1 | $0,2/1 милион | 5-часово търкаляне | Най-евтиният вариант | -| | Kimi K2.5 (Moonshot API) 🆕 | Плащане при използване | Няма | Директен достъп до API на Moonshot | -| | Кими К2 | $9/месец апартамент | 10 милиона токена/месец | Предвидими разходи | -| **🆓 БЕЗПЛАТНО** | Qoder | **$0** | Неограничен | 5 модела неограничено | -| | Куен | **$0** | Неограничен | 4 модела неограничено | -| | Киро | **$0** | Неограничен | Клод Сонет/Хайку (AWS Builder) | -| | LongCat Flash-Lite 🆕 | **$0** (50M ток/ден 🔥) | 1 RPS | Най-голямата безплатна квота на Земята | -| | Опрашвания AI 🆕 | **$0** (не е необходим ключ) | 1 изискване/15s | GPT-5, Claude, DeepSeek, Llama 4 | -| | Cloudflare Workers AI 🆕 | **$0** (10K неврона/ден) | ~150 повторения/ден | 50+ модела, глобално предимство | -| | Scaleway AI 🆕 | **$0** (общо 1 милион токена) | Ограничена скорост | ЕС/GDPR, Qwen3 235B, Llama 70B | - -> 🆕 **Добавени нови модели (март 2026 г.):** Grok-4 Fast семейство на $0,20/$0,50/M (сравнено с 1143ms — 30% по-бързо от Gemini 2.5 Flash), GLM-5 чрез Z.AI с 128K изход, MiniMax M2.5 аргументация, DeepSeek V3.2 актуализирана цена, Kimi K2.5 чрез Moonshot direct API. - -**💡 $0 Combo Stack — Пълната безплатна настройка:** - -``` -# 🆓 Ultimate Free Stack 2026 — 11 Providers, $0 Forever -Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED -LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 -Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed -Qwen (qw/) → qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next UNLIMITED -Gemini (gemini/) → Gemini 2.5 Flash — 1,500 req/day free API key -Cloudflare AI (cf/) → Llama 70B, Gemma 3, Mistral — 10K Neurons/day -Scaleway (scw/) → Qwen3 235B, Llama 70B — 1M free tokens (EU) -Groq (groq/) → Llama/Gemma ultra-fast — 14.4K req/day -NVIDIA NIM (nvidia/) → 70+ open models — 40 RPM forever -Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day -``` - -**Нулев разход. Никога не спира кодирането.** Конфигурирайте това като едно OmniRoute комбо и всички резервни варианти се случват автоматично – без ръчно превключване. - ---- - ---- - -## 🆓 Безплатни модели — това, което всъщност получавате - -> Всички модели по-долу са **100% безплатни без изискване за кредитна карта**. OmniRoute автоматично пренасочва между тях, когато една квота изтече — комбинирайте ги всички за неразбиваема комбинация от $0. - -### 🔵 CLAUDE MODELS (чрез Kiro — AWS Builder ID) - -| Модел | Префикс | Лимит | Ограничение на скоростта | -| ------------------- | ------- | --------------- | -------------------------------- | -| `claude-sonnet-4.5` | `kr/` | **Неограничен** | Няма отчетено дневно ограничение | -| `claude-haiku-4.5` | `kr/` | **Неограничен** | Няма отчетено дневно ограничение | -| `claude-opus-4.6` | `kr/` | **Неограничен** | Най-новият Opus чрез Kiro | - -### 🟢 QODER МОДЕЛИ (Безплатен OAuth — Без кредитна карта) - -| Модел | Префикс | Лимит | Ограничение на скоростта | -| ------------------ | ------- | --------------- | ------------------------- | -| `kimi-k2-thinking` | `if/` | **Неограничен** | Няма отчетено ограничение | -| `qwen3-coder-plus` | `if/` | **Неограничен** | Няма отчетено ограничение | -| `deepseek-r1` | `if/` | **Неограничен** | Няма отчетено ограничение | -| `minimax-m2.1` | `if/` | **Неограничен** | Няма отчетено ограничение | -| `kimi-k2` | `if/` | **Неограничен** | Няма отчетено ограничение | - -### 🟡 МОДЕЛИ QWEN (Удостоверяване на кода на устройството) - -| Модел | Префикс | Лимит | Ограничение на скоростта | -| ------------------- | ------- | --------------- | -------------------------- | -| `qwen3-coder-plus` | `qw/` | **Неограничен** | Няма отчетено ограничение | -| `qwen3-coder-flash` | `qw/` | **Неограничен** | Няма отчетено ограничение | -| `qwen3-coder-next` | `qw/` | **Неограничен** | Няма отчетено ограничение | -| `vision-model` | `qw/` | **Неограничен** | Мултимодални (изображения) | - -### 🟣 GEMINI CLI (Google OAuth) - -| Модел | Префикс | Лимит | Ограничение на скоростта | -| ------------------------ | ------- | ---------------------------- | ------------------------ | -| `gemini-3-flash-preview` | `gc/` | **180K tok/месец** + 1K/ден | Месечно нулиране | -| `gemini-2.5-pro` | `gc/` | 180K/месец (споделен басейн) | Високо качество | - -### ⚫ NVIDIA NIM (Безплатен API ключ — build.nvidia.com) - -| Ниво | Дневен лимит | Ограничение на скоростта | Бележки | -| --------------- | ------------------------- | ------------------------ | ------------------------------------------------------------------------ | -| Безплатно (Dev) | Без ограничение на токена | **~40 RPM** | 70+ модела; преминаване към чисти лимити на лихвите в средата на 2025 г. | - -Популярни безплатни модели: `moonshotai/kimi-k2.5` (Kimi K2.5), `z-ai/glm4.7` (GLM 4.7), `deepseek-ai/deepseek-v3.2` (DeepSeek V3.2), `nvidia/llama-3.3-70b-instruct`, `deepseek/deepseek-r1` - -### ⚪ CEREBRAS (Безплатен API ключ — inference.cerebras.ai) - -| Ниво | Дневен лимит | Ограничение на скоростта | Бележки | -| --------- | ----------------------- | ------------------------ | ----------------------------------------------- | -| Безплатно | **1 милион токена/ден** | 60K TPM / 30 RPM | Най-бързият LLM извод в света; нулира ежедневно | - -Предлага се безплатно: `llama-3.3-70b`, `llama-3.1-8b`, `deepseek-r1-distill-llama-70b` - -### 🔴 GROQ (Безплатен API ключ — console.groq.com) - -| Ниво | Дневен лимит | Ограничение на скоростта | Бележки | -| --------- | ------------- | ------------------------ | ----------------------------------------------- | -| Безплатно | **14,4K RPD** | 30 RPM за модел | Без кредитна карта; 429 на лимит, не се таксува | - -Налични безплатно: `llama-3.3-70b-versatile`, `gemma2-9b-it`, `mixtral-8x7b`, `whisper-large-v3` - -### 🔴 LONGCAT AI (Безплатен API ключ — longcat.chat) 🆕 - -| Модел | Префикс | Дневна безплатна квота | Бележки | -| ----------------------------- | ------- | ------------------------ | ----------------------------------- | -| `LongCat-Flash-Lite` | `lc/` | **50 милиона токена** 💥 | Най-голямата безплатна квота досега | -| `LongCat-Flash-Chat` | `lc/` | 500K токена | Многооборотен чат | -| `LongCat-Flash-Thinking` | `lc/` | 500K токена | Разсъждения / CoT | -| `LongCat-Flash-Thinking-2601` | `lc/` | 500K токена | Версия от януари 2026 г. | -| `LongCat-Flash-Omni-2603` | `lc/` | 500K токена | Мултимодален | - -> 100% безплатно, докато сте в публична бета версия. Регистрирайте се на [longcat.chat](https://longcat.chat) с имейл или телефон. Нулира всеки ден в 00:00 UTC. - -### 🟢 POLLINATIONS AI (Не се изисква API ключ) 🆕 - -| Модел | Префикс | Ограничение на скоростта | Доставчик зад | -| ---------- | ------- | ------------------------ | ----------------- | -| `openai` | `pol/` | 1 изискване/15s | GPT-5 | -| `claude` | `pol/` | 1 изискване/15s | Антропичен Клод | -| `gemini` | `pol/` | 1 изискване/15s | Google Gemini | -| `deepseek` | `pol/` | 1 изискване/15s | DeepSeek V3 | -| `llama` | `pol/` | 1 изискване/15s | Мета Лама 4 Скаут | -| `mistral` | `pol/` | 1 изискване/15s | Мистрал AI | - -> ✨ **Нулево триене:** Без регистрация, без API ключ. Добавете доставчика на Опрашвания с празно ключово поле и той работи веднага. - -### 🟠 CLOUDFLARE WORKERS AI (Безплатен API ключ — cloudflare.com) 🆕 - -| Ниво | Ежедневни неврони | Еквивалентно използване | Бележки | -| --------- | ----------------- | ------------------------------------------- | ----------------------- | -| Безплатно | **10 000** | ~150 LLM resp / 500s аудио / 15K вграждания | Global edge, 50+ модела | - -Популярни безплатни модели: `@cf/meta/llama-3.3-70b-instruct`, `@cf/google/gemma-3-12b-it`, `@cf/openai/whisper-large-v3-turbo` (безплатно аудио!), `@cf/qwen/qwen2.5-coder-15b-instruct` - -> Изисква API Token + ID на акаунт от [dash.cloudflare.com](https://dash.cloudflare.com). Съхранявайте ID на акаунта в настройките на доставчика. - -### 🟣 SCALEWAY AI (1 милион безплатни токени — scaleway.com) 🆕 - -| Ниво | Безплатна квота | Местоположение | Бележки | -| --------- | --------------- | -------------- | -------------------------------------------------- | -| Безплатно | **1M токени** | 🇫🇷 Париж, ЕС | Не е необходима кредитна карта в рамките на лимити | - -Налични безплатно: `qwen3-235b-a22b-instruct-2507` (Qwen3 235B!), `llama-3.1-70b-instruct`, `mistral-small-3.2-24b-instruct-2506`, `deepseek-v3-0324` - -> Съвместим с ЕС/GDPR. Вземете API ключ на адрес [console.scaleway.com](https://console.scaleway.com). - -> **💡 Най-добрият безплатен стек (11 доставчици, $0 завинаги):** -> -> ``` -> Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -> Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED -> LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 -> Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed -> Qwen (qw/) → qwen3-coder models UNLIMITED -> Gemini (gemini/) → Gemini 2.5 Flash — 1,500 req/day free -> Cloudflare AI (cf/) → 50+ models — 10K Neurons/day -> Scaleway (scw/) → Qwen3 235B, Llama 70B — 1M free tokens (EU) -> Groq (groq/) → Llama/Gemma — 14.4K req/day ultra-fast -> NVIDIA NIM (nvidia/) → 70+ open models — 40 RPM forever -> Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day -> ``` - -## 🎙️ Комбинация за безплатна транскрипция - -> Транскрибирайте всяко аудио/видео за **$0** — Deepgram води с $200 безплатно, AssemblyAI $50 резервен вариант, Groq Whisper като неограничено аварийно архивиране. - -| Доставчик | Безплатни кредити | Най-добър модел | Ограничение на скоростта | -| ----------------- | -------------------------------- | ------------------------------------------ | ------------------------------------------- | -| 🟢 **Deepgram** | **$200 безплатно** (регистрация) | `nova-3` — най-добра точност, 30+ езика | Без ограничение на RPM за безплатни кредити | -| 🔵 **AssemblyAI** | **$50 безплатно** (регистрация) | `universal-3-pro` — глави, настроение, PII | Без ограничение на RPM за безплатни кредити | -| 🔴 **Groq** | **Безплатно завинаги** | `whisper-large-v3` — OpenAI Whisper | 30 RPM (ограничена скорост) | - -**Предложена комбинация в `/dashboard/combos`:** - -``` -Name: free-transcription -Strategy: Priority -Nodes: - [1] deepgram/nova-3 → uses $200 free first - [2] assemblyai/universal-3-pro → fallback when Deepgram credits run out - [3] groq/whisper-large-v3 → free forever, emergency fallback -``` - -След това в `/dashboard/media` → раздел **Транскрипция**: качете произволен аудио или видео файл → изберете вашата комбинирана крайна точка → получете транскрипция в поддържани формати. - -## 💡 Основни характеристики - -OmniRoute v2.0 е създаден като операционна платформа, а не просто релейно прокси. - -### 🆕 Ново — вдъхновени от ClawRouter подобрения (март 2026 г.) - -| Характеристика | Какво прави | -| ----------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | -| ⚡ **Grok-4 Fast Family** | xAI модели при $0,20/$0,50/M — сравнително време 1143ms (30% по-бързо от Gemini 2.5 Flash) | -| 🧠 **GLM-5 чрез Z.AI** | 128K изходен контекст, $0,5/1M — най-новият флагман от семейството GLM | -| 🔮 **MiniMax M2.5** | Разсъждение + агентски задачи при $0,30/1M — значително надграждане от M2.1 | -| 🎯 **флаг за извикване на инструмент за модел** | За модел `toolCalling: true/false` в системния регистър — AutoCombo пропуска модели без инструмент | -| 🌍 **Откриване на многоезични намерения** | PT/ZH/ES/AR ключови думи в точкуването на AutoCombo — по-добър избор на модел за неанглийско съдържание | -| 📊 **Резервни резултати, управлявани от бенчмаркове** | Реална p95 латентност от живи заявки емисии комбо точкуване — AutoCombo се учи от действителни данни | -| 🔁 **Искайте дедупликация** | Прозорец за дедупиране, базиран на хеш съдържание — безопасен за много агенти, предотвратява дублиране на такси | -| 🔌 **Pluggable RouterStrategy** | Разширяем интерфейс `RouterStrategy` — добавете персонализирана логика за маршрутизиране като добавки | - -### 🚀 Предишна v2.0.9+ — Playground, CLI Fingerprints & ACP - -| Характеристика | Какво прави | -| ------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 🎮 **Моделна площадка** | Страница на таблото за директно тестване на всеки модел — селектори на доставчик/модел/крайна точка, Monaco Editor, стрийминг, прекъсване, време | -| 🔏 **CLI съпоставяне на пръстови отпечатъци** | Подреждане на заглавка/основен текст на доставчик, за да съответства на оригиналните CLI подписи — превключете за доставчик в Настройки > Сигурност. **Вашият прокси IP е запазен** | -| 🤝 **Поддръжка на ACP (протокол за клиент на агент)** | Откриване на CLI агент (Codex, Claude, Goose, Gemini CLI, OpenClaw + още 9), генериращ процес, `/api/acp/agents` крайна точка | -| 🤖 **Табло за управление на ACP агенти** | Страница за отстраняване на грешки › Агенти — мрежа от 14 агента със статус на инсталиране, версия, персонализирана форма на агент за всеки CLI инструмент. Потребителите на **OpenCode** получават бутон „Изтегляне на opencode.json“, който автоматично генерира готова за използване конфигурация с всички налични модели. | -| 🔧 **Персонализиран модел `apiFormat` Маршрутизиране** | Персонализираните модели с `apiFormat: "responses"` вече се насочват правилно към преводача на API за отговори | -| 🏢 **Изолация на работното пространство на Codex** | Множество работни пространства на Codex на имейл — OAuth правилно разделя връзките по ID на работното пространство | -| 🔄 **Електронно автоматично актуализиране** | Настолното приложение проверява за актуализации + автоматично инсталиране при рестартиране | - -### 🤖 Операции на агент и протокол (v2.0) - -| Характеристика | Какво прави | -| ---------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ | -| 🔧 **MCP сървър (16 инструмента)** | Инструменти за IDE/агент чрез 3 транспорта: stdio, SSE (`/api/mcp/sse`), Streamable HTTP (`/api/mcp/stream`) | -| 🤝 **A2A сървър (JSON-RPC + SSE)** | Изпълнение на задачи от агент към агент със синхронизиране и поточно предаване | -| 🧭 **Страница с консолидирани крайни точки** | Страница за управление с раздели с раздели Endpoint Proxy, MCP, A2A и API Endpoints | -| 🎚️ **Превключватели за активиране/деактивиране на услуги** | Превключватели за ВКЛ./ИЗКЛ. за MCP и A2A с постоянни настройки (по подразбиране: ИЗКЛ.) | -| 🛰️ **MCP Runtime Heartbeat** | Реално състояние на процеса (pid, време на работа, възраст на сърдечния ритъм, транспорт, режим на обхвата) | -| 📋 **MCP одитна пътека** | Филтрируеми журнали за одит с успех/неуспех и ключово приписване | -| 🔐 **Прилагане на обхват на MCP** | 9 подробни разрешения за обхват за контролиран достъп до инструменти | -| 📡 **A2A Управление на жизнения цикъл на задачите** | Списък/филтриране на задачи, проверка на събития/артефакти, отмяна на изпълнявани задачи | -| 📋 **Откриване на карта на агент** | `/.well-known/agent.json` за автоматично откриване на клиенти | -| 🧪 **Протокол E2E Тестова система** | Истински MCP SDK + A2A клиент потоци в `test:protocols:e2e` | -| ⚙️ **Оперативни контроли** | Превключете комбо, приложете профили на устойчивост, нулирайте прекъсвачите от една контролна повърхност | - -### 🧠 Маршрутизиране и разузнаване - -| Характеристика | Какво прави | -| ----------------------------------------------------------- | ------------------------------------------------------------------------------ | -| 🎯 **Интелигентен 4-степенен резервен вариант** | Автоматичен маршрут: Абонамент → API ключ → Евтини → Безплатно | -| 📊 **Проследяване на квоти в реално време** | Брой токени на живо + нулиране на обратното броене на доставчик | -| 🔄 **Форматиране на превода** | OpenAI ↔ Claude ↔ Gemini ↔ Отговори с безопасни за схема преобразувания | -| 👥 **Поддръжка за множество акаунти** | Няколко акаунта на доставчик с интелигентен избор | -| 🔄 **Автоматично опресняване на токени** | OAuth токените се опресняват автоматично с повторен опит | -| 🎨 **Персонализирани комбинации** | 6 стратегии за балансиране + резервен контрол на веригата | -| 🌐 **Wildcard Router** | `provider/*` динамично маршрутизиране | -| 🧠 **Мислене за контрол на бюджета** | Лимити за преминаване, автоматични, персонализирани и адаптивни разсъждения | -| 🔀 **Псевдоними на модели** | Вграден + персонализиран псевдоним на модела и безопасност на миграцията | -| ⚡ **Влошаване на фона** | Насочване на фонови задачи с нисък приоритет към по-евтини модели | -| 🧪 **Интелигентно маршрутизиране, съобразено със задачите** | Автоматичен избор на модел по тип съдържание (кодиране/визия/анализ/обобщение) | -| 💬 **Системно бързо инжектиране** | Глобални контроли на поведението, прилагани последователно | -| 📄 **Съвместимост с API за отговори** | Пълна `/v1/responses` поддръжка за Codex и разширени агентни работни процеси | - -### 🎵 Мултимодални API - -| Характеристика | Какво прави | -| -------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 🖼️ **Генериране на изображения** | `/v1/images/generations` с облачен и локален бекенд | -| 📐 **Вграждания** | `/v1/embeddings` за търсене и RAG тръбопроводи | -| 🎤 **Аудио транскрипция** | `/v1/audio/transcriptions` — 7 доставчика (Deepgram Nova 3, AssemblyAI, Groq Whisper, HuggingFace, ElevenLabs, OpenAI, Azure), автоматично откриване на език, поддръжка на MP4/MP3/WAV | -| 🔊 **Текст към говор** | `/v1/audio/speech` — 10 доставчика (ElevenLabs, OpenAI, Deepgram, Cartesia, PlayHT, HuggingFace, Nvidia NIM, Inworld, Coqui, Tortoise) с правилни съобщения за грешка | -| 🎬 **Видео генериране** | `/v1/videos/generations` (работни процеси ComfyUI + SD WebUI) | -| 🎵 **Музикално поколение** | `/v1/music/generations` (работни процеси на ComfyUI) | -| 🛡️ **Модерации** | `/v1/moderations` проверки за безопасност | -| 🔀 **Прекласиране** | `/v1/rerank` за оценка на уместността | -| 🔍 **Търсене в мрежата** 🆕 | `/v1/search` — 5 доставчика (Serper, Brave, Perplexity, Exa, Tavily), 6 500+ безплатни/месец, автоматично прехвърляне на грешки, кеш | - -### 🛡️ Устойчивост, сигурност и управление - -| Характеристика | Какво прави | -| --------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | -| 🔌 **Прекъсвачи** | За всеки модел пътуване/възстановяване с прагови контроли | -| 🎯 **Модели, съобразени с крайни точки** | Персонализираните модели декларират поддържани крайни точки + API формат | -| 🛡️ **Anti-Thundering Herd** | Защита на Mutex + семафор при събития за повторен опит/скорост | -| 🧠 **Семантичен + кеш на подписа** | Намаляване на разходите/закъснението с два кеш слоя | -| ⚡ **Искане на идемпотентност** | Дублиран защитен прозорец | -| 🔒 **TLS Fingerprint Spoofing** | Подобен на браузър TLS отпечатък — **намалява откриването на ботове и маркирането на акаунта** | -| 🔏 **CLI съпоставяне на пръстови отпечатъци** | Съвпада със собствените подписи на CLI заявка — **намалява риска от забрана, като същевременно запазва IP на проксито** | -| 🌐 **IP филтриране** | Списък с разрешени/списъци с блокирани контроли за открити внедрявания | -| 📊 **Редактируеми ограничения на скоростта** | Конфигурируеми глобални/на ниво доставчик ограничения с постоянство | -| 🔑 **API Key Management + Scoping** | Сигурно издаване/ротация на ключове и контроли на модел/доставчик | -| 👁️ **Scoped API Key Reveal** 🆕 | Opt-in recovery of API keys via `ALLOW_API_KEY_REVEAL` | -| 🛡️ **Защитен `/models`** | Опционално удостоверяване и скриване на доставчик за каталог на модели | - -### 📊 Наблюдаемост и анализ - -| Характеристика | Какво прави | -| --------------------------------------------- | ------------------------------------------------------------------------ | -| 📝 **Заявка + Регистриране на прокси сървър** | Пълно регистриране на заявка/отговор и прокси | -| 📉 **Streamed Detailed Logs** 🆕 | Reconstructs SSE payload streams cleanly into the UI | -| 📋 **Табло за управление на Unified Logs** | Изгледи на заявка, прокси, одит и конзола на една страница | -| 🔍 **Заявка за телеметрия** | p50/p95/p99 латентност и проследяване на заявки | -| 🏥 **Здравно табло** | Време на работа, състояния на прекъсване, блокировки, статистика на кеша | -| 💰 **Проследяване на разходите** | Контрол на бюджета и видимост на ценообразуването за модел | -| 📈 **Аналитични визуализации** | Прозрения за използването на модел/доставчик и изгледи на тенденции | -| 🧪 **Рамка за оценка** | Тестване на златен набор с конфигурируеми стратегии за мач | - -### ☁️ Внедряване и платформа - -| Характеристика | Какво прави | -| ----------------------------------------- | ---------------------------------------------------------------------------- | -| 🌐 **Разполагане навсякъде** | Localhost, VPS, Docker, облачни среди | -| 💾 **Синхронизиране в облак** | Синхронизиране на конфигурацията чрез облачен работник | -| 🔄 **Архивиране/Възстановяване** | Експорт/импорт и потоци за възстановяване след бедствие | -| 🧙 **Съветник за присъединяване** | Насочвана настройка при първо стартиране | -| 🔧 **CLI Tools Dashboard** | Настройка с едно щракване за популярни инструменти за кодиране | -| 🎮 **Моделна площадка** | Тествайте всеки доставчик/модел/крайна точка от таблото | -| 🔏 **CLI Fingerprint Toggle** | Съвпадение на пръстови отпечатъци за всеки доставчик в Настройки > Сигурност | -| 🌐 **i18n (30 езика)** | Пълно табло за управление + езикова поддръжка на документи с RTL покритие | -| 🧹 **Изчистване на всички модели** | Изчистване на списък с модели с едно щракване в подробности за доставчика | -| 👁️ **Sidebar Controls** 🆕 | Hide components and integrations from Appearance Settings | -| 📋 **Шаблони за проблеми** | Стандартизирани GitHub шаблони за грешки и функции | -| 📂 **Директория с персонализирани данни** | `DATA_DIR` отмяна за място за съхранение | - -### Функция Deep Dive - -#### Интелигентен резервен вариант с практичен контрол на разходите - -```txt -Combo: "my-coding-stack" - 1. cc/claude-opus-4-6 - 2. nvidia/llama-3.3-70b - 3. glm/glm-4.7 - 4. if/kimi-k2-thinking -``` - -Когато квотата, скоростта или здравето са неуспешни, OmniRoute автоматично преминава към следващия кандидат без ръчно превключване. - -#### Управление на протоколи, което е видимо и работещо - -- MCP + A2A са откриваеми в UI и документи (не са скрити) -- API за състоянието на протокола разкриват оперативни данни на живо (`/api/mcp/*`, `/api/a2a/*`) -- Таблата за управление включват действия за операции от ден 2 (комбо превключвания, нулиране на прекъсвача, анулиране на задача) - -#### Преводач + работен процес за валидиране - -Зоната за преводач включва: - -- **Playground**: поискайте проверки за трансформация -- **Chat Tester**: пълна заявка/отговор двупосочно -- **Тестова стенда**: множество случаи в едно изпълнение -- **Монитор на живо**: изглед на трафика в реално време - -Плюс проверка на протокола с реални клиенти чрез `npm run test:protocols:e2e`. - -> 📖 **[MCP Server README](open-sse/mcp-server/README.md)** — Справка за инструменти, IDE конфигурации и примери за клиенти -> -> 📖 **[A2A Server README](src/lib/a2a/README.md)** — Умения, JSON-RPC методи, поточно предаване и жизнен цикъл на задачите - -## 🧪 Оценки (Evals) - -OmniRoute включва вградена рамка за оценка за тестване на качеството на отговора на LLM спрямо златен набор. Достъп до него чрез **Analytics → Evals** в таблото за управление. - -### Вграден златен комплект - -Предварително зареденият "OmniRoute Golden Set" съдържа тестови случаи за: - -- Поздрави, математика, география, генериране на код -- Съответствие с JSON формат, превод, генериране на маркдаун -- Отказ за безопасност (вредно съдържание), броене, булева логика - -### Стратегии за оценка - -| Стратегия | Описание | Пример | -| ---------- | ----------------------------------------------------------------------- | -------------------------------- | -| `exact` | Изходът трябва да съвпада точно | `"4"` | -| `contains` | Изходът трябва да съдържа подниз (без значение за малки и големи букви) | `"Paris"` | -| `regex` | Изходът трябва да съответства на модела на регулярен израз | `"1.*2.*3"` | -| `custom` | Персонализираната JS функция връща true/false | `(output) => output.length > 10` | - ---- - -## 📖 Ръководство за настройка - -### Настройка на протокол (MCP + A2A) - -<details> -<summary><b>🧩 Настройка на MCP (моделен контекстен протокол)</b></summary> - -Стартирайте MCP транспорт в режим stdio: - -```bash -omniroute --mcp -``` - -Препоръчителен поток за валидиране: - -1. Свържете вашия MCP клиент през stdio. -2. Стартирайте `omniroute_get_health`. -3. Стартирайте `omniroute_list_combos`. -4. Отворете `/dashboard/mcp`, за да потвърдите пулса, активността и проверката. - -Полезни API за автоматизация: - -- `GET /api/mcp/status` -- `GET /api/mcp/tools` -- `GET /api/mcp/audit` -- `GET /api/mcp/audit/stats` - -</details> - -<details> -<summary><b>🤝 Настройка на A2A (Agent2Agent)</b></summary> - -Открийте агента: - -```bash -curl http://localhost:20128/.well-known/agent.json -``` - -Изпратете задача: - -```bash -curl -X POST http://localhost:20128/a2a \ - -H 'content-type: application/json' \ - -d '{"jsonrpc":"2.0","id":"setup-a2a","method":"message/send","params":{"skill":"quota-management","messages":[{"role":"user","content":"Summarize quota status."}]}}' -``` - -Управление на жизнения цикъл: - -- `GET /api/a2a/status` -- `GET /api/a2a/tasks` -- `GET /api/a2a/tasks/:id` -- `POST /api/a2a/tasks/:id/cancel` - -Оперативен потребителски интерфейс: - -- `/dashboard/a2a` за видимост на задача/състояние/поток и димни действия - -</details> - -<details> -<summary><b>🧪 Проверка на протокола от край до край</b></summary> - -Валидирайте и двата протокола с реални клиенти: - -```bash -npm run test:protocols:e2e -``` - -Това потвърждава: - -- MCP SDK клиент за свързване/списък/обаждане -- A2A откриване/изпращане/поток/получаване/отказ -- Кръстосана проверка на данни в MCP одит и API за управление на задачи A2A - -</details> - -<details> -<summary><b>💳 Доставчици на абонамент</b></summary> - -### Claude Code (Pro/Max) - -```bash -Dashboard → Providers → Connect Claude Code -→ OAuth login → Auto token refresh -→ 5-hour + weekly quota tracking - -Models: - cc/claude-opus-4-6 - cc/claude-sonnet-4-5-20250929 - cc/claude-haiku-4-5-20251001 -``` - -**Професионален съвет:** Използвайте Opus за сложни задачи, Sonnet за скорост. OmniRoute проследява квота за модел! - -### OpenAI Codex (Plus/Pro) - -```bash -Dashboard → Providers → Connect Codex -→ OAuth login (port 1455) -→ 5-hour + weekly reset - -Models: - cx/gpt-5.2-codex - cx/gpt-5.1-codex-max -``` - -#### Управление на лимити на акаунт в Codex (5 часа + седмично) - -Всеки акаунт в Codex вече има превключватели на правилата в `Dashboard -> Providers`: - -- `5h` (ВКЛЮЧВАНЕ/ИЗКЛЮЧВАНЕ): прилагане на политиката за 5-часов праг на прозореца. -- `Weekly` (ВКЛЮЧВАНЕ/ИЗКЛЮЧВАНЕ): прилагане на правилата за седмичния праг на прозореца. -- Прагово поведение: когато активиран прозорец достигне >=90% използване, този акаунт се пропуска. -- Ротационно поведение: OmniRoute автоматично пренасочва към следващия отговарящ на условията акаунт в Codex. -- Поведение за нулиране: когато доставчикът `resetAt` изтече време, акаунтът автоматично става отново допустим. - -Сценарии: - -- `5h ON` + `Weekly ON`: акаунтът се пропуска, когато който и да е прозорец достигне прага. -- `5h OFF` + `Weekly ON`: само седмично използване може да блокира акаунта. -- `5h ON` + `Weekly OFF`: само 5-часова употреба може да блокира акаунта. -- `resetAt` премина: акаунтът влиза отново в ротация автоматично (без ръчно повторно активиране). - -### Gemini CLI (БЕЗПЛАТНО 180K/месец!) - -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Най-добра стойност:** Огромно безплатно ниво! Използвайте това преди платените нива. - -### Копилот на GitHub - -```bash -Dashboard → Providers → Connect GitHub -→ OAuth via GitHub -→ Monthly reset (1st of month) - -Models: - gh/gpt-5 - gh/claude-4.5-sonnet - gh/gemini-3-pro -``` - -</details> - -<details> -<summary><b>🔑 API Key Providers</b></summary> - -### NVIDIA NIM (БЕЗПЛАТЕН достъп за разработчици — 70+ модела) - -1. Регистрирайте се: [build.nvidia.com](https://build.nvidia.com) -2. Вземете безплатен API ключ (включени 1000 кредита за изводи) -3. Табло → Добавяне на доставчик → NVIDIA NIM: - - API ключ: `nvapi-your-key` - -**Модели:** `nvidia/llama-3.3-70b-instruct`, `nvidia/mistral-7b-instruct` и още 50+ - -**Професионален съвет:** OpenAI-съвместим API — работи безпроблемно с превода на формати на OmniRoute! - -### DeepSeek - -1. Регистрирайте се: [platform.deepseek.com](https://platform.deepseek.com) -2. Вземете API ключ -3. Табло → Добавяне на доставчик → DeepSeek - -**Модели:** `deepseek/deepseek-chat`, `deepseek/deepseek-coder` - -### Groq (налично безплатно ниво!) - -1. Регистрирайте се: [console.groq.com](https://console.groq.com) -2. Вземете API ключ (включено безплатно ниво) -3. Табло → Добавяне на доставчик → Groq - -**Модели:** `groq/llama-3.3-70b`, `groq/mixtral-8x7b` - -**Професионален съвет:** Изключително бърз извод — най-добър за кодиране в реално време! - -### OpenRouter (100+ модела) - -1. Регистрирайте се: [openrouter.ai](https://openrouter.ai) -2. Вземете API ключ -3. Табло → Добавяне на доставчик → OpenRouter - -**Модели:** Достъп до 100+ модела от всички основни доставчици чрез един API ключ. - -</details> - -<details> -<summary><b>💰 Евтини доставчици (резервни)</b></summary> - -### GLM-4.7 (Ежедневно нулиране, $0,6/1 млн.) - -1. Регистрирайте се: [Zhipu AI](https://open.bigmodel.cn/) -2. Вземете API ключ от Coding Plan -3. Табло → Добавяне на API ключ: - - Доставчик: `glm` - - API ключ: `your-key` - -**Използване:** `glm/glm-4.7` - -**Професионален съвет:** Планът за кодиране предлага 3× квота на цена 1/7! Нулирайте всеки ден в 10:00 ч. - -### MiniMax M2.1 (5 часа нулиране, $0,20/1 млн.) - -1. Регистрирайте се: [MiniMax](https://www.minimax.io/) -2. Вземете API ключ -3. Табло → Добавяне на API ключ - -**Използване:** `minimax/MiniMax-M2.1` - -**Професионален съвет:** Най-евтината опция за дълъг контекст (1M токени)! - -### Kimi K2 ($9/месец фиксиран) - -1. Абонирайте се: [Moonshot AI](https://platform.moonshot.ai/) -2. Вземете API ключ -3. Табло → Добавяне на API ключ - -**Използване:** `kimi/kimi-latest` - -**Професионален съвет:** Фиксирани $9/месец за 10 милиона токена = $0,90/1 милион ефективна цена! - -</details> - -<details> -<summary><b>🆓 БЕЗПЛАТНИ доставчици (Спешно архивиране)</b></summary> - -### Qoder (5 БЕЗПЛАТНИ модела чрез OAuth) - -```bash -Dashboard → Connect Qoder -→ Qoder OAuth login -→ Unlimited usage - -Models: - if/kimi-k2-thinking - if/qwen3-coder-plus - if/glm-4.7 - if/minimax-m2 - if/deepseek-r1 -``` - -### Qwen (4 БЕЗПЛАТНИ модела чрез код на устройството) - -```bash -Dashboard → Connect Qwen -→ Device code authorization -→ Unlimited usage - -Models: - qw/qwen3-coder-plus - qw/qwen3-coder-flash -``` - -### Киро (Клод БЕЗПЛАТНО) - -```bash -Dashboard → Connect Kiro -→ AWS Builder ID or Google/GitHub -→ Unlimited usage - -Models: - kr/claude-sonnet-4.5 - kr/claude-haiku-4.5 -``` - -</details> - -<details> -<summary><b>🎨 Създаване на комбинации</b></summary> - -### Пример 1: Увеличаване на абонамента → Евтино архивиране - -``` -Dashboard → Combos → Create New - -Name: premium-coding -Models: - 1. cc/claude-opus-4-6 (Subscription primary) - 2. glm/glm-4.7 (Cheap backup, $0.6/1M) - 3. minimax/MiniMax-M2.1 (Cheapest fallback, $0.20/1M) - -Use in CLI: premium-coding -``` - -### Пример 2: Само безплатно (нулева цена) - -``` -Name: free-combo -Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) - -Cost: $0 forever! -``` - -</details> - -<details> -<summary><b>🔧 CLI интеграция</b></summary> - -### Курсор IDE - -``` -Settings → Models → Advanced: - OpenAI API Base URL: http://localhost:20128/v1 - OpenAI API Key: [from OmniRoute dashboard] - Model: cc/claude-opus-4-6 -``` - -### Клод Код - -Използвайте страницата **CLI Tools** в таблото за управление за конфигурация с едно кликване или редактирайте `~/.claude/settings.json` ръчно. - -### Codex CLI - -```bash -export OPENAI_BASE_URL="http://localhost:20128" -export OPENAI_API_KEY="your-omniroute-api-key" - -codex "your prompt" -``` - -### OpenClaw - -**Вариант 1 — Табло (препоръчително):** - -``` -Dashboard → CLI Tools → OpenClaw → Select Model → Apply -``` - -**Опция 2 — Ръчно:** Редактиране `~/.openclaw/openclaw.json`: - -```json -{ - "models": { - "providers": { - "omniroute": { - "baseUrl": "http://127.0.0.1:20128/v1", - "apiKey": "sk_omniroute", - "api": "openai-completions" - } - } - } -} -``` - -> **Забележка:** OpenClaw работи само с локален OmniRoute. Използвайте `127.0.0.1` вместо `localhost`, за да избегнете проблеми с разрешаването на IPv6. - -### Cline / Продължи / RooCode - -``` -Settings → API Configuration: - Provider: OpenAI Compatible - Base URL: http://localhost:20128/v1 - API Key: [from OmniRoute dashboard] - Model: if/kimi-k2-thinking -``` - -### OpenCode - -**Стъпка 1:** Добавете OmniRoute като персонализиран доставчик: - -```bash -opencode -/connect -# Select "Other" → Enter ID: "omniroute" → Enter your OmniRoute API key -``` - -**Стъпка 2:** Създайте/редактирайте `opencode.json` в корена на вашия проект: - -```json -{ - "$schema": "https://opencode.ai/config.json", - "provider": { - "omniroute": { - "npm": "@ai-sdk/openai-compatible", - "name": "OmniRoute", - "options": { - "baseURL": "http://localhost:20128/v1" - }, - "models": { - "cc/claude-sonnet-4-20250514": { "name": "Claude Sonnet 4" }, - "gg/gemini-2.5-pro": { "name": "Gemini 2.5 Pro" }, - "if/kimi-k2-thinking": { "name": "Kimi K2 (Free)" } - } - } - } -} -``` - -**Стъпка 3:** Изберете модела в OpenCode: - -```bash -/models -# Select any OmniRoute model from the list -``` - -> **Съвет:** Добавете всеки модел, наличен във вашата крайна точка OmniRoute `/v1/models` към секцията `models`. Използвайте формата `provider/model-id` от таблото за управление на OmniRoute. - -</details> - ---- - -## 🐛 Отстраняване на неизправности - -<details> -<summary><b>Щракнете, за да разширите ръководството за отстраняване на неизправности</b></summary> - -**„Езиковият модел не предостави съобщения“** - -- Квотата на доставчика е изчерпана → Проверете инструмента за проследяване на квотата на таблото за управление -- Решение: Използвайте комбо резервен вариант или преминете към по-евтино ниво - -**Ограничаване на скоростта** - -- Изчерпване на квотата за абонамент → Резервно връщане към GLM/MiniMax -- Добавяне на комбинация: `cc/claude-opus-4-6 → glm/glm-4.7 → if/kimi-k2-thinking` - -**OAuth токенът е изтекъл** - -- Автоматично опресняване от OmniRoute -- Ако проблемите продължават: Табло за управление → Доставчик → Свързване отново - -**Високи разходи** - -- Проверете статистическите данни за използването в Табло → Разходи -- Превключете основния модел към GLM/MiniMax -- Използвайте безплатно ниво (Gemini CLI, Qoder) за некритични задачи - -**Портовете на таблото/API са грешни** - -- `PORT` е каноничният базов порт (и API порт по подразбиране) -- `API_PORT` отменя само OpenAI-съвместим API слушател -- `DASHBOARD_PORT` заменя само слушателя на таблото за управление/Next.js -- Задайте `NEXT_PUBLIC_BASE_URL` на вашето табло за управление/публичен URL (за OAuth обратни извиквания) - -**Грешки при синхронизиране в облак** - -- Потвърдете, че `BASE_URL` сочи към вашия работещ екземпляр -- Проверете `CLOUD_URL` точки към вашата очаквана крайна точка в облака -- Поддържайте стойностите на `NEXT_PUBLIC_*` в съответствие със стойностите от страната на сървъра - -**Първото влизане не работи** - -- Проверете `INITIAL_PASSWORD` в `.env` -- Ако не е зададена, резервната парола е `123456` - -**Няма регистрационни файлове за заявки** - -- Задайте `ENABLE_REQUEST_LOGS=true` в `.env` - -**Тестът за връзка показва „Невалидно“ за OpenAI-съвместими доставчици** - -- Много доставчици не излагат `/models` крайна точка -- OmniRoute v1.0.6+ включва резервно валидиране чрез завършвания на чат -- Уверете се, че основният URL адрес включва суфикс `/v1` - -### 🔐 OAuth на отдалечен сървър - -<a name="oauth-on-a-remote-server"></a> -<a name="oauth-em-servidor-remoto"></a> - -> **⚠️ Важно за потребители, работещи с OmniRoute на VPS, Docker или друг отдалечен сървър** - -#### Защо Antigravity / Gemini CLI OAuth се проваля на отдалечени сървъри? - -Доставчиците на **Antigravity** и **Gemini CLI** използват **Google OAuth 2.0**. Google изисква `redirect_uri` в потока OAuth да съвпада точно с един от предварително регистрираните URI адреси в Google Cloud Console на приложението. - -Идентификационните данни за OAuth, включени в OmniRoute, са регистрирани **само за `localhost`**. Когато получите достъп до OmniRoute на отдалечен сървър (напр. `https://omniroute.myserver.com`), Google отхвърля удостоверяването с: - -``` -Error 400: redirect_uri_mismatch -``` - -#### Решение: Конфигурирайте свои собствени идентификационни данни за OAuth - -Трябва да създадете **OAuth 2.0 Client ID** в Google Cloud Console с URI на вашия сървър. - -#### Стъпка по стъпка - -**1. Отворете Google Cloud Console** - -Отидете на: [https://console.cloud.google.com/apis/credentials](https://console.cloud.google.com/apis/credentials) - -**2. Създайте нов OAuth 2.0 клиентски идентификатор** - -- Щракнете върху **"+ Създаване на идентификационни данни"** → **"OAuth клиентски идентификатор"** -- Тип приложение: **"Уеб приложение"** -- Име: каквото искате (напр. `OmniRoute Remote`) - -**3. Добавете оторизирани URI адреси за пренасочване** - -В полето **„Оторизирани URI адреси за пренасочване“** добавете: - -``` -https://your-server.com/callback -``` - -> Заменете `your-server.com` с домейна или IP на вашия сървър (включете порта, ако е необходимо, напр. `http://45.33.32.156:20128/callback`). - -**4. Запазете и копирайте идентификационните данни** - -След създаването Google ще покаже **Клиентски идентификатор** и **Клиентска тайна**. - -**5. Задайте променливи на средата** - -Във вашия `.env` (или променливи на средата Docker): - -```bash -# For Antigravity: -ANTIGRAVITY_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com -ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-your-secret - -# For Gemini CLI: -GEMINI_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com -GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -``` - -**6. Рестартирайте OmniRoute** - -```bash -# npm: -npm run dev - -# Docker: -docker restart omniroute -``` - -**7. Опитайте да се свържете отново** - -Табло → Доставчици → Antigravity (или Gemini CLI) → OAuth - -Google вече ще пренасочва правилно към `https://your-server.com/callback`. - ---- - -#### Временно решение (без персонализирани идентификационни данни) - -Ако не искате да настроите свои собствени идентификационни данни точно сега, можете да използвате **ръчния URL поток**: - -1. OmniRoute отваря URL адреса за оторизация на Google -2. След оторизиране Google се опитва да пренасочи към `localhost` (което не успява на отдалечения сървър) -3. **Копирайте пълния URL** от адресната лента на вашия браузър (дори страницата да не се зарежда) -4. Поставете този URL адрес в полето, показано в модала за свързване на OmniRoute -5. Щракнете върху **"Свързване"** - -> Това работи, защото кодът за оторизация в URL адреса е валиден независимо дали страницата за пренасочване е заредена. - ---- - -<details> -<summary><b>🇧🇷 Versão em Português</b></summary> - -#### Ако OAuth на Antigravity / Gemini CLI не може да използва отдалечени сървъри? - -Доставчиците на **Antigravity** и **Gemini CLI** използват **Google OAuth 2.0** за удостоверяване. Google изисква, че `redirect_uri` не използва fluxo OAuth, който се **exatamente** не позволява на URI адресите преди кадастрада без Google Cloud Console да е приложение. - -Като пълномощия за OAuth не е OmniRoute estão cadastradas **apenas para `localhost`**. Ако имате достъп до OmniRoute в дистанционния сървър (напр.: `https://omniroute.meuservidor.com`), или Google rejeita a autenticação com: - -``` -Error 400: redirect_uri_mismatch -``` - -#### Решение: Конфигурирайте собствените си права за удостоверяване на OAuth - -Изпишете точно **OAuth 2.0 Client ID** без Google Cloud Console чрез URI на вашия сървър. - -#### Passo a passo - -**1. Достъп до Google Cloud Console** - -Abra: [https://console.cloud.google.com/apis/credentials](https://console.cloud.google.com/apis/credentials) - -**2. Crie um novo OAuth 2.0 Client ID** - -- Кликнете върху **"+ Създаване на идентификационни данни"** → **"OAuth клиентски идентификатор"** -- Tipo de aplicativo: **"Уеб приложение"** -- Име: escolha qualquer име (напр.: `OmniRoute Remote`) - -**3. Adicione като оторизирани URI адреси за пренасочване** - -Без поле **„Оторизирани URI адреси за пренасочване“**, добавете: - -``` -https://seu-servidor.com/callback -``` - -> Замяна на `seu-servidor.com` домейн или IP на вашия сървър (включително необходим порт, напр.: `http://45.33.32.156:20128/callback`). - -**4. Salve e copie as credenciais** - -Например, Google показва **Клиентски идентификатор** и **Клиентска тайна**. - -**5. Конфигуриране като variáveis de ambiente** - -Няма `.env` (или нашите варианти на околната среда на Docker): - -```bash -# Para Antigravity: -ANTIGRAVITY_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com -ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret - -# Para Gemini CLI: -GEMINI_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com -GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -``` - -**6. Reinicie o OmniRoute** - -```bash -# Se usando npm: -npm run dev - -# Se usando Docker: -docker restart omniroute -``` - -**7. Tente conectar novamente** - -Табло → Доставчици → Антигравитация (или Gemini CLI) → OAuth - -Agora или Google пренасочва корекции за `https://seu-servidor.com/callback` и функционира автентичност. - ---- - -#### Временно заобиколно решение (само за конфигуриране на удостоверения) - -Se não quiser criar credenciais próprias agora, ainda é possível usar o fluxo **manual de URL**: - -1. O OmniRoute премахва URL адрес за авторизация от Google -2. Ако не разрешите, пренасочването на Google е пренасочено към `localhost` (което не е отдалечено от сървъра) -3. **Копирайте пълния URL адрес** от страницата, която искате да прехвърлите в своя браузър (mesmo que a página não carregue) -4. Cole essa URL no campo que aparece no modal de conexão do OmniRoute -5. Щракнете върху **"Свързване"** - -> Това заобиколно решение функционира, ако кодът на авторизацията на URL е валиден независимо от пренасочването към пренасочване или не. - -</details> - ---- - -</details> - -## 🛠️ Tech Stack - -<details> -<summary><b>Щракнете, за да разширите подробностите за техническия стек</b></summary> - -- **Време на изпълнение**: Node.js 18–22 LTS (⚠️ Node.js 24+ **не се поддържа** — родните двоични файлове `better-sqlite3` са несъвместими) -- **Език**: TypeScript 5.9 — **100% TypeScript** в `src/` и `open-sse/` (нула `any` в основните модули от v2.0) -- **Framework**: Next.js 16 + React 19 + Tailwind CSS 4 -- **База данни**: LowDB (JSON) + SQLite (състояние на домейна + регистрационни файлове на прокси + MCP одит + решения за маршрутизиране) -- **Схеми**: Zod (валидиране на I/O инструмент за MCP, API договори) -- **Протоколи**: MCP (stdio/HTTP) + A2A v0.3 (JSON-RPC 2.0 + SSE) -- **Поточно предаване**: Изпратени от сървъра събития (SSE) -- **Auth**: OAuth 2.0 (PKCE) + JWT + API ключове + MCP оторизация с обхват -- **Тестване**: Node.js тестов инструмент + Vitest (900+ теста, включително модул, интеграция, E2E) -- **CI/CD**: Действия на GitHub (автоматично публикуване на npm + Docker Hub при пускане) -- **Уебсайт**: [omniroute.online](https://omniroute.online) -- **Пакет**: [npmjs.com/package/omniroute](https://www.npmjs.com/package/omniroute) -- **Docker**: [hub.docker.com/r/diegosouzapw/omniroute](https://hub.docker.com/r/diegosouzapw/omniroute) -- **Устойчивост**: прекъсвач, експоненциално отдръпване, анти-гръмотевично стадо, TLS подправяне, автоматично комбинирано самолечение - -</details> - ---- - -## 📖 Документация - -| Документ | Описание | -| ---------------------------------------------- | -------------------------------------------------------------- | -| [User Guide](docs/USER_GUIDE.md) | Доставчици, комбинации, CLI интеграция, внедряване | -| [API Reference](docs/API_REFERENCE.md) | Всички крайни точки с примери | -| [MCP Server](open-sse/mcp-server/README.md) | 16 MCP инструмента, IDE конфигурации, Python/TS/Go клиенти | -| [A2A Server](src/lib/a2a/README.md) | JSON-RPC 2.0 протокол, умения, стрийминг, управление на задачи | -| [Auto-Combo Engine](docs/auto-combo.md) | 6-факторно оценяване, пакети с режими, самолечение | -| [Troubleshooting](docs/TROUBLESHOOTING.md) | Често срещани проблеми и решения | -| [Architecture](docs/ARCHITECTURE.md) | Системна архитектура и вътрешност | -| [Contributing](CONTRIBUTING.md) | Настройка и насоки за разработка | -| [OpenAPI Spec](docs/openapi.yaml) | Спецификация на OpenAPI 3.0 | -| [Security Policy](SECURITY.md) | Отчитане на уязвимости и практики за сигурност | -| [VM Deployment](docs/VM_DEPLOYMENT_GUIDE.md) | Пълно ръководство: Настройка на VM + nginx + Cloudflare | -| [Features Gallery](docs/FEATURES.md) | Визуална обиколка на таблото с екранни снимки | -| [Release Checklist](docs/RELEASE_CHECKLIST.md) | Стъпки за валидиране преди пускане | - ---- - -## 🗺️ Пътна карта - -OmniRoute има **планирани 210+ функции** в множество фази на разработка. Ето основните области: - -| Категория | Планирани функции | Акценти | -| ----------------------------------- | ----------------- | ----------------------------------------------------------------------------------------------------------------------------- | -| 🧠 **Маршрутизиране и разузнаване** | 25+ | Маршрутизиране с най-ниска латентност, маршрутизиране на базата на маркери, предварителен полет на квота, избор на P2C акаунт | -| 🔒 **Сигурност и съответствие** | 20+ | SSRF укрепване, прикриване на идентификационни данни, ограничение на скоростта за крайна точка, обхват на ключ за управление | -| 📊 **Наблюдаемост** | 15+ | OpenTelemetry интеграция, мониторинг на квоти в реално време, проследяване на разходите за модел | -| 🔄 **Интеграции на доставчици** | 20+ | Регистър на динамичен модел, изчакване на доставчика, Codex за множество акаунти, анализ на квота на Copilot | -| ⚡ **Изпълнение** | 15+ | Слой с двоен кеш, кеш за подкани, кеш за отговор, поддържане на активността при поточно предаване, партиден API | -| 🌐 **Екосистема** | 10+ | WebSocket API, горещо презареждане на конфигурация, разпределено хранилище за конфигурация, търговски режим | - -### 🔜 Очаквайте скоро - -- 🔗 **OpenCode Integration** — Поддръжка на родния доставчик за IDE за кодиране OpenCode AI -- 🔗 **TRAE Integration** — Пълна поддръжка за рамката за разработка на TRAE AI -- 📦 **Batch API** — Асинхронна групова обработка за групови заявки -- 🎯 **Маршрутизиране на базата на етикети** — Маршрутизирайте заявки въз основа на персонализирани тагове и метаданни -- 💰 **Стратегия с най-ниска цена** — Автоматично изберете най-евтиния наличен доставчик - -> 📝 Пълните спецификации на функциите са налични в [**OMNI_TOKEN_342**](docs/new-features/) (217 подробни спецификации) - ---- - -## 👥 Сътрудници - -[![Contributors](https://contrib.rocks/image?repo=diegosouzapw/OmniRoute&max=100&columns=20&anon=1)](https://github.com/diegosouzapw/OmniRoute/graphs/contributors) - -### Как да допринесете - -1. Fork the repository -2. Създайте свой клон на функции (`git checkout -b feature/amazing-feature`) -3. Потвърдете вашите промени (`git commit -m 'Add amazing feature'`) -4. Натиснете до клона (`git push origin feature/amazing-feature`) -5. Отворете заявка за изтегляне - -Вижте [CONTRIBUTING.md](CONTRIBUTING.md) за подробни насоки. - -### Пускане на нова версия - -```bash -# Create a release — npm publish happens automatically -gh release create v2.0.0 --title "v2.0.0" --generate-notes -``` - ---- - -## 📊 Звездна история - -## Звездогледачи във времето - -## [![Stargazers over time](https://starchart.cc/diegosouzapw/OmniRoute.svg?variant=adaptive)](https://starchart.cc/diegosouzapw/OmniRoute) - -## 🙏 Благодарности - -Специални благодарности на **[9router](https://github.com/decolua/9router)** от **[decolua](https://github.com/decolua)** — оригиналният проект, който вдъхнови това разклонение. OmniRoute се основава на тази невероятна основа с допълнителни функции, мултимодални API и пълно пренаписване на TypeScript. - -Специални благодарности на **[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)** — оригиналната реализация на Go, която вдъхнови този JavaScript порт. - ---- - -## 📄 Лиценз - -Лиценз на MIT - вижте [LICENSE](LICENSE) за подробности. - ---- - -<div align="center"> - <sub>Създаден с ❤️ за разработчици, които кодират 24/7</sub> - <br/> - <sub><a href="https://omniroute.online">omniroute.online</a></sub> -</div> -<!-- Дискусиите в GitHub са активирани за въпроси и отговори на общността --> +👉 **[Read the Documentation here](docs/i18n/bg/README.md)** diff --git a/README.cs.md b/README.cs.md index 1c9c2aebe3..2ea24f0434 100644 --- a/README.cs.md +++ b/README.cs.md @@ -1,2084 +1,5 @@ -# 🚀 OmniRoute — bezplatná brána umělé inteligence +# 🌐 OmniRoute (cs) -### Nikdy nepřestávejte kódovat. Chytré směrování na **BEZPLATNÉ a levné modely s umělou inteligencí** s automatickým zálohováním. +The documentation has been formalized and moved to our centralized i18n structure. -_Váš univerzální API proxy – jeden koncový bod, 67+ poskytovatelů, nulové prostoje. Nyní s orchestrací agentů **MCP & A2A**._ - -**Dokončení chatu • Vložení • Generování obrázků • Video • Hudba • Zvuk • Změna pořadí • **Vyhledávání na webu** • Server MCP • Protokol A2A • 100% TypeScript** - ---- - -<div align="center"> - -[![npm version](https://img.shields.io/npm/v/omniroute?color=cb3837&logo=npm)](https://www.npmjs.com/package/omniroute) -[![npm downloads](https://img.shields.io/npm/dm/omniroute?color=cb3837&logo=npm&label=npm%20downloads)](https://www.npmjs.com/package/omniroute) -[![Docker Hub](https://img.shields.io/docker/v/diegosouzapw/omniroute?label=Docker%20Hub&logo=docker&color=2496ED)](https://hub.docker.com/r/diegosouzapw/omniroute) -[![Docker Pulls](https://img.shields.io/docker/pulls/diegosouzapw/omniroute?logo=docker&color=2496ED&label=docker%20pulls)](https://hub.docker.com/r/diegosouzapw/omniroute) -[![License](https://img.shields.io/github/license/diegosouzapw/OmniRoute)](https://github.com/diegosouzapw/OmniRoute/blob/main/LICENSE) -[![Website](https://img.shields.io/badge/Website-omniroute.online-blue?logo=google-chrome&logoColor=white)](https://omniroute.online) -[![WhatsApp](https://img.shields.io/badge/WhatsApp-Community-25D366?logo=whatsapp&logoColor=white)](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) - -[🌐 Website](https://omniroute.online) • [🚀 Quick Start](#-quick-start) • [💡 Features](#-key-features) • [📖 Docs](#-documentation) • [💰 Pricing](#-pricing-at-a-glance) • [💬 WhatsApp](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) - -</div> - -🌐 **Dostupné v:** 🇺🇸 [English](README.md) | 🇧🇷 [Português (Brasil)](docs/i18n/pt-BR/README.md) | 🇪🇸 [Español](docs/i18n/es/README.md) | 🇫🇷 [Français](docs/i18n/fr/README.md) | 🇮🇹 [Italiano](docs/i18n/it/README.md) | 🇷🇺 [Русский](docs/i18n/ru/README.md) | 🇨🇳 [中文 (简体)](docs/i18n/zh-CN/README.md) | 🇩🇪 [Deutsch](docs/i18n/de/README.md) | 🇮🇳 [हिन्दी](docs/i18n/in/README.md) | 🇹🇭 [ไทย](docs/i18n/th/README.md) | 🇺🇦 [Українська](docs/i18n/uk-UA/README.md) | 🇸🇦 [العربية](docs/i18n/ar/README.md) | 🇯🇵 [日本語](docs/i18n/ja/README.md) | 🇻🇳 [Tiếng Việt](docs/i18n/vi/README.md) | 🇧🇬 [Български](docs/i18n/bg/README.md) | 🇩🇰 [Dansk](docs/i18n/da/README.md) | 🇫🇮 [Suomi](docs/i18n/fi/README.md) | 🇮🇱 [עברית](docs/i18n/he/README.md) | 🇭🇺 [Magyar](docs/i18n/hu/README.md) | 🇮🇩 [Bahasa Indonesia](docs/i18n/id/README.md) | 🇰🇷 [한국어](docs/i18n/ko/README.md) | 🇲🇾 [Bahasa Melayu](docs/i18n/ms/README.md) | 🇳🇱 [Nederlands](docs/i18n/nl/README.md) | 🇳🇴 [Norsk](docs/i18n/no/README.md) | 🇵🇹 [Português (Portugal)](docs/i18n/pt/README.md) | 🇷🇴 [Română](docs/i18n/ro/README.md) | 🇵🇱 [Polski](docs/i18n/pl/README.md) | 🇸🇰 [Slovenčina](docs/i18n/sk/README.md) | 🇸🇪 [Svenska](docs/i18n/sv/README.md) | 🇵🇭 [Filipino](docs/i18n/phi/README.md) | 🇨🇿 [Čeština](docs/i18n/cs/README.md) - ---- - -## 🆕 Co je nového ve verzi 3.0.0 - -> **Upgrade z verze 2.9.5?** — Všechny změny najdete v [full CHANGELOG](CHANGELOG.md#300--2026-03-22-release-candidate--not-yet-merged-to-main). - -| Oblast | Změnit | -| --------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| 🔒 **Zabezpečení CodeQL** | Opraveno 10+ upozornění CodeQL: polynomial-redos, nejistá náhodnost, náprava shell-injection | -| ✅ **Ověření trasy** | Všech 176 tras API je nyní ověřeno pomocí schémat Zod + `validateBody()` – průkazy CI `check:route-validation:t06` | -| 🐛 **omniModel Tag Leak** | Interní značky `<omniModel>` již neunikají klientům v odpovědích streamování SSE (#585) | -| 🔑 **Registered Keys API** | Klíče API pro automatické poskytování prostřednictvím `POST /api/v1/registered-keys` s vynucováním kvót pro jednotlivé poskytovatele/účty, idempotence, úložiště SHA-256 a volitelné hlášení problémů GitHub | -| 👁️ **Scoped API Key Reveal** 🆕 | Opt-in recovery of API keys via `ALLOW_API_KEY_REVEAL` | -| 🎨 **Ikony poskytovatelů** | Více než 130 log poskytovatelů prostřednictvím `@lobehub/icons` (SVG) s PNG → obecný záložní řetězec | -| 🔄 **Automatická synchronizace modelu** | 24h plánovač a ruční přepínání uživatelského rozhraní pro synchronizaci seznamů modelů pro vestavěné a vlastní poskytovatele kompatibilní s OpenAI | -| 🌐 **OpenCode Zen/Go** | Dva noví poskytovatelé od @kang-heewon prostřednictvím PR #530: úroveň zdarma + úroveň předplatného přes `OpencodeExecutor` | -| 🐛 **Gemini CLI OAuth** | Akční chyba, když v Dockeru chybí `GEMINI_OAUTH_CLIENT_SECRET` (byla záhadná chyba Google) | -| 🐛 **Konfigurace OpenCode** | `saveOpenCodeConfig()` nyní správně zapisuje TOML do `XDG_CONFIG_HOME` | -| 🐛 **Přepsání připnutého modelu** | `body.model` správně nastaveno na `pinnedModel` při ochraně kontextové mezipaměti | -| 🐛 **Codex/Claude loop** | `tool_result` bloky nyní převedeny na text pro zastavení nekonečných smyček | -| 🐛 **Přesměrování přihlášení** | Přihlášení již nezamrzá po přeskočení nastavení hesla | -| 🐛 **Cesty systému Windows** | Cesty MSYS2/Git-Bash (`/c/...`) automaticky normalizovány na `C:\...` | - ---- - -## 🖼️ Hlavní panel - -<div align="center"> - <img src="./docs/screenshots/MainOmniRoute.png" alt="OmniRoute Dashboard" width="800"/> -</div> - ---- - -## 📸 Náhled řídicího panelu - -<details> -<summary><b>Kliknutím zobrazíte snímky obrazovky řídicího panelu</b></summary> - -| Strana | Snímek obrazovky | -| --------------------- | ------------------------------------------------- | -| **Poskytovatelé** | ![Providers](docs/screenshots/01-providers.png) | -| **Komba** | ![Combos](docs/screenshots/02-combos.png) | -| **Analytika** | ![Analytics](docs/screenshots/03-analytics.png) | -| **Zdraví** | ![Health](docs/screenshots/04-health.png) | -| **Překladatel** | ![Translator](docs/screenshots/05-translator.png) | -| **Nastavení** | ![Settings](docs/screenshots/06-settings.png) | -| **Nástroje CLI** | ![CLI Tools](docs/screenshots/07-cli-tools.png) | -| **Protokoly použití** | ![Usage](docs/screenshots/08-usage.png) | -| **Koncové body** | ![Endpoints](docs/screenshots/09-endpoint.png) | - -</details> - ---- - -### 🤖 Bezplatný poskytovatel AI pro vaše oblíbené kódovací agenty - -_Připojte jakýkoli nástroj IDE nebo CLI s umělou inteligencí prostřednictvím OmniRoute – bezplatné brány API pro neomezené kódování._ - - <table> - <tr> - <td align="center" width="110"> - <a href="https://github.com/openclaw/openclaw"> - <img src="./public/providers/openclaw.png" alt="OpenClaw" width="48"/><br/> - <b>OpenClaw</b> - </a><br/> - <sub>⭐ 205K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/HKUDS/nanobot"> - <img src="./public/providers/nanobot.png" alt="NanoBot" width="48"/><br/> - <b>NanoBot</b> - </a><br/> - <sub>⭐ 20.9K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/sipeed/picoclaw"> - <img src="./public/providers/picoclaw.jpg" alt="PicoClaw" width="48"/><br/> - <b>PicoClaw</b> - </a><br/> - <sub>⭐ 14.6K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/zeroclaw-labs/zeroclaw"> - <img src="./public/providers/zeroclaw.png" alt="ZeroClaw" width="48"/><br/> - <b>ZeroClaw</b> - </a><br/> - <sub>⭐ 9.9K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/nearai/ironclaw"> - <img src="./public/providers/ironclaw.png" alt="IronClaw" width="48"/><br/> - <b>IronClaw</b> - </a><br/> - <sub>⭐ 2.1K</sub> - </td> - </tr> - <tr> - <td align="center" width="110"> - <a href="https://github.com/anomalyco/opencode"> - <img src="./public/providers/opencode.svg" alt="OpenCode" width="48"/><br/> - <b>OpenCode</b> - </a><br/> - <sub>⭐ 106K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/openai/codex"> - <img src="./public/providers/codex.png" alt="Codex CLI" width="48"/><br/> - <b>Codex CLI</b> - </a><br/> - <sub>⭐ 60.8K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/anthropics/claude-code"> - <img src="./public/providers/claude.png" alt="Claude Code" width="48"/><br/> - <b>Claude Code</b> - </a><br/> - <sub>⭐ 67.3K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/google-gemini/gemini-cli"> - <img src="./public/providers/gemini-cli.png" alt="Gemini CLI" width="48"/><br/> - <b>Gemini CLI</b> - </a><br/> - <sub>⭐ 94.7K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/Kilo-Org/kilocode"> - <img src="./public/providers/kilocode.png" alt="Kilo Code" width="48"/><br/> - <b>Kilo Code</b> - </a><br/> - <sub>⭐ 15.5K</sub> - </td> - </tr> - </table> - -<sub>📡 Všichni agenti se připojují přes <code>http://localhost:20128/v1</code> nebo <code>http://cloud.omniroute_ONline_CSNI_TOK one/v6 modely a kvóta</sub> - ---- - -## 🤔 Proč OmniRoute? - -**Přestaňte plýtvat penězi a narážet na limity:** - -- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Kvóta předplatného vyprší nevyužita každý měsíc -- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Sazbové limity vás zastaví uprostřed kódování -- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> drahá rozhraní API (20–50 USD měsíčně na poskytovatele) -- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Ruční přepínání mezi poskytovateli - -**OmniRoute to řeší:** - -- ✅ **Maximalizujte odběry** - Sledujte kvótu, před resetováním použijte každý bit -- ✅ **Automatická záloha** - Předplatné → Klíč API → Levné → Zdarma, nulové prostoje -- ✅ **Více účtů** - Round-robin mezi účty na poskytovatele -- ✅ **Universal** - Funguje s Claude Code, Codex, Gemini CLI, Cursor, Cline, OpenClaw, jakýmkoliv nástrojem CLI - ---- - -## 📧 Podpora - -> 💬 **Připojte se k naší komunitě!** [WhatsApp Group](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) — Získejte pomoc, sdílejte tipy a buďte informováni. - -- **Web**: [omniroute.online](https://omniroute.online) -- **GitHub**: [github.com/diegosouzapw/OmniRoute](https://github.com/diegosouzapw/OmniRoute) -- **Problémy**: [github.com/diegosouzapw/OmniRoute/issues](https://github.com/diegosouzapw/OmniRoute/issues) -- **WhatsApp**: [Community Group](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) -- **Přispívání**: Podívejte se na [CONTRIBUTING.md](CONTRIBUTING.md), otevřete PR nebo si vyberte `good first issue` -- **Původní projekt**: [9router by decolua](https://github.com/decolua/9router) - -### 🐛 Nahlásit chybu? - -Při otevírání problému spusťte příkaz system-info a připojte vygenerovaný soubor: - -```bash -npm run system-info -``` - -Tím se vygeneruje `system-info.txt` s vaší verzí Node.js, verzí OmniRoute, podrobnostmi OS, nainstalovanými nástroji CLI (qoder, gemini, claude, codex, antigravity, droid atd.), stavem Docker/PM2 a systémovými balíčky – vše, co potřebujeme k rychlé reprodukci vašeho problému. Připojte soubor přímo k vašemu problému na GitHubu. - ---- - -## 🔄 Jak to funguje - -``` -┌─────────────┐ -│ Your CLI │ (Claude Code, Codex, Gemini CLI, OpenClaw, Cursor, Cline...) -│ Tool │ -└──────┬──────┘ - │ http://localhost:20128/v1 - ↓ -┌─────────────────────────────────────────┐ -│ OmniRoute (Smart Router) │ -│ • Format translation (OpenAI ↔ Claude) │ -│ • Quota tracking + Embeddings + Images │ -│ • Auto token refresh │ -└──────┬──────────────────────────────────┘ - │ - ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex, Gemini CLI - │ ↓ quota exhausted - ├─→ [Tier 2: API KEY] DeepSeek, Groq, xAI, Mistral, NVIDIA NIM, etc. - │ ↓ budget limit - ├─→ [Tier 3: CHEAP] GLM ($0.6/1M), MiniMax ($0.2/1M) - │ ↓ budget limit - └─→ [Tier 4: FREE] Qoder, Qwen, Kiro (unlimited) - -Result: Never stop coding, minimal cost -``` - ---- - -## 🎯 Co řeší OmniRoute — 30 bodů skutečné bolesti a případy použití - -> **Každý vývojář používající nástroje AI čelí těmto problémům denně.** OmniRoute byl vytvořen tak, aby je vyřešil všechny – od překročení nákladů po regionální bloky, od přerušených toků OAuth po operace protokolů a podniková pozorovatelnost. - -<details> -<summary><b>💸 1. „Platím za drahé předplatné, ale stále mě vyrušují limity“</b></summary> - -Vývojáři platí 20–200 $ měsíčně za Claude Pro, Codex Pro nebo GitHub Copilot. I při placení má kvóta strop – 5 hodin používání, týdenní limity nebo limity sazby za minutu. Uprostřed relace kódování poskytovatel přestane reagovat a vývojář ztrácí tok a produktivitu. - -**Jak to řeší OmniRoute:** - -- **Chytrý 4-úrovňový záložní zdroj** – Pokud dojde k vyčerpání kvóty předplatného, automaticky se přesměruje na klíč API → Levné → Zdarma s nulovým ručním zásahem -- **Sledování kvóty v reálném čase** – Zobrazuje spotřebu tokenů v reálném čase s resetovaným odpočítáváním (5 hodin, denně, týdně) - – **Podpora více účtů** – Více účtů na poskytovatele s automatickým opakováním – když jeden dojde, přepne se na další -- **Vlastní komba** — Přizpůsobitelné záložní řetězce se 6 strategiemi vyvažování (nejprve naplnit, opakovaně používat, P2C, náhodné, nejméně používané, nákladově optimalizované) -- **Codex Business Quotas** — Sledování kvót Business/Tým pracovního prostoru přímo na řídicím panelu - -</details> - -<details> -<summary><b>🔌 2. "Potřebuji používat více poskytovatelů, ale každý má jiné API"</b></summary> - -OpenAI používá jeden formát, Claude (Anthropic) jiný a Gemini ještě jiný. Pokud chce vývojář testovat modely od různých poskytovatelů nebo mezi nimi couvnout, musí překonfigurovat sady SDK, změnit koncové body, vypořádat se s nekompatibilními formáty. Vlastní poskytovatelé (FriendLI, NIM) mají nestandardní koncové body modelu. - -**Jak to řeší OmniRoute:** - -- **Unified Endpoint** – Jediný `http://localhost:20128/v1` slouží jako proxy pro všech 67+ poskytovatelů -- **Formátový překlad** — Automatický a transparentní: OpenAI ↔ Claude ↔ Gemini ↔ Responses API - – **Reakce Sanitization** – Odstraňuje nestandardní pole (`x_groq`, `usage_breakdown`, `service_tier`), která porušují OpenAI SDK v1.83+ -- **Normalizace rolí** – Převádí `developer` → `system` pro poskytovatele mimo OpenAI; `system` → `user` pro GLM/ERNIE -- **Think Tag Extraction** – Extrahuje `<think>` bloky z modelů jako DeepSeek R1 do standardizovaných `reasoning_content` -- **Strukturovaný výstup pro Gemini** — `json_schema` → `responseMimeType`/`responseSchema` automatický převod - – **`stream` výchozí nastavení na `false`** – Vyhovuje specifikaci OpenAI a zabraňuje neočekávanému SSE v sadách Python/Rust/Go SDK - -</details> - -<details> -<summary><b>🌐 3. „Můj poskytovatel umělé inteligence blokuje můj region/zemi“</b></summary> - -Poskytovatelé jako OpenAI/Codex blokují přístup z určitých geografických oblastí. Během připojení OAuth a API se uživatelům zobrazují chyby jako `unsupported_country_region_territory`. To je frustrující zejména pro vývojáře z rozvojových zemí. - -**Jak to řeší OmniRoute:** - -– **3úrovňová konfigurace proxy** – konfigurovatelný proxy na 3 úrovních: globální (veškerý provoz), podle poskytovatele (pouze jeden poskytovatel) a podle připojení/klíče - -- **Barevně kódované odznaky proxy** — Vizuální indikátory: 🢢 globální proxy, 🟡 proxy poskytovatele, 🔵 proxy připojení, vždy zobrazující IP -- **Výměna tokenů OAuth přes proxy** – tok OAuth prochází také přes proxy, čímž se řeší `unsupported_country_region_territory` -- **Testy připojení přes proxy** — Testy připojení používají nakonfigurovaný proxy (už žádné přímé obcházení) -- **Podpora SOCKS5** — Plná podpora proxy SOCKS5 pro odchozí směrování -- **TLS Fingerprint Spoofing** – TLS otisk prstu podobný prohlížeči přes `wreq-js` k obejití detekce botů -- **🔏 CLI Fingerprint Matching** – Změní pořadí záhlaví a polí těla tak, aby odpovídaly nativním binárním podpisům CLI, čímž se drasticky sníží riziko označení účtu. IP proxy serveru je zachována – získáte současně maskování IP maskování ** a** utajení - -</details> - -<details> -<summary><b>🆓 4. "Chci používat AI pro kódování, ale nemám peníze"</b></summary> - -Ne každý může platit 20–200 $ měsíčně za předplatné AI. Studenti, vývojáři z rozvíjejících se zemí, fandové a nezávislí pracovníci potřebují přístup ke kvalitním modelům za nulové náklady. - -**Jak to řeší OmniRoute:** - -- **Vestavění poskytovatelé bezplatných úrovní** — Nativní podpora pro 100% bezplatné poskytovatele: Qoder (5 neomezených modelů přes OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 neomezené modely: qwen3-qwender-lash, qwen3-qwender-lash qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID zdarma), Gemini CLI (180 000 tokenů/měsíc zdarma) -- **Ollama Cloud** – modely Ollama hostované v cloudu na `api.ollama.com` s bezplatnou úrovní „Light use“; použijte předponu `ollamacloud/<model>` -- **Pouze bezplatná komba** — Řetězec `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = 0 $/měsíc s nulovými prostoji -- **Volný přístup NVIDIA NIM** — ~40 RPM pro vývojáře - navždy bezplatný přístup k více než 70 modelům na build.nvidia.com (přechod z kreditů na limity čisté sazby) -- **Cost Optimized Strategy** – Strategie směrování, která automaticky vybírá nejlevnějšího dostupného poskytovatele - -</details> - -<details> -<summary><b>🔒 5. „Potřebuji chránit svou bránu AI před neoprávněným přístupem“</b></summary> - -Při vystavení brány AI do sítě (LAN, VPS, Docker) může kdokoli s adresou spotřebovat tokeny/kvótu vývojáře. Bez ochrany jsou rozhraní API zranitelná vůči zneužití, rychlému vložení a zneužití. - -**Jak to řeší OmniRoute:** - -– **Správa klíčů API** – Generování, rotace a rozsah podle poskytovatele s vyhrazenou stránkou `/dashboard/api-manager` - -- **Oprávnění na úrovni modelu** – Omezte klíče API na konkrétní modely (`openai/*`, vzory zástupných znaků) pomocí přepínače Povolit vše/Omezit - – **API Endpoint Protection** – Vyžadovat klíč pro `/v1/models` a blokovat konkrétní poskytovatele v seznamu -- **Auth Guard + ochrana CSRF** – Všechny trasy řídicího panelu chráněny middlewarem `withAuth` + tokeny CSRF -- **Rate Limiter** — omezení rychlosti na IP pomocí konfigurovatelných oken -- **IP Filtering** — Seznam povolených/blokovaných pro řízení přístupu -- **Prompt Injection Guard** – Dezinfekce proti škodlivým vzorům výzev -- **Šifrování AES-256-GCM** — Přihlašovací údaje jsou v klidu zašifrovány - -</details> - -<details> -<summary><b>🛑 6. „Můj poskytovatel selhal a ztratil jsem tok kódování“</b></summary> - -Poskytovatelé umělé inteligence se mohou stát nestabilními, vracet chyby 5xx nebo narazit na dočasné limity sazeb. Pokud vývojář závisí na jediném poskytovateli, je přerušen. Bez jističů mohou opakované pokusy způsobit selhání aplikace. - -**Jak to řeší OmniRoute:** - -- **Jistič pro každý model** — Automatické otevírání/zavírání s konfigurovatelnými prahy a ochlazením (zavřeno/otevřeno/polootevřeno), s rozsahem pro každý model, aby se zabránilo kaskádovým blokům -- **Exponential Backoff** — Progresivní zpoždění opakování -- **Anti-Thundering Herd** — Mutex + semaforová ochrana proti souběžným opakovaným bouřím -- **Combo Fallback Chains** — Pokud primární poskytovatel selže, automaticky projde řetězcem bez zásahu -- **Combo Circuit Breaker** – Automaticky deaktivuje selhávající poskytovatele v rámci kombinovaného řetězce - – **Health Dashboard** – Monitorování provozuschopnosti, stavy jističů, uzamčení, statistiky mezipaměti, latence p50/p95/p99 - -</details> - -<details> -<summary><b>🔧 7. „Konfigurace každého nástroje umělé inteligence je únavná a opakující se“</b></summary> - -Vývojáři používají Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code... Každý nástroj potřebuje jinou konfiguraci (API endpoint, klíč, model). Překonfigurování při změně poskytovatele nebo modelu je ztráta času. - -**Jak to řeší OmniRoute:** - -- **CLI Tools Dashboard** – Vyhrazená stránka s nastavením jedním kliknutím pro Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline - – **GitHub Copilot Config Generator** – Generuje `chatLanguageModels.json` pro kód VS s hromadným výběrem modelu -- **Průvodce přihlášením** – Průvodce nastavením ve 4 krocích pro začínající uživatele - – **Jeden koncový bod, všechny modely** – Nakonfigurujte `http://localhost:20128/v1` jednou, získáte přístup k více než 67 poskytovatelům - -</details> - -<details> -<summary><b>🔑 8. „Správa tokenů OAuth od více poskytovatelů je peklo“</b></summary> - -Claude Code, Codex, Gemini CLI, Copilot – všechny používají OAuth 2.0 s končícími tokeny. Vývojáři se musí neustále znovu autentizovat, řešit problémy `client_secret is missing`, `redirect_uri_mismatch` a selhání na vzdálených serverech. Zvláště problematické je OAuth na LAN/VPS. - -**Jak to řeší OmniRoute:** - -- **Automatické obnovení tokenu** – Tokeny OAuth se před vypršením platnosti obnovují na pozadí -- **Vestavěný OAuth 2.0 (PKCE)** — Automatický tok pro Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder - – **Multi-Account OAuth** – Více účtů na poskytovatele prostřednictvím extrakce tokenů JWT/ID -- **OAuth LAN/Remote Fix** — Detekce privátní IP adresy pro `redirect_uri` + ruční režim URL pro vzdálené servery -- **OAuth Behind Nginx** - Používá `window.location.origin` pro reverzní kompatibilitu proxy - – **Průvodce vzdáleným OAuth** – Podrobný průvodce pro přihlašovací údaje Google Cloud na VPS/Docker - -</details> - -<details> -<summary><b>📊 9. "Nevím, kolik utrácím nebo kde"</b></summary> - -Vývojáři využívají více placených poskytovatelů, ale nemají jednotný pohled na výdaje. Každý poskytovatel má svůj vlastní panel fakturace, ale neexistuje žádné konsolidované zobrazení. Neočekávané náklady se mohou nahromadit. - -**Jak to řeší OmniRoute:** - -- **Cost Analytics Dashboard** – Sledování nákladů na token a správa rozpočtu na poskytovatele -- **Rozpočtové limity na úroveň** – Strop útraty na úroveň, který spouští automatickou rezervu -- **Konfigurace cen za model** – Konfigurovatelné ceny za model -- **Statistika využití na klíč API** — Počet požadavků a naposledy použité časové razítko na klíč - – **Panel Analytics** – Statistické karty, graf využití modelu, tabulka poskytovatelů s mírou úspěšnosti a latencí - -</details> - -<details> -<summary><b>🐛 10. „Nemohu diagnostikovat chyby a problémy ve voláních AI“</b></summary> - -Když se volání nezdaří, vývojář neví, zda to byl limit sazby, vypršela platnost tokenu, nesprávný formát nebo chyba poskytovatele. Fragmentované protokoly napříč různými terminály. Bez pozorovatelnosti je ladění metodou pokus-omyl. - -**Jak to řeší OmniRoute:** - -- **Sjednocený panel protokolů** – 4 karty: Protokoly požadavků, Protokoly proxy, Protokoly auditu, Konzole -- **Console Log Viewer** — Prohlížeč ve stylu terminálu v reálném čase s barevně odlišenými úrovněmi, automatickým posouváním, vyhledáváním, filtrem -- **Protokoly SQLite Proxy** — Trvalé protokoly, které vydrží restartování serveru -- **Translator Playground** — 4 režimy ladění: Playground (překlad formátu), Tester chatu (zpáteční), Test Bench (dávka), Live Monitor (v reálném čase) - – **Požadavek na telemetrii** – latence p50/p95/p99 + sledování X-Request-Id - – **Protokolování založené na souborech s rotací** – Konzolový interceptor zaznamenává vše do protokolu JSON s rotací podle velikosti -- **System Info Report** – `npm run system-info` generuje `system-info.txt` s vaším úplným prostředím (verze uzlu, verze OmniRoute, OS, nástroje CLI, stav Docker/PM2). Připojte jej při hlášení problémů pro okamžité třídění. - -</details> - -<details> -<summary><b>🏗️ 11. „Nasazení a údržba brány je složitá“</b></summary> - -Instalace, konfigurace a údržba AI proxy v různých prostředích (místní, VPS, Docker, cloud) je náročná na práci. Problémy jako pevně zakódované cesty, `EACCES` v adresářích, konflikty portů a sestavení napříč platformami zvyšují tření. - -**Jak to řeší OmniRoute:** - -- **Globální instalace npm** — `npm install -g omniroute && omniroute` — hotovo -- **Docker Multi-Platform** – nativní AMD64 + ARM64 (Apple Silicon, AWS Graviton, Raspberry Pi) -- **Profily Docker Compose** — `base` (žádné nástroje CLI) a `cli` (s Claude Code, Codex, OpenClaw) -- **Electron Desktop App** – nativní aplikace pro Windows/macOS/Linux se systémovou lištou, automatickým spuštěním, offline režimem -- **Split-Port Mode** – API a Dashboard na samostatných portech pro pokročilé scénáře (reverzní proxy, kontejnerová síť) -- **Cloud Sync** — Konfigurace synchronizace mezi zařízeními pomocí Cloudflare Workers -- **DB Backups** — Automatické zálohování, obnova, export a import všech nastavení - -</details> - -<details> -<summary><b>🌍 12. "Rozhraní je pouze v angličtině a můj tým nemluví anglicky"</b></summary> - -Týmy v neanglicky mluvících zemích, zejména v Latinské Americe, Asii a Evropě, se potýkají s rozhraním pouze v angličtině. Jazykové bariéry snižují přijetí a zvyšují chyby konfigurace. - -**Jak to řeší OmniRoute:** - -- **Dashboard i18n — 30 jazyků** — Všech 500+ kláves přeloženo včetně arabštiny, bulharštiny, dánštiny, němčiny, španělštiny, finštiny, francouzštiny, hebrejštiny, hindštiny, maďarštiny, indonéštiny, italštiny, japonštiny, korejštiny, malajštiny, holandštiny, norštiny, polštiny, portugalštiny (PT/BR), rumunštiny, ruštiny, slovenštiny, švédštiny, thajštiny, filipínštiny, vietnamštiny, angličtiny -- **Podpora RTL** — Podpora zprava doleva pro arabštinu a hebrejštinu -- **Vícejazyčné README** — 30 kompletních překladů dokumentace -- **Language Selector** — Ikona zeměkoule v záhlaví pro přepínání v reálném čase - -</details> - -<details> -<summary><b>🔄 13. „Potřebuji víc než chat – potřebuji vložení, obrázky, zvuk“</b></summary> - -AI není jen dokončení chatu. Vývojáři potřebují generovat obrázky, přepisovat zvuk, vytvářet vložení pro RAG, měnit hodnocení dokumentů a moderovat obsah. Každé API má jiný koncový bod a formát. - -**Jak to řeší OmniRoute:** - -- **Vložení** — `/v1/embeddings` se 6 poskytovateli a více než 9 modely -- **Generování obrázků** — `/v1/images/generations` s 10 poskytovateli a 20+ modely (OpenAI, xAI, Together, Fireworks, Nebius, Hyperbolic, NanoBanana, Antigravity, SD WebUI, ComfyUI) -- **Text-to-Video** — `/v1/videos/generations` — ComfyUI (AnimateDiff, SVD) a SD WebUI -- **Text-to-Music** — `/v1/music/generations` — ComfyUI (Stable Audio Open, MusicGen) -- **Audio Transscription** — `/v1/audio/transcriptions` — Whisper + Nvidia NIM, HuggingFace, Qwen3 -- **Text-to-Speech** — `/v1/audio/speech` — ElevenLabs, Nvidia NIM, HuggingFace, Coqui, Tortoise, Qwen3, **Inworld**, **Cartesia**, **PlayHT**, + stávající poskytovatelé -- **Moderování** — `/v1/moderations` — Kontroly bezpečnosti obsahu -- **Změna pořadí** — `/v1/rerank` — Změna relevance dokumentu -- **Responses API** – plná podpora `/v1/responses` pro Codex - -</details> - -<details> -<summary><b>🧪 14. „Nemám způsob, jak testovat a porovnávat kvalitu různých modelů“</b></summary> - -Vývojáři chtějí vědět, který model je pro jejich případ použití nejlepší – kód, překlad, uvažování – ale ruční porovnávání je pomalé. Neexistují žádné integrované nástroje eval. - -**Jak to řeší OmniRoute:** - -- **Hodnocení LLM** – Testování zlaté sady s 10 předem nahranými případy zahrnujícími pozdravy, matematiku, geografii, generování kódu, soulad s JSON, překlad, markdown, bezpečnostní odmítnutí -- **4 strategie shody** — `exact`, `contains`, `regex`, `custom` (funkce JS) -- **Testovací stolice pro překladatelské hřiště** – Dávkové testování s více vstupy a očekávanými výstupy, porovnání mezi poskytovateli -- **Chat Tester** – Kompletní zpáteční cesta s vykreslováním vizuální odezvy -- **Live Monitor** — Tok všech požadavků procházejících přes proxy v reálném čase - -</details> - -<details> -<summary><b>📈 15. „Potřebuji škálovat bez ztráty výkonu“</b></summary> - -Jak roste objem požadavků, bez ukládání stejných otázek do mezipaměti vznikají duplicitní náklady. Bez idempotence duplikát požaduje zpracování odpadu. Musí být dodrženy limity sazeb na poskytovatele. - -**Jak to řeší OmniRoute:** - -- **Sémantická mezipaměť** – Dvouvrstvá mezipaměť (podpis + sémantická) snižuje náklady a latenci -- **Idempotency požadavku** — 5s deduplikační okno pro identické požadavky - – **Detekce limitu rychlosti** – RPM na poskytovatele, minimální mezera a maximální souběžné sledování -- **Upravitelné limity rychlosti** – Konfigurovatelné výchozí hodnoty v Nastavení → Odolnost s perzistencí -- **API Key Validation Cache** — 3vrstvá mezipaměť pro produkční výkon - – **Health Dashboard s telemetrií** – latence p50/p95/p99, statistiky mezipaměti, doba provozu - -</details> - -<details> -<summary><b>🤖 16. „Chci globálně ovládat chování modelu“</b></summary> - -Vývojáři, kteří chtějí všechny odpovědi v konkrétním jazyce, s konkrétním tónem nebo chtějí omezit tokeny uvažování. Konfigurace tohoto v každém nástroji/požadavku je nepraktická. - -**Jak to řeší OmniRoute:** - -- **System Prompt Injection** – Globální výzva aplikovaná na všechny požadavky -- **Thinking Budget Validation** — Řízení alokace tokenů na základě požadavku (průchozí, automatické, vlastní, adaptivní) -- **6 směrovacích strategií** — Globální strategie, které určují způsob distribuce požadavků - – **Wildcard Router** – `provider/*` vzory dynamicky směrují k libovolnému poskytovateli -- **Povolit/zakázat přepínání komba** — Přepínejte komba přímo z řídicího panelu -- **Přepnutí poskytovatele** — Povolí/zakáže všechna připojení pro poskytovatele jedním kliknutím - – **Blokovaní poskytovatelé** – vyloučení konkrétních poskytovatelů ze seznamu `/v1/models` - -</details> - -<details> -<summary><b>🧰 17. "Potřebuji nástroje MCP jako prvotřídní schopnosti produktu"</b></summary> - -Mnoho bran AI odhaluje MCP pouze jako skrytý detail implementace. Týmy potřebují viditelnou a spravovatelnou provozní vrstvu. - -**Jak to řeší OmniRoute:** - -- MCP se objeví v navigačním panelu a kartě protokolu koncového bodu -- Vyhrazená stránka správy MCP s procesem, nástroji, rozsahy a auditem -- Vestavěný rychlý start pro `omniroute --mcp` a registraci klienta - -</details> - -<details> -<summary><b>🧠 18. "Potřebuji orchestraci A2A s cestami synchronizace + streamování"</b></summary> - -Pracovní postupy agentů vyžadují jak přímé odpovědi, tak dlouhotrvající streamované spouštění s řízením životního cyklu. - -**Jak to řeší OmniRoute:** - -– Koncový bod A2A JSON-RPC (`POST /a2a`) s `message/send` a `message/stream` - -- SSE streamování s šířením koncového stavu - – Rozhraní API životního cyklu úloh pro `tasks/get` a `tasks/cancel` - -</details> - -<details> -<summary><b>🛰️ 19. „Potřebuji skutečné zdraví procesu MCP, nikoli odhadovaný stav“</b></summary> - -Operační týmy potřebují vědět, zda je MCP skutečně naživu, nejen zda je API dosažitelné. - -**Jak to řeší OmniRoute:** - -- Soubor srdečního tepu za běhu s PID, časovými razítky, transportem, počtem nástrojů a režimem rozsahu -- Stavové API MCP kombinující srdeční tep + nedávnou aktivitu -- Stavové karty uživatelského rozhraní pro aktuálnost procesu / provozuschopnosti / srdečního tepu - -</details> - -<details> -<summary><b>📋 20. „Potřebuji provádění auditovatelného nástroje MCP“</b></summary> - -Když nástroje mutují konfiguraci nebo spouštějí operace operací, týmy potřebují forenzní sledovatelnost. - -**Jak to řeší OmniRoute:** - -- Protokolování auditu podporované SQLite pro volání nástrojů MCP -- Filtry podle nástroje, úspěchu/neúspěchu, klíče API a stránkování -- Tabulka auditu řídicího panelu + statistiky koncových bodů pro automatizaci - -</details> - -<details> -<summary><b>🔐 21. „Potřebuji omezená oprávnění MCP na integraci“</b></summary> - -Různí klienti by měli mít nejméně privilegovaný přístup ke kategoriím nástrojů. - -**Jak to řeší OmniRoute:** - -- 9 granulárních rozsahů MCP pro řízený přístup k nástrojům -- Vynucení rozsahu a viditelnost v uživatelském rozhraní správy MCP -- Bezpečná výchozí poloha pro provozní nástroje - -</details> - -<details> -<summary><b>⚙️ 22. „Potřebuji provozní kontroly bez přerozdělování“</b></summary> - -Týmy potřebují rychlé změny běhového prostředí během incidentů nebo nákladových událostí. - -**Jak to řeší OmniRoute:** - -- Aktivace kombinace přepínačů přímo z řídicího panelu MCP -- Použijte profily odolnosti z předdefinovaných balíčků zásad -- Resetujte stav jističe ze stejného ovládacího panelu - -</details> - -<details> -<summary><b>🔄 23. „Potřebuji živou viditelnost životního cyklu úkolu A2A a zrušení“</b></summary> - -Bez viditelnosti životního cyklu je obtížné třídit incidenty úkolů. - -**Jak to řeší OmniRoute:** - -- Seznam úkolů / filtrování podle stavu / dovedností se stránkováním -- Podrobnější informace o metadatech úkolů, událostech a artefaktech -- Koncový bod zrušení úlohy a akce uživatelského rozhraní s potvrzením - -</details> - -<details> -<summary><b>🌊 24. „Potřebuji aktivní metriky streamu pro načtení A2A“</b></summary> - -Streamovací pracovní postupy vyžadují provozní přehled o souběžných a živých připojeních. - -**Jak to řeší OmniRoute:** - -- Aktivní čítače toku integrované do stavu A2A -- Časové razítko posledního úkolu a počty za stav -- Karty palubní desky A2A pro monitorování operací v reálném čase - -</details> - -<details> -<summary><b>🪪 25. "Potřebuji standardní zjišťování agentů pro klienty"</b></summary> - -Externí klienti a orchestrátoři potřebují strojově čitelná metadata pro integraci. - -**Jak to řeší OmniRoute:** - -– Karta agenta vystavena na `/.well-known/agent.json` - -- Schopnosti a dovednosti zobrazené v uživatelském rozhraní pro správu -- A2A status API obsahuje metadata zjišťování pro automatizaci - -</details> - -<details> -<summary><b>🧭 26. "Potřebuji zjistitelnost protokolu v uživatelském rozhraní produktu"</b></summary> - -Pokud uživatelé nemohou objevit protokolové povrchy, kvalita přijetí a podpory klesá. - -**Jak to řeší OmniRoute:** - -– Konsolidovaná stránka **Koncové body** s kartami pro koncové body proxy, MCP, A2A a API - -- Přepínání stavu inline služby (Online/Offline) pro MCP a A2A -- Odkazy z přehledu na vyhrazené karty správy - -</details> - -<details> -<summary><b>🧪 27. "Potřebuji komplexní ověření protokolu se skutečnými klienty"</b></summary> - -Falešné testy nestačí k ověření kompatibility protokolu před vydáním. - -**Jak to řeší OmniRoute:** - -- Sada E2E, která spouští aplikaci a používá skutečný přenos klienta MCP SDK -- Klient A2A testuje toky zjišťování, odesílání, streamování, získávání a rušení -- Křížová kontrola tvrzení proti auditu MCP a API úloh A2A - -</details> - -<details> -<summary><b>📡 28. „Potřebuji jednotnou pozorovatelnost napříč všemi rozhraními“</b></summary> - -Rozdělení pozorovatelnosti protokolem vytváří slepá místa a delší MTTR. - -**Jak to řeší OmniRoute:** - -- Sjednocené dashboardy/logy/analýzy v jednom produktu -- Zdraví + audit + telemetrie požadavků napříč vrstvami OpenAI, MCP a A2A -- Provozní API pro stav a automatizaci - -</details> - -<details> -<summary><b>💼 29. "Potřebuji jeden runtime pro proxy + nástroje + orchestraci agenta"</b></summary> - -Provozování mnoha samostatných služeb zvyšuje provozní náklady a způsoby selhání. - -**Jak to řeší OmniRoute:** - -- Proxy, MCP server a A2A server v jednom zásobníku kompatibilní s OpenAI -- Sdílená autentizace, odolnost, úložiště dat a pozorovatelnost -- Konzistentní model politiky na všech interakčních plochách - -</details> - -<details> -<summary><b>🚀 30. „Potřebuji odeslat agentské pracovní postupy bez roztahování kódu lepidla“</b></summary> - -Týmy ztrácejí rychlost při spojování více ad-hoc služeb a skriptů. - -**Jak to řeší OmniRoute:** - -- Jednotná strategie koncových bodů pro klienty a agenty -- Vestavěná uživatelská rozhraní pro správu protokolů a cesty ověřování kouře -- Základy připravené na výrobu (zabezpečení, protokolování, odolnost, zálohování) - -</details> - -### Vzorové příručky (integrované případy použití) - -**Příručka A: Maximalizujte placené předplatné + levné zálohování** - -```txt -Combo: "maximize-claude" - 1. cc/claude-opus-4-6 - 2. glm/glm-4.7 - 3. if/kimi-k2-thinking - -Monthly cost: $20 + small backup spend -Outcome: higher quality, near-zero interruption -``` - -**Příručka B: Sada kódování s nulovými náklady** - -```txt -Combo: "free-forever" - 1. gc/gemini-3-flash - 2. if/kimi-k2-thinking - 3. qw/qwen3-coder-plus - -Monthly cost: $0 -Outcome: stable free coding workflow -``` - -**Příručka C: 24/7 vždy zapnutý záložní řetězec** - -```txt -Combo: "always-on" - 1. cc/claude-opus-4-6 - 2. cx/gpt-5.2-codex - 3. glm/glm-4.7 - 4. minimax/MiniMax-M2.1 - 5. if/kimi-k2-thinking - -Outcome: deep fallback depth for deadline-critical workloads -``` - -**Příručka D: Operace agenta s MCP + A2A** - -```txt -1) Start MCP transport (`omniroute --mcp`) for tool-driven operations -2) Run A2A tasks via `message/send` and `message/stream` -3) Observe via /dashboard/endpoint (MCP and A2A tabs) -4) Toggle services via inline status controls -``` - ---- - -## 🆓 Začněte zdarma — nulové náklady na konfiguraci - -> Nastavení kódování AI během několika minut za **$0/měsíc**. Propojte tyto bezplatné účty a použijte vestavěnou kombinaci **Free Stack**. - -| Krok | Akce | Poskytovatelé odemčeni | -| ---- | ---------------------------------------------------- | -------------------------------------------------------------------- | -| 1 | Connect **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — **neomezeno** | -| 2 | Připojte **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **bez omezení** | -| 3 | Připojte **Qwen** (kód zařízení) | qwen3-coder-plus, qwen3-coder-flash... — **bez omezení** | -| 4 | Připojte **Gemini CLI** (Google OAuth) | gemini-3-flash, gemini-2.5-pro — **180 000/měsíc zdarma** | -| 5 | `/dashboard/combos` → Šablona **Stack zdarma (0 $)** | Round-robin všechny bezplatné poskytovatele automaticky | - -**Nasměrujte libovolné IDE/CLI na:** `http://localhost:20128/v1` · Klíč API: `any-string` · Hotovo. - -> **Volitelné dodatečné pokrytí (také zdarma):** Klíč Groq API (30 RPM zdarma), NVIDIA NIM (40 RPM zdarma, 70+ modelů), Cerebras (1 M token/den), LongCat API klíč (50 M tokenů/den!), Cloudflare Workers AI (10 000 neuronů/den, 50+ modelů). - -## ⚡ Rychlý start - -### 1) Nainstalujte a spusťte - -```bash -npm install -g omniroute -omniroute -``` - -> **Uživatelé pnpm:** Po instalaci spusťte `pnpm approve-builds -g`, abyste povolili nativní skripty sestavení vyžadované `better-sqlite3` a `@swc/core`: -> -> ```bash -> pnpm install -g omniroute -> pnpm approve-builds -g # Select all packages → approve -> omniroute -> ``` - -Dashboard se otevře na `http://localhost:20128` a základní adresa URL rozhraní API je `http://localhost:20128/v1`. - -| Příkaz | Popis | -| ----------------------- | ------------------------------------------------------------------ | -| `omniroute` | Spustit server (`PORT=20128`, API a řídicí panel na stejném portu) | -| `omniroute --port 3000` | Nastavte kanonický/API port na 3000 | -| `omniroute --mcp` | Spustit MCP server (stdio transport) | -| `omniroute --no-open` | Neotevírat automaticky prohlížeč | -| `omniroute --help` | Zobrazit nápovědu | - -Volitelný režim rozděleného portu: - -```bash -PORT=20128 DASHBOARD_PORT=20129 omniroute -# API: http://localhost:20128/v1 -# Dashboard: http://localhost:20129 -``` - -### 2) Připojte poskytovatele a vytvořte si klíč API - -1. Otevřete Dashboard → `Providers` a připojte alespoň jednoho poskytovatele (OAuth nebo klíč API). -2. Otevřete Dashboard → `Endpoints` a vytvořte klíč API. -3. (Volitelné) Otevřete Dashboard → `Combos` a nastavte svůj záložní řetězec. - -### 3) Nasměrujte svůj kódovací nástroj na OmniRoute - -```txt -Base URL: http://localhost:20128/v1 -API Key: [copy from Endpoint page] -Model: if/kimi-k2-thinking (or any provider/model prefix) -``` - -Pracuje s Claude Code, Codex CLI, Gemini CLI, Cursor, Cline, OpenClaw, OpenCode a SDK kompatibilní s OpenAI. - -### 4) Povolte a ověřte protokoly (v2.0) - -**MCP (pro operace řízené nástrojem):** - -```bash -omniroute --mcp -``` - -Poté připojte svého MCP klienta přes `stdio` a otestujte nástroje jako: - -- `omniroute_get_health` -- `omniroute_list_combos` - -**A2A (pro pracovní postupy mezi agenty):** - -```bash -curl http://localhost:20128/.well-known/agent.json -``` - -```bash -curl -X POST http://localhost:20128/a2a \ - -H 'content-type: application/json' \ - -d '{"jsonrpc":"2.0","id":"quickstart","method":"message/send","params":{"skill":"quota-management","messages":[{"role":"user","content":"Give me a short quota summary."}]}}' -``` - -### 5) Ověřte vše od začátku do konce (doporučeno) - -```bash -npm run test:protocols:e2e -``` - -Tato sada ověřuje skutečné klientské toky MCP a A2A proti běžící aplikaci. - -### Alternativa: spustit ze zdroje - -```bash -cp .env.example .env -npm install -PORT=20128 DASHBOARD_PORT=20129 NEXT_PUBLIC_BASE_URL=http://localhost:20129 npm run dev -``` - ---- - -## 🐳 Docker - -OmniRoute je k dispozici jako veřejný obrázek Dockeru na [Docker Hub](https://hub.docker.com/r/diegosouzapw/omniroute). - -**Rychlý běh:** - -```bash -docker run -d \ - --name omniroute \ - --restart unless-stopped \ - -p 20128:20128 \ - -v omniroute-data:/app/data \ - diegosouzapw/omniroute:latest -``` - -**Se souborem prostředí:** - -```bash -# Copy and edit .env first -cp .env.example .env - -docker run -d \ - --name omniroute \ - --restart unless-stopped \ - --env-file .env \ - -p 20128:20128 \ - -v omniroute-data:/app/data \ - diegosouzapw/omniroute:latest -``` - -**Použití Docker Compose:** - -```bash -# Base profile (no CLI tools) -docker compose --profile base up -d - -# CLI profile (Claude Code, Codex, OpenClaw built-in) -docker compose --profile cli up -d -``` - -| Obrázek | Štítek | Velikost | Popis | -| ------------------------ | -------- | -------- | ----------------------- | -| `diegosouzapw/omniroute` | `latest` | ~250 MB | Poslední stabilní verze | -| `diegosouzapw/omniroute` | `1.0.3` | ~250 MB | Aktuální verze | - ---- - -## 🖥️ Desktopová aplikace — offline a vždy zapnutá - -> 🆕 **NOVINKA!** OmniRoute je nyní k dispozici jako **nativní desktopová aplikace** pro Windows, macOS a Linux. - -Spusťte OmniRoute jako samostatnou desktopovou aplikaci – pro místní modely není potřeba žádný terminál, žádný prohlížeč ani internet. Aplikace založená na Electronu zahrnuje: - -- 🖥️ **Nativní okno** — Vyhrazené okno aplikace s integrací na systémové liště -- 🔄 **Auto-Start** – Spusťte OmniRoute při přihlášení do systému -- 🔔 **Nativní oznámení** – Získejte upozornění na vyčerpání kvóty nebo problémy s poskytovatelem -- ⚡ **Instalace jedním kliknutím** — NSIS (Windows), DMG (macOS), AppImage (Linux) -- 🌐 **Režim offline** – Funguje plně offline s přibaleným serverem - -### Rychlý start - -```bash -# Development mode -npm run electron:dev - -# Build for your platform -npm run electron:build # Current platform -npm run electron:build:win # Windows (.exe) -npm run electron:build:mac # macOS (.dmg) — x64 & arm64 -npm run electron:build:linux # Linux (.AppImage) -``` - -### Systémová lišta - -Když je minimalizován, OmniRoute žije v systémové liště s rychlými akcemi: - -- Otevřete palubní desku -- Změňte port serveru -- Ukončete aplikaci - -📖 Úplná dokumentace: [**OMNI_TOKEN_153**](electron/README.md) - ---- - -## 💰 Přehled cen - -| Úroveň | Poskytovatel | Cena | Obnovení kvóty | Nejlepší pro | -| ----------------- | --------------------------- | -------------------------------- | --------------------------- | ------------------------------------------ | -| **💳 PŘEDPLATNÉ** | Claude Code (Pro) | 20 $/měsíc | 5h + týdně | Již přihlášeno | -| | Codex (Plus/Pro) | 20–200 USD/měsíc | 5h + týdně | Uživatelé OpenAI | -| | Gemini CLI | **ZDARMA** | 180 tis./měsíc + 1 tis./den | Každý! | -| | GitHub Copilot | 10–19 USD/měsíc | Měsíčně | Uživatelé GitHubu | -| **🔑 API KEY** | NVIDIA NIM | **ZDARMA** (dev forever) | ~40 RPM | 70+ otevřených modelů | -| | Cerebras | **ZDARMA** (1 milion toku/den) | 60 000 TPM / 30 RPM | Nejrychlejší na světě | -| | Groq | **ZDARMA** (30 RPM) | 14,4K RPD | Ultra rychlá lama/gemma | -| | DeepSeek V3.2 | 0,27 $ / 1,10 $ za 1 milion | Žádné | Nejlepší zdůvodnění cena/kvalita | -| | xAI Grok-4 Fast | **0,20 $/0,50 $ za 1M** 🆕 | Žádné | Nejrychlejší + volání nástroje, ultranízké | -| | xAI Grok-4 (standardní) | 0,20 $/1,50 $ za 1M 🆕 | Žádné | Reasoning vlajková loď od xAI | -| | Mistral | Vyzkoušení zdarma + placené | Omezená sazba | Evropská umělá inteligence | -| | OpenRouter | Platba za použití | Žádné | 100+ modelů agr. | -| **💰 LEVNĚ** | GLM-5 (přes Z.AI) 🆕 | 0,5 $/1 mil. | Denně 10:00 | 128K výstup, nejnovější vlajková loď | -| | GLM-4.7 | 0,6 $/1 mil. | Denně 10:00 | Záloha rozpočtu | -| | MiniMax M2,5 🆕 | Vstup 0,3 $/1 milion | 5hodinové válcování | Úvahy + agentské úkoly | -| | MiniMax M2.1 | 0,2 $/1 mil. | 5hodinové válcování | Nejlevnější varianta | -| | Kimi K2.5 (Moonshot API) 🆕 | Platba za použití | Žádné | Přímý přístup Moonshot API | -| | Kimi K2 | 9 $/měsíc byt | 10 milionů tokenů/měsíc | Předvídatelné náklady | -| **🆓 ZDARMA** | Qoder | **$0** | Neomezené | 5 modelů neomezeně | -| | Qwen | **$0** | Neomezené | 4 modely neomezeně | -| | Kiro | **$0** | Neomezené | Claude Sonnet/Haiku (stavitel AWS) | -| | LongCat Flash-Lite 🆕 | **$0** (50 milionů toku/den 🔥) | 1 RPS | Největší bezplatná kvóta na Zemi | -| | Opylování AI 🆕 | **$0** (není potřeba žádný klíč) | 1 požadavek/15s | GPT-5, Claude, DeepSeek, Llama 4 | -| | Cloudflare Workers AI 🆕 | **$0** (10 000 neuronů/den) | ~150 resp./den | 50+ modelů, globální náskok | -| | Scaleway AI 🆕 | **$0** (celkem 1 milion tokenů) | Omezená sazba | EU/GDPR, Qwen3 235B, Lama 70B | - -> 🆕 **Přidané nové modely (březen 2026):** Rodina Grok-4 Fast za 0,20 $/0,50 $/M (porovnávací rychlost 1143 ms – o 30 % rychlejší než Gemini 2.5 Flash), GLM-5 přes Z.AI s výstupem 128K, aktualizovaná cena MiniMax M2.5 V5, Kimishot K2 API přímo. - -**💡 Combo Stack 0 $ — Kompletní bezplatné nastavení:** - -``` -# 🆓 Ultimate Free Stack 2026 — 11 Providers, $0 Forever -Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED -LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 -Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed -Qwen (qw/) → qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next UNLIMITED -Gemini (gemini/) → Gemini 2.5 Flash — 1,500 req/day free API key -Cloudflare AI (cf/) → Llama 70B, Gemma 3, Mistral — 10K Neurons/day -Scaleway (scw/) → Qwen3 235B, Llama 70B — 1M free tokens (EU) -Groq (groq/) → Llama/Gemma ultra-fast — 14.4K req/day -NVIDIA NIM (nvidia/) → 70+ open models — 40 RPM forever -Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day -``` - -**Nulové náklady. Nikdy nepřestane kódovat.** Nakonfigurujte si to jako jednu kombinaci OmniRoute a všechna nouzová řešení se stanou automaticky – žádné ruční přepínání. - ---- - ---- - -## 🆓 Modely zdarma — to, co skutečně získáte - -> Všechny níže uvedené modely jsou **100% zdarma bez nutnosti použití kreditní karty**. OmniRoute mezi nimi automaticky přesměrovává, když vyčerpá jedna kvóta – zkombinujte je všechny a získáte nerozbitnou kombinaci 0 $. - -### 🔵 CLAUDE MODELS (přes Kiro — AWS Builder ID) - -| Model | Předpona | Limit | Limit sazby | -| ------------------- | -------- | ------------- | ------------------------- | -| `claude-sonnet-4.5` | `kr/` | **Neomezeno** | Žádný hlášený denní limit | -| `claude-haiku-4.5` | `kr/` | **Neomezeno** | Žádný hlášený denní limit | -| `claude-opus-4.6` | `kr/` | **Neomezeno** | Nejnovější Opus přes Kiro | - -### 🢢 MODELY QODER (bezplatný protokol OAuth – žádná kreditní karta) - -| Model | Předpona | Limit | Limit sazby | -| ------------------ | -------- | ------------- | --------------------- | -| `kimi-k2-thinking` | `if/` | **Neomezeno** | Žádný nahlášený strop | -| `qwen3-coder-plus` | `if/` | **Neomezeno** | Žádný nahlášený strop | -| `deepseek-r1` | `if/` | **Neomezeno** | Žádný nahlášený strop | -| `minimax-m2.1` | `if/` | **Neomezeno** | Žádný nahlášený strop | -| `kimi-k2` | `if/` | **Neomezeno** | Žádný nahlášený strop | - -### 🡡 QWEN MODELS (Auth Code Auth) - -| Model | Předpona | Limit | Limit sazby | -| ------------------- | -------- | ------------- | ---------------------- | -| `qwen3-coder-plus` | `qw/` | **Neomezeno** | Žádný nahlášený strop | -| `qwen3-coder-flash` | `qw/` | **Neomezeno** | Žádný nahlášený strop | -| `qwen3-coder-next` | `qw/` | **Neomezeno** | Žádný nahlášený strop | -| `vision-model` | `qw/` | **Neomezeno** | Multimodální (obrázky) | - -### 🟣 GEMINI CLI (Google OAuth) - -| Model | Předpona | Limit | Limit sazby | -| ------------------------ | -------- | ------------------------------- | -------------- | -| `gemini-3-flash-preview` | `gc/` | **180 tis./měsíc** + 1 tis./den | Měsíční reset | -| `gemini-2.5-pro` | `gc/` | 180 tis./měsíc (sdílený bazén) | Vysoká kvalita | - -### ⚫ NVIDIA NIM (bezplatný klíč API — build.nvidia.com) - -| Úroveň | Denní limit | Limit sazby | Poznámky | -| ------------ | --------------- | ----------- | -------------------------------------------------------------- | -| Zdarma (Dev) | Žádný token cap | **~40 RPM** | 70+ modelů; přechod na limity čisté sazby v polovině roku 2025 | - -Oblíbené bezplatné modely: `moonshotai/kimi-k2.5` (Kimi K2.5), `z-ai/glm4.7` (GLM 4.7), `deepseek-ai/deepseek-v3.2` (DeepSeek V3.2), `nvidia/llama-3.3-70b-instruct`\_, \_6_18 - -### ⚪ CEREBRAS (Free API Key — inference.cerebras.ai) - -| Úroveň | Denní limit | Limit sazby | Poznámky | -| ------ | --------------------- | ------------------- | ------------------------------------------------- | -| Zdarma | **1 mil. tokenů/den** | 60 000 TPM / 30 RPM | Světově nejrychlejší odvození LLM; resetuje denně | - -Dostupné zdarma: `llama-3.3-70b`, `llama-3.1-8b`, `deepseek-r1-distill-llama-70b` - -### 🔴 GROQ (Free API Key — console.groq.com) - -| Úroveň | Denní limit | Limit sazby | Poznámky | -| ------ | ------------- | ------------------- | ----------------------------------------------- | -| Zdarma | **14,4K RPD** | 30 ot./min na model | Žádná kreditní karta; 429 na limit, neúčtuje se | - -Dostupné zdarma: `llama-3.3-70b-versatile`, `gemma2-9b-it`, `mixtral-8x7b`, `whisper-large-v3` - -### 🔴 LONGCAT AI (bezplatný klíč API — longcat.chat) 🆕 - -| Model | Předpona | Denní kvóta zdarma | Poznámky | -| ----------------------------- | -------- | ------------------------ | ---------------------------------- | -| `LongCat-Flash-Lite` | `lc/` | **50 milionů žetonů** 💥 | Největší bezplatná kvóta všech dob | -| `LongCat-Flash-Chat` | `lc/` | 500 000 tokenů | Víceotáčkový chat | -| `LongCat-Flash-Thinking` | `lc/` | 500 000 tokenů | Zdůvodnění / CoT | -| `LongCat-Flash-Thinking-2601` | `lc/` | 500 000 tokenů | Verze z ledna 2026 | -| `LongCat-Flash-Omni-2603` | `lc/` | 500 000 tokenů | Multimodální | - -> 100% zdarma ve veřejné beta verzi. Zaregistrujte se na [longcat.chat](https://longcat.chat) pomocí e-mailu nebo telefonu. Resetuje se denně v 00:00 UTC. - -### 🢢 POLLINATIONS AI (nevyžaduje se žádný klíč API) 🆕 - -| Model | Předpona | Limit sazby | Poskytovatel za | -| ---------- | -------- | --------------- | ------------------ | -| `openai` | `pol/` | 1 požadavek/15s | GPT-5 | -| `claude` | `pol/` | 1 požadavek/15s | Antropický Claude | -| `gemini` | `pol/` | 1 požadavek/15s | Google Gemini | -| `deepseek` | `pol/` | 1 požadavek/15s | DeepSeek V3 | -| `llama` | `pol/` | 1 požadavek/15s | Meta Llama 4 Scout | -| `mistral` | `pol/` | 1 požadavek/15s | Mistral AI | - -> ✨ **Nulové tření:** Žádná registrace, žádný klíč API. Přidejte poskytovatele Pollinations s prázdným polem klíče a funguje to okamžitě. - -### 🟠 CLOUDFLARE WORKERS AI (Free API Key — cloudflare.com) 🆕 - -| Úroveň | Denní neurony | Ekvivalentní použití | Poznámky | -| ------ | ------------- | ---------------------------------------- | ----------------------- | -| Zdarma | **10 000** | ~150 LLM resp / 500s audio / 15K vložení | Global edge, 50+ modelů | - -Oblíbené bezplatné modely: `@cf/meta/llama-3.3-70b-instruct`, `@cf/google/gemma-3-12b-it`, `@cf/openai/whisper-large-v3-turbo` (zvuk zdarma!), `@cf/qwen/qwen2.5-coder-15b-instruct` - -> Vyžaduje API Token + ID účtu z [dash.cloudflare.com](https://dash.cloudflare.com). Uložte ID účtu v nastavení poskytovatele. - -### 🟣 SCALEWAY AI (1 milion bezplatných tokenů — scaleway.com) 🆕 - -| Úroveň | Kvóta zdarma | Umístění | Poznámky | -| ------ | ------------------- | ------------ | ------------------------------------------------ | -| Zdarma | **1 milion tokenů** | 🇫🇷 Paříž, EU | V rámci limitů není potřeba žádná kreditní karta | - -Dostupné zdarma: `qwen3-235b-a22b-instruct-2507` (Qwen3 235B!), `llama-3.1-70b-instruct`, `mistral-small-3.2-24b-instruct-2506`, `deepseek-v3-0324` - -> V souladu s EU/GDPR. Získejte API klíč na [console.scaleway.com](https://console.scaleway.com). - -> **💡 The Ultimate Free Stack (11 poskytovatelů, 0 $ navždy):** -> -> ``` -> Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -> Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED -> LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 -> Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed -> Qwen (qw/) → qwen3-coder models UNLIMITED -> Gemini (gemini/) → Gemini 2.5 Flash — 1,500 req/day free -> Cloudflare AI (cf/) → 50+ models — 10K Neurons/day -> Scaleway (scw/) → Qwen3 235B, Llama 70B — 1M free tokens (EU) -> Groq (groq/) → Llama/Gemma — 14.4K req/day ultra-fast -> NVIDIA NIM (nvidia/) → 70+ open models — 40 RPM forever -> Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day -> ``` - -## 🎙️ Kombinace bezplatných přepisů - -> Přepis jakéhokoli zvuku/videa za **$0** — Deepgram vede s 200 $ zdarma, AssemblyAI 50 $ nouzové zálohy, Groq Whisper jako neomezené nouzové zálohování. - -| Poskytovatel | Kredity zdarma | Nejlepší modelka | Limit sazby | -| ------------------ | ----------------------------- | ------------------------------------------------ | ------------------------------------ | -| 🢢 **Deepgram** | **200 $ zdarma** (registrace) | `nova-3` — nejvyšší přesnost, více než 30 jazyků | Žádný limit RPM na bezplatné kredity | -| 🔵 **SestaveníAI** | **50 $ zdarma** (registrace) | `universal-3-pro` — kapitoly, sentiment, PII | Žádný limit RPM na bezplatné kredity | -| 🔴 **Groq** | **Navždy zdarma** | `whisper-large-v3` — OpenAI Whisper | 30 RPM (rychlost omezená) | - -**Doporučená kombinace v `/dashboard/combos`:** - -``` -Name: free-transcription -Strategy: Priority -Nodes: - [1] deepgram/nova-3 → uses $200 free first - [2] assemblyai/universal-3-pro → fallback when Deepgram credits run out - [3] groq/whisper-large-v3 → free forever, emergency fallback -``` - -Poté na `/dashboard/media` → karta **Přepis**: nahrajte jakýkoli zvukový nebo video soubor → vyberte svůj kombinovaný koncový bod → získejte přepis v podporovaných formátech. - -## 💡 Klíčové vlastnosti - -OmniRoute v2.0 je postaven jako operační platforma, nikoli pouze jako přenosová proxy. - -### 🆕 Novinka — Vylepšení inspirovaná ClawRouterem (březen 2026) - -| Funkce | Co to dělá | -| ----------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | -| ⚡ **Grok-4 Fast Family** | xAI modely za 0,20 $/0,50 $/M – srovnávací 1143 ms (o 30 % rychlejší než Gemini 2.5 Flash) | -| 🧠 **GLM-5 přes Z.AI** | 128 000 výstupní kontext, 0,5 $/1 milion – nejnovější vlajková loď z rodiny GLM | -| 🔮 **MiniMax M2.5** | Úvahy + agentní úkoly za 0,30 $/1 milion – významný upgrade z M2,1 | -| 🎯 **toolCalling Flag na model** | Pro model `toolCalling: true/false` v registru – AutoCombo přeskočí modely, které nepodporují nástroje | -| 🌍 **Multilingual Intent Detection** | Klíčová slova PT/ZH/ES/AR v hodnocení AutoCombo – lepší výběr modelu pro neanglický obsah | -| 📊 **Zástupy založené na benchmarku** | Skutečná latence p95 z kombinovaného bodování zdrojů živých požadavků – AutoCombo se učí ze skutečných dat | -| 🔁 **Požádat o deduplikaci** | Okno pro odstranění duplicitního obsahu založené na hašování obsahu – bezpečné pro více agentů, zabraňuje duplicitním poplatkům | -| 🔌 **Strategie připojitelného směrovače** | Rozšiřitelné rozhraní `RouterStrategy` – přidat vlastní logiku směrování jako zásuvné moduly | - -### 🚀 Předchozí v2.0.9+ — Hřiště, CLI Fingerprints & ACP - -| Funkce | Co to dělá | -| -------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 🎮 **Modelové hřiště** | Stránka řídicího panelu pro přímé testování jakéhokoli modelu — voliče poskytovatele/modelu/koncového bodu, editor Monaco, streamování, přerušení, načasování | -| 🔏 **CLI Fingerprint Matching** | Uspořádání záhlaví/těla podle poskytovatele tak, aby odpovídalo nativním signaturám CLI – přepněte podle poskytovatele v Nastavení > Zabezpečení. **Vaše IP adresa proxy je zachována** | -| 🤝 **Podpora ACP (Protokol klienta agenta)** | Zjišťování agentů CLI (Codex, Claude, Goose, Gemini CLI, OpenClaw + 9 dalších), zpracovatel procesů, koncový bod `/api/acp/agents` | -| 🤖 **Hlavní panel agentů AKT** | Debug › Stránka Agenti — mřížka 14 agentů se stavem instalace, verzí, uživatelským formulářem agenta pro libovolný nástroj CLI. Uživatelé **OpenCode** získají tlačítko „Stáhnout opencode.json“, které automaticky vygeneruje konfiguraci připravenou k použití se všemi dostupnými modely. | -| 🔧 **Vlastní model `apiFormat` Směrování** | Vlastní modely s `apiFormat: "responses"` nyní správně směrují do překladače Responses API | -| 🏢 **Codex Workspace Isolation** | Více pracovních prostorů Codex na e-mail — OAuth správně odděluje připojení podle ID pracovního prostoru | -| 🔄 **Elektronová automatická aktualizace** | Desktopová aplikace kontroluje aktualizace + automatická instalace při restartu | - -### 🤖 Operace agentů a protokolů (v2.0) - -| Funkce | Co to dělá | -| --------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | -| 🔧 **MCP Server (16 nástrojů)** | Nástroje IDE/agenta prostřednictvím 3 přenosů: stdio, SSE (`/api/mcp/sse`), Streamable HTTP (`/api/mcp/stream`) | -| 🤝 **Server A2A (JSON-RPC + SSE)** | Provádění úlohy agent-agent se synchronizací a streamováním | -| 🧭 **Stránka konsolidovaných koncových bodů** | Stránka správy s kartami s kartami Endpoint Proxy, MCP, A2A a API Endpoints | -| 🎚️ **Přepínače aktivace/deaktivace služby** | Spínače ON/OFF pro MCP a A2A s trvalým nastavením (výchozí: OFF) | -| 🛰️ **MCP Runtime Heartbeat** | Skutečný stav procesu (pid, doba provozu, doba srdečního tepu, transport, režim rozsahu) | -| 📋 **MCP Audit Trail** | Filtrovatelné protokoly auditu s úspěchem/neúspěchem a přiřazením klíče | -| 🔐 **Vymáhání rozsahu MCP** | 9 podrobných oprávnění rozsahu pro řízený přístup k nástroji | -| 📡 **A2A Task Lifecycle Management** | Vypsat/filtrovat úlohy, zkontrolovat události/artefakty, zrušit běžící úlohy | -| 📋 **Zjištění karty agenta** | `/.well-known/agent.json` pro automatické zjišťování klienta | -| 🧪 **Protokol E2E Test Harness** | Skutečné toky MCP SDK + A2A klient v `test:protocols:e2e` | -| ⚙️ **Provozní ovládací prvky** | Kombinace přepínačů, použití profilů odolnosti, resetování jističů z jedné ovládací plochy | - -### 🧠 Směrování a inteligence - -| Funkce | Co to dělá | -| ------------------------------------------------ | --------------------------------------------------------------------------- | -| 🎯 **Chytrý 4úrovňový záložní zdroj** | Automatická trasa: Předplatné → Klíč API → Levné → Zdarma | -| 📊 **Sledování kvót v reálném čase** | Živý počet tokenů + reset odpočítávání na poskytovatele | -| 🔄 **Formátový překlad** | OpenAI ↔ Claude ↔ Gemini ↔ Odpovědi s převody bezpečnými pro schéma | -| 👥 **Podpora více účtů** | Více účtů na poskytovatele s inteligentním výběrem | -| 🔄 **Automatické obnovení tokenu** | Tokeny OAuth se automaticky obnovují s opakováním | -| 🎨 **Vlastní kombinace** | 6 vyvažovacích strategií + řízení záložního řetězce | -| 🌐 **Wildcard Router** | `provider/*` dynamické směrování | -| 🧠 **Přemýšlení o kontrolách rozpočtu** | Limity průchozího, automatického, vlastního a adaptivního uvažování | -| 🔀 **Aliasy modelů** | Vestavěný + vlastní model aliasing a bezpečnost migrace | -| ⚡ **Degradace pozadí** | Směrujte úlohy s nízkou prioritou na pozadí na levnější modely | -| 🧪 **Inteligentní směrování s ohledem na úkoly** | Automatický výběr modelu podle typu obsahu (kódování/vize/analýza/souhrn) | -| 💬 **System Prompt Injection** | Globální ovládací prvky chování používané konzistentně | -| 📄 **Kompatibilita rozhraní Responses API** | Plná podpora `/v1/responses` pro Codex a pokročilé agentní pracovní postupy | - -### 🎵 Multimodální API - -| Funkce | Co to dělá | -| ----------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 🖼️ **Generování obrázků** | `/v1/images/generations` s cloudem a místními backendy | -| 📐 **Vložení** | `/v1/embeddings` pro vyhledávací a RAG potrubí | -| 🎤 **Přepis zvuku** | `/v1/audio/transcriptions` — 7 poskytovatelů (Deepgram Nova 3, AssemblyAI, Groq Whisper, HuggingFace, ElevenLabs, OpenAI, Azure), automatická detekce jazyka, podpora MP4/MP3/WAV | -| 🔊 **Převod textu na řeč** | `/v1/audio/speech` — 10 poskytovatelů (ElevenLabs, OpenAI, Deepgram, Cartesia, PlayHT, HuggingFace, Nvidia NIM, Inworld, Coqui, Tortoise) se správnými chybovými zprávami | -| 🎬 **Generace videa** | `/v1/videos/generations` (pracovní postupy ComfyUI + SD WebUI) | -| 🎵 **Music Generation** | `/v1/music/generations` (pracovní postupy ComfyUI) | -| 🛡️ **Moderování** | `/v1/moderations` bezpečnostní kontroly | -| 🔀 **Reranking** | `/v1/rerank` pro hodnocení relevance | -| 🔍 **Vyhledávání na webu** 🆕 | `/v1/search` — 5 poskytovatelů (Serper, Brave, Perplexity, Exa, Tavily), 6 500+ zdarma/měsíc, auto-failover, cache | - -### 🛡️ Odolnost, bezpečnost a správa - -| Funkce | Co to dělá | -| --------------------------------------- | ------------------------------------------------------------------------------------------- | -| 🔌 **Jističe** | Vypnutí/obnovení pro každý model s ovládáním prahu | -| 🎯 **modely s důrazem na koncové body** | Vlastní modely deklarují podporované koncové body + formát API | -| 🛡️ **Stádo proti hromům** | Mutex + semaforové ochrany při opakování/rychlosti událostí | -| 🧠 **Sémantická + mezipaměť podpisů** | Snížení nákladů/latence se dvěma vrstvami mezipaměti | -| ⚡ **Žádost o idempotenci** | Duplicitní ochranné okno | -| 🔒 **TLS Fingerprint Spoofing** | Otisk TLS jako v prohlížeči — **snižuje detekci robotů a nahlašování účtu** | -| 🔏 **CLI Fingerprint Matching** | Odpovídá nativním podpisům požadavku CLI — **snižuje riziko zákazu při zachování proxy IP** | -| 🌐 **Filtrování IP** | Kontrola seznamu povolených/blokovaných pro vystavená nasazení | -| 📊 **Upravitelné limity sazeb** | Konfigurovatelné globální limity/limity na úrovni poskytovatele s perzistencí | -| 🔑 **Správa klíčů API + rozsah** | Bezpečné vydávání/otočení klíčů a ovládání modelu/poskytovatele | -| 🛡️ **Chráněno `/models`** | Volitelné ověřování a skrytí poskytovatele pro katalog modelů | - -### 📊 Pozorovatelnost a analytika - -| Funkce | Co to dělá | -| -------------------------------------- | ---------------------------------------------------------------------- | -| 📝 **Požadavek + protokolování proxy** | Úplný požadavek/odpověď a protokolování proxy | -| 📉 **Streamed Detailed Logs** 🆕 | Reconstructs SSE payload streams cleanly into the UI | -| 📋 **Sjednocený panel protokolů** | Požadavek, proxy, audit a zobrazení konzoly na jedné stránce | -| 🔍 **Požádejte o telemetrii** | p50/p95/p99 latence a trasování požadavků | -| 🏥 **Health Dashboard** | Doba provozuschopnosti, stavy jističe, uzamčení, statistiky mezipaměti | -| 💰 **Sledování nákladů** | Kontroly rozpočtu a viditelnost cen podle modelu | -| 📈 **Analytické vizualizace** | Statistiky využití modelu/poskytovatele a zobrazení trendů | -| 🧪 **Rámec hodnocení** | Testování zlaté sady s konfigurovatelnými strategiemi shody | - -### ☁️ Nasazení a platforma - -| Funkce | Co to dělá | -| ----------------------------- | ----------------------------------------------------------------------- | -| 🌐 **Nasadit kdekoli** | Localhost, VPS, Docker, cloudová prostředí | -| 💾 **Cloud Sync** | Synchronizace konfigurace přes cloud worker | -| 🔄 **Zálohování/Obnova** | Export/import a toky obnovy po havárii | -| 🧙 **Průvodce onboardingem** | První spuštění průvodce nastavením | -| 🔧 **CLI Tools Dashboard** | Nastavení jedním kliknutím pro oblíbené kódovací nástroje | -| 🎮 **Modelové hřiště** | Otestujte libovolného poskytovatele/model/koncový bod z řídicího panelu | -| 🔏 **CLI Fingerprint Toggle** | Shoda otisků prstů jednotlivých poskytovatelů v Nastavení > Zabezpečení | -| 🌐 **i18n (30 jazyků)** | Plná podpora řídicího panelu + docs s pokrytím RTL | -| 🧹 **Vymazat všechny modely** | Vymazání seznamu modelů jedním kliknutím v detailech poskytovatele | -| 👁️ **Sidebar Controls** 🆕 | Hide components and integrations from Appearance Settings | -| 📋 **Šablony vydání** | Standardizované šablony GitHub pro chyby a funkce | -| 📂 **Custom Data Directory** | `DATA_DIR` přepsání umístění úložiště | - -### Funkce Deep Dive - -#### Chytrá záloha s praktickou kontrolou nákladů - -```txt -Combo: "my-coding-stack" - 1. cc/claude-opus-4-6 - 2. nvidia/llama-3.3-70b - 3. glm/glm-4.7 - 4. if/kimi-k2-thinking -``` - -Když kvóta, rychlost nebo stav selžou, OmniRoute automaticky přejde na dalšího kandidáta bez ručního přepínání. - -#### Správa protokolu, která je viditelná a ovladatelná - -- MCP + A2A jsou zjistitelné v uživatelském rozhraní a dokumentech (nejsou skryté) - – Rozhraní API stavu protokolu zpřístupňují živá provozní data (`/api/mcp/*`, `/api/a2a/*`) -- Panely obsahují akce pro operace 2. dne (přepínání kombinací, resetování jističe, zrušení úkolu) - -#### Pracovní postup překladatele + ověřování - -Oblast překladatele zahrnuje: - -- **Hřiště**: Vyžádejte si kontroly transformace -- **Chat Tester**: kompletní zpáteční cesta na žádost/odpověď -- **Testovací stolice**: více případů v jednom běhu -- **Live Monitor**: zobrazení dopravy v reálném čase - -Plus ověření protokolu se skutečnými klienty prostřednictvím `npm run test:protocols:e2e`. - -> 📖 **[MCP Server README](open-sse/mcp-server/README.md)** — Reference nástrojů, konfigurace IDE a příklady klientů -> -> 📖 **[A2A Server README](src/lib/a2a/README.md)** — Dovednosti, metody JSON-RPC, streamování a životní cyklus úkolů - -## 🧪 Hodnocení (Evals) - -OmniRoute obsahuje vestavěný hodnotící rámec pro testování kvality odezvy LLM oproti zlaté sadě. Přistupte k němu přes **Analytics → Evals** na hlavním panelu. - -### Vestavěná zlatá sada - -Předinstalovaná sada „OmniRoute Golden Set“ obsahuje testovací případy pro: - -- Pozdravy, matematika, zeměpis, generování kódu -- Kompatibilita formátu JSON, překlad, generování markdown -- Bezpečnostní odmítnutí (škodlivý obsah), počítání, booleovská logika - -### Strategie hodnocení - -| Strategie | Popis | Příklad | -| ---------- | ---------------------------------------------------------------------- | -------------------------------- | -| `exact` | Výstup se musí přesně shodovat | `"4"` | -| `contains` | Výstup musí obsahovat podřetězec (nerozlišují se malá a velká písmena) | `"Paris"` | -| `regex` | Výstup musí odpovídat vzoru regulárního výrazu | `"1.*2.*3"` | -| `custom` | Vlastní funkce JS vrací true/false | `(output) => output.length > 10` | - ---- - -## 📖 Průvodce nastavením - -### Nastavení protokolu (MCP + A2A) - -<details> -<summary><b>🧩 Nastavení MCP (Model Context Protocol)</b></summary> - -Spusťte přenos MCP v režimu stdio: - -```bash -omniroute --mcp -``` - -Doporučený postup ověření: - -1. Připojte svého MCP klienta přes stdio. -2. Spusťte `omniroute_get_health`. -3. Spusťte `omniroute_list_combos`. -4. Otevřete `/dashboard/mcp` a potvrďte tep, aktivitu a audit. - -Užitečná rozhraní API pro automatizaci: - -- `GET /api/mcp/status` -- `GET /api/mcp/tools` -- `GET /api/mcp/audit` -- `GET /api/mcp/audit/stats` - -</details> - -<details> -<summary><b>🤝 Nastavení A2A (Agent2Agent)</b></summary> - -Objevte agenta: - -```bash -curl http://localhost:20128/.well-known/agent.json -``` - -Pošlete úkol: - -```bash -curl -X POST http://localhost:20128/a2a \ - -H 'content-type: application/json' \ - -d '{"jsonrpc":"2.0","id":"setup-a2a","method":"message/send","params":{"skill":"quota-management","messages":[{"role":"user","content":"Summarize quota status."}]}}' -``` - -Správa životního cyklu: - -- `GET /api/a2a/status` -- `GET /api/a2a/tasks` -- `GET /api/a2a/tasks/:id` -- `POST /api/a2a/tasks/:id/cancel` - -Provozní uživatelské rozhraní: - -- `/dashboard/a2a` pro pozorování úkolu/stavu/streamu a kouřové akce - -</details> - -<details> -<summary><b>🧪 End-to-end ověření protokolu</b></summary> - -Ověřte oba protokoly se skutečnými klienty: - -```bash -npm run test:protocols:e2e -``` - -Tím se ověřuje: - -- Připojení/seznam/volání klienta MCP SDK -- A2A objev/odeslat/streamovat/získat/zrušit -- Křížová kontrola dat v MCP auditu a API pro správu úloh A2A - -</details> - -<details> -<summary><b>💳 Poskytovatelé předplatného</b></summary> - -### Claude Code (Pro/Max) - -```bash -Dashboard → Providers → Connect Claude Code -→ OAuth login → Auto token refresh -→ 5-hour + weekly quota tracking - -Models: - cc/claude-opus-4-6 - cc/claude-sonnet-4-5-20250929 - cc/claude-haiku-4-5-20251001 -``` - -**Tip pro profesionály:** Používejte Opus pro složité úkoly, Sonnet pro rychlost. OmniRoute sleduje kvótu na model! - -### OpenAI Codex (Plus/Pro) - -```bash -Dashboard → Providers → Connect Codex -→ OAuth login (port 1455) -→ 5-hour + weekly reset - -Models: - cx/gpt-5.2-codex - cx/gpt-5.1-codex-max -``` - -#### Správa limitu účtu Codex (5 hodin + týdně) - -Každý účet Codexu má nyní přepínače zásad v `Dashboard -> Providers`: - -- `5h` (ZAP/VYP): vynutit zásadu prahu 5hodinového okna. -- `Weekly` (ZAP/VYP): vynutit zásadu týdenního prahu okna. -- Prahové chování: když povolené okno dosáhne využití >=90 %, daný účet je přeskočen. -- Rotační chování: OmniRoute automaticky směruje na další způsobilý účet Codex. -- Resetovat chování: když poskytovatel `resetAt` uplyne čas, účet se automaticky znovu stane způsobilým. - -Scénáře: - -- `5h ON` + `Weekly ON`: účet je přeskočen, když kterékoli okno dosáhne prahové hodnoty. -- `5h OFF` + `Weekly ON`: účet může zablokovat pouze týdenní používání. -- `5h ON` + `Weekly OFF`: pouze 5hodinové používání může zablokovat účet. -- `resetAt` prošlo: účet automaticky znovu zadá rotaci (žádné ruční opětovné povolení). - -### Gemini CLI (ZDARMA 180 000/měsíc!) - -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Nejlepší hodnota:** Obrovská bezplatná úroveň! Použijte to před placenými úrovněmi. - -### GitHub Copilot - -```bash -Dashboard → Providers → Connect GitHub -→ OAuth via GitHub -→ Monthly reset (1st of month) - -Models: - gh/gpt-5 - gh/claude-4.5-sonnet - gh/gemini-3-pro -``` - -</details> - -<details> -<summary><b>🔑 Klíčoví poskytovatelé API</b></summary> - -### NVIDIA NIM (BEZPLATNÝ přístup pro vývojáře — 70+ modelů) - -1. Zaregistrujte se: [build.nvidia.com](https://build.nvidia.com) -2. Získejte bezplatný klíč API (včetně 1000 kreditů pro odvození) -3. Ovládací panel → Přidat poskytovatele → NVIDIA NIM: - - Klíč API: `nvapi-your-key` - -**Modely:** `nvidia/llama-3.3-70b-instruct`, `nvidia/mistral-7b-instruct` a 50+ dalších - -**Tip pro profesionály:** API kompatibilní s OpenAI – bezproblémově funguje s překladem formátu OmniRoute! - -### DeepSeek - -1. Zaregistrujte se: [platform.deepseek.com](https://platform.deepseek.com) -2. Získejte API klíč -3. Ovládací panel → Přidat poskytovatele → DeepSeek - -**Modely:** `deepseek/deepseek-chat`, `deepseek/deepseek-coder` - -### Groq (dostupná bezplatná úroveň!) - -1. Zaregistrujte se: [console.groq.com](https://console.groq.com) -2. Získejte klíč API (včetně bezplatné úrovně) -3. Ovládací panel → Přidat poskytovatele → Groq - -**Modely:** `groq/llama-3.3-70b`, `groq/mixtral-8x7b` - -**Tip pro profesionály:** Ultra rychlé vyvozování – nejlepší pro kódování v reálném čase! - -### OpenRouter (100+ modelů) - -1. Zaregistrujte se: [openrouter.ai](https://openrouter.ai) -2. Získejte API klíč -3. Ovládací panel → Přidat poskytovatele → OpenRouter - -**Modely:** Získejte přístup k více než 100 modelům od všech hlavních poskytovatelů prostřednictvím jediného klíče API. - -</details> - -<details> -<summary><b>💰 Levní poskytovatelé (záložní)</b></summary> - -### GLM-4,7 (denní reset, 0,6 $/1 milion) - -1. Zaregistrujte se: [Zhipu AI](https://open.bigmodel.cn/) -2. Získejte API klíč z Coding Plan -3. Ovládací panel → Přidat klíč API: - – Poskytovatel: `glm` - - Klíč API: `your-key` - -**Použití:** `glm/glm-4.7` - -**Tip pro profesionály:** Kódovací plán nabízí 3× kvótu za 1/7 cenu! Resetovat denně v 10:00. - -### MiniMax M2.1 (5h reset, $0.20/1M) - -1. Zaregistrujte se: [MiniMax](https://www.minimax.io/) -2. Získejte API klíč -3. Ovládací panel → Přidat klíč API - -**Použití:** `minimax/MiniMax-M2.1` - -**Tip pro profesionály:** Nejlevnější možnost pro dlouhý kontext (1 milion tokenů)! - -### Kimi K2 (9 $ měsíčně byt) - -1. Přihlásit se k odběru: [Moonshot AI](https://platform.moonshot.ai/) -2. Získejte API klíč -3. Ovládací panel → Přidat klíč API - -**Použití:** `kimi/kimi-latest` - -**Tip pro profesionály:** Pevná cena 9 $ měsíčně za 10 milionů tokenů = 0,90 $ / 1 milion efektivních nákladů! - -</details> - -<details> -<summary><b>🆓 ZDARMA poskytovatelé (nouzová záloha)</b></summary> - -### Qoder (5 ZDARMA modelů přes OAuth) - -```bash -Dashboard → Connect Qoder -→ Qoder OAuth login -→ Unlimited usage - -Models: - if/kimi-k2-thinking - if/qwen3-coder-plus - if/glm-4.7 - if/minimax-m2 - if/deepseek-r1 -``` - -### Qwen (4 ZDARMA modely prostřednictvím kódu zařízení) - -```bash -Dashboard → Connect Qwen -→ Device code authorization -→ Unlimited usage - -Models: - qw/qwen3-coder-plus - qw/qwen3-coder-flash -``` - -### Kiro (Claude FREE) - -```bash -Dashboard → Connect Kiro -→ AWS Builder ID or Google/GitHub -→ Unlimited usage - -Models: - kr/claude-sonnet-4.5 - kr/claude-haiku-4.5 -``` - -</details> - -<details> -<summary><b>🎨 Vytvořit komba</b></summary> - -### Příklad 1: Maximalizujte předplatné → Levné zálohování - -``` -Dashboard → Combos → Create New - -Name: premium-coding -Models: - 1. cc/claude-opus-4-6 (Subscription primary) - 2. glm/glm-4.7 (Cheap backup, $0.6/1M) - 3. minimax/MiniMax-M2.1 (Cheapest fallback, $0.20/1M) - -Use in CLI: premium-coding -``` - -### Příklad 2: Pouze zdarma (nulové náklady) - -``` -Name: free-combo -Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) - -Cost: $0 forever! -``` - -</details> - -<details> -<summary><b>🔧 Integrace rozhraní CLI</b></summary> - -### IDE kurzoru - -``` -Settings → Models → Advanced: - OpenAI API Base URL: http://localhost:20128/v1 - OpenAI API Key: [from OmniRoute dashboard] - Model: cc/claude-opus-4-6 -``` - -### Claudeův kód - -Použijte stránku **CLI Tools** na řídicím panelu pro konfiguraci jedním kliknutím nebo upravte `~/.claude/settings.json` ručně. - -### Codex CLI - -```bash -export OPENAI_BASE_URL="http://localhost:20128" -export OPENAI_API_KEY="your-omniroute-api-key" - -codex "your prompt" -``` - -### OpenClaw - -**Možnost 1 – Hlavní panel (doporučeno):** - -``` -Dashboard → CLI Tools → OpenClaw → Select Model → Apply -``` - -**Možnost 2 — Ručně:** Upravit `~/.openclaw/openclaw.json`: - -```json -{ - "models": { - "providers": { - "omniroute": { - "baseUrl": "http://127.0.0.1:20128/v1", - "apiKey": "sk_omniroute", - "api": "openai-completions" - } - } - } -} -``` - -> **Poznámka:** OpenClaw funguje pouze s místní OmniRoute. Použijte `127.0.0.1` místo `localhost`, abyste se vyhnuli problémům s rozlišením IPv6. - -### Cline / Pokračovat / RooCode - -``` -Settings → API Configuration: - Provider: OpenAI Compatible - Base URL: http://localhost:20128/v1 - API Key: [from OmniRoute dashboard] - Model: if/kimi-k2-thinking -``` - -### OpenCode - -**Krok 1:** Přidejte OmniRoute jako vlastního poskytovatele: - -```bash -opencode -/connect -# Select "Other" → Enter ID: "omniroute" → Enter your OmniRoute API key -``` - -**Krok 2:** Vytvořte/upravte `opencode.json` v kořenovém adresáři projektu: - -```json -{ - "$schema": "https://opencode.ai/config.json", - "provider": { - "omniroute": { - "npm": "@ai-sdk/openai-compatible", - "name": "OmniRoute", - "options": { - "baseURL": "http://localhost:20128/v1" - }, - "models": { - "cc/claude-sonnet-4-20250514": { "name": "Claude Sonnet 4" }, - "gg/gemini-2.5-pro": { "name": "Gemini 2.5 Pro" }, - "if/kimi-k2-thinking": { "name": "Kimi K2 (Free)" } - } - } - } -} -``` - -**Krok 3:** Vyberte model v OpenCode: - -```bash -/models -# Select any OmniRoute model from the list -``` - -> **Tip:** Přidejte jakýkoli model dostupný ve vašem koncovém bodu OmniRoute `/v1/models` do sekce `models`. Použijte formát `provider/model-id` z řídicího panelu OmniRoute. - -</details> - ---- - -## 🐛 Odstraňování problémů - -<details> -<summary><b>Kliknutím rozbalíte průvodce odstraňováním problémů</b></summary> - -**"Jazykový model neposkytoval zprávy"** - -- Kvóta poskytovatele je vyčerpána → Zkontrolujte sledování kvót na řídicím panelu -- Řešení: Použijte nouzovou kombinaci nebo přejděte na levnější úroveň - -**Omezení sazby** - -- Vyčerpaná kvóta předplatného → Záložní režim GLM/MiniMax -- Přidat kombinaci: `cc/claude-opus-4-6 → glm/glm-4.7 → if/kimi-k2-thinking` - -**Platnost tokenu OAuth vypršela** - -- Automaticky obnoveno OmniRoute -- Pokud problémy přetrvávají: Řídicí panel → Poskytovatel → Znovu připojit - -**Vysoké náklady** - -- Zkontrolujte statistiky využití v Dashboard → Náklady -- Přepněte primární model na GLM/MiniMax -- Používejte bezplatnou vrstvu (Gemini CLI, Qoder) pro nekritické úkoly - -**Porty řídicího panelu/API jsou chybné** - -- `PORT` je kanonický základní port (a port API ve výchozím nastavení) -- `API_PORT` přepíše pouze posluchač API kompatibilní s OpenAI -- `DASHBOARD_PORT` přepíše pouze řídicí panel/posluchač Next.js - – Nastavte `NEXT_PUBLIC_BASE_URL` na svůj řídicí panel/veřejnou adresu URL (pro zpětná volání OAuth) - -**Chyby synchronizace cloudu** - -- Ověřte `BASE_URL` bodů na vaši spuštěnou instanci -- Ověřte `CLOUD_URL` bodů k očekávanému koncovému bodu cloudu -- Udržujte hodnoty `NEXT_PUBLIC_*` zarovnané s hodnotami na straně serveru - -**První přihlášení nefunguje** - -- Zkontrolujte `INITIAL_PASSWORD` v `.env` - – Pokud není nastaveno, záložní heslo je `123456` - -**Žádné protokoly požadavků** - -- Nastavit `ENABLE_REQUEST_LOGS=true` v `.env` - -**Test připojení ukazuje „Neplatné“ pro poskytovatele kompatibilní s OpenAI** - -– Mnoho poskytovatelů nevystavuje koncový bod `/models` - -- OmniRoute v1.0.6+ zahrnuje nouzové ověření prostřednictvím dokončení chatu - – Zajistěte, aby základní adresa URL obsahovala příponu `/v1` - -### 🔐 OAuth na vzdáleném serveru - -<a name="oauth-on-a-remote-server"></a> -<a name="oauth-em-servidor-remoto"></a> - -> **⚠️ Důležité pro uživatele používající OmniRoute na VPS, Dockeru nebo jakémkoli vzdáleném serveru** - -#### Proč selže Antigravity / Gemini CLI OAuth na vzdálených serverech? - -Poskytovatelé **Antigravity** a **Gemini CLI** používají **Google OAuth 2.0**. Google vyžaduje, aby `redirect_uri` v toku OAuth přesně odpovídal jednomu z předem registrovaných URI v Google Cloud Console aplikace. - -Přihlašovací údaje OAuth dodávané v OmniRoute jsou registrovány **pouze pro `localhost`**. Když přistupujete k OmniRoute na vzdáleném serveru (např. `https://omniroute.myserver.com`), Google odmítne ověření pomocí: - -``` -Error 400: redirect_uri_mismatch -``` - -#### Řešení: Nakonfigurujte si vlastní přihlašovací údaje OAuth - -Ve službě Google Cloud Console musíte vytvořit **OAuth 2.0 Client ID** s identifikátorem URI vašeho serveru. - -#### Krok za krokem - -**1. Otevřít Google Cloud Console** - -Přejít na: [https://console.cloud.google.com/apis/credentials](https://console.cloud.google.com/apis/credentials) - -**2. Vytvořit nové ID klienta OAuth 2.0** - -– Klikněte na **"+ Vytvořit přihlašovací údaje"** → **"ID klienta OAuth"** - -- Typ aplikace: **"Webová aplikace"** - – Jméno: cokoliv se vám líbí (např. `OmniRoute Remote`) - -**3. Přidat identifikátory URI autorizovaného přesměrování** - -Do pole **"URI autorizovaného přesměrování"** přidejte: - -``` -https://your-server.com/callback -``` - -> Nahraďte `your-server.com` doménou nebo IP vašeho serveru (v případě potřeby uveďte port, např. `http://45.33.32.156:20128/callback`). - -**4. Uložte a zkopírujte přihlašovací údaje** - -Po vytvoření Google zobrazí **Client ID** a **Client Secret**. - -**5. Nastavit proměnné prostředí** - -Ve vašem `.env` (nebo proměnných prostředí Docker): - -```bash -# For Antigravity: -ANTIGRAVITY_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com -ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-your-secret - -# For Gemini CLI: -GEMINI_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com -GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -``` - -**6. Restartujte OmniRoute** - -```bash -# npm: -npm run dev - -# Docker: -docker restart omniroute -``` - -**7. Zkuste se připojit znovu** - -Ovládací panel → Poskytovatelé → Antigravitace (nebo Gemini CLI) → OAuth - -Google nyní správně přesměruje na `https://your-server.com/callback`. - ---- - -#### Dočasné řešení (bez vlastních přihlašovacích údajů) - -Pokud si nyní nechcete nastavovat vlastní přihlašovací údaje, můžete stále použít **ruční postup URL**: - -1. OmniRoute otevře autorizační URL Google -2. Po autorizaci se Google pokusí přesměrovat na `localhost` (který selže na vzdáleném serveru) -3. **Zkopírujte celou adresu URL** z adresního řádku prohlížeče (i když se stránka nenačte) -4. Vložte tuto adresu URL do pole zobrazeného v modálu připojení OmniRoute -5. Klikněte na **"Připojit"** - -> Funguje to, protože autorizační kód v adrese URL je platný bez ohledu na to, zda se stránka přesměrování načetla. - ---- - -<details> -<summary><b>🇧🇷 Versão em Português</b></summary> - -#### Od OAuth do Antigravity / Gemini CLI falha em servidores remotos? - -Osvedčuje **Antigravity** a **Gemini CLI** používáme **Google OAuth 2.0** pro autenticitu. O Google exige que a `redirect_uri` usada no fluxo OAuth seja **exatamente** uma das URIs pre-cadastradas no Google Cloud Console to use. - -Jako credenciais OAuth embutidas no OmniRoute estão cadastradas **apenas para `localhost`**. Quando você acessa o OmniRoute em um servidor remote (ex: `https://omniroute.meuservidor.com`), o Google rejeita a autenticação com: - -``` -Error 400: redirect_uri_mismatch -``` - -#### Řešení: Nakonfigurujte proprias pověření OAuth - -Você precisa criar um **OAuth 2.0 Client ID** no Google Cloud Console com a URI do seu server. - -#### Passo a passo - -**1. Přístup ke službě Google Cloud Console** - -Abra: [https://console.cloud.google.com/apis/credentials](https://console.cloud.google.com/apis/credentials) - -**2. Crie um novo OAuth 2.0 Client ID** - -- Klikněte na **"+ Vytvořit přihlašovací údaje"** → **"ID klienta OAuth"** -- Tipo de aplicativo: **"Webová aplikace"** - – Nome: escolha qualquer nome (např.: `OmniRoute Remote`) - -**3. Adicione jako Authorized Redirect URI** - -Žádné pole **"URI autorizovaného přesměrování"**, adicione: - -``` -https://seu-servidor.com/callback -``` - -> Substitua `seu-servidor.com` pelo domínio ou IP do seu servidor (inclua a porta se necessário, ex: `http://45.33.32.156:20128/callback`). - -**4. Uložit a zkopírovat jako credenciais** - -Após criar, o Google mostrará o **Client ID** e o **Client Secret**. - -**5. Konfigurovat jako variáveis de ambiente** - -No seu `.env` (ou nas variáveis de ambiente do Docker): - -```bash -# Para Antigravity: -ANTIGRAVITY_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com -ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret - -# Para Gemini CLI: -GEMINI_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com -GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -``` - -**6. Reinicie nebo OmniRoute** - -```bash -# Se usando npm: -npm run dev - -# Se usando Docker: -docker restart omniroute -``` - -**7. Tente conectar novamente** - -Dashboard → Poskytovatelé → Antigravitace (nebo Gemini CLI) → OAuth - -Agora nebo Google redirecionará corretamente para `https://seu-servidor.com/callback` a autenticação funcionará. - ---- - -#### Temporário řešení (sem configurar credenciais próprias) - -Zjistěte, jaké jsou údaje o vaší kreditní kartě, a je možné, že použijete fluxo **příručku URL**: - -1. O OmniRoute abrirá a URL autorização Google -2. Após você autorizar, o Google tentará redirecionar para `localhost` (que falha no servidor remoto) -3. **Zkopírujte úplnou adresu URL** da barra de endereço do seu browser (mesmo que a pagina não carregue) -4. Cole essa URL no campo que aparece no modal de conexão do OmniRoute -5. Klikněte na **"Připojit"** - -> Toto řešení funguje pomocí autorizačního kódu na URL a nezávislého přesměrování. - -</details> - ---- - -</details> - -## 🛠️ Tech Stack - -<details> -<summary><b>Kliknutím rozbalíte podrobnosti o technickém zásobníku</b></summary> - -- **Runtime**: Node.js 18–22 LTS (⚠️ Node.js 24+ není **podporován** — `better-sqlite3` nativní binární soubory jsou nekompatibilní) -- **Jazyk**: TypeScript 5.9 — **100% TypeScript** napříč `src/` a `open-sse/` (nula `any` v základních modulech od verze 2.0) -- **Framework**: Next.js 16 + React 19 + Tailwind CSS 4 -- **Databáze**: LowDB (JSON) + SQLite (stav domény + protokoly proxy + audit MCP + rozhodnutí o směrování) -- **Schémata**: Zod (ověření I/O nástroje MCP, smlouvy API) -- **Protokoly**: MCP (stdio/HTTP) + A2A v0.3 (JSON-RPC 2.0 + SSE) -- **Streamování**: Server-Sent Events (SSE) -- **Auth**: OAuth 2.0 (PKCE) + JWT + API klíče + MCP Scoped Authorization -- **Testování**: Testovací program Node.js + Vitest (více než 900 testů včetně jednotky, integrace, E2E) -- **CI/CD**: Akce GitHub (automatické publikování npm + Docker Hub při vydání) -- **Web**: [omniroute.online](https://omniroute.online) -- **Balík**: [npmjs.com/package/omniroute](https://www.npmjs.com/package/omniroute) -- **Docker**: [hub.docker.com/r/diegosouzapw/omniroute](https://hub.docker.com/r/diegosouzapw/omniroute) -- **Odolnost**: Jistič, exponenciální ústup, stádo proti hromům, TLS spoofing, auto-kombo samoléčení - -</details> - ---- - -## 📖 Dokumentace - -| Dokument | Popis | -| ---------------------------------------------- | ----------------------------------------------------------- | -| [User Guide](docs/USER_GUIDE.md) | Poskytovatelé, komba, integrace CLI, nasazení | -| [API Reference](docs/API_REFERENCE.md) | Všechny koncové body s příklady | -| [MCP Server](open-sse/mcp-server/README.md) | 16 MCP nástroje, konfigurace IDE, klienti Python/TS/Go | -| [A2A Server](src/lib/a2a/README.md) | Protokol JSON-RPC 2.0, dovednosti, streamování, správa úloh | -| [Auto-Combo Engine](docs/auto-combo.md) | 6faktorové bodování, balíčky režimů, samoléčení | -| [Troubleshooting](docs/TROUBLESHOOTING.md) | Běžné problémy a řešení | -| [Architecture](docs/ARCHITECTURE.md) | Architektura systému a vnitřní části | -| [Contributing](CONTRIBUTING.md) | Vývojové nastavení a pokyny | -| [OpenAPI Spec](docs/openapi.yaml) | Specifikace OpenAPI 3.0 | -| [Security Policy](SECURITY.md) | Hlášení zranitelnosti a bezpečnostní postupy | -| [VM Deployment](docs/VM_DEPLOYMENT_GUIDE.md) | Kompletní průvodce: Nastavení VM + nginx + Cloudflare | -| [Features Gallery](docs/FEATURES.md) | Vizuální prohlídka řídicího panelu se snímky obrazovky | -| [Release Checklist](docs/RELEASE_CHECKLIST.md) | Kroky ověření před vydáním | - ---- - -## 🗺️ Cestovní mapa - -OmniRoute má naplánováno **210+ funkcí** v několika fázích vývoje. Zde jsou klíčové oblasti: - -| Kategorie | Plánované funkce | Hlavní body | -| ---------------------------------------- | ---------------- | ------------------------------------------------------------------------------------------------------- | -| 🧠 **Směrování a inteligence** | 25+ | Směrování s nejnižší latencí, směrování založené na značkách, předběžná kontrola kvót, výběr účtu P2C | -| 🔒 **Zabezpečení a dodržování předpisů** | 20+ | Zpevnění SSRF, maskování pověření, rychlostní limit na koncový bod, stanovení rozsahu klíče managementu | -| 📊 **Pozorovatelnost** | 15+ | Integrace OpenTelemetry, sledování kvót v reálném čase, sledování nákladů na model | -| 🔄 **Integrace poskytovatelů** | 20+ | Registr dynamického modelu, cooldowny poskytovatelů, kodex pro více účtů, analýza kvót Copilota | -| ⚡ **Výkon** | 15+ | Dual cache layer, prompt cache, response cache, streaming keepalive, batch API | -| 🌐 **Ekosystém** | 10+ | WebSocket API, konfigurace hot-reload, distribuované úložiště konfigurace, komerční režim | - -### 🔜 Již brzy - -- 🔗 **Integrace OpenCode** – Podpora nativního poskytovatele pro IDE kódování OpenCode AI -- 🔗 ** Integrace TRAE** — Plná podpora pro vývojový rámec TRAE AI -- 📦 **Batch API** — Asynchronní dávkové zpracování pro hromadné požadavky -- 🎯 **Směrování založené na značkách** – Směrování požadavků na základě vlastních značek a metadat -- 💰 **Strategie nejnižších nákladů** — Automaticky vyberte nejlevnějšího dostupného poskytovatele - -> 📝 Kompletní specifikace funkcí k dispozici v [**OMNI_TOKEN_342**](docs/new-features/) (217 podrobných specifikací) - ---- - -## 👥 Přispěvatelé - -[![Contributors](https://contrib.rocks/image?repo=diegosouzapw/OmniRoute&max=100&columns=20&anon=1)](https://github.com/diegosouzapw/OmniRoute/graphs/contributors) - -### Jak přispět - -1. Fork úložiště -2. Vytvořte si větev funkcí (`git checkout -b feature/amazing-feature`) -3. Potvrďte změny (`git commit -m 'Add amazing feature'`) -4. Zatlačte na pobočku (`git push origin feature/amazing-feature`) -5. Otevřete požadavek na stažení - -Podrobné pokyny viz [CONTRIBUTING.md](CONTRIBUTING.md). - -### Vydání nové verze - -```bash -# Create a release — npm publish happens automatically -gh release create v2.0.0 --title "v2.0.0" --generate-notes -``` - ---- - -## 📊 Hvězdná historie - -## Hvězdáři v průběhu času - -## [![Stargazers over time](https://starchart.cc/diegosouzapw/OmniRoute.svg?variant=adaptive)](https://starchart.cc/diegosouzapw/OmniRoute) - -## 🙏 Poděkování - -Zvláštní poděkování patří **[9router](https://github.com/decolua/9router)** od **[decolua](https://github.com/decolua)** – původnímu projektu, který inspiroval tuto vidlici. OmniRoute staví na tomto neuvěřitelném základu s dalšími funkcemi, multimodálními API a úplným přepsáním TypeScriptu. - -Zvláštní poděkování patří **[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)** – původní implementaci Go, která inspirovala tento port JavaScriptu. - ---- - -## 📄 Licence - -Licence MIT – podrobnosti viz [LICENSE](LICENSE). - ---- - -<div align="center"> - <sub>Vytvořeno pomocí ❤️ pro vývojáře, kteří kódují 24/7</sub> - <br/> - <sub><a href="https://omniroute.online">omniroute.online</a></sub> -</div> -<!-- Diskuse na GitHubu povoleny pro otázky a odpovědi komunity --> +👉 **[Read the Documentation here](docs/i18n/cs/README.md)** diff --git a/README.da.md b/README.da.md index ebd932c2c5..5004128080 100644 --- a/README.da.md +++ b/README.da.md @@ -1,2077 +1,5 @@ -# 🚀 OmniRoute — Den gratis AI-gateway +# 🌐 OmniRoute (da) -### Stop aldrig med at kode. Smart routing til **GRATIS og billige AI-modeller** med automatisk fallback. +The documentation has been formalized and moved to our centralized i18n structure. -_Din universelle API-proxy — ét slutpunkt, 67+ udbydere, ingen nedetid. Nu med **MCP & A2A** agentorkestrering._ - -**Chatafslutninger • Indlejringer • Billedgenerering • Video • Musik • Lyd • Genrangering • **Websøgning** • MCP-server • A2A-protokol • 100 % TypeScript** - ---- - -<div align="center"> - -[![npm version](https://img.shields.io/npm/v/omniroute?color=cb3837&logo=npm)](https://www.npmjs.com/package/omniroute) -[![npm downloads](https://img.shields.io/npm/dm/omniroute?color=cb3837&logo=npm&label=npm%20downloads)](https://www.npmjs.com/package/omniroute) -[![Docker Hub](https://img.shields.io/docker/v/diegosouzapw/omniroute?label=Docker%20Hub&logo=docker&color=2496ED)](https://hub.docker.com/r/diegosouzapw/omniroute) -[![Docker Pulls](https://img.shields.io/docker/pulls/diegosouzapw/omniroute?logo=docker&color=2496ED&label=docker%20pulls)](https://hub.docker.com/r/diegosouzapw/omniroute) -[![License](https://img.shields.io/github/license/diegosouzapw/OmniRoute)](https://github.com/diegosouzapw/OmniRoute/blob/main/LICENSE) -[![Website](https://img.shields.io/badge/Website-omniroute.online-blue?logo=google-chrome&logoColor=white)](https://omniroute.online) -[![WhatsApp](https://img.shields.io/badge/WhatsApp-Community-25D366?logo=whatsapp&logoColor=white)](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) - -[🌐 Website](https://omniroute.online) • [🚀 Quick Start](#-quick-start) • [💡 Features](#-key-features) • [📖 Docs](#-documentation) • [💰 Pricing](#-pricing-at-a-glance) • [💬 WhatsApp](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) - -</div> - -🌐 **Fås i:** 🇺🇸 [English](README.md) | 🇧🇷 [Português (Brasil)](docs/i18n/pt-BR/README.md) | 🇪🇸 [Español](docs/i18n/es/README.md) | 🇫🇷 [Français](docs/i18n/fr/README.md) | 🇮🇹 [Italiano](docs/i18n/it/README.md) | 🇷🇺 [Русский](docs/i18n/ru/README.md) | 🇨🇳 [中文 (简体)](docs/i18n/zh-CN/README.md) | 🇩🇪 [Deutsch](docs/i18n/de/README.md) | 🇮🇳 [हिन्दी](docs/i18n/in/README.md) | 🇹🇭 [ไทย](docs/i18n/th/README.md) | 🇺🇦 [Українська](docs/i18n/uk-UA/README.md) | 🇸🇦 [العربية](docs/i18n/ar/README.md) | 🇯🇵 [日本語](docs/i18n/ja/README.md) | 🇻🇳 [Tiếng Việt](docs/i18n/vi/README.md) | 🇧🇬 [Български](docs/i18n/bg/README.md) | 🇩🇰 [Dansk](docs/i18n/da/README.md) | 🇫🇮 [Suomi](docs/i18n/fi/README.md) | 🇮🇱 [עברית](docs/i18n/he/README.md) | 🇭🇺 [Magyar](docs/i18n/hu/README.md) | 🇮🇩 [Bahasa Indonesia](docs/i18n/id/README.md) | 🇰🇷 [한국어](docs/i18n/ko/README.md) | 🇲🇾 [Bahasa Melayu](docs/i18n/ms/README.md) | 🇳🇱 [Nederlands](docs/i18n/nl/README.md) | 🇳🇴 [Norsk](docs/i18n/no/README.md) | 🇵🇹 [Português (Portugal)](docs/i18n/pt/README.md) | 🇷🇴 [Română](docs/i18n/ro/README.md) | 🇵🇱 [Polski](docs/i18n/pl/README.md) | 🇸🇰 [Slovenčina](docs/i18n/sk/README.md) | 🇸🇪 [Svenska](docs/i18n/sv/README.md) | 🇵🇭 [Filipino](docs/i18n/phi/README.md) | 🇨🇿 [Čeština](docs/i18n/cs/README.md) - ---- - -## 🆕 Hvad er nyt i v3.0.0 - -> **Opgradering fra v2.9.5?** — Se [full CHANGELOG](CHANGELOG.md#300--2026-03-22-release-candidate--not-yet-merged-to-main) for alle ændringer. - -| Område | Skift | -| ----------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 🔒 **CodeQL Security** | Fixed 10+ CodeQL alarmer: polynomial-redos, insecure-randomness, shell-injection remediering | -| ✅ **Rutevalidering** | Alle 176 API-ruter er nu valideret med Zod-skemaer + `validateBody()` — CI `check:route-validation:t06`-pas | -| 🐛 **omniModel Tag Læk** | Interne `<omniModel>`-tags lækker ikke længere til klienter i SSE-streamingsvar (#585) | -| 🔑 **Registrerede nøgler API** | Automatisk levering af API-nøgler via `POST /api/v1/registered-keys` med håndhævelse af kvoter pr. udbyder/konto, idempotens, SHA-256-lagring og valgfri GitHub-problemrapportering | -| 🎨 **Udbyderikoner** | 130+ udbyderlogoer via `@lobehub/icons` (SVG) med PNG → generisk reservekæde | -| 🔄 **Model Auto-Sync** | 24-timers skemalægger og manuel brugergrænseflade skifter til at synkronisere modellister for indbyggede og brugerdefinerede OpenAI-kompatible udbydere | -| 🌐 **OpenCode Zen/Go** | To nye udbydere fra @kang-heewon via PR #530: gratis niveau + abonnementsniveau via `OpencodeExecutor` | -| 🐛 **Gemini CLI OAuth** | Handlingsbar fejl, når `GEMINI_OAUTH_CLIENT_SECRET` mangler i Docker (var kryptisk Google-fejl) | -| 🐛 **OpenCode config** | `saveOpenCodeConfig()` skriver nu TOML korrekt til `XDG_CONFIG_HOME` | -| 🐛 **Tilsidesættelse af fastgjort model** | `body.model` korrekt indstillet til `pinnedModel` på kontekst-cache-beskyttelse | -| 🐛 **Codex/Claude loop** | `tool_result` blokke nu konverteret til tekst for at stoppe uendelige sløjfer | -| 🐛 **Login-omdirigering** | Login fryser ikke længere efter at have sprunget adgangskodeopsætning over | -| 🐛 **Windows stier** | MSYS2/Git-Bash stier (`/c/...`) normaliseret til `C:\...` automatisk | - ---- - -## 🖼️ Main Dashboard - -<div align="center"> - <img src="./docs/screenshots/MainOmniRoute.png" alt="OmniRoute Dashboard" width="800"/> -</div> - ---- - -## 📸 Dashboard Preview - -<details> -<summary><b>Klik for at se skærmbilleder af dashboard</b></summary> - -| Side | Skærmbillede | -| ----------------- | ------------------------------------------------- | -| **Udbydere** | ![Providers](docs/screenshots/01-providers.png) | -| **Komboer** | ![Combos](docs/screenshots/02-combos.png) | -| **Analyse** | ![Analytics](docs/screenshots/03-analytics.png) | -| **Sundhed** | ![Health](docs/screenshots/04-health.png) | -| **Oversætter** | ![Translator](docs/screenshots/05-translator.png) | -| **Indstillinger** | ![Settings](docs/screenshots/06-settings.png) | -| **CLI-værktøjer** | ![CLI Tools](docs/screenshots/07-cli-tools.png) | -| **Brugslogfiler** | ![Usage](docs/screenshots/08-usage.png) | -| **Endpunkter** | ![Endpoints](docs/screenshots/09-endpoint.png) | - -</details> - ---- - -### 🤖 Gratis AI-udbyder til dine foretrukne kodningsagenter - -_Tilslut ethvert AI-drevet IDE- eller CLI-værktøj gennem OmniRoute - gratis API-gateway til ubegrænset kodning._ - - <table> - <tr> - <td align="center" width="110"> - <a href="https://github.com/openclaw/openclaw"> - <img src="./public/providers/openclaw.png" alt="OpenClaw" width="48"/><br/> - <b>OpenClaw</b> - </a><br/> - <sub>⭐ 205K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/HKUDS/nanobot"> - <img src="./public/providers/nanobot.png" alt="NanoBot" width="48"/><br/> - <b>NanoBot</b> - </a><br/> - <sub>⭐ 20.9K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/sipeed/picoclaw"> - <img src="./public/providers/picoclaw.jpg" alt="PicoClaw" width="48"/><br/> - <b>PicoClaw</b> - </a><br/> - <sub>⭐ 14.6K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/zeroclaw-labs/zeroclaw"> - <img src="./public/providers/zeroclaw.png" alt="ZeroClaw" width="48"/><br/> - <b>ZeroClaw</b> - </a><br/> - <sub>⭐ 9.9K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/nearai/ironclaw"> - <img src="./public/providers/ironclaw.png" alt="IronClaw" width="48"/><br/> - <b>IronClaw</b> - </a><br/> - <sub>⭐ 2.1K</sub> - </td> - </tr> - <tr> - <td align="center" width="110"> - <a href="https://github.com/anomalyco/opencode"> - <img src="./public/providers/opencode.svg" alt="OpenCode" width="48"/><br/> - <b>OpenCode</b> - </a><br/> - <sub>⭐ 106K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/openai/codex"> - <img src="./public/providers/codex.png" alt="Codex CLI" width="48"/><br/> - <b>Codex CLI</b> - </a><br/> - <sub>⭐ 60.8K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/anthropics/claude-code"> - <img src="./public/providers/claude.png" alt="Claude Code" width="48"/><br/> - <b>Claude Code</b> - </a><br/> - <sub>⭐ 67.3K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/google-gemini/gemini-cli"> - <img src="./public/providers/gemini-cli.png" alt="Gemini CLI" width="48"/><br/> - <b>Gemini CLI</b> - </a><br/> - <sub>⭐ 94.7K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/Kilo-Org/kilocode"> - <img src="./public/providers/kilocode.png" alt="Kilo Code" width="48"/><br/> - <b>Kilo Code</b> - </a><br/> - <sub>⭐ 15.5K</sub> - </td> - </tr> - </table> - -<sub>📡 All agents connect via <code>http://localhost:20128/v1</code> or <code>http://cloud.omniroute.online/v1</code> — one config, unlimited models and kvote</sub> - ---- - -## 🤔 Hvorfor OmniRoute? - -**Stop wasting money and hitting limits:** - -- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Subscription quota expires unused every month -- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Rate limits stop you mid-coding -- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Expensive APIs ($20-50/month per provider) -- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Manual switching between providers - -**OmniRoute løser dette:** - -- ✅ **Maximize subscriptions** - Track quota, use every bit before reset -- ✅ **Auto fallback** - Subscription → API Key → Cheap → Free, zero downtime -- ✅ **Multi-account** - Round-robin between accounts per provider -- ✅ **Universal** - Works with Claude Code, Codex, Gemini CLI, Cursor, Cline, OpenClaw, any CLI tool - ---- - -## 📧 Support - -> 💬 **Join our community!** [WhatsApp Group](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) — Get help, share tips, and stay updated. - -- **Websted**: [omniroute.online](https://omniroute.online) -- **GitHub**: [github.com/diegosouzapw/OmniRoute](https://github.com/diegosouzapw/OmniRoute) -- **Problemer**: [github.com/diegosouzapw/OmniRoute/issues](https://github.com/diegosouzapw/OmniRoute/issues) -- **WhatsApp**: [Community Group](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) -- **Contributing**: See [CONTRIBUTING.md](CONTRIBUTING.md), open a PR, or pick a `good first issue` -- **Originalt projekt**: [9router by decolua](https://github.com/decolua/9router) - -### 🐛 Rapporterer du en fejl? - -When opening an issue, please run the system-info command and attach the generated file: - -```bash -npm run system-info -``` - -Dette genererer en `system-info.txt` med din Node.js-version, OmniRoute-version, OS-detaljer, installerede CLI-værktøjer (qoder, gemini, claude, codex, antigravity, droid osv.), Docker/PM2-status og systempakker - alt hvad vi behøver for hurtigt at genskabe dit problem. Vedhæft filen direkte til dit GitHub-problem. - ---- - -## 🔄 Sådan virker det - -``` -┌─────────────┐ -│ Your CLI │ (Claude Code, Codex, Gemini CLI, OpenClaw, Cursor, Cline...) -│ Tool │ -└──────┬──────┘ - │ http://localhost:20128/v1 - ↓ -┌─────────────────────────────────────────┐ -│ OmniRoute (Smart Router) │ -│ • Format translation (OpenAI ↔ Claude) │ -│ • Quota tracking + Embeddings + Images │ -│ • Auto token refresh │ -└──────┬──────────────────────────────────┘ - │ - ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex, Gemini CLI - │ ↓ quota exhausted - ├─→ [Tier 2: API KEY] DeepSeek, Groq, xAI, Mistral, NVIDIA NIM, etc. - │ ↓ budget limit - ├─→ [Tier 3: CHEAP] GLM ($0.6/1M), MiniMax ($0.2/1M) - │ ↓ budget limit - └─→ [Tier 4: FREE] Qoder, Qwen, Kiro (unlimited) - -Result: Never stop coding, minimal cost -``` - ---- - -## 🎯 Hvad OmniRoute løser — 30 rigtige smertepunkter og brugssager - -> **Alle udviklere, der bruger AI-værktøjer, står over for disse problemer dagligt.** OmniRoute blev bygget til at løse dem alle - fra omkostningsoverskridelser til regionale blokke, fra ødelagte OAuth-flows til protokoloperationer og observerbarhed i virksomheden. - -<details> -<summary><b>💸 1. "Jeg betaler for et dyrt abonnement, men bliver stadig afbrudt af grænser"</b></summary> - -Udviklere betaler $20-200/måned for Claude Pro, Codex Pro eller GitHub Copilot. Selv ved betaling har kvoten et loft - 5 timers brug, ugentlige grænser eller satsgrænser pr. minut. Mid-coding session, udbyderen holder op med at svare, og udvikleren mister flow og produktivitet. - -**Sådan løser OmniRoute det:** - -- **Smart 4-Tier Fallback** — Hvis abonnementskvoten løber ud, omdirigeres automatisk til API Key → Billig → Gratis uden manuel indgriben -- **Kvotesporing i realtid** — Viser tokenforbrug i realtid med nulstillingsnedtælling (5 timer, dagligt, ugentligt) -- **Multi-Account Support** - Flere konti pr. udbyder med automatisk round-robin - når den ene løber tør, skifter til den næste -- **Custom Combos** — Tilpasselige fallback-kæder med 6 balanceringsstrategier (fill-first, round-robin, P2C, tilfældig, mindst brugt, omkostningsoptimeret) -- **Codex Business Quotas** — Business/Team Workspace kvoteovervågning direkte i dashboardet - -</details> - -<details> -<summary><b>🔌 2. "Jeg skal bruge flere udbydere, men hver har en anden API"</b></summary> - -OpenAI bruger et format, Claude (Antropisk) bruger et andet, Gemini endnu et andet. Hvis en udvikler ønsker at teste modeller fra forskellige udbydere eller fallback mellem dem, skal de omkonfigurere SDK'er, ændre slutpunkter, håndtere inkompatible formater. Tilpassede udbydere (FriendLI, NIM) har ikke-standardmodelslutpunkter. - -**Sådan løser OmniRoute det:** - -- **Unified Endpoint** — En enkelt `http://localhost:20128/v1` fungerer som proxy for alle 67+ udbydere -- **Formatoversættelse** — Automatisk og gennemsigtig: OpenAI ↔ Claude ↔ Gemini ↔ Responses API -- **Responsrensning** — Fjerner ikke-standardfelter (`x_groq`, `usage_breakdown`, `service_tier`), der bryder OpenAI SDK v1.83+ -- **Rollenormalisering** — Konverterer `developer` → `system` for ikke-OpenAI-udbydere; `system` → `user` for GLM/ERNIE -- **Think Tag Extraction** — Udtrækker `<think>` blokke fra modeller som DeepSeek R1 til standardiseret `reasoning_content` -- **Structured Output for Gemini** — `json_schema` → `responseMimeType`/`responseSchema` automatisk konvertering -- **`stream` er standard til `false`** - Justerer med OpenAI-specifikationer, og undgår uventede SSE i Python/Rust/Go SDK'er - -</details> - -<details> -<summary><b>🌐 3. "Min AI-udbyder blokerer mit område/land"</b></summary> - -Udbydere som OpenAI/Codex blokerer adgang fra visse geografiske områder. Brugere får fejl som `unsupported_country_region_territory` under OAuth- og API-forbindelser. Dette er især frustrerende for udviklere fra udviklingslande. - -**Sådan løser OmniRoute det:** - -- **3-Level Proxy Config** — Konfigurerbar proxy på 3 niveauer: global (al trafik), pr. udbyder (kun én udbyder) og pr. forbindelse/nøgle -- **Farvekodede proxy-badges** — Visuelle indikatorer: 🟢 global proxy, 🟡 udbyder proxy, 🔵 forbindelsesproxy, viser altid IP'en -- **OAuth-tokenudveksling gennem proxy** — OAuth-flow går også gennem proxyen og løser `unsupported_country_region_territory` -- **Forbindelsestest via proxy** — Forbindelsestest bruger den konfigurerede proxy (ikke mere direkte omgåelse) -- **SOCKS5-understøttelse** — Fuld SOCKS5-proxy-understøttelse til udgående routing -- **TLS Fingerprint Spoofing** — Browserlignende TLS-fingeraftryk via `wreq-js` for at omgå botdetektion -- **🔏 CLI Fingerprint Matching** — Omarrangerer overskrifter og kropsfelter, så de matcher native CLI binære signaturer, hvilket drastisk reducerer risikoen for kontoflaggning. Proxy-IP'en bevares - du får både stealth **og** IP-maskering samtidigt - -</details> - -<details> -<summary><b>🆓 4. "Jeg vil bruge AI til kodning, men jeg har ingen penge"</b></summary> - -Ikke alle kan betale $20-200/måned for AI-abonnementer. Studerende, udviklere fra vækstlande, hobbyfolk og freelancere har brug for adgang til kvalitetsmodeller uden omkostninger. - -**Sådan løser OmniRoute det:** - -- **Free Tier Providers Indbygget** — Indbygget understøttelse af 100 % gratis udbydere: Qoder (5 ubegrænsede modeller via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited-modeller,-r-modeller) qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID gratis), Gemini CLI (180K tokens/måned gratis) -- **Ollama Cloud** — Cloud-hostede Ollama-modeller på `api.ollama.com` med gratis "Light usage"-niveau; brug præfikset `ollamacloud/<model>` -- **Kun gratis kombinationer** — Kæde `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/måned uden nedetid -- **NVIDIA NIM Free Access** — ~40 RPM dev-forever gratis adgang til 70+ modeller på build.nvidia.com (overgang fra kreditter til rene hastighedsgrænser) -- **Cost Optimized Strategy** — Routingstrategi, der automatisk vælger den billigste tilgængelige udbyder - -</details> - -<details> -<summary><b>🔒 5. "Jeg skal beskytte min AI-gateway mod uautoriseret adgang"</b></summary> - -Når en AI-gateway eksponeres for netværket (LAN, VPS, Docker), kan enhver med adressen forbruge udviklerens tokens/kvote. Uden beskyttelse er API'er sårbare over for misbrug, hurtig injektion og misbrug. - -**Sådan løser OmniRoute det:** - -- **API Key Management** — Generering, rotation og scoping pr. udbyder med en dedikeret `/dashboard/api-manager` side -- **Tilladelser på modelniveau** — Begræns API-nøgler til specifikke modeller (`openai/*`, jokertegnmønstre) med Tillad alt/Begræns-skift -- **API Endpoint Protection** — Kræv en nøgle til `/v1/models` og bloker specifikke udbydere fra fortegnelsen -- **Auth Guard + CSRF Protection** — Alle dashboard-ruter beskyttet med `withAuth` middleware + CSRF-tokens -- **Rate Limiter** — Per-IP hastighedsbegrænsning med konfigurerbare vinduer -- **IP-filtrering** — Tilladelsesliste/blokeringsliste til adgangskontrol -- **Prompt Injection Guard** — Sanering mod ondsindede promptmønstre -- **AES-256-GCM-kryptering** — Legitimationsoplysninger krypteret i hvile - -</details> - -<details> -<summary><b>🛑 6. "Min udbyder gik ned, og jeg mistede mit kodningsflow"</b></summary> - -AI-udbydere kan blive ustabile, returnere 5xx-fejl eller ramme midlertidige hastighedsgrænser. Hvis en udvikler afhænger af en enkelt udbyder, bliver de afbrudt. Uden strømafbrydere kan gentagne genforsøg crashe programmet. - -**Sådan løser OmniRoute det:** - -- **Circuit Breaker pr. model** — Automatisk åbning/lukning med konfigurerbare tærskler og nedkøling (Lukket/Åben/Halv-Åben), omfang pr. model for at undgå kaskadeblokke -- **Eksponentiel backoff** — Progressive forsinkelser af genforsøg -- **Anti-tordenbesætning** — Mutex + semaforbeskyttelse mod samtidige genforsøgsstorme -- **Combo Fallback Chains** — Hvis den primære udbyder fejler, falder den automatisk gennem kæden uden indgriben -- **Combo Circuit Breaker** - Deaktiverer automatisk fejlende udbydere i en kombinationskæde -- **Health Dashboard** — Oppetidsovervågning, strømafbrydertilstande, lockouts, cachestatistik, p50/p95/p99 latency - -</details> - -<details> -<summary><b>🔧 7. "Konfiguration af hvert AI-værktøj er trættende og gentagende"</b></summary> - -Udviklere bruger Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code... Hvert værktøj har brug for en anden konfiguration (API-endepunkt, nøgle, model). At omkonfigurere, når du skifter udbyder eller model, er spild af tid. - -**Sådan løser OmniRoute det:** - -- **CLI Tools Dashboard** — Dedikeret side med et-klik opsætning til Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline -- **GitHub Copilot Config Generator** — Genererer `chatLanguageModels.json` til VS-kode med bulk modelvalg -- **Onboarding Wizard** — Guidet 4-trins opsætning for førstegangsbrugere -- **Ét slutpunkt, alle modeller** — Konfigurer `http://localhost:20128/v1` én gang, få adgang til 67+ udbydere - -</details> - -<details> -<summary><b>🔑 8. "Administration af OAuth-tokens fra flere udbydere er et helvede"</b></summary> - -Claude Code, Codex, Gemini CLI, Copilot - alle bruger OAuth 2.0 med udløbende tokens. Udviklere er nødt til konstant at autentificere igen, håndtere `client_secret is missing`, `redirect_uri_mismatch` og fejl på fjernservere. OAuth på LAN/VPS er særligt problematisk. - -**Sådan løser OmniRoute det:** - -- **Automatisk tokenopdatering** — OAuth-tokens opdateres i baggrunden før udløb -- **OAuth 2.0 (PKCE) Indbygget** — Automatisk flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder -- **Multi-Account OAuth** — Flere konti pr. udbyder via JWT/ID-tokenudtrækning -- **OAuth LAN/Remote Fix** — Privat IP-detektering for `redirect_uri` + manuel URL-tilstand til fjernservere -- **OAuth Behind Nginx** — Bruger `window.location.origin` til omvendt proxykompatibilitet -- **Remote OAuth Guide** — Trin-for-trin guide til Google Cloud-legitimationsoplysninger på VPS/Docker - -</details> - -<details> -<summary><b>📊 9. "Jeg ved ikke, hvor meget jeg bruger eller hvor"</b></summary> - -Udviklere bruger flere betalte udbydere, men har ikke noget samlet syn på udgifter. Hver udbyder har sit eget faktureringsdashboard, men der er ingen konsolideret visning. Uventede omkostninger kan hobe sig op. - -**Sådan løser OmniRoute det:** - -- **Dashboard for omkostningsanalyse** — omkostningssporing pr. token og budgetstyring pr. udbyder -- **Budgetgrænser pr. niveau** — Udgiftsloft pr. niveau, der udløser automatisk fallback -- **Priskonfiguration pr. model** — Konfigurerbare priser pr. model -- **Brugsstatistik pr. API-nøgle** — Antal anmodninger og sidst anvendte tidsstempel pr. nøgle -- **Analytics Dashboard** — Statiske kort, modelbrugsdiagram, udbydertabel med succesrater og latens - -</details> - -<details> -<summary><b>🐛 10. "Jeg kan ikke diagnosticere fejl og problemer i AI-opkald"</b></summary> - -Når et opkald mislykkes, ved udvikleren ikke, om det var en takstgrænse, udløbet token, forkert format eller udbyderfejl. Fragmenterede logfiler på tværs af forskellige terminaler. Uden observerbarhed er fejlfinding trial-and-error. - -**Sådan løser OmniRoute det:** - -- **Unified Logs Dashboard** — 4 faner: Request Logs, Proxy Logs, Audit Logs, Console -- **Console Log Viewer** — Realtidsterminal-fremviser med farvekodede niveauer, automatisk rulning, søg, filtrer -- **SQLite Proxy Logs** — Vedvarende logfiler, der overlever servergenstarter -- **Oversætterlegeplads** — 4 fejlfindingstilstande: Legeplads (formatoversættelse), Chattester (rundtur), Testbænk (batch), Live Monitor (realtid) -- **Request Telemetri** — p50/p95/p99 latency + X-Request-Id-sporing -- **Filbaseret logning med rotation** — Konsolinterceptor fanger alt til JSON-log med størrelsesbaseret rotation -- **System Info Report** — `npm run system-info` genererer `system-info.txt` med dit fulde miljø (Nodeversion, OmniRoute-version, OS, CLI-værktøjer, Docker/PM2-status). Vedhæft det, når du rapporterer problemer til øjeblikkelig triage. - -</details> - -<details> -<summary><b>🏗️ 11. "Deployering og vedligeholdelse af gatewayen er kompleks"</b></summary> - -Installation, konfiguration og vedligeholdelse af en AI-proxy på tværs af forskellige miljøer (lokalt, VPS, Docker, cloud) er arbejdskrævende. Problemer som hårdkodede stier, `EACCES` på mapper, portkonflikter og cross-platform builds tilføjer friktion. - -**Sådan løser OmniRoute det:** - -- **npm global installation** — `npm install -g omniroute && omniroute` — udført -- **Docker Multi-Platform** — AMD64 + ARM64 native (Apple Silicon, AWS Graviton, Raspberry Pi) -- **Docker Compose Profiles** — `base` (ingen CLI-værktøjer) og `cli` (med Claude Code, Codex, OpenClaw) -- **Electron Desktop App** — Indbygget app til Windows/macOS/Linux med systembakke, autostart, offlinetilstand -- **Split-Port Mode** — API og Dashboard på separate porte til avancerede scenarier (omvendt proxy, containernetværk) -- **Cloud Sync** — Konfigurer synkronisering på tværs af enheder via Cloudflare Workers -- **DB Backups** — Automatisk backup, gendannelse, eksport og import af alle indstillinger - -</details> - -<details> -<summary><b>🌍 12. "Grænsefladen er kun engelsk, og mit team taler ikke engelsk"</b></summary> - -Hold i ikke-engelsktalende lande, især i Latinamerika, Asien og Europa, kæmper med grænseflader, der kun er på engelsk. Sprogbarrierer reducerer adoption og øger konfigurationsfejl. - -**Sådan løser OmniRoute det:** - -- **Dashboard i18n — 30 sprog** — Alle 500+ taster er oversat, inklusive arabisk, bulgarsk, dansk, tysk, spansk, finsk, fransk, hebraisk, hindi, ungarsk, indonesisk, italiensk, japansk, koreansk, malaysisk, hollandsk, norsk, polsk, portugisisk (PT/BR), rumænsk, russisk, ukrainsk, kinesisk, ukrainsk, kinesisk, kinesisk, ukrainsk, kinesisk, ukrainsk, kinesisk, ukrainsk, kinesisk, Vietnam, Vietnam -- **RTL-understøttelse** — Højre-til-venstre-understøttelse for arabisk og hebraisk -- **Multi-Language READMEs** — 30 komplette dokumentationsoversættelser -- **Sprogvælger** — Globusikon i overskriften til skift i realtid - -</details> - -<details> -<summary><b>🔄 13. "Jeg har brug for mere end chat — jeg har brug for indlejringer, billeder, lyd"</b></summary> - -AI er ikke bare fuldførelse af chat. Udviklere skal generere billeder, transskribere lyd, oprette indlejringer til RAG, omrangere dokumenter og moderere indhold. Hver API har et andet slutpunkt og format. - -**Sådan løser OmniRoute det:** - -- **Indlejringer** — `/v1/embeddings` med 6 udbydere og 9+ modeller -- **Billedgenerering** — `/v1/images/generations` med 10 udbydere og 20+ modeller (OpenAI, xAI, Together, Fireworks, Nebius, Hyperbolic, NanoBanana, Antigravity, SD WebUI, ComfyUI) -- **Tekst-til-video** — `/v1/videos/generations` — ComfyUI (AnimateDiff, SVD) og SD WebUI -- **Tekst-til-musik** — `/v1/music/generations` — ComfyUI (Stable Audio Open, MusicGen) -- **Lydtransskription** — `/v1/audio/transcriptions` — Whisper + Nvidia NIM, HuggingFace, Qwen3 -- **Tekst-til-tale** — `/v1/audio/speech` — ElevenLabs, Nvidia NIM, HuggingFace, Coqui, Tortoise, Qwen3, **Inworld**, **Cartesia**, **PlayHT**, + eksisterende udbydere -- **Moderationer** — `/v1/moderations` — Indholdssikkerhedstjek -- **Omrangering** — `/v1/rerank` — Omrangering af dokumentrelevans -- **Responses API** — Fuld `/v1/responses` understøttelse af Codex - -</details> - -<details> -<summary><b>🧪 14. "Jeg har ingen måde at teste og sammenligne kvalitet på tværs af modeller"</b></summary> - -Udviklere vil gerne vide, hvilken model der er bedst til deres brug - kode, oversættelse, ræsonnement - men manuel sammenligning er langsom. Der findes ingen integrerede evalueringsværktøjer. - -**Sådan løser OmniRoute det:** - -- **LLM-evalueringer** — Gyldne sæt-test med 10 forudindlæste cases, der dækker hilsner, matematik, geografi, kodegenerering, JSON-overholdelse, oversættelse, markdown, sikkerhedsafvisning -- **4 kampstrategier** — `exact`, `contains`, `regex`, `custom` (JS-funktion) -- **Translator Playground Test Bench** — Batchtest med flere input og forventede output, sammenligning på tværs af udbydere -- **Chattester** — Fuld rundtur med visuel responsgengivelse -- **Live Monitor** — Realtidsstream af alle anmodninger, der flyder gennem proxyen - -</details> - -<details> -<summary><b>📈 15. "Jeg har brug for at skalere uden at miste ydeevne"</b></summary> - -Efterhånden som forespørgselsvolumen vokser, genererer de samme spørgsmål duplikerede omkostninger uden cache. Uden idempotens, dublerede anmodninger om affaldsbehandling. Takstgrænser pr. udbyder skal overholdes. - -**Sådan løser OmniRoute det:** - -- **Semantisk cache** — To-lags cache (signatur + semantisk) reducerer omkostninger og latens -- **Request Idempotency** — 5s deduplikeringsvindue for identiske anmodninger -- **Detektion af hastighedsgrænse** — RPM pr. udbyder, min. gap og maks. samtidig sporing -- **Redigerbare hastighedsgrænser** — Konfigurerbare standardindstillinger i Indstillinger → Modstandsdygtighed med vedholdenhed -- **API Key Validation Cache** — 3-lags cache til produktionsydeevne -- **Health Dashboard med telemetri** — p50/p95/p99 latency, cachestatistik, oppetid - -</details> - -<details> -<summary><b>🤖 16. "Jeg vil kontrollere modeladfærd globalt"</b></summary> - -Udviklere, der ønsker alle svar på et bestemt sprog, med en bestemt tone, eller ønsker at begrænse ræsonnementstokens. Det er upraktisk at konfigurere dette i hvert værktøj/anmodning. - -**Sådan løser OmniRoute det:** - -- **System Prompt Injection** — Global prompt anvendt på alle anmodninger -- **Thinking Budget Validation** — Reasoning token allocation control pr. anmodning (passthrough, auto, custom, adaptive) -- **6 Routing Strategies** — Globale strategier, der bestemmer, hvordan anmodninger distribueres -- **Wildcard Router** — `provider/*` mønstre ruter dynamisk til enhver udbyder -- **Kombo Aktiver/Deaktiver Til/fra** — Skift kombinationer direkte fra dashboardet -- **Til/fra udbyder** — Aktiver/deaktiver alle forbindelser for en udbyder med et enkelt klik -- **Blokerede udbydere** — Ekskluder specifikke udbydere fra `/v1/models` fortegnelsen - -</details> - -<details> -<summary><b>🧰 17. "Jeg har brug for MCP-værktøjer som førsteklasses produktegenskaber"</b></summary> - -Mange AI-gateways afslører kun MCP som en skjult implementeringsdetalje. Teams har brug for et synligt, overskueligt operationslag. - -**Sådan løser OmniRoute det:** - -- MCP vises på fanen dashboardnavigation og endepunktsprotokol -- Dedikeret MCP-administrationsside med proces, værktøjer, omfang og revision -- Indbygget hurtigstart til `omniroute --mcp` og klient onboarding - -</details> - -<details> -<summary><b>🧠 18. "Jeg har brug for A2A-orkestrering med synkronisering + stream opgavestier"</b></summary> - -Agentarbejdsgange kræver både direkte svar og langvarig streamet udførelse med livscykluskontrol. - -**Sådan løser OmniRoute det:** - -- A2A JSON-RPC-slutpunkt (`POST /a2a`) med `message/send` og `message/stream` -- SSE-streaming med udbredelse af terminaltilstand -- Opgavelivscyklus API'er for `tasks/get` og `tasks/cancel` - -</details> - -<details> -<summary><b>🛰️ 19. "Jeg har brug for ægte MCP-processundhed, ikke gættet status"</b></summary> - -Operationelle teams skal vide, om MCP faktisk er i live, ikke kun om en API er tilgængelig. - -**Sådan løser OmniRoute det:** - -- Runtime-hjerteslagsfil med PID, tidsstempler, transport, værktøjstælling og omfangstilstand -- MCP status API, der kombinerer hjerteslag + seneste aktivitet -- UI-statuskort til proces/oppetid/hjerteslagsfriskhed - -</details> - -<details> -<summary><b>📋 20. "Jeg har brug for revisionsbar MCP-værktøjsudførelse"</b></summary> - -Når værktøjer muterer konfiguration eller udløser ops-handlinger, har teams brug for retsmedicinsk sporbarhed. - -**Sådan løser OmniRoute det:** - -- SQLite-støttet revisionslogning for MCP-værktøjsopkald -- Filtrerer efter værktøj, succes/fiasko, API-nøgle og paginering -- Dashboard revisionstabel + statistik slutpunkter til automatisering - -</details> - -<details> -<summary><b>🔐 21. "Jeg har brug for scoped MCP-tilladelser pr. integration"</b></summary> - -Forskellige klienter bør have mindst privilegeret adgang til værktøjskategorier. - -**Sådan løser OmniRoute det:** - -- 9 granulære MCP-skoper til kontrolleret værktøjsadgang -- Håndhævelse af omfang og synlighed i MCP management UI -- Sikker standardstilling for operationelt værktøj - -</details> - -<details> -<summary><b>⚙️ 22. "Jeg har brug for operationelle kontroller uden omfordeling"</b></summary> - -Teams har brug for hurtige runtime-ændringer under hændelser eller omkostningsbegivenheder. - -**Sådan løser OmniRoute det:** - -- Skift kombinationsaktivering direkte fra MCP-dashboard -- Anvend modstandsdygtighedsprofiler fra foruddefinerede politikpakker -- Nulstil strømafbrydertilstand fra det samme betjeningspanel - -</details> - -<details> -<summary><b>🔄 23. "Jeg har brug for live A2A opgave livscyklus synlighed og annullering"</b></summary> - -Uden livscyklussynlighed bliver opgavehændelser svære at triage. - -**Sådan løser OmniRoute det:** - -- Opgaveliste/filtrering efter tilstand/færdighed med paginering -- Drill-down på opgavemetadata, hændelser og artefakter -- Slutpunkt for annullering af opgave og UI-handling med bekræftelse - -</details> - -<details> -<summary><b>🌊 24. "Jeg har brug for aktive stream-metrics for A2A-indlæsning"</b></summary> - -Streaming-arbejdsgange kræver operationel indsigt i samtidighed og live-forbindelser. - -**Sådan løser OmniRoute det:** - -- Aktive stream-tællere integreret i A2A-status -- Tidsstempel for sidste opgave og tæller pr. stat -- A2A dashboard-kort til operationsovervågning i realtid - -</details> - -<details> -<summary><b>🪪 25. "Jeg har brug for standard agentopdagelse til klienter"</b></summary> - -Eksterne klienter og orkestratorer har brug for maskinlæsbare metadata til onboarding. - -**Sådan løser OmniRoute det:** - -- Agentkort afsløret på `/.well-known/agent.json` -- Evner og færdigheder vist i ledelsens brugergrænseflade -- A2A status API inkluderer opdagelsesmetadata til automatisering - -</details> - -<details> -<summary><b>🧭 26. "Jeg har brug for protokolsynlighed i produktets UX"</b></summary> - -Hvis brugere ikke kan opdage protokoloverflader, falder kvaliteten af adoption og support. - -**Sådan løser OmniRoute det:** - -- Konsolideret **Endpoints**-side med faner til Proxy, MCP, A2A og API Endpoints -- Inline service status skifter (Online/Offline) for MCP og A2A -- Links fra oversigt til dedikerede administrationsfaner - -</details> - -<details> -<summary><b>🧪 27. "Jeg har brug for end-to-end protokolvalidering med rigtige klienter"</b></summary> - -Mock-tests er ikke nok til at validere protokolkompatibilitet før frigivelse. - -**Sådan løser OmniRoute det:** - -- E2E-pakke, der starter app og bruger ægte MCP SDK-klienttransport -- A2A klient tester for opdagelse, send, stream, hent og annuller flows -- Krydstjek påstande mod MCP-revision og A2A-opgaver API'er - -</details> - -<details> -<summary><b>📡 28. "Jeg har brug for samlet observerbarhed på tværs af alle grænseflader"</b></summary> - -Opdeling af observerbarhed efter protokol skaber blinde pletter og længere MTTR. - -**Sådan løser OmniRoute det:** - -- Samlede dashboards/logfiler/analyse i ét produkt -- Health + audit + request telemetri på tværs af OpenAI, MCP og A2A lag -- Operationelle API'er til status og automatisering - -</details> - -<details> -<summary><b>💼 29. "I need one runtime for proxy + tools + agent orchestration"</b></summary> - -At køre mange separate tjenester øger driftsomkostninger og fejltilstande. - -**Sådan løser OmniRoute det:** - -- OpenAI-kompatibel proxy, MCP-server og A2A-server i én stak -- Delt godkendelse, robusthed, datalager og observerbarhed -- Ensartet politikmodel på tværs af alle interaktionsflader - -</details> - -<details> -<summary><b>🚀 30. "Jeg har brug for at sende agentiske arbejdsgange uden limkodesprawl"</b></summary> - -Hold mister hastighed, når de sammensætter flere ad-hoc-tjenester og scripts. - -**Sådan løser OmniRoute det:** - -- Ensartet slutpunktsstrategi for kunder og agenter -- Indbygget protokolstyring UI'er og røgvalideringsstier -- Produktionsklare fundamenter (sikkerhed, logning, robusthed, backup) - -</details> - -### Eksempel på Playbooks (Integrated Use Cases) - -**Playbook A: Maksimer betalt abonnement + billig backup** - -```txt -Combo: "maximize-claude" - 1. cc/claude-opus-4-6 - 2. glm/glm-4.7 - 3. if/kimi-k2-thinking - -Monthly cost: $20 + small backup spend -Outcome: higher quality, near-zero interruption -``` - -**Playbook B: Gratis kodningsstak** - -```txt -Combo: "free-forever" - 1. gc/gemini-3-flash - 2. if/kimi-k2-thinking - 3. qw/qwen3-coder-plus - -Monthly cost: $0 -Outcome: stable free coding workflow -``` - -**Playbook C: 24/7 altid aktiv reservekæde** - -```txt -Combo: "always-on" - 1. cc/claude-opus-4-6 - 2. cx/gpt-5.2-codex - 3. glm/glm-4.7 - 4. minimax/MiniMax-M2.1 - 5. if/kimi-k2-thinking - -Outcome: deep fallback depth for deadline-critical workloads -``` - -**Playbook D: Agent ops med MCP + A2A** - -```txt -1) Start MCP transport (`omniroute --mcp`) for tool-driven operations -2) Run A2A tasks via `message/send` and `message/stream` -3) Observe via /dashboard/endpoint (MCP and A2A tabs) -4) Toggle services via inline status controls -``` - ---- - -## 🆓 Start gratis — Ingen konfigurationsomkostninger - -> Konfigurer AI-kodning på få minutter til **$0/måned**. Tilslut disse gratis konti, og brug den indbyggede **Free Stack**-kombination. - -| Trin | Handling | Udbydere ulåst | -| ---- | --------------------------------------------------- | ------------------------------------------------------------------- | -| 1 | Tilslut **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — **ubegrænset** | -| 2 | Tilslut **Qoder** (Google OAuth) | kimi-k2-tænkning, qwen3-coder-plus, deepseek-r1... — **ubegrænset** | -| 3 | Tilslut **Qwen** (enhedskode) | qwen3-coder-plus, qwen3-coder-flash... — **ubegrænset** | -| 4 | Tilslut **Gemini CLI** (Google OAuth) | gemini-3-flash, gemini-2.5-pro — **180K/md gratis** | -| 5 | `/dashboard/combos` → **Gratis stak ($0)** skabelon | Round-robin alle gratis udbydere automatisk | - -**Peg enhver IDE/CLI til:** `http://localhost:20128/v1` · API-nøgle: `any-string` · Udført. - -> **Valgfri ekstra dækning (også gratis):** Groq API-nøgle (30 RPM gratis), NVIDIA NIM (40 RPM gratis, 70+ modeller), Cerebras (1M tok/dag), LongCat API-nøgle (50M tokens/dag!), Cloudflare Workers AI (10K Neurons/day, 50+ modeller). - -## ⚡ Hurtig start - -### 1) Installer og kør - -```bash -npm install -g omniroute -omniroute -``` - -> **pnpm-brugere:** Kør `pnpm approve-builds -g` efter installation for at aktivere native build-scripts, der kræves af `better-sqlite3` og `@swc/core`: -> -> ```bash -> pnpm install -g omniroute -> pnpm approve-builds -g # Select all packages → approve -> omniroute -> ``` - -Dashboard åbner kl. `http://localhost:20128`, og API-base-URL er `http://localhost:20128/v1`. - -| Kommando | Beskrivelse | -| ----------------------- | ----------------------------------------------------------- | -| `omniroute` | Start server (`PORT=20128`, API og dashboard på samme port) | -| `omniroute --port 3000` | Indstil kanonisk/API-port til 3000 | -| `omniroute --mcp` | Start MCP-server (stdio-transport) | -| `omniroute --no-open` | Åbn ikke browseren automatisk | -| `omniroute --help` | Vis hjælp | - -Valgfri split-port-tilstand: - -```bash -PORT=20128 DASHBOARD_PORT=20129 omniroute -# API: http://localhost:20128/v1 -# Dashboard: http://localhost:20129 -``` - -### 2) Tilslut udbydere og opret din API-nøgle - -1. Åbn Dashboard → `Providers` og tilslut mindst én udbyder (OAuth- eller API-nøgle). -2. Åbn Dashboard → `Endpoints` og opret en API-nøgle. -3. (Valgfrit) Åbn Dashboard → `Combos` og indstil din reservekæde. - -### 3) Peg dit kodningsværktøj til OmniRoute - -```txt -Base URL: http://localhost:20128/v1 -API Key: [copy from Endpoint page] -Model: if/kimi-k2-thinking (or any provider/model prefix) -``` - -Fungerer med Claude Code, Codex CLI, Gemini CLI, Cursor, Cline, OpenClaw, OpenCode og OpenAI-kompatible SDK'er. - -### 4) Aktiver og valider protokoller (v2.0) - -**MCP (til værktøjsdrevne operationer):** - -```bash -omniroute --mcp -``` - -Tilslut derefter din MCP-klient over `stdio` og test værktøjer som: - -- `omniroute_get_health` -- `omniroute_list_combos` - -**A2A (for agent-til-agent arbejdsgange):** - -```bash -curl http://localhost:20128/.well-known/agent.json -``` - -```bash -curl -X POST http://localhost:20128/a2a \ - -H 'content-type: application/json' \ - -d '{"jsonrpc":"2.0","id":"quickstart","method":"message/send","params":{"skill":"quota-management","messages":[{"role":"user","content":"Give me a short quota summary."}]}}' -``` - -### 5) Valider alt ende-til-ende (anbefales) - -```bash -npm run test:protocols:e2e -``` - -Denne suite validerer rigtige MCP- og A2A-klientstrømme mod en kørende app. - -### Alternativ: Kør fra kilden - -```bash -cp .env.example .env -npm install -PORT=20128 DASHBOARD_PORT=20129 NEXT_PUBLIC_BASE_URL=http://localhost:20129 npm run dev -``` - ---- - -## 🐳 Docker - -OmniRoute er tilgængelig som et offentligt Docker-billede på [Docker Hub](https://hub.docker.com/r/diegosouzapw/omniroute). - -**Hurtigt løb:** - -```bash -docker run -d \ - --name omniroute \ - --restart unless-stopped \ - -p 20128:20128 \ - -v omniroute-data:/app/data \ - diegosouzapw/omniroute:latest -``` - -**Med miljøfil:** - -```bash -# Copy and edit .env first -cp .env.example .env - -docker run -d \ - --name omniroute \ - --restart unless-stopped \ - --env-file .env \ - -p 20128:20128 \ - -v omniroute-data:/app/data \ - diegosouzapw/omniroute:latest -``` - -**Brug af Docker Compose:** - -```bash -# Base profile (no CLI tools) -docker compose --profile base up -d - -# CLI profile (Claude Code, Codex, OpenClaw built-in) -docker compose --profile cli up -d -``` - -| Billede | Tag | Størrelse | Beskrivelse | -| ------------------------ | -------- | --------- | ------------------------- | -| `diegosouzapw/omniroute` | `latest` | ~250MB | Seneste stabile udgivelse | -| `diegosouzapw/omniroute` | `1.0.3` | ~250MB | Nuværende version | - ---- - -## 🖥️ Desktop-app — offline og altid tændt - -> 🆕 **NYT!** OmniRoute er nu tilgængelig som en **native desktop-applikation** til Windows, macOS og Linux. - -Kør OmniRoute som en selvstændig desktop-app - ingen terminal, ingen browser, intet internet påkrævet for lokale modeller. Den elektronbaserede app inkluderer: - -- 🖥️ **Native Window** — Dedikeret appvindue med systembakkeintegration -- 🔄 **Auto-Start** — Start OmniRoute ved systemlogin -- 🔔 **Native notifikationer** — Få advarsler om kvoteopbrugt eller udbyderproblemer -- ⚡ **One-Click Install** — NSIS (Windows), DMG (macOS), AppImage (Linux) -- 🌐 **Offline-tilstand** — Fungerer fuldt ud offline med medfølgende server - -### Hurtig start - -```bash -# Development mode -npm run electron:dev - -# Build for your platform -npm run electron:build # Current platform -npm run electron:build:win # Windows (.exe) -npm run electron:build:mac # macOS (.dmg) — x64 & arm64 -npm run electron:build:linux # Linux (.AppImage) -``` - -### Systembakke - -Når den er minimeret, lever OmniRoute i din procesbakke med hurtige handlinger: - -- Åbn instrumentbrættet -- Skift serverport -- Afslut programmet - -📖 Fuld dokumentation: [**OMNI_TOKEN_153**](electron/README.md) - ---- - -## 💰 Prissætning på et øjeblik - -| Tier | Udbyder | Omkostninger | Kvote nulstilling | Bedst til | -| ----------------- | --------------------------- | ------------------------------- | ------------------ | ------------------------------------ | -| **💳 ABONNEMENT** | Claude Code (Pro) | 20 USD/md. | 5 timer + ugentlig | Allerede abonneret | -| | Codex (Plus/Pro) | $20-200/md. | 5 timer + ugentlig | OpenAI-brugere | -| | Gemini CLI | **GRATIS** | 180K/md + 1K/dag | Alle sammen! | -| | GitHub Copilot | $10-19/md. | Månedlig | GitHub-brugere | -| **🔑 API NØGLE** | NVIDIA NIM | **GRATIS** (dev for evigt) | ~40 RPM | 70+ åbne modeller | -| | Cerebras | **GRATIS** (1M tok/dag) | 60K TPM / 30 RPM | Verdens hurtigste | -| | Groq | **GRATIS** (30 RPM) | 14,4K RPD | Ultrahurtig Lama/Gemma | -| | DeepSeek V3.2 | 0,27 USD/1,10 USD pr. 1 mio. | Ingen | Bedste pris/kvalitet ræsonnement | -| | xAI Grok-4 Hurtig | **$0,20/$0,50 pr. 1M** 🆕 | Ingen | Hurtigste + værktøjsopkald, ultralav | -| | xAI Grok-4 (standard) | 0,20 USD/1,50 USD pr. 1 mio. 🆕 | Ingen | Fornuft flagskib fra xAI | -| | Mistral | Gratis prøveperiode + betalt | Sats begrænset | Europæisk AI | -| | OpenRouter | Betal pr. brug | Ingen | 100+ modeller aggr. | -| **💰 BILLIG** | GLM-5 (via Z.AI) 🆕 | 0,5 USD/1 mio. | Dagligt 10:00 | 128K output, nyeste flagskib | -| | GLM-4.7 | 0,6 USD/1 mio. | Dagligt 10:00 | Budget backup | -| | MiniMax M2.5 🆕 | $0,3/1 mio. input | 5-timers rullende | Begrundelse + agentopgaver | -| | MiniMax M2.1 | $0,2/1 mio. | 5-timers rullende | Billigste mulighed | -| | Kimi K2.5 (Moonshot API) 🆕 | Betal pr. brug | Ingen | Direkte Moonshot API-adgang | -| | Kimi K2 | 9 USD/md. lejlighed | 10M tokens/md. | Forudsigelige omkostninger | -| **🆓 GRATIS** | Qoder | **$0** | Ubegrænset | 5 modeller ubegrænset | -| | Qwen | **$0** | Ubegrænset | 4 modeller ubegrænset | -| | Kiro | **$0** | Ubegrænset | Claude Sonnet/Haiku (AWS Builder) | -| | LongCat Flash-Lite 🆕 | **$0** (50 mio. tok/dag 🔥) | 1 RPS | Største gratis kvote på jorden | -| | Bestøvninger AI 🆕 | **$0** (ingen nøgle nødvendig) | 1 req/15s | GPT-5, Claude, DeepSeek, Llama 4 | -| | Cloudflare Workers AI 🆕 | **$0** (10.000 neuroner/dag) | ~150 hhv/dag | 50+ modeller, global kant | -| | Scaleway AI 🆕 | **$0** (1 mio. tokens i alt) | Sats begrænset | EU/GDPR, Qwen3 235B, Lama 70B | - -> 🆕 **Nye modeller tilføjet (marts 2026):** Grok-4 Fast-familie til $0,20/$0,50/M (benchmarked ved 1143ms — 30 % hurtigere end Gemini 2.5 Flash), GLM-5 via Z.AI med 128K output, MiniMax M2.5-begrundelse, KimSeidek pr. direkte API. - -**💡 $0 Combo Stack — Den komplette gratis opsætning:** - -``` -# 🆓 Ultimate Free Stack 2026 — 11 Providers, $0 Forever -Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED -LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 -Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed -Qwen (qw/) → qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next UNLIMITED -Gemini (gemini/) → Gemini 2.5 Flash — 1,500 req/day free API key -Cloudflare AI (cf/) → Llama 70B, Gemma 3, Mistral — 10K Neurons/day -Scaleway (scw/) → Qwen3 235B, Llama 70B — 1M free tokens (EU) -Groq (groq/) → Llama/Gemma ultra-fast — 14.4K req/day -NVIDIA NIM (nvidia/) → 70+ open models — 40 RPM forever -Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day -``` - -**Nul omkostninger. Stopper aldrig med at kode.** Konfigurer dette som én OmniRoute-kombination, og alle fallbacks sker automatisk - ingen manuel skift nogensinde. - ---- - ---- - -## 🆓 Gratis modeller — hvad du faktisk får - -> Alle modeller nedenfor er **100 % gratis uden kreditkort påkrævet**. OmniRoute dirigerer automatisk mellem dem, når én kvote løber ud - kombiner dem alle for en ubrydelig kombination af $0. - -### 🔵 CLAUDE MODELLER (via Kiro — AWS Builder ID) - -| Model | Præfiks | Grænse | Satsgrænse | -| ------------------- | ------- | -------------- | ------------------------------ | -| `claude-sonnet-4.5` | `kr/` | **Ubegrænset** | Ingen rapporteret dagligt loft | -| `claude-haiku-4.5` | `kr/` | **Ubegrænset** | Ingen rapporteret dagligt loft | -| `claude-opus-4.6` | `kr/` | **Ubegrænset** | Seneste Opus via Kiro | - -### QODER MODELLER (gratis OAuth — intet kreditkort) - -| Model | Præfiks | Grænse | Satsgrænse | -| ------------------ | ------- | -------------- | ---------------------- | -| `kimi-k2-thinking` | `if/` | **Ubegrænset** | Ingen rapporteret loft | -| `qwen3-coder-plus` | `if/` | **Ubegrænset** | Ingen rapporteret loft | -| `deepseek-r1` | `if/` | **Ubegrænset** | Ingen rapporteret loft | -| `minimax-m2.1` | `if/` | **Ubegrænset** | Ingen rapporteret loft | -| `kimi-k2` | `if/` | **Ubegrænset** | Ingen rapporteret loft | - -### 🟡 QWEN-MODELLER (Enhedskodegodkendelse) - -| Model | Præfiks | Grænse | Satsgrænse | -| ------------------- | ------- | -------------- | ---------------------- | -| `qwen3-coder-plus` | `qw/` | **Ubegrænset** | No reported cap | -| `qwen3-coder-flash` | `qw/` | **Ubegrænset** | Ingen rapporteret loft | -| `qwen3-coder-next` | `qw/` | **Ubegrænset** | Ingen rapporteret loft | -| `vision-model` | `qw/` | **Ubegrænset** | Multimodal (billeder) | - -### 🟣 GEMINI CLI (Google OAuth) - -| Model | Præfiks | Grænse | Satsgrænse | -| ------------------------ | ------- | --------------------------- | -------------------- | -| `gemini-3-flash-preview` | `gc/` | **180K tok/måned** + 1K/dag | Månedlig nulstilling | -| `gemini-2.5-pro` | `gc/` | 180K/måned (delt pool) | Høj kvalitet | - -### ⚫ NVIDIA NIM (gratis API-nøgle — build.nvidia.com) - -| Tier | Daglig grænse | Satsgrænse | Noter | -| ------------ | --------------- | ----------- | ------------------------------------------------------ | -| Gratis (Dev) | Ingen token cap | **~40 RPM** | 70+ modeller; overgang til rene satsgrænser medio 2025 | - -Populære gratis modeller: `moonshotai/kimi-k2.5` (Kimi K2.5), `z-ai/glm4.7` (GLM 4.7), `deepseek-ai/deepseek-v3.2` (DeepSeek V3.2), `nvidia/llama-3.3-70b-instruct`, `deepseek/deepseek-r1` - -### ⚪ CEREBRAS (gratis API-nøgle — inference.cerebras.ai) - -| Tier | Daglig grænse | Satsgrænse | Noter | -| ------ | --------------------- | ---------------- | -------------------------------------------------- | -| Gratis | **1 mio. tokens/dag** | 60K TPM / 30 RPM | Verdens hurtigste LLM-slutning; nulstilles dagligt | - -Tilgængelig gratis: `llama-3.3-70b`, `llama-3.1-8b`, `deepseek-r1-distill-llama-70b` - -### 🔴 GROQ (gratis API-nøgle — console.groq.com) - -| Tier | Daglig grænse | Satsgrænse | Noter | -| ------ | ------------- | ---------------- | ---------------------------------------------- | -| Gratis | **14,4K RPD** | 30 RPM pr. model | Intet kreditkort; 429 på grænse, ikke opkrævet | - -Tilgængelig gratis: `llama-3.3-70b-versatile`, `gemma2-9b-it`, `mixtral-8x7b`, `whisper-large-v3` - -### 🔴 LONGCAT AI (gratis API-nøgle — longcat.chat) 🆕 - -| Model | Præfiks | Daglig gratis kvote | Noter | -| ----------------------------- | ------- | --------------------- | ------------------------------- | -| `LongCat-Flash-Lite` | `lc/` | **50 mio. tokens** 💥 | Største gratis kvote nogensinde | -| `LongCat-Flash-Chat` | `lc/` | 500.000 tokens | Multi-turn chat | -| `LongCat-Flash-Thinking` | `lc/` | 500.000 tokens | Begrundelse / CoT | -| `LongCat-Flash-Thinking-2601` | `lc/` | 500.000 tokens | Jan 2026 version | -| `LongCat-Flash-Omni-2603` | `lc/` | 500.000 tokens | Multimodal | - -> 100 % gratis, mens du er i offentlig beta. Tilmeld dig på [longcat.chat](https://longcat.chat) med e-mail eller telefon. Nulstiller dagligt 00:00 UTC. - -### 🟢 POLLINATIONS AI (ingen API-nøgle påkrævet) 🆕 - -| Model | Præfiks | Satsgrænse | Udbyder bag | -| ---------- | ------- | ---------- | ------------------ | -| `openai` | `pol/` | 1 req/15s | GPT-5 | -| `claude` | `pol/` | 1 req/15s | Antropiske Claude | -| `gemini` | `pol/` | 1 req/15s | Google Gemini | -| `deepseek` | `pol/` | 1 req/15s | DeepSeek V3 | -| `llama` | `pol/` | 1 req/15s | Meta Llama 4 Scout | -| `mistral` | `pol/` | 1 req/15s | Mistral AI | - -> ✨ **Nul friktion:** Ingen tilmelding, ingen API-nøgle. Tilføj bestøvningsudbyderen med et tomt nøglefelt, og det virker med det samme. - -### 🟠 CLOUDFLARE WORKERS AI (gratis API-nøgle — cloudflare.com) 🆕 - -| Tier | Daglige neuroner | Tilsvarende brug | Noter | -| ------ | ---------------- | -------------------------------------------- | ------------------------- | -| Gratis | **10.000** | ~150 LLM resp. / 500s lyd / 15K indlejringer | Global kant, 50+ modeller | - -Populære gratis modeller: `@cf/meta/llama-3.3-70b-instruct`, `@cf/google/gemma-3-12b-it`, `@cf/openai/whisper-large-v3-turbo` (gratis lyd!), `@cf/qwen/qwen2.5-coder-15b-instruct` - -> Kræver API-token + konto-id fra [dash.cloudflare.com](https://dash.cloudflare.com). Gem konto-id i udbyderindstillinger. - -### 🟣 SCALEWAY AI (1M gratis tokens — scaleway.com) 🆕 - -| Tier | Gratis kvote | Beliggenhed | Noter | -| ------ | ----------------- | ------------ | ----------------------------------------------- | -| Gratis | **1 mio. tokens** | 🇫🇷 Paris, EU | Intet kreditkort nødvendigt inden for grænserne | - -Tilgængelig gratis: `qwen3-235b-a22b-instruct-2507` (Qwen3 235B!), `llama-3.1-70b-instruct`, `mistral-small-3.2-24b-instruct-2506`, `deepseek-v3-0324` - -> EU/GDPR-kompatibel. Hent API-nøgle på [console.scaleway.com](https://console.scaleway.com). - -> **💡 Den ultimative gratis stak (11 udbydere, $0 for evigt):** -> -> ``` -> Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -> Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED -> LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 -> Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed -> Qwen (qw/) → qwen3-coder models UNLIMITED -> Gemini (gemini/) → Gemini 2.5 Flash — 1,500 req/day free -> Cloudflare AI (cf/) → 50+ models — 10K Neurons/day -> Scaleway (scw/) → Qwen3 235B, Llama 70B — 1M free tokens (EU) -> Groq (groq/) → Llama/Gemma — 14.4K req/day ultra-fast -> NVIDIA NIM (nvidia/) → 70+ open models — 40 RPM forever -> Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day -> ``` - -## 🎙️ Gratis transskriptionskombination - -> Transskriber enhver lyd/video for **$0** — Deepgram-emner med $200 gratis, AssemblyAI $50 fallback, Groq Whisper som ubegrænset nødbackup. - -| Udbyder | Gratis kreditter | Bedste model | Satsgrænse | -| ----------------- | ---------------------------- | ------------------------------------------- | ------------------------------------ | -| **Deepgram** | **$200 gratis** (tilmelding) | `nova-3` — bedste nøjagtighed, 30+ sprog | Ingen RPM-grænse på gratis kreditter | -| 🔵 **AssemblyAI** | **$50 gratis** (tilmelding) | `universal-3-pro` — kapitler, følelser, PII | Ingen RPM-grænse på gratis kreditter | -| 🔴 **Groq** | **Gratis for evigt** | `whisper-large-v3` — OpenAI Whisper | 30 RPM (hastighedsbegrænset) | - -**Foreslået kombination i `/dashboard/combos`:** - -``` -Name: free-transcription -Strategy: Priority -Nodes: - [1] deepgram/nova-3 → uses $200 free first - [2] assemblyai/universal-3-pro → fallback when Deepgram credits run out - [3] groq/whisper-large-v3 → free forever, emergency fallback -``` - -Derefter i `/dashboard/media` → fanen **Transskription**: upload en lyd- eller videofil → vælg dit kombinationsslutpunkt → få transskription i understøttede formater. - -## 💡 Nøglefunktioner - -OmniRoute v2.0 er bygget som en operationel platform, ikke kun en relæ-proxy. - -### 🆕 Nyt — ClawRouter-inspirerede forbedringer (mars 2026) - -| Funktion | Hvad det gør | -| ------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------- | -| ⚡ **Grok-4 Fast Family** | xAI-modeller til $0,20/$0,50/M — benchmarked 1143ms (30 % hurtigere end Gemini 2,5 Flash) | -| 🧠 **GLM-5 via Z.AI** | 128K output kontekst, $0,5/1M — nyeste flagskib fra GLM-familien | -| 🔮 **MiniMax M2.5** | Begrundelse + agentopgaver til $0,30/1M — betydelig opgradering fra M2.1 | -| 🎯 **værktøj Calling Flag per model** | Pr. model `toolCalling: true/false` i registreringsdatabasen — AutoCombo springer ikke-værktøjskompatible modeller over | -| 🌍 **Flersproget hensigtsdetektion** | PT/ZH/ES/AR nøgleord i AutoCombo scoring — bedre modelvalg for ikke-engelsk indhold | -| 📊 **Benchmark-drevne fallbacks** | Ægte p95-forsinkelse fra live-anmodninger feeds combo scoring — AutoCombo lærer af faktiske data | -| 🔁 **Anmod om deduplikation** | Indholdshash-baseret dedup-vindue — multi-agent sikker, forhindrer duplikerede debiteringer | -| 🔌 **Strategi, der kan tilsluttes router** | Udvidelig `RouterStrategy` interface — tilføj brugerdefineret routinglogik som plugins | - -### 🚀 Forrige v2.0.9+ — Playground, CLI Fingerprints & ACP - -| Funktion | Hvad det gør | -| ------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 🎮 **Model Legeplads** | Dashboard-side for at teste enhver model direkte — udbyder/model/slutpunktsvælgere, Monaco Editor, streaming, afbrydelse, timing | -| 🔏 **CLI Fingerprint Matching** | Bestilling af header/body pr. udbyder for at matche native CLI-signaturer — skift pr. udbyder i Indstillinger > Sikkerhed. **Din proxy-IP er bevaret** | -| 🤝 **ACP Support (Agent Client Protocol)** | CLI-agentopdagelse (Codex, Claude, Goose, Gemini CLI, OpenClaw + 9 mere), process spawner, `/api/acp/agents` slutpunkt | -| 🤖 **ACP Agents Dashboard** | Fejlfinding › Agenter-side — gitter med 14 agenter med installationsstatus, version, brugerdefineret agentformular til ethvert CLI-værktøj. **OpenCode**-brugere får en "Download opencode.json"-knap, der automatisk genererer en klar-til-brug-konfiguration med alle tilgængelige modeller. | -| 🔧 **Brugerdefineret model `apiFormat` Routing** | Brugerdefinerede modeller med `apiFormat: "responses"` rutes nu korrekt til Responses API-oversætteren | -| 🏢 **Codex Workspace Isolation** | Flere Codex-arbejdsområder pr. e-mail — OAuth adskiller forbindelser korrekt efter arbejdsområde-id | -| 🔄 **Automatisk opdatering af elektroner** | Desktop-app søger efter opdateringer + automatisk installation ved genstart | - -### 🤖 Agent- og protokoloperationer (v2.0) - -| Funktion | What It Does | -| ---------------------------------------- | -------------------------------------------------------------------------------------------------- | -| 🔧 **MCP-server (16 værktøjer)** | IDE/agent tools via 3 transports: stdio, SSE (`/api/mcp/sse`), Streamable HTTP (`/api/mcp/stream`) | -| 🤝 **A2A-server (JSON-RPC + SSE)** | Agent-to-agent task execution with sync and streaming flows | -| 🧭 **Konsoliderede slutpunkter-side** | Tabbed management page with Endpoint Proxy, MCP, A2A, and API Endpoints tabs | -| 🎚️ **Tjenesteaktiver/deaktiver skifter** | ON/OFF switches for MCP and A2A with settings persistence (default: OFF) | -| 🛰️ **MCP Runtime Heartbeat** | Real process status (pid, uptime, heartbeat age, transport, scope mode) | -| 📋 **MCP Audit Trail** | Filterable audit logs with success/failure and key attribution | -| 🔐 **MCP Scope Enforcement** | 9 granular scope permissions for controlled tool access | -| 📡 **A2A Task Lifecycle Management** | List/filter tasks, inspect events/artifacts, cancel running tasks | -| 📋 **Agent Card Discovery** | `/.well-known/agent.json` for client auto-discovery | -| 🧪 **Protokol E2E testsele** | Real MCP SDK + A2A client flows in `test:protocols:e2e` | -| ⚙️ **Driftskontrol** | Switch combo, apply resilience profiles, reset breakers from one control surface | - -### 🧠 Routing og intelligens - -| Feature | What It Does | -| ---------------------------------- | ------------------------------------------------------------------------ | -| 🎯 **Smart 4-Tier Fallback** | Auto-route: Subscription → API Key → Cheap → Free | -| 📊 **Real-Time Quota Tracking** | Live token count + reset countdown per provider | -| 🔄 **Format Translation** | OpenAI ↔ Claude ↔ Gemini ↔ Responses with schema-safe conversions | -| 👥 **Multi-Account Support** | Multiple accounts per provider with intelligent selection | -| 🔄 **Auto Token Refresh** | OAuth tokens refresh automatically with retry | -| 🎨 **Custom Combos** | 6 balancing strategies + fallback chain control | -| 🌐 **Wildcard Router** | `provider/*` dynamic routing | -| 🧠 **Thinking Budget Controls** | Passthrough, auto, custom, and adaptive reasoning limits | -| 🔀 **Model Aliases** | Built-in + custom model aliasing and migration safety | -| ⚡ **Background Degradation** | Route low-priority background tasks to cheaper models | -| 🧪 **Task-Aware Smart Routing** | Auto-select model by content type (coding/vision/analysis/summarization) | -| 💬 **System Prompt Injection** | Global behavior controls applied consistently | -| 📄 **Responses API Compatibility** | Full `/v1/responses` support for Codex and advanced agentic workflows | - -### 🎵 Multi-Modal APIs - -| Funktion | Hvad det gør | -| ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| 🖼️ **Billedgenerering** | `/v1/images/generations` med cloud og lokale backends | -| 📐 **Indlejringer** | `/v1/embeddings` til søgning og RAG-rørledninger | -| 🎤 **Lydtransskription** | `/v1/audio/transcriptions` — 7 udbydere (Deepgram Nova 3, AssemblyAI, Groq Whisper, HuggingFace, ElevenLabs, OpenAI, Azure), automatisk sproggenkendelse, MP4/MP3/WAV-understøttelse | -| 🔊 **Tekst-til-tale** | `/v1/audio/speech` — 10 udbydere (ElevenLabs, OpenAI, Deepgram, Cartesia, PlayHT, HuggingFace, Nvidia NIM, Inworld, Coqui, Tortoise) med korrekte fejlmeddelelser | -| 🎬 **Videogenerering** | `/v1/videos/generations` (ComfyUI + SD WebUI-arbejdsgange) | -| 🎵 **Music Generation** | `/v1/music/generations` (ComfyUI-arbejdsgange) | -| 🛡️ **Moderationer** | `/v1/moderations` sikkerhedstjek | -| 🔀 **Omrangering** | `/v1/rerank` for relevansscoring | -| 🔍 **Websøgning** 🆕 | `/v1/search` — 5 udbydere (Serper, Brave, Perplexity, Exa, Tavily), 6.500+ gratis/måned, auto-failover, cache | - -### 🛡️ Resiliens, sikkerhed og styring - -| Funktion | Hvad det gør | -| ----------------------------------- | -------------------------------------------------------------------------------------------- | -| 🔌 **Maksimalafbrydere** | Pr. model tur/restitution med tærskelkontrol | -| 🎯 **Endpoint-Aware-modeller** | Brugerdefinerede modeller erklærer understøttede slutpunkter + API-format | -| 🛡️ **Anti-tordenbesætning** | Mutex + semaforbeskyttelse ved genforsøg/rate hændelser | -| 🧠 **Semantisk + signaturcache** | Reduktion af omkostninger/latens med to cachelag | -| ⚡ **Anmod om idempotens** | Duplicate protection window | -| 🔒 **TLS Fingerprint Spoofing** | Browser-like TLS fingerprint — **reduces bot detection and account flagging** | -| 🔏 **CLI Fingerprint Matching** | Matcher native CLI-anmodningssignaturer — **reducerer forbudsrisiko, mens proxy-IP bevares** | -| 🌐 **IP-filtrering** | Tilladelsesliste/blokeringslistekontrol for udsatte implementeringer | -| 📊 **Redigerbare satsgrænser** | Konfigurerbare grænser på globalt niveau/udbyderniveau med persistens | -| 🔑 **API Key Management + Scoping** | Sikker nøgleudstedelse/rotation og model-/leverandørkontrol | -| 👁️ **Scoped API Key Reveal** 🆕 | Opt-in recovery of API keys via `ALLOW_API_KEY_REVEAL` | -| 🛡️ **Beskyttet `/models`** | Valgfri godkendelse og udbyderskjul til modelkatalog | - -### 📊 Observerbarhed og analyse - -| Funktion | Hvad det gør | -| ---------------------------------- | ------------------------------------------------------ | -| 📝 **Forespørgsel + Proxylogning** | Fuld anmodning/svar og proxy-logning | -| 📉 **Streamed Detailed Logs** 🆕 | Reconstructs SSE payload streams cleanly into the UI | -| 📋 **Unified Logs Dashboard** | Anmodning, proxy, revision og konsolvisning på én side | -| 🔍 **Anmod om telemetri** | p50/p95/p99 latens og anmodningssporing | -| 🏥 **Sundhedskontrolpanel** | Oppetid, breaker-tilstande, lockouts, cache-statistik | -| 💰 **Omkostningssporing** | Budgetkontrol og prisfastsættelse pr. model | -| 📈 **Analytiske visualiseringer** | Model-/udbyderbrugsindsigt og trendvisninger | -| 🧪 **Evalueringsramme** | Gyldne sæt-test med konfigurerbare matchstrategier | - -### ☁️ Implementering og platform - -| Funktion | Hvad det gør | -| -------------------------------------- | -------------------------------------------------------------- | -| 🌐 **Deploy hvor som helst** | Localhost, VPS, Docker, Cloud-miljøer | -| 💾 **Cloud Sync** | Synkronisering af konfiguration via cloud worker | -| 🔄 **Sikkerhedskopiering/gendannelse** | Eksport/import og gendannelsesstrømme | -| 🧙 **Onboarding Wizard** | Første kørsel guidet opsætning | -| 🔧 **CLI Tools Dashboard** | Et-klik opsætning til populære kodningsværktøjer | -| 🎮 **Model Legeplads** | Test enhver udbyder/model/slutpunkt fra dashboardet | -| 🔏 **CLI Fingerprint Toggle** | Fingeraftryksmatchning pr. udbyder i Indstillinger > Sikkerhed | -| 🌐 **i18n (30 sprog)** | Fuldt dashboard + understøttelse af docs-sprog med RTL-dækning | -| 🧹 **Ryd alle modeller** | Rydning af modelliste med ét klik i udbyderoplysninger | -| 👁️ **Sidebar Controls** 🆕 | Hide components and integrations from Appearance Settings | -| 📋 **Udgaveskabeloner** | Standardiserede GitHub-skabeloner til fejl og funktioner | -| 📂 **Tilpasset datakatalog** | `DATA_DIR` tilsidesættelse for lagerplacering | - -### Feature Deep Dive - -#### Smart fallback med praktisk omkostningskontrol - -```txt -Combo: "my-coding-stack" - 1. cc/claude-opus-4-6 - 2. nvidia/llama-3.3-70b - 3. glm/glm-4.7 - 4. if/kimi-k2-thinking -``` - -Når kvote, sats eller sundhed svigter, flytter OmniRoute automatisk til den næste kandidat uden manuel skift. - -#### Protokolstyring, der er synlig og funktionsdygtig - -- MCP + A2A kan findes i brugergrænsefladen og dokumenter (ikke skjult) -- Protokolstatus API'er afslører live driftsdata (`/api/mcp/*`, `/api/a2a/*`) -- Dashboards inkluderer handlinger for dag-2 operationer (kombinationsskift, nulstilling af breaker, annullering af opgave) - -#### Oversætter + valideringsarbejdsgang - -Oversætterområdet omfatter: - -- **Legeplads**: anmod om transformationstjek -- **Chattester**: fuld anmodning/svar tur/retur -- **Testbænk**: flere sager på én gang -- **Live Monitor**: trafikvisning i realtid - -Plus protokolvalidering med rigtige klienter via `npm run test:protocols:e2e`. - -> 📖 **[MCP Server README](open-sse/mcp-server/README.md)** — Værktøjsreference, IDE-konfigurationer og klienteksempler -> -> 📖 **[A2A Server README](src/lib/a2a/README.md)** — Færdigheder, JSON-RPC-metoder, streaming og opgavelivscyklus - -## 🧪 Evalueringer (evalueringer) - -OmniRoute inkluderer en indbygget evalueringsramme til at teste LLM-svarkvaliteten mod et gyldent sæt. Få adgang til det via **Analytics → Evals** i dashboardet. - -### Indbygget gyldent sæt - -Det forudindlæste "OmniRoute Golden Set" indeholder testcases til: - -- Hilsen, matematik, geografi, kodegenerering -- JSON format compliance, oversættelse, markdown generation -- Sikkerhedsafvisning (skadeligt indhold), optælling, boolsk logik - -### Evalueringsstrategier - -| Strategi | Beskrivelse | Eksempel | -| ---------- | ----------------------------------------------------------------------- | -------------------------------- | -| `exact` | Output skal matche nøjagtigt | `"4"` | -| `contains` | Output skal indeholde understreng (uafhængig af store og små bogstaver) | `"Paris"` | -| `regex` | Output skal matche regex-mønster | `"1.*2.*3"` | -| `custom` | Brugerdefineret JS-funktion returnerer sand/falsk | `(output) => output.length > 10` | - ---- - -## 📖 Opsætningsvejledning - -### Protokolopsætning (MCP + A2A) - -<details> -<summary><b>🧩 MCP-opsætning (modelkontekstprotokol)</b></summary> - -Start MCP-transport i stdio-tilstand: - -```bash -omniroute --mcp -``` - -Anbefalet valideringsflow: - -1. Tilslut din MCP-klient via stdio. -2. Kør `omniroute_get_health`. -3. Kør `omniroute_list_combos`. -4. Åbn `/dashboard/mcp` for at bekræfte hjerteslag, aktivitet og audit. - -Nyttige API'er til automatisering: - -- `GET /api/mcp/status` -- `GET /api/mcp/tools` -- `GET /api/mcp/audit` -- `GET /api/mcp/audit/stats` - -</details> - -<details> -<summary><b>🤝 A2A-opsætning (Agent2Agent)</b></summary> - -Opdag agenten: - -```bash -curl http://localhost:20128/.well-known/agent.json -``` - -Send en opgave: - -```bash -curl -X POST http://localhost:20128/a2a \ - -H 'content-type: application/json' \ - -d '{"jsonrpc":"2.0","id":"setup-a2a","method":"message/send","params":{"skill":"quota-management","messages":[{"role":"user","content":"Summarize quota status."}]}}' -``` - -Administrer livscyklus: - -- `GET /api/a2a/status` -- `GET /api/a2a/tasks` -- `GET /api/a2a/tasks/:id` -- `POST /api/a2a/tasks/:id/cancel` - -Operationel UI: - -- `/dashboard/a2a` for observerbarhed af opgave/tilstand/strøm og røghandlinger - -</details> - -<details> -<summary><b>🧪 End-to-end protokolvalidering</b></summary> - -Valider begge protokoller med rigtige klienter: - -```bash -npm run test:protocols:e2e -``` - -This verifies: - -- MCP SDK-klient forbinde/liste/opkald -- A2A opdagelse/send/stream/hent/annuller -- Krydstjek data i MCP-audit og A2A opgavestyring API'er - -</details> - -<details> -<summary><b>💳 Abonnementsudbydere</b></summary> - -### Claude Code (Pro/Max) - -```bash -Dashboard → Providers → Connect Claude Code -→ OAuth login → Auto token refresh -→ 5-hour + weekly quota tracking - -Models: - cc/claude-opus-4-6 - cc/claude-sonnet-4-5-20250929 - cc/claude-haiku-4-5-20251001 -``` - -**Prof tip:** Brug Opus til komplekse opgaver, Sonnet for hurtighed. OmniRoute sporer kvote pr. model! - -### OpenAI Codex (Plus/Pro) - -```bash -Dashboard → Providers → Connect Codex -→ OAuth login (port 1455) -→ 5-hour + weekly reset - -Models: - cx/gpt-5.2-codex - cx/gpt-5.1-codex-max -``` - -#### Codex Account Limit Management (5 timer + ugentlig) - -Hver Codex-konto har nu politikskift i `Dashboard -> Providers`: - -- `5h` (ON/OFF): håndhæv 5-timers vinduestærskelpolitikken. -- `Weekly` (ON/OFF): håndhæv politikken for ugentlige vinduestærskelværdier. -- Tærskeladfærd: Når et aktiveret vindue når >=90 % brug, springes den konto over. -- Rotationsadfærd: OmniRoute ruter automatisk til den næste kvalificerede Codex-konto. -- Nulstil adfærd: Når udbyderens `resetAt` tid går, bliver kontoen automatisk kvalificeret igen. - -Scenarier: - -- `5h ON` + `Weekly ON`: konto springes over, når et af vinduerne når tærsklen. -- `5h OFF` + `Weekly ON`: kun ugentlig brug kan blokere kontoen. -- `5h ON` + `Weekly OFF`: kun 5-timers brug kan blokere kontoen. -- `resetAt` bestået: Kontoen genindtræder automatisk i rotation (ingen manuel genaktivering). - -### Gemini CLI (GRATIS 180K/måned!) - -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Bedste værdi:** Kæmpe gratis niveau! Brug dette før betalte niveauer. - -### GitHub Copilot - -```bash -Dashboard → Providers → Connect GitHub -→ OAuth via GitHub -→ Monthly reset (1st of month) - -Models: - gh/gpt-5 - gh/claude-4.5-sonnet - gh/gemini-3-pro -``` - -</details> - -<details> -<summary><b>🔑 API-nøgleudbydere</b></summary> - -### NVIDIA NIM (GRATIS udvikleradgang — 70+ modeller) - -1. Tilmeld dig: [build.nvidia.com](https://build.nvidia.com) -2. Få gratis API-nøgle (1000 slutningskreditter inkluderet) -3. Dashboard → Tilføj udbyder → NVIDIA NIM: - - API-nøgle: `nvapi-your-key` - -**Modeller:** `nvidia/llama-3.3-70b-instruct`, `nvidia/mistral-7b-instruct` og mere end 50 - -**Prof tip:** OpenAI-kompatibel API — fungerer problemfrit med OmniRoutes formatoversættelse! - -### DeepSeek - -1. Tilmeld dig: [platform.deepseek.com](https://platform.deepseek.com) -2. Hent API-nøgle -3. Dashboard → Tilføj udbyder → DeepSeek - -**Modeller:** `deepseek/deepseek-chat`, `deepseek/deepseek-coder` - -### Groq (gratis niveau tilgængelig!) - -1. Tilmeld dig: [console.groq.com](https://console.groq.com) -2. Få API-nøgle (gratis niveau inkluderet) -3. Dashboard → Tilføj udbyder → Groq - -**Modeller:** `groq/llama-3.3-70b`, `groq/mixtral-8x7b` - -**Prof tip:** Ultrahurtig slutning — bedst til realtidskodning! - -### OpenRouter (100+ modeller) - -1. Tilmeld dig: [openrouter.ai](https://openrouter.ai) -2. Hent API-nøgle -3. Dashboard → Tilføj udbyder → OpenRouter - -**Modeller:** Få adgang til mere end 100 modeller fra alle større udbydere via en enkelt API-nøgle. - -</details> - -<details> -<summary><b>💰 Billige udbydere (backup)</b></summary> - -### GLM-4.7 (Daglig nulstilling, $0,6/1 mio.) - -1. Tilmeld dig: [Zhipu AI](https://open.bigmodel.cn/) -2. Hent API-nøgle fra Coding Plan -3. Dashboard → Tilføj API-nøgle: - - Udbyder: `glm` - - API-nøgle: `your-key` - -**Brug:** `glm/glm-4.7` - -**Pro-tip:** Coding Plan tilbyder 3× kvote til 1/7 pris! Nulstil dagligt 10:00. - -### MiniMax M2.1 (5 timers nulstilling, $0,20/1 mio.) - -1. Tilmeld dig: [MiniMax](https://www.minimax.io/) -2. Hent API-nøgle -3. Dashboard → Tilføj API-nøgle - -**Brug:** `minimax/MiniMax-M2.1` - -**Prof tip:** Billigste mulighed for lang sammenhæng (1M tokens)! - -### Kimi K2 ($9/måned lejlighed) - -1. Abonner: [Moonshot AI](https://platform.moonshot.ai/) -2. Hent API-nøgle -3. Dashboard → Tilføj API-nøgle - -**Brug:** `kimi/kimi-latest` - -**Prof tip:** Fast $9/måned for 10M tokens = $0,90/1M effektive omkostninger! - -</details> - -<details> -<summary><b>🆓 GRATIS udbydere (nødbackup)</b></summary> - -### Qoder (5 GRATIS modeller via OAuth) - -```bash -Dashboard → Connect Qoder -→ Qoder OAuth login -→ Unlimited usage - -Models: - if/kimi-k2-thinking - if/qwen3-coder-plus - if/glm-4.7 - if/minimax-m2 - if/deepseek-r1 -``` - -### Qwen (4 GRATIS modeller via enhedskode) - -```bash -Dashboard → Connect Qwen -→ Device code authorization -→ Unlimited usage - -Models: - qw/qwen3-coder-plus - qw/qwen3-coder-flash -``` - -### Kiro (Claude GRATIS) - -```bash -Dashboard → Connect Kiro -→ AWS Builder ID or Google/GitHub -→ Unlimited usage - -Models: - kr/claude-sonnet-4.5 - kr/claude-haiku-4.5 -``` - -</details> - -<details> -<summary><b>🎨 Opret kombinationer</b></summary> - -### Eksempel 1: Maksimer abonnement → Billig backup - -``` -Dashboard → Combos → Create New - -Name: premium-coding -Models: - 1. cc/claude-opus-4-6 (Subscription primary) - 2. glm/glm-4.7 (Cheap backup, $0.6/1M) - 3. minimax/MiniMax-M2.1 (Cheapest fallback, $0.20/1M) - -Use in CLI: premium-coding -``` - -### Eksempel 2: Kun gratis (nul omkostninger) - -``` -Name: free-combo -Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) - -Cost: $0 forever! -``` - -</details> - -<details> -<summary><b>🔧 CLI-integration</b></summary> - -### Markør IDE - -``` -Settings → Models → Advanced: - OpenAI API Base URL: http://localhost:20128/v1 - OpenAI API Key: [from OmniRoute dashboard] - Model: cc/claude-opus-4-6 -``` - -### Claude Code - -Brug siden **CLI Tools** i dashboardet til konfiguration med et enkelt klik, eller rediger `~/.claude/settings.json` manuelt. - -### Codex CLI - -```bash -export OPENAI_BASE_URL="http://localhost:20128" -export OPENAI_API_KEY="your-omniroute-api-key" - -codex "your prompt" -``` - -### OpenClaw - -**Mulighed 1 — Dashboard (anbefalet):** - -``` -Dashboard → CLI Tools → OpenClaw → Select Model → Apply -``` - -**Mulighed 2 — Manuel:** Rediger `~/.openclaw/openclaw.json`: - -```json -{ - "models": { - "providers": { - "omniroute": { - "baseUrl": "http://127.0.0.1:20128/v1", - "apiKey": "sk_omniroute", - "api": "openai-completions" - } - } - } -} -``` - -> **Bemærk:** OpenClaw fungerer kun med lokale OmniRoute. Brug `127.0.0.1` i stedet for `localhost` for at undgå problemer med IPv6-opløsning. - -### Cline / Fortsæt / RooCode - -``` -Settings → API Configuration: - Provider: OpenAI Compatible - Base URL: http://localhost:20128/v1 - API Key: [from OmniRoute dashboard] - Model: if/kimi-k2-thinking -``` - -### OpenCode - -**Trin 1:** Tilføj OmniRoute som en tilpasset udbyder: - -```bash -opencode -/connect -# Select "Other" → Enter ID: "omniroute" → Enter your OmniRoute API key -``` - -**Trin 2:** Opret/rediger `opencode.json` i dit projektrod: - -```json -{ - "$schema": "https://opencode.ai/config.json", - "provider": { - "omniroute": { - "npm": "@ai-sdk/openai-compatible", - "name": "OmniRoute", - "options": { - "baseURL": "http://localhost:20128/v1" - }, - "models": { - "cc/claude-sonnet-4-20250514": { "name": "Claude Sonnet 4" }, - "gg/gemini-2.5-pro": { "name": "Gemini 2.5 Pro" }, - "if/kimi-k2-thinking": { "name": "Kimi K2 (Free)" } - } - } - } -} -``` - -**Trin 3:** Vælg modellen i OpenCode: - -```bash -/models -# Select any OmniRoute model from the list -``` - -> **Tip:** Tilføj enhver model, der er tilgængelig i dit OmniRoute `/v1/models` slutpunkt til sektionen `models`. Brug formatet `provider/model-id` fra dit OmniRoute-dashboard. - -</details> - ---- - -## 🐛 Fejlfinding - -<details> -<summary><b>Klik for at udvide fejlfindingsvejledning</b></summary> - -**"Sprogmodellen leverede ikke beskeder"** - -- Udbyderkvote opbrugt → Tjek dashboardkvotesporing -- Løsning: Brug combo fallback eller skift til et billigere niveau - -**Satsbegrænsende** - -- Abonnementskontingent ude → Fallback til GLM/MiniMax -- Tilføj kombination: `cc/claude-opus-4-6 → glm/glm-4.7 → if/kimi-k2-thinking` - -**OAuth-token er udløbet** - -- Automatisk genopfrisket af OmniRoute -- Hvis problemerne fortsætter: Dashboard → Udbyder → Genopret forbindelse - -**Høje omkostninger** - -- Tjek brugsstatistik i Dashboard → Omkostninger -- Skift primær model til GLM/MiniMax -- Brug gratis niveau (Gemini CLI, Qoder) til ikke-kritiske opgaver - -**Dashboard/API-porte er forkerte** - -- `PORT` er den kanoniske basisport (og API-port som standard) -- `API_PORT` tilsidesætter kun OpenAI-kompatibel API-lytter -- `DASHBOARD_PORT` tilsidesætter kun dashboard/Next.js-lytter -- Indstil `NEXT_PUBLIC_BASE_URL` til dit dashboard/offentlige URL (til OAuth-tilbagekald) - -**Skysynkroniseringsfejl** - -- Bekræft `BASE_URL` peger på din løbeinstans -- Bekræft `CLOUD_URL` point til dit forventede cloud-endepunkt -- Hold `NEXT_PUBLIC_*` værdier på linje med værdier på serversiden - -**Første login virker ikke** - -- Tjek `INITIAL_PASSWORD` i `.env` -- Hvis den ikke er angivet, er reserveadgangskoden `123456` - -**Ingen anmodningslogfiler** - -- Indstil `ENABLE_REQUEST_LOGS=true` i `.env` - -**Forbindelsestest viser "Ugyldig" for OpenAI-kompatible udbydere** - -- Mange udbydere eksponerer ikke et `/models` slutpunkt -- OmniRoute v1.0.6+ inkluderer fallback-validering via chatafslutninger -- Sørg for, at basis-URL'en inkluderer suffikset `/v1` - -### 🔐 OAuth på en fjernserver - -<a name="oauth-on-a-remote-server"></a> -<a name="oauth-em-servidor-remoto"></a> - -> **⚠️ Vigtigt for brugere, der kører OmniRoute på en VPS, Docker eller enhver ekstern server** - -#### Hvorfor fejler Antigravity / Gemini CLI OAuth på fjernservere? - -**Antigravity** og **Gemini CLI**-udbyderne bruger **Google OAuth 2.0**. Google kræver, at `redirect_uri` i OAuth-flowet nøjagtigt matcher en af ​​de forudregistrerede URI'er i appens Google Cloud Console. - -OAuth-legitimationsoplysningerne, der er bundtet i OmniRoute, er registreret **kun for `localhost`**. Når du tilgår OmniRoute på en fjernserver (f.eks. `https://omniroute.myserver.com`), afviser Google godkendelsen med: - -``` -Error 400: redirect_uri_mismatch -``` - -#### Løsning: Konfigurer dine egne OAuth-legitimationsoplysninger - -Du skal oprette et **OAuth 2.0 Client ID** i Google Cloud Console med din servers URI. - -#### Trin-for-trin - -**1. Åbn Google Cloud Console** - -Gå til: [https://console.cloud.google.com/apis/credentials](https://console.cloud.google.com/apis/credentials) - -**2. Opret et nyt OAuth 2.0-klient-id** - -- Klik på **"+ Opret legitimationsoplysninger"** → **"OAuth-klient-id"** -- Ansøgningstype: **"Webapplikation"** -- Navn: alt, hvad du kan lide (f.eks. `OmniRoute Remote`) - -**3. Tilføj autoriserede omdirigerings-URI'er** - -I feltet **"Autoriserede omdirigerings-URI'er"** skal du tilføje: - -``` -https://your-server.com/callback -``` - -> Erstat `your-server.com` med din servers domæne eller IP (inkluder porten, hvis det er nødvendigt, f.eks. `http://45.33.32.156:20128/callback`). - -**4. Gem og kopier legitimationsoplysningerne** - -Efter oprettelse vil Google vise **klient-id** og **klienthemmelighed**. - -**5. Indstil miljøvariabler** - -I dine `.env` (eller Docker-miljøvariabler): - -```bash -# For Antigravity: -ANTIGRAVITY_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com -ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-your-secret - -# For Gemini CLI: -GEMINI_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com -GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -``` - -**6. Genstart OmniRoute** - -```bash -# npm: -npm run dev - -# Docker: -docker restart omniroute -``` - -**7. Prøv at oprette forbindelse igen** - -Dashboard → Udbydere → Antigravity (eller Gemini CLI) → OAuth - -Google omdirigerer nu korrekt til `https://your-server.com/callback`. - ---- - -#### Midlertidig løsning (uden brugerdefinerede legitimationsoplysninger) - -Hvis du ikke ønsker at konfigurere dine egne legitimationsoplysninger lige nu, kan du stadig bruge det **manuelle URL-flow**: - -1. OmniRoute åbner Googles autorisations-URL -2. Efter godkendelse forsøger Google at omdirigere til `localhost` (som fejler på fjernserveren) -3. **Kopiér den fulde URL** fra din browsers adresselinje (også selvom siden ikke indlæses) -4. Indsæt denne URL i feltet vist i OmniRoute-forbindelsesmodal -5. Klik på **"Forbind"** - -> Dette virker, fordi autorisationskoden i URL'en er gyldig, uanset om omdirigeringssiden er indlæst. - ---- - -<details> -<summary><b>🇧🇷 Versão em Português</b></summary> - -#### Hvad er OAuth til at gøre Antigravity / Gemini CLI falha em servidores remotos? - -Os testedores **Antigravity** og **Gemini CLI** usam **Google OAuth 2.0** for autenticação. O Google exige que a `redirect_uri` usada no fluxo OAuth seja **exatamente** uma das URIs pré-cadastradas no Google Cloud Console do aplicativo. - -Som credenciais OAuth embutidas no OmniRoute estão cadastradas **apenas para `localhost`**. Quando você acessa o OmniRoute em um servidor remoto (ex: `https://omniroute.meuservidor.com`), o Google afviser en autenticação com: - -``` -Error 400: redirect_uri_mismatch -``` - -#### Løsning: Konfigurer OAuth-tilgængelighed - -Você precisa criar um **OAuth 2.0 Client ID** ingen Google Cloud Console med en URI, der udfører denne service. - -#### Passo a passo - -**1. Adgang til Google Cloud Console** - -Abra: [https://console.cloud.google.com/apis/credentials](https://console.cloud.google.com/apis/credentials) - -**2. Crie um novo OAuth 2.0 Client ID** - -- Klik på dem **"+ Opret legitimationsoplysninger"** → **"OAuth-klient-id"** -- Tipo de aplicativo: **"Webapplikation"** -- Navn: escolha qualquer nome (eks.: `OmniRoute Remote`) - -**3. Adicione som autoriseret omdirigerings-URI** - -Ingen campo **"Autoriseret omdirigerings-URI'er"**, adicione: - -``` -https://seu-servidor.com/callback -``` - -> Substitua `seu-servidor.com` pelo domínio ou IP do seu servidor (inclua a porta se necessário, ex: `http://45.33.32.156:20128/callback`). - -**4. Salve e copy as credenciais** - -Após criar, o Google mostrará o **Client ID** e o **Client Secret**. - -**5. Konfigurer som variáveis de ambiente** - -No seu `.env` (ou nas variáveis de ambiente do Docker): - -```bash -# Para Antigravity: -ANTIGRAVITY_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com -ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret - -# Para Gemini CLI: -GEMINI_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com -GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -``` - -**6. Reinicie o OmniRoute** - -```bash -# Se usando npm: -npm run dev - -# Se usando Docker: -docker restart omniroute -``` - -**7. Tente conectar novamente** - -Dashboard → Udbydere → Antigravity (ou Gemini CLI) → OAuth - -Agora o Google redirecionará corretamente para `https://seu-servidor.com/callback` og autenticação funcionará. - ---- - -#### Midlertidig løsning (som konfigureret tiltrods próprias) - -Se não quiser criar credenciais próprias agora, ainda é possível usar o fluxo **manual de URL**: - -1. O OmniRoute abrirá en URL de autorização til Google -2. Após você autorizar, o Google tentará redirecionar para `localhost` (que falha no servidor remoto) -3. **Kopier en URL komplet** da barra de endereço do sin browser (mesmo que a página não carregue) -4. Cole essa URL no campo que aparece no modal de conexão do OmniRoute -5. Klik på **"Forbind"** - -> Este workaround funciona porque or código de autorização na URL é válido independente do redirect ter carregado or não. - -</details> - ---- - -</details> - -## 🛠️ Tech Stack - -<details> -<summary><b>Klik for at udvide tekniske stakdetaljer</b></summary> - -- **Runtime**: Node.js 18-22 LTS (⚠️ Node.js 24+ er **ikke understøttet** — `better-sqlite3` native binære filer er inkompatible) -- **Sprog**: TypeScript 5.9 — **100 % TypeScript** på tværs af `src/` og `open-sse/` (nul `any` i kernemoduler siden v2.0) -- **Framework**: Next.js 16 + React 19 + Tailwind CSS 4 -- **Database**: LowDB (JSON) + SQLite (domænetilstand + proxylogfiler + MCP-revision + routingbeslutninger) -- **Skemaer**: Zod (MCP-værktøj I/O-validering, API-kontrakter) -- **Protokoller**: MCP (stdio/HTTP) + A2A v0.3 (JSON-RPC 2.0 + SSE) -- **Streaming**: Server-sendte hændelser (SSE) -- **Auth**: OAuth 2.0 (PKCE) + JWT + API-nøgler + MCP Scoped Authorization -- **Test**: Node.js testløber + Vitest (900+ tests inklusive enhed, integration, E2E) -- **CI/CD**: GitHub-handlinger (automatisk npm-udgivelse + Docker Hub ved udgivelse) -- **Websted**: [omniroute.online](https://omniroute.online) -- **Pakke**: [npmjs.com/package/omniroute](https://www.npmjs.com/package/omniroute) -- **Docker**: [hub.docker.com/r/diegosouzapw/omniroute](https://hub.docker.com/r/diegosouzapw/omniroute) -- **Resiliens**: Circuit breaker, eksponentiel backoff, anti-tordenbesætning, TLS spoofing, auto-combo selvhelbredelse - -</details> - ---- - -## 📖 Dokumentation - -| Dokument | Beskrivelse | -| ---------------------------------------------- | ------------------------------------------------------------ | -| [User Guide](docs/USER_GUIDE.md) | Udbydere, kombinationer, CLI-integration, implementering | -| [API Reference](docs/API_REFERENCE.md) | Alle endepunkter med eksempler | -| [MCP Server](open-sse/mcp-server/README.md) | 16 MCP-værktøjer, IDE-konfigurationer, Python/TS/Go-klienter | -| [A2A Server](src/lib/a2a/README.md) | JSON-RPC 2.0 protokol, færdigheder, streaming, opgavestyring | -| [Auto-Combo Engine](docs/auto-combo.md) | 6-faktor scoring, tilstandspakker, selvhelbredende | -| [Troubleshooting](docs/TROUBLESHOOTING.md) | Almindelige problemer og løsninger | -| [Architecture](docs/ARCHITECTURE.md) | Systemarkitektur og indre | -| [Contributing](CONTRIBUTING.md) | Udviklingsopsætning og retningslinjer | -| [OpenAPI Spec](docs/openapi.yaml) | OpenAPI 3.0-specifikation | -| [Security Policy](SECURITY.md) | Sårbarhedsrapportering og sikkerhedspraksis | -| [VM Deployment](docs/VM_DEPLOYMENT_GUIDE.md) | Komplet guide: VM + nginx + Cloudflare opsætning | -| [Features Gallery](docs/FEATURES.md) | Visuel dashboard-rundvisning med skærmbilleder | -| [Release Checklist](docs/RELEASE_CHECKLIST.md) | Pre-release valideringstrin | - ---- - -## 🗺️ Køreplan - -OmniRoute har **210+ funktioner planlagt** på tværs af flere udviklingsfaser. Her er nøgleområderne: - -| Kategori | Planlagte funktioner | Højdepunkter | -| -------------------------------- | -------------------- | ---------------------------------------------------------------------------------------------------------- | -| 🧠 **Routing & intelligens** | 25+ | Routing med laveste latens, tag-baseret routing, kvote preflight, valg af P2C-konto | -| 🔒 **Sikkerhed og overholdelse** | 20+ | SSRF-hærdning, tilsløring af legitimationsoplysninger, hastighedsgrænse pr. slutpunkt, styringsnøgleomfang | -| 📊 **Observabilitet** | 15+ | OpenTelemetry-integration, kvoteovervågning i realtid, omkostningssporing pr. model | -| 🔄 **Udbyderintegrationer** | 20+ | Dynamisk modelregistrering, udbydernedkøling, multi-konto Codex, Copilot-kvoteparsing | -| ⚡ **Ydeevne** | 15+ | Dobbelt cachelag, promptcache, svarcache, streaming keepalive, batch API | -| 🌐 **Økosystem** | 10+ | WebSocket API, config hot-reload, distribueret config butik, kommerciel tilstand | - -### 🔜 Kommer snart - -- 🔗 **OpenCode-integration** — Native udbyderunderstøttelse af OpenCode AI-kodnings-IDE -- 🔗 **TRAE-integration** — Fuld understøttelse af TRAE AI-udviklingsrammen -- 📦 **Batch API** — Asynkron batchbehandling til masseanmodninger -- 🎯 **Tag-baseret Routing** — Ruteanmodninger baseret på tilpassede tags og metadata -- 💰 **Laveste omkostningsstrategi** — Vælg automatisk den billigste tilgængelige udbyder - -> 📝 Fuld funktionsspecifikationer tilgængelige i [**OMNI_TOKEN_342**](docs/new-features/) (217 detaljerede specifikationer) - ---- - -## 👥 Bidragydere - -[![Contributors](https://contrib.rocks/image?repo=diegosouzapw/OmniRoute&max=100&columns=20&anon=1)](https://github.com/diegosouzapw/OmniRoute/graphs/contributors) - -### Sådan bidrager du - -1. Fork depotet -2. Opret din funktionsgren (`git checkout -b feature/amazing-feature`) -3. Bekræft dine ændringer (`git commit -m 'Add amazing feature'`) -4. Skub til grenen (`git push origin feature/amazing-feature`) -5. Åbn en pull-anmodning - -Se [CONTRIBUTING.md](CONTRIBUTING.md) for detaljerede retningslinjer. - -### Frigiver en ny version - -```bash -# Create a release — npm publish happens automatically -gh release create v2.0.0 --title "v2.0.0" --generate-notes -``` - ---- - -## 📊 Stjernehistorie - -## Stjernekiggere over tid - -## [![Stargazers over time](https://starchart.cc/diegosouzapw/OmniRoute.svg?variant=adaptive)](https://starchart.cc/diegosouzapw/OmniRoute) - -## 🙏 Tak - -Særlig tak til **[9router](https://github.com/decolua/9router)** af **[decolua](https://github.com/decolua)** - det originale projekt, der inspirerede denne gaffel. OmniRoute bygger på det utrolige fundament med yderligere funktioner, multimodale API'er og en fuld TypeScript-omskrivning. - -Særlig tak til **[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)** — den originale Go-implementering, der inspirerede denne JavaScript-port. - ---- - -## 📄 Licens - -MIT-licens - se [LICENSE](LICENSE) for detaljer. - ---- - -<div align="center"> - <sub>Bygget med ❤️ for udviklere, der koder 24/7</sub> - <br/> - <sub><a href="https://omniroute.online">omniroute.online</a></sub> -</div> -<!-- GitHub-diskussioner aktiveret for fællesskabsspørgsmål og svar --> +👉 **[Read the Documentation here](docs/i18n/da/README.md)** diff --git a/README.fi.md b/README.fi.md index a2280cf7a4..72c81e0cb8 100644 --- a/README.fi.md +++ b/README.fi.md @@ -1,2077 +1,5 @@ -# 🚀 OmniRoute — ilmainen tekoälyyhdyskäytävä +# 🌐 OmniRoute (fi) -### Älä koskaan lopeta koodaamista. Älykäs reititys **ILMAisiin ja edullisiin tekoälymalleihin** automaattisella varalla. +The documentation has been formalized and moved to our centralized i18n structure. -_Universaali API-välityspalvelin – yksi päätepiste, yli 67 palveluntarjoajaa, nolla seisokkeja. Nyt **MCP- ja A2A**-agenttiorkesterioinnilla._ - -**Pikaviestien loppuun saattaminen • upotukset • kuvien luonti • video • musiikki • ääni • uudelleensijoitus • **verkkohaku** • MCP-palvelin • A2A-protokolla • 100 % TypeScript** - ---- - -<div align="center"> - -[![npm version](https://img.shields.io/npm/v/omniroute?color=cb3837&logo=npm)](https://www.npmjs.com/package/omniroute) -[![npm downloads](https://img.shields.io/npm/dm/omniroute?color=cb3837&logo=npm&label=npm%20downloads)](https://www.npmjs.com/package/omniroute) -[![Docker Hub](https://img.shields.io/docker/v/diegosouzapw/omniroute?label=Docker%20Hub&logo=docker&color=2496ED)](https://hub.docker.com/r/diegosouzapw/omniroute) -[![Docker Pulls](https://img.shields.io/docker/pulls/diegosouzapw/omniroute?logo=docker&color=2496ED&label=docker%20pulls)](https://hub.docker.com/r/diegosouzapw/omniroute) -[![License](https://img.shields.io/github/license/diegosouzapw/OmniRoute)](https://github.com/diegosouzapw/OmniRoute/blob/main/LICENSE) -[![Website](https://img.shields.io/badge/Website-omniroute.online-blue?logo=google-chrome&logoColor=white)](https://omniroute.online) -[![WhatsApp](https://img.shields.io/badge/WhatsApp-Community-25D366?logo=whatsapp&logoColor=white)](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) - -[🌐 Website](https://omniroute.online) • [🚀 Quick Start](#-quick-start) • [💡 Features](#-key-features) • [📖 Docs](#-documentation) • [💰 Pricing](#-pricing-at-a-glance) • [💬 WhatsApp](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) - -</div> - -🌐 **Saatavilla:** 🇺🇸 [English](README.md) | 🇧🇷 [Português (Brasil)](docs/i18n/pt-BR/README.md) | 🇪🇸 [Español](docs/i18n/es/README.md) | 🇫🇷 [Français](docs/i18n/fr/README.md) | 🇮🇹 [Italiano](docs/i18n/it/README.md) | 🇷🇺 [Русский](docs/i18n/ru/README.md) | 🇨🇳 [中文 (简体)](docs/i18n/zh-CN/README.md) | 🇩🇪 [Deutsch](docs/i18n/de/README.md) | 🇮🇳 [हिन्दी](docs/i18n/in/README.md) | 🇹🇭 [ไทย](docs/i18n/th/README.md) | 🇺🇦 [Українська](docs/i18n/uk-UA/README.md) | 🇸🇦 [العربية](docs/i18n/ar/README.md) | 🇯🇵 [日本語](docs/i18n/ja/README.md) | 🇻🇳 [Tiếng Việt](docs/i18n/vi/README.md) | 🇧🇬 [Български](docs/i18n/bg/README.md) | 🇩🇰 [Dansk](docs/i18n/da/README.md) | 🇫🇮 [Suomi](docs/i18n/fi/README.md) | 🇮🇱 [עברית](docs/i18n/he/README.md) | 🇭🇺 [Magyar](docs/i18n/hu/README.md) | 🇮🇩 [Bahasa Indonesia](docs/i18n/id/README.md) | 🇰🇷 [한국어](docs/i18n/ko/README.md) | 🇲🇾 [Bahasa Melayu](docs/i18n/ms/README.md) | 🇳🇱 [Nederlands](docs/i18n/nl/README.md) | 🇳🇴 [Norsk](docs/i18n/no/README.md) | 🇵🇹 [Português (Portugal)](docs/i18n/pt/README.md) | 🇷🇴 [Română](docs/i18n/ro/README.md) | 🇵🇱 [Polski](docs/i18n/pl/README.md) | 🇸🇰 [Slovenčina](docs/i18n/sk/README.md) | 🇸🇪 [Svenska](docs/i18n/sv/README.md) | 🇵🇭 [Filipino](docs/i18n/phi/README.md) | 🇨🇿 [Čeština](docs/i18n/cs/README.md) - ---- - -## 🆕 Mitä uutta v3.0.0:ssa - -> **Päivitetään versiosta 2.9.5?** — Katso kaikki muutokset kohdasta [full CHANGELOG](CHANGELOG.md#300--2026-03-22-release-candidate--not-yet-merged-to-main). - -| Alue | Muuta | -| ---------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 🔒 **CodeQL-suojaus** | Kiinteät 10+ CodeQL-hälytystä: polynomi-redot, epävarma satunnaisuus, shell-injektion korjaus | -| ✅ **Reitin vahvistaminen** | Kaikki 176 API-reittiä nyt validoitu Zod-skeemoilla + `validateBody()` — CI `check:route-validation:t06` -passit | -| 🐛 **omniModel Tag Leak** | Sisäiset `<omniModel>` -tunnisteet eivät enää vuoda asiakkaille SSE-suoratoistovastauksissa (#585) | -| 🔑 **Registered Keys API** | Määritä API-avaimet automaattisesti `POST /api/v1/registered-keys`:n kautta palveluntarjoaja-/tilikiintiön pakottamisen, idempotenssin, SHA-256-tallennustilan ja valinnaisen GitHub-ongelmaraportoinnin avulla | -| 👁️ **Scoped API Key Reveal** 🆕 | Opt-in recovery of API keys via `ALLOW_API_KEY_REVEAL` | -| 🎨 ** Palveluntarjoajan kuvakkeet** | Yli 130 palveluntarjoajan logoa `@lobehub/icons` (SVG) ja PNG:n kautta → yleinen varaketju | -| 🔄 **Mallin automaattinen synkronointi** | 24 tunnin ajastin ja manuaalinen käyttöliittymä synkronoidaksesi malliluettelot sisäänrakennetuille ja mukautetuille OpenAI-yhteensopiville palveluntarjoajille | -| 🌐 **OpenCode Zen/Go** | Kaksi uutta palveluntarjoajaa @kang-heewonilta PR #530:n kautta: ilmainen taso + tilaustaso `OpencodeExecutor` -palvelun kautta | -| 🐛 **Gemini CLI OAuth** | Actionable error when `GEMINI_OAUTH_CLIENT_SECRET` is missing in Docker (was cryptic Google error) | -| 🐛 **OpenCode-määritys** | `saveOpenCodeConfig()` kirjoittaa nyt oikein TOML:n kohteeseen `XDG_CONFIG_HOME` | -| 🐛 **Kiinnitetyn mallin ohitus** | `body.model` asetettu oikein arvoon `pinnedModel` kontekstivälimuistisuojauksessa | -| 🐛 **Codex/Claude-silmukka** | `tool_result` lohkot muunnetaan nyt tekstiksi loputtomien silmukoiden pysäyttämiseksi | -| 🐛 **Kirjaudun uudelleenohjaus** | Kirjautuminen ei enää jumiudu salasanan asennuksen väliin | -| 🐛 **Windows-polut** | MSYS2/Git-Bash-polut (`/c/...`) normalisoituvat automaattisesti arvoon `C:\...` | - ---- - -## 🖼️ Päähallintapaneeli - -<div align="center"> - <img src="./docs/screenshots/MainOmniRoute.png" alt="OmniRoute Dashboard" width="800"/> -</div> - ---- - -## 📸 Kojelaudan esikatselu - -<details> -<summary><b>Klikkaa nähdäksesi hallintapaneelin kuvakaappaukset</b></summary> - -| Sivu | Kuvakaappaus | -| ---------------- | ------------------------------------------------- | -| **Palvelut** | ![Providers](docs/screenshots/01-providers.png) | -| **Yhdistelmät** | ![Combos](docs/screenshots/02-combos.png) | -| **Analytics** | ![Analytics](docs/screenshots/03-analytics.png) | -| **Terveys** | ![Health](docs/screenshots/04-health.png) | -| **Kääntäjä** | ![Translator](docs/screenshots/05-translator.png) | -| **Asetukset** | ![Settings](docs/screenshots/06-settings.png) | -| **CLI-työkalut** | ![CLI Tools](docs/screenshots/07-cli-tools.png) | -| **Käyttölokit** | ![Usage](docs/screenshots/08-usage.png) | -| **Päätepisteet** | ![Endpoints](docs/screenshots/09-endpoint.png) | - -</details> - ---- - -### 🤖 Ilmainen AI Provider suosikkikoodaajillesi - -_Yhdistä mikä tahansa tekoälyllä toimiva IDE- tai CLI-työkalu OmniRouten kautta – ilmainen API-yhdyskäytävä rajoittamattomaan koodaukseen._ - - <table> - <tr> - <td align="center" width="110"> - <a href="https://github.com/openclaw/openclaw"> - <img src="./public/providers/openclaw.png" alt="OpenClaw" width="48"/><br/> - <b>OpenClaw</b> - </a><br/> - <sub>⭐ 205K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/HKUDS/nanobot"> - <img src="./public/providers/nanobot.png" alt="NanoBot" width="48"/><br/> - <b>NanoBot</b> - </a><br/> - <sub>⭐ 20.9K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/sipeed/picoclaw"> - <img src="./public/providers/picoclaw.jpg" alt="PicoClaw" width="48"/><br/> - <b>PicoClaw</b> - </a><br/> - <sub>⭐ 14.6K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/zeroclaw-labs/zeroclaw"> - <img src="./public/providers/zeroclaw.png" alt="ZeroClaw" width="48"/><br/> - <b>ZeroClaw</b> - </a><br/> - <sub>⭐ 9.9K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/nearai/ironclaw"> - <img src="./public/providers/ironclaw.png" alt="IronClaw" width="48"/><br/> - <b>IronClaw</b> - </a><br/> - <sub>⭐ 2.1K</sub> - </td> - </tr> - <tr> - <td align="center" width="110"> - <a href="https://github.com/anomalyco/opencode"> - <img src="./public/providers/opencode.svg" alt="OpenCode" width="48"/><br/> - <b>OpenCode</b> - </a><br/> - <sub>⭐ 106K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/openai/codex"> - <img src="./public/providers/codex.png" alt="Codex CLI" width="48"/><br/> - <b>Codex CLI</b> - </a><br/> - <sub>⭐ 60.8K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/anthropics/claude-code"> - <img src="./public/providers/claude.png" alt="Claude Code" width="48"/><br/> - <b>Claude Code</b> - </a><br/> - <sub>⭐ 67.3K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/google-gemini/gemini-cli"> - <img src="./public/providers/gemini-cli.png" alt="Gemini CLI" width="48"/><br/> - <b>Gemini CLI</b> - </a><br/> - <sub>⭐ 94.7K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/Kilo-Org/kilocode"> - <img src="./public/providers/kilocode.png" alt="Kilo Code" width="48"/><br/> - <b>Kilo Code</b> - </a><br/> - <sub>⭐ 15.5K</sub> - </td> - </tr> - </table> - -<sub>📡 Kaikki edustajat muodostavat yhteyden <code>http://localhost:20128/v1</code> tai <code>http://cloud.omniroute_EN_OM6/v_1_TO_OM_46/v_1_KONline. konfiguraatio, rajattomat mallit ja kiintiö</sub> - ---- - -## 🤔 Miksi OmniRoute? - -**Lopeta rahan tuhlaaminen ja rajojen ylittäminen:** - -- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Tilauskiintiö vanhenee käyttämättä joka kuukausi -- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Nopeusrajoitukset estävät sinua kesken koodaamisen -- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> kalliita sovellusliittymiä (20-50 $/kk per tarjoaja) -- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Manuaalinen vaihtaminen palveluntarjoajien välillä - -**OmniRoute ratkaisee tämän:** - -- ✅ **Maksimoi tilaukset** - Seuraa kiintiötä, käytä jokainen bitti ennen nollausta -- ✅ **Automaattinen palautus** - Tilaus → API-avain → Halpa → Ilmainen, nolla seisonta-aikaa -- ✅ **Moni tili** - Pyöreä haku tilien välillä per palveluntarjoaja -- ✅ **Universaali** - Toimii Claude Coden, Codexin, Gemini CLI:n, Cursorin, Clinen, OpenClawin ja minkä tahansa CLI-työkalun kanssa - ---- - -## 📧 Tuki - -> 💬 **Liity yhteisöömme!** [WhatsApp Group](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) — Hanki apua, jaa vinkkejä ja pysy ajan tasalla. - -- **Verkkosivusto**: [omniroute.online](https://omniroute.online) -- **GitHub**: [github.com/diegosouzapw/OmniRoute](https://github.com/diegosouzapw/OmniRoute) -- **Ongelmia**: [github.com/diegosouzapw/OmniRoute/issues](https://github.com/diegosouzapw/OmniRoute/issues) -- **WhatsApp**: [Community Group](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) -- **Osallistuminen**: Katso [CONTRIBUTING.md](CONTRIBUTING.md), avaa PR tai valitse `good first issue` -- **Alkuperäinen projekti**: [9router by decolua](https://github.com/decolua/9router) - -### 🐛 Ilmoita virheestä? - -Kun avaat ongelman, suorita system-info-komento ja liitä luotu tiedosto: - -```bash -npm run system-info -``` - -Tämä luo `system-info.txt`, jossa on Node.js-versiosi, OmniRoute-versiosi, käyttöjärjestelmätiedot, asennetut CLI-työkalut (qoder, gemini, claude, codex, antigravity, droidi jne.), Docker/PM2-tila ja järjestelmäpaketit – kaikki, mitä tarvitsemme ongelmasi nopeaan toistamiseen. Liitä tiedosto suoraan GitHub-ongelmaasi. - ---- - -## 🔄 Näin se toimii - -``` -┌─────────────┐ -│ Your CLI │ (Claude Code, Codex, Gemini CLI, OpenClaw, Cursor, Cline...) -│ Tool │ -└──────┬──────┘ - │ http://localhost:20128/v1 - ↓ -┌─────────────────────────────────────────┐ -│ OmniRoute (Smart Router) │ -│ • Format translation (OpenAI ↔ Claude) │ -│ • Quota tracking + Embeddings + Images │ -│ • Auto token refresh │ -└──────┬──────────────────────────────────┘ - │ - ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex, Gemini CLI - │ ↓ quota exhausted - ├─→ [Tier 2: API KEY] DeepSeek, Groq, xAI, Mistral, NVIDIA NIM, etc. - │ ↓ budget limit - ├─→ [Tier 3: CHEAP] GLM ($0.6/1M), MiniMax ($0.2/1M) - │ ↓ budget limit - └─→ [Tier 4: FREE] Qoder, Qwen, Kiro (unlimited) - -Result: Never stop coding, minimal cost -``` - ---- - -## 🎯 Mitä OmniRoute ratkaisee – 30 todellista kipukohtaa ja käyttötapausta - -> **Jokainen tekoälytyökaluja käyttävä kehittäjä kohtaa nämä ongelmat päivittäin.** OmniRoute luotiin ratkaisemaan ne kaikki – kustannusten ylityksistä alueellisiin lohkoihin, rikkinäisistä OAuth-virroista protokollatoimintoihin ja yrityksen havainnointikykyyn. - -<details> -<summary><b>💸 1. "Maksan kalliista tilauksesta, mutta silti rajoitukset häiritsevät minua"</b></summary> - -Kehittäjät maksavat 20–200 dollaria kuukaudessa Claude Prosta, Codex Prosta tai GitHub Copilotista. Maksamallakin kiintiöllä on katto – 5 tuntia käyttöä, viikkorajat tai minuuttirajoitukset. Koodausistunnon puolivälissä palveluntarjoaja lakkaa vastaamasta ja kehittäjä menettää virtauksen ja tuottavuuden. - -**Kuinka OmniRoute ratkaisee sen:** - -- **Smart 4-Tier Fallback** — Jos tilauskiintiö loppuu, ohjataan automaattisesti kohtaan API-avain → Halpa → Ilmainen ilman manuaalista toimenpiteitä -- **Reaaliaikainen kiintiöseuranta** - Näyttää tunnuksen kulutuksen reaaliajassa ja nollaa lähtölaskenta (5 tuntia, päivittäin, viikoittain) -- **Useiden tilien tuki** — Useita tilejä palveluntarjoajaa kohden automaattisella kierrätyksellä — kun yksi loppuu, vaihtuu seuraavaan -- **Muokatut yhdistelmät** — Muokattavat varaketjut, joissa on 6 tasapainotusstrategiaa (täytä ensin, round-robin, P2C, satunnainen, vähiten käytetty, kustannusoptimoitu) -- **Codex Business Quotat** — Yritysten/Tiimien työtilan kiintiöiden valvonta suoraan kojelaudassa - -</details> - -<details> -<summary><b>🔌 2. "Minun täytyy käyttää useita palveluntarjoajia, mutta jokaisella on eri sovellusliittymä"</b></summary> - -OpenAI käyttää yhtä muotoa, Claude (Anthropic) käyttää toista, Gemini vielä toista. Jos kehittäjä haluaa testata eri palveluntarjoajien malleja tai vaihtoehtoja niiden välillä, hänen on määritettävä SDK:t uudelleen, muutettava päätepisteitä ja käsiteltävä yhteensopimattomia muotoja. Mukautetuilla palveluntarjoajilla (FriendLI, NIM) on mallista poikkeavat päätepisteet. - -**Kuinka OmniRoute ratkaisee sen:** - -- **Yhdistetty päätepiste** — Yksi `http://localhost:20128/v1` toimii välityspalvelimena kaikille yli 67 palveluntarjoajalle -- **Format Translation** - Automaattinen ja läpinäkyvä: OpenAI ↔ Claude ↔ Gemini ↔ Responses API -- **Response Sanitization** – Poistaa standardista poikkeavat kentät (`x_groq`, `usage_breakdown`, `service_tier`), jotka rikkovat OpenAI SDK v1.83+:n -- **Roolin normalisointi** — Muuntaa `developer` → `system` muille kuin OpenAI-palveluntarjoajille; `system` → `user` GLM:lle/ERNIE:lle -- **Think Tag Extraction** - Purkaa `<think>` lohkoa malleista, kuten DeepSeek R1, standardoituun `reasoning_content` -- **Strukturoitu tulos Geminille** — `json_schema` → `responseMimeType`/`responseSchema` automaattinen muunnos -- **`stream` oletusarvo on `false`** - linjaa OpenAI-spesifikaation, välttäen odottamattomat SSE:t Python/Rust/Go SDK:issa - -</details> - -<details> -<summary><b>🌐 3. "Tekoälypalveluntarjoajani estää alueeni/maani"</b></summary> - -Palveluntarjoajat, kuten OpenAI/Codex, estävät pääsyn tietyiltä maantieteellisiltä alueilta. Käyttäjät saavat virheitä, kuten `unsupported_country_region_territory` OAuth- ja API-yhteyksien aikana. Tämä on erityisen turhauttavaa kehitysmaiden kehittäjille. - -**Kuinka OmniRoute ratkaisee sen:** - -- **3-tason välityspalvelimen määritys** – Muokattava välityspalvelin kolmella tasolla: yleinen (kaikki liikenne), palveluntarjoajakohtainen (vain yksi palveluntarjoaja) ja yhteys/avain -- **Värikoodatut välityspalvelinmerkit** — Visuaaliset ilmaisimet: 🟢 maailmanlaajuinen välityspalvelin, 🟡 tarjoajan välityspalvelin, 🔵 yhteysvälityspalvelin, joka näyttää aina IP-osoitteen -- **OAuth-tunnusten vaihto välityspalvelimen kautta** — OAuth-kulku kulkee myös välityspalvelimen kautta ja ratkaisee `unsupported_country_region_territory` -- **Yhteystestit välityspalvelimen kautta** - Yhteystestit käyttävät määritettyä välityspalvelinta (ei enää suoraa ohitusta) -- **SOCKS5-tuki** — Täysi SOCKS5-välityspalvelintuki lähtevään reititykseen -- **TLS-sormenjälkien huijaus** — Selaimen kaltainen TLS-sormenjälki `wreq-js`-toiminnon kautta robotin tunnistuksen ohittamiseksi -- **🔏 CLI Fingerprint Matching** – Järjestää otsikot ja tekstikentät uudelleen vastaamaan alkuperäisiä CLI-binääriallekirjoituksia, mikä vähentää merkittävästi tilin ilmoittamisriskiä. Välityspalvelimen IP-osoite säilyy – saat sekä salaperäisen **- että** IP-peitetyksen samanaikaisesti - -</details> - -<details> -<summary><b>🆓 4. "Haluan käyttää tekoälyä koodaukseen, mutta minulla ei ole rahaa"</b></summary> - -Kaikki eivät voi maksaa 20–200 dollaria kuukaudessa tekoälytilauksista. Opiskelijat, kehittäjät nousevista maista, harrastajat ja freelancerit tarvitsevat pääsyn laadukkaisiin malleihin ilman kustannuksia. - -**Kuinka OmniRoute ratkaisee sen:** - -- **Free Tier Providers Built-in** — Natiivituki 100 % ilmaisille palveluntarjoajille: Qoder (5 rajoittamaton mallia OAuthin kautta: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen-mallit: 4 unqlim-plus3 qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID ilmaiseksi), Gemini CLI (180 000 tokenia / kuukausi ilmaiseksi) -- **Ollama Cloud** — pilvipalvelussa isännöityjä Ollama-malleja osoitteessa `api.ollama.com` ilmaisella "kevytkäyttö"-tasolla; käytä `ollamacloud/<model>`-etuliitettä -- **Vain ilmaiset yhdistelmät** — ketju `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = 0 $/kk ilman seisokkeja -- **NVIDIA NIM Free Access** - ~40 RPM:n kehittäjä - ikuisesti ilmainen pääsy yli 70 malliin osoitteessa build.nvidia.com (siirrytään hyvityksistä puhtaisiin hintarajoihin) -- **Kustannusoptimoitu strategia** — Reititysstrategia, joka valitsee automaattisesti halvimman saatavilla olevan palveluntarjoajan - -</details> - -<details> -<summary><b>🔒 5. "Minun on suojattava tekoälyyhdyskäytäväni luvattomalta käytöltä"</b></summary> - -Kun paljastat tekoälyyhdyskäytävän verkkoon (LAN, VPS, Docker), kuka tahansa osoitteen tietävä voi kuluttaa kehittäjän tunnukset/kiintiöt. Ilman suojaa API:t ovat alttiita väärinkäytölle, nopealle injektiolle ja väärinkäytöksille. - -**Kuinka OmniRoute ratkaisee sen:** - -- **API-avainten hallinta** — Luominen, kierto ja laajuus palveluntarjoajakohtaisesti erillisellä `/dashboard/api-manager`-sivulla -- **Mallitason käyttöoikeudet** - Rajoita API-avaimet tiettyihin malleihin (`openai/*`, jokerimerkkimallit) Salli kaikki/Rajoita -kytkimellä -- **API Endpoint Protection** — Vaadi avainta kohteelle `/v1/models` ja estä tietyt palveluntarjoajat luettelosta -- **Auth Guard + CSRF-suojaus** — Kaikki kojelaudan reitit on suojattu `withAuth`-väliohjelmistolla + CSRF-tunnuksilla -- **Rate Limiter** — IP-nopeuden rajoitus konfiguroitavilla ikkunoilla -- **IP-suodatus** — Pääsynhallinnan sallittu-/estolista -- **Prompt Injection Guard** — Desinfiointi haitallisia kehotusmalleja vastaan -- **AES-256-GCM Encryption** — Tunnistetiedot on salattu lepotilassa - -</details> - -<details> -<summary><b>🛑 6. "Palvelajani kaatui ja menetin koodauskulkuni"</b></summary> - -Tekoälypalveluntarjoajat voivat muuttua epävakaiksi, palauttaa 5xx-virheitä tai saavuttaa väliaikaiset nopeusrajoitukset. Jos kehittäjä on riippuvainen yhdestä palveluntarjoajasta, se keskeytyy. Ilman katkaisijoita toistuvat uudelleenyritykset voivat kaataa sovelluksen. - -**Kuinka OmniRoute ratkaisee sen:** - -- **Malleittainen katkaisija** - Automaattinen avautuminen/sulkeminen konfiguroitavilla kynnyksillä ja jäähdytys (suljettu/auki/puoliauki), mallikohtainen, jotta vältetään peräkkäiset lohkot -- **Eksponentiaalinen peruutus** — Progressiiviset uudelleenyritysviiveet -- **Anti-Thundering Herd** — Mutex + semaforisuoja samanaikaisia myrskyjä vastaan -- **Yhdistelmävaraketjut** – Jos ensisijainen toimittaja epäonnistuu, putoaa automaattisesti ketjun läpi ilman väliintuloa -- **Combo Circuit Breaker** — Poistaa automaattisesti käytöstä vialliset palveluntarjoajat yhdistelmäketjussa -- **Health Dashboard** — käytettävyyden valvonta, katkaisijoiden tilat, lukitukset, välimuistitilastot, p50/p95/p99-viive - -</details> - -<details> -<summary><b>🔧 7. "Jokaisen tekoälytyökalun määrittäminen on työlästä ja toistuvaa"</b></summary> - -Kehittäjät käyttävät kursoria, Claude Codea, Codex CLI:tä, OpenClaw:ta, Gemini CLI:tä, Kilo Codea... Jokainen työkalu tarvitsee eri konfiguraation (API-päätepiste, avain, malli). Uudelleenmääritys toimittajaa tai mallia vaihdettaessa on ajanhukkaa. - -**Kuinka OmniRoute ratkaisee sen:** - -- **CLI Tools Dashboard** - Erillinen sivu yhdellä napsautuksella Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline -- **GitHub Copilot Config Generator** - Luo `chatLanguageModels.json` VS-koodille joukkomallin valinnalla -- **Ohjattu käyttöönottotoiminto** — Ohjattu 4-vaiheinen asennus ensikertalaisille -- **Yksi päätepiste, kaikki mallit** — Määritä `http://localhost:20128/v1` kerran, käytä 67+ palveluntarjoajaa - -</details> - -<details> -<summary><b>🔑 8. "OAuth-tunnusten hallinta useilta palveluntarjoajilta on helvettiä"</b></summary> - -Claude Code, Codex, Gemini CLI, Copilot – kaikki käyttävät OAuth 2.0:aa vanhentuvilla tunnuksilla. Kehittäjien on todennettava uudelleen jatkuvasti, käsiteltävä `client_secret is missing`-, `redirect_uri_mismatch`- ja etäpalvelimien vikoja. OAuth LAN/VPS:ssä on erityisen ongelmallinen. - -**Kuinka OmniRoute ratkaisee sen:** - -- **Automaattinen tunnuksen päivitys** - OAuth-tunnukset päivittyvät taustalla ennen vanhenemista -- **Sisäänrakennettu OAuth 2.0 (PKCE)** - Automaattinen kulku Claude Codelle, Codexille, Gemini CLI:lle, Copilotille, Kirolle, Qwenille, Qoderille -- **Multi-Account OAuth** - Useita tilejä palveluntarjoajaa kohden JWT/ID-tunnuksen purkamisen kautta -- **OAuth LAN/Remote Fix** - Yksityinen IP-tunnistus kohteelle `redirect_uri` + manuaalinen URL-tila etäpalvelimille -- **OAuth Nginxin takana** - Käyttää `window.location.origin` käänteisen välityspalvelimen yhteensopivuutta varten -- **OAuth-etäopas** — Vaiheittainen opas Google Cloud -kirjautumistiedoille VPS/Dockerissa - -</details> - -<details> -<summary><b>📊 9. "En tiedä kuinka paljon kulutan tai minne"</b></summary> - -Kehittäjät käyttävät useita maksullisia palveluntarjoajia, mutta heillä ei ole yhtenäistä näkemystä kuluttamisesta. Jokaisella palveluntarjoajalla on oma laskutuksen hallintapaneeli, mutta yhdistettyä näkymää ei ole. Odottamattomat kustannukset voivat kasaantua. - -**Kuinka OmniRoute ratkaisee sen:** - -- **Cost Analytics Dashboard** – Token-kohtainen kustannusseuranta ja budjetin hallinta palveluntarjoajakohtaisesti -- **Tasokohtaiset budjettirajat** – Tasokohtainen kulutuskatto, joka laukaisee automaattisen varauksen -- **Malleittainen hinnoittelu** — Muokattavat hinnat mallikohtaisesti -- **Käyttötilastot API-avainta kohti** — Pyyntömäärä ja viimeksi käytetty aikaleima avainta kohti -- **Analytics Dashboard** - Tilastokortit, mallin käyttökaavio, toimittajataulukko onnistumisprosenteilla ja viiveellä - -</details> - -<details> -<summary><b>🐛 10. "En voi diagnosoida virheitä ja ongelmia tekoälykutsuissa"</b></summary> - -Kun puhelu epäonnistuu, kehittäjä ei tiedä, oliko kyseessä nopeusrajoitus, vanhentunut tunnus, väärä muoto vai palveluntarjoajan virhe. Sirpaloituneet lokit eri terminaaleissa. Ilman havaittavuutta virheenkorjaus on yrityksen ja erehdysten menetelmää. - -**Kuinka OmniRoute ratkaisee sen:** - -- **Yhdistettyjen lokien hallintapaneeli** - 4 välilehteä: pyyntölokit, välityspalvelimen lokit, tarkastuslokit, konsoli -- **Console Log Viewer** - Reaaliaikainen päätetyylinen katseluohjelma värikoodatuilla tasoilla, automaattinen vieritys, haku, suodatin -- **SQLite-välityspalvelimen lokit** — Pysyvät lokit, jotka kestävät palvelimen uudelleenkäynnistyksen -- **Kääntäjän leikkikenttä** — 4 virheenkorjaustilaa: Playground (muodon käännös), Chat Tester (meno-paluu), testipenkki (erä), Live Monitor (reaaliaikainen) -- **Pyyntötelemetria** — p50/p95/p99-latenssi + X-Request-Id-seuranta -- **Tiedostopohjainen kirjaaminen rotaatiolla** – Konsolin sieppaaja tallentaa kaiken JSON-lokiin kokoperusteisella kierrolla -- **Järjestelmätietoraportti** — `npm run system-info` luo `system-info.txt` koko ympäristössäsi (Node-versio, OmniRoute-versio, käyttöjärjestelmä, CLI-työkalut, Docker/PM2-tila). Liitä se, kun ilmoitat ongelmista välittömässä triagessa. - -</details> - -<details> -<summary><b>🏗️ 11. "Yhdyskäytävän käyttöönotto ja ylläpito on monimutkaista"</b></summary> - -AI-välityspalvelimen asentaminen, määrittäminen ja ylläpito eri ympäristöissä (paikallinen, VPS, Docker, pilvi) on työvoimavaltaista. Ongelmat, kuten kovakoodatut polut, `EACCES` hakemistoissa, porttiristiriidat ja eri alustojen koontiversiot lisäävät kitkaa. - -**Kuinka OmniRoute ratkaisee sen:** - -- **npm yleinen asennus** — `npm install -g omniroute && omniroute` — valmis -- **Docker Multi-Platform** - AMD64 + ARM64 natiivi (Apple Silicon, AWS Graviton, Raspberry Pi) -- **Docker Compose -profiilit** — `base` (ei CLI-työkaluja) ja `cli` (Claude Coden, Codexin, OpenClawn kanssa) -- **Electron Desktop App** - Natiivisovellus Windowsille/macOS:lle/Linuxille, jossa ilmaisinalue, automaattinen käynnistys, offline-tila -- **Split-Port Mode** — API ja Dashboard erillisissä porteissa edistyneille skenaarioille (käänteinen välityspalvelin, konttiverkko) -- **Cloud Sync** - Määritä synkronointi laitteiden välillä Cloudflare Workersin kautta -- **DB-varmuuskopiot** — Kaikkien asetusten automaattinen varmuuskopiointi, palautus, vienti ja tuonti - -</details> - -<details> -<summary><b>🌍 12. "Käyttöliittymä on vain englanninkielinen ja tiimini ei puhu englantia"</b></summary> - -Ryhmät muissa kuin englanninkielisissä maissa, erityisesti Latinalaisessa Amerikassa, Aasiassa ja Euroopassa, kamppailevat vain englanninkielisten käyttöliittymien kanssa. Kielimuurit vähentävät käyttöönottoa ja lisäävät konfigurointivirheitä. - -**Kuinka OmniRoute ratkaisee sen:** - -- **Dashboard i18n — 30 kieltä** — Kaikki yli 500 näppäintä käännetty mukaan lukien arabia, bulgaria, tanska, saksa, espanja, suomi, ranska, heprea, hindi, unkari, indonesia, italia, japani, korea, malaiji, hollanti, norja, puola, portugali (PT/BR), romania, thai, venäjä, slovakki, ruotsi, vietnam, filippiini -- **RTL-tuki** — Tuki oikealta vasemmalle arabian ja heprean kielelle -- **Multi-Language READMEs** - 30 täydellistä dokumentaation käännöstä -- **Kielen valitsin** — Maapallokuvake otsikossa reaaliaikaista vaihtoa varten - -</details> - -<details> -<summary><b>🔄 13. "Tarvitsen muutakin kuin chatin – tarvitsen upotuksia, kuvia, ääntä"</b></summary> - -Tekoäly ei ole vain chatin loppuun saattamista. Kehittäjien on luotava kuvia, litteroitava ääni, luotava upotuksia RAG:lle, järjestettävä asiakirjat uudelleen ja valvottava sisältöä. Jokaisella API:lla on eri päätepiste ja muoto. - -**Kuinka OmniRoute ratkaisee sen:** - -- **Upotukset** — `/v1/embeddings` 6 toimittajalla ja 9+ mallilla -- **Kuvan luominen** — `/v1/images/generations` 10 palveluntarjoajan ja 20+ mallin kanssa (OpenAI, xAI, Together, Fireworks, Nebius, Hyperbolic, NanoBanana, Antigravity, SD WebUI, ComfyUI) -- **Tekstistä videoon** — `/v1/videos/generations` — ComfyUI (AnimateDiff, SVD) ja SD WebUI -- **Tekstistä musiikiksi** — `/v1/music/generations` — ComfyUI (Stable Audio Open, MusicGen) -- **Äänitranskriptio** — `/v1/audio/transcriptions` — Whisper + Nvidia NIM, HuggingFace, Qwen3 -- **Tekstistä puheeksi** — `/v1/audio/speech` — ElevenLabs, Nvidia NIM, HuggingFace, Coqui, Tortoise, Qwen3, **Inworld**, **Cartesia**, **PlayHT** ja olemassa olevat palveluntarjoajat -- **Moderointi** - `/v1/moderations` - Sisällön turvallisuustarkastukset -- **Uudelleensijoitus** - `/v1/rerank` - Asiakirjan osuvuuden uudelleensijoitus -- **Responses API** - Täysi `/v1/responses` tuki Codexille - -</details> - -<details> -<summary><b>🧪 14. "Minulla ei ole tapaa testata ja vertailla eri mallien laatua"</b></summary> - -Kehittäjät haluavat tietää, mikä malli sopii parhaiten heidän käyttötapaukseensa – koodi, käännös, päättely – mutta manuaalinen vertailu on hidasta. Integroituja arviointityökaluja ei ole olemassa. - -**Kuinka OmniRoute ratkaisee sen:** - -- **LLM-arvioinnit** — Golden set -testaus, jossa on 10 esiladattua tapausta, jotka kattavat tervehdyksen, matematiikan, maantieteen, koodin luomisen, JSON-yhteensopivuuden, käännöksen, merkinnän, turvallisuuden kieltämisen -- **4 ottelustrategiaa** — `exact`, `contains`, `regex`, `custom` (JS-toiminto) -- **Translator Playground Test Bench** - Erätestaus useilla tuloilla ja odotetulla lähdöllä, tarjoajien välinen vertailu -- **Chat Tester** - Täysi edestakainen matka visuaalisen vasteen renderöinnillä -- **Live Monitor** — Reaaliaikainen tietovirta kaikista välityspalvelimen kautta kulkevista pyynnöistä - -</details> - -<details> -<summary><b>📈 15. "Minun täytyy skaalata suorituskykyä menettämättä"</b></summary> - -Pyynnön määrän kasvaessa samat kysymykset aiheuttavat päällekkäisiä kustannuksia välimuistiin tallentamatta. Without idempotency, duplicate requests waste processing. Palveluntarjoajakohtaisia ​​hintarajoja on noudatettava. - -**Kuinka OmniRoute ratkaisee sen:** - -- **Semanttinen välimuisti** – Kaksitasoinen välimuisti (allekirjoitus + semanttinen) vähentää kustannuksia ja viivettä -- **Request Idempotency** — 5 sekunnin deduplikaatioikkuna identtisille pyynnöille -- **nopeusrajoituksen tunnistus** – palveluntarjoajakohtainen RPM, pienin väli ja suurin samanaikainen seuranta -- **Muokattavat nopeusrajoitukset** - Määritettävissä olevat oletusasetukset kohdassa Asetukset → Resilience with persistence -- **API Key Validation Cache** – 3-tasoinen välimuisti tuotannon suorituskykyä varten -- **Health Dashboard telemetrialla** - p50/p95/p99 latenssi, välimuistitilastot, käyttöaika - -</details> - -<details> -<summary><b>🤖 16. "Haluan hallita mallin käyttäytymistä maailmanlaajuisesti"</b></summary> - -Kehittäjät, jotka haluavat kaikki vastaukset tietyllä kielellä, tietyllä sävyllä tai haluavat rajoittaa perusteluita. Tämän määrittäminen jokaiseen työkaluun/pyyntöön on epäkäytännöllistä. - -**Kuinka OmniRoute ratkaisee sen:** - -- **Järjestelmäkehotteen lisäys** — Yleinen kehote koskee kaikkia pyyntöjä -- **Thinking Budget Validation** – perustelutunnisteen allokoinnin ohjaus pyyntöä kohti (läpivienti, automaattinen, mukautettu, mukautuva) -- **6 reititysstrategiaa** — Globaalit strategiat, jotka määrittävät pyyntöjen jakautumisen -- **Wildcard Router** - `provider/*` kuviot reitittävät dynaamisesti mille tahansa palveluntarjoajalle -- **Yhdistelmä käyttöön/pois käytöstä** - Vaihda yhdistelmät suoraan kojelaudalta -- **Provider Toggle** — Ota käyttöön tai poista käytöstä kaikki palveluntarjoajan yhteydet yhdellä napsautuksella -- **Estetyt palveluntarjoajat** - Sulje tietyt palveluntarjoajat pois `/v1/models`-listalta - -</details> - -<details> -<summary><b>🧰 17. "Tarvitsen MCP-työkaluja ensiluokkaisina tuoteominaisuuksina"</b></summary> - -Monet tekoälyyhdyskäytävät paljastavat MCP:n vain piilotettuna toteutustietona. Tiimit tarvitsevat näkyvän, hallittavan toimintakerroksen. - -**Kuinka OmniRoute ratkaisee sen:** - -- MCP näkyy kojelaudan navigointi- ja päätepisteprotokolla-välilehdessä -- Erillinen MCP-hallintasivu, jossa on prosessit, työkalut, laajuudet ja tarkastus -- Sisäänrakennettu pika-aloitus `omniroute --mcp` ja asiakkaan käyttöönottoon - -</details> - -<details> -<summary><b>🧠 18. "Tarvitsen A2A-orkesterin synkronointi- ja suoratoistopolkuilla"</b></summary> - -Agenttityönkulut tarvitsevat sekä suoria vastauksia että pitkäkestoista suoratoistoa elinkaariohjauksella. - -**Kuinka OmniRoute ratkaisee sen:** - -- A2A JSON-RPC -päätepiste (`POST /a2a`) ja `message/send` ja `message/stream` -- SSE-suoratoisto päätetilan etenemisellä -- Tehtävän elinkaaren sovellusliittymät kohteille `tasks/get` ja `tasks/cancel` - -</details> - -<details> -<summary><b>🛰️ 19. "Tarvitsen todellisen MCP-prosessin kunnon, en arvattua tilaa"</b></summary> - -Operatiivisten tiimien on tiedettävä, onko MCP todella elossa, ei vain sitä, onko API tavoitettavissa. - -**Kuinka OmniRoute ratkaisee sen:** - -- Ajonaikainen syketiedosto, jossa on PID, aikaleimat, kuljetus, työkalujen määrä ja laajuustila -- MCP-tilan API, joka yhdistää sykkeen + viimeaikaisen toiminnan -- Käyttöliittymän tilakortit prosessin / käytettävyyden / sydämenlyöntien tuoreudelle - -</details> - -<details> -<summary><b>📋 20. "Tarvitsen tarkastettavan MCP-työkalun suorituksen"</b></summary> - -Kun työkalut muuttavat määrityksiä tai käynnistävät operaatioita, tiimit tarvitsevat rikosteknistä jäljitettävyyttä. - -**Kuinka OmniRoute ratkaisee sen:** - -- SQLite-tuettu tarkastusloki MCP-työkalukutsuille -- Suodattimet työkalun, onnistumisen/epäonnistumisen, API-avaimen ja sivutuksen mukaan -- Kojelaudan tarkastustaulukko + tilastopäätepisteet automatisointia varten - -</details> - -<details> -<summary><b>🔐 21. "Tarvitsen laajennetut MCP-oikeudet integraatiota kohti"</b></summary> - -Eri asiakkailla tulisi olla vähiten käyttöoikeus työkaluluokkiin. - -**Kuinka OmniRoute ratkaisee sen:** - -- 9 rakeista MCP-skooppia ohjattua työkalujen käyttöä varten -- Laajuuden valvonta ja näkyvyys MCP-hallintaliittymässä -- Turvallinen oletusasento käyttötyökaluille - -</details> - -<details> -<summary><b>⚙️ 22. "Tarvitsen toiminnan ohjaimia ilman uudelleensijoittamista"</b></summary> - -Tiimit tarvitsevat nopeita ajonaikaisia muutoksia tapausten tai kustannustapahtumien aikana. - -**Kuinka OmniRoute ratkaisee sen:** - -- Vaihda yhdistelmäaktivointia suoraan MCP-kojelaudalta -- Käytä joustavuusprofiileja ennalta määritetyistä käytäntöpaketeista -- Nollaa katkaisijan tila samasta käyttöpaneelista - -</details> - -<details> -<summary><b>🔄 23. "Tarvitsen live-A2A-tehtävän elinkaaren näkyvyyden ja peruutuksen"</b></summary> - -Ilman elinkaaren näkyvyyttä tehtäväkohtauksista tulee vaikeasti luokiteltuja. - -**Kuinka OmniRoute ratkaisee sen:** - -- Tehtäväluettelo / suodatus tilan / taitojen mukaan ja sivutus -- Tehtävän metatietojen, tapahtumien ja artefaktien yksityiskohdat -- Tehtävän peruutuksen päätepiste ja käyttöliittymätoiminto vahvistuksen kanssa - -</details> - -<details> -<summary><b>🌊 24. "Tarvitsen aktiivisia suoratoistotietoja A2A-kuormitukseen"</b></summary> - -Streaming-työnkulut edellyttävät toiminnallista tietoa samanaikaisuudesta ja reaaliaikaisista yhteyksistä. - -**Kuinka OmniRoute ratkaisee sen:** - -- Aktiiviset virtalaskurit integroitu A2A-tilaan -- Viimeisen tehtävän aikaleima ja tilakohtaiset määrät -- A2A kojelautakortit reaaliaikaiseen toimintojen seurantaan - -</details> - -<details> -<summary><b>🪪 25. "Tarvitsen asiakkaille vakioagentin haun"</b></summary> - -Ulkoiset asiakkaat ja orkesterit tarvitsevat koneellisesti luettavaa metadataa käyttöönottoa varten. - -**Kuinka OmniRoute ratkaisee sen:** - -- Agenttikortti esillä osoitteessa `/.well-known/agent.json` -- Johdon käyttöliittymässä näkyvät valmiudet ja taidot -- A2A status API sisältää etsintämetatiedot automatisointia varten - -</details> - -<details> -<summary><b>🧭 26. "Tarvitsen protokollan löydettävyyden tuotteessa UX"</b></summary> - -Jos käyttäjät eivät löydä protokollapintoja, käyttöönoton ja tuen laatu heikkenee. - -**Kuinka OmniRoute ratkaisee sen:** - -- Yhdistetty **Päätepisteet**-sivu, jossa on välilehdet välityspalvelin-, MCP-, A2A- ja API-päätepisteille -- Inline-palvelun tila vaihtuu (Online/Offline) MCP:lle ja A2A:lle -- Linkit yleiskatsauksesta erityisiin hallintavälilehtiin - -</details> - -<details> -<summary><b>🧪 27. "Tarvitsen päästä päähän -protokollan validoinnin oikeiden asiakkaiden kanssa"</b></summary> - -Valetestit eivät riitä vahvistamaan protokollan yhteensopivuutta ennen julkaisua. - -**Kuinka OmniRoute ratkaisee sen:** - -- E2E-paketti, joka käynnistää sovelluksen ja käyttää todellista MCP SDK -asiakassiirtoa -- A2A-asiakas testaa virtojen löytämistä, lähettämistä, suoratoistoa, vastaanottamista ja peruuttamista -- Tarkista väitteet MCP-tarkastuksen ja A2A-tehtävien sovellusliittymien kanssa - -</details> - -<details> -<summary><b>📡 28. "Tarvitsen yhtenäisen havainnoinnin kaikissa liitännöissä"</b></summary> - -Havainnon jakaminen protokollan mukaan luo kuolleita kulmia ja pidemmän MTTR:n. - -**Kuinka OmniRoute ratkaisee sen:** - -- Yhdistetyt kojelaudat/lokit/analytiikka yhdessä tuotteessa -- Terveys + auditointi + pyyntö telemetria OpenAI-, MCP- ja A2A-tasoilla -- Toiminnalliset sovellusliittymät tilaa ja automaatiota varten - -</details> - -<details> -<summary><b>💼 29. "Tarvitsen yhden suoritusajan välityspalvelimelle + työkaluille + agentin orkestroinnille"</b></summary> - -Useiden erillisten palvelujen suorittaminen lisää käyttökustannuksia ja vikatiloja. - -**Kuinka OmniRoute ratkaisee sen:** - -- OpenAI-yhteensopiva välityspalvelin, MCP-palvelin ja A2A-palvelin yhdessä pinossa -- Jaettu todennus, joustavuus, tietovarasto ja havaittavuus -- Yhdenmukainen toimintamalli kaikilla vuorovaikutuspinnoilla - -</details> - -<details> -<summary><b>🚀 30. "Minun on lähetettävä agenttityönkulkuja ilman liimakoodin leviämistä"</b></summary> - -Tiimit menettävät nopeutta yhdistäessään useita ad-hoc-palveluita ja skriptejä. - -**Kuinka OmniRoute ratkaisee sen:** - -- Yhtenäinen päätepistestrategia asiakkaille ja edustajille -- Sisäänrakennetut protokollien hallinnan käyttöliittymät ja savun vahvistuspolut -- Tuotantovalmis perusta (turvallisuus, puunkorjuu, joustavuus, varmuuskopiointi) - -</details> - -### Esimerkkiohjekirjat (integroidut käyttötapaukset) - -**Ohjekirja A: maksimoi maksullinen tilaus + halpa varmuuskopio** - -```txt -Combo: "maximize-claude" - 1. cc/claude-opus-4-6 - 2. glm/glm-4.7 - 3. if/kimi-k2-thinking - -Monthly cost: $20 + small backup spend -Outcome: higher quality, near-zero interruption -``` - -**Ohjekirja B: Nollahintainen koodauspino** - -```txt -Combo: "free-forever" - 1. gc/gemini-3-flash - 2. if/kimi-k2-thinking - 3. qw/qwen3-coder-plus - -Monthly cost: $0 -Outcome: stable free coding workflow -``` - -**Playbook C: 24/7 aina päällä oleva varaketju** - -```txt -Combo: "always-on" - 1. cc/claude-opus-4-6 - 2. cx/gpt-5.2-codex - 3. glm/glm-4.7 - 4. minimax/MiniMax-M2.1 - 5. if/kimi-k2-thinking - -Outcome: deep fallback depth for deadline-critical workloads -``` - -**Pelikirja D: Agentti toimii MCP:llä + A2A** - -```txt -1) Start MCP transport (`omniroute --mcp`) for tool-driven operations -2) Run A2A tasks via `message/send` and `message/stream` -3) Observe via /dashboard/endpoint (MCP and A2A tabs) -4) Toggle services via inline status controls -``` - ---- - -## 🆓 Aloita ilmaiseksi – nolla konfigurointikustannuksia - -> Määritä AI-koodaus minuuteissa hintaan **0 $/kk**. Yhdistä nämä ilmaiset tilit ja käytä sisäänrakennettua **Free Stack** -yhdistelmää. - -| Vaihe | Toiminta | Palveluntarjoajat avattu | -| ----- | -------------------------------------------------- | ---------------------------------------------------------------------- | -| 1 | Yhdistä **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — **rajaton** | -| 2 | Yhdistä **Qoder** (Google OAuth) | kimi-k2-ajattelu, qwen3-coder-plus, deepseek-r1... — **rajoittamaton** | -| 3 | Yhdistä **Qwen** (laitekoodi) | qwen3-coder-plus, qwen3-coder-flash... — **rajoittamaton** | -| 4 | Yhdistä **Gemini CLI** (Google OAuth) | gemini-3-flash, gemini-2.5-pro — **180K/kk ilmaiseksi** | -| 5 | `/dashboard/combos` → **Ilmainen pino ($0)** malli | Round-robin kaikki ilmaiset palveluntarjoajat automaattisesti | - -**Osoita mikä tahansa IDE/CLI:** `http://localhost:20128/v1` · API-avain: `any-string` · Valmis. - -> **Valinnainen lisäkattavuus (myös ilmainen):** Groq API-avain (30 RPM ilmaiseksi), NVIDIA NIM (40 RPM ilmaiseksi, 70+ mallit), Cerebras (1 milj. tk/vrk), LongCat API-avain (50 milj. tokenia/päivä!), Cloudflare Workers AI (10 000 neuronia/vrk, 50+ mallia). - -## ⚡ Pika-aloitus - -### 1) Asenna ja suorita - -```bash -npm install -g omniroute -omniroute -``` - -> **pnpm-käyttäjät:** Suorita `pnpm approve-builds -g` asennuksen jälkeen ottaaksesi käyttöön `better-sqlite3` ja `@swc/core` vaatimat alkuperäiset koontiskriptit: -> -> ```bash -> pnpm install -g omniroute -> pnpm approve-builds -g # Select all packages → approve -> omniroute -> ``` - -Hallintapaneeli avautuu osoitteessa `http://localhost:20128` ja API-perus-URL on `http://localhost:20128/v1`. - -| Komento | Kuvaus | -| ----------------------- | -------------------------------------------------------------------- | -| `omniroute` | Käynnistä palvelin (`PORT=20128`, API ja kojelauta samassa portissa) | -| `omniroute --port 3000` | Aseta kanoninen/API-portiksi 3000 | -| `omniroute --mcp` | Käynnistä MCP-palvelin (stdio-kuljetus) | -| `omniroute --no-open` | Älä avaa selainta automaattisesti | -| `omniroute --help` | Näytä ohje | - -Valinnainen jaettu porttitila: - -```bash -PORT=20128 DASHBOARD_PORT=20129 omniroute -# API: http://localhost:20128/v1 -# Dashboard: http://localhost:20129 -``` - -### 2) Yhdistä palveluntarjoajat ja luo API-avain - -1. Avaa Dashboard → `Providers` ja yhdistä vähintään yksi palveluntarjoaja (OAuth- tai API-avain). -2. Avaa Dashboard → `Endpoints` ja luo API-avain. -3. (Valinnainen) Avaa Dashboard → `Combos` ja aseta varaketju. - -### 3) Osoita koodaustyökalusi kohtaan OmniRoute - -```txt -Base URL: http://localhost:20128/v1 -API Key: [copy from Endpoint page] -Model: if/kimi-k2-thinking (or any provider/model prefix) -``` - -Toimii Claude Coden, Codex CLI:n, Gemini CLI:n, Cursorin, Clinen, OpenClawn, OpenCoden ja OpenAI-yhteensopivien SDK:iden kanssa. - -### 4) Ota protokollat käyttöön ja vahvista ne (v2.0) - -**MCP (työkaluohjattuihin toimintoihin):** - -```bash -omniroute --mcp -``` - -Yhdistä sitten MCP-asiakas `stdio`:n kautta ja testaa työkaluja, kuten: - -- `omniroute_get_health` -- `omniroute_list_combos` - -**A2A (agenttien välisille työnkuluille):** - -```bash -curl http://localhost:20128/.well-known/agent.json -``` - -```bash -curl -X POST http://localhost:20128/a2a \ - -H 'content-type: application/json' \ - -d '{"jsonrpc":"2.0","id":"quickstart","method":"message/send","params":{"skill":"quota-management","messages":[{"role":"user","content":"Give me a short quota summary."}]}}' -``` - -### 5) Vahvista kaikki päästä päähän (suositus) - -```bash -npm run test:protocols:e2e -``` - -Tämä sarja vahvistaa todelliset MCP- ja A2A-asiakasvirrat käynnissä olevaa sovellusta vastaan. - -### Vaihtoehto: suorita lähteestä - -```bash -cp .env.example .env -npm install -PORT=20128 DASHBOARD_PORT=20129 NEXT_PUBLIC_BASE_URL=http://localhost:20129 npm run dev -``` - ---- - -## 🐳 Docker - -OmniRoute on saatavilla julkisena Docker-kuvana osoitteessa [Docker Hub](https://hub.docker.com/r/diegosouzapw/omniroute). - -**Pikaajo:** - -```bash -docker run -d \ - --name omniroute \ - --restart unless-stopped \ - -p 20128:20128 \ - -v omniroute-data:/app/data \ - diegosouzapw/omniroute:latest -``` - -**Ympäristötiedostolla:** - -```bash -# Copy and edit .env first -cp .env.example .env - -docker run -d \ - --name omniroute \ - --restart unless-stopped \ - --env-file .env \ - -p 20128:20128 \ - -v omniroute-data:/app/data \ - diegosouzapw/omniroute:latest -``` - -**Docker Composen käyttäminen:** - -```bash -# Base profile (no CLI tools) -docker compose --profile base up -d - -# CLI profile (Claude Code, Codex, OpenClaw built-in) -docker compose --profile cli up -d -``` - -| Kuva | Tag | Koko | Kuvaus | -| ------------------------ | -------- | ------- | -------------------- | -| `diegosouzapw/omniroute` | `latest` | ~250 Mt | Uusin vakaa julkaisu | -| `diegosouzapw/omniroute` | `1.0.3` | ~250 Mt | Nykyinen versio | - ---- - -## 🖥️ Työpöytäsovellus – offline-tilassa ja aina päällä - -> 🆕 **UUSI!** OmniRoute on nyt saatavilla **alkuperäisenä työpöytäsovelluksena** Windowsille, macOS:lle ja Linuxille. - -Suorita OmniRoute itsenäisenä työpöytäsovelluksena – ei päätelaitetta, ei selainta, ei vaadi Internetiä paikallisiin malleihin. Elektronipohjainen sovellus sisältää: - -- 🖥️ **Alkuperäinen ikkuna** - Erillinen sovellusikkuna, jossa on integrointi järjestelmälokeroon -- 🔄 **Automaattinen käynnistys** — Käynnistä OmniRoute järjestelmään kirjautuessasi -- 🔔 **Alkuperäiset ilmoitukset** - Saat ilmoituksia kiintiön loppumisesta tai palveluntarjoajan ongelmista -- ⚡ **Asennus yhdellä napsautuksella** — NSIS (Windows), DMG (macOS), AppImage (Linux) -- 🌐 **Offline-tila** — Toimii täysin offline-tilassa mukana toimitetun palvelimen kanssa - -### Pikaopas - -```bash -# Development mode -npm run electron:dev - -# Build for your platform -npm run electron:build # Current platform -npm run electron:build:win # Windows (.exe) -npm run electron:build:mac # macOS (.dmg) — x64 & arm64 -npm run electron:build:linux # Linux (.AppImage) -``` - -### Järjestelmäalusta - -Kun OmniRoute on minimoitu, se elää ilmaisinalueellasi nopeilla toimilla: - -- Avaa kojelauta -- Vaihda palvelimen portti -- Lopeta sovellus - -📖 Koko dokumentaatio: [**OMNI_TOKEN_153**](electron/README.md) - ---- - -## 💰 Hinnoittelu yhdellä silmäyksellä - -| Taso | Palveluntarjoaja | Kustannukset | Kiintiön nollaus | Paras | -| ---------------- | --------------------------- | ----------------------------------- | ---------------------- | ---------------------------------- | -| **💳 TILAUS** | Claude Code (Pro) | 20 dollaria/kk | 5h + viikoittain | jo tilattu | -| | Codex (Plus/Pro) | 20-200 $/kk | 5h + viikoittain | OpenAI-käyttäjät | -| | Gemini CLI | **ILMAINEN** | 180 tk/kk + 1 tk/päivä | Kaikki! | -| | GitHub Copilot | 10-19 $/kk | Kuukausittain | GitHub-käyttäjät | -| **🔑 API-AVAIN** | NVIDIA NIM | **ILMAINEN** (kehittäjä ikuisesti) | ~40 rpm | 70+ avointa mallia | -| | Aivot | **ILMAINEN** (1M tok/päivä) | 60K TPM / 30 RPM | Maailman nopein | -| | Groq | **ILMAINEN** (30 RPM) | 14.4K RPD | Erittäin nopea Llama/Gemma | -| | DeepSeek V3.2 | 0,27 $/1,10 $ per 1 milj | Ei yhtään | Paras hinta/laatu perustelu | -| | xAI Grok-4 Fast | **0,20 $/0,50 $ per 1 milj** 🆕 | Ei yhtään | Nopein + työkalukutsu, ultralow | -| | xAI Grok-4 (vakio) | 0,20 $/1,50 $ per 1 milj 🆕 | Ei yhtään | Päättelyn lippulaiva xAI:lta | -| | Mistral | Ilmainen kokeilu + maksullinen | Hinta rajoitettu | Eurooppalainen tekoäly | -| | OpenRouter | Maksu per käyttö | Ei yhtään | 100+ mallia agr. | -| **💰 EDULLISET** | GLM-5 (Z.AI:n kautta) 🆕 | 0,5 $/1 milj. | Päivittäin klo 10 | 128K lähtö, uusin lippulaiva | -| | GLM-4.7 | 0,6 $/1 milj. | Päivittäin klo 10 | Budjetin varmuuskopio | -| | MiniMax M2.5 🆕 | 0,3 $/1 milj. tulo | 5 tunnin rullaus | Päättely + agenttitehtävät | -| | MiniMax M2.1 | 0,2 $/1 milj. | 5 tunnin rullaus | Halvin vaihtoehto | -| | Kimi K2.5 (Moonshot API) 🆕 | Maksu per käyttö | Ei yhtään | Suora Moonshot API -käyttö | -| | Kimi K2 | 9 dollaria/kk asunto | 10 milj. rahakkeita/kk | Ennustettavat kustannukset | -| **🆓 ILMAINEN** | Qoder | **0 $** | Rajoittamaton | 5 mallia rajoittamaton | -| | Qwen | **0 $** | Rajoittamaton | 4 mallia rajoittamaton | -| | Kiro | **0 $** | Rajoittamaton | Claude Sonnet/Haiku (AWS Builder) | -| | LongCat Flash-Lite 🆕 | **0 $** (50 milj. tok/päivä 🔥) | 1 RPS | Suurin ilmainen kiintiö maailmassa | -| | Pölytys AI 🆕 | **0 $** (avainta ei tarvita) | 1 kpl/15 s | GPT-5, Claude, DeepSeek, Llama 4 | -| | Cloudflare Workers AI 🆕 | **0 $** (10 000 neuronia/päivä) | ~150 tk/päivä | Yli 50 mallia, globaali reuna | -| | Scaleway AI 🆕 | **0 $** (yhteensä 1 milj. tokeneja) | Hinta rajoitettu | EU/GDPR, Qwen3 235B, Llama 70B | - -> 🆕 **Uusia malleja lisätty (maaliskuu 2026):** Grok-4 Fast -perhe hintaan 0,20 $/0,50 $/M (vertailu 1143 ms – 30 % nopeampi kuin Gemini 2.5 Flash), GLM-5 Z.AI:n kautta 128K:n lähdöllä, MiniMax M2.5 Vc3:n kautta. Moonshot Direct API. - -**💡 0 dollarin yhdistelmäpino – täydellinen ilmainen asennus:** - -``` -# 🆓 Ultimate Free Stack 2026 — 11 Providers, $0 Forever -Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED -LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 -Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed -Qwen (qw/) → qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next UNLIMITED -Gemini (gemini/) → Gemini 2.5 Flash — 1,500 req/day free API key -Cloudflare AI (cf/) → Llama 70B, Gemma 3, Mistral — 10K Neurons/day -Scaleway (scw/) → Qwen3 235B, Llama 70B — 1M free tokens (EU) -Groq (groq/) → Llama/Gemma ultra-fast — 14.4K req/day -NVIDIA NIM (nvidia/) → 70+ open models — 40 RPM forever -Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day -``` - -** Nolla kustannuksia. Ei koskaan lopeta koodausta.** Määritä tämä yhdeksi OmniRoute-yhdistelmäksi, ja kaikki palautukset tapahtuvat automaattisesti – ei manuaalista vaihtoa koskaan. - ---- - ---- - -## 🆓 Ilmaiset mallit – mitä todella saat - -> Kaikki alla olevat mallit ovat **100 % ilmaisia ilman luottokorttia**. OmniRoute reitittää automaattisesti niiden välillä, kun yksi kiintiö loppuu – yhdistä ne kaikki rikkomattomaksi 0 dollarin yhdistelmäksi. - -### 🔵 CLAUDE MALLIT (Kiron kautta — AWS Builder ID) - -| Malli | Etuliite | Raja | Hintarajoitus | -| ------------------- | -------- | ----------------- | ----------------------------------- | -| `claude-sonnet-4.5` | `kr/` | **Rajoittamaton** | Ei raportoitu päivittäistä ylärajaa | -| `claude-haiku-4.5` | `kr/` | **Rajoittamaton** | Ei raportoitu päivittäistä ylärajaa | -| `claude-opus-4.6` | `kr/` | **Rajoittamaton** | Uusin Opus kautta Kiro | - -### 🟢 QODER-MALLIT (ilmainen OAuth – ei luottokorttia) - -| Malli | Etuliite | Raja | Hintarajoitus | -| ------------------ | -------- | ----------------- | --------------------- | -| `kimi-k2-thinking` | `if/` | **Rajoittamaton** | Ei ilmoitettu yläraja | -| `qwen3-coder-plus` | `if/` | **Rajoittamaton** | Ei ilmoitettu yläraja | -| `deepseek-r1` | `if/` | **Rajoittamaton** | Ei ilmoitettu yläraja | -| `minimax-m2.1` | `if/` | **Rajoittamaton** | Ei ilmoitettu yläraja | -| `kimi-k2` | `if/` | **Rajoittamaton** | Ei ilmoitettu yläraja | - -### 🟡 QWEN-MALLIT (laitekoodin todennus) - -| Malli | Etuliite | Raja | Hintarajoitus | -| ------------------- | -------- | ----------------- | ----------------------- | -| `qwen3-coder-plus` | `qw/` | **Rajoittamaton** | Ei ilmoitettu yläraja | -| `qwen3-coder-flash` | `qw/` | **Rajoittamaton** | Ei ilmoitettu yläraja | -| `qwen3-coder-next` | `qw/` | **Rajoittamaton** | Ei ilmoitettu yläraja | -| `vision-model` | `qw/` | **Rajoittamaton** | Multimodaalinen (kuvat) | - -### 🟣 GEMINI CLI (Google OAuth) - -| Malli | Etuliite | Raja | Hintarajoitus | -| ------------------------ | -------- | -------------------------- | ----------------------- | -| `gemini-3-flash-preview` | `gc/` | **180 tk/kk** + 1 tk/päivä | Kuukausittainen nollaus | -| `gemini-2.5-pro` | `gc/` | 180 000/kk (jaettu pool) | Korkea laatu | - -### ⚫ NVIDIA NIM (ilmainen API-avain – build.nvidia.com) - -| Taso | Päiväraja | Hintarajoitus | Huomautuksia | -| -------------------- | ---------------- | ------------- | ------------------------------------------------------------------------- | -| Ilmainen (kehittäjä) | Ei tunnuskorkkia | **~40 RPM** | 70+ mallia; siirtyminen puhtaisiin korkorajoihin vuoden 2025 puolivälissä | - -Suositut ilmaiset mallit: `moonshotai/kimi-k2.5` (Kimi K2.5), `z-ai/glm4.7` (GLM 4.7), `deepseek-ai/deepseek-v3.2` (DeepSeek V3.2), `nvidia/llama-3.3-70b-instruct`\_, \_\_EN_18 - -### ⚪ CEREBRAS (ilmainen API-avain – inference.cerebras.ai) - -| Taso | Päiväraja | Hintarajoitus | Huomautuksia | -| -------- | ---------------------------- | ---------------- | -------------------------------------------------- | -| Ilmainen | **1 milj. rahakkeita/päivä** | 60K TPM / 30 RPM | Maailman nopein LLM-päätelmä; nollautuu päivittäin | - -Saatavilla ilmaiseksi: `llama-3.3-70b`, `llama-3.1-8b`, `deepseek-r1-distill-llama-70b` - -### 🔴 GROQ (ilmainen API-avain – console.groq.com) - -| Taso | Päiväraja | Hintarajoitus | Huomautuksia | -| -------- | ------------- | -------------------- | ------------------------------------------- | -| Ilmainen | **14.4K RPD** | 30 rpm mallia kohden | Ei luottokorttia; 429 rajalla, ei veloiteta | - -Saatavilla ilmaiseksi: `llama-3.3-70b-versatile`, `gemma2-9b-it`, `mixtral-8x7b`, `whisper-large-v3` - -### 🔴 LONGCAT AI (ilmainen API-avain — longcat.chat) 🆕 - -| Malli | Etuliite | Päivittäinen ilmainen kiintiö | Huomautuksia | -| ----------------------------- | -------- | ----------------------------- | ------------------------------- | -| `LongCat-Flash-Lite` | `lc/` | **50 milj. rahakkeita** 💥 | Suurin ilmainen kiintiö koskaan | -| `LongCat-Flash-Chat` | `lc/` | 500 000 kuponkia | Monipuolinen chat | -| `LongCat-Flash-Thinking` | `lc/` | 500 000 kuponkia | Päättely / CoT | -| `LongCat-Flash-Thinking-2601` | `lc/` | 500 000 kuponkia | Tammikuun 2026 versio | -| `LongCat-Flash-Omni-2603` | `lc/` | 500 000 kuponkia | Multimodaalinen | - -> 100 % ilmainen julkisessa beta-tilassa. Rekisteröidy osoitteessa [longcat.chat](https://longcat.chat) sähköpostitse tai puhelimitse. Nollautuu päivittäin 00:00 UTC. - -### 🟢 POLLINATIONS AI (Ei vaadi API-avainta) 🆕 - -| Malli | Etuliite | Hintarajoitus | Toimittaja Takana | -| ---------- | -------- | ------------- | ------------------- | -| `openai` | `pol/` | 1 tarve/15 s | GPT-5 | -| `claude` | `pol/` | 1 tarve/15 s | Antrooppinen Claude | -| `gemini` | `pol/` | 1 tarve/15 s | Google Gemini | -| `deepseek` | `pol/` | 1 tarve/15 s | DeepSeek V3 | -| `llama` | `pol/` | 1 tarve/15 s | Meta Llama 4 Scout | -| `mistral` | `pol/` | 1 tarve/15 s | Mistral AI | - -> ✨ **Nolla kitkaa:** Ei rekisteröitymistä, ei API-avainta. Lisää Pollinations-palveluntarjoaja tyhjällä avainkentällä ja se toimii välittömästi. - -### 🠠 CLOUDFLARE WORKERS AI (ilmainen API-avain — cloudflare.com) 🆕 - -| Taso | Päivittäiset neuronit | Vastaava käyttö | Huomautuksia | -| -------- | --------------------- | --------------------------------------------- | ------------------------------------ | -| Ilmainen | **10 000** | ~150 LLM vastinetta / 500s audio / 15K upotus | Maailmanlaajuinen etu, yli 50 mallia | - -Suositut ilmaiset mallit: `@cf/meta/llama-3.3-70b-instruct`, `@cf/google/gemma-3-12b-it`, `@cf/openai/whisper-large-v3-turbo` (ilmainen ääni!), `@cf/qwen/qwen2.5-coder-15b-instruct` - -> Vaatii API-tunnuksen + tilitunnuksen osoitteesta [dash.cloudflare.com](https://dash.cloudflare.com). Tallenna tilitunnus palveluntarjoajan asetuksiin. - -### 🣣 SCALEWAY AI (1 milj. ilmaista merkkiä — scaleway.com) 🆕 - -| Taso | Ilmainen kiintiö | Sijainti | Notes | -| -------- | ---------------------- | -------------- | --------------------------------- | -| Ilmainen | **1 milj. rahakkeita** | 🇫🇷 Pariisi, EU | Luottokorttia ei tarvita rajoissa | - -Saatavilla ilmaiseksi: `qwen3-235b-a22b-instruct-2507` (Qwen3 235B!), `llama-3.1-70b-instruct`, `mistral-small-3.2-24b-instruct-2506`, `deepseek-v3-0324` - -> EU/GDPR-yhteensopiva. Hanki API-avain osoitteesta [console.scaleway.com](https://console.scaleway.com). - -> **💡 The Ultimate Free Stack (11 tarjoajaa, 0 dollaria ikuisesti):** -> -> ``` -> Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -> Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED -> LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 -> Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed -> Qwen (qw/) → qwen3-coder models UNLIMITED -> Gemini (gemini/) → Gemini 2.5 Flash — 1,500 req/day free -> Cloudflare AI (cf/) → 50+ models — 10K Neurons/day -> Scaleway (scw/) → Qwen3 235B, Llama 70B — 1M free tokens (EU) -> Groq (groq/) → Llama/Gemma — 14.4K req/day ultra-fast -> NVIDIA NIM (nvidia/) → 70+ open models — 40 RPM forever -> Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day -> ``` - -## 🎙️ Ilmainen transkriptioyhdistelmä - -> Literoi mikä tahansa ääni/video hintaan **$0** — Deepgram-johdot 200 dollarilla ilmaiseksi, AssemblyAI 50 dollarin varavara, Groq Whisper rajoittamattomana hätävarmuuskopiona. - -| Palveluntarjoaja | Ilmaisia ​​luottoja | Paras malli | Hintarajoitus | -| ----------------- | ------------------------------------------- | -------------------------------------------------- | --------------------------------------- | -| 🟢 **Deepgram** | **200 dollaria ilmaiseksi** (kirjautuminen) | `nova-3` — paras tarkkuus, yli 30 kieltä | Ei RPM-rajoitusta ilmaisille luottoille | -| 🔵 **AssemblyAI** | **50 dollaria ilmaiseksi** (kirjautuminen) | `universal-3-pro` — luvut, tunnelma, henkilötiedot | Ei RPM-rajoitusta ilmaisille luottoille | -| 🔴 **Groq** | **Ilmainen ikuisesti** | `whisper-large-v3` — OpenAI Whisper | 30 RPM (nopeus rajoitettu) | - -**Ehdotettu yhdistelmä kohteessa `/dashboard/combos`:** - -``` -Name: free-transcription -Strategy: Priority -Nodes: - [1] deepgram/nova-3 → uses $200 free first - [2] assemblyai/universal-3-pro → fallback when Deepgram credits run out - [3] groq/whisper-large-v3 → free forever, emergency fallback -``` - -Sitten `/dashboard/media` → **Transkriptio**-välilehti: lataa mikä tahansa ääni- tai videotiedosto → valitse yhdistelmäpäätepiste → hanki transkriptio tuetuissa muodoissa. - -## 💡 Tärkeimmät ominaisuudet - -OmniRoute v2.0 on rakennettu toiminnalliseksi alustaksi, ei vain välityspalvelimeksi. - -### 🆕 Uutta — ClawRouterin inspiroimia parannuksia (maaliskuu 2026) - -| Ominaisuus | Mitä se tekee | -| ------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | -| ⚡ **Grok-4 Fast Family** | xAI-mallit hintaan 0,20 $/0,50 $/M – vertailuarvo 1143 ms (30 % nopeampi kuin Gemini 2.5 Flash) | -| 🧠 **GLM-5 Z.AI:n kautta** | 128 000 tuloskonteksti, 0,5 $/1 milj. GLM-perheen uusin lippulaiva | -| 🔮 **MiniMax M2.5** | Päättely + agenttitehtävät hintaan 0,30 $/1M – merkittävä parannus M2.1:stä | -| 🎯 **ToolCalling Flag mallikohtainen** | Mallikohtainen `toolCalling: true/false` rekisterissä — AutoCombo ohittaa mallit, joissa ei ole työkaluja | -| 🌍 **Monikielinen tarkoituksentunnistus** | PT/ZH/ES/AR avainsanat AutoCombo-pisteytyksissä — parempi mallivalinta ei-englanninkieliselle sisällölle | -| 📊 **Vertailuarvoihin perustuvat varaehdotukset** | Todellinen p95-viive live-pyyntöjen syötteiden yhdistelmäpisteistä — AutoCombo oppii todellisista tiedoista | -| 🔁 **Pyydä päällekkäisyyden poistamista** | Sisältö-hash-pohjainen dedup-ikkuna — turvallinen usealle agentille, estää päällekkäiset veloitukset | -| 🔌 **Pluggable RouterStrategy** | Laajennettava `RouterStrategy`-käyttöliittymä — lisää mukautettu reitityslogiikka laajennuksiksi | - -### 🚀 Edellinen v2.0.9+ – leikkikenttä, CLI-sormenjäljet ja ACP - -| Ominaisuus | Mitä se tekee | -| -------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 🎮 **Model Playground** | Dashboard-sivu minkä tahansa mallin testaamiseen suoraan – palveluntarjoajan/mallin/päätepisteen valitsimet, Monaco Editor, suoratoisto, keskeytys, ajoitus | -| 🔏 **CLI-sormenjälkien vastaavuus** | Palveluntarjoajakohtainen otsikko/runkojärjestys vastaamaan alkuperäisiä CLI-allekirjoituksia – vaihda palveluntarjoajan mukaan kohdassa Asetukset > Suojaus. **Välipalvelimesi IP-osoite säilyy** | -| 🤝 **ACP-tuki (Agent Client Protocol)** | CLI-agentin etsintä (Codex, Claude, Goose, Gemini CLI, OpenClaw + 9 muuta), prosessin luonti, `/api/acp/agents` päätepiste | -| 🤖 **ACP Agents Dashboard** | Vianetsintä › Agentit -sivu — 14 agentin ruudukko, jossa on asennustila, versio ja mukautettu agenttilomake mille tahansa CLI-työkalulle. **OpenCode**-käyttäjät saavat "Download opencode.json" -painikkeen, joka luo automaattisesti käyttövalmiin kokoonpanon kaikille saatavilla oleville malleille. | -| 🔧 **Mukautettu malli `apiFormat` Reititys** | Mukautetut mallit, joissa on `apiFormat: "responses"`, ohjaavat nyt oikein Responses API -kääntäjään | -| 🏢 ** Codex Workspace Isolation** | Useita Codex-työtiloja sähköpostissa — OAuth erottaa yhteydet oikein työtilan tunnuksen | -| 🔄 **Automaattinen elektroninen päivitys** | Työpöytäsovellus tarkistaa päivitykset + automaattinen asennus uudelleenkäynnistyksen yhteydessä | - -### 🤖 Agentti- ja protokollatoiminnot (v2.0) - -| Ominaisuus | Mitä se tekee | -| ------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | -| 🔧 **MCP-palvelin (16 työkalua)** | IDE/agenttityökalut kolmen siirron kautta: stdio, SSE (`/api/mcp/sse`), Streamable HTTP (`/api/mcp/stream`) | -| 🤝 **A2A-palvelin (JSON-RPC + SSE)** | Agenttien välinen tehtävien suorittaminen synkronointi- ja suoratoistovirroilla | -| 🧭 **Konsolidoitu päätepistesivu** | Välilehdillä varustettu hallintasivu Endpoint Proxy-, MCP-, A2A- ja API Endpoints -välilehdillä | -| 🎚️ **Palvelun käyttöönoton/poistamisen valinnat** | ON/OFF kytkimet MCP:lle ja A2A:lle ja asetusten pysyvyys (oletus: OFF) | -| 🛰️ **MCP Runtime Heartbeat** | Todellinen prosessin tila (pid, käytettävyys, sykeikä, kuljetus, mittaustila) | -| 📋 **MCP Audit Trail** | Suodatettavat tarkastuslokit onnistumis/epäonnistuminen ja avainattribuutio | -| 🔐 **MCP Scope Enforcement** | 9 tarkkoja käyttöoikeuksia työkalujen ohjattuun käyttöön | -| 📡 **A2A-tehtävän elinkaaren hallinta** | Listaa/suodata tehtäviä, tarkasta tapahtumat/artefaktit, peruuta käynnissä olevat tehtävät | -| 📋 **Agenttikortin löytäminen** | `/.well-known/agent.json` asiakkaan automaattiseen löytämiseen | -| 🧪 **Protokollan E2E-testivaljaat** | Todellinen MCP SDK + A2A-asiakasvirta `test:protocols:e2e` | -| ⚙️ **Toimintaohjaimet** | Vaihda yhdistelmä, käytä kimmoisuusprofiileja, nollaa katkaisijat yhdeltä ohjauspinnalta | - -### 🧠 Reititys ja älykkyys - -| Ominaisuus | Mitä se tekee | -| ------------------------------------- | --------------------------------------------------------------------------------------- | -| 🎯 **Smart 4-Tier Fallback** | Automaattinen reitti: Tilaus → API-avain → Halpa → Ilmainen | -| 📊 **Reaaliaikainen kiintiöseuranta** | Live-tunnusten määrä + nollaa lähtölaskenta palveluntarjoajaa kohti | -| 🔄 **Käännösmuoto** | OpenAI ↔ Claude ↔ Gemini ↔ Vastaukset skeematurvallisilla muunnoksilla | -| 👥 **Useiden tilien tuki** | Useita tilejä per palveluntarjoaja älykkäällä valinnalla | -| 🔄 **Automaattinen Token Refresh** | OAuth-tunnukset päivittyvät automaattisesti yrittämällä uudelleen | -| 🎨 **Muokatut yhdistelmät** | 6 tasapainotusstrategiaa + varaketjun ohjaus | -| 🌐 **Wildcard-reititin** | `provider/*` dynaaminen reititys | -| 🧠 **Ajatteleva budjettihallinta** | Läpivienti-, automaatti-, mukautetut ja mukautuvat päättelyrajat | -| 🔀 **Mallialiakset** | Sisäänrakennettu + mukautetun mallin alias ja siirtoturva | -| ⚡ **Taustan heikkeneminen** | Ohjaa matalan prioriteetin taustatehtävät halvempiin malleihin | -| 🧪 **Task-Aware Smart Routing** | Automaattinen mallin valinta sisältötyypin mukaan (koodaus/näkemys/analyysi/yhteenveto) | -| 💬 **Järjestelmän pikaruiskutus** | Globaalia käyttäytymisen valvontaa sovelletaan johdonmukaisesti | -| 📄 **Responses API -yhteensopivuus** | Täysi `/v1/responses` tuki Codexille ja edistyneille agenttityönkuluille | - -### 🎵 Multimodaaliset sovellusliittymät - -| Ominaisuus | Mitä se tekee | -| ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 🖼️ **Kuvan luominen** | `/v1/images/generations` pilvellä ja paikallisilla taustaohjelmilla | -| 📐 **Upotukset** | `/v1/embeddings` haku- ja RAG-putkistoja varten | -| 🎤 **Äänitranskriptio** | `/v1/audio/transcriptions` — 7 palveluntarjoajaa (Deepgram Nova 3, AssemblyAI, Groq Whisper, HuggingFace, ElevenLabs, OpenAI, Azure), automaattinen kielentunnistus, MP4/MP3/WAV-tuki | -| 🔊 **Tekstistä puheeksi** | `/v1/audio/speech` — 10 palveluntarjoajaa (ElevenLabs, OpenAI, Deepgram, Cartesia, PlayHT, HuggingFace, Nvidia NIM, Inworld, Coqui, Tortoise) oikeilla virheilmoituksilla | -| 🎬 **Videon sukupolvi** | `/v1/videos/generations` (ComfyUI + SD WebUI -työnkulut) | -| 🎵 **Musiikin sukupolvi** | `/v1/music/generations` (ComfyUI-työnkulut) | -| 🛡️ **Moderaatiot** | `/v1/moderations` turvallisuustarkastukset | -| 🔀 **Uudelleenjärjestys** | `/v1/rerank` osuvuuden pisteytykseen | -| 🔍 **Verkkohaku** 🆕 | `/v1/search` — 5 palveluntarjoajaa (Serper, Brave, Perplexity, Exa, Tavily), yli 6 500 ilmaista kuukaudessa, automaattinen vikasieto, välimuisti | - -### 🛡️ Joustavuus, turvallisuus ja hallinto - -| Ominaisuus | Mitä se tekee | -| -------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | -| 🔌 **Katkaisijat** | Mallikohtainen laukaisu/palautus kynnysohjaimilla | -| 🎯 **Endpoint-Aware mallit** | Mukautetut mallit ilmoittavat tuetut päätepisteet + API-muoto | -| 🛡️ **Ukkosen vastainen lauma** | Mutex + semaforisuojat uudelleenyritys-/nopeustapahtumissa | -| 🧠 **Semanttinen + allekirjoitusvälimuisti** | Kustannusten/viiveen vähentäminen kahdella välimuistikerroksella | -| ⚡ **Pyydä idempotenssia** | Kaksoissuojaikkuna | -| 🔒 **TLS-sormenjälkien huijaus** | Selaimen kaltainen TLS-sormenjälki — **vähentää botin havaitsemista ja tilimerkintöjä** | -| 🔏 **CLI-sormenjälkien vastaavuus** | Vastaa alkuperäisten CLI-pyyntöjen allekirjoituksia — **vähentää eston riskiä säilyttäen samalla välityspalvelimen IP-osoitteen** | -| 🌐 **IP-suodatus** | Salli-/estoluettelon hallinta paljaille käyttöönotuksille | -| 📊 **Muokattavat hintarajat** | Muokattavat globaalit/toimittajatason rajoitukset pysyvillä | -| 🔑 **API-avainten hallinta + rajaus** | Suojattu avainten myöntäminen/kierto ja mallin/toimittajan hallintalaitteet | -| 🛡️ **Suojattu `/models`** | Valinnainen todennus ja palveluntarjoajan piilottaminen malliluetteloon | - -### 📊 Havaittavuus ja analytiikka - -| Ominaisuus | Mitä se tekee | -| ----------------------------------------- | ----------------------------------------------------------------------- | -| 📝 **Pyyntö + välityspalvelimen kirjaus** | Täysi pyyntö/vastaus ja välityspalvelimen kirjaus | -| 📉 **Streamed Detailed Logs** 🆕 | Reconstructs SSE payload streams cleanly into the UI | -| 📋 **Unified Logs Dashboard** | Pyyntö-, välityspalvelin-, tarkastus- ja konsolinäkymät yhdellä sivulla | -| 🔍 **Pyydä telemetriaa** | p50/p95/p99 latenssi ja pyynnön jäljitys | -| 🏥 **Terveyden hallintapaneeli** | Käyttöaika, katkaisutilat, lukitukset, välimuistitilastot | -| 💰 **Kustannusseuranta** | Budjetin hallinta ja mallikohtainen hinnoittelun näkyvyys | -| 📈 **Analytiikan visualisoinnit** | Mallin/palveluntarjoajan käyttötiedot ja trendinäkymät | -| 🧪 **Arviointikehys** | Golden set -testaus konfiguroitavilla ottelustrategioilla | - -### ☁️ Käyttöönotto ja alusta - -| Ominaisuus | Mitä se tekee | -| ----------------------------------- | ------------------------------------------------------------------------------- | -| 🌐 **Ota käyttöön missä tahansa** | Localhost, VPS, Docker, pilviympäristöt | -| 💾 **Cloud Sync** | Määritysten synkronointi pilvityön kautta | -| 🔄 **Varmuuskopioi/Palauta** | Vienti/tuonti ja katastrofien palautusvirrat | -| 🧙 **Ohjattu käyttöönottotoiminto** | Ensimmäisen kerran ohjattu asennus | -| 🔧 **CLI Tools Dashboard** | Asennus yhdellä napsautuksella suosittuja koodaustyökaluja varten | -| 🎮 **Model Playground** | Testaa mitä tahansa palveluntarjoajaa/mallia/päätepistettä hallintapaneelista | -| 🔏 **CLI-sormenjälkivalitsin** | Palveluntarjoajakohtainen sormenjälkien vastaavuus kohdassa Asetukset > Suojaus | -| 🌐 **i18n (30 kieltä)** | Täysi kojelauta + asiakirjojen kielen tuki RTL-kattauksella | -| 🧹 **Tyhjennä kaikki mallit** | Yhden napsautuksen malliluettelon tyhjennys toimittajan tiedoissa | -| 👁️ **Sidebar Controls** 🆕 | Hide components and integrations from Appearance Settings | -| 📋 **Ongelman mallit** | Standardoidut GitHub-mallit bugeille ja ominaisuuksille | -| 📂 **Muokattu tietohakemisto** | `DATA_DIR` ohitus tallennuspaikalle | - -### Ominaisuus Deep Dive - -#### Älykäs varavaihtoehto ja käytännöllinen kustannusten hallinta - -```txt -Combo: "my-coding-stack" - 1. cc/claude-opus-4-6 - 2. nvidia/llama-3.3-70b - 3. glm/glm-4.7 - 4. if/kimi-k2-thinking -``` - -Kun kiintiö, korko tai kunto epäonnistuu, OmniRoute siirtyy automaattisesti seuraavaan ehdokkaaseen ilman manuaalista vaihtoa. - -#### Protokollanhallinta, joka on näkyvä ja toimiva - -- MCP + A2A ovat löydettävissä käyttöliittymässä ja asiakirjoissa (ei piilotettu) -- Protokollan tilasovellusliittymät paljastavat reaaliaikaiset toimintatiedot (`/api/mcp/*`, `/api/a2a/*`) -- Hallintapaneelit sisältävät toimintoja 2. päivän toimintoihin (kombinvaihto, katkaisijan nollaukset, tehtävien peruutus) - -#### Kääntäjä + validointityönkulku - -Kääntäjä-alue sisältää: - -- **Playground**: pyydä muunnostarkistuksia -- **Chat Tester**: täydellinen pyyntö/vastaus edestakaisin -- **Testipenkki**: useita tapauksia yhdellä kertaa -- **Live Monitor**: reaaliaikainen liikennenäkymä - -Plus protokollan validointi oikeiden asiakkaiden kanssa `npm run test:protocols:e2e`:n kautta. - -> 📖 **[MCP Server README](open-sse/mcp-server/README.md)** — Työkaluviittaus, IDE-määritykset ja asiakasesimerkit -> -> 📖 **[A2A Server README](src/lib/a2a/README.md)** — Taidot, JSON-RPC-menetelmät, suoratoisto ja tehtävien elinkaari - -## 🧪 Arvioinnit (Evals) - -OmniRoute sisältää sisäänrakennetun arviointikehyksen, jolla testataan LLM-vastauksen laatua kultaiseen joukkoon verrattuna. Käytä sitä kojelaudan kohdassa **Analytics → Evals**. - -### Sisäänrakennettu kultainen setti - -Esiladattu "OmniRoute Golden Set" sisältää testitapauksia: - -- Tervehdys, matematiikka, maantiede, koodin luominen -- JSON-muodon yhteensopivuus, käännös, hinnanalennusten luominen -- Turvallisuuskielto (haitallinen sisältö), laskenta, boolen logiikka - -### Arviointistrategiat - -| Strategia | Kuvaus | Esimerkki | -| ---------- | ------------------------------------------------------------------------ | -------------------------------- | -| `exact` | Tulosten on vastattava tarkasti | `"4"` | -| `contains` | Tulosteen tulee sisältää alimerkkijono (kirjainkoolla ei ole merkitystä) | `"Paris"` | -| `regex` | Tulostuksen on vastattava regex-mallia | `"1.*2.*3"` | -| `custom` | Mukautettu JS-funktio palauttaa true/false | `(output) => output.length > 10` | - ---- - -## 📖 Asennusopas - -### Protokollan asetukset (MCP + A2A) - -<details> -<summary><b>🧩 MCP-asetukset (mallikontekstiprotokolla)</b></summary> - -Aloita MCP-siirto stdio-tilassa: - -```bash -omniroute --mcp -``` - -Suositeltu vahvistuskulku: - -1. Yhdistä MCP-asiakas stdion kautta. -2. Suorita `omniroute_get_health`. -3. Suorita `omniroute_list_combos`. -4. Avaa `/dashboard/mcp` vahvistaaksesi syke, aktiivisuus ja tarkastus. - -Hyödyllisiä sovellusliittymiä automatisointiin: - -- `GET /api/mcp/status` -- `GET /api/mcp/tools` -- `GET /api/mcp/audit` -- `GET /api/mcp/audit/stats` - -</details> - -<details> -<summary><b>🤝 A2A-asennus (Agent2Agent)</b></summary> - -Tutustu agenttiin: - -```bash -curl http://localhost:20128/.well-known/agent.json -``` - -Lähetä tehtävä: - -```bash -curl -X POST http://localhost:20128/a2a \ - -H 'content-type: application/json' \ - -d '{"jsonrpc":"2.0","id":"setup-a2a","method":"message/send","params":{"skill":"quota-management","messages":[{"role":"user","content":"Summarize quota status."}]}}' -``` - -Hallitse elinkaarta: - -- `GET /api/a2a/status` -- `GET /api/a2a/tasks` -- `GET /api/a2a/tasks/:id` -- `POST /api/a2a/tasks/:id/cancel` - -Käyttöliittymä: - -- `/dashboard/a2a` tehtävän/tilan/virran havainnointia ja savutoimintoja varten - -</details> - -<details> -<summary><b>🧪 Päästä päähän -protokollan validointi</b></summary> - -Vahvista molemmat protokollat oikeilla asiakkailla: - -```bash -npm run test:protocols:e2e -``` - -Tämä varmistaa: - -- MCP SDK -asiakas yhdistä/luettelo/soita -- A2A Discovery/Send/stream/get/cancel -- Tarkista tiedot MCP-tarkastuksessa ja A2A-tehtävienhallinnan sovellusliittymissä - -</details> - -<details> -<summary><b>💳 Tilauksen tarjoajat</b></summary> - -### Claude Code (Pro/Max) - -```bash -Dashboard → Providers → Connect Claude Code -→ OAuth login → Auto token refresh -→ 5-hour + weekly quota tracking - -Models: - cc/claude-opus-4-6 - cc/claude-sonnet-4-5-20250929 - cc/claude-haiku-4-5-20251001 -``` - -**Provinkki:** Käytä Opusta monimutkaisiin tehtäviin ja Sonnetia nopeutta varten. OmniRoute jäljityskiintiö mallia kohden! - -### OpenAI Codex (Plus/Pro) - -```bash -Dashboard → Providers → Connect Codex -→ OAuth login (port 1455) -→ 5-hour + weekly reset - -Models: - cx/gpt-5.2-codex - cx/gpt-5.1-codex-max -``` - -#### Codex Account Limit Management (5h + viikoittain) - -Jokaisella Codex-tilillä on nyt käytäntökytkimet kohteessa `Dashboard -> Providers`: - -- `5h` (ON/OFF): ota käyttöön 5 tunnin ikkunan kynnyskäytäntö. -- `Weekly` (ON/OFF): ota käyttöön viikoittaisen ikkunan kynnyskäytäntö. -- Kynnyskäyttäytyminen: kun käytössä oleva ikkuna saavuttaa >=90 % käytön, tili ohitetaan. -- Kiertokäyttäytyminen: OmniRoute reitittää automaattisesti seuraavalle kelvolliselle Codex-tilille. -- Nollaa toiminta: kun palveluntarjoajan `resetAt` aika kuluu, tili tulee uudelleen kelpoiseksi automaattisesti. - -Skenaariot: - -- `5h ON` + `Weekly ON`: tili ohitetaan, kun jompikumpi ikkuna saavuttaa kynnyksen. -- `5h OFF` + `Weekly ON`: vain viikoittainen käyttö voi estää tilin. -- `5h ON` + `Weekly OFF`: vain 5 tunnin käyttö voi estää tilin. -- `resetAt` hyväksytty: tili siirtyy uudelleen kiertoon automaattisesti (ei manuaalista uudelleenkäyttöä). - -### Gemini CLI (ILMAINEN 180 000/kk!) - -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Paras hinta-laatusuhde:** Valtava ilmainen taso! Käytä tätä ennen maksettuja tasoja. - -### GitHub Copilot - -```bash -Dashboard → Providers → Connect GitHub -→ OAuth via GitHub -→ Monthly reset (1st of month) - -Models: - gh/gpt-5 - gh/claude-4.5-sonnet - gh/gemini-3-pro -``` - -</details> - -<details> -<summary><b>🔑 API-avaintoimittajat</b></summary> - -### NVIDIA NIM (ILMAINEN kehittäjän pääsy – yli 70 mallia) - -1. Rekisteröidy: [build.nvidia.com](https://build.nvidia.com) -2. Hanki ilmainen API-avain (sisältää 1000 johtopäätöskrediittiä) -3. Kojelauta → Lisää toimittaja → NVIDIA NIM: - - API-avain: `nvapi-your-key` - -**Mallit:** `nvidia/llama-3.3-70b-instruct`, `nvidia/mistral-7b-instruct` ja yli 50 muuta - -**Provinkki:** OpenAI-yhteensopiva API – toimii saumattomasti OmniRouten muotokäännöksen kanssa! - -### DeepSeek - -1. Rekisteröidy: [platform.deepseek.com](https://platform.deepseek.com) -2. Hanki API-avain -3. Dashboard → Add Provider → DeepSeek - -**Mallit:** `deepseek/deepseek-chat`, `deepseek/deepseek-coder` - -### Groq (ilmainen taso saatavilla!) - -1. Rekisteröidy: [console.groq.com](https://console.groq.com) -2. Hanki API-avain (ilmainen taso mukana) -3. Dashboard → Add Provider → Groq - -**Mallit:** `groq/llama-3.3-70b`, `groq/mixtral-8x7b` - -**Provinkki:** Erittäin nopea päättely – paras reaaliaikaiseen koodaukseen! - -### OpenRouter (100+ mallia) - -1. Rekisteröidy: [openrouter.ai](https://openrouter.ai) -2. Hanki API-avain -3. Dashboard → Add Provider → OpenRouter - -**Mallit:** Käytä yli 100 mallia kaikilta tärkeimmiltä palveluntarjoajilta yhdellä API-avaimella. - -</details> - -<details> -<summary><b>💰 Halvat palveluntarjoajat (Varmuuskopio)</b></summary> - -### GLM-4.7 (Päivittäinen nollaus, 0,6 $/1 milj.) - -1. Rekisteröidy: [Zhipu AI](https://open.bigmodel.cn/) -2. Hanki API-avain Coding Planista -3. Hallintapaneeli → Lisää API-avain: - - Palveluntarjoaja: `glm` - - API-avain: `your-key` - -**Käytä:** `glm/glm-4.7` - -**Provinkki:** Koodaussuunnitelma tarjoaa 3-kertaisen kiintiön 1/7 hinnalla! Nollaa päivittäin klo 10.00. - -### MiniMax M2.1 (5 h nollaus, 0,20 $/1 milj.) - -1. Rekisteröidy: [MiniMax](https://www.minimax.io/) -2. Hanki API-avain -3. Kojelauta → Lisää API-avain - -**Käytä:** `minimax/MiniMax-M2.1` - -**Ammattilaisen vinkki:** Halvin vaihtoehto pitkälle kontekstille (1 milj. merkkiä)! - -### Kimi K2 (9 dollaria/kk asunto) - -1. Tilaa: [Moonshot AI](https://platform.moonshot.ai/) -2. Hanki API-avain -3. Kojelauta → Lisää API-avain - -**Käytä:** `kimi/kimi-latest` - -**Ammattilaisen vinkki:** Kiinteä 9 dollaria kuukaudessa 10 miljoonalle tokenille = 0,90 dollaria / 1 miljoona todellista hintaa! - -</details> - -<details> -<summary><b>🆓 ILMAISIA palveluntarjoajia (hätävarmuuskopio)</b></summary> - -### Qoder (5 ILMAISTA mallia OAuthin kautta) - -```bash -Dashboard → Connect Qoder -→ Qoder OAuth login -→ Unlimited usage - -Models: - if/kimi-k2-thinking - if/qwen3-coder-plus - if/glm-4.7 - if/minimax-m2 - if/deepseek-r1 -``` - -### Qwen (4 ILMAISTA mallia laitekoodin kautta) - -```bash -Dashboard → Connect Qwen -→ Device code authorization -→ Unlimited usage - -Models: - qw/qwen3-coder-plus - qw/qwen3-coder-flash -``` - -### Kiro (Claude ILMAINEN) - -```bash -Dashboard → Connect Kiro -→ AWS Builder ID or Google/GitHub -→ Unlimited usage - -Models: - kr/claude-sonnet-4.5 - kr/claude-haiku-4.5 -``` - -</details> - -<details> -<summary><b>🎨 Luo komboja</b></summary> - -### Esimerkki 1: Maksimoi tilaus → Halpa varmuuskopio - -``` -Dashboard → Combos → Create New - -Name: premium-coding -Models: - 1. cc/claude-opus-4-6 (Subscription primary) - 2. glm/glm-4.7 (Cheap backup, $0.6/1M) - 3. minimax/MiniMax-M2.1 (Cheapest fallback, $0.20/1M) - -Use in CLI: premium-coding -``` - -### Esimerkki 2: Vain ilmainen (nollahinta) - -``` -Name: free-combo -Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) - -Cost: $0 forever! -``` - -</details> - -<details> -<summary><b>🔧 CLI-integrointi</b></summary> - -### Kohdistimen IDE - -``` -Settings → Models → Advanced: - OpenAI API Base URL: http://localhost:20128/v1 - OpenAI API Key: [from OmniRoute dashboard] - Model: cc/claude-opus-4-6 -``` - -### Claude Code - -Käytä kojelaudan **CLI Tools** -sivua määrittääksesi yhdellä napsautuksella tai muokkaa `~/.claude/settings.json` manuaalisesti. - -### Codex CLI - -```bash -export OPENAI_BASE_URL="http://localhost:20128" -export OPENAI_API_KEY="your-omniroute-api-key" - -codex "your prompt" -``` - -### OpenClaw - -**Vaihtoehto 1 – hallintapaneeli (suositus):** - -``` -Dashboard → CLI Tools → OpenClaw → Select Model → Apply -``` - -**Vaihtoehto 2 – Manuaalinen:** Muokkaa `~/.openclaw/openclaw.json`: - -```json -{ - "models": { - "providers": { - "omniroute": { - "baseUrl": "http://127.0.0.1:20128/v1", - "apiKey": "sk_omniroute", - "api": "openai-completions" - } - } - } -} -``` - -> **Huomaa:** OpenClaw toimii vain paikallisen OmniRouten kanssa. Käytä `127.0.0.1` `localhost` sijaan IPv6-resoluutioongelmien välttämiseksi. - -### Cline / Continue / RooCode - -``` -Settings → API Configuration: - Provider: OpenAI Compatible - Base URL: http://localhost:20128/v1 - API Key: [from OmniRoute dashboard] - Model: if/kimi-k2-thinking -``` - -### OpenCode - -**Vaihe 1:** Lisää OmniRoute mukautetuksi palveluntarjoajaksi: - -```bash -opencode -/connect -# Select "Other" → Enter ID: "omniroute" → Enter your OmniRoute API key -``` - -**Vaihe 2:** Luo/muokkaa `opencode.json` projektisi juuressa: - -```json -{ - "$schema": "https://opencode.ai/config.json", - "provider": { - "omniroute": { - "npm": "@ai-sdk/openai-compatible", - "name": "OmniRoute", - "options": { - "baseURL": "http://localhost:20128/v1" - }, - "models": { - "cc/claude-sonnet-4-20250514": { "name": "Claude Sonnet 4" }, - "gg/gemini-2.5-pro": { "name": "Gemini 2.5 Pro" }, - "if/kimi-k2-thinking": { "name": "Kimi K2 (Free)" } - } - } - } -} -``` - -**Vaihe 3:** Valitse malli OpenCodessa: - -```bash -/models -# Select any OmniRoute model from the list -``` - -> **Vinkki:** Lisää mikä tahansa malli, joka on saatavilla OmniRoute `/v1/models` -päätepisteessäsi `models` -osioon. Käytä muotoa `provider/model-id` OmniRoute-hallintapaneelista. - -</details> - ---- - -## 🐛 Vianetsintä - -<details> -<summary><b>Laajenna vianetsintäopas napsauttamalla</b></summary> - -**"Kielimalli ei antanut viestejä"** - -- Palveluntarjoajan kiintiö käytetty loppuun → Tarkista kojelaudan kiintiön seuranta -- Ratkaisu: Käytä yhdistelmävaraa tai vaihda halvempaan tasoon - -**hintarajoitus** - -- Tilauskiintiö loppu → Varaa GLM/MiniMaxiin -- Lisää yhdistelmä: `cc/claude-opus-4-6 → glm/glm-4.7 → if/kimi-k2-thinking` - -**OAuth-tunnus vanhentunut** - -- OmniRoute päivittää automaattisesti -- Jos ongelmat jatkuvat: Kojelauta → Palveluntarjoaja → Yhdistä uudelleen - -**Korkeat kustannukset** - -- Tarkista käyttötilastot kohdassa Dashboard → Costs -- Vaihda ensisijaiseksi malliksi GLM/MiniMax -- Use free tier (Gemini CLI, Qoder) for non-critical tasks - -**Kojelauta/API-portit ovat väärin** - -- `PORT` on kanoninen perusportti (ja oletuksena API-portti) -- `API_PORT` ohittaa vain OpenAI-yhteensopivan API-kuuntelijan -- `DASHBOARD_PORT` ohittaa vain kojelaudan/Next.js-kuuntelijan -- Aseta `NEXT_PUBLIC_BASE_URL` kojelautaasi/julkiseen URL-osoitteeseen (OAuth-takaisinsoittoja varten) - -**Pilvisynkronointivirheet** - -- Vahvista `BASE_URL` pistettä käynnissä olevaan esiintymääsi -- Vahvista `CLOUD_URL` pistettä odotettuun pilvipäätepisteeseen -- Pidä `NEXT_PUBLIC_*`-arvot kohdakkain palvelinpuolen arvojen kanssa - -**Ensimmäinen kirjautuminen ei toimi** - -- Tarkista `INITIAL_PASSWORD` kohteessa `.env` -- Jos ei ole asetettu, varasalasana on `123456` - -**Ei pyyntölokeja** - -- Aseta `ENABLE_REQUEST_LOGS=true` kohteeseen `.env` - -**Yhteystesti näyttää "Virheellinen" OpenAI-yhteensopiville palveluntarjoajille** - -- Monet palveluntarjoajat eivät paljasta `/models`-päätepistettä -- OmniRoute v1.0.6+ sisältää varatarkistuksen chatin loppuunsaattamisen kautta -- Varmista, että perus-URL sisältää `/v1`-liitteen - -### 🔐 OAuth etäpalvelimella - -<a name="oauth-on-a-remote-server"></a> -<a name="oauth-em-servidor-remoto"></a> - -> **⚠️ Tärkeää käyttäjille, jotka käyttävät OmniRoutea VPS:ssä, Dockerissa tai millä tahansa etäpalvelimella** - -#### Miksi Antigravity / Gemini CLI OAuth epäonnistuu etäpalvelimissa? - -**Antigravity**- ja **Gemini CLI** -palveluntarjoajat käyttävät **Google OAuth 2.0** -versiota. Google edellyttää, että OAuth-kulun `redirect_uri` vastaa täsmälleen yhtä sovelluksen Google Cloud Consolessa esirekisteröityistä URI:ista. - -OmniRouteen niputetut OAuth-kirjautumistiedot on rekisteröity **vain `localhost` varten**. Kun käytät OmniRoutea etäpalvelimella (esim. `https://omniroute.myserver.com`), Google hylkää todennuksen seuraavilla tavoilla: - -``` -Error 400: redirect_uri_mismatch -``` - -#### Ratkaisu: Määritä omat OAuth-kirjautumistietosi - -Sinun on luotava **OAuth 2.0 -asiakastunnus** Google Cloud Consolessa palvelimesi URI:lla. - -#### Askel askeleelta - -**1. Avaa Google Cloud Console** - -Siirry osoitteeseen: [https://console.cloud.google.com/apis/credentials](https://console.cloud.google.com/apis/credentials) - -**2. Luo uusi OAuth 2.0 -asiakastunnus** - -- Napsauta **"+ Luo kirjautumistiedot"** → **"OAuth-asiakastunnus"** -- Sovellustyyppi: **"Web-sovellus"** -- Nimi: kaikki mistä pidät (esim. `OmniRoute Remote`) - -**3. Lisää valtuutetut uudelleenohjaus-URI:t** - -Lisää **"Authorized redirect URIs"** -kenttään: - -``` -https://your-server.com/callback -``` - -> Korvaa `your-server.com` palvelimesi verkkotunnuksella tai IP-osoitteella (lisää tarvittaessa portti, esim. `http://45.33.32.156:20128/callback`). - -**4. Tallenna ja kopioi tunnistetiedot** - -Luomisen jälkeen Google näyttää **Client ID** ja **Client Secret**. - -**5. Aseta ympäristömuuttujat** - -`.env` (tai Docker-ympäristömuuttujat): - -```bash -# For Antigravity: -ANTIGRAVITY_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com -ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-your-secret - -# For Gemini CLI: -GEMINI_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com -GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -``` - -**6. Käynnistä OmniRoute uudelleen** - -```bash -# npm: -npm run dev - -# Docker: -docker restart omniroute -``` - -**7. Yritä muodostaa yhteys uudelleen** - -Dashboard → Providers → Antigravity (tai Gemini CLI) → OAuth - -Google ohjaa nyt oikein osoitteeseen `https://your-server.com/callback`. - ---- - -#### Väliaikainen kiertotapa (ilman mukautettuja kirjautumistietoja) - -Jos et halua määrittää omia tunnistetietojasi juuri nyt, voit silti käyttää **manuaalista URL-kulkua**: - -1. OmniRoute avaa Googlen valtuutus-URL-osoitteen -2. Valtuutuksen jälkeen Google yrittää uudelleenohjata osoitteeseen `localhost` (joka epäonnistuu etäpalvelimella) -3. **Kopioi koko URL-osoite** selaimesi osoitepalkista (vaikka sivu ei latautuisi) -4. Liitä URL-osoite OmniRoute-yhteysmodaalissa näkyvään kenttään -5. Napsauta **"Yhdistä"** - -> Tämä toimii, koska URL-osoitteessa oleva valtuutuskoodi on kelvollinen riippumatta siitä, ladattiinko uudelleenohjaussivu. - ---- - -<details> -<summary><b>🇧🇷 Versão em Português</b></summary> - -#### Onko OAuth do Antigravity / Gemini CLI falha em servidores Remotos? - -Os provedores **Antigravity** ja **Gemini CLI** usam **Google OAuth 2.0** para autenticação. O Google exige que a `redirect_uri` usada no fluxo OAuth seja **exatamente** uma das URIs pre-cadastradas no Google Cloud Console do aplicativo. - -As credenciais OAuth embutidas no OmniRoute estão cadastradas **apenas para `localhost`**. Quando você acessa o OmniRoute em um servidor Remoto (esim. `https://omniroute.meuservidor.com`), o Google rejeita a autenticação com: - -``` -Error 400: redirect_uri_mismatch -``` - -#### Ratkaisu: Määritä suas próprias credenciais OAuth - -Você precisa criar um **OAuth 2.0 Client ID** ei Google Cloud Console com URI do seu servidor. - -#### Passo a passo - -**1. Acesse tai Google Cloud Console** - -Abra: [https://console.cloud.google.com/apis/credentials](https://console.cloud.google.com/apis/credentials) - -**2. Crie um novo OAuth 2.0 -asiakastunnus** - -- Klikkaa em **"+ Luo kirjautumistiedot"** → **"OAuth-asiakastunnus"** -- Tipo de aplicativo: **"Web-sovellus"** -- Nimi: escolha qualquer nome (esim.: `OmniRoute Remote`) - -**3. Adicione valtuutettuina uudelleenohjaus-URI:ina** - -No campo **"Authorized redirect URIs"**, lisäys: - -``` -https://seu-servidor.com/callback -``` - -> Korvaa `seu-servidor.com` pelo dominio tai IP do seu servidor (mukaan lukien porta se necessário, esim. `http://45.33.32.156:20128/callback`). - -**4. Tallenna kopio valtuutuksena** - -Após criar, o Google mostrará o **Client ID** e o **Client Secret**. - -**5. Määritä variáveis de ambiente** - -Ei seu `.env` (ou nas variáveis de ambiente do Docker): - -```bash -# Para Antigravity: -ANTIGRAVITY_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com -ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret - -# Para Gemini CLI: -GEMINI_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com -GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -``` - -**6. Reinicie o OmniRoute** - -```bash -# Se usando npm: -npm run dev - -# Se usando Docker: -docker restart omniroute -``` - -**7. Tente conectar novamente** - -Dashboard → Providers → Antigravity (ou Gemini CLI) → OAuth - -Agora o Google redirecionará corretamente para `https://seu-servidor.com/callback` e a autenticação funcionará. - ---- - -#### Workaround temporário (sem configurar credenciais próprias) - -Se não quiser criar credenciais próprias agora, ainda é possível usar o fluxo **manual de URL**: - -1. OmniRoute lähettää Googlen lupa-osoitteen -2. Após você autorizar, o Google tentará redirecionar para `localhost` (que falha no servidor Remoto) -3. **Kopioi URL-osoite täydellinen** da barra de endereço do seu selaimessa (mesmo que a página não carregue) -4. Cole essa URL no campo que aparece no modal de conexão do OmniRoute -5. Klikkaa em **"Yhdistä"** - -> Este workaround funciona porque o código de autorização na URL é válido independente do redirect ter carregado ou não. - -</details> - ---- - -</details> - -## 🛠️ Tech Stack - -<details> -<summary><b>Laajenna teknisen pinon tiedot klikkaamalla</b></summary> - -- **Suoritusaika**: Node.js 18–22 LTS (⚠️ Node.js 24+ -versiota **ei tueta** — `better-sqlite3` alkuperäiset binaarit eivät ole yhteensopivia) -- **Kieli**: TypeScript 5.9 — **100 % TypeScript** `src/` ja `open-sse/` (nolla `any` ydinmoduuleissa versiosta 2.0 lähtien) -- **Framework**: Next.js 16 + React 19 + Tailwind CSS 4 -- **Tietokanta**: LowDB (JSON) + SQLite (verkkotunnuksen tila + välityspalvelimen lokit + MCP-tarkastus + reitityspäätökset) -- **Kaaviot**: Zod (MCP-työkalun I/O-validointi, API-sopimukset) -- **Protokollat**: MCP (stdio/HTTP) + A2A v0.3 (JSON-RPC 2.0 + SSE) -- **Striimaus**: Palvelimen lähettämät tapahtumat (SSE) -- **Auth**: OAuth 2.0 (PKCE) + JWT + API-avaimet + MCP-valtuutus -- **Testaus**: Node.js-testausohjelma + Vitest (900+ testiä, mukaan lukien yksikkö, integrointi, E2E) -- **CI/CD**: GitHub Actions (automaattinen npm-julkaisu + Docker Hub julkaisussa) -- **Verkkosivusto**: [omniroute.online](https://omniroute.online) -- **Paketti**: [npmjs.com/package/omniroute](https://www.npmjs.com/package/omniroute) -- **Dokkeri**: [hub.docker.com/r/diegosouzapw/omniroute](https://hub.docker.com/r/diegosouzapw/omniroute) -- **Kestävyys**: Katkaisija, eksponentiaalinen takaisku, ukkosen esto, TLS-huijaus, automaattinen yhdistelmä itsekorjaus - -</details> - ---- - -## 📖 Dokumentaatio - -| Asiakirja | Kuvaus | -| ---------------------------------------------- | --------------------------------------------------------------- | -| [User Guide](docs/USER_GUIDE.md) | Palveluntarjoajat, yhdistelmät, CLI-integrointi, käyttöönotto | -| [API Reference](docs/API_REFERENCE.md) | Kaikki päätepisteet esimerkeineen | -| [MCP Server](open-sse/mcp-server/README.md) | 16 MCP-työkalua, IDE-konfiguraatioita, Python/TS/Go-asiakkaita | -| [A2A Server](src/lib/a2a/README.md) | JSON-RPC 2.0 -protokolla, taidot, suoratoisto, tehtävänhallinta | -| [Auto-Combo Engine](docs/auto-combo.md) | 6-faktorinen pisteytys, tilapaketit, itsestään paraneva | -| [Troubleshooting](docs/TROUBLESHOOTING.md) | Yleisiä ongelmia ja ratkaisuja | -| [Architecture](docs/ARCHITECTURE.md) | Järjestelmäarkkitehtuuri ja sisäosat | -| [Contributing](CONTRIBUTING.md) | Kehittämisjärjestelyt ja -ohjeet | -| [OpenAPI Spec](docs/openapi.yaml) | OpenAPI 3.0 -spesifikaatio | -| [Security Policy](SECURITY.md) | Haavoittuvuusraportointi ja tietoturvakäytännöt | -| [VM Deployment](docs/VM_DEPLOYMENT_GUIDE.md) | Täydellinen opas: VM + nginx + Cloudflare-asennus | -| [Features Gallery](docs/FEATURES.md) | Visuaalinen kojelautakierros kuvakaappauksilla | -| [Release Checklist](docs/RELEASE_CHECKLIST.md) | Julkaisua edeltävän vahvistuksen vaiheet | - ---- - -## 🗺️ Etenemissuunnitelma - -OmniRoutella on **210+ suunniteltua ominaisuutta** useissa kehitysvaiheissa. Tässä ovat tärkeimmät alueet: - -| Luokka | Suunnitellut ominaisuudet | Kohokohdat | -| ------------------------------------------- | ------------------------- | ---------------------------------------------------------------------------------------------------------- | -| 🧠 **Routing & Intelligence** | 25+ | Pienimmän viiveen reititys, tunnistepohjainen reititys, kiintiön esitarkastus, P2C-tilin valinta | -| 🔒 **Turvallisuus ja vaatimustenmukaisuus** | 20+ | SSRF-karkaisu, valtuustietojen peittäminen, päätepistekohtainen nopeusraja, hallintaavaimen laajuus | -| 📊 **Havaittavuus** | 15+ | OpenTelemetry-integraatio, reaaliaikainen kiintiöiden seuranta, kustannusseuranta mallikohtaisesti | -| 🔄 **Tarjoajien integraatiot** | 20+ | Dynaaminen mallirekisteri, palveluntarjoajan jäähtyminen, usean tilin Codex, Copilot-kiintiön jäsentäminen | -| ⚡ **Suorituskyky** | 15+ | Kaksoisvälimuistikerros, kehotevälimuisti, vastausvälimuisti, suoratoiston ylläpitäminen, erä-API | -| 🌐 **Ekosysteemi** | 10+ | WebSocket API, konfiguroinnin hot-reload, hajautettu konfiguraatiosäilö, kaupallinen tila | - -### 🔜 Tulossa pian - -- 🔗 **OpenCode Integration** - Natiivitoimittajan tuki OpenCode AI -koodaus-IDE:lle -- 🔗 **TRAE-integraatio** — Täysi tuki TRAE AI -kehityskehykselle -- 📦 **Eräsovellusliittymä** — Asynkroninen eräkäsittely joukkopyyntöille -- 🎯 **Tagipohjainen reititys** - Reittipyynnöt mukautettujen tunnisteiden ja metatietojen perusteella -- 💰 **Alhaisimman kustannustason strategia** - Valitse automaattisesti halvin saatavilla oleva palveluntarjoaja - -> 📝 Täydelliset ominaisuudet saatavilla osoitteessa [**OMNI_TOKEN_342**](docs/new-features/) (217 yksityiskohtaista spesifikaatiota) - ---- - -## 👥 Avustajat - -[![Contributors](https://contrib.rocks/image?repo=diegosouzapw/OmniRoute&max=100&columns=20&anon=1)](https://github.com/diegosouzapw/OmniRoute/graphs/contributors) - -### Kuinka osallistua - -1. Haarukka arkisto -2. Luo ominaisuushaara (`git checkout -b feature/amazing-feature`) -3. Vahvista muutokset (`git commit -m 'Add amazing feature'`) -4. Työnnä haaraan (`git push origin feature/amazing-feature`) -5. Avaa vetopyyntö - -Katso tarkemmat ohjeet osoitteesta [CONTRIBUTING.md](CONTRIBUTING.md). - -### Uuden version julkaisu - -```bash -# Create a release — npm publish happens automatically -gh release create v2.0.0 --title "v2.0.0" --generate-notes -``` - ---- - -## 📊 Tähtihistoria - -## Stargazers ajan myötä - -## [![Stargazers over time](https://starchart.cc/diegosouzapw/OmniRoute.svg?variant=adaptive)](https://starchart.cc/diegosouzapw/OmniRoute) - -## 🙏 Kiitokset - -Erityinen kiitos **[9router](https://github.com/decolua/9router)**, **[decolua](https://github.com/decolua)** - alkuperäinen projekti, joka inspiroi tätä haarukkaa. OmniRoute rakentaa tälle uskomattomalle perustalle lisäominaisuuksia, multimodaalisia API-liittymiä ja täydellistä TypeScript-uudelleenkirjoitusta. - -Erityinen kiitos **[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)** - alkuperäiselle Go-toteutukselle, joka inspiroi tätä JavaScript-porttia. - ---- - -## 📄 Lisenssi - -MIT-lisenssi – katso lisätietoja osoitteesta [LICENSE](LICENSE). - ---- - -<div align="center"> - <sub>Rakennettu ❤️-kehittäjille, jotka koodaavat 24/7</sub> - <br/> - <sub><a href="https://omniroute.online">omniroute.online</a></sub> -</div> -<!-- GitHub-keskustelut otettu käyttöön yhteisön Q&A:ssa --> +👉 **[Read the Documentation here](docs/i18n/fi/README.md)** diff --git a/README.he.md b/README.he.md index b9e24c97e6..66366a95e7 100644 --- a/README.he.md +++ b/README.he.md @@ -1,2077 +1,5 @@ -# 🚀 OmniRoute — שער הבינה המלאכותית החינמית +# 🌐 OmniRoute (he) -### לעולם אל תפסיק לקוד. ניתוב חכם לדגמי בינה מלאכותית **בחינם ובעלות נמוכה** עם חזרה אוטומטית. +The documentation has been formalized and moved to our centralized i18n structure. -_שרת ה-API האוניברסלי שלך - נקודת קצה אחת, 67+ ספקים, אפס זמן השבתה. עכשיו עם תזמור סוכנים **MCP & A2A**._ - -**השלמות צ'אט • הטמעות • יצירת תמונות • וידאו • מוזיקה • אודיו • דירוג מחדש • **חיפוש אינטרנט** • שרת MCP • פרוטוקול A2A • 100% TypeScript** - ---- - -<div align="center"> - -[![npm version](https://img.shields.io/npm/v/omniroute?color=cb3837&logo=npm)](https://www.npmjs.com/package/omniroute) -[![npm downloads](https://img.shields.io/npm/dm/omniroute?color=cb3837&logo=npm&label=npm%20downloads)](https://www.npmjs.com/package/omniroute) -[![Docker Hub](https://img.shields.io/docker/v/diegosouzapw/omniroute?label=Docker%20Hub&logo=docker&color=2496ED)](https://hub.docker.com/r/diegosouzapw/omniroute) -[![Docker Pulls](https://img.shields.io/docker/pulls/diegosouzapw/omniroute?logo=docker&color=2496ED&label=docker%20pulls)](https://hub.docker.com/r/diegosouzapw/omniroute) -[![License](https://img.shields.io/github/license/diegosouzapw/OmniRoute)](https://github.com/diegosouzapw/OmniRoute/blob/main/LICENSE) -[![Website](https://img.shields.io/badge/Website-omniroute.online-blue?logo=google-chrome&logoColor=white)](https://omniroute.online) -[![WhatsApp](https://img.shields.io/badge/WhatsApp-Community-25D366?logo=whatsapp&logoColor=white)](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) - -[🌐 Website](https://omniroute.online) • [🚀 Quick Start](#-quick-start) • [💡 Features](#-key-features) • [📖 Docs](#-documentation) • [💰 Pricing](#-pricing-at-a-glance) • [💬 WhatsApp](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) - -</div> - -🌐 **זמין ב:** 🇺🇸 [English](README.md) | 🇧🇷 [Português (Brasil)](docs/i18n/pt-BR/README.md) | 🇪🇸 [Español](docs/i18n/es/README.md) | 🇫🇷 [Français](docs/i18n/fr/README.md) | 🇮🇹 [Italiano](docs/i18n/it/README.md) | 🇷🇺 [Русский](docs/i18n/ru/README.md) | 🇨🇳 [中文 (简体)](docs/i18n/zh-CN/README.md) | 🇩🇪 [Deutsch](docs/i18n/de/README.md) | 🇮🇳 [हिन्दी](docs/i18n/in/README.md) | 🇹🇭 [ไทย](docs/i18n/th/README.md) | 🇺🇦 [Українська](docs/i18n/uk-UA/README.md) | 🇸🇦 [العربية](docs/i18n/ar/README.md) | 🇯🇵 [日本語](docs/i18n/ja/README.md) | 🇻🇳 [Tiếng Việt](docs/i18n/vi/README.md) | 🇧🇬 [Български](docs/i18n/bg/README.md) | 🇩🇰 [Dansk](docs/i18n/da/README.md) | 🇫🇮 [Suomi](docs/i18n/fi/README.md) | 🇮🇱 [עברית](docs/i18n/he/README.md) | 🇭🇺 [Magyar](docs/i18n/hu/README.md) | 🇮🇩 [Bahasa Indonesia](docs/i18n/id/README.md) | 🇰🇷 [한국어](docs/i18n/ko/README.md) | 🇲🇾 [Bahasa Melayu](docs/i18n/ms/README.md) | 🇳🇱 [Nederlands](docs/i18n/nl/README.md) | 🇳🇴 [Norsk](docs/i18n/no/README.md) | 🇵🇹 [Português (Portugal)](docs/i18n/pt/README.md) | 🇷🇴 [Română](docs/i18n/ro/README.md) | 🇵🇱 [Polski](docs/i18n/pl/README.md) | 🇸🇰 [Slovenčina](docs/i18n/sk/README.md) | 🇸🇪 [Svenska](docs/i18n/sv/README.md) | 🇵🇭 [Filipino](docs/i18n/phi/README.md) | 🇨🇿 [Čeština](docs/i18n/cs/README.md) - ---- - -## 🆕 מה חדש בגרסה 3.0.0 - -> **משדרגים מגרסה 2.9.5?** — עיין ב-[full CHANGELOG](CHANGELOG.md#300--2026-03-22-release-candidate--not-yet-merged-to-main) לכל השינויים. - -| אזור | שנה | -| ------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| 🔒 **CodeQL Security** | תוקן יותר מ-10 התראות CodeQL: פולינום-redos, unsecure-randomness, תיקון הזרקת מעטפת | -| ✅ **אימות מסלול** | כל 176 מסלולי ה-API מאומתים כעת עם סכימות Zod + `validateBody()` — מעברי CI `check:route-validation:t06` | -| 🐛 **הדלפת תג omniModel** | תגי `<omniModel>` פנימיים אינם דולפים יותר ללקוחות בתגובות הזרמת SSE (#585) | -| 🔑 **Registered Keys API** | הקצאה אוטומטית של מפתחות API באמצעות `POST /api/v1/registered-keys` עם אכיפת מכסות לכל ספק/חשבון, אימפוטנציה, אחסון SHA-256 ודיווח אופציונלי על בעיות GitHub | -| 👁️ **Scoped API Key Reveal** 🆕 | Opt-in recovery of API keys via `ALLOW_API_KEY_REVEAL` | -| 🎨 **אייקוני ספק** | יותר מ-130 סמלי לוגו של ספקים באמצעות `@lobehub/icons` (SVG) עם PNG → שרשרת חילופין גנרית | -| 🔄 **סנכרון אוטומטי דגם** | מתזמן 24 שעות וממשק משתמש ידני כדי לסנכרן רשימות דגמים עבור ספקים מובנים ומותאמים אישית תואמי OpenAI | -| 🌐 **OpenCode Zen/Go** | שני ספקים חדשים מ-@kang-heewon דרך PR #530: שכבת חינם + שכבת מנוי דרך `OpencodeExecutor` | -| 🐛 **Gemini CLI OAuth** | שגיאה ניתנת לפעולה כאשר `GEMINI_OAUTH_CLIENT_SECRET` חסר ב-Docker (הייתה שגיאה סתמית של Google) | -| 🐛 **תצורת OpenCode** | `saveOpenCodeConfig()` כותב כעת כראוי TOML ל-`XDG_CONFIG_HOME` | -| 🐛 **עקיפת דגם מוצמד** | `body.model` מוגדר כראוי ל-`pinnedModel` על הגנת הקשר מטמון | -| 🐛 **קודקס/לולאת קלוד** | `tool_result` בלוקים מומרים כעת לטקסט כדי לעצור לולאות אינסופיות | -| 🐛 **הפניה מחדש לכניסה** | הכניסה לא קופאת עוד לאחר דילוג על הגדרת הסיסמה | -| 🐛 **נתיבי חלונות** | נתיבי MSYS2/Git-Bash (`/c/...`) מנורמלים ל-`C:\...` באופן אוטומטי | - ---- - -## 🖼️ לוח המחוונים הראשי - -<div align="center"> - <img src="./docs/screenshots/MainOmniRoute.png" alt="OmniRoute Dashboard" width="800"/> -</div> - ---- - -## 📸 תצוגה מקדימה של לוח המחוונים - -<details> -<summary><b>לחץ כדי לראות צילומי מסך של לוח המחוונים</b></summary> - -| עמוד | צילום מסך | -| --------------- | ------------------------------------------------- | -| **ספקים** | ![Providers](docs/screenshots/01-providers.png) | -| **שילובים** | ![Combos](docs/screenshots/02-combos.png) | -| **אנליטיקה** | ![Analytics](docs/screenshots/03-analytics.png) | -| **בריאות** | ![Health](docs/screenshots/04-health.png) | -| **מתרגם** | ![Translator](docs/screenshots/05-translator.png) | -| **הגדרות** | ![Settings](docs/screenshots/06-settings.png) | -| **כלי CLI** | ![CLI Tools](docs/screenshots/07-cli-tools.png) | -| **יומני שימוש** | ![Usage](docs/screenshots/08-usage.png) | -| **נקודות קצה** | ![Endpoints](docs/screenshots/09-endpoint.png) | - -</details> - ---- - -### 🤖 ספק AI בחינם עבור סוכני הקידוד המועדפים עליך - -_חבר כל כלי IDE או CLI המופעל על ידי AI דרך OmniRoute - שער API בחינם לקידוד בלתי מוגבל._ - - <table> - <tr> - <td align="center" width="110"> - <a href="https://github.com/openclaw/openclaw"> - <img src="./public/providers/openclaw.png" alt="OpenClaw" width="48"/><br/> - <b>OpenClaw</b> - </a><br/> - <sub>⭐ 205K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/HKUDS/nanobot"> - <img src="./public/providers/nanobot.png" alt="NanoBot" width="48"/><br/> - <b>NanoBot</b> - </a><br/> - <sub>⭐ 20.9K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/sipeed/picoclaw"> - <img src="./public/providers/picoclaw.jpg" alt="PicoClaw" width="48"/><br/> - <b>PicoClaw</b> - </a><br/> - <sub>⭐ 14.6K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/zeroclaw-labs/zeroclaw"> - <img src="./public/providers/zeroclaw.png" alt="ZeroClaw" width="48"/><br/> - <b>ZeroClaw</b> - </a><br/> - <sub>⭐ 9.9K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/nearai/ironclaw"> - <img src="./public/providers/ironclaw.png" alt="IronClaw" width="48"/><br/> - <b>IronClaw</b> - </a><br/> - <sub>⭐ 2.1K</sub> - </td> - </tr> - <tr> - <td align="center" width="110"> - <a href="https://github.com/anomalyco/opencode"> - <img src="./public/providers/opencode.svg" alt="OpenCode" width="48"/><br/> - <b>OpenCode</b> - </a><br/> - <sub>⭐ 106K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/openai/codex"> - <img src="./public/providers/codex.png" alt="Codex CLI" width="48"/><br/> - <b>Codex CLI</b> - </a><br/> - <sub>⭐ 60.8K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/anthropics/claude-code"> - <img src="./public/providers/claude.png" alt="Claude Code" width="48"/><br/> - <b>Claude Code</b> - </a><br/> - <sub>⭐ 67.3K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/google-gemini/gemini-cli"> - <img src="./public/providers/gemini-cli.png" alt="Gemini CLI" width="48"/><br/> - <b>Gemini CLI</b> - </a><br/> - <sub>⭐ 94.7K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/Kilo-Org/kilocode"> - <img src="./public/providers/kilocode.png" alt="Kilo Code" width="48"/><br/> - <b>Kilo Code</b> - </a><br/> - <sub>⭐ 15.5K</sub> - </td> - </tr> - </table> - -<sub>📡 כל הסוכנים מתחברים דרך <code>http://localhost:20128/v1</code> או <code>http://cloud.omniroute.online/v1__OMNI_TOKEN_466, —limited one config מכסה</sub> - ---- - -## 🤔 למה OmniRoute? - -**הפסיקו לבזבז כסף ולהגיע לגבולות:** - -- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> מכסת המנויים מסתיימת ללא שימוש בכל חודש -- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> מגבלות קצב עוצרות אותך בקידוד באמצע -- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> ממשקי API יקרים ($20-50 לחודש לכל ספק) -- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> מעבר ידני בין ספקים - -**OmniRoute פותר את זה:** - -- ✅ **מקסם מנויים** - עקוב אחר מכסת, השתמש בכל סיביות לפני האיפוס -- ✅ **החזר אוטומטי** - מנוי → מפתח API → זול → חינם, אפס זמן השבתה -- ✅ **ריבוי חשבונות** - סיבוב בין חשבונות לכל ספק -- ✅ **אוניברסלי** - עובד עם קלוד קוד, Codex, Gemini CLI, Cursor, Cline, OpenClaw, כל כלי CLI - ---- - -## 📧 תמיכה - -> 💬 **הצטרפו לקהילה שלנו!** [WhatsApp Group](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) — קבל עזרה, שתף טיפים והישאר מעודכן. - -- **אתר**: [omniroute.online](https://omniroute.online) -- **GitHub**: [github.com/diegosouzapw/OmniRoute](https://github.com/diegosouzapw/OmniRoute) -- **בעיות**: [github.com/diegosouzapw/OmniRoute/issues](https://github.com/diegosouzapw/OmniRoute/issues) -- **וואטסאפ**: [Community Group](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) -- **תורם**: ראה [CONTRIBUTING.md](CONTRIBUTING.md), פתח יחסי ציבור או בחר `good first issue` -- **פרויקט מקורי**: [9router by decolua](https://github.com/decolua/9router) - -### 🐛 מדווחים על באג? - -בעת פתיחת בעיה, הפעל את פקודת מידע מערכת וצרף את הקובץ שנוצר: - -```bash -npm run system-info -``` - -זה יוצר `system-info.txt` עם גרסת Node.js, גרסת OmniRoute, פרטי מערכת ההפעלה, כלי CLI מותקנים (qoder, gemini, claude, codex, antigravity, droid וכו'), סטטוס Docker/PM2 וחבילות מערכת - כל מה שאנחנו צריכים כדי לשחזר את הבעיה במהירות. צרף את הקובץ ישירות לבעיית GitHub שלך. - ---- - -## 🔄 איך זה עובד - -``` -┌─────────────┐ -│ Your CLI │ (Claude Code, Codex, Gemini CLI, OpenClaw, Cursor, Cline...) -│ Tool │ -└──────┬──────┘ - │ http://localhost:20128/v1 - ↓ -┌─────────────────────────────────────────┐ -│ OmniRoute (Smart Router) │ -│ • Format translation (OpenAI ↔ Claude) │ -│ • Quota tracking + Embeddings + Images │ -│ • Auto token refresh │ -└──────┬──────────────────────────────────┘ - │ - ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex, Gemini CLI - │ ↓ quota exhausted - ├─→ [Tier 2: API KEY] DeepSeek, Groq, xAI, Mistral, NVIDIA NIM, etc. - │ ↓ budget limit - ├─→ [Tier 3: CHEAP] GLM ($0.6/1M), MiniMax ($0.2/1M) - │ ↓ budget limit - └─→ [Tier 4: FREE] Qoder, Qwen, Kiro (unlimited) - -Result: Never stop coding, minimal cost -``` - ---- - -## 🎯 מה OmniRoute פותר - 30 נקודות כאב אמיתיות ומקרי שימוש - -> **כל מפתח המשתמש בכלי בינה מלאכותית מתמודד עם הבעיות הללו מדי יום.** OmniRoute נבנתה כדי לפתור את כולן - החל מחריפות עלויות ועד לחסימות אזוריות, מזרימות OAuth שבורות ועד פעולות פרוטוקול וצפייה ארגונית. - -<details> -<summary><b>💸 1. "אני משלם עבור מנוי יקר אבל עדיין מופרע על ידי גבולות"</b></summary> - -מפתחים משלמים $20-200 לחודש עבור Claude Pro, Codex Pro או GitHub Copilot. אפילו בתשלום, למכסה יש תקרה - 5 שעות שימוש, מגבלות שבועיות או מגבלות תעריף לדקה. סשן קידוד באמצע, הספק מפסיק להגיב והמפתח מאבד זרימה ופרודוקטיביות. - -**איך OmniRoute פותר את זה:** - -- **Smart 4-Tier Fallback** - אם מכסת המנויים נגמרת, מפנה אוטומטית למפתח API → זול → חינם עם אפס התערבות ידנית -- **מעקב מכסות בזמן אמת** - מציג צריכת אסימונים בזמן אמת עם ספירה לאחור מאפס (5 שעות, יומי, שבועי) -- **תמיכה בריבוי חשבונות** - מספר חשבונות לכל ספק עם סבב אוטומטי - כאשר אחד אוזל, עובר לאחר -- **שילובים מותאמים אישית** - שרשראות ניתנות להתאמה אישית עם 6 אסטרטגיות איזון (מילוי ראשון, סיבוב סיבובי, P2C, אקראי, הכי פחות בשימוש, אופטימיזציה לעלות) -- **Codex Business Quotas** - ניטור מכסות סביבת עבודה עסקית/צוותית ישירות בלוח המחוונים - -</details> - -<details> -<summary><b>🔌 2. "אני צריך להשתמש במספר ספקים אבל לכל אחד יש API שונה"</b></summary> - -OpenAI משתמש בפורמט אחד, קלוד (אנתרופיק) משתמש בפורמט אחר, תאומים בנוסח אחר. אם מפתח רוצה לבחון דגמים מספקים שונים או לחלוף ביניהם, הוא צריך להגדיר מחדש SDK, לשנות נקודות קצה, להתמודד עם פורמטים לא תואמים. לספקים מותאמים אישית (FriendLI, NIM) יש נקודות קצה לא סטנדרטיות במודל. - -**איך OmniRoute פותר את זה:** - -- **נקודת קצה מאוחדת** - `http://localhost:20128/v1` יחיד משמש כ-proxy עבור כל 67+ הספקים -- **תרגום פורמט** — אוטומטי ושקוף: OpenAI ↔ Claude ↔ Gemini ↔ Responses API -- **חיטוי תגובה** - מסיר שדות לא סטנדרטיים (`x_groq`, `usage_breakdown`, `service_tier`) שמפרקים את OpenAI SDK v1.83+ -- **נורמליזציה של תפקידים** - ממירה `developer` → `system` עבור ספקים שאינם OpenAI; `system` → `user` עבור GLM/ERNIE -- **Think Tag Extraction** — מחלץ `<think>` בלוקים מדגמים כמו DeepSeek R1 לתוך `reasoning_content` סטנדרטי -- **פלט מובנה עבור מזל תאומים** — `json_schema` → `responseMimeType`/`responseSchema` המרה אוטומטית -- **`stream` ברירת המחדל היא `false`** - מתיישר עם מפרט OpenAI, הימנעות SSE בלתי צפוי ב- Python/Rust/Go SDK - -</details> - -<details> -<summary><b>🌐 3. "ספק ה-AI שלי חוסם את האזור/המדינה שלי"</b></summary> - -ספקים כמו OpenAI/Codex חוסמים גישה מאזורים גיאוגרפיים מסוימים. משתמשים מקבלים שגיאות כמו `unsupported_country_region_territory` במהלך חיבורי OAuth ו-API. זה מתסכל במיוחד עבור מפתחים ממדינות מתפתחות. - -**איך OmniRoute פותר את זה:** - -- **תצורת פרוקסי בשלוש רמות** - פרוקסי ניתן להגדרה ב-3 רמות: גלובלית (כל התעבורה), לכל ספק (ספק אחד בלבד), ולכל חיבור/מפתח -- **תגי פרוקסי מקודדים בצבע** - אינדיקטורים חזותיים: 🟢 פרוקסי גלובלי, 🟡 פרוקסי ספק, 🔵 פרוקסי חיבור, תמיד מציג את ה-IP -- **החלפת אסימונים של OAuth באמצעות פרוקסי** - זרימת OAuth עוברת גם דרך ה-proxy, ופותרת את `unsupported_country_region_territory` -- **בדיקות חיבור באמצעות פרוקסי** - בדיקות חיבור משתמשות בפרוקסי המוגדר (לא עוד מעקף ישיר) -- **תמיכה SOCKS5** — תמיכה מלאה ב-Proxy SOCKS5 לניתוב יוצא -- **זיוף טביעות אצבע TLS** - טביעת אצבע TLS דמוית דפדפן באמצעות `wreq-js` כדי לעקוף את זיהוי הבוטים -- **🔏 התאמת טביעות אצבע של CLI** - מסדר מחדש כותרות ושדות גוף כדי להתאים לחתימות בינאריות מקוריות של CLI, ומפחית באופן דרסטי את הסיכון לסימון חשבון. ה-IP של ה-proxy נשמר - אתה מקבל גם מיסוך **ו** IP בו-זמנית - -</details> - -<details> -<summary><b>🆓 4. "אני רוצה להשתמש ב-AI לקידוד אבל אין לי כסף"</b></summary> - -לא כולם יכולים לשלם 20-200 $ לחודש עבור מנויי AI. סטודנטים, מפתחים ממדינות מתפתחות, חובבים ופרילנסרים צריכים גישה לדגמים איכותיים בעלות אפסית. - -**איך OmniRoute פותר את זה:** - -- **ספקי שכבת חינם מובנית** - תמיכה מקורית עבור 100% ספקים חינמיים: Qoder (5 דגמים ללא הגבלה דרך OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited-qwens,-rs) qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (קלוד + AWS Builder ID בחינם), Gemini CLI (180K אסימונים/חודש חינם) -- **Ollama Cloud** - דגמי Ollama המתארחים בענן ב-`api.ollama.com` עם שכבת "שימוש קל" בחינם; השתמש בקידומת `ollamacloud/<model>` -- **שילובים בחינם בלבד** — שרשרת `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0 לחודש עם אפס זמן השבתה -- **גישה חופשית ל-NVIDIA NIM** - גישה חופשית של ~40 RPM ל-dev-forever ל-70+ דגמים בכתובת build.nvidia.com (מעבר מנקודות זכות למגבלות תעריף טהורות) -- **אסטרטגיית אופטימיזציה לעלות** — אסטרטגיית ניתוב שבוחרת אוטומטית את הספק הזמין הזול ביותר - -</details> - -<details> -<summary><b>🔒 5. "אני צריך להגן על שער הבינה המלאכותית שלי מגישה לא מורשית"</b></summary> - -בעת חשיפת שער AI לרשת (LAN, VPS, Docker), כל מי שיש לו את הכתובת יכול לצרוך את האסימונים/מכסה של המפתח. ללא הגנה, ממשקי API חשופים לשימוש לרעה, הזרקה מהירה וניצול לרעה. - -**איך OmniRoute פותר את זה:** - -- **ניהול מפתחות API** - יצירה, סיבוב והיקף לכל ספק עם עמוד `/dashboard/api-manager` ייעודי -- **הרשאות ברמת הדגם** - הגבל מפתחות API לדגמים ספציפיים (`openai/*`, דפוסי תווים כלליים), עם הלחצן 'אפשר הכל/הגבל' -- **API Endpoint Protection** — דרוש מפתח עבור `/v1/models` וחסום ספקים ספציפיים מהרישום -- **Auth Guard + CSRF Protection** — כל מסלולי לוח המחוונים מוגנים באמצעות תוכנת `withAuth` + אסימוני CSRF -- ** מגביל קצב** - הגבלת קצב לפי IP עם חלונות הניתנים להגדרה -- **סינון IP** — רשימת הרשאות/רשימת חסימות לבקרת גישה -- **משמר הזרקה מהירה** - חיטוי נגד דפוסי הנחיה זדוניים -- **הצפנת AES-256-GCM** - אישורים מוצפנים בזמן מנוחה - -</details> - -<details> -<summary><b>🛑 6. "הספק שלי נפל ואיבדתי את זרימת הקידוד שלי"</b></summary> - -ספקי בינה מלאכותית עלולים להפוך לבלתי יציבים, להחזיר שגיאות 5xx או לפגוע במגבלות קצב זמניות. אם מפתח תלוי בספק יחיד, הם מופרעים. ללא מפסקים, נסיונות חוזרים ונשנים עלולים לקרוס את האפליקציה. - -**איך OmniRoute פותר את זה:** - -- **מפסק מעגלים לכל דגם** — פתיחה/סגירה אוטומטית עם ספים הניתנים להגדרה והתקררות (סגור/פתוח/חצי פתוח), בהיקף לכל דגם כדי למנוע בלוקים מדורגים -- **גיבוי אקספוננציאלי** - עיכובים מתקדמים בניסיון חוזר -- **עדר נגד רעמים** - הגנה על מוטקס + סמפור מפני סופות ניסיונות חוזרות במקביל -- **שרשראות משולבות Fallback** - אם הספק הראשי נכשל, נופל אוטומטית בשרשרת ללא התערבות -- **מפסק משולב** - משבית אוטומטית ספקים כושלים בשרשרת משולבת -- **לוח מחוונים לבריאות** - ניטור זמן פעולה, מצבי מפסק זרם, נעילות, סטטיסטיקות מטמון, זמן אחזור p50/p95/p99 - -</details> - -<details> -<summary><b>🔧 7. "הגדרת כל כלי בינה מלאכותית היא מייגעת וחוזרת על עצמה"</b></summary> - -מפתחים משתמשים ב-Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code... כל כלי צריך תצורה שונה (נקודת קצה, מפתח, מודל API). הגדרה מחדש בעת החלפת ספקים או דגמים היא בזבוז זמן. - -**איך OmniRoute פותר את זה:** - -- **לוח המחוונים של CLI Tools** - דף ייעודי עם הגדרה בלחיצה אחת עבור Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline -- **GitHub Copilot Config Generator** — מייצר `chatLanguageModels.json` עבור קוד VS עם בחירת דגמים בכמות גדולה -- **אשף ההטמעה** — הגדרה מודרכת בת 4 שלבים למשתמשים ראשונים -- **נקודת קצה אחת, כל הדגמים** - הגדר את `http://localhost:20128/v1` פעם אחת, גש ל-67+ ספקים - -</details> - -<details> -<summary><b>🔑 8. "ניהול אסימוני OAuth ממספר ספקים זה גיהנום"</b></summary> - -Claude Code, Codex, Gemini CLI, Copilot - כולם משתמשים ב-OAuth 2.0 עם אסימונים שפג תוקפם. מפתחים צריכים לבצע אימות מחדש כל הזמן, להתמודד עם `client_secret is missing`, `redirect_uri_mismatch` וכשלים בשרתים מרוחקים. OAuth ב-LAN/VPS בעייתי במיוחד. - -**איך OmniRoute פותר את זה:** - -- **רענון אסימון אוטומטי** - אסימוני OAuth מתרעננים ברקע לפני פקיעת תוקף -- **OAuth 2.0 (PKCE) מובנה** - זרימה אוטומטית עבור Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder -- ** OAuth מרובה חשבונות** - מספר חשבונות לכל ספק באמצעות חילוץ אסימון JWT/ID -- **OAuth LAN/תיקון מרחוק** - זיהוי IP פרטי עבור `redirect_uri` + מצב כתובת URL ידני עבור שרתים מרוחקים -- **OAuth Behind Nginx** - משתמש ב-`window.location.origin` לתאימות פרוקסי הפוכה -- **מדריך OAuth מרחוק** - מדריך שלב אחר שלב לאישורי Google Cloud ב-VPS/Docker - -</details> - -<details> -<summary><b>📊 9. "אני לא יודע כמה אני מוציא או איפה"</b></summary> - -מפתחים משתמשים במספר ספקים בתשלום אך אין להם ראייה אחידה של הוצאות. לכל ספק יש לוח מחוונים משלו לחיוב, אבל אין תצוגה מאוחדת. עלויות בלתי צפויות עלולות להיערם. - -**איך OmniRoute פותר את זה:** - -- **לוח מחוונים של ניתוח עלויות** - מעקב אחר עלויות לפי אסימון וניהול תקציב לכל ספק -- **מגבלות תקציב לכל שכבה** - תקרת הוצאה לכל שכבה שמפעילה נפילה אוטומטית -- **תצורת תמחור לפי דגם** — מחירים הניתנים להגדרה לכל דגם -- **סטטיסטיקת שימוש לכל מפתח API** - ספירת בקשות וחותמת זמן אחרונה בשימוש לכל מפתח -- **לוח המחוונים של אנליטיקס** - כרטיסי סטטיסטיקה, טבלת שימוש במודל, טבלת ספקים עם אחוזי הצלחה והשהייה - -</details> - -<details> -<summary><b>🐛 10. "אני לא יכול לאבחן שגיאות ובעיות בשיחות AI"</b></summary> - -כאשר שיחה נכשלת, ה-dev לא יודע אם זו הייתה מגבלת תעריף, אסימון שפג תוקפו, פורמט שגוי או שגיאת ספק. יומנים מפוצלים על פני מסופים שונים. ללא צפייה, איתור באגים הוא ניסוי וטעייה. - -**איך OmniRoute פותר את זה:** - -- **לוח מחוונים של יומנים מאוחדים** - 4 כרטיסיות: יומני בקשות, יומני פרוקסי, יומני ביקורת, מסוף -- **מציג יומן מסוף** - מציג בזמן אמת בסגנון טרמינל עם רמות מקודדות צבע, גלילה אוטומטית, חיפוש, סינון -- **SQLite Proxy Logs** - יומנים מתמשכים ששורדים אתחול מחדש של השרת -- **מגרש משחקים לתרגום** - 4 מצבי ניפוי באגים: מגרש משחקים (תרגום פורמט), בודק צ'אט (הלוך ושוב), ספסל בדיקה (אצווה), צג חי (בזמן אמת) -- **Request Telemetry** — חביון p50/p95/p99 + X-Request-Id מעקב -- **רישום מבוסס קבצים עם סיבוב** - מיירט המסוף לוכד הכל ליומן JSON עם סיבוב מבוסס גודל -- **דוח מידע מערכת** — `npm run system-info` יוצר `system-info.txt` עם הסביבה המלאה שלך (גרסת צומת, גרסת OmniRoute, מערכת הפעלה, כלי CLI, סטטוס Docker/PM2). צרף אותו בעת דיווח על בעיות לבדיקה מיידית. - -</details> - -<details> -<summary><b>🏗️ 11. "פריסה ותחזוקה של השער מורכבת"</b></summary> - -התקנה, הגדרה ותחזוקה של פרוקסי בינה מלאכותית בסביבות שונות (מקומי, VPS, Docker, ענן) היא עתירת עבודה. בעיות כמו נתיבים מקודדים, `EACCES` על ספריות, התנגשויות יציאות ובנייה בין פלטפורמות מוסיפות חיכוך. - -**איך OmniRoute פותר את זה:** - -- **התקנה גלובלית npm** — `npm install -g omniroute && omniroute` — בוצעה -- **Docker Multi-Platform** - מקורי AMD64 + ARM64 (Apple Silicon, AWS Graviton, Raspberry Pi) -- **Docker Compose Profiles** — `base` (ללא כלי CLI) ו`cli` (עם קוד של קלוד, Codex, OpenClaw) -- **אפליקציית Electron Desktop** — אפליקציה מקורית עבור Windows/macOS/Linux עם מגש מערכת, הפעלה אוטומטית, מצב לא מקוון -- **מצב יציאות מפוצלות** - API ולוח מחוונים ביציאות נפרדות עבור תרחישים מתקדמים (פרוקסי הפוך, רשת קונטיינר) -- **Cloud Sync** - הגדרת סנכרון בין מכשירים באמצעות Cloudflare Workers -- **גיבויי DB** - גיבוי, שחזור, ייצוא וייבוא אוטומטי של כל ההגדרות - -</details> - -<details> -<summary><b>🌍 12. "הממשק הוא באנגלית בלבד והצוות שלי לא מדבר אנגלית"</b></summary> - -צוותים במדינות שאינן דוברות אנגלית, במיוחד באמריקה הלטינית, אסיה ואירופה, נאבקים עם ממשקים באנגלית בלבד. מחסומי שפה מפחיתים את האימוץ ומגדילים את שגיאות התצורה. - -**איך OmniRoute פותר את זה:** - -- **לוח המחוונים i18n — 30 שפות** — כל 500+ המקשים מתורגמים כולל ערבית, בולגרית, דנית, גרמנית, ספרדית, פינית, צרפתית, עברית, הינדית, הונגרית, אינדונזית, איטלקית, יפנית, קוריאנית, מלאית, הולנדית, נורווגית, פולנית, פורטוגזית (PT/BR), רומנית, רוסית, סלובקית, שוודית, תאילנדית, סלובקית, שוודית, סינית, סלובקית, וייטנאם -- **תמיכה ב-RTL** — תמיכה מימין לשמאל לערבית ולעברית -- ** README מרובים שפות** - 30 תרגומי תיעוד מלאים -- **בורר שפה** - סמל גלובוס בכותרת למעבר בזמן אמת - -</details> - -<details> -<summary><b>🔄 13. "אני צריך יותר מצ'אט - אני צריך הטמעות, תמונות, אודיו"</b></summary> - -AI זה לא רק השלמת צ'אט. מפתחים צריכים ליצור תמונות, לתמלל אודיו, ליצור הטמעות עבור RAG, לדרג מחדש מסמכים ולתת תוכן. לכל API יש נקודת קצה ופורמט שונים. - -**איך OmniRoute פותר את זה:** - -- **הטמעות** — `/v1/embeddings` עם 6 ספקים ו-9 דגמים ומעלה -- **יצירת תמונות** — `/v1/images/generations` עם 10 ספקים ו-20+ דגמים (OpenAI, xAI, Together, Fireworks, Nebius, Hyperbolic, NanoBanana, Antigravity, SD WebUI, ComfyUI) -- **טקסט לווידאו** — `/v1/videos/generations` — ComfyUI (AnimateDiff, SVD) ו-SD WebUI -- **טקסט למוזיקה** — `/v1/music/generations` — ComfyUI (פתוח אודיו יציב, MusicGen) -- **תמלול אודיו** — `/v1/audio/transcriptions` — Whisper + Nvidia NIM, HuggingFace, Qwen3 -- **טקסט לדיבור** — `/v1/audio/speech` — ElevenLabs, Nvidia NIM, HuggingFace, Coqui, Tortoise, Qwen3, **Inworld**, **Cartesia**, **PlayHT**, + ספקים קיימים -- **מנחים** — `/v1/moderations` — בדיקות בטיחות תוכן -- **דירוג מחדש** — `/v1/rerank` — דירוג מחדש של רלוונטיות המסמך -- **Responses API** - תמיכה מלאה `/v1/responses` עבור Codex - -</details> - -<details> -<summary><b>🧪 14. "אין לי דרך לבדוק ולהשוות איכות בין דגמים"</b></summary> - -מפתחים רוצים לדעת איזה דגם הוא הטוב ביותר עבור מקרה השימוש שלהם - קוד, תרגום, הנמקה - אבל ההשוואה ידנית היא איטית. לא קיימים כלי eval משולבים. - -**איך OmniRoute פותר את זה:** - -- **הערכות LLM** - בדיקת סט זהב עם 10 מקרים טעונים מראש המכסים ברכות, מתמטיקה, גיאוגרפיה, יצירת קוד, תאימות ל-JSON, תרגום, סימון, סירוב בטיחות -- **4 אסטרטגיות התאמה** — `exact`, `contains`, `regex`, `custom` (פונקציית JS) -- **ספסל בדיקה במגרש משחקים של מתרגם** - בדיקות אצווה עם מספר כניסות ויציאות צפויות, השוואה בין ספקים -- ** בודק צ'אט** - הלוך ושוב מלא עם עיבוד תגובה ויזואלית -- **מעקב חי** - זרם בזמן אמת של כל הבקשות הזורמות דרך ה-proxy - -</details> - -<details> -<summary><b>📈 15. "אני צריך לבצע קנה מידה בלי לאבד ביצועים"</b></summary> - -ככל שנפח הבקשות גדל, ללא שמירה במטמון, אותן שאלות מייצרות עלויות כפולות. ללא אימפוטנציה, עיבוד פסולת בקשות כפולות. יש לכבד את מגבלות התעריפים לכל ספק. - -**איך OmniRoute פותר את זה:** - -- **מטמון סמנטי** - מטמון דו-שכבתי (חתימה + סמנטי) מפחית את העלות והשהייה -- **Request Idempotency** — חלון מניעת כפילויות של 5 שניות לבקשות זהות -- **זיהוי מגבלת תעריף** - RPM לכל ספק, פער מינימלי ומעקב מרבי בו-זמנית -- **מגבלות קצב הניתנות לעריכה** - ברירות מחדל הניתנות להגדרה בהגדרות ← חוסן עם התמדה -- **מטמון מפתח API** - מטמון בן 3 שכבות לביצועי ייצור -- **לוח מחוונים לבריאות עם טלמטריה** - זמן אחזור p50/p95/p99, סטטיסטיקות מטמון, זמן פעולה - -</details> - -<details> -<summary><b>🤖 16. "אני רוצה לשלוט בהתנהגות המודל באופן גלובלי"</b></summary> - -מפתחים שרוצים את כל התגובות בשפה ספציפית, עם טון ספציפי, או רוצים להגביל את אסימוני הנמקה. הגדרה זו בכל כלי/בקשה אינה מעשית. - -**איך OmniRoute פותר את זה:** - -- **הזרקת הנחיית מערכת** - הנחיה גלובלית חלה על כל הבקשות -- ** אימות תקציב חושב** - בקרת הקצאת אסימונים בהיגיון לכל בקשה (מעבר, אוטומטי, מותאם אישית, אדפטיבי) -- **6 אסטרטגיות ניתוב** - אסטרטגיות גלובליות הקובעות את אופן הפצת הבקשות -- **נתב תווים כלליים** — דפוסי `provider/*` נותבים באופן דינמי לכל ספק -- **הפעל/השבת שילוב של החלפה** — החלף שילובים ישירות מלוח המחוונים -- **החלפת ספק** — הפעל/השבת את כל החיבורים עבור ספק בלחיצה אחת -- **ספקים חסומים** — אל תכלול ספקים ספציפיים מהרישום `/v1/models` - -</details> - -<details> -<summary><b>🧰 17. "אני צריך כלי MCP כיכולות מוצר מהשורה הראשונה"</b></summary> - -שערי AI רבים חושפים את MCP רק כפרט יישום נסתר. צוותים צריכים שכבת פעולה גלויה וניתנת לניהול. - -**איך OmniRoute פותר את זה:** - -- MCP מופיע בכרטיסיית הניווט של לוח המחוונים ופרוטוקול נקודת הקצה -- דף ניהול MCP ייעודי עם תהליך, כלים, היקפים וביקורת -- התחלה מהירה מובנית עבור `omniroute --mcp` וכניסה ללקוח - -</details> - -<details> -<summary><b>🧠 18. "אני צריך תזמור A2A עם סנכרון + נתיבי משימות זרם"</b></summary> - -זרימות עבודה של סוכן זקוקות הן לתשובות ישירות והן לביצוע זרימה ארוך טווח עם בקרת מחזור חיים. - -**איך OmniRoute פותר את זה:** - -- נקודת קצה A2A JSON-RPC (`POST /a2a`) עם `message/send` ו`message/stream` -- הזרמת SSE עם הפצת מצב מסוף -- ממשקי API של מחזור חיים של משימות עבור `tasks/get` ו`tasks/cancel` - -</details> - -<details> -<summary><b>🛰️ 19. "אני צריך בריאות של תהליך MCP אמיתי, מצב לא מנחש"</b></summary> - -צוותים תפעוליים צריכים לדעת אם MCP באמת חי, לא רק אם ניתן להגיע ל-API. - -**איך OmniRoute פותר את זה:** - -- קובץ פעימות לב בזמן ריצה עם PID, חותמות זמן, תחבורה, ספירת כלים ומצב היקף -- MCP status API המשלב פעימות לב + פעילות אחרונה -- כרטיסי סטטוס ממשק משתמש עבור תהליך/זמן פעולה/רעננות פעימות לב - -</details> - -<details> -<summary><b>📋 20. "אני צריך ביצוע כלי MCP שניתן לביקורת"</b></summary> - -כאשר כלים משתנים בתצורה או מפעילים פעולות מבצעיות, הצוותים זקוקים למעקב פורנזי. - -**איך OmniRoute פותר את זה:** - -- רישום ביקורת מגובה SQLite עבור קריאות לכלי MCP -- מסננים לפי כלי, הצלחה/כישלון, מפתח API ועימוד -- טבלת ביקורת לוח המחוונים + נקודות קצה סטטיסטיקות לאוטומציה - -</details> - -<details> -<summary><b>🔐 21. "אני צריך הרשאות MCP בהיקף לכל אינטגרציה"</b></summary> - -ללקוחות שונים צריכה להיות גישה בעלת הרשאות מינימליות לקטגוריות כלים. - -**איך OmniRoute פותר את זה:** - -- 9 היקפי MCP גרגירים לגישה מבוקרת לכלי -- אכיפה של היקף ונראות בממשק המשתמש של ניהול MCP -- תנוחת ברירת מחדל בטוחה עבור כלי עבודה תפעוליים - -</details> - -<details> -<summary><b>⚙️ 22. "אני צריך בקרות תפעוליות בלי לפרוס מחדש"</b></summary> - -צוותים זקוקים לשינויים מהירים בזמן ריצה במהלך אירועים או אירועי עלות. - -**איך OmniRoute פותר את זה:** - -- החלף הפעלה משולבת ישירות מלוח המחוונים של MCP -- החל פרופילי חוסן מחבילות מדיניות מוגדרות מראש -- אפס את מצב מפסק החשמל מאותו לוח פעולות - -</details> - -<details> -<summary><b>🔄 23. "אני צריך נראות וביטול מחזור החיים של משימות A2A בשידור חי"</b></summary> - -ללא נראות של מחזור חיים, אירועי משימות הופכים קשים לבדיקה. - -**איך OmniRoute פותר את זה:** - -- רישום משימות/סינון לפי מצב/מיומנות עם עימוד -- פירוט על מטא נתונים של משימות, אירועים וחפצים -- נקודת קצה לביטול משימות ופעולת ממשק משתמש עם אישור - -</details> - -<details> -<summary><b>🌊 24. "אני צריך מדדי זרם פעילים עבור טעינת A2A"</b></summary> - -זרימות עבודה בסטרימינג דורשות תובנה תפעולית לגבי חיבורים במקביל וחיבורים חיים. - -**איך OmniRoute פותר את זה:** - -- מוני זרמים פעילים משולבים בסטטוס A2A -- חותמת הזמן האחרונה של המשימה וספירות לכל מדינה -- כרטיסי לוח מחוונים A2A לניטור פעולות בזמן אמת - -</details> - -<details> -<summary><b>🪪 25. "אני צריך גילוי סוכן סטנדרטי עבור לקוחות"</b></summary> - -לקוחות חיצוניים ומתזמרים זקוקים למטא-נתונים הניתנים לקריאת מכונה לצורך הצטרפות. - -**איך OmniRoute פותר את זה:** - -- כרטיס סוכן חשוף ב-`/.well-known/agent.json` -- יכולות ומיומנויות המוצגות בממשק המשתמש לניהול -- API לסטטוס A2A כולל מטא נתונים של גילוי לאוטומציה - -</details> - -<details> -<summary><b>🧭 26. "אני צריך גילוי פרוטוקול ב-UX של המוצר"</b></summary> - -אם משתמשים לא יכולים לגלות משטחי פרוטוקול, האימוץ והתמיכה יורדים. - -**איך OmniRoute פותר את זה:** - -- דף **נקודות קצה** מאוחד עם כרטיסיות עבור נקודות Proxy, MCP, A2A ו-API -- חילופי מצב שירות מוטבע (מקוון/לא מקוון) עבור MCP ו-A2A -- קישורים מסקירה כללית לכרטיסיות ניהול ייעודיות - -</details> - -<details> -<summary><b>🧪 27. "אני צריך אימות פרוטוקול מקצה לקצה עם לקוחות אמיתיים"</b></summary> - -בדיקות מדומה אינן מספיקות כדי לאמת תאימות פרוטוקול לפני השחרור. - -**איך OmniRoute פותר את זה:** - -- חבילת E2E המאתחלת אפליקציה ומשתמשת בהעברת לקוח MCP SDK אמיתית -- בדיקות לקוח A2A לאיתור, לשלוח, להזרים, לקבל ולבטל זרימות -- צלב הצהרות מול ביקורת MCP ומשימות A2A APIs - -</details> - -<details> -<summary><b>📡 28. "אני צריך צפייה מאוחדת בכל הממשקים"</b></summary> - -פיצול צפיות לפי פרוטוקול יוצר כתמים עיוורים ו-MTTR ארוך יותר. - -**איך OmniRoute פותר את זה:** - -- לוחות מחוונים/יומנים/ניתוח מאוחדים במוצר אחד -- בריאות + ביקורת + טלמטריית בקשה על פני שכבות OpenAI, MCP ו-A2A -- APIs תפעוליים לסטטוס ואוטומציה - -</details> - -<details> -<summary><b>💼 29. "אני צריך זמן ריצה אחד עבור פרוקסי + כלים + תזמור סוכן"</b></summary> - -הפעלת שירותים נפרדים רבים מגדילה את העלות התפעולית ואת מצבי הכשל. - -**איך OmniRoute פותר את זה:** - -- פרוקסי תואם OpenAI, שרת MCP ושרת A2A בערימה אחת -- אימות משותף, חוסן, מאגר נתונים וצפייה -- מודל מדיניות עקבי בכל משטחי האינטראקציה - -</details> - -<details> -<summary><b>🚀 30. "אני צריך לשלוח זרימות עבודה סוכניות ללא התפשטות קוד דבק"</b></summary> - -צוותים מאבדים מהירות בעת תפירת שירותים ותסריטים אד-הוק מרובים. - -**איך OmniRoute פותר את זה:** - -- אסטרטגיית נקודות קצה אחידה עבור לקוחות וסוכנים -- ממשקי משתמש מובנים לניהול פרוטוקול ונתיבי אימות עשן -- יסודות מוכנים לייצור (אבטחה, רישום, חוסן, גיבוי) - -</details> - -### ספרי הפעלה לדוגמה (מקרי שימוש משולבים) - -**Playbook A: מקסום מנוי בתשלום + גיבוי זול** - -```txt -Combo: "maximize-claude" - 1. cc/claude-opus-4-6 - 2. glm/glm-4.7 - 3. if/kimi-k2-thinking - -Monthly cost: $20 + small backup spend -Outcome: higher quality, near-zero interruption -``` - -**Playbook B: ערימת קידוד בעלות אפסית** - -```txt -Combo: "free-forever" - 1. gc/gemini-3-flash - 2. if/kimi-k2-thinking - 3. qw/qwen3-coder-plus - -Monthly cost: $0 -Outcome: stable free coding workflow -``` - -**Playbook C: שרשרת ניצול תמיד 24/7** - -```txt -Combo: "always-on" - 1. cc/claude-opus-4-6 - 2. cx/gpt-5.2-codex - 3. glm/glm-4.7 - 4. minimax/MiniMax-M2.1 - 5. if/kimi-k2-thinking - -Outcome: deep fallback depth for deadline-critical workloads -``` - -**Playbook D: סוכן מבצע עם MCP + A2A** - -```txt -1) Start MCP transport (`omniroute --mcp`) for tool-driven operations -2) Run A2A tasks via `message/send` and `message/stream` -3) Observe via /dashboard/endpoint (MCP and A2A tabs) -4) Toggle services via inline status controls -``` - ---- - -## 🆓 התחל בחינם - עלות תצורה אפסית - -> הגדר קידוד AI תוך דקות ב-**$0 לחודש**. חבר את החשבונות החינמיים האלה והשתמש בשילוב המובנה של **Free Stack**. - -| שלב | פעולה | ספקים לא נעולים | -| --- | ----------------------------------------------- | ------------------------------------------------------------------ | -| 1 | התחבר **Kiro** (AWS Builder ID OAuth) | קלוד סונטה 4.5, הייקו 4.5 — **ללא הגבלה** | -| 2 | חבר את **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **ללא הגבלה** | -| 3 | חבר **Qwen** (קוד מכשיר) | qwen3-coder-plus, qwen3-coder-flash... — **ללא הגבלה** | -| 4 | חבר את **Gemini CLI** (Google OAuth) | gemini-3-flash, gemini-2.5-pro — **180K/mo חינם** | -| 5 | `/dashboard/combos` → תבנית ערימה חינם ($0)\*\* | Round-robin כל הספקים בחינם אוטומטית | - -**כוונו כל IDE/CLI ל:** `http://localhost:20128/v1` · מפתח API: `any-string` · בוצע. - -> **כיסוי נוסף אופציונלי (גם בחינם):** מפתח API של Groq (30 סל"ד חינם), NVIDIA NIM (40 סל"ד חינם, 70+ דגמים), Cerebras (1M tok/day), מפתח LongCat API (50M tokens/day!), Cloudflare Workers AI (10K Neurons/day, 50+ דגמים). - -## ⚡ התחלה מהירה - -### 1) התקן והפעל - -```bash -npm install -g omniroute -omniroute -``` - -> **משתמשי pnpm:** הפעל את `pnpm approve-builds -g` לאחר ההתקנה כדי לאפשר סקריפטים מקוריים לבנייה הנדרשים על ידי `better-sqlite3` ו`@swc/core`: -> -> ```bash -> pnpm install -g omniroute -> pnpm approve-builds -g # Select all packages → approve -> omniroute -> ``` - -לוח המחוונים נפתח ב-`http://localhost:20128` וכתובת ה-API הבסיסית היא `http://localhost:20128/v1`. - -| פקודה | תיאור | -| ----------------------- | ----------------------------------------------------- | -| `omniroute` | התחל שרת (`PORT=20128`, API ולוח מחוונים באותה יציאה) | -| `omniroute --port 3000` | הגדר יציאת קנונית/API ל-3000 | -| `omniroute --mcp` | הפעל את שרת MCP (תעבורת stdio) | -| `omniroute --no-open` | אל תפתח אוטומטית את הדפדפן | -| `omniroute --help` | הצג עזרה | - -מצב יציאות מפוצלות אופציונלי: - -```bash -PORT=20128 DASHBOARD_PORT=20129 omniroute -# API: http://localhost:20128/v1 -# Dashboard: http://localhost:20129 -``` - -### 2) חבר ספקים וצור את מפתח ה-API שלך - -1. פתח את לוח המחוונים → `Providers` וחבר לפחות ספק אחד (OAuth או מפתח API). -2. פתח את לוח המחוונים → `Endpoints` וצור מפתח API. -3. (אופציונלי) פתח את לוח המחוונים ← `Combos` והגדר את שרשרת ההחלפה שלך. - -### 3) כוון את כלי הקידוד שלך אל OmniRoute - -```txt -Base URL: http://localhost:20128/v1 -API Key: [copy from Endpoint page] -Model: if/kimi-k2-thinking (or any provider/model prefix) -``` - -עובד עם Claude Code, Codex CLI, Gemini CLI, Cursor, Cline, OpenClaw, OpenCode ו-SDK תואמי OpenAI. - -### 4) אפשר ולאמת פרוטוקולים (v2.0) - -**MCP (עבור פעולות מונעות כלים):** - -```bash -omniroute --mcp -``` - -לאחר מכן חבר את לקוח ה-MCP שלך דרך `stdio` ובדוק כלים כמו: - -- `omniroute_get_health` -- `omniroute_list_combos` - -**A2A (עבור זרימות עבודה של סוכן לסוכן):** - -```bash -curl http://localhost:20128/.well-known/agent.json -``` - -```bash -curl -X POST http://localhost:20128/a2a \ - -H 'content-type: application/json' \ - -d '{"jsonrpc":"2.0","id":"quickstart","method":"message/send","params":{"skill":"quota-management","messages":[{"role":"user","content":"Give me a short quota summary."}]}}' -``` - -### 5) אמת הכל מקצה לקצה (מומלץ) - -```bash -npm run test:protocols:e2e -``` - -חבילה זו מאמתת זרימות אמיתיות של MCP ו-A2A מול אפליקציה פועלת. - -### חלופה: הפעל מהמקור - -```bash -cp .env.example .env -npm install -PORT=20128 DASHBOARD_PORT=20129 NEXT_PUBLIC_BASE_URL=http://localhost:20129 npm run dev -``` - ---- - -## 🐳 דוקר - -OmniRoute זמין כתמונת Docker ציבורית ב-[Docker Hub](https://hub.docker.com/r/diegosouzapw/omniroute). - -**ריצה מהירה:** - -```bash -docker run -d \ - --name omniroute \ - --restart unless-stopped \ - -p 20128:20128 \ - -v omniroute-data:/app/data \ - diegosouzapw/omniroute:latest -``` - -**עם קובץ סביבה:** - -```bash -# Copy and edit .env first -cp .env.example .env - -docker run -d \ - --name omniroute \ - --restart unless-stopped \ - --env-file .env \ - -p 20128:20128 \ - -v omniroute-data:/app/data \ - diegosouzapw/omniroute:latest -``` - -**שימוש ב-Docker Compose:** - -```bash -# Base profile (no CLI tools) -docker compose --profile base up -d - -# CLI profile (Claude Code, Codex, OpenClaw built-in) -docker compose --profile cli up -d -``` - -| תמונה | תג | גודל | תיאור | -| ------------------------ | -------- | ------ | ---------------------- | -| `diegosouzapw/omniroute` | `latest` | ~250MB | המהדורה היציבה האחרונה | -| `diegosouzapw/omniroute` | `1.0.3` | ~250MB | גרסה נוכחית | - ---- - -## 🖥️ אפליקציית שולחן העבודה - במצב לא מקוון ופועל תמיד - -> 🆕 **חדש!** OmniRoute זמין כעת כ**יישום שולחן עבודה מקורי** עבור Windows, macOS ו-Linux. - -הפעל את OmniRoute כאפליקציה עצמאית לשולחן העבודה - ללא מסוף, ללא דפדפן, ללא צורך באינטרנט עבור דגמים מקומיים. האפליקציה מבוססת אלקטרונים כוללת: - -- 🖥️ **חלון מקורי** — חלון אפליקציה ייעודי עם שילוב מגש המערכת -- 🔄 **התחל אוטומטי** — הפעל את OmniRoute בכניסה למערכת -- 🔔 **התראות מקומיות** - קבל התראות על מיצוי המכסה או בעיות בספק -- ⚡ **התקנה בלחיצה אחת** - NSIS (Windows), DMG (macOS), AppImage (Linux) -- 🌐 **מצב לא מקוון** - עובד במצב לא מקוון לחלוטין עם שרת מצורף - -### התחלה מהירה - -```bash -# Development mode -npm run electron:dev - -# Build for your platform -npm run electron:build # Current platform -npm run electron:build:win # Windows (.exe) -npm run electron:build:mac # macOS (.dmg) — x64 & arm64 -npm run electron:build:linux # Linux (.AppImage) -``` - -### מגש מערכת - -כאשר ממוזער, OmniRoute חי במגש המערכת שלך עם פעולות מהירות: - -- פתח את לוח המחוונים -- שנה יציאת שרת -- צא מהאפליקציה - -📖 תיעוד מלא: [**OMNI_TOKEN_153**](electron/README.md) - ---- - -## 💰 תמחור במבט חטוף - -| שכבה | ספק | עלות | איפוס מכסה | הטוב ביותר עבור | -| --------------- | --------------------------- | ---------------------------------- | ------------------------ | ------------------------------------------- | -| **💳 מנוי** | קלוד קוד (פרו) | 20 דולר לחודש | 5 שעות + שבועי | כבר נרשמת | -| | קודקס (פלוס/פרו) | $20-200 לחודש | 5 שעות + שבועי | משתמשי OpenAI | -| | Gemini CLI | **חינם** | 180K/Mo + 1K/יום | כֹּל אֶחָד! | -| | GitHub Copilot | 10-19 דולר לחודש | חודשי | משתמשי GitHub | -| **🔑 מפתח API** | NVIDIA NIM | **חינם** (פיתוח לנצח) | ~40 סל"ד | 70+ דגמים פתוחים | -| | מוחין | **חינם** (1 מיליון טוקי/יום) | 60K TPM / 30 RPM | המהיר בעולם | -| | גרוק | **חינם** (30 סל"ד) | 14.4K RPD | לאמה/ג'מה מהירה במיוחד | -| | DeepSeek V3.2 | $0.27/$1.10 לכל מיליון | אין | נימוק המחיר/איכות הטוב ביותר | -| | xAI Grok-4 מהיר | **$0.20/$0.50 לכל מיליון** 🆕 | אין | המהירה ביותר + קריאת כלי, אולטרה נמוכה | -| | xAI Grok-4 (סטנדרטי) | $0.20/$1.50 לכל מיליון 🆕 | אין | ספינת הדגל של היגיון מ-xAI | -| | מיסטרל | ניסיון חינם + בתשלום | תעריף מוגבל | AI אירופאי | -| | OpenRouter | תשלום לפי שימוש | אין | 100+ דגמים אגר. | -| **💰 זול** | GLM-5 (דרך Z.AI) 🆕 | $0.5/1 מיליון | כל יום 10:00 | פלט 128K, ספינת הדגל החדשה ביותר | -| | GLM-4.7 | $0.6/1 מיליון | כל יום 10:00 | גיבוי תקציבי | -| | MiniMax M2.5 🆕 | $0.3/1 מיליון קלט | גלגול של 5 שעות | נימוק + משימות סוכן | -| | MiniMax M2.1 | $0.2/1 מיליון | גלגול של 5 שעות | האפשרות הזולה ביותר | -| | Kimi K2.5 (Moonshot API) 🆕 | תשלום לפי שימוש | אין | גישה ישירה ל-Monshot API | -| | קימי K2 | 9 $ לחודש דירה | 10 מיליון אסימונים לחודש | עלות צפויה | -| **🆓 חינם** | Qoder | **$0** | ללא הגבלה | 5 דגמים ללא הגבלה | -| | קוון | **$0** | ללא הגבלה | 4 דגמים ללא הגבלה | -| | קירו | **$0** | ללא הגבלה | קלוד סונטה/הייקו (AWS Builder) | -| | LongCat Flash-Lite 🆕 | **$0** (50 מיליון טוקי ליום 🔥) | 1 RPS | המכסה החינמית הגדולה ביותר על פני כדור הארץ | -| | האבקות AI 🆕 | **$0** (אין צורך במפתח) | 1 req/15s | GPT-5, קלוד, DeepSeek, Llama 4 | -| | Cloudflare Workers AI 🆕 | **$0** (10K נוירונים ליום) | ~150 resp/יום | 50+ דגמים, יתרון עולמי | -| | Scaleway AI 🆕 | **$0** (1 מיליון אסימונים בסך הכל) | תעריף מוגבל | EU/GDPR, Qwen3 235B, Llama 70B | - -> 🆕 **דגמים חדשים שנוספו (מרץ 2026):** משפחת Grok-4 Fast ב-$0.20/$0.50/M (מודד ב-1143ms - מהיר יותר ב-30% מ-Gemini 2.5 Flash), GLM-5 דרך Z.AI עם פלט של 128K, נימוק של MiniMax M2.5, KimiSeek pr. API ישיר. - -**💡 ערימת משולבת של $0 - ההגדרה המלאה בחינם:** - -``` -# 🆓 Ultimate Free Stack 2026 — 11 Providers, $0 Forever -Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED -LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 -Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed -Qwen (qw/) → qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next UNLIMITED -Gemini (gemini/) → Gemini 2.5 Flash — 1,500 req/day free API key -Cloudflare AI (cf/) → Llama 70B, Gemma 3, Mistral — 10K Neurons/day -Scaleway (scw/) → Qwen3 235B, Llama 70B — 1M free tokens (EU) -Groq (groq/) → Llama/Gemma ultra-fast — 14.4K req/day -NVIDIA NIM (nvidia/) → 70+ open models — 40 RPM forever -Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day -``` - -**עלות אפסית. לעולם לא מפסיק לקודד.** הגדר זאת כמשולבת OmniRoute אחת וכל הכשלים חוזרים מתרחשים באופן אוטומטי - אף פעם אין החלפה ידנית. - ---- - ---- - -## 🆓 דגמים בחינם — מה שאתה מקבל בפועל - -> כל הדגמים למטה הם **100% חינם ללא צורך בכרטיס אשראי**. OmniRoute מנתב מסלולים אוטומטיים ביניהם כאשר מכסה אחת נגמרת - שלב את כולם לשילוב בלתי שביר של $0. - -### 🔵 מודלים של CLAUDE (דרך Kiro — מזהה AWS Builder) - -| דגם | קידומת | הגבלה | מגבלת שיעור | -| ------------------- | ------ | ------------- | --------------------- | -| `claude-sonnet-4.5` | `kr/` | **ללא הגבלה** | אין מכסה יומית מדווחת | -| `claude-haiku-4.5` | `kr/` | **ללא הגבלה** | אין מכסה יומית מדווחת | -| `claude-opus-4.6` | `kr/` | **ללא הגבלה** | אופוס אחרון דרך קירו | - -### דגמי QODER (OAuth בחינם - ללא כרטיס אשראי) - -| דגם | קידומת | הגבלה | מגבלת שיעור | -| ------------------ | ------ | ------------- | -------------- | -| `kimi-k2-thinking` | `if/` | **ללא הגבלה** | אין כובע מדווח | -| `qwen3-coder-plus` | `if/` | **ללא הגבלה** | אין כובע מדווח | -| `deepseek-r1` | `if/` | **ללא הגבלה** | אין כובע מדווח | -| `minimax-m2.1` | `if/` | **ללא הגבלה** | אין כובע מדווח | -| `kimi-k2` | `if/` | **ללא הגבלה** | אין כובע מדווח | - -### 🟡 מודלים של QWEN (אימות קוד מכשיר) - -| דגם | קידומת | הגבלה | מגבלת שיעור | -| ------------------- | ------ | ------------- | ------------------- | -| `qwen3-coder-plus` | `qw/` | **ללא הגבלה** | אין כובע מדווח | -| `qwen3-coder-flash` | `qw/` | **ללא הגבלה** | אין כובע מדווח | -| `qwen3-coder-next` | `qw/` | **ללא הגבלה** | אין כובע מדווח | -| `vision-model` | `qw/` | **ללא הגבלה** | Multimodal (תמונות) | - -### GEMINI CLI (Google OAuth) - -| דגם | קידומת | הגבלה | מגבלת שיעור | -| ------------------------ | ------ | --------------------------- | ----------- | -| `gemini-3-flash-preview` | `gc/` | **180K tok/חודש** + 1K ליום | איפוס חודשי | -| `gemini-2.5-pro` | `gc/` | 180K/חודש (בריכה משותפת) | איכות גבוהה | - -### ⚫ NVIDIA NIM (מפתח API בחינם — build.nvidia.com) - -| שכבה | מגבלה יומית | מגבלת שיעור | הערות | -| ------------ | ------------- | ------------ | ------------------------------------------------ | -| חינם (פיתוח) | ללא כובע סמלי | **~40 סל"ד** | 70+ דגמים; מעבר למגבלות תעריפים טהורות אמצע 2025 | - -דגמים פופולריים בחינם: `moonshotai/kimi-k2.5` (Kimi K2.5), `z-ai/glm4.7` (GLM 4.7), `deepseek-ai/deepseek-v3.2` (DeepSeek V3.2), `nvidia/llama-3.3-70b-instruct`, `deepseek/deepseek-r1` - -### ⚪ CEREBRAS (מפתח API בחינם — inference.cerebras.ai) - -| שכבה | מגבלה יומית | מגבלת שיעור | הערות | -| ---- | -------------------------- | ---------------- | ------------------------------------- | -| חינם | **1 מיליון אסימונים ליום** | 60K TPM / 30 RPM | מסקנת LLM המהירה בעולם; מתאפס מדי יום | - -זמין בחינם: `llama-3.3-70b`, `llama-3.1-8b`, `deepseek-r1-distill-llama-70b` - -### 🔴 GROQ (מפתח API בחינם — console.groq.com) - -| שכבה | מגבלה יומית | מגבלת שיעור | הערות | -| ---- | ------------- | ------------ | --------------------------------------- | -| חינם | **14.4K RPD** | 30 סל"ד לדגם | ללא כרטיס אשראי; 429 על הגבלה, לא מחויב | - -זמין בחינם: `llama-3.3-70b-versatile`, `gemma2-9b-it`, `mixtral-8x7b`, `whisper-large-v3` - -### 🔴 LONGCAT AI (מפתח API בחינם — longcat.chat) 🆕 - -| דגם | קידומת | מכסה יומית חינם | הערות | -| ----------------------------- | ------ | ------------------------- | --------------------------------- | -| `LongCat-Flash-Lite` | `lc/` | **50 מיליון אסימונים** 💥 | המכסה החינמית הגדולה ביותר אי פעם | -| `LongCat-Flash-Chat` | `lc/` | 500K אסימונים | צ'אט מרובה פניות | -| `LongCat-Flash-Thinking` | `lc/` | 500K אסימונים | נימוק / CoT | -| `LongCat-Flash-Thinking-2601` | `lc/` | 500K אסימונים | גרסה ינואר 2026 | -| `LongCat-Flash-Omni-2603` | `lc/` | 500K אסימונים | מולטימודאלי | - -> 100% בחינם בזמן בטא ציבורית. הירשם ב-[longcat.chat](https://longcat.chat) באמצעות דוא"ל או טלפון. מאפס מדי יום 00:00 UTC. - -### 🟢 POLLINATIONS AI (לא נדרש מפתח API) 🆕 - -| דגם | קידומת | מגבלת שיעור | ספק מאחורי | -| ---------- | ------ | ----------- | ---------------- | -| `openai` | `pol/` | 1 req/15s | GPT-5 | -| `claude` | `pol/` | 1 req/15s | האנתרופי קלוד | -| `gemini` | `pol/` | 1 req/15s | Google Gemini | -| `deepseek` | `pol/` | 1 req/15s | DeepSeek V3 | -| `llama` | `pol/` | 1 req/15s | מטה לאמה 4 צופית | -| `mistral` | `pol/` | 1 req/15s | Mistral AI | - -> ✨ **אפס חיכוך:** ללא הרשמה, ללא מפתח API. הוסף את ספק ההאבקות עם שדה מפתח ריק וזה יפעל מיד. - -### 🟠 CLOUDFLARE WORKERS AI (מפתח API בחינם — cloudflare.com) 🆕 - -| שכבה | נוירונים יומיים | שימוש שווה ערך | הערות | -| ---- | --------------- | --------------------------------------- | ---------------------- | -| חינם | **10,000** | ~150 LLM resp / 500s אודיו / 15K הטמעות | יתרון עולמי, 50+ דגמים | - -דגמים פופולריים בחינם: `@cf/meta/llama-3.3-70b-instruct`, `@cf/google/gemma-3-12b-it`, `@cf/openai/whisper-large-v3-turbo` (שמע בחינם!), `@cf/qwen/qwen2.5-coder-15b-instruct` - -> דורש קוד API + מזהה חשבון מ-[dash.cloudflare.com](https://dash.cloudflare.com). אחסן את מזהה החשבון בהגדרות הספק. - -### 🟣 SCALEWAY AI (1 מיליון אסימונים בחינם — scaleway.com) 🆕 - -| שכבה | מכסה חינם | מיקום | הערות | -| ---- | --------------------- | ----------------------- | ----------------------------- | -| חינם | **1 מיליון אסימונים** | 🇫🇷 פריז, האיחוד האירופי | אין צורך בכרטיס אשראי במגבלות | - -זמין בחינם: `qwen3-235b-a22b-instruct-2507` (Qwen3 235B!), `llama-3.1-70b-instruct`, `mistral-small-3.2-24b-instruct-2506`, `deepseek-v3-0324` - -> תואם לאיחוד האירופי/GDPR. קבל מפתח API ב-[console.scaleway.com](https://console.scaleway.com). - -> **💡 ערימת החינמיות האולטימטיבית (11 ספקים, $0 לנצח):** -> -> ``` -> Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -> Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED -> LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 -> Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed -> Qwen (qw/) → qwen3-coder models UNLIMITED -> Gemini (gemini/) → Gemini 2.5 Flash — 1,500 req/day free -> Cloudflare AI (cf/) → 50+ models — 10K Neurons/day -> Scaleway (scw/) → Qwen3 235B, Llama 70B — 1M free tokens (EU) -> Groq (groq/) → Llama/Gemma — 14.4K req/day ultra-fast -> NVIDIA NIM (nvidia/) → 70+ open models — 40 RPM forever -> Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day -> ``` - -## 🎙️ משולבת תמלול חינם - -> תמלל כל אודיו/וידאו תמורת **$0** — לידים ב-Deepgram עם 200$ בחינם, AssemblyAI 50$ חזרה, Groq Whisper כגיבוי חירום בלתי מוגבל. - -| ספק | קרדיטים חינם | הדוגמנית הטובה ביותר | מגבלת שיעור | -| ----------------- | --------------------- | --------------------------------------- | ------------------------------ | -| **Deepgram** | **$200 חינם** (הרשמה) | `nova-3` — הדיוק הטוב ביותר, 30+ שפות | אין מגבלת RPM על זיכויים בחינם | -| 🔵 **AssemblyAI** | **$50 חינם** (הרשמה) | `universal-3-pro` — פרקים, סנטימנט, PII | אין מגבלת RPM על זיכויים בחינם | -| 🔴 **גרוק** | **חופשי לנצח** | `whisper-large-v3` — OpenAI Whisper | 30 סל"ד (קצב מוגבל) | - -**שילוב מוצע ב-`/dashboard/combos`:** - -``` -Name: free-transcription -Strategy: Priority -Nodes: - [1] deepgram/nova-3 → uses $200 free first - [2] assemblyai/universal-3-pro → fallback when Deepgram credits run out - [3] groq/whisper-large-v3 → free forever, emergency fallback -``` - -לאחר מכן ב-`/dashboard/media` ← כרטיסיית **תמלול**: העלה כל קובץ שמע או וידאו ← בחר את נקודת הקצה המשולבת שלך ← קבל תמלול בפורמטים נתמכים. - -## 💡 תכונות עיקריות - -OmniRoute v2.0 בנויה כפלטפורמה תפעולית, לא רק כפרוקסי ממסר. - -### 🆕 חדש - שיפורים בהשראת ClawRouter (מרץ 2026) - -| תכונה | מה זה עושה | -| ----------------------------- | --------------------------------------------------------------------------------------- | -| ⚡ **Grok-4 Fast Family** | דגמי xAI ב-$0.20/$0.50/M — מדד 1143ms (מהיר יותר ב-30% מ-Gemini 2.5 Flash) | -| 🧠 **GLM-5 דרך Z.AI** | הקשר פלט של 128K, $0.5/1 מיליון - ספינת הדגל החדשה ביותר ממשפחת GLM | -| 🔮 **MiniMax M2.5** | נימוק + משימות סוכן ב-$0.30/1M — שדרוג משמעותי מ-M2.1 | -| 🎯 **דגל קורא לכל דגם** | לכל דגם `toolCalling: true/false` ברישום — אוטוקומבו מדלגת על דגמים שאינם מסוגלים לכלים | -| 🌍 **זיהוי כוונות רב לשוני** | מילות מפתח PT/ZH/ES/AR בניקוד AutoCombo — בחירת דגמים טובה יותר לתוכן שאינו אנגלי | -| 📊 **הסתגלות מונעות בנצ'מרק** | זמן אחזור אמיתי של p95 מהזנות משולבות של בקשות חיות - AutoCombo לומד מנתונים בפועל | -| 🔁 **בקש ביטול כפילות** | חלון ביטול ביטול מבוסס-hash - בטוח מרובה סוכנים, מונע חיובים כפולים | -| 🔌 **אסטרטגיית נתב מתחבר** | ממשק `RouterStrategy` ניתן להרחבה — הוסף לוגיקת ניתוב מותאמת אישית בתור תוספים | - -### 🚀 גרסה קודמת 2.0.9+ — מגרש משחקים, CLI טביעות אצבע ו-ACP - -| תכונה | מה זה עושה | -| ------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 🎮 **מגרש משחקים דגם** | דף לוח המחוונים לבדיקת כל דגם ישירות - בוררי ספק/דגם/נקודת קצה, עורך מונקו, סטרימינג, ביטול, תזמון | -| 🔏 **CLI התאמת טביעות אצבע** | סדר כותרת/גוף לפי ספק כדי להתאים חתימות CLI מקוריות - החלף לפי ספק בהגדרות > אבטחה. **IP ה-proxy שלך נשמר** | -| 🤝 **תמיכה ב-ACP (פרוטוקול לקוח של סוכן)** | גילוי סוכן CLI (Codex, Claude, Goose, Gemini CLI, OpenClaw + 9 נוספים), מבשר תהליך, נקודת קצה `/api/acp/agents` | -| 🤖 **לוח המחוונים של סוכני ה-ACP** | ניפוי באגים › דף סוכנים - רשת של 14 סוכנים עם סטטוס התקנה, גרסה, טופס סוכן מותאם אישית עבור כל כלי CLI. משתמשי **OpenCode** מקבלים כפתור "הורד opencode.json" שיוצר אוטומטית תצורה מוכנה לשימוש עם כל הדגמים הזמינים. | -| 🔧 **דגם מותאם אישית `apiFormat` ניתוב** | מודלים מותאמים אישית עם `apiFormat: "responses"` נותבים כעת כהלכה אל מתרגם ה-API של Responses | -| 🏢 **בידוד סביבת עבודה בקודקס** | סביבות עבודה מרובות של Codex לכל דואר אלקטרוני - OAuth מפריד נכון בין חיבורים לפי מזהה סביבת עבודה | -| 🔄 **עדכון אוטומטי של אלקטרונים** | אפליקציית שולחן העבודה בודקת עדכונים + התקנה אוטומטית בהפעלה מחדש | - -### 🤖 פעולות סוכן ופרוטוקול (v2.0) - -| תכונה | מה זה עושה | -| ------------------------------------- | ------------------------------------------------------------------------------------------------ | -| 🔧 **שרת MCP (16 כלים)** | כלי IDE/סוכן באמצעות 3 העברות: stdio, SSE (`/api/mcp/sse`), HTTP ניתן להזרמה (`/api/mcp/stream`) | -| 🤝 **שרת A2A (JSON-RPC + SSE)** | ביצוע משימות סוכן לסוכן עם זרימות סנכרון וזרימה | -| 🧭 **דף נקודות קצה מאוחדות** | דף ניהול עם כרטיסיות עם כרטיסיות Endpoint Proxy, MCP, A2A ו-API | -| 🎚️ **הפעל/נטרול שירותים** | מתגי הפעלה/כיבוי עבור MCP ו-A2A עם עמידה בהגדרות (ברירת מחדל: כבוי) | -| 🛰️ ** MCP Runtime Heartbeat** | סטטוס תהליך אמיתי (pid, uptime, גיל פעימות לב, תחבורה, מצב היקף) | -| 📋 **מסלול ביקורת MCP** | יומני ביקורת ניתנים לסינון עם הצלחה/כישלון ושיוך מפתח | -| 🔐 **אכיפת היקף MCP** | 9 הרשאות היקף פרטניות לגישה מבוקרת לכלי | -| 📡 **ניהול מחזור חיים של משימות A2A** | רשום/סנן משימות, בדיקת אירועים/חפצים, ביטול משימות פועלות | -| 📋 **גילוי כרטיס סוכן** | `/.well-known/agent.json` לגילוי אוטומטי של הלקוח | -| 🧪 **רתמת בדיקת פרוטוקול E2E** | זרימת לקוח MCP SDK + A2A אמיתית ב-`test:protocols:e2e` | -| ⚙️ **בקרות תפעוליות** | משולבת בוררים, החלת פרופילי חוסן, אפס מפסקים ממשטח בקרה אחד | - -### 🧠 ניתוב ומודיעין - -| תכונה | מה זה עושה | -| ----------------------------- | ------------------------------------------------------------ | -| 🎯 **Smart 4-tier Fallback** | מסלול אוטומטי: מנוי → מפתח API → זול → חינם | -| 📊 **מעקב מכסות בזמן אמת** | ספירת אסימונים חיה + איפוס ספירה לאחור לכל ספק | -| 🔄 **תרגום פורמט** | OpenAI ↔ קלוד ↔ מזל תאומים ↔ תגובות עם המרות בטוחות לסכימה | -| 👥 **תמיכה בריבוי חשבונות** | מספר חשבונות לכל ספק עם בחירה חכמה | -| 🔄 **רענון אסימון אוטומטי** | אסימוני OAuth מתרעננים אוטומטית עם ניסיון חוזר | -| 🎨 **שילובים מותאמים אישית** | 6 אסטרטגיות איזון + בקרת שרשרת נפילה | -| 🌐 **נתב תווים כלליים** ​​ | `provider/*` ניתוב דינמי | -| 🧠 **חשיבה בקרות תקציב** | גבולות מעבר, אוטומטי, מותאם אישית והסתגלות | -| 🔀 **כינוי דגם** | בטיחות כינוי והגירה מובנית + מודל מותאם אישית | -| ⚡ **השפלה ברקע** | נתב משימות רקע בעדיפות נמוכה לדגמים זולים יותר | -| 🧪 **ניתוב חכם מודע למשימות** | בחירה אוטומטית של מודל לפי סוג תוכן (קידוד/חזון/ניתוח/סיכום) | -| 💬 **הזרקת מערכת מיידית** | בקרות התנהגות גלובליות יושמו באופן עקבי | -| 📄 **תאימות API של תגובות** | תמיכה מלאה `/v1/responses` עבור Codex וזרימות עבודה מתקדמות | - -### 🎵 ממשקי API רב-מודאליים - -| תכונה | מה זה עושה | -| ------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 🖼️ **יצירת תמונות** | `/v1/images/generations` עם ענן וחלקים עורפיים מקומיים | -| 📐 **הטבעות** | `/v1/embeddings` לחיפוש וצינורות RAG | -| 🎤 **תמלול אודיו** | `/v1/audio/transcriptions` — 7 ספקים (Deepgram Nova 3, AssemblyAI, Groq Whisper, HuggingFace, ElevenLabs, OpenAI, Azure), זיהוי שפה אוטומטי, תמיכה ב-MP4/MP3/WAV | -| 🔊 **טקסט לדיבור** | `/v1/audio/speech` — 10 ספקים (ElevenLabs, OpenAI, Deepgram, Cartesia, PlayHT, HuggingFace, Nvidia NIM, Inworld, Coqui, Tortoise) עם הודעות שגיאה נכונות | -| 🎬 **יצירת וידאו** | `/v1/videos/generations` (זרימות עבודה של ComfyUI + SD WebUI) | -| 🎵 **דור המוזיקה** | `/v1/music/generations` (זרימות עבודה של ComfyUI) | -| 🛡️ **מנחים** | `/v1/moderations` בדיקות בטיחות | -| 🔀 **דירוג מחדש** | `/v1/rerank` עבור ניקוד רלוונטיות | -| 🔍 **חיפוש באינטרנט** 🆕 | `/v1/search` — 5 ספקים (Serper, Brave, Perplexity, Exa, Tavily), 6,500+ חינם/חודש, כשל אוטומטי, מטמון | - -### 🛡️ חוסן, ביטחון וממשל - -| תכונה | מה זה עושה | -| ------------------------------------ | --------------------------------------------------------------------------------- | -| 🔌 **מפסקים מעגלים** | נסיעה/התאוששות לכל דגם עם בקרות סף | -| 🎯 **דגמים מודעים לנקודות קצה** | מודלים מותאמים אישית מצהירים על נקודות קצה נתמכות + פורמט API | -| 🛡️ **עדר נגד רעמים** | הגנות Mutex + סמפור באירועי ניסיון חוזר/דרג | -| 🧠 **סמנטי + מטמון חתימה** | הפחתת עלות/איחור עם שתי שכבות מטמון | -| ⚡ **בקש אימפוטנציה** | חלון הגנה משוכפל | -| 🔒 **זיוף טביעות אצבע TLS** | טביעת אצבע TLS דמוית דפדפן - **מפחיתה את זיהוי הרובוטים וסימון החשבונות** | -| 🔏 **CLI התאמת טביעות אצבע** | תואם חתימות מקוריות של בקשת CLI - **מפחית את סיכון החסימה תוך שמירה על IP proxy** | -| 🌐 **סינון IP** | שליטה ברשימת ההיתרים/בלוקים עבור פריסות חשופות | -| 📊 **מגבלות תעריפים הניתנות לעריכה** | מגבלות גלובליות/ברמת ספק הניתנות להגדרה עם התמדה | -| 🔑 **ניהול מפתחות API + היקף** | הנפקה/סיבוב מפתח מאובטח ובקרות מודל/ספק | -| 🛡️ **מוגן `/models`** | אישור אופציונלי והסתרת ספק עבור קטלוג דגמים | - -### 📊 יכולת תצפית וניתוח - -| תכונה | מה זה עושה | -| ------------------------------------ | ---------------------------------------------------- | -| 📝 **בקשה + רישום פרוקסי** | בקשה/תשובה מלאה ורישום פרוקסי | -| 📉 **Streamed Detailed Logs** 🆕 | Reconstructs SSE payload streams cleanly into the UI | -| 📋 **לוח מחוונים של יומנים מאוחדים** | תצוגות בקשה, פרוקסי, ביקורת ומסוף בעמוד אחד | -| 🔍 **בקש טלמטריה** | חביון p50/p95/p99 ומעקב אחר בקשות | -| 🏥 **לוח מחוונים לבריאות** | זמן פעולה, מצבי מפסק, נעילות, סטטיסטיקות מטמון | -| 💰 **מעקב עלויות** | בקרות תקציב ונראות תמחור לפי דגם | -| 📈 **הדמיות של אנליטיקס** | תובנות שימוש במודל/ספק ותצוגות מגמה | -| 🧪 **מסגרת הערכה** | בדיקת סט זהב עם אסטרטגיות התאמה הניתנות להגדרה | - -### ☁️ פריסה ופלטפורמה - -| תכונה | מה זה עושה | -| ---------------------------------- | --------------------------------------------------------- | -| 🌐 **פרוס בכל מקום** | סביבות Localhost, VPS, Docker, ענן | -| 💾 **סנכרון ענן** | סנכרון תצורה באמצעות Cloud Worker | -| 🔄 **גיבוי/שחזור** | זרימות יצוא/יבוא והתאוששות מאסון | -| 🧙 **אשף העלייה למטוס** | התקנה מודרכת הפעלה ראשונה | -| 🔧 **לוח המחוונים של כלי CLI** | הגדרה בלחיצה אחת לכלי קידוד פופולריים | -| 🎮 **מגרש משחקים דגם** | בדוק כל ספק/דגם/נקודת קצה מלוח המחוונים | -| 🔏 **CLI Fingerprint Toggle** | התאמת טביעת אצבע לכל ספק בהגדרות > אבטחה | -| 🌐 **i18n (30 שפות)** | לוח מחוונים מלא + תמיכה בשפת מסמכים עם כיסוי RTL | -| 🧹 **נקה את כל הדגמים** | ניקוי רשימת דגמים בלחיצה אחת בפרטי הספק | -| 👁️ **Sidebar Controls** 🆕 | Hide components and integrations from Appearance Settings | -| 📋 **תבניות גיליון** | תבניות GitHub סטנדרטיות עבור באגים ותכונות | -| 📂 **ספריית נתונים מותאמים אישית** | `DATA_DIR` ביטול עבור מיקום אחסון | - -### תכונה Deep Deep - -#### סתירה חכמה עם בקרת עלויות מעשית - -```txt -Combo: "my-coding-stack" - 1. cc/claude-opus-4-6 - 2. nvidia/llama-3.3-70b - 3. glm/glm-4.7 - 4. if/kimi-k2-thinking -``` - -כאשר המכסה, התעריף או הבריאות נכשלים, OmniRoute עובר אוטומטית למועמד הבא ללא מעבר ידני. - -#### ניהול פרוטוקול גלוי וניתן לתפעול - -- MCP + A2A ניתנים לגילוי בממשק המשתמש ובמסמכים (לא מוסתרים) -- ממשקי API של סטטוס פרוטוקול חושפים נתונים תפעוליים חיים (`/api/mcp/*`, `/api/a2a/*`) -- לוחות מחוונים כוללים פעולות עבור פעולות יום 2 (החלפות משולבות, איפוסי מפסקים, ביטול משימות) - -#### מתרגם + זרימת עבודה של אימות - -אזור המתרגם כולל: - -- **מגרש משחקים**: בקש בדיקות טרנספורמציה -- **בודק צ'אט**: בקשה/תגובה מלאה הלוך ושוב -- **ספסל מבחן**: מקרים מרובים בריצה אחת -- **צג חי**: תצוגת תנועה בזמן אמת - -בנוסף אימות פרוטוקול עם לקוחות אמיתיים באמצעות `npm run test:protocols:e2e`. - -> 📖 **[MCP Server README](open-sse/mcp-server/README.md)** - הפניה לכלי, תצורות IDE ודוגמאות לקוח -> -> 📖 **[A2A Server README](src/lib/a2a/README.md)** — מיומנויות, שיטות JSON-RPC, סטרימינג ומחזור חיים של משימות - -## 🧪 הערכות (הערכות) - -OmniRoute כולל מסגרת הערכה מובנית לבדיקת איכות תגובת LLM מול סט מוזהב. גש אליו דרך **Analytics → Evals** בלוח המחוונים. - -### סט מוזהב מובנה - -"OmniRoute Golden Set" הנטען מראש מכיל מקרי בדיקה עבור: - -- ברכות, מתמטיקה, גיאוגרפיה, יצירת קוד -- תאימות לפורמט JSON, תרגום, הפקת סימון -- סירוב בטיחותי (תוכן מזיק), ספירה, היגיון בוליאני - -### אסטרטגיות הערכה - -| אסטרטגיה | תיאור | דוגמה | -| ---------- | ------------------------------------------ | -------------------------------- | -| `exact` | הפלט חייב להתאים בדיוק | `"4"` | -| `contains` | הפלט חייב להכיל תת מחרוזת (לא תלוי רישיות) | `"Paris"` | -| `regex` | הפלט חייב להתאים לדפוס הרקס | `"1.*2.*3"` | -| `custom` | פונקציית JS מותאמת מחזירה true/false | `(output) => output.length > 10` | - ---- - -## 📖 מדריך התקנה - -### הגדרת פרוטוקול (MCP + A2A) - -<details> -<summary><b>🧩 הגדרת MCP (פרוטוקול הקשר דגם)</b></summary> - -התחל העברת MCP במצב stdio: - -```bash -omniroute --mcp -``` - -זרימת אימות מומלצת: - -1. חבר את לקוח ה-MCP שלך דרך stdio. -2. הפעל את `omniroute_get_health`. -3. הפעל את `omniroute_list_combos`. -4. פתח את `/dashboard/mcp` כדי לאשר פעימות לב, פעילות וביקורת. - -ממשקי API שימושיים לאוטומציה: - -- `GET /api/mcp/status` -- `GET /api/mcp/tools` -- `GET /api/mcp/audit` -- `GET /api/mcp/audit/stats` - -</details> - -<details> -<summary><b>🤝 הגדרת A2A (סוכן2סוכן)</b></summary> - -גלה את הסוכן: - -```bash -curl http://localhost:20128/.well-known/agent.json -``` - -שלח משימה: - -```bash -curl -X POST http://localhost:20128/a2a \ - -H 'content-type: application/json' \ - -d '{"jsonrpc":"2.0","id":"setup-a2a","method":"message/send","params":{"skill":"quota-management","messages":[{"role":"user","content":"Summarize quota status."}]}}' -``` - -נהל את מחזור החיים: - -- `GET /api/a2a/status` -- `GET /api/a2a/tasks` -- `GET /api/a2a/tasks/:id` -- `POST /api/a2a/tasks/:id/cancel` - -ממשק משתמש תפעולי: - -- `/dashboard/a2a` לצפייה במשימה/מצב/זרם ופעולות עשן - -</details> - -<details> -<summary><b>🧪 אימות פרוטוקול מקצה לקצה</b></summary> - -אמת את שני הפרוטוקולים עם לקוחות אמיתיים: - -```bash -npm run test:protocols:e2e -``` - -זה מאמת: - -- חיבור/רשימה/התקשרות ללקוח MCP SDK -- גילוי/שלח/הזרמה/קבל/ביטול A2A -- בדיקת הצלבת נתונים בממשקי API של ביקורת MCP וניהול משימות A2A - -</details> - -<details> -<summary><b>💳 ספקי מנויים</b></summary> - -### קוד קלוד (פרו/מקס) - -```bash -Dashboard → Providers → Connect Claude Code -→ OAuth login → Auto token refresh -→ 5-hour + weekly quota tracking - -Models: - cc/claude-opus-4-6 - cc/claude-sonnet-4-5-20250929 - cc/claude-haiku-4-5-20251001 -``` - -**טיפ מקצוען:** השתמש ב-Opus למשימות מורכבות, בסונט למהירות. OmniRoute עוקב אחר מכסה לכל דגם! - -### OpenAI Codex (פלוס/פרו) - -```bash -Dashboard → Providers → Connect Codex -→ OAuth login (port 1455) -→ 5-hour + weekly reset - -Models: - cx/gpt-5.2-codex - cx/gpt-5.1-codex-max -``` - -#### ניהול מגבלות חשבון Codex (5 שעות + שבועי) - -לכל חשבון Codex יש כעת החלפת מדיניות ב-`Dashboard -> Providers`: - -- `5h` (מופעל/כבוי): אכיפת מדיניות סף החלון של 5 שעות. -- `Weekly` (מופעל/כבוי): אכיפת מדיניות סף החלון השבועי. -- התנהגות סף: כאשר חלון מופעל מגיע ל->=90% שימוש, החשבון הזה ידלג. -- התנהגות סיבוב: OmniRoute מנתב אוטומטית לחשבון ה-Codex הכשיר הבא. -- התנהגות איפוס: כאשר הזמן של הספק `resetAt` עובר, החשבון יחזור להיות כשיר באופן אוטומטי. - -תרחישים: - -- `5h ON` + `Weekly ON`: דילוג על החשבון כאשר אחד מהחלונות מגיע לסף. -- `5h OFF` + `Weekly ON`: רק שימוש שבועי יכול לחסום את החשבון. -- `5h ON` + `Weekly OFF`: רק שימוש של 5 שעות יכול לחסום את החשבון. -- `resetAt` עבר: החשבון נכנס מחדש לסבב באופן אוטומטי (ללא הפעלה מחדש ידנית). - -### Gemini CLI (180K בחינם לחודש!) - -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**הערך הטוב ביותר:** שכבת חינם ענקית! השתמש בזה לפני שכבות בתשלום. - -### GitHub Copilot - -```bash -Dashboard → Providers → Connect GitHub -→ OAuth via GitHub -→ Monthly reset (1st of month) - -Models: - gh/gpt-5 - gh/claude-4.5-sonnet - gh/gemini-3-pro -``` - -</details> - -<details> -<summary><b>🔑 ספקי מפתח API</b></summary> - -### NVIDIA NIM (גישה למפתחים בחינם - 70+ דגמים) - -1. הירשם: [build.nvidia.com](https://build.nvidia.com) -2. קבל מפתח API בחינם (כולל 1000 קרדיטים להסקה) -3. לוח מחוונים ← הוסף ספק ← NVIDIA NIM: - - מפתח API: `nvapi-your-key` - -**דגמים:** `nvidia/llama-3.3-70b-instruct`, `nvidia/mistral-7b-instruct` ועוד 50+ - -**טיפ מקצועי:** API תואם OpenAI - עובד בצורה חלקה עם תרגום הפורמט של OmniRoute! - -### DeepSeek - -1. הירשם: [platform.deepseek.com](https://platform.deepseek.com) -2. קבל מפתח API -3. לוח מחוונים ← הוסף ספק ← DeepSeek - -**דגמים:** `deepseek/deepseek-chat`, `deepseek/deepseek-coder` - -### Groq (רמה חינם זמינה!) - -1. הירשם: [console.groq.com](https://console.groq.com) -2. קבל מפתח API (כלול שכבת חינם) -3. לוח מחוונים ← הוסף ספק ← Groq - -**דגמים:** `groq/llama-3.3-70b`, `groq/mixtral-8x7b` - -**טיפ מקצועי:** הסקה מהירה במיוחד - הטוב ביותר לקידוד בזמן אמת! - -### OpenRouter (100+ דגמים) - -1. הירשם: [openrouter.ai](https://openrouter.ai) -2. קבל מפתח API -3. לוח מחוונים ← הוסף ספק ← OpenRouter - -**דגמים:** גישה ל-100+ דגמים מכל הספקים הגדולים באמצעות מפתח API יחיד. - -</details> - -<details> -<summary><b>💰 ספקים זולים (גיבוי)</b></summary> - -### GLM-4.7 (איפוס יומי, $0.6/1 מיליון) - -1. הירשם: [Zhipu AI](https://open.bigmodel.cn/) -2. קבל מפתח API מ-Coding Plan -3. לוח מחוונים ← הוסף מפתח API: - - ספק: `glm` - - מפתח API: `your-key` - -**השתמש:** `glm/glm-4.7` - -**טיפ למקצוענים:** תוכנית קידוד מציעה מכסה של 3× בעלות של 1/7! איפוס כל יום 10:00 בבוקר. - -### MiniMax M2.1 (איפוס של 5 שעות, $0.20/1 מיליון דולר) - -1. הירשם: [MiniMax](https://www.minimax.io/) -2. קבל מפתח API -3. לוח מחוונים ← הוסף מפתח API - -**השתמש:** `minimax/MiniMax-M2.1` - -**Pro Tip:** Cheapest option for long context (1M tokens)! - -### Kimi K2 (דירה של $9 לחודש) - -1. הירשם: [Moonshot AI](https://platform.moonshot.ai/) -2. קבל מפתח API -3. לוח מחוונים ← הוסף מפתח API - -**השתמש:** `kimi/kimi-latest` - -**Pro Tip:** Fixed $9/month for 10M tokens = $0.90/1M effective cost! - -</details> - -<details> -<summary><b>🆓 FREE Providers (Emergency Backup)</b></summary> - -### Qoder (5 דגמים בחינם באמצעות OAuth) - -```bash -Dashboard → Connect Qoder -→ Qoder OAuth login -→ Unlimited usage - -Models: - if/kimi-k2-thinking - if/qwen3-coder-plus - if/glm-4.7 - if/minimax-m2 - if/deepseek-r1 -``` - -### Qwen (4 דגמים בחינם באמצעות קוד מכשיר) - -```bash -Dashboard → Connect Qwen -→ Device code authorization -→ Unlimited usage - -Models: - qw/qwen3-coder-plus - qw/qwen3-coder-flash -``` - -### קירו (קלוד בחינם) - -```bash -Dashboard → Connect Kiro -→ AWS Builder ID or Google/GitHub -→ Unlimited usage - -Models: - kr/claude-sonnet-4.5 - kr/claude-haiku-4.5 -``` - -</details> - -<details> -<summary><b>🎨 Create Combos</b></summary> - -### Example 1: Maximize Subscription → Cheap Backup - -``` -Dashboard → Combos → Create New - -Name: premium-coding -Models: - 1. cc/claude-opus-4-6 (Subscription primary) - 2. glm/glm-4.7 (Cheap backup, $0.6/1M) - 3. minimax/MiniMax-M2.1 (Cheapest fallback, $0.20/1M) - -Use in CLI: premium-coding -``` - -### דוגמה 2: חינם בלבד (עלות אפס) - -``` -Name: free-combo -Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) - -Cost: $0 forever! -``` - -</details> - -<details> -<summary><b>🔧 CLI Integration</b></summary> - -### סמן IDE - -``` -Settings → Models → Advanced: - OpenAI API Base URL: http://localhost:20128/v1 - OpenAI API Key: [from OmniRoute dashboard] - Model: cc/claude-opus-4-6 -``` - -### קלוד קוד - -השתמש בדף **כלי CLI** בלוח המחוונים להגדרת תצורה בלחיצה אחת, או ערוך את `~/.claude/settings.json` באופן ידני. - -### Codex CLI - -```bash -export OPENAI_BASE_URL="http://localhost:20128" -export OPENAI_API_KEY="your-omniroute-api-key" - -codex "your prompt" -``` - -### OpenClaw - -**אפשרות 1 - לוח מחוונים (מומלץ):** - -``` -Dashboard → CLI Tools → OpenClaw → Select Model → Apply -``` - -**אפשרות 2 — ידני:** ערוך `~/.openclaw/openclaw.json`: - -```json -{ - "models": { - "providers": { - "omniroute": { - "baseUrl": "http://127.0.0.1:20128/v1", - "apiKey": "sk_omniroute", - "api": "openai-completions" - } - } - } -} -``` - -> **הערה:** OpenClaw עובד רק עם OmniRoute מקומי. השתמש ב-`127.0.0.1` במקום ב-`localhost` כדי למנוע בעיות ברזולוציה של IPv6. - -### Cline / Continue / RooCode - -``` -Settings → API Configuration: - Provider: OpenAI Compatible - Base URL: http://localhost:20128/v1 - API Key: [from OmniRoute dashboard] - Model: if/kimi-k2-thinking -``` - -### OpenCode - -**שלב 1:** הוסף OmniRoute כספק מותאם אישית: - -```bash -opencode -/connect -# Select "Other" → Enter ID: "omniroute" → Enter your OmniRoute API key -``` - -**שלב 2:** צור/ערוך את `opencode.json` בשורש הפרויקט שלך: - -```json -{ - "$schema": "https://opencode.ai/config.json", - "provider": { - "omniroute": { - "npm": "@ai-sdk/openai-compatible", - "name": "OmniRoute", - "options": { - "baseURL": "http://localhost:20128/v1" - }, - "models": { - "cc/claude-sonnet-4-20250514": { "name": "Claude Sonnet 4" }, - "gg/gemini-2.5-pro": { "name": "Gemini 2.5 Pro" }, - "if/kimi-k2-thinking": { "name": "Kimi K2 (Free)" } - } - } - } -} -``` - -**שלב 3:** בחר את הדגם ב-OpenCode: - -```bash -/models -# Select any OmniRoute model from the list -``` - -> **טיפ:** הוסף כל דגם זמין בנקודת הקצה OmniRoute `/v1/models` שלך למקטע `models`. השתמש בפורמט `provider/model-id` מלוח המחוונים של OmniRoute שלך. - -</details> - ---- - -## 🐛 פתרון בעיות - -<details> -<summary><b>לחץ כדי להרחיב את המדריך לפתרון בעיות</b></summary> - -**"מודל השפה לא סיפק הודעות"** - -- מיצתה מכסת הספק ← בדוק את עוקב המכסות של לוח המחוונים -- פתרון: השתמש ב-combo fallback או עבור לשכבה זולה יותר - -**הגבלת תעריפים** - -- מכסת מנויים נגמרת ← Fallback ל-GLM/MiniMax -- הוסף משולבת: `cc/claude-opus-4-6 → glm/glm-4.7 → if/kimi-k2-thinking` - -**פג תוקפו של אסימון OAuth** - -- רענון אוטומטי על ידי OmniRoute -- אם הבעיות נמשכות: לוח מחוונים ← ספק ← התחבר מחדש - -**עלויות גבוהות** - -- בדוק סטטיסטיקת שימוש בלוח המחוונים ← עלויות -- החלף את הדגם הראשי ל-GLM/MiniMax -- השתמש בשכבה חינמית (Gemini CLI, Qoder) עבור משימות לא קריטיות - -**יציאות לוח המחוונים/API שגויות** - -- `PORT` היא יציאת הבסיס הקנונית (ויציאת API כברירת מחדל) -- `API_PORT` עוקף רק מאזין API תואם OpenAI -- `DASHBOARD_PORT` עוקף רק את לוח המחוונים/מאזין Next.js -- הגדר את `NEXT_PUBLIC_BASE_URL` למרכז השליטה/כתובת האתר הציבורית שלך (עבור התקשרויות חוזרות מ-OAuth) - -**שגיאות סנכרון בענן** - -- ודא `BASE_URL` נקודות למופע הריצה שלך -- אמת `CLOUD_URL` נקודות לנקודת הקצה הצפויה שלך בענן -- שמור על ערכי `NEXT_PUBLIC_*` מיושרים עם ערכי צד השרת - -**הכניסה הראשונה לא עובדת** - -- בדוק את `INITIAL_PASSWORD` ב-`.env` -- אם לא מוגדרת, סיסמת החלפה היא `123456` - -**ללא יומני בקשות** - -- הגדר `ENABLE_REQUEST_LOGS=true` ב-`.env` - -**בדיקת חיבור מראה "לא חוקי" עבור ספקים תואמי OpenAI** - -- ספקים רבים אינם חושפים נקודת קצה `/models` -- OmniRoute v1.0.6+ כולל אימות חוזר באמצעות השלמת צ'אט -- ודא שכתובת האתר הבסיסית כוללת את הסיומת `/v1` - -### 🔐 OAuth בשרת מרוחק - -<a name="oauth-on-a-remote-server"></a> -<a name="oauth-em-servidor-remoto"></a> - -> **⚠️ חשוב למשתמשים המריצים OmniRoute ב-VPS, Docker או כל שרת מרוחק** - -#### מדוע Antigravity / Gemini CLI OAuth נכשל בשרתים מרוחקים? - -ספקי **Antigravity** ו**Gemini CLI** משתמשים ב-**Google OAuth 2.0**. Google דורשת שה-`redirect_uri` בזרימת OAuth תתאים בדיוק לאחד מ-URI הרשומים מראש ב-Google Cloud Console של האפליקציה. - -אישורי ה-OAuth המצורפים ב-OmniRoute רשומים **עבור `localhost` בלבד**. כאשר אתה ניגש אל OmniRoute בשרת מרוחק (למשל `https://omniroute.myserver.com`), Google דוחה את האימות באמצעות: - -``` -Error 400: redirect_uri_mismatch -``` - -#### פתרון: הגדר את אישורי OAuth משלך - -עליך ליצור **OAuth 2.0 Client ID** ב-Google Cloud Console עם URI של השרת שלך. - -#### שלב אחר שלב - -**1. פתח את Google Cloud Console** - -עבור אל: [https://console.cloud.google.com/apis/credentials](https://console.cloud.google.com/apis/credentials) - -**2. צור מזהה לקוח חדש OAuth 2.0** - -- לחץ על **"+ Create Credentials"** → **"OAuth client ID"** -- סוג יישום: **"יישום אינטרנט"** -- שם: כל מה שאתה אוהב (למשל `OmniRoute Remote`) - -**3. הוסף URI מורשים להפניה מחדש** - -בשדה **"כתובות URI מורשות להפניה מחדש"**, הוסף: - -``` -https://your-server.com/callback -``` - -> החלף את `your-server.com` בדומיין או ב-IP של השרת שלך (כלול את היציאה במידת הצורך, למשל `http://45.33.32.156:20128/callback`). - -**4. שמור והעתק את האישורים** - -לאחר היצירה, Google תציג את **זיהוי הלקוח** ואת **סוד הלקוח**. - -**5. הגדר משתני סביבה** - -ב-`.env` שלך (או משתני סביבת Docker): - -```bash -# For Antigravity: -ANTIGRAVITY_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com -ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-your-secret - -# For Gemini CLI: -GEMINI_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com -GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -``` - -**6. הפעל מחדש את OmniRoute** - -```bash -# npm: -npm run dev - -# Docker: -docker restart omniroute -``` - -**7. נסה להתחבר שוב** - -לוח מחוונים ← ספקים ← אנטי כבידה (או Gemini CLI) ← OAuth - -Google תפנה כעת כראוי אל `https://your-server.com/callback`. - ---- - -#### עקיפה זמנית (ללא אישורים מותאמים אישית) - -אם אינך רוצה להגדיר אישורים משלך כעת, אתה עדיין יכול להשתמש ב**זרימת כתובת האתר הידנית**: - -1. OmniRoute פותח את כתובת האתר להרשאה של Google -2. לאחר ההרשאה, Google מנסה להפנות מחדש אל `localhost` (שנכשל בשרת המרוחק) -3. **העתק את כתובת האתר המלאה** מסרגל הכתובות של הדפדפן שלך (גם אם הדף לא נטען) -4. הדבק את כתובת האתר בשדה המוצג במודאל החיבור של OmniRoute -5. לחץ על **"התחבר"** - -> זה עובד מכיוון שקוד ההרשאה בכתובת ה-URL חוקי ללא קשר אם דף ההפניה מחדש נטען. - ---- - -<details> -<summary><b>🇧🇷 Versão em Português</b></summary> - -#### האם אפשר לעשות אנטי כבידה / CLI מזל תאומים עם שירותים מרוחקים? - -שימוש ב-**Antigravity** ו-**Gemini CLI** בשימוש ב-**Google OAuth 2.0** עבור אוטנטיקה. O Google exige que a `redirect_uri` usada no fluxo OAuth seja **exatamente** uma das URIs pré-cadastradas no Google Cloud Console do aplicativo. - -As credenciais OAuth embutidas no OmniRoute estão cadastradas **apenas para `localhost`**. Quando você acessa o OmniRoute em um servidor remoto (לדוגמה: `https://omniroute.meuservidor.com`), o Google rejeita a autenticação com: - -``` -Error 400: redirect_uri_mismatch -``` - -#### פתרון: הגדר את התצורה של OAuth - -קרא בדיוק את **OAuth 2.0 Client ID** ללא Google Cloud Console com a URI do seu service. - -#### פסו אפס - -**1. גישה ל-Google Cloud Console** - -אברה: [https://console.cloud.google.com/apis/credentials](https://console.cloud.google.com/apis/credentials) - -**2. Crie um novo OAuth 2.0 מזהה לקוח** - -- לחץ על **"+ צור אישורים"** → **"זיהוי לקוח OAuth"** -- טיפו דה אפליקטיבי: **"יישום אינטרנט"** -- שם: escolha qualquer nome (לדוגמה: `OmniRoute Remote`) - -**3. Adicone כ-URI מורשים להפניה מחדש** - -אין קמפו **"כתובות URI מורשות להפניה מחדש"**, adicione: - -``` -https://seu-servidor.com/callback -``` - -> Substitua `seu-servidor.com` pelo domínio או IP do seu servidor (כולל porta se necessário, למשל: `http://45.33.32.156:20128/callback`). - -**4. שמור את העותק כ-credenciais** - -אפóס קריאר, o Google mostrará o **זיהוי לקוח** או **סוד לקוח**. - -**5. הגדר כ-variáveis de ambiente** - -No seu `.env` (ou nas variáveis de ambiente do Docker): - -```bash -# Para Antigravity: -ANTIGRAVITY_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com -ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret - -# Para Gemini CLI: -GEMINI_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com -GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -``` - -**6. Reinicie o OmniRoute** - -```bash -# Se usando npm: -npm run dev - -# Se usando Docker: -docker restart omniroute -``` - -**7. Tente conectar novamente** - -לוח מחוונים ← ספקים ← אנטי כבידה (או Gemini CLI) ← OAuth - -Agora o Google redirecionará corretamente para `https://seu-servidor.com/callback` e autenticação funcionará. - ---- - -#### זמני פתרון לעקיפת הבעיה - -Se não quiser criar credenciais próprias agora, ainda é possível usar o fluxo **manual de URL**: - -1. O OmniRoute abrirá a URL de autorização do Google -2. Após você autorizar, o Google tentará redirecionar para `localhost` (que falha no servidor remoto) -3. **העתק כתובת URL מלאה** da barra de endereço do seu דפדפן (mesmo que a página não carregue) -4. Cole essa URL no campo que aparece no modal de conexão do OmniRoute -5. לחץ על **"התחבר"** - -> פתרון עקיפת הבעיה או קוד אוטומטי של כתובת ה-URL או עצמאית להפנות את החשבון או לא. - -</details> - ---- - -</details> - -## 🛠️ Tech Stack - -<details> -<summary><b>לחץ כדי להרחיב את פרטי מחסנית הטכנולוגיה</b></summary> - -- **זמן ריצה**: Node.js 18–22 LTS (⚠️ Node.js 24+ **לא נתמך** - `better-sqlite3` קבצים בינאריים מקוריים אינם תואמים) -- **שפה**: TypeScript 5.9 — **100% TypeScript** על פני `src/` ו`open-sse/` (אפס `any` במודולי ליבה מאז v2.0) -- **מסגרת**: Next.js 16 + React 19 + Tailwind CSS 4 -- **מסד נתונים**: LowDB (JSON) + SQLite (מצב דומיין + יומני proxy + ביקורת MCP + החלטות ניתוב) -- **סכימות**: Zod (אימות כלי MCP I/O, חוזי API) -- **פרוטוקולים**: MCP (stdio/HTTP) + A2A v0.3 (JSON-RPC 2.0 + SSE) -- **סטרימינג**: אירועים שנשלחו על ידי שרת (SSE) -- **אישור**: OAuth 2.0 (PKCE) + JWT + מפתחות API + הרשאה בהיקף MCP -- **בדיקות**: רץ בדיקה של Node.js + Vitest (900+ בדיקות כולל יחידה, אינטגרציה, E2E) -- **CI/CD**: פעולות GitHub (פרסום אוטומטי של npm + Docker Hub בשחרור) -- **אתר**: [omniroute.online](https://omniroute.online) -- **חבילה**: [npmjs.com/package/omniroute](https://www.npmjs.com/package/omniroute) -- **דוקר**: [hub.docker.com/r/diegosouzapw/omniroute](https://hub.docker.com/r/diegosouzapw/omniroute) -- **חוסן**: מפסק מעגלים, גיבוי אקספוננציאלי, עדר נגד רעמים, זיוף TLS, ריפוי עצמי משולבת אוטומטית - -</details> - ---- - -## 📖 תיעוד - -| מסמך | תיאור | -| ---------------------------------------------- | -------------------------------------------------------- | -| [User Guide](docs/USER_GUIDE.md) | ספקים, שילובים, שילוב CLI, פריסה | -| [API Reference](docs/API_REFERENCE.md) | כל נקודות הקצה עם דוגמאות | -| [MCP Server](open-sse/mcp-server/README.md) | 16 כלי MCP, הגדרות IDE, לקוחות Python/TS/Go | -| [A2A Server](src/lib/a2a/README.md) | פרוטוקול JSON-RPC 2.0, מיומנויות, סטרימינג, ניהול משימות | -| [Auto-Combo Engine](docs/auto-combo.md) | ניקוד 6 גורמים, חבילות מצב, ריפוי עצמי | -| [Troubleshooting](docs/TROUBLESHOOTING.md) | בעיות ופתרונות נפוצים | -| [Architecture](docs/ARCHITECTURE.md) | ארכיטקטורת מערכת ופנים | -| [Contributing](CONTRIBUTING.md) | מערך פיתוח והנחיות | -| [OpenAPI Spec](docs/openapi.yaml) | מפרט OpenAPI 3.0 | -| [Security Policy](SECURITY.md) | Vulnerability reporting and security practices | -| [VM Deployment](docs/VM_DEPLOYMENT_GUIDE.md) | מדריך שלם: הגדרות VM + nginx + Cloudflare | -| [Features Gallery](docs/FEATURES.md) | סיור חזותי בלוח המחוונים עם צילומי מסך | -| [Release Checklist](docs/RELEASE_CHECKLIST.md) | שלבי אימות לפני שחרור | - ---- - -## 🗺️ מפת דרכים - -ל-OmniRoute יש **210+ תכונות מתוכננות** לאורך שלבי פיתוח מרובים. להלן תחומי המפתח: - -| קטגוריה | תכונות מתוכננות | הבהרה | -| --------------------- | --------------- | ---------------------------------------------------------------------------------------- | -| 🧠 **ניתוב ומודיעין** | 25+ | ניתוב עם זמן האחזור הנמוך ביותר, ניתוב מבוסס תגים, בדיקה מוקדמת של מכסה, בחירת חשבון P2C | -| 🔒 **אבטחה ותאימות** | 20+ | הקשחת SSRF, הסוואה של אישורים, הגבלת קצב לכל נקודת קצה, היקף מפתח ניהול | -| 📊 **צפיות** | 15+ | אינטגרציה של OpenTelemetry, ניטור מכסות בזמן אמת, מעקב עלויות לכל דגם | -| 🔄 **שילובי ספקים** | 20+ | רישום מודלים דינמיים, צינון ספקים, Codex מרובה חשבונות, ניתוח מכסת Copilot | -| ⚡ **ביצועים** | 15+ | Dual cache layer, prompt cache, response cache, streaming keepalive, batch API | -| 🌐 **מערכת אקולוגית** | 10+ | WebSocket API, טעינה חוזרת של תצורה, חנות תצורה מבוזרת, מצב מסחרי | - -### 🔜 בקרוב - -- 🔗 **שילוב OpenCode** - תמיכה בספק מקורי עבור IDE קידוד AI של OpenCode -- 🔗 **TRAE Integration** — תמיכה מלאה במסגרת הפיתוח של TRAE AI -- 📦 **אצווה API** - עיבוד אצווה אסינכרוני עבור בקשות בכמות גדולה -- 🎯 **ניתוב מבוסס תגים** — בקשות ניתוב המבוססות על תגים ומטא נתונים מותאמים אישית -- 💰 **אסטרטגיית העלות הנמוכה ביותר** — בחר אוטומטית את הספק הזמין הזול ביותר - -> 📝 מפרטי תכונה מלאים זמינים ב-[**OMNI_TOKEN_342**](docs/new-features/) (217 מפרטים מפורטים) - ---- - -## 👥 תורמים - -[![Contributors](https://contrib.rocks/image?repo=diegosouzapw/OmniRoute&max=100&columns=20&anon=1)](https://github.com/diegosouzapw/OmniRoute/graphs/contributors) - -### כיצד לתרום - -1. מזלג את המאגר -2. צור את ענף התכונה שלך (`git checkout -b feature/amazing-feature`) -3. בצע את השינויים שלך (`git commit -m 'Add amazing feature'`) -4. דחף לסניף (`git push origin feature/amazing-feature`) -5. פתחו בקשת משיכה - -ראה [CONTRIBUTING.md](CONTRIBUTING.md) להנחיות מפורטות. - -### שחרור גרסה חדשה - -```bash -# Create a release — npm publish happens automatically -gh release create v2.0.0 --title "v2.0.0" --generate-notes -``` - ---- - -## 📊 היסטוריית כוכבים - -## צופים בכוכבים לאורך זמן - -## [![Stargazers over time](https://starchart.cc/diegosouzapw/OmniRoute.svg?variant=adaptive)](https://starchart.cc/diegosouzapw/OmniRoute) - -## 🙏 תודות - -תודה מיוחדת ל**[9router](https://github.com/decolua/9router)** מאת **[decolua](https://github.com/decolua)** - הפרויקט המקורי שהיווה השראה למזלג הזה. OmniRoute בונה על הבסיס המדהים הזה עם תכונות נוספות, ממשקי API רב-מודאליים ושכתוב מלא של TypeScript. - -תודה מיוחדת ל**[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)** - היישום המקורי של Go שימש השראה ליציאת JavaScript הזו. - ---- - -## 📄 רישיון - -רישיון MIT - ראה [LICENSE](LICENSE) לפרטים. - ---- - -<div align="center"> - <sub>נבנה עם ❤️ למפתחים שמקודדים 24/7</sub> - <br/> - <sub><a href="https://omniroute.online">omniroute.online</a></sub> -</div> -<!-- דיוני GitHub מופעלים עבור שאלות ותשובות של הקהילה --> +👉 **[Read the Documentation here](docs/i18n/he/README.md)** diff --git a/README.hu.md b/README.hu.md index 86737ff002..0d1bfec7ab 100644 --- a/README.hu.md +++ b/README.hu.md @@ -1,2077 +1,5 @@ -# 🚀 OmniRoute – Az ingyenes mesterséges intelligencia átjáró +# 🌐 OmniRoute (hu) -### Soha ne hagyd abba a kódolást. Intelligens útválasztás **INGYENES és alacsony költségű mesterséges intelligencia modellekhez** automatikus visszaállítással. +The documentation has been formalized and moved to our centralized i18n structure. -_Az univerzális API-proxy – egy végpont, 67+ szolgáltató, nulla állásidő. Most **MCP és A2A** ügynök hangszereléssel._ - -**Csevegés befejezése • Beágyazások • Képgenerálás • Videó • Zene • Hang • Újrarangsorolás • **Webes keresés** • MCP-szerver • A2A protokoll • 100% TypeScript** - ---- - -<div align="center"> - -[![npm version](https://img.shields.io/npm/v/omniroute?color=cb3837&logo=npm)](https://www.npmjs.com/package/omniroute) -[![npm downloads](https://img.shields.io/npm/dm/omniroute?color=cb3837&logo=npm&label=npm%20downloads)](https://www.npmjs.com/package/omniroute) -[![Docker Hub](https://img.shields.io/docker/v/diegosouzapw/omniroute?label=Docker%20Hub&logo=docker&color=2496ED)](https://hub.docker.com/r/diegosouzapw/omniroute) -[![Docker Pulls](https://img.shields.io/docker/pulls/diegosouzapw/omniroute?logo=docker&color=2496ED&label=docker%20pulls)](https://hub.docker.com/r/diegosouzapw/omniroute) -[![License](https://img.shields.io/github/license/diegosouzapw/OmniRoute)](https://github.com/diegosouzapw/OmniRoute/blob/main/LICENSE) -[![Website](https://img.shields.io/badge/Website-omniroute.online-blue?logo=google-chrome&logoColor=white)](https://omniroute.online) -[![WhatsApp](https://img.shields.io/badge/WhatsApp-Community-25D366?logo=whatsapp&logoColor=white)](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) - -[🌐 Website](https://omniroute.online) • [🚀 Quick Start](#-quick-start) • [💡 Features](#-key-features) • [📖 Docs](#-documentation) • [💰 Pricing](#-pricing-at-a-glance) • [💬 WhatsApp](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) - -</div> - -🌐 **Elérhető:** 🇺🇸 [English](README.md) | 🇧🇷 [Português (Brasil)](docs/i18n/pt-BR/README.md) | 🇪🇸 [Español](docs/i18n/es/README.md) | 🇫🇷 [Français](docs/i18n/fr/README.md) | 🇮🇹 [Italiano](docs/i18n/it/README.md) | 🇷🇺 [Русский](docs/i18n/ru/README.md) | 🇨🇳 [中文 (简体)](docs/i18n/zh-CN/README.md) | 🇩🇪 [Deutsch](docs/i18n/de/README.md) | 🇮🇳 [हिन्दी](docs/i18n/in/README.md) | 🇹🇭 [ไทย](docs/i18n/th/README.md) | 🇺🇦 [Українська](docs/i18n/uk-UA/README.md) | 🇸🇦 [العربية](docs/i18n/ar/README.md) | 🇯🇵 [日本語](docs/i18n/ja/README.md) | 🇻🇳 [Tiếng Việt](docs/i18n/vi/README.md) | 🇧🇬 [Български](docs/i18n/bg/README.md) | 🇩🇰 [Dansk](docs/i18n/da/README.md) | 🇫🇮 [Suomi](docs/i18n/fi/README.md) | 🇮🇱 [עברית](docs/i18n/he/README.md) | 🇭🇺 [Magyar](docs/i18n/hu/README.md) | 🇮🇩 [Bahasa Indonesia](docs/i18n/id/README.md) | 🇰🇷 [한국어](docs/i18n/ko/README.md) | 🇲🇾 [Bahasa Melayu](docs/i18n/ms/README.md) | 🇳🇱 [Nederlands](docs/i18n/nl/README.md) | 🇳🇴 [Norsk](docs/i18n/no/README.md) | 🇵🇹 [Português (Portugal)](docs/i18n/pt/README.md) | 🇷🇴 [Română](docs/i18n/ro/README.md) | 🇵🇱 [Polski](docs/i18n/pl/README.md) | 🇸🇰 [Slovenčina](docs/i18n/sk/README.md) | 🇸🇪 [Svenska](docs/i18n/sv/README.md) | 🇵🇭 [Filipino](docs/i18n/phi/README.md) | 🇨🇿 [Čeština](docs/i18n/cs/README.md) - ---- - -## 🆕 A v3.0.0 újdonságai - -> **Frissítés a 2.9.5-ös verzióról?** — Az összes változást lásd a [full CHANGELOG](CHANGELOG.md#300--2026-03-22-release-candidate--not-yet-merged-to-main) dokumentumban. - -| Terület | Változás | -| ----------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 🔒 **CodeQL Security** | Javított 10+ CodeQL riasztás: polinomiális újraadás, bizonytalan véletlenszerűség, shell-injekciós helyreállítás | -| ✅ **Útvonal ellenőrzése** | Mind a 176 API-útvonal érvényes Zod-sémákkal + `validateBody()` — CI `check:route-validation:t06` | -| 🐛 **omniModel címkeszivárgás** | A belső `<omniModel>` címkék többé nem szivárognak ki az ügyfelekhez az SSE streaming válaszaiban (#585) | -| 🔑 **Regisztrált kulcsok API** | API-kulcsok automatikus rendelkezésre bocsátása a `POST /api/v1/registered-keys`-on keresztül szolgáltatónkénti/fiókonkénti kvóta-érvényesítéssel, idempotenciával, SHA-256 tárhellyel és opcionális GitHub-hibajelentéssel | -| 👁️ **Scoped API Key Reveal** 🆕 | Opt-in recovery of API keys via `ALLOW_API_KEY_REVEAL` | -| 🎨 ** Szolgáltatói ikonok** | 130+ szolgáltatói logó a `@lobehub/icons` (SVG)-n keresztül PNG-vel → általános tartaléklánc | -| 🔄 **Modell automatikus szinkronizálása** | 24 órás ütemező és kézi felhasználói felület kapcsoló a beépített és egyéni OpenAI-kompatibilis szolgáltatók modelllistáinak szinkronizálásához | -| 🌐 **OpenCode Zen/Go** | Két új szolgáltató a @kang-heewontól a PR #530-on keresztül: ingyenes szint + előfizetési szint a következőn keresztül: `OpencodeExecutor` | -| 🐛 **Gemini CLI OAuth** | Intézhető hiba, amikor a `GEMINI_OAUTH_CLIENT_SECRET` hiányzik a Dockerből (rejtélyes Google-hiba volt) | -| 🐛 **OpenCode konfiguráció** | `saveOpenCodeConfig()` most helyesen írja a TOML-t a `XDG_CONFIG_HOME`-ba | -| 🐛 **Rögzített modell felülbírálása** | `body.model` helyesen `pinnedModel` értékre állítva a környezet-gyorsítótár védelemben | -| 🐛 **Codex/Claude hurok** | `tool_result` blokkok szöveggé konvertálva a végtelen hurkok leállítására | -| 🐛 **Bejelentkezés átirányítása** | A bejelentkezés már nem fagy le, miután kihagyta a jelszóbeállítást | -| 🐛 **Windows útvonalak** | Az MSYS2/Git-Bash elérési utak (`/c/...`) automatikusan `C:\...`-ra normalizálva | - ---- - -## 🖼️ Fő irányítópult - -<div align="center"> - <img src="./docs/screenshots/MainOmniRoute.png" alt="OmniRoute Dashboard" width="800"/> -</div> - ---- - -## 📸 Irányítópult előnézete - -<details> -<summary><b>Kattintson az irányítópult képernyőképeinek megtekintéséhez</b></summary> - -| oldal | Képernyőkép | -| --------------------- | ------------------------------------------------- | -| **Szolgáltatók** | ![Providers](docs/screenshots/01-providers.png) | -| **Combos** | ![Combos](docs/screenshots/02-combos.png) | -| **Analytics** | ![Analytics](docs/screenshots/03-analytics.png) | -| **Egészség** | ![Health](docs/screenshots/04-health.png) | -| **Fordító** | ![Translator](docs/screenshots/05-translator.png) | -| **Beállítások** | ![Settings](docs/screenshots/06-settings.png) | -| **CLI eszközök** | ![CLI Tools](docs/screenshots/07-cli-tools.png) | -| **Használati naplók** | ![Usage](docs/screenshots/08-usage.png) | -| **Végpontok** | ![Endpoints](docs/screenshots/09-endpoint.png) | - -</details> - ---- - -### 🤖 Ingyenes mesterséges intelligencia szolgáltató kedvenc kódoló ügynökei számára - -_Csatlakoztasson bármilyen mesterséges intelligencia-alapú IDE-t vagy CLI-eszközt az OmniRoute-on keresztül – ingyenes API-átjáró a korlátlan kódoláshoz._ - - <table> - <tr> - <td align="center" width="110"> - <a href="https://github.com/openclaw/openclaw"> - <img src="./public/providers/openclaw.png" alt="OpenClaw" width="48"/><br/> - <b>OpenClaw</b> - </a><br/> - <sub>⭐ 205K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/HKUDS/nanobot"> - <img src="./public/providers/nanobot.png" alt="NanoBot" width="48"/><br/> - <b>NanoBot</b> - </a><br/> - <sub>⭐ 20.9K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/sipeed/picoclaw"> - <img src="./public/providers/picoclaw.jpg" alt="PicoClaw" width="48"/><br/> - <b>PicoClaw</b> - </a><br/> - <sub>⭐ 14.6K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/zeroclaw-labs/zeroclaw"> - <img src="./public/providers/zeroclaw.png" alt="ZeroClaw" width="48"/><br/> - <b>ZeroClaw</b> - </a><br/> - <sub>⭐ 9.9K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/nearai/ironclaw"> - <img src="./public/providers/ironclaw.png" alt="IronClaw" width="48"/><br/> - <b>IronClaw</b> - </a><br/> - <sub>⭐ 2.1K</sub> - </td> - </tr> - <tr> - <td align="center" width="110"> - <a href="https://github.com/anomalyco/opencode"> - <img src="./public/providers/opencode.svg" alt="OpenCode" width="48"/><br/> - <b>OpenCode</b> - </a><br/> - <sub>⭐ 106K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/openai/codex"> - <img src="./public/providers/codex.png" alt="Codex CLI" width="48"/><br/> - <b>Codex CLI</b> - </a><br/> - <sub>⭐ 60.8K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/anthropics/claude-code"> - <img src="./public/providers/claude.png" alt="Claude Code" width="48"/><br/> - <b>Claude Code</b> - </a><br/> - <sub>⭐ 67.3K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/google-gemini/gemini-cli"> - <img src="./public/providers/gemini-cli.png" alt="Gemini CLI" width="48"/><br/> - <b>Gemini CLI</b> - </a><br/> - <sub>⭐ 94.7K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/Kilo-Org/kilocode"> - <img src="./public/providers/kilocode.png" alt="Kilo Code" width="48"/><br/> - <b>Kilo Code</b> - </a><br/> - <sub>⭐ 15.5K</sub> - </td> - </tr> - </table> - -<sub>📡 Minden ügynök a következőn keresztül csatlakozik: <code>http://localhost:20128/v1</code> vagy <code>http://cloud.omni_TOKEN_465\_\_http://cloud.omniroute konfiguráció, korlátlan modellek és kvóta</sub> - ---- - -## 🤔 Miért az OmniRoute? - -**Ne pazarolja a pénzt, és ne lépje túl a limiteket:** - -- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Az előfizetési kvóta minden hónapban fel nem használt -- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> A sebességkorlátok megakadályozzák a közbenső kódolást -- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Drága API-k (20-50 USD/hó szolgáltatónként) -- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Manuális váltás a szolgáltatók között - -**Az OmniRoute ezt megoldja:** - -- ✅ **Az előfizetések maximalizálása** - Kövesse nyomon a kvótát, használjon fel minden bitet a visszaállítás előtt -- ✅ **Automatikus tartalék** - Előfizetés → API-kulcs → Olcsó → Ingyenes, nulla állásidő -- ✅ **Több fiók** - Kör-robin a fiókok között szolgáltatónként -- ✅ **Univerzális** - Claude Code, Codex, Gemini CLI, Cursor, Cline, OpenClaw, bármilyen CLI eszközzel működik - ---- - -## 📧 Támogatás - -> 💬 **Csatlakozzon közösségünkhöz!** [WhatsApp Group](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) — Kérjen segítséget, ossza meg tippjeit, és naprakész legyen. - -- **Webhely**: [omniroute.online](https://omniroute.online) -- **GitHub**: [github.com/diegosouzapw/OmniRoute](https://github.com/diegosouzapw/OmniRoute) -- **Problémák**: [github.com/diegosouzapw/OmniRoute/issues](https://github.com/diegosouzapw/OmniRoute/issues) -- **WhatsApp**: [Community Group](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) -- **Hozzájárulás**: Lásd [CONTRIBUTING.md](CONTRIBUTING.md), nyisson PR-t, vagy válasszon egy `good first issue` -- **Eredeti projekt**: [9router by decolua](https://github.com/decolua/9router) - -### 🐛 Hibát jelent? - -Egy probléma megnyitásakor futtassa a system-info parancsot, és csatolja a generált fájlt: - -```bash -npm run system-info -``` - -Ez létrehoz egy `system-info.txt`-t a Node.js verziójával, az OmniRoute verziójával, az operációs rendszer részleteivel, a telepített CLI-eszközökkel (qoder, gemini, claude, codex, antigravitáció, droid stb.), Docker/PM2 állapottal és rendszercsomagokkal – mindennel, amire szükségünk van a probléma gyors reprodukálásához. Csatolja a fájlt közvetlenül a GitHub-problémához. - ---- - -## 🔄 Hogyan működik - -``` -┌─────────────┐ -│ Your CLI │ (Claude Code, Codex, Gemini CLI, OpenClaw, Cursor, Cline...) -│ Tool │ -└──────┬──────┘ - │ http://localhost:20128/v1 - ↓ -┌─────────────────────────────────────────┐ -│ OmniRoute (Smart Router) │ -│ • Format translation (OpenAI ↔ Claude) │ -│ • Quota tracking + Embeddings + Images │ -│ • Auto token refresh │ -└──────┬──────────────────────────────────┘ - │ - ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex, Gemini CLI - │ ↓ quota exhausted - ├─→ [Tier 2: API KEY] DeepSeek, Groq, xAI, Mistral, NVIDIA NIM, etc. - │ ↓ budget limit - ├─→ [Tier 3: CHEAP] GLM ($0.6/1M), MiniMax ($0.2/1M) - │ ↓ budget limit - └─→ [Tier 4: FREE] Qoder, Qwen, Kiro (unlimited) - -Result: Never stop coding, minimal cost -``` - ---- - -## 🎯 Mit old meg az OmniRoute – 30 valódi fájdalompont és használati eset - -> **Minden mesterséges intelligencia-eszközöket használó fejlesztő naponta szembesül ezekkel a problémákkal.** Az OmniRoute úgy készült, hogy ezeket mind megoldja – a költségtúllépésektől a regionális blokkokig, a megszakadt OAuth-folyamatoktól a protokollműveletekig és a vállalati megfigyelhetőségig. - -<details> -<summary><b>💸 1. "Drága előfizetésért fizetek, de még mindig megszakítanak a korlátok"</b></summary> - -A fejlesztők havi 20–200 dollárt fizetnek a Claude Pro, Codex Pro vagy GitHub Copilotért. A kvótának még fizetés esetén is van felső határa – 5 óra használat, heti limitek vagy percdíjkorlátok. A kódolási munkamenet közepén a szolgáltató leáll, és a fejlesztő elveszíti a folyamatot és a termelékenységet. - -**Hogyan oldja meg az OmniRoute:** - -- **Smart 4-Tier Fallback** – Ha az előfizetési kvóta kimerül, automatikusan átirányítja az API-kulcs → Olcsó → Ingyenes, manuális beavatkozás nélkül -- **Valós idejű kvótakövetés** – Valós időben mutatja a token felhasználást, visszaszámlálással (5 óra, napi, heti) -- **Több fiók támogatása** - Több fiók szolgáltatónként automatikus körváltással - ha az egyik elfogy, átvált a következőre -- **Egyéni kombók** — Testreszabható tartalék láncok 6 kiegyensúlyozási stratégiával (fill-first, round-robin, P2C, véletlenszerű, legkevésbé használt, költségoptimalizált) -- **Codex üzleti kvóták** — Üzleti/csapat munkaterület-kvóta figyelése közvetlenül az irányítópulton - -</details> - -<details> -<summary><b>🔌 2. "Több szolgáltatót kell használnom, de mindegyiknek más az API"</b></summary> - -Az OpenAI egy formátumot használ, a Claude (Anthropic) egy másikat, a Gemini pedig egy másikat. Ha egy fejlesztő különböző szolgáltatók modelljeit szeretné tesztelni, vagy tartalékot szeretne közöttük, akkor újra kell konfigurálnia az SDK-kat, módosítania kell a végpontokat, és kezelnie kell az inkompatibilis formátumokat. Az egyéni szolgáltatók (FriendLI, NIM) nem szabványos modellvégpontokkal rendelkeznek. - -**Hogyan oldja meg az OmniRoute:** - -- **Egységes végpont** - Egyetlen `http://localhost:20128/v1` proxyként szolgál mind a 67+ szolgáltató számára -- **Formátumfordítás** - Automatikus és átlátható: OpenAI ↔ Claude ↔ Gemini ↔ Responses API -- **Response Sanitization** – Törli azokat a nem szabványos mezőket (`x_groq`, `usage_breakdown`, `service_tier`), amelyek megsértik az OpenAI SDK v1.83+ verzióját -- **Szerepek normalizálása** — `developer` → `system` konvertálása nem OpenAI szolgáltatók számára; `system` → `user` a GLM/ERNIE számára -- **Think Tag Extraction** – `<think>` blokkot bont ki olyan modellekből, mint a DeepSeek R1 szabványos `reasoning_content` -- **Strukturált kimenet a Gemini számára** — `json_schema` → `responseMimeType`/`responseSchema` automatikus átalakítás -- **`stream` alapértelmezett értéke `false`** - Az OpenAI specifikációhoz igazodik, elkerülve a váratlan SSE-t a Python/Rust/Go SDK-kban - -</details> - -<details> -<summary><b>🌐 3. "Az AI-szolgáltatóm blokkolja a régiómat/országomat"</b></summary> - -Az olyan szolgáltatók, mint az OpenAI/Codex, blokkolják a hozzáférést bizonyos földrajzi régiókból. A felhasználók olyan hibákat kapnak, mint az `unsupported_country_region_territory` az OAuth- és API-kapcsolatok során. Ez különösen frusztráló a fejlődő országok fejlesztői számára. - -**Hogyan oldja meg az OmniRoute:** - -- **3-szintű proxykonfiguráció** – 3 szinten konfigurálható proxy: globális (teljes forgalom), szolgáltatónként (csak egy szolgáltató) és kapcsolatonként/kulcsonként -- **Színes proxy jelvények** - Vizuális jelzők: 🟢 globális proxy, 🟡 szolgáltató proxy, 🔵 kapcsolat proxy, mindig az IP-t mutatja -- **OAuth-tokencsere proxyn keresztül** - Az OAuth-folyamat a proxyn keresztül is megy, megoldva a `unsupported_country_region_territory` -- **Kapcsolódási tesztek proxyn keresztül** - A csatlakozási tesztek a konfigurált proxyt használják (nincs többé közvetlen kiiktatás) -- **SOCKS5 támogatás** — Teljes SOCKS5 proxy támogatás a kimenő útválasztáshoz -- **TLS-ujjlenyomat-hamisítás** — Böngészőszerű TLS-ujjlenyomat a `wreq-js`-on keresztül a botészlelés megkerüléséhez -- **🔏 CLI Fingerprint Matching** – A fejlécek és törzsmezők átrendezése a natív CLI bináris aláírásokhoz igazodva, drasztikusan csökkentve a fiók megjelölésének kockázatát. A proxy IP-címe megmarad – egyszerre kapja meg a lopakodó **és** IP-maszkolást - -</details> - -<details> -<summary><b>🆓 4. "AI-t akarok használni kódoláshoz, de nincs pénzem"</b></summary> - -Nem mindenki fizethet havi 20–200 dollárt az AI-előfizetésekért. A feltörekvő országok diákjainak, fejlesztőinek, amatőröknek és szabadúszóknak nulla költséggel kell hozzáférniük a minőségi modellekhez. - -**Hogyan oldja meg az OmniRoute:** - -- **Beépített ingyenes szolgáltatók** - Natív támogatás a 100%-ban ingyenes szolgáltatókhoz: Qoder (5 korlátlan modell az OAuth-on keresztül: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen-modellek: 4 unqlim-plus3 qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID ingyen), Gemini CLI (180 000 token/hónap ingyenes) -- **Ollama Cloud** – Felhőben tárolt Ollama modellek a `api.ollama.com` címen ingyenes „Light usage” szinttel; használja az `ollamacloud/<model>` előtagot -- **Csak ingyenes kombók** - Lánc `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = 0 USD/hó nulla állásidővel -- **NVIDIA NIM ingyenes hozzáférés** – ~40 RPM fejlesztői örökké ingyenes hozzáférés több mint 70 modellhez a build.nvidia.com oldalon (áttérés a kreditekről a tiszta sebességkorlátokra) -- **Költségoptimalizált stratégia** — Útválasztási stratégia, amely automatikusan a legolcsóbb elérhető szolgáltatót választja - -</details> - -<details> -<summary><b>🔒 5. "Meg kell védenem a mesterséges intelligencia átjárómat a jogosulatlan hozzáféréstől"</b></summary> - -Ha AI átjárót teszünk ki a hálózatnak (LAN, VPS, Docker), a cím birtokában bárki felhasználhatja a fejlesztő tokenjeit/kvótáját. Védelem nélkül az API-k sebezhetőek a visszaélésekkel, azonnali befecskendezéssel és visszaélésekkel szemben. - -**Hogyan oldja meg az OmniRoute:** - -- **API-kulcskezelés** – Generálás, rotáció és hatókör szolgáltatónként egy dedikált `/dashboard/api-manager` oldallal -- **Modell-szintű engedélyek** – API-kulcsok korlátozása adott modellekre (`openai/*`, helyettesítő karakteres minták), az Összes engedélyezése/Korlátozása kapcsolóval -- **API Endpoint Protection** – Kulcs szükséges a `/v1/models` számára, és bizonyos szolgáltatók letiltása a listáról -- **Auth Guard + CSRF védelem** - Minden irányítópult-útvonal `withAuth` köztes szoftverrel + CSRF tokenekkel védett -- **Rate Limiter** — IP-nkénti sebességkorlátozás konfigurálható ablakokkal -- **IP-szűrés** — Engedélyezési lista/blokkolólista a hozzáférés-vezérléshez -- **Prompt Injection Guard** – fertőtlenítés a rosszindulatú felszólítási minták ellen -- **AES-256-GCM titkosítás** - A hitelesítő adatok nyugalmi állapotban titkosítva - -</details> - -<details> -<summary><b>🛑 6. "A szolgáltatóm leállt, és elvesztettem a kódolási folyamatomat"</b></summary> - -Az AI-szolgáltatók instabillá válhatnak, 5xx-es hibákat adnak vissza, vagy elérhetik az ideiglenes sebességkorlátokat. Ha egy fejlesztő egyetlen szolgáltatótól függ, akkor megszakad. Megszakítók nélkül az ismételt újrapróbálkozások összeomolhatják az alkalmazást. - -**Hogyan oldja meg az OmniRoute:** - -- **Megszakító típusonként** - Automatikus nyitás/zárás konfigurálható küszöbértékekkel és lehűtéssel (zárt/nyitott/félig nyitott), modellenkénti hatókör a lépcsőzetes blokkok elkerülése érdekében -- **Exponenciális visszalépés** — Progresszív újrapróbálkozási késések -- **Mennydörgés elleni csorda** - Mutex + szemafor védelem az egyidejű újrapróbálkozási viharok ellen -- **Kombinált tartalék láncok** – Ha az elsődleges szolgáltató meghibásodik, automatikusan, beavatkozás nélkül átesik a láncon -- **Combo Circuit Breaker** – Automatikusan letiltja a hibás szolgáltatókat a kombinált láncon belül -- **Egészségügyi irányítópult** — Üzemidő-figyelés, áramkör-megszakító állapotok, zárolások, gyorsítótár-statisztika, p50/p95/p99 késleltetés - -</details> - -<details> -<summary><b>🔧 7. „Az egyes mesterséges intelligencia-eszközök konfigurálása fárasztó és ismétlődő”</b></summary> - -A fejlesztők Cursort, Claude Code-ot, Codex CLI-t, OpenClaw-ot, Gemini CLI-t, Kilo Code-ot használnak... Minden eszköznek más konfigurációra van szüksége (API végpont, kulcs, modell). Az újrakonfigurálás szolgáltató- vagy modellváltáskor időpocsékolás. - -**Hogyan oldja meg az OmniRoute:** - -- **CLI Tools Dashboard** - Dedikált oldal egykattintásos beállítással a Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline számára -- **GitHub másodpilóta konfigurációs generátor** – `chatLanguageModels.json` generál VS kódhoz tömeges modellválasztással -- **Bevezető varázsló** – Irányított 4 lépéses beállítás első felhasználók számára -- **Egy végpont, minden modell** - A `http://localhost:20128/v1` egyszeri konfigurálása, 67+ szolgáltató elérése - -</details> - -<details> -<summary><b>🔑 8. "A több szolgáltatótól származó OAuth-tokenek kezelése pokol"</b></summary> - -Claude Code, Codex, Gemini CLI, Copilot – mindegyik az OAuth 2.0-t használja lejáró tokenekkel. A fejlesztőknek folyamatosan újra kell hitelesíteniük, kezelniük kell a `client_secret is missing`, `redirect_uri_mismatch` és a távoli kiszolgálók hibáit. Az OAuth a LAN/VPS-en különösen problémás. - -**Hogyan oldja meg az OmniRoute:** - -- **Automatikus tokenfrissítés** - Az OAuth-tokenek a háttérben frissülnek a lejárat előtt -- **OAuth 2.0 (PKCE) beépített** - Automatikus áramlás Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder számára -- **Multi-Account OAuth** - Több fiók szolgáltatónként a JWT/ID token kivonattal -- **OAuth LAN/Távoli javítás** - Privát IP-észlelés a `redirect_uri` számára + kézi URL mód távoli szerverekhez -- **OAuth az Nginx mögött** - A `window.location.origin` kódot használja a fordított proxy kompatibilitáshoz -- **Távoli OAuth útmutató** – Lépésről lépésre útmutató a Google Cloud hitelesítő adataihoz VPS/Docker rendszeren - -</details> - -<details> -<summary><b>📊 9. "Nem tudom, mennyit költök és hol"</b></summary> - -A fejlesztők több fizetős szolgáltatót használnak, de nincs egységes nézetük a kiadásokról. Minden szolgáltató saját számlázási irányítópulttal rendelkezik, de nincs összevont nézet. A váratlan költségek felhalmozódhatnak. - -**Hogyan oldja meg az OmniRoute:** - -- **Költségelemzési irányítópult** – Tokenenkénti költségkövetés és költségkeret-kezelés szolgáltatónként -- **Költségkeret-korlátok rétegenként** - Költési felső határ szintenként, amely automatikus visszalépést vált ki -- **Per-Model Pricing Configuration** — Configurable prices per model -- **Használati statisztika API-kulcsonként** — A kérések száma és az utoljára használt időbélyeg kulcsonként -- **Analytics Dashboard** — Statisztikai kártyák, modellhasználati diagram, szolgáltatói táblázat sikerarányokkal és késleltetéssel - -</details> - -<details> -<summary><b>🐛 10. "Nem tudom diagnosztizálni a hibákat és problémákat az AI-hívásoknál"</b></summary> - -Ha egy hívás meghiúsul, a fejlesztő nem tudja, hogy sebességkorlátozás, lejárt token, rossz formátum vagy szolgáltatói hiba volt-e. Töredezett naplók a különböző terminálokon. Megfigyelhetőség nélkül a hibakeresés próba és hiba. - -**Hogyan oldja meg az OmniRoute:** - -- **Unified Logs Dashboard** — 4 tabs: Request Logs, Proxy Logs, Audit Logs, Console -- **Konzolnapló-nézegető** — Valós idejű terminál stílusú megjelenítő színkódolt szintekkel, automatikus görgetés, keresés, szűrés -- **SQLite proxynaplók** – Állandó naplók, amelyek túlélik a szerver újraindítását -- **Translator Playground** – 4 hibakeresési mód: Playground (formátum fordítás), Chat Tester (oda-vissza út), Tesztpad (kötegelt), Élő monitor (valós idejű) -- **Request Telemetria** – p50/p95/p99 késleltetés + X-Request-Id nyomkövetés -- **Fájlalapú naplózás elforgatással** - A konzolelfogó mindent JSON-naplóba rögzít méretalapú elforgatással -- **Rendszerinformációs jelentés** — A `npm run system-info` a teljes környezettel (Node-verzió, OmniRoute-verzió, OS, CLI-eszközök, Docker/PM2 állapot) `system-info.txt`-t generál. Csatolja, amikor az azonnali osztályozással kapcsolatos problémákat jelent be. - -</details> - -<details> -<summary><b>🏗️ 11. "Az átjáró telepítése és karbantartása összetett"</b></summary> - -Az AI-proxy telepítése, konfigurálása és karbantartása különböző környezetekben (helyi, VPS, Docker, felhő) munkaigényes. Az olyan problémák, mint a keménykódolt elérési utak, a `EACCES` a könyvtárakon, a portütközések és a többplatformos buildek súrlódást okoznak. - -**Hogyan oldja meg az OmniRoute:** - -- **npm globális telepítés** — `npm install -g omniroute && omniroute` — kész -- **Docker Multi-Platform** – AMD64 + ARM64 natív (Apple Silicon, AWS Graviton, Raspberry Pi) -- **Docker Compose Profiles** — `base` (nincs CLI-eszközök) és `cli` (Claude Code-al, Codex-szel, OpenClaw-val) -- **Electron Desktop App** – Natív alkalmazás Windows/macOS/Linux rendszerhez rendszertálcával, automatikus indítással, offline móddal -- **Split-Port Mode** – API és irányítópult külön portokon haladó forgatókönyvekhez (fordított proxy, konténerhálózat) -- **Cloud Sync** – Szinkronizálás konfigurálása az eszközök között a Cloudflare Workers segítségével -- **DB biztonsági mentések** — Az összes beállítás automatikus biztonsági mentése, visszaállítása, exportálása és importálása - -</details> - -<details> -<summary><b>🌍 12. "A felület csak angol nyelvű, és a csapatom nem beszél angolul"</b></summary> - -A nem angol nyelvű országokban, különösen Latin-Amerikában, Ázsiában és Európában működő csapatok csak angol nyelvű felületekkel küszködnek. A nyelvi akadályok csökkentik az átvételt és növelik a konfigurációs hibákat. - -**Hogyan oldja meg az OmniRoute:** - -- **I18n irányítópult – 30 nyelv** – Mind az 500+ billentyű lefordítva, beleértve arab, bolgár, dán, német, spanyol, finn, francia, héber, hindi, magyar, indonéz, olasz, japán, koreai, maláj, holland, norvég, lengyel, portugál (PT/BR), román, thai, orosz, szlovák, svéd, filippínó, angol, thai, orosz, kínai, filippínó -- **RTL támogatás** – Jobbról balra haladó arab és héber nyelv támogatása -- **Többnyelvű README-k** — 30 teljes dokumentáció fordítás -- **Nyelvválasztó** — Globe ikon a fejlécben a valós idejű váltáshoz - -</details> - -<details> -<summary><b>🔄 13. "Többre van szükségem, mint csevegésre – beágyazásra, képekre, hangra van szükségem"</b></summary> - -Az AI nem csak a csevegés befejezése. A fejlesztőknek képeket kell generálniuk, hangot kell átírniuk, beágyazást kell létrehozniuk a RAG számára, át kell sorolniuk a dokumentumokat, és moderálniuk kell a tartalmat. Minden API más végponttal és formátummal rendelkezik. - -**Hogyan oldja meg az OmniRoute:** - -- **Beágyazások** — `/v1/embeddings` 6 szolgáltatóval és 9+ modellel -- **Képgenerálás** — `/v1/images/generations` 10 szolgáltatóval és 20+ modellel (OpenAI, xAI, Together, Fireworks, Nebius, Hyperbolic, NanoBanana, Antigravity, SD WebUI, ComfyUI) -- **Text-to-Video** — `/v1/videos/generations` — ComfyUI (AnimateDiff, SVD) és SD WebUI -- **Text-to-Music** — `/v1/music/generations` — ComfyUI (Stable Audio Open, MusicGen) -- **Audio átírás** - `/v1/audio/transcriptions` - Whisper + Nvidia NIM, HuggingFace, Qwen3 -- **Szövegfelolvasó** — `/v1/audio/speech` — ElevenLabs, Nvidia NIM, HuggingFace, Coqui, Tortoise, Qwen3, **Inworld**, **Cartesia**, **PlayHT**, + meglévő szolgáltatók -- **Moderálás** - `/v1/moderations` - Tartalombiztonsági ellenőrzések -- **Újrarangsorolás** - `/v1/rerank` - Dokumentumreleváns átsorolás -- **Responses API** - Teljes `/v1/responses` támogatás a Codex számára - -</details> - -<details> -<summary><b>🧪 14. "Nincs módom tesztelni és összehasonlítani a modellek minőségét"</b></summary> - -A fejlesztők szeretnék tudni, hogy melyik modell a legjobb az ő használati esetükben – kód, fordítás, érvelés –, de a manuális összehasonlítás lassú. Nem léteznek integrált eval eszközök. - -**Hogyan oldja meg az OmniRoute:** - -- **LLM-értékelések** — Arany készlet tesztelése 10 előre betöltött esettel, beleértve az üdvözlést, a matematikát, a földrajzot, a kódgenerálást, a JSON-megfelelőséget, a fordítást, a leértékelést, a biztonsági megtagadást -- **4 egyezési stratégia** — `exact`, `contains`, `regex`, `custom` (JS függvény) -- **Translator Playground Test Bench** - Kötegelt tesztelés több bemenettel és várható kimenettel, szolgáltatók közötti összehasonlítás -- **Csevegés tesztelő** - Teljes körút vizuális válaszmegjelenítéssel -- **Élő monitor** – Valós idejű adatfolyam a proxyn keresztül folyó összes kérésről - -</details> - -<details> -<summary><b>📈 15. "A teljesítmény elvesztése nélkül kell méreteznem"</b></summary> - -A kérelmek mennyiségének növekedésével ugyanazok a kérdések a gyorsítótárazás nélkül duplikált költségeket generálnak. Idempotencia nélkül a duplikált hulladékfeldolgozási kérelmek. A szolgáltatónkénti díjkorlátokat be kell tartani. - -**Hogyan oldja meg az OmniRoute:** - -- **Szemantikus gyorsítótár** – A kétszintű gyorsítótár (aláírás + szemantikai) csökkenti a költségeket és a késleltetést -- **Idempotency kérése** – 5 másodperces deduplikációs ablak azonos kérések esetén -- **Drátakorlát észlelése** – Szolgáltatónkénti RPM, minimális rés és maximális egyidejű követés -- **Szerkeszthető sebességkorlátok** - Konfigurálható alapértékek a Beállítások → Kitartással ellenálló képesség menüpontban -- **API Key Validation Cache** – 3-szintű gyorsítótár az éles teljesítményhez -- **Egészségügyi irányítópult telemetriával** — p50/p95/p99 késleltetés, gyorsítótár statisztika, üzemidő - -</details> - -<details> -<summary><b>🤖 16. "Globálisan szeretném irányítani a modell viselkedését"</b></summary> - -Azok a fejlesztők, akik minden választ egy adott nyelven, egy adott hangnemben szeretnének, vagy korlátozni szeretnék az érvelési tokeneket. Ennek konfigurálása minden eszközben/kérelemben nem praktikus. - -**Hogyan oldja meg az OmniRoute:** - -- **Rendszerprompt Injection** — Globális prompt minden kérelemre vonatkozik -- **A költségkeret átgondolásának ellenőrzése** – Indoklási token-kiosztás ellenőrzése kérésenként (áthaladó, automatikus, egyéni, adaptív) -- **6 Útválasztási stratégia** – Globális stratégiák, amelyek meghatározzák a kérések elosztását -- **Wildcard Router** - `provider/*` minták dinamikusan továbbítanak bármely szolgáltatóhoz -- **Kombinációs engedélyezés/letiltás váltás** - A kombók váltása közvetlenül az irányítópultról -- **Provider Toggle** — Egy szolgáltató összes kapcsolatának engedélyezése/letiltása egyetlen kattintással -- **Letiltott szolgáltatók** - Adott szolgáltatók kizárása a `/v1/models` listáról - -</details> - -<details> -<summary><b>🧰 17. "MCP-eszközökre van szükségem, mint első osztályú termékképességekre"</b></summary> - -Sok mesterséges intelligencia-átjáró csak rejtett megvalósítási részletként teszi közzé az MCP-t. A csapatoknak látható, kezelhető műveleti rétegre van szükségük. - -**Hogyan oldja meg az OmniRoute:** - -- Az MCP megjelenik az irányítópult navigációs és végponti protokoll lapján -- Dedikált MCP-kezelési oldal folyamatokkal, eszközökkel, hatókörökkel és audittal -- Beépített gyorsindítás a `omniroute --mcp` és a kliens bevezetéséhez - -</details> - -<details> -<summary><b>🧠 18. "A2A hangszerelésre van szükségem szinkronizálással + adatfolyam feladatútvonalak"</b></summary> - -Az ügynöki munkafolyamatokhoz közvetlen válaszokra és hosszú távú, streamelt végrehajtásra van szükség életciklus-vezérléssel. - -**Hogyan oldja meg az OmniRoute:** - -- A2A JSON-RPC végpont (`POST /a2a`) `message/send` és `message/stream` -- SSE streaming terminál állapot terjesztéssel -- Feladat életciklus API-k a `tasks/get` és `tasks/cancel` számára - -</details> - -<details> -<summary><b>🛰️ 19. "Valódi MCP folyamatállapotra van szükségem, nem kitalált állapotra"</b></summary> - -Az operatív csapatoknak tudniuk kell, hogy az MCP valóban életben van-e, nem csak azt, hogy egy API elérhető-e. - -**Hogyan oldja meg az OmniRoute:** - -- Futásidejű szívverés fájl PID-vel, időbélyegekkel, szállítással, szerszámszámmal és hatókör móddal -- MCP állapot API, amely kombinálja a szívverést + a legutóbbi tevékenységet -- UI állapotkártyák a folyamat/üzemidő/szívverés frissességéhez - -</details> - -<details> -<summary><b>📋 20. "Kivizsgálható MCP-eszköz-végrehajtásra van szükségem"</b></summary> - -Amikor az eszközök módosítják a konfigurációt vagy működési műveleteket indítanak el, a csapatoknak kriminalisztikai nyomon követhetőségre van szükségük. - -**Hogyan oldja meg az OmniRoute:** - -- SQLite-alapú auditnaplózás MCP-eszközhívásokhoz -- Szűrések eszköz, siker/kudarc, API-kulcs és oldalszámozás szerint -- Irányítópult audit táblázat + statisztikai végpontok az automatizáláshoz - -</details> - -<details> -<summary><b>🔐 21. "Hatókörű MCP-engedélyekre van szükségem integrációnként"</b></summary> - -A különböző ügyfeleknek a legkevesebb jogosultsággal kell rendelkezniük az eszközkategóriákhoz. - -**Hogyan oldja meg az OmniRoute:** - -- 9 szemcsés MCP hatókör az ellenőrzött szerszámhozzáféréshez -- Hatályérvényesítés és láthatóság az MCP-kezelő felületen -- Biztonságos alaphelyzet az üzemi szerszámokhoz - -</details> - -<details> -<summary><b>⚙️ 22. "Üzemeltetési vezérlőkre van szükségem újratelepítés nélkül"</b></summary> - -A csapatoknak gyors futásidejű változtatásokra van szükségük incidensek vagy költségesemények során. - -**Hogyan oldja meg az OmniRoute:** - -- A kombinált aktiválás váltása közvetlenül az MCP műszerfaláról -- Rugalmassági profilok alkalmazása előre meghatározott házirend-csomagokból -- Állítsa vissza a megszakító állapotát ugyanarról a kezelőpanelről - -</details> - -<details> -<summary><b>🔄 23. "Szükségem van élő A2A-feladatok életciklusának láthatóságára és törlésére"</b></summary> - -Az életciklus láthatósága nélkül a feladat-incidensek nehezen osztályozhatók. - -**Hogyan oldja meg az OmniRoute:** - -- Feladatok listázása/szűrés állapot/készség szerint oldalszámozással -- A feladatok metaadatainak, eseményeinek és műtermékeinek részletezése -- Feladat törlési végpont és felhasználói felület művelet megerősítéssel - -</details> - -<details> -<summary><b>🌊 24. "Aktív adatfolyam-metrikákra van szükségem A2A terheléshez"</b></summary> - -A streamelési munkafolyamatok működési betekintést igényelnek a párhuzamosság és az élő kapcsolatok terén. - -**Hogyan oldja meg az OmniRoute:** - -- Az A2A állapotba integrált aktív folyamszámlálók -- Utolsó feladat időbélyegzője és állapotonkénti száma -- A2A műszerfalkártyák a valós idejű műveletek figyeléséhez - -</details> - -<details> -<summary><b>🪪 25. "Szabványos ügynökfelderítésre van szükségem az ügyfelek számára"</b></summary> - -A külső klienseknek és hangszerelőknek géppel olvasható metaadatokra van szükségük a bevezetéshez. - -**Hogyan oldja meg az OmniRoute:** - -- Ügynökkártya közzétéve: `/.well-known/agent.json` -- A menedzsment felületen látható képességek és készségek -- Az A2A állapot API felfedezési metaadatokat tartalmaz az automatizáláshoz - -</details> - -<details> -<summary><b>🧭 26. "Protokoll felfedezhetőségre van szükségem az UX termékben"</b></summary> - -Ha a felhasználók nem fedezik fel a protokollfelületeket, az elfogadás és a támogatás minősége csökken. - -**Hogyan oldja meg az OmniRoute:** - -- Összevont **Végpontok** oldal a proxy, MCP, A2A és API végpontok lapjaival -- Inline szolgáltatás állapotát váltja (Online/Offline) MCP és A2A esetén -- Hivatkozások az áttekintésből a dedikált kezelőlapokhoz - -</details> - -<details> -<summary><b>🧪 27. "Végponttól végpontig terjedő protokoll-érvényesítésre van szükségem valódi kliensekkel"</b></summary> - -A próbatesztek nem elegendőek a protokoll-kompatibilitás ellenőrzéséhez a kiadás előtt. - -**Hogyan oldja meg az OmniRoute:** - -- E2E csomag, amely elindítja az alkalmazást, és valódi MCP SDK kliens szállítást használ -- Az A2A kliens teszteli az áramlások felfedezését, küldését, streamingjét, lekérését és megszakítását -- Az állítások keresztellenőrzése az MCP audit és az A2A feladatok API-jával szemben - -</details> - -<details> -<summary><b>📡 28. "Egységes megfigyelhetőségre van szükségem minden interfészen"</b></summary> - -A megfigyelhetőség protokoll szerinti felosztása vakfoltokat és hosszabb MTTR-t hoz létre. - -**Hogyan oldja meg az OmniRoute:** - -- Egységes irányítópultok/naplók/analytics egy termékben -- Egészség + audit + kérés telemetria OpenAI, MCP és A2A rétegeken keresztül -- Működési API-k az állapothoz és az automatizáláshoz - -</details> - -<details> -<summary><b>💼 29. "Egy futási környezetre van szükségem a proxyhoz + eszközökhöz + ügynök hangszereléshez"</b></summary> - -Számos külön szolgáltatás futtatása növeli a működési költségeket és a hibamódokat. - -**Hogyan oldja meg az OmniRoute:** - -- OpenAI-kompatibilis proxy, MCP szerver és A2A szerver egy veremben -- Megosztott hitelesítés, rugalmasság, adattárolás és megfigyelhetőség -- Konzisztens politikai modell az összes interakciós felületen - -</details> - -<details> -<summary><b>🚀 30. "Az ügynöki munkafolyamatokat ragasztókód szétszóródása nélkül kell szállítanom"</b></summary> - -A csapatok veszítenek sebességükből, amikor több ad-hoc szolgáltatást és szkriptet illesztenek össze. - -**Hogyan oldja meg az OmniRoute:** - -- Egységes végpont stratégia az ügyfelek és ügynökök számára -- Beépített protokollkezelő felhasználói felületek és füstellenőrzési útvonalak -- Gyártásra kész alapok (biztonság, naplózás, rugalmasság, biztonsági mentés) - -</details> - -### Példa forgatókönyvekre (integrált használati esetek) - -**A játékkönyv: Maximalizálja a fizetett előfizetést + olcsó biztonsági mentés** - -```txt -Combo: "maximize-claude" - 1. cc/claude-opus-4-6 - 2. glm/glm-4.7 - 3. if/kimi-k2-thinking - -Monthly cost: $20 + small backup spend -Outcome: higher quality, near-zero interruption -``` - -**Playbook B: Zéró költségű kódolási verem** - -```txt -Combo: "free-forever" - 1. gc/gemini-3-flash - 2. if/kimi-k2-thinking - 3. qw/qwen3-coder-plus - -Monthly cost: $0 -Outcome: stable free coding workflow -``` - -**Playbook C: 24/7 mindig bekapcsolt tartalék lánc** - -```txt -Combo: "always-on" - 1. cc/claude-opus-4-6 - 2. cx/gpt-5.2-codex - 3. glm/glm-4.7 - 4. minimax/MiniMax-M2.1 - 5. if/kimi-k2-thinking - -Outcome: deep fallback depth for deadline-critical workloads -``` - -**D játékkönyv: Az ügynök MCP + A2A-val működik** - -```txt -1) Start MCP transport (`omniroute --mcp`) for tool-driven operations -2) Run A2A tasks via `message/send` and `message/stream` -3) Observe via /dashboard/endpoint (MCP and A2A tabs) -4) Toggle services via inline status controls -``` - ---- - -## 🆓 Indítás ingyenes – nulla konfigurációs költség - -> Állítsa be az AI-kódolást percek alatt **0 USD/hó** áron. Connect these free accounts and use the built-in **Free Stack** combo. - -| lépés | Akció | Szolgáltatók feloldva | -| ----- | ---------------------------------------------------- | --------------------------------------------------------------------- | -| 1 | Csatlakozás **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — **korlátlan** | -| 2 | Csatlakoztassa az **Qoder-t** (Google OAuth) | kimi-k2-gondolkodás, qwen3-coder-plus, deepseek-r1... — **korlátlan** | -| 3 | Csatlakoztassa a **Qwen** (eszközkód) | qwen3-coder-plus, qwen3-coder-flash... — **korlátlan** | -| 4 | Csatlakozás **Gemini CLI** (Google OAuth) | gemini-3-flash, gemini-2.5-pro – **180K/hó ingyenes** | -| 5 | `/dashboard/combos` → **Ingyenes köteg ($0)** sablon | Körbe-körbe minden ingyenes szolgáltató automatikusan | - -**Mutasson bármely IDE/CLI-t a következőre:** `http://localhost:20128/v1` · API-kulcs: `any-string` · Kész. - -> **Opcionális extra lefedettség (szintén ingyenes):** Groq API kulcs (30 RPM ingyenes), NVIDIA NIM (40 RPM ingyenes, 70+ modell), Cerebras (1 millió tok/nap), LongCat API kulcs (50 millió token/nap!), Cloudflare Workers AI (10 000 neuron/nap, 50+ modell). - -## ⚡ Gyors kezdés - -### 1) Telepítse és futtassa - -```bash -npm install -g omniroute -omniroute -``` - -> **pnpm felhasználók:** Futtassa a `pnpm approve-builds -g` programot a telepítés után, hogy engedélyezze az `better-sqlite3` és `@swc/core` által megkövetelt natív build szkripteket: -> -> ```bash -> pnpm install -g omniroute -> pnpm approve-builds -g # Select all packages → approve -> omniroute -> ``` - -Az irányítópult a `http://localhost:20128` címen nyílik meg, az API alap URL-je pedig `http://localhost:20128/v1`. - -| Parancs | Leírás | -| ----------------------- | ----------------------------------------------------------------------- | -| `omniroute` | Szerver indítása (`PORT=20128`, API és irányítópult ugyanazon a porton) | -| `omniroute --port 3000` | A kanonikus/API port beállítása 3000 | -| `omniroute --mcp` | MCP-kiszolgáló indítása (stdio szállítás) | -| `omniroute --no-open` | Ne nyissa meg automatikusan a böngészőt | -| `omniroute --help` | Segítség megjelenítése | - -Opcionális osztott portos mód: - -```bash -PORT=20128 DASHBOARD_PORT=20129 omniroute -# API: http://localhost:20128/v1 -# Dashboard: http://localhost:20129 -``` - -### 2) Csatlakoztassa a szolgáltatókat, és hozza létre az API-kulcsot - -1. Nyissa meg az Irányítópult → `Providers` menüpontot, és csatlakoztasson legalább egy szolgáltatót (OAuth- vagy API-kulcs). -2. Nyissa meg a Dashboard → `Endpoints` menüpontot, és hozzon létre egy API-kulcsot. -3. (Opcionális) Nyissa meg az Irányítópult → `Combos` menüpontot, és állítsa be a tartalék láncot. - -### 3) Irányítsa kódoló eszközét az OmniRoute-ra - -```txt -Base URL: http://localhost:20128/v1 -API Key: [copy from Endpoint page] -Model: if/kimi-k2-thinking (or any provider/model prefix) -``` - -Claude Code, Codex CLI, Gemini CLI, Cursor, Cline, OpenClaw, OpenCode és OpenAI-kompatibilis SDK-kkal működik. - -### 4) Protokollok engedélyezése és ellenőrzése (v2.0) - -**MCP (szerszámvezérelt műveletekhez):** - -```bash -omniroute --mcp -``` - -Ezután csatlakoztassa MCP-kliensét `stdio`-on keresztül, és tesztelje az olyan eszközöket, mint: - -- `omniroute_get_health` -- `omniroute_list_combos` - -**A2A (ügynök-ügynök munkafolyamatokhoz):** - -```bash -curl http://localhost:20128/.well-known/agent.json -``` - -```bash -curl -X POST http://localhost:20128/a2a \ - -H 'content-type: application/json' \ - -d '{"jsonrpc":"2.0","id":"quickstart","method":"message/send","params":{"skill":"quota-management","messages":[{"role":"user","content":"Give me a short quota summary."}]}}' -``` - -### 5) Érvényesítsen mindent a végétől a végéig (ajánlott) - -```bash -npm run test:protocols:e2e -``` - -Ez a csomag érvényesíti a valódi MCP- és A2A-kliensfolyamokat egy futó alkalmazással szemben. - -### Alternatív megoldás: futtassa a forrásból - -```bash -cp .env.example .env -npm install -PORT=20128 DASHBOARD_PORT=20129 NEXT_PUBLIC_BASE_URL=http://localhost:20129 npm run dev -``` - ---- - -## 🐳 Docker - -Az OmniRoute nyilvános Docker-képként érhető el a [Docker Hub](https://hub.docker.com/r/diegosouzapw/omniroute) webhelyen. - -**Gyors futás:** - -```bash -docker run -d \ - --name omniroute \ - --restart unless-stopped \ - -p 20128:20128 \ - -v omniroute-data:/app/data \ - diegosouzapw/omniroute:latest -``` - -**Környezetfájllal:** - -```bash -# Copy and edit .env first -cp .env.example .env - -docker run -d \ - --name omniroute \ - --restart unless-stopped \ - --env-file .env \ - -p 20128:20128 \ - -v omniroute-data:/app/data \ - diegosouzapw/omniroute:latest -``` - -**A Docker Compose használata:** - -```bash -# Base profile (no CLI tools) -docker compose --profile base up -d - -# CLI profile (Claude Code, Codex, OpenClaw built-in) -docker compose --profile cli up -d -``` - -| Kép | Címke | Méret | Leírás | -| ------------------------ | -------- | ------- | ---------------------- | -| `diegosouzapw/omniroute` | `latest` | ~250 MB | Legújabb stabil kiadás | -| `diegosouzapw/omniroute` | `1.0.3` | ~250 MB | Jelenlegi verzió | - ---- - -## 🖥️ Asztali alkalmazás – offline és mindig bekapcsolt állapotban - -> 🆕 **ÚJ!** Az OmniRoute már elérhető **natív asztali alkalmazásként** Windows, macOS és Linux rendszeren. - -Futtassa az OmniRoute-ot önálló asztali alkalmazásként – nincs terminál, nincs böngésző, nincs szükség internetre a helyi modellekhez. Az elektron alapú alkalmazás a következőket tartalmazza: - -- 🖥️ **Natív ablak** - Dedikált alkalmazásablak rendszertálca-integrációval -- 🔄 **Automatikus indítás** - Indítsa el az OmniRoute alkalmazást a rendszerbe való bejelentkezéskor -- 🔔 **Natív értesítések** - Értesítést kaphat a kvóta kimerüléséről vagy a szolgáltatói problémákról -- ⚡ **Egykattintásos telepítés** - NSIS (Windows), DMG (macOS), AppImage (Linux) -- 🌐 **Offline mód** - Teljesen offline módban működik a mellékelt szerverrel - -### Gyors kezdés - -```bash -# Development mode -npm run electron:dev - -# Build for your platform -npm run electron:build # Current platform -npm run electron:build:win # Windows (.exe) -npm run electron:build:mac # macOS (.dmg) — x64 & arm64 -npm run electron:build:linux # Linux (.AppImage) -``` - -### Rendszertálca - -Ha minimalizálja, az OmniRoute a tálcán él, gyors műveletekkel: - -- Nyissa meg a műszerfalat -- Szerver port módosítása -- Lépjen ki az alkalmazásból - -📖 Teljes dokumentáció: [**OMNI_TOKEN_153**](electron/README.md) - ---- - -## 💰 Árazás egy pillantásra - -| Tier | Szolgáltató | Költség | Kvóta visszaállítása | Legjobb a | -| ----------------- | ----------------------------- | ----------------------------------- | ---------------------- | --------------------------------------- | -| **💳 ELŐFIZETÉS** | Claude Code (Pro) | 20 USD/hó | 5 óra + heti | Már előfizetett | -| | Codex (Plus/Pro) | 20-200 USD/hó | 5 óra + heti | OpenAI felhasználók | -| | Gemini CLI | **INGYENES** | 180 000/hó + 1 000/nap | Mindenki! | -| | GitHub másodpilóta | 10-19 USD/hó | Havi | GitHub felhasználók | -| **🔑 API KEY** | NVIDIA NIM | **INGYENES** (végre fejlesztő) | ~40 RPM | 70+ nyitott modell | -| | Cerebrák | **INGYENES** (1 millió tok/nap) | 60K TPM / 30 RPM | A világ leggyorsabb | -| | Groq | **INGYENES** (30 RPM) | 14,4K RPD | Ultragyors Llama/Gemma | -| | DeepSeek V3.2 | 0,27 USD/1,10 USD/1 millió | Nincs | Legjobb ár/minőség érvelés | -| | xAI Grok-4 Fast | **0,20 USD/0,50 USD/1 millió** 🆕 | Nincs | Leggyorsabb + szerszámhívás, ultralow | -| | xAI Grok-4 (standard) | 0,20 USD/1,50 USD/1M 🆕 | Nincs | Oktatás zászlóshajója az xAI-tól | -| | Mistral | Ingyenes próbaverzió + fizetett | Ár korlátozott | Európai AI | -| | OpenRouter | Felhasználásonkénti fizetés | Nincs | 100+ modell aggr. | -| **💰 OLCSÓ** | GLM-5 (a Z.AI-n keresztül) 🆕 | 0,5 USD/1M | Naponta 10:00 | 128K teljesítmény, legújabb zászlóshajó | -| | GLM-4.7 | 0,6 USD/1M | Naponta 10:00 | Költségvetési biztonsági mentés | -| | MiniMax M2.5 🆕 | 0,3 USD/1 millió bemenet | 5 órás gurulás | Érvelés + ügynöki feladatok | -| | MiniMax M2.1 | 0,2 USD/1M | 5 órás gurulás | Legolcsóbb lehetőség | -| | Kimi K2.5 (Moonshot API) 🆕 | Felhasználásonkénti fizetés | Nincs | Közvetlen Moonshot API hozzáférés | -| | Kimi K2 | 9 USD/hó lakás | 10 millió token/hó | Előrelátható költség | -| **🆓 INGYENES** | Qoder | **0 USD** | Korlátlan | 5 modell korlátlan | -| | Qwen | **0 USD** | Korlátlan | 4 modell korlátlan | -| | Kiro | **0 USD** | Korlátlan | Claude Sonnet/Haiku (AWS Builder) | -| | LongCat Flash-Lite 🆕 | **0 USD** (50 millió tok/nap 🔥) | 1 RPS | A legnagyobb ingyenes kvóta a Földön | -| | Beporzások AI 🆕 | **0 USD** (nincs szükség kulcsra) | 1 rekv/15mp | GPT-5, Claude, DeepSeek, Llama 4 | -| | Cloudflare Workers AI 🆕 | **0 USD** (10 000 neuron/nap) | ~150 ill./nap | 50+ modell, globális élvonal | -| | Scaleway AI 🆕 | **0 USD** (összesen 1 millió token) | Ár korlátozott | EU/GDPR, Qwen3 235B, Llama 70B | - -> 🆕 **Új modellek hozzáadva (2026. március):** Grok-4 Fast család 0,20 USD/0,50 USD/M áron (1143 ms-os referenciaérték – 30%-kal gyorsabb, mint a Gemini 2.5 Flash), GLM-5 Z.AI-n keresztül 128K kimenettel, MiniMax M2.5 Vc3-on keresztül, K.2.5-ös okfejtéssel, KiepSeed2-vel. Moonshot közvetlen API. - -**💡 0 dolláros kombinált halom – a teljes ingyenes beállítás:** - -``` -# 🆓 Ultimate Free Stack 2026 — 11 Providers, $0 Forever -Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED -LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 -Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed -Qwen (qw/) → qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next UNLIMITED -Gemini (gemini/) → Gemini 2.5 Flash — 1,500 req/day free API key -Cloudflare AI (cf/) → Llama 70B, Gemma 3, Mistral — 10K Neurons/day -Scaleway (scw/) → Qwen3 235B, Llama 70B — 1M free tokens (EU) -Groq (groq/) → Llama/Gemma ultra-fast — 14.4K req/day -NVIDIA NIM (nvidia/) → 70+ open models — 40 RPM forever -Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day -``` - -**Zéró költség. Soha nem hagyja abba a kódolást.** Konfigurálja ezt egyetlen OmniRoute-kombóként, és minden visszaesés automatikusan megtörténik – soha nincs kézi váltás. - ---- - ---- - -## 🆓 Ingyenes modellek – Amit valójában kapsz - -> Minden alábbi modell **100%-ban ingyenes, hitelkártya nélkül**. Az OmniRoute automatikus útvonalakat indít közöttük, ha egy kvóta kifogy – kombinálja őket egy feltörhetetlen 0 dolláros kombinációért. - -### 🔵 CLAUDE MODELLEK (Kiron keresztül – AWS Builder ID) - -| Modell | Előtag | Limit | Rate Limit | -| ------------------- | ------ | ------------- | ---------------------------------- | -| `claude-sonnet-4.5` | `kr/` | **Korlátlan** | Nincs bejelentett napi felső határ | -| `claude-haiku-4.5` | `kr/` | **Korlátlan** | Nincs bejelentett napi felső határ | -| `claude-opus-4.6` | `kr/` | **Korlátlan** | Legújabb Opus via Kiro | - -### QODER MODELLEK (ingyenes OAuth – hitelkártya nélkül) - -| Modell | Előtag | Limit | Rate Limit | -| ------------------ | ------ | ------------- | ----------------------------- | -| `kimi-k2-thinking` | `if/` | **Korlátlan** | Nincs bejelentett felső határ | -| `qwen3-coder-plus` | `if/` | **Korlátlan** | Nincs bejelentett felső határ | -| `deepseek-r1` | `if/` | **Korlátlan** | Nincs bejelentett felső határ | -| `minimax-m2.1` | `if/` | **Korlátlan** | Nincs bejelentett felső határ | -| `kimi-k2` | `if/` | **Korlátlan** | Nincs bejelentett felső határ | - -### 🟡 QWEN MODELLEK (Eszközkód hitelesítés) - -| Modell | Előtag | Limit | Rate Limit | -| ------------------- | ------ | ------------- | ----------------------------- | -| `qwen3-coder-plus` | `qw/` | **Korlátlan** | Nincs bejelentett felső határ | -| `qwen3-coder-flash` | `qw/` | **Korlátlan** | Nincs bejelentett felső határ | -| `qwen3-coder-next` | `qw/` | **Korlátlan** | Nincs bejelentett felső határ | -| `vision-model` | `qw/` | **Korlátlan** | Multimodális (képek) | - -### 🟣 GEMINI CLI (Google OAuth) - -| Modell | Előtag | Limit | Rate Limit | -| ------------------------ | ------ | ------------------------------- | ------------------ | -| `gemini-3-flash-preview` | `gc/` | **180 000 tok/hó** + 1 000/nap | Havi visszaállítás | -| `gemini-2.5-pro` | `gc/` | 180 000/hó (megosztott medence) | Kiváló minőségű | - -### ⚫ NVIDIA NIM (ingyenes API-kulcs – build.nvidia.com) - -| Tier | Napi limit | Rate Limit | Megjegyzések | -| -------------------- | --------------- | ----------- | ------------------------------------------------------ | -| Ingyenes (fejlesztő) | Nincs token cap | **~40 RPM** | 70+ modell; átállás a tiszta díjhatárokra 2025 közepén | - -Népszerű ingyenes modellek: `moonshotai/kimi-k2.5` (Kimi K2.5), `z-ai/glm4.7` (GLM 4.7), `deepseek-ai/deepseek-v3.2` (DeepSeek V3.2), `nvidia/llama-3.3-70b-instruct`\_, \_\_EN_18 - -### ⚪ CEREBRAS (ingyenes API-kulcs – inference.cerebras.ai) - -| Tier | Napi limit | Rate Limit | Megjegyzések | -| -------- | ---------------------- | ---------------- | ------------------------------------------------------------- | -| Ingyenes | **1 millió token/nap** | 60K TPM / 30 RPM | A világ leggyorsabb LLM-következtetése; naponta visszaállítja | - -Ingyenesen elérhető: `llama-3.3-70b`, `llama-3.1-8b`, `deepseek-r1-distill-llama-70b` - -### 🔴 GROQ (ingyenes API-kulcs – console.groq.com) - -| Tier | Napi limit | Rate Limit | Megjegyzések | -| -------- | ------------- | -------------------------- | -------------------------------------------- | -| Ingyenes | **14,4K RPD** | 30 ford./perc modellenként | Nincs hitelkártya; 429 limiten, nem terhelik | - -Ingyenesen elérhető: `llama-3.3-70b-versatile`, `gemma2-9b-it`, `mixtral-8x7b`, `whisper-large-v3` - -### 🔴 LONGCAT AI (ingyenes API kulcs – longcat.chat) 🆕 - -| Modell | Előtag | Napi ingyenes kvóta | Megjegyzések | -| ----------------------------- | ------ | ---------------------- | --------------------------------------- | -| `LongCat-Flash-Lite` | `lc/` | **50 millió token** 💥 | A valaha volt legnagyobb ingyenes kvóta | -| `LongCat-Flash-Chat` | `lc/` | 500 000 token | Többfordulós csevegés | -| `LongCat-Flash-Thinking` | `lc/` | 500 000 token | Érvelés / CoT | -| `LongCat-Flash-Thinking-2601` | `lc/` | 500 000 token | 2026. januári verzió | -| `LongCat-Flash-Omni-2603` | `lc/` | 500 000 token | Multimodális | - -> 100%-ban ingyenes nyilvános bétaverzióban. Regisztráljon a [longcat.chat](https://longcat.chat) címen e-mailben vagy telefonon. Napi alaphelyzetbe állítás 00:00 UTC. - -### 🟢 POLLINATIONS AI (nincs szükség API-kulcsra) 🆕 - -| Modell | Előtag | Rate Limit | Szolgáltató mögött | -| ---------- | ------ | ----------- | ------------------ | -| `openai` | `pol/` | 1 rekv/15mp | GPT-5 | -| `claude` | `pol/` | 1 rekv/15mp | Antropikus Claude | -| `gemini` | `pol/` | 1 rekv/15mp | Google Gemini | -| `deepseek` | `pol/` | 1 rekv/15mp | DeepSeek V3 | -| `llama` | `pol/` | 1 rekv/15mp | Meta Llama 4 Scout | -| `mistral` | `pol/` | 1 rekv/15mp | Mistral AI | - -> ✨ **Zéró súrlódás:** Nincs regisztráció, nincs API-kulcs. Adja hozzá a Pollinations szolgáltatót egy üres kulcsmezővel, és azonnal működik. - -### 🟠 CLOUDFLARE WORKERS AI (ingyenes API-kulcs – cloudflare.com) 🆕 - -| Tier | Napi neuronok | Egyenértékű használat | Megjegyzések | -| -------- | ------------- | ---------------------------------------- | ---------------------------- | -| Ingyenes | **10 000** | ~150 LLM ill / 500s hang / 15K beágyazás | Globális élvonal, 50+ modell | - -Népszerű ingyenes modellek: `@cf/meta/llama-3.3-70b-instruct`, `@cf/google/gemma-3-12b-it`, `@cf/openai/whisper-large-v3-turbo` (ingyenes hang!), `@cf/qwen/qwen2.5-coder-15b-instruct` - -> API-token + fiókazonosító szükséges a következőtől: [dash.cloudflare.com](https://dash.cloudflare.com). Tárolja fiókazonosítóját a szolgáltató beállításaiban. - -### 🟣 SCALEWAY AI (1 millió ingyenes token – scaleway.com) 🆕 - -| Tier | Ingyenes kvóta | Helyszín | Megjegyzések | -| -------- | -------------- | ------------- | ---------------------------------------------- | -| Ingyenes | **1M token** | 🇫🇷 Párizs, EU | Nincs szükség hitelkártyára a korlátokon belül | - -Ingyenesen elérhető: `qwen3-235b-a22b-instruct-2507` (Qwen3 235B!), `llama-3.1-70b-instruct`, `mistral-small-3.2-24b-instruct-2506`, `deepseek-v3-0324` - -> EU/GDPR kompatibilis. Szerezze be az API-kulcsot a [console.scaleway.com](https://console.scaleway.com) címen. - -> **💡 The Ultimate Free Stack (11 szolgáltató, 0 USD örökké):** -> -> ``` -> Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -> Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED -> LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 -> Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed -> Qwen (qw/) → qwen3-coder models UNLIMITED -> Gemini (gemini/) → Gemini 2.5 Flash — 1,500 req/day free -> Cloudflare AI (cf/) → 50+ models — 10K Neurons/day -> Scaleway (scw/) → Qwen3 235B, Llama 70B — 1M free tokens (EU) -> Groq (groq/) → Llama/Gemma — 14.4K req/day ultra-fast -> NVIDIA NIM (nvidia/) → 70+ open models — 40 RPM forever -> Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day -> ``` - -## 🎙️ Ingyenes átírási kombó - -> Bármilyen hang/videó átírása **0 USD-ért** – Deepgram vezet 200 USD ingyenes, AssemblyAI 50 USD tartalék, Groq Whisper korlátlan vészhelyzeti tartalékként. - -| Szolgáltató | Ingyenes kreditek | Legjobb modell | Rate Limit | -| ----------------- | ----------------------------------- | ----------------------------------------------------------------- | ---------------------------------------- | -| 🟢 **Deepgram** | **200 USD ingyenes** (regisztráció) | `nova-3` — a legjobb pontosság, több mint 30 nyelv | Nincs RPM-korlát az ingyenes krediteknél | -| 🔵 **AssemblyAI** | **50 USD ingyenes** (regisztráció) | `universal-3-pro` — fejezetek, hangulat, személyazonossági adatok | Nincs RPM-korlát az ingyenes krediteknél | -| 🔴 **Groq** | **Örökre ingyenes** | `whisper-large-v3` — OpenAI Whisper | 30 RPM (korlátozott sebesség) | - -**Javasolt kombináció itt: `/dashboard/combos`:** - -``` -Name: free-transcription -Strategy: Priority -Nodes: - [1] deepgram/nova-3 → uses $200 free first - [2] assemblyai/universal-3-pro → fallback when Deepgram credits run out - [3] groq/whisper-large-v3 → free forever, emergency fallback -``` - -Ezután a `/dashboard/media` → **Átírás** lapon: töltsön fel bármilyen hang- vagy videofájlt → válassza ki a kombinált végpontot → kérje le az átírást a támogatott formátumokban. - -## 💡 Főbb jellemzők - -Az OmniRoute v2.0 működési platformként készült, nem csak közvetítő proxyként. - -### 🆕 Új – ClawRouter által inspirált fejlesztések (2026. március) - -| Funkció | Mit csinál | -| ---------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | -| ⚡ **Grok-4 Fast Family** | xAI modellek 0,20 USD/0,50 USD/M áron – 1143 ms benchmark (30%-kal gyorsabb, mint a Gemini 2.5 Flash) | -| 🧠 **GLM-5 a Z.AI-n keresztül** | 128 000 kimeneti kontextus, 0,5 USD/1 millió – a GLM család legújabb zászlóshajója | -| 🔮 **MiniMax M2.5** | Érvelés + ügynöki feladatok 0,30 USD/1M áron – jelentős fejlesztés az M2.1-hez képest | -| 🎯 **ToolCalling Flag modellenként** | Modellenkénti `toolCalling: true/false` a rendszerleíró adatbázisban – Az AutoCombo kihagyja az eszközökkel nem rendelkező modelleket | -| 🌍 **Többnyelvű szándékfelismerés** | PT/ZH/ES/AR kulcsszavak az AutoCombo pontozásban – jobb modellválasztás nem angol nyelvű tartalomhoz | -| 📊 **Benchmark-vezérelt tartalékok** | Valódi p95 késés az élő kérések hírcsatornáiból, kombinált pontozásból – Az AutoCombo tanul a tényleges adatokból | -| 🔁 **Duplikáció visszavonásának kérése** | Tartalom-kivonat alapú dedup ablak – többügynök biztonságos, megakadályozza az ismétlődő terheléseket | -| 🔌 **Pluggable RouterStrategy** | Bővíthető `RouterStrategy` interfész – egyéni útválasztási logika hozzáadása bővítményekként | - -### 🚀 Előző v2.0.9+ – Játszótér, CLI ujjlenyomatok és ACP - -| Funkció | Mit csinál | -| -------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 🎮 **Játszótér modell** | Irányítópult oldal bármely modell közvetlen teszteléséhez – szolgáltató/modell/végpont választó, Monaco Editor, adatfolyam, megszakítás, időzítés | -| 🔏 **CLI ujjlenyomat-egyeztetés** | Szolgáltatónkénti fejléc/törzs rendezés a natív CLI-aláírásoknak megfelelően – váltson szolgáltatónként a Beállítások > Biztonság menüpontban. **A proxy IP-címe megmarad** | -| 🤝 **ACP-támogatás (Agent Client Protocol)** | CLI ügynök felderítés (Codex, Claude, Goose, Gemini CLI, OpenClaw + 9 további), folyamat spawner, `/api/acp/agents` végpont | -| 🤖 **ACP Agents Dashboard** | Hibakeresés › Ügynökök oldal – 14 ügynökből álló rács telepítési állapottal, verzióval, egyéni ügynök űrlappal bármely CLI-eszközhöz. Az **OpenCode** felhasználók egy „Opencode.json letöltése” gombot kapnak, amely automatikusan létrehoz egy használatra kész konfigurációt az összes elérhető modellhez. | -| 🔧 **Egyéni modell `apiFormat` Útválasztás** | Egyéni modellek `apiFormat: "responses"` most megfelelően irányítják a Responses API fordítóhoz | -| 🏢 ** Codex Workspace Isolation** | E-mailenként több Codex-munkaterület – az OAuth megfelelően választja el a kapcsolatokat a munkaterület-azonosító | -| 🔄 **Elektronikus automatikus frissítés** | Az asztali alkalmazás ellenőrzi a frissítéseket + automatikus telepítés újraindításkor | - -### 🤖 Ügynök- és protokollműveletek (v2.0) - -| Funkció | Mit csinál | -| ----------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | -| 🔧 **MCP szerver (16 eszköz)** | IDE/ügynök eszközök 3 átvitelen keresztül: stdio, SSE (`/api/mcp/sse`), streamelhető HTTP (`/api/mcp/stream`) | -| 🤝 **A2A szerver (JSON-RPC + SSE)** | Ügynök-ügynök feladatvégrehajtás szinkronizálási és adatfolyam-folyamokkal | -| 🧭 **Konszolidált végpontok oldal** | Lapos kezelőoldal Endpoint Proxy, MCP, A2A és API Endpoints lapokkal | -| 🎚️ **Szolgáltatás engedélyezése/letiltása kapcsolók** | BE/KI kapcsolók az MCP-hez és az A2A-hoz a beállítások fennmaradásával (alapértelmezett: KI) | -| 🛰️ **MCP Runtime Heartbeat** | Valós folyamatállapot (pid, üzemidő, szívverés kora, szállítás, hatókör mód) | -| 📋 **MCP Audit Trail** | Szűrhető auditnaplók sikerrel/sikertelenséggel és kulcshozzárendeléssel | -| 🔐 **MCP Scope Enforcement** | 9 részletes hatókörű engedély az ellenőrzött szerszám-hozzáféréshez | -| 📡 **A2A Task Lifecycle Management** | Feladatok listázása/szűrése, események/műtermékek ellenőrzése, futó feladatok megszakítása | -| 📋 **Agent Card Discovery** | `/.well-known/agent.json` az ügyfél automatikus felfedezéséhez | -| 🧪 **E2E protokoll tesztkábel** | Valódi MCP SDK + A2A kliens folyamatok `test:protocols:e2e` | -| ⚙️ **Működési vezérlők** | Váltókombó, rugalmassági profilok alkalmazása, megszakítók alaphelyzetbe állítása egyetlen vezérlőfelületről | - -### 🧠 Útválasztás és intelligencia - -| Funkció | Mit csinál | -| ---------------------------------------------- | --------------------------------------------------------------------------------------- | -| 🎯 **Intelligens 4-szintű tartalék** | Automatikus útvonal: Előfizetés → API-kulcs → Olcsó → Ingyenes | -| 📊 **Valós idejű kvótakövetés** | Élő tokenszám + visszaszámlálás visszaállítása szolgáltatónként | -| 🔄 **Formátum fordítás** | OpenAI ↔ Claude ↔ Gemini ↔ Válaszok sémabiztos konverziókkal | -| 👥 **Többfiókos támogatás** | Több fiók szolgáltatónként intelligens kiválasztással | -| 🔄 **Automatikus token frissítés** | Az OAuth-tokenek automatikusan frissülnek | -| 🎨 **Egyéni kombók** | 6 kiegyensúlyozási stratégia + tartalék láncvezérlés | -| 🌐 **Wildcard Router** | `provider/*` dinamikus útválasztás | -| 🧠 **A költségvetési szabályozás átgondolása** | Áthaladási, automatikus, egyéni és adaptív érvelési korlátok | -| 🔀 **Modell álnevek** | Beépített + egyedi modell alias és migrációs biztonság | -| ⚡ **Háttérromlás** | Alacsony prioritású háttérfeladatok irányítása olcsóbb modellek felé | -| 🧪 **Feladattudatos intelligens útválasztás** | Modell automatikus kiválasztása tartalomtípus szerint (kódolás/látás/elemzés/összegzés) | -| 💬 **Rendszer azonnali befecskendezés** | Következetesen alkalmazott globális viselkedésszabályozás | -| 📄 **Responses API-kompatibilitás** | Teljes `/v1/responses` támogatás a Codexhez és a speciális ügynöki munkafolyamatokhoz | - -### 🎵 Multimodális API-k - -| Funkció | Mit csinál | -| ---------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 🖼️ **Képgenerálás** | `/v1/images/generations` felhővel és helyi háttérrendszerekkel | -| 📐 **Beágyazás** | `/v1/embeddings` keresési és RAG-folyamatokhoz | -| 🎤 **Audio átírás** | `/v1/audio/transcriptions` — 7 szolgáltató (Deepgram Nova 3, AssemblyAI, Groq Whisper, HuggingFace, ElevenLabs, OpenAI, Azure), automatikus nyelvérzékelés, MP4/MP3/WAV támogatás | -| 🔊 **Szövegfelolvasó** | `/v1/audio/speech` — 10 szolgáltató (ElevenLabs, OpenAI, Deepgram, Cartesia, PlayHT, HuggingFace, Nvidia NIM, Inworld, Coqui, Tortoise) helyes hibaüzenetekkel | -| 🎬 **Videogeneráció** | `/v1/videos/generations` (ComfyUI + SD WebUI munkafolyamatok) | -| 🎵 **Zenegeneráció** | `/v1/music/generations` (ComfyUI munkafolyamatok) | -| 🛡️ **Moderálás** | `/v1/moderations` biztonsági ellenőrzések | -| 🔀 **Átsorolás** | `/v1/rerank` a relevancia pontozáshoz | -| 🔍 **Internetes keresés** 🆕 | `/v1/search` — 5 szolgáltató (Serper, Brave, Perplexity, Exa, Tavily), 6500+ ingyenes/hó, automatikus feladatátvétel, gyorsítótár | - -### 🛡️ Rugalmasság, biztonság és kormányzás - -| Funkció | Mit csinál | -| ---------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | -| 🔌 **Megszakítók** | Modellenkénti kioldás/helyreállítás küszöbérték-vezérlőkkel | -| 🎯 **Végpont-tudatos modellek** | Az egyéni modellek deklarálják a támogatott végpontokat + API formátumot | -| 🛡️ **Menydörgésellenes csorda** | Mutex + szemafor védelem az újrapróbálkozás/rate eseményeknél | -| 🧠 **Szemantikai + aláírás gyorsítótár** | Költség/késleltetés csökkentése két gyorsítótár-réteggel | -| ⚡ **Idempotencia kérése** | Megkettőzött védőablak | -| 🔒 **TLS ujjlenyomat-hamisítás** | Böngészőszerű TLS-ujjlenyomat – **csökkenti a botfelismerést és a fiók megjelölését** | -| 🔏 **CLI ujjlenyomat-egyeztetés** | Megfelel a natív CLI-kérés aláírásainak — **csökkenti a kitiltási kockázatot, miközben megőrzi a proxy IP-címét** | -| 🌐 **IP-szűrés** | Engedélyezési lista/blokkolista vezérlés a nyílt telepítésekhez | -| 📊 **Szerkeszthető díjkorlátok** | Konfigurálható globális/szolgáltatói szintű korlátozások tartósan | -| 🔑 **API-kulcskezelés + hatókör** | A kulcsok biztonságos kiadása/forgatása és a modell/szolgáltató vezérlői | -| 🛡️ **Védett `/models`** | Opcionális hitelesítési kapu és szolgáltatói elrejtés a modellkatalógushoz | - -### 📊 Observability & Analytics - -| Feature | What It Does | -| -------------------------------- | ----------------------------------------------------- | -| 📝 **Request + Proxy Logging** | Full request/response and proxy logging | -| 📉 **Streamed Detailed Logs** 🆕 | Reconstructs SSE payload streams cleanly into the UI | -| 📋 **Unified Logs Dashboard** | Request, proxy, audit, and console views in one page | -| 🔍 **Request Telemetry** | p50/p95/p99 latency and request tracing | -| 🏥 **Health Dashboard** | Uptime, breaker states, lockouts, cache stats | -| 💰 **Cost Tracking** | Budget controls and per-model pricing visibility | -| 📈 **Analytics Visualizations** | Model/provider usage insights and trend views | -| 🧪 **Evaluation Framework** | Golden set testing with configurable match strategies | - -### ☁️ Deployment & Platform - -| Funkció | Mit csinál | -| -------------------------------------- | ----------------------------------------------------------------------- | -| 🌐 **Deploy Anywhere** | Localhost, VPS, Docker, Cloud környezetek | -| 💾 **Cloud Sync** | Konfiguráció szinkronizálása felhőkezelőn keresztül | -| 🔄 **Biztonsági mentés/visszaállítás** | Export/import és katasztrófa utáni helyreállítási folyamatok | -| 🧙 **Bevezető varázsló** | Első futtatás irányított beállítás | -| 🔧 **CLI Tools Dashboard** | Egykattintásos beállítás a népszerű kódolóeszközökhöz | -| 🎮 **Játszótér modell** | Teszteljen bármely szolgáltatót/modellt/végpontot az irányítópultról | -| 🔏 **CLI ujjlenyomat kapcsoló** | Szolgáltatónkénti ujjlenyomat-egyeztetés a Beállítások > Biztonság | -| 🌐 **i18n (30 nyelv)** | Teljes irányítópult + dokumentumok nyelvi támogatása RTL lefedettséggel | -| 🧹 **Minden modell törlése** | Egykattintásos modelllista törlése a szolgáltató adatai között | -| 👁️ **Sidebar Controls** 🆕 | Hide components and integrations from Appearance Settings | -| 📋 **Kiadássablonok** | Szabványos GitHub-sablonok hibákhoz és szolgáltatásokhoz | -| 📂 **Egyéni adattár** | `DATA_DIR` felülírása a tárolási helyhez | - -### Feature Deep Dive - -#### Intelligens tartalék praktikus költségszabályozással - -```txt -Combo: "my-coding-stack" - 1. cc/claude-opus-4-6 - 2. nvidia/llama-3.3-70b - 3. glm/glm-4.7 - 4. if/kimi-k2-thinking -``` - -Ha a kvóta, arány vagy állapot meghiúsul, az OmniRoute kézi váltás nélkül automatikusan a következő jelöltre lép. - -#### Látható és működőképes protokollkezelés - -- Az MCP + A2A felfedezhető a felhasználói felületen és a dokumentumokban (nem rejtett) -- A protokollállapot API-k élő működési adatokat tesznek közzé (`/api/mcp/*`, `/api/a2a/*`) -- Az irányítópultok tartalmaznak műveleteket a 2. napi műveletekhez (kombinált kapcsolók, megszakítók alaphelyzetbe állítása, feladat törlése) - -#### Fordító + érvényesítési munkafolyamat - -A Fordító terület a következőket tartalmazza: - -- **Játszótér**: kérjen átalakítási ellenőrzéseket -- **Csevegés tesztelő**: teljes kérés/válasz oda-vissza út -- **Test Bench**: több eset egy menetben -- **Élő monitor**: valós idejű forgalmi nézet - -Plusz a protokoll érvényesítése valós ügyfelekkel a `npm run test:protocols:e2e` segítségével. - -> 📖 **[MCP Server README](open-sse/mcp-server/README.md)** — Eszközreferencia, IDE konfigurációk és példák kliensekre -> -> 📖 **[A2A Server README](src/lib/a2a/README.md)** — Készségek, JSON-RPC módszerek, adatfolyamok és feladatok életciklusa - -## 🧪 Értékelések (Evals) - -Az OmniRoute egy beépített kiértékelő keretrendszert tartalmaz, amellyel az LLM válaszminőségét egy aranykészlettel összehasonlítva tesztelheti. Az irányítópulton az **Analytics → Evals** menüpontban érheti el. - -### Beépített arany készlet - -Az előre feltöltött "OmniRoute Golden Set" teszteseteket tartalmaz: - -- Üdvözlet, matematika, földrajz, kódgenerálás -- JSON formátum megfelelőség, fordítás, leértékelés generálása -- Biztonsági elutasítás (káros tartalom), számlálás, logikai logika - -### Értékelési stratégiák - -| Stratégia | Leírás | Példa | -| ---------- | ------------------------------------------------------------------------------------------------- | -------------------------------- | -| `exact` | A kimenetnek pontosan meg kell egyeznie | `"4"` | -| `contains` | A kimenetnek tartalmaznia kell részkarakterláncot (a kis- és nagybetűk nem különböznek egymástól) | `"Paris"` | -| `regex` | A kimenetnek meg kell egyeznie a regex mintával | `"1.*2.*3"` | -| `custom` | Az egyéni JS függvény igaz/hamis | `(output) => output.length > 10` | - ---- - -## 📖 Beállítási útmutató - -### Protokollbeállítás (MCP + A2A) - -<details> -<summary><b>🧩 MCP beállítása (Model Context Protocol)</b></summary> - -Indítsa el az MCP-átvitelt stdio módban: - -```bash -omniroute --mcp -``` - -Javasolt érvényesítési folyamat: - -1. Csatlakoztassa az MCP-klienst az stdio-n keresztül. -2. Futtassa a `omniroute_get_health`. -3. Futtassa a `omniroute_list_combos`. -4. Nyissa meg a `/dashboard/mcp` oldalt a szívverés, a tevékenység és az ellenőrzés megerősítéséhez. - -Hasznos API-k az automatizáláshoz: - -- `GET /api/mcp/status` -- `GET /api/mcp/tools` -- `GET /api/mcp/audit` -- `GET /api/mcp/audit/stats` - -</details> - -<details> -<summary><b>🤝 A2A beállítás (Agent2Agent)</b></summary> - -Fedezze fel az ügynököt: - -```bash -curl http://localhost:20128/.well-known/agent.json -``` - -Feladat küldése: - -```bash -curl -X POST http://localhost:20128/a2a \ - -H 'content-type: application/json' \ - -d '{"jsonrpc":"2.0","id":"setup-a2a","method":"message/send","params":{"skill":"quota-management","messages":[{"role":"user","content":"Summarize quota status."}]}}' -``` - -Életciklus kezelése: - -- `GET /api/a2a/status` -- `GET /api/a2a/tasks` -- `GET /api/a2a/tasks/:id` -- `POST /api/a2a/tasks/:id/cancel` - -Működési UI: - -- `/dashboard/a2a` a feladat/állapot/folyam megfigyelhetőségéhez és füstműveletekhez - -</details> - -<details> -<summary><b>🧪 Végpontok közötti protokoll érvényesítés</b></summary> - -Érvényesítse mindkét protokollt valódi ügyfelekkel: - -```bash -npm run test:protocols:e2e -``` - -Ez igazolja: - -- MCP SDK kliens csatlakozás/lista/hívás -- A2A felfedezés/küldés/stream/get/cancel -- Az MCP audit és A2A feladatkezelő API-k adatainak keresztellenőrzése - -</details> - -<details> -<summary><b>💳 Előfizetési szolgáltatók</b></summary> - -### Claude Code (Pro/Max) - -```bash -Dashboard → Providers → Connect Claude Code -→ OAuth login → Auto token refresh -→ 5-hour + weekly quota tracking - -Models: - cc/claude-opus-4-6 - cc/claude-sonnet-4-5-20250929 - cc/claude-haiku-4-5-20251001 -``` - -**Profi tipp:** Használja az Opust összetett feladatokhoz, a Sonnet pedig a sebességhez. Az OmniRoute nyomkövetési kvóta modellenként! - -### OpenAI Codex (Plus/Pro) - -```bash -Dashboard → Providers → Connect Codex -→ OAuth login (port 1455) -→ 5-hour + weekly reset - -Models: - cx/gpt-5.2-codex - cx/gpt-5.1-codex-max -``` - -#### Codex fióklimit-kezelés (5 óra + heti) - -Minden Codex-fiók rendelkezik házirend-kapcsolókkal a `Dashboard -> Providers`-ban: - -- `5h` (BE/KI): érvényesítse az 5 órás ablak küszöbszabályát. -- `Weekly` (BE/KI): érvényesítse a heti ablak küszöbére vonatkozó szabályzatot. -- Küszöbbeli viselkedés: ha egy engedélyezett ablak eléri a >=90%-os használatot, a fiók kimarad. -- Forgatási viselkedés: Az OmniRoute automatikusan a következő jogosult Codex-fiókhoz irányít. -- Visszaállítási viselkedés: amikor a szolgáltató `resetAt` ideje letelik, a fiók automatikusan újra jogosulttá válik. - -Forgatókönyvek: - -- `5h ON` + `Weekly ON`: a fiók kimarad, ha bármelyik ablak eléri a küszöböt. -- `5h OFF` + `Weekly ON`: csak heti használat blokkolhatja a fiókot. -- `5h ON` + `Weekly OFF`: csak 5 órás használat blokkolhatja a fiókot. -- `resetAt` sikeres: a fiók automatikusan újra rotációba lép (nincs kézi újraengedélyezés). - -### Gemini CLI (INGYENES 180 000/hó!) - -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Legjobb érték:** Hatalmas ingyenes szint! Használja ezt a fizetett szintek előtt. - -### GitHub másodpilóta - -```bash -Dashboard → Providers → Connect GitHub -→ OAuth via GitHub -→ Monthly reset (1st of month) - -Models: - gh/gpt-5 - gh/claude-4.5-sonnet - gh/gemini-3-pro -``` - -</details> - -<details> -<summary><b>🔑 API kulcs szolgáltatók</b></summary> - -### NVIDIA NIM (INGYENES fejlesztői hozzáférés – 70+ modell) - -1. Regisztráljon: [build.nvidia.com](https://build.nvidia.com) -2. Ingyenes API-kulcs beszerzése (1000 következtetési kredit) -3. Irányítópult → Szolgáltató hozzáadása → NVIDIA NIM: - - API-kulcs: `nvapi-your-key` - -**Modellek:** `nvidia/llama-3.3-70b-instruct`, `nvidia/mistral-7b-instruct` és több mint 50 - -**Profi tipp:** OpenAI-kompatibilis API – zökkenőmentesen működik az OmniRoute formátumfordításával! - -### DeepSeek - -1. Regisztráljon: [platform.deepseek.com](https://platform.deepseek.com) -2. Szerezze be az API-kulcsot -3. Irányítópult → Szolgáltató hozzáadása → DeepSeek - -**Modellek:** `deepseek/deepseek-chat`, `deepseek/deepseek-coder` - -### Groq (ingyenes szint elérhető!) - -1. Regisztráljon: [console.groq.com](https://console.groq.com) -2. API-kulcs beszerzése (ingyenes szint tartalmazza) -3. Irányítópult → Szolgáltató hozzáadása → Groq - -**Modellek:** `groq/llama-3.3-70b`, `groq/mixtral-8x7b` - -**Profi tipp:** Ultragyors következtetés – a legjobb valós idejű kódoláshoz! - -### OpenRouter (100+ modell) - -1. Regisztráljon: [openrouter.ai](https://openrouter.ai) -2. Szerezze be az API-kulcsot -3. Irányítópult → Szolgáltató hozzáadása → OpenRouter - -**Modellek:** Hozzáférés több mint 100 modellhez az összes főbb szolgáltatótól egyetlen API-kulccsal. - -</details> - -<details> -<summary><b>💰 Olcsó szolgáltatók (tartalék)</b></summary> - -### GLM-4.7 (napi visszaállítás, 0,6 USD/1 millió) - -1. Regisztráljon: [Zhipu AI](https://open.bigmodel.cn/) -2. Szerezze be az API-kulcsot a Coding Plan-ból -3. Irányítópult → API-kulcs hozzáadása: - - Szolgáltató: `glm` - - API-kulcs: `your-key` - -**Használat:** `glm/glm-4.7` - -**Profi tipp:** A kódolási terv 3-szoros kvótát kínál 1/7 költséggel! Visszaállítás naponta 10:00. - -### MiniMax M2.1 (5 óra visszaállítás, 0,20 USD/1 millió) - -1. Regisztráljon: [MiniMax](https://www.minimax.io/) -2. Szerezze be az API-kulcsot -3. Irányítópult → API-kulcs hozzáadása - -**Használat:** `minimax/MiniMax-M2.1` - -**Profi tipp:** A legolcsóbb lehetőség hosszú kontextushoz (1 millió token)! - -### Kimi K2 (9 USD/hó lakás) - -1. Feliratkozás: [Moonshot AI](https://platform.moonshot.ai/) -2. Szerezze be az API-kulcsot -3. Irányítópult → API-kulcs hozzáadása - -**Használat:** `kimi/kimi-latest` - -**Profi tipp:** Fix 9 USD/hó 10 millió token esetén = 0,90 USD/1 millió tényleges költség! - -</details> - -<details> -<summary><b>🆓 INGYENES szolgáltatók (vészhelyzeti biztonsági mentés)</b></summary> - -### Qoder (5 INGYENES modell OAuth-on keresztül) - -```bash -Dashboard → Connect Qoder -→ Qoder OAuth login -→ Unlimited usage - -Models: - if/kimi-k2-thinking - if/qwen3-coder-plus - if/glm-4.7 - if/minimax-m2 - if/deepseek-r1 -``` - -### Qwen (4 INGYENES modell az eszközkódon keresztül) - -```bash -Dashboard → Connect Qwen -→ Device code authorization -→ Unlimited usage - -Models: - qw/qwen3-coder-plus - qw/qwen3-coder-flash -``` - -### Kiro (Claude INGYENES) - -```bash -Dashboard → Connect Kiro -→ AWS Builder ID or Google/GitHub -→ Unlimited usage - -Models: - kr/claude-sonnet-4.5 - kr/claude-haiku-4.5 -``` - -</details> - -<details> -<summary><b>🎨 Kombók létrehozása</b></summary> - -### 1. példa: Előfizetés maximalizálása → Olcsó biztonsági mentés - -``` -Dashboard → Combos → Create New - -Name: premium-coding -Models: - 1. cc/claude-opus-4-6 (Subscription primary) - 2. glm/glm-4.7 (Cheap backup, $0.6/1M) - 3. minimax/MiniMax-M2.1 (Cheapest fallback, $0.20/1M) - -Use in CLI: premium-coding -``` - -### 2. példa: Csak ingyenes (nulla költség) - -``` -Name: free-combo -Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) - -Cost: $0 forever! -``` - -</details> - -<details> -<summary><b>🔧 CLI integráció</b></summary> - -### Kurzor IDE - -``` -Settings → Models → Advanced: - OpenAI API Base URL: http://localhost:20128/v1 - OpenAI API Key: [from OmniRoute dashboard] - Model: cc/claude-opus-4-6 -``` - -### Claude Code - -Használja az irányítópult **CLI Tools** oldalát az egykattintásos konfiguráláshoz, vagy szerkessze manuálisan a `~/.claude/settings.json` fájlt. - -### Codex CLI - -```bash -export OPENAI_BASE_URL="http://localhost:20128" -export OPENAI_API_KEY="your-omniroute-api-key" - -codex "your prompt" -``` - -### OpenClaw - -**1. lehetőség – Irányítópult (ajánlott):** - -``` -Dashboard → CLI Tools → OpenClaw → Select Model → Apply -``` - -**2. lehetőség – Kézi:** Szerkesztés `~/.openclaw/openclaw.json`: - -```json -{ - "models": { - "providers": { - "omniroute": { - "baseUrl": "http://127.0.0.1:20128/v1", - "apiKey": "sk_omniroute", - "api": "openai-completions" - } - } - } -} -``` - -> **Megjegyzés:** Az OpenClaw csak a helyi OmniRoute-tal működik. Használja az `127.0.0.1` `localhost` helyett az IPv6-feloldási problémák elkerülése érdekében. - -### Cline / Folytatás / RooCode - -``` -Settings → API Configuration: - Provider: OpenAI Compatible - Base URL: http://localhost:20128/v1 - API Key: [from OmniRoute dashboard] - Model: if/kimi-k2-thinking -``` - -### OpenCode - -**1. lépés:** Az OmniRoute hozzáadása egyéni szolgáltatóként: - -```bash -opencode -/connect -# Select "Other" → Enter ID: "omniroute" → Enter your OmniRoute API key -``` - -**2. lépés:** Hozzon létre/szerkesszen `opencode.json` projektjének gyökérkönyvtárában: - -```json -{ - "$schema": "https://opencode.ai/config.json", - "provider": { - "omniroute": { - "npm": "@ai-sdk/openai-compatible", - "name": "OmniRoute", - "options": { - "baseURL": "http://localhost:20128/v1" - }, - "models": { - "cc/claude-sonnet-4-20250514": { "name": "Claude Sonnet 4" }, - "gg/gemini-2.5-pro": { "name": "Gemini 2.5 Pro" }, - "if/kimi-k2-thinking": { "name": "Kimi K2 (Free)" } - } - } - } -} -``` - -**3. lépés:** Válassza ki a modellt az OpenCode-ban: - -```bash -/models -# Select any OmniRoute model from the list -``` - -> **Tipp:** Adja hozzá az OmniRoute `/v1/models` végpontjában elérhető bármely modellt a `models` szakaszhoz. Használja a `provider/model-id` formátumot az OmniRoute irányítópultján. - -</details> - ---- - -## 🐛 Hibaelhárítás - -<details> -<summary><b>Kattintson a hibaelhárítási útmutató kibontásához</b></summary> - -**"A nyelvi modell nem adott üzenetet"** - -- A szolgáltatói kvóta kimerült → Ellenőrizze az irányítópult kvótakövetőjét -- Megoldás: Használjon kombinált tartalékot, vagy váltson olcsóbb szintre - -**Drátakorlát** - -- Előfizetési kvóta lejárt → Tartalék a GLM/MiniMax-hoz -- Kombinó hozzáadása: `cc/claude-opus-4-6 → glm/glm-4.7 → if/kimi-k2-thinking` - -**OAuth token lejárt** - -- Az OmniRoute automatikusan frissíti -- Ha a problémák továbbra is fennállnak: Irányítópult → Szolgáltató → Újracsatlakozás - -**Magas költségek** - -- Ellenőrizze a használati statisztikákat az Irányítópult → Költségek menüpontban -- Állítsa át az elsődleges modellt GLM/MiniMax-ra -- Használjon ingyenes réteget (Gemini CLI, Qoder) a nem kritikus feladatokhoz - -**Az irányítópult/API portok hibásak** - -- `PORT` a kanonikus alapport (és alapértelmezés szerint API-port) -- Az `API_PORT` csak az OpenAI-kompatibilis API figyelőt írja felül -- Az `DASHBOARD_PORT` csak az irányítópultot/Next.js figyelőt írja felül -- Állítsa be a `NEXT_PUBLIC_BASE_URL`-t az irányítópultjára/nyilvános URL-címére (OAuth-visszahívásokhoz) - -**Felhő szinkronizálási hibák** - -- Ellenőrizze, hogy `BASE_URL` mutat a futó példányra -- Ellenőrizze `CLOUD_URL` pontot a várható felhő-végponthoz -- Tartsa az `NEXT_PUBLIC_*` értékeket a szerveroldali értékekkel összhangban - -**Az első bejelentkezés nem működik** - -- Ellenőrizze a `INITIAL_PASSWORD`-t itt: `.env` -- Ha nincs beállítva, a tartalék jelszó: `123456` - -**Nincs kérésnapló** - -- `ENABLE_REQUEST_LOGS=true` beállítása a `.env`-ban - -**A csatlakozási teszt „Érvénytelen” üzenetet mutat az OpenAI-kompatibilis szolgáltatók esetében** - -- Sok szolgáltató nem tesz közzé `/models` végpontot -- Az OmniRoute v1.0.6+ tartalmazza a tartalék érvényesítést a csevegés befejezésén keresztül -- Győződjön meg arról, hogy az alap URL tartalmazza a `/v1` utótagot - -### 🔐 OAuth távoli szerveren - -<a name="oauth-on-a-remote-server"></a> -<a name="oauth-em-servidor-remoto"></a> - -> **⚠️ Fontos az OmniRoute-ot VPS-en, Dockeren vagy bármely távoli szerveren futtató felhasználók számára** - -#### Miért nem működik az Antigravity / Gemini CLI OAuth távoli szervereken? - -Az **Antigravity** és **Gemini CLI** szolgáltatók a **Google OAuth 2.0** szolgáltatást használják. A Google megköveteli, hogy az OAuth folyamatban szereplő `redirect_uri` pontosan egyezzen az alkalmazás Google Cloud Console-jában előregisztrált URI-k egyikével. - -Az OmniRoute csomagban található OAuth hitelesítő adatok **csak a `localhost` számára vannak regisztrálva**. Amikor egy távoli szerveren éri el az OmniRoute szolgáltatást (pl. `https://omniroute.myserver.com`), a Google a következőkkel utasítja el a hitelesítést: - -``` -Error 400: redirect_uri_mismatch -``` - -#### Megoldás: Állítsa be saját OAuth hitelesítő adatait - -Létre kell hoznia egy **OAuth 2.0 ügyfél-azonosítót** a Google Cloud Console-ban a szerver URI-jával. - -#### Lépésről lépésre - -**1. Nyissa meg a Google Cloud Console-t** - -Ugrás ide: [https://console.cloud.google.com/apis/credentials](https://console.cloud.google.com/apis/credentials) - -**2. Új OAuth 2.0 ügyfél-azonosító létrehozása** - -- Kattintson a **„+ Hitelesítési adatok létrehozása”** → **„OAuth-ügyfélazonosító”** elemre. -- Alkalmazás típusa: **"Web alkalmazás"** -- Név: bármi, ami tetszik (pl. `OmniRoute Remote`) - -**3. Engedélyezett átirányítási URI-k hozzáadása** - -Az **"Engedélyezett átirányítási URI-k"** mezőbe írja be: - -``` -https://your-server.com/callback -``` - -> Cserélje ki a `your-server.com` értéket a szerver domainjére vagy IP-címére (ha szükséges, adja meg a portot, pl. `http://45.33.32.156:20128/callback`). - -**4. Mentse és másolja a hitelesítő adatokat** - -A létrehozás után a Google megjeleníti az **Client ID** és **Client Secret** kódot. - -**5. Környezeti változók beállítása** - -A `.env` (vagy a Docker környezeti változókban): - -```bash -# For Antigravity: -ANTIGRAVITY_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com -ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-your-secret - -# For Gemini CLI: -GEMINI_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com -GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -``` - -**6. Az OmniRoute újraindítása** - -```bash -# npm: -npm run dev - -# Docker: -docker restart omniroute -``` - -**7. Próbáljon újra csatlakozni** - -Irányítópult → Szolgáltatók → Antigravity (vagy Gemini CLI) → OAuth - -A Google most megfelelően átirányítja a következőre: `https://your-server.com/callback`. - ---- - -#### Ideiglenes megoldás (egyéni hitelesítő adatok nélkül) - -Ha most nem szeretné beállítani a saját hitelesítő adatait, továbbra is használhatja a **manuális URL-folyamatot**: - -1. Az OmniRoute megnyitja a Google engedélyezési URL-címét -2. Az engedélyezés után a Google megpróbál átirányítani a `localhost` címre (ami a távoli szerveren meghiúsul) -3. **Másolja ki a teljes URL-t** a böngésző címsorából (még akkor is, ha az oldal nem töltődik be) -4. Illessze be az URL-t az OmniRoute csatlakozási módban látható mezőbe -5. Kattintson a **"Csatlakozás"** gombra. - -> Ez azért működik, mert az URL-ben szereplő engedélyezési kód attól függetlenül érvényes, hogy az átirányítási oldal betöltődött-e. - ---- - -<details> -<summary><b>🇧🇷 Versão em Português</b></summary> - -#### Az OAuth do Antigravity / Gemini CLI falha em servidores remotos? - -Az **Antigravitáció** és a **Gemini CLI** usam **Google OAuth 2.0** hitelesítése. A Google exige que a `redirect_uri` nincs fluxo OAuth seja **exatamente** uma das URI-k pre-cadastradas no Google Cloud Console do aplicativo. - -As credenciais OAuth embutidas no OmniRoute estão cadastradas **apenas para `localhost`**. Quando você acessa o OmniRoute em um servidor Remoto (pl.: `https://omniroute.meuservidor.com`), o Google rejeita a autenticação com: - -``` -Error 400: redirect_uri_mismatch -``` - -#### Megoldás: A suas próprias credenciais OAuth konfigurálása - -Você precisa criar um **OAuth 2.0 ügyfél-azonosító** nincs Google Cloud Console com egy URI do seu servidor. - -#### Passo a passo - -**1. Acesse o Google Cloud Console** - -Abra: [https://console.cloud.google.com/apis/credentials](https://console.cloud.google.com/apis/credentials) - -**2. Crie um novo OAuth 2.0 ügyfél-azonosító** - -- Kattintson a gombra **"+ Hitelesítési adatok létrehozása"** → **"OAuth-kliens-azonosító"** -- Tipo de Aplicativo: **"Web alkalmazás"** -- Név: escolha qualquer nome (pl.: `OmniRoute Remote`) - -**3. Adicione mint engedélyezett átirányítási URI** - -No campo **"Engedélyezett átirányítási URI-k"**, kiegészítés: - -``` -https://seu-servidor.com/callback -``` - -> Helyettesítő `seu-servidor.com` pelo domínio vagy IP do seu servidor (beleértve a porta se necessário-t is, pl.: `http://45.33.32.156:20128/callback`). - -**4. Másolat mentése hitelesítésként** - -Após criar, o Google mostrará o **Client ID** e o **Client Secret**. - -**5. Konfigurálás variáveis de ambienteként** - -No seu `.env` (ou nas variáveis de ambiente do Docker): - -```bash -# Para Antigravity: -ANTIGRAVITY_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com -ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret - -# Para Gemini CLI: -GEMINI_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com -GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -``` - -**6. Reinicie o OmniRoute** - -```bash -# Se usando npm: -npm run dev - -# Se usando Docker: -docker restart omniroute -``` - -**7. Tente conectar novamente** - -Irányítópult → Szolgáltatók → Antigravity (vagy Gemini CLI) → OAuth - -Agora o Google redirecionará corretamente para `https://seu-servidor.com/callback` e a autenticação funcionará. - ---- - -#### Kerülő megoldás temporário (sem configurar credenciais próprias) - -Se não quiser criar credenciais próprias agora, ainda é possível usar o fluxo **manual de URL**: - -1. OmniRoute abrirá a Google autorização URL-jét -2. Após você autorizar, o Google tentará redirecionar para `localhost` (que falha no servidor remoto) -3. ** Teljes URL másolása** da barra de endereço do seu browser (mesmo que a página não carregue) -4. Cole essa URL no campo que aparece no modal de conexão do OmniRoute -5. Kattintson a **"Connect"** gombra - -> Este workaround funciona porque o código de autorização na URL é válido independente do redirect ter carregado ou não. - -</details> - ---- - -</details> - -## 🛠️ Tech Stack - -<details> -<summary><b>Kattintson a technológiai verem részleteinek kibontásához</b></summary> - -- **Futtatási idejű**: Node.js 18–22 LTS (⚠️ A Node.js 24+ **nem támogatott** - A `better-sqlite3` natív binárisok nem kompatibilisek) -- **Nyelv**: TypeScript 5.9 – **100% TypeScript** a `src/` és `open-sse/` között (nulla `any` az alapmodulokban a v2.0 óta) -- **Keretrendszer**: Next.js 16 + React 19 + Tailwind CSS 4 -- **Adatbázis**: LowDB (JSON) + SQLite (tartomány állapota + proxynaplók + MCP-audit + útválasztási döntések) -- **Sémák**: Zod (MCP-eszköz I/O-ellenőrzése, API-szerződések) -- **Protokollok**: MCP (stdio/HTTP) + A2A v0.3 (JSON-RPC 2.0 + SSE) -- **Streaming**: Szerver által küldött események (SSE) -- **Auth**: OAuth 2.0 (PKCE) + JWT + API-kulcsok + MCP-hatókörű engedélyezés -- **Tesztelés**: Node.js tesztfutó + Vitest (900+ teszt, beleértve az egységet, az integrációt, az E2E-t) -- **CI/CD**: GitHub Actions (automatikus npm közzététel + Docker Hub kiadáskor) -- **Webhely**: [omniroute.online](https://omniroute.online) -- **Csomag**: [npmjs.com/package/omniroute](https://www.npmjs.com/package/omniroute) -- **Dokker**: [hub.docker.com/r/diegosouzapw/omniroute](https://hub.docker.com/r/diegosouzapw/omniroute) -- **Rugalmasság**: megszakító, exponenciális visszakapcsolás, mennydörgés elleni csorda, TLS-hamisítás, automatikus kombinált öngyógyítás - -</details> - ---- - -## 📖 Dokumentáció - -| dokumentum | Leírás | -| ---------------------------------------------- | ----------------------------------------------------------- | -| [User Guide](docs/USER_GUIDE.md) | Szolgáltatók, kombók, CLI-integráció, telepítés | -| [API Reference](docs/API_REFERENCE.md) | Minden végpont példákkal | -| [MCP Server](open-sse/mcp-server/README.md) | 16 MCP-eszköz, IDE konfigurációk, Python/TS/Go kliensek | -| [A2A Server](src/lib/a2a/README.md) | JSON-RPC 2.0 protokoll, készségek, adatfolyam, feladat mgmt | -| [Auto-Combo Engine](docs/auto-combo.md) | 6 faktoros pontozás, módcsomagok, öngyógyító | -| [Troubleshooting](docs/TROUBLESHOOTING.md) | Gyakori problémák és megoldások | -| [Architecture](docs/ARCHITECTURE.md) | Rendszerarchitektúra és belső elemek | -| [Contributing](CONTRIBUTING.md) | Fejlesztési beállítások és irányelvek | -| [OpenAPI Spec](docs/openapi.yaml) | OpenAPI 3.0 specifikáció | -| [Security Policy](SECURITY.md) | Sebezhetőségi jelentések és biztonsági gyakorlatok | -| [VM Deployment](docs/VM_DEPLOYMENT_GUIDE.md) | Teljes útmutató: VM + nginx + Cloudflare beállítás | -| [Features Gallery](docs/FEATURES.md) | Vizuális irányítópult bemutató képernyőképekkel | -| [Release Checklist](docs/RELEASE_CHECKLIST.md) | Kiadás előtti érvényesítési lépések | - ---- - -## 🗺️ Útiterv - -Az OmniRoute **210+ funkciót tervez** több fejlesztési fázisban. Íme a legfontosabb területek: - -| Kategória | Tervezett funkciók | Kiemelések | -| ----------------------------------- | ------------------ | ------------------------------------------------------------------------------------------------------ | -| 🧠 **Útválasztás és intelligencia** | 25+ | Legkisebb késleltetésű útválasztás, címke alapú útválasztás, kvóta elővizsgálat, P2C-fiók kiválasztása | -| 🔒 **Biztonság és megfelelőség** | 20+ | SSRF keményítés, hitelesítő adatok álcázása, végpontonkénti sebességkorlát, felügyeleti kulcs hatóköre | -| 📊 **Megfigyelhetőség** | 15+ | OpenTelemetry integráció, valós idejű kvótafigyelés, modellenkénti költségkövetés | -| 🔄 ** Szolgáltatói integrációk** | 20+ | Dinamikus modellnyilvántartás, szolgáltatói leállások, többfiókos Codex, másodpilóta kvótaelemzés | -| ⚡ **Teljesítmény** | 15+ | Kettős gyorsítótárréteg, gyorsítótár, válaszgyorsítótár, folyamatos adatfolyam, kötegelt API | -| 🌐 **Ökoszisztéma** | 10+ | WebSocket API, config hot-reload, elosztott konfigurációs tároló, kereskedelmi mód | - -### 🔜 Hamarosan - -- 🔗 **OpenCode integráció** - Natív szolgáltatói támogatás az OpenCode AI kódoló IDE-hez -- 🔗 **TRAE integráció** — A TRAE AI fejlesztési keret teljes támogatása -- 📦 **Batch API** - Aszinkron kötegelt feldolgozás tömeges kérésekhez -- 🎯 **Címke alapú útválasztás** - Egyéni címkéken és metaadatokon alapuló útvonalkérések -- 💰 **Legalacsonyabb költségű stratégia** - Automatikusan válassza ki a legolcsóbb elérhető szolgáltatót - -> 📝 A teljes funkció specifikációi a [**OMNI_TOKEN_342**](docs/new-features/) címen érhetők el (217 részletes specifikáció) - ---- - -## 👥 Közreműködők - -[![Contributors](https://contrib.rocks/image?repo=diegosouzapw/OmniRoute&max=100&columns=20&anon=1)](https://github.com/diegosouzapw/OmniRoute/graphs/contributors) - -### Hogyan járuljunk hozzá - -1. Fork a tároló -2. Hozza létre saját jellemzői ágát (`git checkout -b feature/amazing-feature`) -3. Végezze el módosításait (`git commit -m 'Add amazing feature'`) -4. Nyomja az ágra (`git push origin feature/amazing-feature`) -5. Nyisson meg egy lehívási kérelmet - -A részletes útmutatásért lásd: [CONTRIBUTING.md](CONTRIBUTING.md). - -### Új verzió kiadása - -```bash -# Create a release — npm publish happens automatically -gh release create v2.0.0 --title "v2.0.0" --generate-notes -``` - ---- - -## 📊 Csillagtörténet - -## Stargazers idővel - -## [![Stargazers over time](https://starchart.cc/diegosouzapw/OmniRoute.svg?variant=adaptive)](https://starchart.cc/diegosouzapw/OmniRoute) - -## 🙏 Köszönetnyilvánítás - -Külön köszönet **[9router](https://github.com/decolua/9router)**, **[decolua](https://github.com/decolua)** – az eredeti projekt, amely ezt a villát inspirálta. Az OmniRoute erre a hihetetlen alapra épít további funkciókkal, multimodális API-kkal és teljes TypeScript-újraírással. - -Külön köszönet **[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)** – az eredeti Go implementációnak, amely ihlette ezt a JavaScript-portot. - ---- - -## 📄 Licenc - -MIT-licenc – a részletekért lásd: [LICENSE](LICENSE). - ---- - -<div align="center"> - <sub>A ❤️ segítségével készült a 24/7 kódoló fejlesztőknek</sub> - <br/> - <sub><a href="https://omniroute.online">omniroute.online</a></sub> -</div> -<!-- A GitHub-beszélgetések engedélyezve a közösségi kérdések és válaszok számára --> +👉 **[Read the Documentation here](docs/i18n/hu/README.md)** diff --git a/README.id.md b/README.id.md index ec221e8aea..1a2a5e9ac0 100644 --- a/README.id.md +++ b/README.id.md @@ -1,2077 +1,5 @@ -# 🚀 OmniRoute — Gerbang AI Gratis +# 🌐 OmniRoute (id) -### Jangan pernah berhenti membuat kode. Perutean cerdas ke **model AI GRATIS & berbiaya rendah** dengan fallback otomatis. +The documentation has been formalized and moved to our centralized i18n structure. -_Proksi API universal Anda — satu titik akhir, 67+ penyedia, tanpa waktu henti. Sekarang dengan orkestrasi agen **MCP & A2A**._ - -**Penyelesaian Obrolan • Penyematan • Pembuatan Gambar • Video • Musik • Audio • Pemeringkatan Ulang • **Penelusuran Web** • Server MCP • Protokol A2A • 100% TypeScript** - ---- - -<div align="center"> - -[![npm version](https://img.shields.io/npm/v/omniroute?color=cb3837&logo=npm)](https://www.npmjs.com/package/omniroute) -[![npm downloads](https://img.shields.io/npm/dm/omniroute?color=cb3837&logo=npm&label=npm%20downloads)](https://www.npmjs.com/package/omniroute) -[![Docker Hub](https://img.shields.io/docker/v/diegosouzapw/omniroute?label=Docker%20Hub&logo=docker&color=2496ED)](https://hub.docker.com/r/diegosouzapw/omniroute) -[![Docker Pulls](https://img.shields.io/docker/pulls/diegosouzapw/omniroute?logo=docker&color=2496ED&label=docker%20pulls)](https://hub.docker.com/r/diegosouzapw/omniroute) -[![License](https://img.shields.io/github/license/diegosouzapw/OmniRoute)](https://github.com/diegosouzapw/OmniRoute/blob/main/LICENSE) -[![Website](https://img.shields.io/badge/Website-omniroute.online-blue?logo=google-chrome&logoColor=white)](https://omniroute.online) -[![WhatsApp](https://img.shields.io/badge/WhatsApp-Community-25D366?logo=whatsapp&logoColor=white)](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) - -[🌐 Website](https://omniroute.online) • [🚀 Quick Start](#-quick-start) • [💡 Features](#-key-features) • [📖 Docs](#-documentation) • [💰 Pricing](#-pricing-at-a-glance) • [💬 WhatsApp](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) - -</div> - -🌐 **Tersedia di:** 🇮🇩 [English](README.md) | 🇧🇷 [Português (Brasil)](docs/i18n/pt-BR/README.md) | 🇪🇪 [Español](docs/i18n/es/README.md) | 🇫🇷 [Français](docs/i18n/fr/README.md) | 🇮🇹 [Italiano](docs/i18n/it/README.md) | 🇷🇮 [Русский](docs/i18n/ru/README.md) | CNY [中文 (简体)](docs/i18n/zh-CN/README.md) | 🇩🇪 [Deutsch](docs/i18n/de/README.md) | 🇮nai [हिन्दी](docs/i18n/in/README.md) | 🇹kh [ไทย](docs/i18n/th/README.md) | 🇮🇩 [Українська](docs/i18n/uk-UA/README.md) | ``OMNI_TOKEN_370\_\_ | 🇯ppa [日本語](docs/i18n/ja/README.md) | 🇻€ [Tiếng Việt](docs/i18n/vi/README.md) | 🇧🇮 [Български](docs/i18n/bg/README.md) | 🇩 [Dansk](docs/i18n/da/README.md) | 🇫🇮 [Suomi](docs/i18n/fi/README.md) | 🇮🇱 [עברית](docs/i18n/he/README.md) | ❤ [Magyar](docs/i18n/hu/README.md) | 🇮🇩 [Bahasa Indonesia](docs/i18n/id/README.md) | Korea Selatan [한국어](docs/i18n/ko/README.md) | 🇲🇾 [Bahasa Melayu](docs/i18n/ms/README.md) | €🇱 [Nederlands](docs/i18n/nl/README.md) | €🇴 [Norsk](docs/i18n/no/README.md) | ‏ [Português (Portugal)](docs/i18n/pt/README.md) | 🇷🇴 [Română](docs/i18n/ro/README.md) | 🇱 [Polski](docs/i18n/pl/README.md) | ✔️ [Slovenčina](docs/i18n/sk/README.md) | 🇲🇾 [Svenska](docs/i18n/sv/README.md) | ه و [Filipino](docs/i18n/phi/README.md) | Cheska [Čeština](docs/i18n/cs/README.md) - ---- - -## 🆕 Yang Baru di v3.0.0 - -> **Meningkatkan dari v2.9.5?** — Lihat [full CHANGELOG](CHANGELOG.md#300--2026-03-22-release-candidate--not-yet-merged-to-main) untuk semua perubahan. - -| Daerah | Ubah | -| ------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 🔒 **Keamanan CodeQL** | Memperbaiki 10+ peringatan CodeQL: pengulangan polinomial, keacakan tidak aman, remediasi injeksi shell | -| ✅ **Validasi Rute** | Semua 176 rute API sekarang divalidasi dengan skema Zod + `validateBody()` — tiket CI `check:route-validation:t06` | -| 🐛 **Kebocoran Tag omniModel** | Tag `<omniModel>` internal tidak lagi bocor ke klien dalam respons streaming SSE (#585) | -| 🔑 **API Kunci Terdaftar** | Kunci API penyediaan otomatis melalui `POST /api/v1/registered-keys` dengan penerapan kuota per penyedia/akun, idempotensi, penyimpanan SHA-256, dan pelaporan masalah GitHub opsional | -| 👁️ **Scoped API Key Reveal** 🆕 | Opt-in recovery of API keys via `ALLOW_API_KEY_REVEAL` | -| 🎨 **Ikon Penyedia** | 130+ logo penyedia melalui `@lobehub/icons` (SVG) dengan PNG → rantai fallback umum | -| 🔄 **Sinkronisasi Otomatis Model** | Penjadwal 24 jam dan UI manual beralih untuk menyinkronkan daftar model untuk penyedia bawaan dan kustom yang kompatibel dengan OpenAI | -| 🌐 **OpenCode Zen/Go** | Dua penyedia baru dari @kang-heewon melalui PR #530: tingkat gratis + tingkat berlangganan melalui `OpencodeExecutor` | -| 🐛 **Gemini CLI OAuth** | Kesalahan yang dapat ditindaklanjuti ketika `GEMINI_OAUTH_CLIENT_SECRET` hilang di Docker (adalah kesalahan Google yang samar) | -| 🐛 **Konfigurasi OpenCode** | `saveOpenCodeConfig()` sekarang menulis TOML dengan benar ke `XDG_CONFIG_HOME` | -| 🐛 **Penggantian model yang dipasangi pin** | `body.model` disetel dengan benar ke `pinnedModel` pada perlindungan cache konteks | -| 🐛 **Perulangan Kodeks/Claude** | `tool_result` blok sekarang diubah menjadi teks untuk menghentikan loop tak terbatas | -| 🐛 **Pengalihan masuk** | Login tidak lagi macet setelah melewatkan pengaturan kata sandi | -| 🐛 **Jalur Windows** | Jalur MSYS2/Git-Bash (`/c/...`) dinormalisasi menjadi `C:\...` secara otomatis | - ---- - -## 🖼️ Dasbor Utama - -<div align="center"> - <img src="./docs/screenshots/MainOmniRoute.png" alt="OmniRoute Dashboard" width="800"/> -</div> - ---- - -## 📸 Pratinjau Dasbor - -<details> -<summary><b>Klik untuk melihat tangkapan layar dasbor</b></summary> - -| Halaman | Tangkapan layar | -| ------------------ | ------------------------------------------------- | -| **Penyedia** | ![Providers](docs/screenshots/01-providers.png) | -| **Kombo** | ![Combos](docs/screenshots/02-combos.png) | -| **Analitik** | ![Analytics](docs/screenshots/03-analytics.png) | -| **Kesehatan** | ![Health](docs/screenshots/04-health.png) | -| **Penerjemah** | ![Translator](docs/screenshots/05-translator.png) | -| **Pengaturan** | ![Settings](docs/screenshots/06-settings.png) | -| **Alat CLI** | ![CLI Tools](docs/screenshots/07-cli-tools.png) | -| **Log Penggunaan** | ![Usage](docs/screenshots/08-usage.png) | -| **Titik Akhir** | ![Endpoints](docs/screenshots/09-endpoint.png) | - -</details> - ---- - -### 🤖 Penyedia AI gratis untuk agen coding favorit Anda - -_Hubungkan alat IDE atau CLI apa pun yang didukung AI melalui OmniRoute — gerbang API gratis untuk pengkodean tanpa batas._ - - <table> - <tr> - <td align="center" width="110"> - <a href="https://github.com/openclaw/openclaw"> - <img src="./public/providers/openclaw.png" alt="OpenClaw" width="48"/><br/> - <b>OpenClaw</b> - </a><br/> - <sub>⭐ 205K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/HKUDS/nanobot"> - <img src="./public/providers/nanobot.png" alt="NanoBot" width="48"/><br/> - <b>NanoBot</b> - </a><br/> - <sub>⭐ 20.9K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/sipeed/picoclaw"> - <img src="./public/providers/picoclaw.jpg" alt="PicoClaw" width="48"/><br/> - <b>PicoClaw</b> - </a><br/> - <sub>⭐ 14.6K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/zeroclaw-labs/zeroclaw"> - <img src="./public/providers/zeroclaw.png" alt="ZeroClaw" width="48"/><br/> - <b>ZeroClaw</b> - </a><br/> - <sub>⭐ 9.9K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/nearai/ironclaw"> - <img src="./public/providers/ironclaw.png" alt="IronClaw" width="48"/><br/> - <b>IronClaw</b> - </a><br/> - <sub>⭐ 2.1K</sub> - </td> - </tr> - <tr> - <td align="center" width="110"> - <a href="https://github.com/anomalyco/opencode"> - <img src="./public/providers/opencode.svg" alt="OpenCode" width="48"/><br/> - <b>OpenCode</b> - </a><br/> - <sub>⭐ 106K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/openai/codex"> - <img src="./public/providers/codex.png" alt="Codex CLI" width="48"/><br/> - <b>Codex CLI</b> - </a><br/> - <sub>⭐ 60.8K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/anthropics/claude-code"> - <img src="./public/providers/claude.png" alt="Claude Code" width="48"/><br/> - <b>Claude Code</b> - </a><br/> - <sub>⭐ 67.3K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/google-gemini/gemini-cli"> - <img src="./public/providers/gemini-cli.png" alt="Gemini CLI" width="48"/><br/> - <b>Gemini CLI</b> - </a><br/> - <sub>⭐ 94.7K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/Kilo-Org/kilocode"> - <img src="./public/providers/kilocode.png" alt="Kilo Code" width="48"/><br/> - <b>Kilo Code</b> - </a><br/> - <sub>⭐ 15.5K</sub> - </td> - </tr> - </table> - -<sub>📡 Semua agen terhubung melalui <code>http://localhost:20128/v1</code> atau <code>http://cloud.omniroute.online/v1</code> — satu konfigurasi, model tak terbatas, dan kuota</sub> - ---- - -## 🤔 Mengapa OmniRoute? - -**Berhenti membuang-buang uang dan mencapai batas:** - -- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Kuota berlangganan habis tanpa terpakai setiap bulannya -- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Batas kecepatan menghentikan Anda di tengah coding -- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> API mahal ($20-50/bulan per penyedia) -- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Peralihan antar penyedia secara manual - -**OmniRoute memecahkan masalah ini:** - -- ✅ **Maksimalkan langganan** - Lacak kuota, gunakan setiap bit sebelum menyetel ulang -- ✅ **Pengembalian otomatis** - Berlangganan → Kunci API → Murah → Gratis, tanpa downtime -- ✅ **Multi-akun** - Round-robin antar akun per penyedia -- ✅ **Universal** - Bekerja dengan Claude Code, Codex, Gemini CLI, Cursor, Cline, OpenClaw, alat CLI apa pun - ---- - -## 📧 Dukungan - -> 💬 **Bergabunglah dengan komunitas kami!** [WhatsApp Group](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) — Dapatkan bantuan, berbagi kiat, dan dapatkan informasi terbaru. - -- **Situs Web**: [omniroute.online](https://omniroute.online) -- **GitHub**: [github.com/diegosouzapw/OmniRoute](https://github.com/diegosouzapw/OmniRoute) -- **Masalah**: [github.com/diegosouzapw/OmniRoute/issues](https://github.com/diegosouzapw/OmniRoute/issues) -- **WhatsApp**: [Community Group](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) -- **Berkontribusi**: Lihat [CONTRIBUTING.md](CONTRIBUTING.md), buka PR, atau pilih `good first issue` -- **Proyek Asli**: [9router by decolua](https://github.com/decolua/9router) - -### 🐛 Melaporkan Bug? - -Saat membuka masalah, jalankan perintah info sistem dan lampirkan file yang dihasilkan: - -```bash -npm run system-info -``` - -Ini menghasilkan `system-info.txt` dengan versi Node.js, versi OmniRoute, detail OS, alat CLI yang diinstal (qoder, gemini, claude, codex, antigravity, droid, dll.), status Docker/PM2, dan paket sistem — semua yang kami perlukan untuk mereproduksi masalah Anda dengan cepat. Lampirkan file langsung ke masalah GitHub Anda. - ---- - -## 🔄 Cara Kerjanya - -``` -┌─────────────┐ -│ Your CLI │ (Claude Code, Codex, Gemini CLI, OpenClaw, Cursor, Cline...) -│ Tool │ -└──────┬──────┘ - │ http://localhost:20128/v1 - ↓ -┌─────────────────────────────────────────┐ -│ OmniRoute (Smart Router) │ -│ • Format translation (OpenAI ↔ Claude) │ -│ • Quota tracking + Embeddings + Images │ -│ • Auto token refresh │ -└──────┬──────────────────────────────────┘ - │ - ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex, Gemini CLI - │ ↓ quota exhausted - ├─→ [Tier 2: API KEY] DeepSeek, Groq, xAI, Mistral, NVIDIA NIM, etc. - │ ↓ budget limit - ├─→ [Tier 3: CHEAP] GLM ($0.6/1M), MiniMax ($0.2/1M) - │ ↓ budget limit - └─→ [Tier 4: FREE] Qoder, Qwen, Kiro (unlimited) - -Result: Never stop coding, minimal cost -``` - ---- - -## 🎯 Apa yang Dipecahkan OmniRoute — 30 Masalah Nyata & Kasus Penggunaan - -> **Setiap pengembang yang menggunakan alat AI menghadapi masalah ini setiap hari.** OmniRoute dibuat untuk menyelesaikan semuanya — mulai dari pembengkakan biaya hingga pemblokiran regional, mulai dari aliran OAuth yang rusak hingga operasi protokol dan kemampuan observasi perusahaan. - -<details> -<summary><b>💸 1. "Saya membayar langganan yang mahal tetapi masih terganggu oleh batasan"</b></summary> - -Pengembang membayar $20–200/bulan untuk Claude Pro, Codex Pro, atau GitHub Copilot. Bahkan saat membayar, kuota memiliki batas tertinggi — penggunaan 5 jam, batas mingguan, atau batas tarif per menit. Di tengah sesi pengkodean, penyedia berhenti merespons dan pengembang kehilangan aliran dan produktivitas. - -**Bagaimana OmniRoute menyelesaikannya:** - -- **Smart 4-Tier Fallback** — Jika kuota berlangganan habis, otomatis dialihkan ke Kunci API → Murah → Gratis tanpa intervensi manual -- **Pelacakan Kuota Real-Time** — Menampilkan konsumsi token secara real-time dengan hitungan mundur reset (5 jam, harian, mingguan) -- **Dukungan Multi-Akun** — Beberapa akun per penyedia dengan sistem round-robin otomatis — jika satu akun habis, beralih ke akun berikutnya -- **Kombo Khusus** — Rantai cadangan yang dapat disesuaikan dengan 6 strategi penyeimbangan (isi terlebih dahulu, round-robin, P2C, acak, paling jarang digunakan, hemat biaya) -- **Codex Business Quotas** — Pemantauan kuota ruang kerja Bisnis/Tim langsung di dasbor - -</details> - -<details> -<summary><b>🔌 2. "Saya perlu menggunakan beberapa penyedia tetapi masing-masing memiliki API yang berbeda"</b></summary> - -OpenAI menggunakan satu format, Claude (Anthropic) menggunakan format lain, Gemini menggunakan format lain. Jika pengembang ingin menguji model dari penyedia yang berbeda atau melakukan fallback di antara penyedia tersebut, mereka perlu mengonfigurasi ulang SDK, mengubah titik akhir, menangani format yang tidak kompatibel. Penyedia khusus (FriendLI, NIM) memiliki titik akhir model non-standar. - -**Bagaimana OmniRoute menyelesaikannya:** - -- **Titik Akhir Terpadu** — Satu `http://localhost:20128/v1` berfungsi sebagai proxy untuk 67+ penyedia -- **Terjemahan Format** — Otomatis dan transparan: OpenAI ↔ Claude ↔ Gemini ↔ Responses API -- **Sanitasi Respons** — Menghapus kolom non-standar (`x_groq`, `usage_breakdown`, `service_tier`) yang merusak OpenAI SDK v1.83+ -- **Normalisasi Peran** — Mengonversi `developer` → `system` untuk penyedia non-OpenAI; `system` → `user` untuk GLM/ERNIE -- **Think Tag Extraction** — Mengekstrak `<think>` blok dari model seperti DeepSeek R1 ke dalam `reasoning_content` standar -- **Output Terstruktur untuk Gemini** — `json_schema` → `responseMimeType`/`responseSchema` konversi otomatis -- **`stream` defaultnya adalah `false`** — Sesuai dengan spesifikasi OpenAI, menghindari SSE yang tidak terduga di SDK Python/Rust/Go - -</details> - -<details> -<summary><b>🌐 3. "Penyedia AI saya memblokir wilayah/negara saya"</b></summary> - -Penyedia seperti OpenAI/Codex memblokir akses dari wilayah geografis tertentu. Pengguna mendapatkan kesalahan seperti `unsupported_country_region_territory` selama koneksi OAuth dan API. Hal ini sangat membuat frustasi bagi pengembang dari negara-negara berkembang. - -**Bagaimana OmniRoute menyelesaikannya:** - -- **Konfigurasi Proksi 3 Tingkat** — Proksi yang dapat dikonfigurasi pada 3 tingkat: global (semua lalu lintas), per penyedia (hanya satu penyedia), dan per koneksi/kunci -- **Lencana Proksi Berkode Warna** — Indikator visual: 🟢 proksi global, 🟡 proksi penyedia, 🔵 proksi koneksi, selalu menampilkan IP -- **OAuth Token Exchange Through Proxy** — Aliran OAuth juga melewati proxy, menyelesaikan `unsupported_country_region_territory` -- **Tes Koneksi melalui Proxy** — Tes koneksi menggunakan proxy yang dikonfigurasi (tidak ada lagi bypass langsung) -- **Dukungan SOCKS5** — Dukungan proksi SOCKS5 penuh untuk perutean keluar -- **TLS Fingerprint Spoofing** — Sidik jari TLS mirip browser melalui `wreq-js` untuk melewati deteksi bot -- **🔏 Pencocokan Sidik Jari CLI** — Menyusun ulang header dan kolom isi agar cocok dengan tanda tangan biner CLI asli, sehingga secara drastis mengurangi risiko penandaan akun. IP proxy dipertahankan — Anda mendapatkan **dan** penyembunyian IP secara bersamaan - -</details> - -<details> -<summary><b>🆓 4. "Saya ingin menggunakan AI untuk coding tetapi saya tidak punya uang"</b></summary> - -Tidak semua orang mampu membayar $20–200/bulan untuk berlangganan AI. Pelajar, pengembang dari negara-negara berkembang, penghobi, dan pekerja lepas memerlukan akses ke model berkualitas tanpa biaya. - -**Bagaimana OmniRoute menyelesaikannya:** - -- **Penyedia Tingkat Gratis Bawaan** — Dukungan asli untuk 100% penyedia gratis: Qoder (5 model tak terbatas melalui OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 model tak terbatas: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID gratis), Gemini CLI (gratis 180 ribu token/bulan) -- **Ollama Cloud** — Model Ollama yang dihosting cloud di `api.ollama.com` dengan tingkat "Penggunaan ringan" gratis; gunakan awalan `ollamacloud/<model>` -- **Kombo Khusus Gratis** — Rantai `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/bulan tanpa downtime -- **Akses Gratis NVIDIA NIM** — akses gratis dev-selamanya ~40 RPM ke 70+ model di build.nvidia.com (beralih dari kredit ke batas tarif murni) -- **Strategi Pengoptimalan Biaya** — Strategi perutean yang secara otomatis memilih penyedia termurah yang tersedia - -</details> - -<details> -<summary><b>🔒 5. "Saya perlu melindungi gateway AI saya dari akses tidak sah"</b></summary> - -Saat mengekspos gateway AI ke jaringan (LAN, VPS, Docker), siapa pun yang memiliki alamat tersebut dapat menggunakan token/kuota pengembang. Tanpa perlindungan, API rentan terhadap penyalahgunaan, injeksi cepat, dan penyalahgunaan. - -**Bagaimana OmniRoute menyelesaikannya:** - -- **Manajemen Kunci API** — Pembuatan, rotasi, dan pelingkupan per penyedia dengan halaman `/dashboard/api-manager` khusus -- **Izin Tingkat Model** — Membatasi kunci API untuk model tertentu (`openai/*`, pola karakter pengganti), dengan tombol Izinkan Semua/Batasi -- **Perlindungan Titik Akhir API** — Memerlukan kunci untuk `/v1/models` dan memblokir penyedia tertentu dari daftar -- **Auth Guard + Perlindungan CSRF** — Semua rute dasbor dilindungi dengan middleware `withAuth` + token CSRF -- **Pembatas Kecepatan** — Pembatasan kecepatan per-IP dengan jendela yang dapat dikonfigurasi -- **Pemfilteran IP** — Daftar yang diizinkan/daftar blokir untuk kontrol akses -- **Prompt Injection Guard** — Sanitasi terhadap pola prompt berbahaya -- **Enkripsi AES-256-GCM** — Kredensial dienkripsi saat disimpan - -</details> - -<details> -<summary><b>🛑 6. "Penyedia saya down dan saya kehilangan alur pengkodean"</b></summary> - -Penyedia AI bisa menjadi tidak stabil, menampilkan kesalahan 5xx, atau mencapai batas kapasitas sementara. Jika pengembang bergantung pada satu penyedia, mereka akan terganggu. Tanpa pemutus sirkuit, percobaan ulang yang berulang-ulang dapat membuat aplikasi crash. - -**Bagaimana OmniRoute menyelesaikannya:** - -- **Pemutus Sirkuit per model** — Buka/tutup otomatis dengan ambang batas dan cooldown yang dapat dikonfigurasi (Tertutup/Terbuka/Setengah Terbuka), tercakup per model untuk menghindari blok berjenjang -- **Kemunduran Eksponensial** — Penundaan percobaan ulang yang progresif -- **Kawanan Anti-Guntur** — Perlindungan mutex + semaphore terhadap badai percobaan ulang secara bersamaan -- **Combo Fallback Chains** — Jika penyedia utama gagal, otomatis gagal dalam rantai tanpa intervensi -- **Combo Circuit Breaker** — Menonaktifkan secara otomatis penyedia yang gagal dalam rantai kombo -- **Dasbor Kesehatan** — Pemantauan waktu aktif, status pemutus sirkuit, penguncian, statistik cache, latensi p50/p95/p99 - -</details> - -<details> -<summary><b>🔧 7. "Mengonfigurasi setiap alat AI itu membosankan dan berulang-ulang"</b></summary> - -Pengembang menggunakan Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code... Setiap alat memerlukan konfigurasi yang berbeda (titik akhir API, kunci, model). Mengonfigurasi ulang saat berpindah penyedia atau model hanya membuang-buang waktu. - -**Bagaimana OmniRoute menyelesaikannya:** - -- **Dasbor Alat CLI** — Halaman khusus dengan pengaturan sekali klik untuk Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline -- **GitHub Copilot Config Generator** — Menghasilkan `chatLanguageModels.json` untuk VS Code dengan pemilihan model massal -- **Onboarding Wizard** — Panduan penyiapan 4 langkah untuk pengguna pertama kali -- **Satu titik akhir, semua model** — Konfigurasikan `http://localhost:20128/v1` sekali, akses 67+ penyedia - -</details> - -<details> -<summary><b>🔑 8. "Mengelola token OAuth dari banyak penyedia adalah neraka"</b></summary> - -Claude Code, Codex, Gemini CLI, Copilot — semuanya menggunakan OAuth 2.0 dengan token yang kedaluwarsa. Pengembang perlu terus mengautentikasi ulang, menangani `client_secret is missing`, `redirect_uri_mismatch`, dan kegagalan pada server jarak jauh. OAuth pada LAN/VPS sangat bermasalah. - -**Bagaimana OmniRoute menyelesaikannya:** - -- **Penyegaran Token Otomatis** — Penyegaran token OAuth di latar belakang sebelum masa berlakunya habis -- **OAuth 2.0 (PKCE) Bawaan** — Aliran otomatis untuk Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder -- **OAuth Multi-Akun** — Beberapa akun per penyedia melalui ekstraksi token JWT/ID -- **OAuth LAN/Remote Fix** — Deteksi IP pribadi untuk `redirect_uri` + mode URL manual untuk server jarak jauh -- **OAuth Dibalik Nginx** — Menggunakan `window.location.origin` untuk kompatibilitas proxy terbalik -- **Panduan OAuth Jarak Jauh** — Panduan langkah demi langkah untuk kredensial Google Cloud di VPS/Docker - -</details> - -<details> -<summary><b>📊 9. "Saya tidak tahu berapa banyak yang saya belanjakan atau di mana"</b></summary> - -Pengembang menggunakan beberapa penyedia berbayar tetapi tidak memiliki pandangan terpadu mengenai pembelanjaan. Setiap penyedia memiliki dasbor penagihannya sendiri, namun tidak ada tampilan gabungan. Biaya tak terduga bisa menumpuk. - -**Bagaimana OmniRoute menyelesaikannya:** - -- **Dasbor Analisis Biaya** — Pelacakan biaya per token dan pengelolaan anggaran per penyedia -- **Batas Anggaran per Tingkat** — Batas pembelanjaan per tingkat yang memicu penggantian otomatis -- **Konfigurasi Harga Per Model** — Harga per model yang dapat dikonfigurasi -- **Statistik Penggunaan Per Kunci API** — Jumlah permintaan dan stempel waktu terakhir digunakan per kunci -- **Dasbor Analytics** — Kartu statistik, diagram penggunaan model, tabel penyedia dengan tingkat keberhasilan dan latensi - -</details> - -<details> -<summary><b>🐛 10. "Saya tidak dapat mendiagnosis kesalahan dan masalah dalam panggilan AI"</b></summary> - -Saat panggilan gagal, pengembang tidak mengetahui apakah itu batas kecepatan, token kedaluwarsa, format salah, atau kesalahan penyedia. Log terfragmentasi di terminal yang berbeda. Tanpa observabilitas, debugging adalah trial-and-error. - -**Bagaimana OmniRoute menyelesaikannya:** - -- **Dasbor Log Terpadu** — 4 tab: Log Permintaan, Log Proksi, Log Audit, Konsol -- **Penampil Log Konsol** — Penampil gaya terminal real-time dengan level kode warna, gulir otomatis, pencarian, filter -- **Log Proxy SQLite** — Log persisten yang bertahan saat server dimulai ulang -- **Translator Playground** — 4 mode debugging: Playground (terjemahan format), Chat Tester (pulang pergi), Test Bench (batch), Live Monitor (real-time) -- **Telemetri Permintaan** — latensi p50/p95/p99 + penelusuran X-Request-Id -- **Logging Berbasis File dengan Rotasi** — Pencegat konsol menangkap semuanya ke log JSON dengan rotasi berbasis ukuran -- **Laporan Info Sistem** — `npm run system-info` menghasilkan `system-info.txt` dengan lingkungan lengkap Anda (versi Node, versi OmniRoute, OS, alat CLI, status Docker/PM2). Lampirkan saat melaporkan masalah untuk triase instan. - -</details> - -<details> -<summary><b>🏗️ 11. "Menyebarkan dan memelihara gateway itu rumit"</b></summary> - -Menginstal, mengonfigurasi, dan memelihara proksi AI di berbagai lingkungan (lokal, VPS, Docker, cloud) membutuhkan banyak tenaga. Masalah seperti jalur hardcode, `EACCES` pada direktori, konflik port, dan pembangunan lintas platform menambah gesekan. - -**Bagaimana OmniRoute menyelesaikannya:** - -- **instal global npm** — `npm install -g omniroute && omniroute` — selesai -- **Docker Multi-Platform** — asli AMD64 + ARM64 (Apple Silicon, AWS Graviton, Raspberry Pi) -- **Docker Compose Profiles** — `base` (tanpa alat CLI) dan `cli` (dengan Claude Code, Codex, OpenClaw) -- **Aplikasi Desktop Electron** — Aplikasi asli untuk Windows/macOS/Linux dengan baki sistem, mulai otomatis, mode offline -- **Mode Port Terpisah** — API dan Dasbor pada port terpisah untuk skenario tingkat lanjut (proksi terbalik, jaringan kontainer) -- **Cloud Sync** — Konfigurasi sinkronisasi antar perangkat melalui Cloudflare Workers -- **DB Backups** — Pencadangan otomatis, pemulihan, ekspor dan impor semua pengaturan - -</details> - -<details> -<summary><b>🌍 12. "Antarmuka hanya berbahasa Inggris dan tim saya tidak bisa berbahasa Inggris"</b></summary> - -Tim di negara-negara yang tidak berbahasa Inggris, khususnya di Amerika Latin, Asia, dan Eropa, kesulitan dengan antarmuka yang hanya berbahasa Inggris. Hambatan bahasa mengurangi adopsi dan meningkatkan kesalahan konfigurasi. - -**Bagaimana OmniRoute menyelesaikannya:** - -- **Dasbor i18n — 30 Bahasa** — 500+ tombol diterjemahkan termasuk Arab, Bulgaria, Denmark, Jerman, Spanyol, Finlandia, Prancis, Ibrani, Hindi, Hungaria, Indonesia, Italia, Jepang, Korea, Melayu, Belanda, Norwegia, Polandia, Portugis (PT/BR), Rumania, Rusia, Slovakia, Swedia, Thailand, Ukraina, Vietnam, China, Filipina, Inggris -- **Dukungan RTL** — Dukungan kanan ke kiri untuk bahasa Arab dan Ibrani -- **README Multi-Bahasa** — 30 terjemahan dokumentasi lengkap -- **Pemilih Bahasa** — Ikon bola dunia di header untuk peralihan waktu nyata - -</details> - -<details> -<summary><b>🔄 13. "Saya memerlukan lebih dari sekedar chat — saya memerlukan embeddings, gambar, audio"</b></summary> - -AI bukan hanya penyelesaian obrolan. Pengembang perlu membuat gambar, mentranskripsikan audio, membuat penyematan untuk RAG, mengubah peringkat dokumen, dan memoderasi konten. Setiap API memiliki titik akhir dan format yang berbeda. - -**Bagaimana OmniRoute menyelesaikannya:** - -- **Sematan** — `/v1/embeddings` dengan 6 penyedia dan 9+ model -- **Pembuatan Gambar** — `/v1/images/generations` dengan 10 penyedia dan 20+ model (OpenAI, xAI, Together, Fireworks, Nebius, Hyperbolic, NanoBanana, Antigravity, SD WebUI, ComfyUI) -- **Teks-ke-Video** — `/v1/videos/generations` — ComfyUI (AnimateDiff, SVD) dan SD WebUI -- **Teks-ke-Musik** — `/v1/music/generations` — ComfyUI (Audio Terbuka Stabil, MusicGen) -- **Transkripsi Audio** — `/v1/audio/transcriptions` — Whisper + Nvidia NIM, HuggingFace, Qwen3 -- **Text-to-Speech** — `/v1/audio/speech` — ElevenLabs, Nvidia NIM, HuggingFace, Coqui, Tortoise, Qwen3, **Inworld**, **Cartesia**, **PlayHT**, + penyedia yang ada -- **Moderasi** — `/v1/moderations` — Pemeriksaan keamanan konten -- **Pemeringkatan ulang** — `/v1/rerank` — Pemeringkatan ulang relevansi dokumen -- **Respon API** — Dukungan penuh `/v1/responses` untuk Codex - -</details> - -<details> -<summary><b>🧪 14. "Saya tidak punya cara untuk menguji dan membandingkan kualitas antar model"</b></summary> - -Pengembang ingin mengetahui model mana yang terbaik untuk kasus penggunaan mereka — kode, terjemahan, penalaran — tetapi membandingkan secara manual itu lambat. Tidak ada alat evaluasi terintegrasi. - -**Bagaimana OmniRoute menyelesaikannya:** - -- **Evaluasi LLM** — Pengujian set emas dengan 10 kasus yang dimuat sebelumnya yang mencakup salam, matematika, geografi, pembuatan kode, kepatuhan JSON, terjemahan, penurunan harga, penolakan keamanan -- **4 Strategi Pertandingan** — `exact`, `contains`, `regex`, `custom` (fungsi JS) -- **Bangku Tes Taman Bermain Penerjemah** — Pengujian batch dengan banyak masukan dan keluaran yang diharapkan, perbandingan lintas penyedia -- **Penguji Obrolan** — Perjalanan bolak-balik penuh dengan rendering respons visual -- **Monitor Langsung** — Aliran real-time dari semua permintaan yang mengalir melalui proxy - -</details> - -<details> -<summary><b>📈 15. "Saya perlu meningkatkan skala tanpa kehilangan performa"</b></summary> - -Seiring bertambahnya volume permintaan, tanpa menyimpan pertanyaan yang sama akan menghasilkan biaya duplikat. Tanpa idempotensi, permintaan duplikat akan membuang-buang pemrosesan. Batasan tarif per penyedia harus dipatuhi. - -**Bagaimana OmniRoute menyelesaikannya:** - -- **Cache Semantik** — Cache dua tingkat (tanda tangan + semantik) mengurangi biaya dan latensi -- **Request Idempoency** — Jendela deduplikasi 5 detik untuk permintaan yang identik -- **Deteksi Batas Tarif** — RPM per penyedia, selisih minimum, dan pelacakan serentak maks -- **Batas Nilai yang Dapat Diedit** — Default yang dapat dikonfigurasi di Pengaturan → Ketahanan dengan persistensi -- **Cache Validasi Kunci API** — cache 3 tingkat untuk kinerja produksi -- **Dasbor Kesehatan dengan Telemetri** — latensi p50/p95/p99, statistik cache, waktu aktif - -</details> - -<details> -<summary><b>🤖 16. "Saya ingin mengontrol perilaku model secara global"</b></summary> - -Pengembang yang menginginkan semua respons dalam bahasa tertentu, dengan nada tertentu, atau ingin membatasi token penalaran. Mengonfigurasi ini di setiap alat/permintaan tidak praktis. - -**Bagaimana OmniRoute menyelesaikannya:** - -- **Injeksi Perintah Sistem** — Perintah global diterapkan ke semua permintaan -- **Validasi Anggaran Berpikir** — Kontrol alokasi token penalaran per permintaan (passthrough, otomatis, kustom, adaptif) -- **6 Strategi Perutean** — Strategi global yang menentukan cara permintaan didistribusikan -- **Wildcard Router** — pola `provider/*` merutekan secara dinamis ke penyedia mana pun -- **Combo Aktifkan/Nonaktifkan Toggle** — Beralih kombo langsung dari dasbor -- **Toggle Penyedia** — Mengaktifkan/menonaktifkan semua koneksi untuk penyedia dengan satu klik -- **Penyedia yang Diblokir** — Kecualikan penyedia tertentu dari daftar `/v1/models` - -</details> - -<details> -<summary><b>🧰 17. "Saya membutuhkan alat MCP sebagai kemampuan produk kelas satu"</b></summary> - -Banyak gateway AI yang mengekspos MCP hanya sebagai detail implementasi yang tersembunyi. Tim memerlukan lapisan operasi yang terlihat dan dapat dikelola. - -**Bagaimana OmniRoute menyelesaikannya:** - -- MCP muncul di navigasi dasbor dan tab protokol titik akhir -- Halaman manajemen MCP khusus dengan proses, alat, cakupan, dan audit -- Mulai cepat bawaan untuk `omniroute --mcp` dan orientasi klien - -</details> - -<details> -<summary><b>🧠 18. "Saya memerlukan orkestrasi A2A dengan jalur tugas sinkronisasi + aliran"</b></summary> - -Alur kerja agen memerlukan balasan langsung dan eksekusi streaming jangka panjang dengan kontrol siklus hidup. - -**Bagaimana OmniRoute menyelesaikannya:** - -- Titik akhir A2A JSON-RPC (`POST /a2a`) dengan `message/send` dan `message/stream` -- Streaming SSE dengan propagasi status terminal -- API siklus hidup tugas untuk `tasks/get` dan `tasks/cancel` - -</details> - -<details> -<summary><b>🛰️ 19. "Saya membutuhkan kesehatan proses MCP yang nyata, bukan status yang dapat ditebak"</b></summary> - -Tim operasional perlu mengetahui apakah MCP benar-benar aktif, bukan hanya apakah API dapat dijangkau. - -**Bagaimana OmniRoute menyelesaikannya:** - -- File detak jantung runtime dengan PID, stempel waktu, transportasi, jumlah alat, dan mode cakupan -- API status MCP menggabungkan detak jantung + aktivitas terkini -- Kartu status UI untuk kesegaran proses/waktu aktif/detak jantung - -</details> - -<details> -<summary><b>📋 20. "Saya memerlukan eksekusi alat MCP yang dapat diaudit"</b></summary> - -Saat alat mengubah konfigurasi atau memicu tindakan operasi, tim memerlukan kemampuan penelusuran forensik. - -**Bagaimana OmniRoute menyelesaikannya:** - -- Pencatatan audit yang didukung SQLite untuk panggilan alat MCP -- Filter berdasarkan alat, keberhasilan/kegagalan, kunci API, dan penomoran halaman -- Tabel audit dasbor + titik akhir statistik untuk otomatisasi - -</details> - -<details> -<summary><b>🔐 21. "Saya memerlukan izin MCP terbatas per integrasi"</b></summary> - -Klien yang berbeda harus memiliki akses dengan hak istimewa paling rendah ke kategori alat. - -**Bagaimana OmniRoute menyelesaikannya:** - -- 9 cakupan MCP granular untuk akses alat terkontrol -- Penegakan cakupan dan visibilitas di UI manajemen MCP -- Postur default yang aman untuk perkakas operasional - -</details> - -<details> -<summary><b>⚙️ 22. "Saya memerlukan kontrol operasional tanpa memindahkan"</b></summary> - -Tim memerlukan perubahan runtime yang cepat selama insiden atau peristiwa biaya. - -**Bagaimana OmniRoute menyelesaikannya:** - -- Beralih aktivasi kombo langsung dari dasbor MCP -- Menerapkan profil ketahanan dari paket kebijakan yang telah ditentukan sebelumnya -- Reset status pemutus sirkuit dari panel operasi yang sama - -</details> - -<details> -<summary><b>🔄 23. "Saya memerlukan visibilitas dan pembatalan siklus hidup tugas A2A langsung"</b></summary> - -Tanpa visibilitas siklus hidup, insiden tugas menjadi sulit untuk diprioritaskan. - -**Bagaimana OmniRoute menyelesaikannya:** - -- Daftar tugas/pemfilteran berdasarkan status/keterampilan dengan penomoran halaman -- Telusuri metadata tugas, peristiwa, dan artefak -- Titik akhir pembatalan tugas dan tindakan UI dengan konfirmasi - -</details> - -<details> -<summary><b>🌊 24. "Saya memerlukan metrik aliran aktif untuk memuat A2A"</b></summary> - -Alur kerja streaming memerlukan wawasan operasional tentang konkurensi dan koneksi langsung. - -**Bagaimana OmniRoute menyelesaikannya:** - -- Penghitung aliran aktif terintegrasi ke dalam status A2A -- Stempel waktu tugas terakhir dan jumlah per negara bagian -- Kartu dasbor A2A untuk pemantauan operasi waktu nyata - -</details> - -<details> -<summary><b>🪪 25. "Saya memerlukan penemuan agen standar untuk klien"</b></summary> - -Klien dan orkestra eksternal memerlukan metadata yang dapat dibaca mesin untuk orientasi. - -**Bagaimana OmniRoute menyelesaikannya:** - -- Kartu Agen terungkap di `/.well-known/agent.json` -- Kemampuan dan keterampilan yang ditunjukkan dalam manajemen UI -- API status A2A mencakup metadata penemuan untuk otomatisasi - -</details> - -<details> -<summary><b>🧭 26. "Saya memerlukan protokol yang dapat ditemukan di UX produk"</b></summary> - -Jika pengguna tidak dapat menemukan permukaan protokol, kualitas adopsi dan dukungan akan menurun. - -**Bagaimana OmniRoute menyelesaikannya:** - -- Halaman **Endpoint** terkonsolidasi dengan tab untuk Proxy, MCP, A2A, dan API Endpoints -- Pengalih status layanan inline (Online/Offline) untuk MCP dan A2A -- Tautan dari ikhtisar ke tab manajemen khusus - -</details> - -<details> -<summary><b>🧪 27. "Saya memerlukan validasi protokol end-to-end dengan klien nyata"</b></summary> - -Tes tiruan tidak cukup untuk memvalidasi kompatibilitas protokol sebelum rilis. - -**Bagaimana OmniRoute menyelesaikannya:** - -- Suite E2E yang mem-boot aplikasi dan menggunakan transportasi klien MCP SDK yang sebenarnya -- Klien A2A menguji penemuan, pengiriman, streaming, dapatkan, dan pembatalan aliran -- Periksa silang pernyataan terhadap audit MCP dan API tugas A2A - -</details> - -<details> -<summary><b>📡 28. "Saya memerlukan observabilitas terpadu di semua antarmuka"</b></summary> - -Memisahkan observabilitas berdasarkan protokol menciptakan titik buta dan MTTR yang lebih panjang. - -**Bagaimana OmniRoute menyelesaikannya:** - -- Dasbor/log/analitik terpadu dalam satu produk -- Kesehatan + audit + permintaan telemetri di seluruh lapisan OpenAI, MCP, dan A2A -- API Operasional untuk status dan otomatisasi - -</details> - -<details> -<summary><b>💼 29. "Saya memerlukan satu runtime untuk proxy + alat + orkestrasi agen"</b></summary> - -Menjalankan banyak layanan terpisah akan meningkatkan biaya operasional dan mode kegagalan. - -**Bagaimana OmniRoute menyelesaikannya:** - -- Proksi yang kompatibel dengan OpenAI, server MCP, dan server A2A dalam satu tumpukan -- Otentikasi bersama, ketahanan, penyimpanan data, dan kemampuan observasi -- Model kebijakan yang konsisten di seluruh platform interaksi - -</details> - -<details> -<summary><b>🚀 30. "Saya perlu mengirimkan alur kerja agen tanpa gepeng kode lem"</b></summary> - -Tim kehilangan kecepatan saat menggabungkan beberapa layanan dan skrip ad-hoc. - -**Bagaimana OmniRoute menyelesaikannya:** - -- Strategi titik akhir terpadu untuk klien dan agen -- UI manajemen protokol bawaan dan jalur validasi asap -- Fondasi siap produksi (keamanan, logging, ketahanan, cadangan) - -</details> - -### Contoh Playbook (Kasus Penggunaan Terintegrasi) - -**Playbook A: Maksimalkan langganan berbayar + cadangan murah** - -```txt -Combo: "maximize-claude" - 1. cc/claude-opus-4-6 - 2. glm/glm-4.7 - 3. if/kimi-k2-thinking - -Monthly cost: $20 + small backup spend -Outcome: higher quality, near-zero interruption -``` - -**Playbook B: Tumpukan coding tanpa biaya** - -```txt -Combo: "free-forever" - 1. gc/gemini-3-flash - 2. if/kimi-k2-thinking - 3. qw/qwen3-coder-plus - -Monthly cost: $0 -Outcome: stable free coding workflow -``` - -**Playbook C: Rantai fallback yang selalu aktif 24/7** - -```txt -Combo: "always-on" - 1. cc/claude-opus-4-6 - 2. cx/gpt-5.2-codex - 3. glm/glm-4.7 - 4. minimax/MiniMax-M2.1 - 5. if/kimi-k2-thinking - -Outcome: deep fallback depth for deadline-critical workloads -``` - -**Playbook D: Operasi agen dengan MCP + A2A** - -```txt -1) Start MCP transport (`omniroute --mcp`) for tool-driven operations -2) Run A2A tasks via `message/send` and `message/stream` -3) Observe via /dashboard/endpoint (MCP and A2A tabs) -4) Toggle services via inline status controls -``` - ---- - -## 🆓 Mulai Gratis — Tanpa Biaya Konfigurasi - -> Siapkan pengkodean AI dalam hitungan menit di **$0/bulan**. Hubungkan akun gratis ini dan gunakan kombo **Free Stack** bawaan. - -| Langkah | Aksi | Penyedia Tidak Terkunci | -| ------- | ------------------------------------------------------ | ------------------------------------------------------------------------ | -| 1 | Hubungkan **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — **tidak terbatas** | -| 2 | Hubungkan **Qoder** (Google OAuth) | pemikiran kimi-k2, qwen3-coder-plus, deepseek-r1... — **tidak terbatas** | -| 3 | Hubungkan **Qwen** (Kode Perangkat) | qwen3-coder-plus, qwen3-coder-flash... — **tidak terbatas** | -| 4 | Hubungkan **Gemini CLI** (Google OAuth) | gemini-3-flash, gemini-2.5-pro — **180K/bln gratis** | -| 5 | `/dashboard/combos` → **Templat Tumpukan Gratis ($0)** | Round-robin semua penyedia gratis secara otomatis | - -**Arahkan IDE/CLI apa pun ke:** `http://localhost:20128/v1` · Kunci API: `any-string` · Selesai. - -> **Cakupan ekstra opsional (juga gratis):** Kunci API Groq (gratis 30 RPM), NVIDIA NIM (gratis 40 RPM, 70+ model), Cerebras (1 juta tok/hari), kunci API LongCat (50 juta token/hari!), Cloudflare Workers AI (10 ribu neuron/hari, 50+ model). - -## ⚡ Mulai Cepat - -### 1) Instal dan jalankan - -```bash -npm install -g omniroute -omniroute -``` - -> **pengguna pnpm:** Jalankan `pnpm approve-builds -g` setelah instalasi untuk mengaktifkan skrip build asli yang diperlukan oleh `better-sqlite3` dan `@swc/core`: -> -> ```bash -> pnpm install -g omniroute -> pnpm approve-builds -g # Select all packages → approve -> omniroute -> ``` - -Dasbor terbuka di `http://localhost:20128` dan URL dasar API adalah `http://localhost:20128/v1`. - -| Perintah | Deskripsi | -| ----------------------- | --------------------------------------------------------------- | -| `omniroute` | Mulai server (`PORT=20128`, API dan dasbor pada port yang sama) | -| `omniroute --port 3000` | Setel port kanonik/API ke 3000 | -| `omniroute --mcp` | Mulai server MCP (stdio transport) | -| `omniroute --no-open` | Jangan buka otomatis browser | -| `omniroute --help` | Tampilkan bantuan | - -Mode port terpisah opsional: - -```bash -PORT=20128 DASHBOARD_PORT=20129 omniroute -# API: http://localhost:20128/v1 -# Dashboard: http://localhost:20129 -``` - -### 2) Hubungkan penyedia dan buat kunci API Anda - -1. Buka Dasbor → `Providers` dan sambungkan setidaknya satu penyedia (OAuth atau kunci API). -2. Buka Dasbor → `Endpoints` dan buat kunci API. -3. (Opsional) Buka Dasbor → `Combos` dan atur rantai cadangan Anda. - -### 3) Arahkan alat pengkodean Anda ke OmniRoute - -```txt -Base URL: http://localhost:20128/v1 -API Key: [copy from Endpoint page] -Model: if/kimi-k2-thinking (or any provider/model prefix) -``` - -Bekerja dengan Claude Code, Codex CLI, Gemini CLI, Cursor, Cline, OpenClaw, OpenCode, dan SDK yang kompatibel dengan OpenAI. - -### 4) Mengaktifkan dan memvalidasi protokol (v2.0) - -**MCP (untuk operasi yang digerakkan oleh alat):** - -```bash -omniroute --mcp -``` - -Kemudian sambungkan klien MCP Anda melalui `stdio` dan uji alat seperti: - -- `omniroute_get_health` -- `omniroute_list_combos` - -**A2A (untuk alur kerja agen-ke-agen):** - -```bash -curl http://localhost:20128/.well-known/agent.json -``` - -```bash -curl -X POST http://localhost:20128/a2a \ - -H 'content-type: application/json' \ - -d '{"jsonrpc":"2.0","id":"quickstart","method":"message/send","params":{"skill":"quota-management","messages":[{"role":"user","content":"Give me a short quota summary."}]}}' -``` - -### 5) Validasi semuanya secara end-to-end (disarankan) - -```bash -npm run test:protocols:e2e -``` - -Suite ini memvalidasi alur klien MCP dan A2A yang sebenarnya terhadap aplikasi yang sedang berjalan. - -### Alternatif: dijalankan dari sumber - -```bash -cp .env.example .env -npm install -PORT=20128 DASHBOARD_PORT=20129 NEXT_PUBLIC_BASE_URL=http://localhost:20129 npm run dev -``` - ---- - -## 🐳 buruh pelabuhan - -OmniRoute tersedia sebagai image Docker publik di [Docker Hub](https://hub.docker.com/r/diegosouzapw/omniroute). - -**Lari cepat:** - -```bash -docker run -d \ - --name omniroute \ - --restart unless-stopped \ - -p 20128:20128 \ - -v omniroute-data:/app/data \ - diegosouzapw/omniroute:latest -``` - -**Dengan file lingkungan:** - -```bash -# Copy and edit .env first -cp .env.example .env - -docker run -d \ - --name omniroute \ - --restart unless-stopped \ - --env-file .env \ - -p 20128:20128 \ - -v omniroute-data:/app/data \ - diegosouzapw/omniroute:latest -``` - -**Menggunakan Docker Tulis:** - -```bash -# Base profile (no CLI tools) -docker compose --profile base up -d - -# CLI profile (Claude Code, Codex, OpenClaw built-in) -docker compose --profile cli up -d -``` - -| Gambar | Tandai | Ukuran | Deskripsi | -| ------------------------ | -------- | ------- | -------------------- | -| `diegosouzapw/omniroute` | `latest` | ~250MB | Rilis stabil terbaru | -| `diegosouzapw/omniroute` | `1.0.3` | ~250 MB | Versi saat ini | - ---- - -## 🖥️ Aplikasi Desktop — Offline & Selalu Aktif - -> 🆕 **BARU!** OmniRoute kini tersedia sebagai **aplikasi desktop asli** untuk Windows, macOS, dan Linux. - -Jalankan OmniRoute sebagai aplikasi desktop mandiri — tanpa terminal, tanpa browser, tanpa internet untuk model lokal. Aplikasi berbasis Electron meliputi: - -- 🖥️ **Jendela Asli** — Jendela aplikasi khusus dengan integrasi baki sistem -- 🔄 **Mulai Otomatis** — Luncurkan OmniRoute saat login sistem -- 🔔 **Pemberitahuan Asli** — Dapatkan peringatan jika kuota habis atau masalah penyedia -- ⚡ **Instal Sekali Klik** — NSIS (Windows), DMG (macOS), AppImage (Linux) -- 🌐 **Mode Offline** — Bekerja sepenuhnya offline dengan server yang dibundel - -### Mulai Cepat - -```bash -# Development mode -npm run electron:dev - -# Build for your platform -npm run electron:build # Current platform -npm run electron:build:win # Windows (.exe) -npm run electron:build:mac # macOS (.dmg) — x64 & arm64 -npm run electron:build:linux # Linux (.AppImage) -``` - -### Baki Sistem - -Saat diminimalkan, OmniRoute ada di baki sistem Anda dengan tindakan cepat: - -- Buka dasbor -- Ubah port server -- Keluar dari aplikasi - -📖 Dokumentasi lengkap: [**OMNI_TOKEN_153**](electron/README.md) - ---- - -## 💰 Sekilas tentang Harga - -| Tingkat | Penyedia | Biaya | Reset Kuota | Terbaik Untuk | -| ------------------- | --------------------------- | ----------------------------------- | ------------------------- | ---------------------------------------- | -| **💳 BERLANGGANAN** | Kode Claude (Pro) | $20/bln | 5 jam + mingguan | Sudah berlangganan | -| | Kodeks (Plus/Pro) | $20-200/bln | 5 jam + mingguan | Pengguna OpenAI | -| | CLI Gemini | **GRATIS** | 180K/bln + 1K/hari | Setiap orang! | -| | Kopilot GitHub | $10-19/bln | Bulanan | Pengguna GitHub | -| **🔑 KUNCI API** | NVIDIA NIM | **GRATIS** (pengembangan selamanya) | ~40 RPM | 70+ model terbuka | -| | Otak | **GRATIS** (1 juta tok/hari) | 60K TPM / 30 RPM | Tercepat di dunia | -| | Bagus | **GRATIS** (30 RPM) | RPD 14,4K | Llama/Gemma ultra-cepat | -| | DeepSeek V3.2 | $0,27/$1,10 per 1 juta | Tidak ada | Alasan harga/kualitas terbaik | -| | xAI Grok-4 Cepat | **$0,20/$0,50 per 1 juta** 🆕 | Tidak ada | Panggilan alat + tercepat, sangat rendah | -| | xAI Grok-4 (standar) | $0,20/$1,50 per 1 juta 🆕 | Tidak ada | Penalaran andalan dari xAI | -| | Mistral | Uji coba gratis + berbayar | Tarif terbatas | AI Eropa | -| | BukaRouter | Bayar per penggunaan | Tidak ada | 100+ model agr. | -| **💰 MURAH** | GLM-5 (melalui Z.AI) 🆕 | $0,5/1 juta | Setiap hari pukul 10 pagi | Output 128K, andalan terbaru | -| | GLM-4.7 | $0,6/1 juta | Setiap hari pukul 10 pagi | Cadangan anggaran | -| | MiniMax M2.5 🆕 | masukan $0,3/1 juta | 5 jam bergulir | Penalaran + tugas agen | -| | MiniMax M2.1 | $0,2/1 juta | 5 jam bergulir | Pilihan termurah | -| | Kimi K2.5 (API Moonshot) 🆕 | Bayar per penggunaan | Tidak ada | Akses langsung Moonshot API | -| | Kimi K2 | $9/bln tetap | 10 juta token/bln | Biaya yang dapat diprediksi | -| **🆓 GRATIS** | Qoder | **$0** | Tidak terbatas | 5 model tidak terbatas | -| | Qwen | **$0** | Tidak terbatas | 4 model tidak terbatas | -| | Kiro | **$0** | Tidak terbatas | Claude Soneta/Haiku (Pembuat AWS) | -| | LongCat Flash-Lite 🆕 | **$0** (50 juta tok/hari 🔥) | 1RPS | Kuota gratis terbesar di dunia | -| | Penyerbukan AI 🆕 | **$0** (tidak perlu kunci) | 1 permintaan/15 detik | GPT-5, Claude, DeepSeek, Llama 4 | -| | AI Pekerja Cloudflare 🆕 | **$0** (10K Neuron/hari) | ~150 repetisi/hari | 50+ model, keunggulan global | -| | Scaleway AI 🆕 | **$0** (total 1 juta token) | Tarif terbatas | UE/GDPR, Qwen3 235B, Llama 70B | - -> 🆕 **Model baru ditambahkan (Mar 2026):** Keluarga Grok-4 Fast seharga $0,20/$0,50/M (dibandingkan pada 1143ms — 30% lebih cepat dari Gemini 2.5 Flash), GLM-5 melalui Z.AI dengan output 128K, penalaran MiniMax M2.5, harga DeepSeek V3.2 yang diperbarui, Kimi K2.5 melalui API langsung Moonshot. - -**💡 Tumpukan Kombo $0 — Penyiapan Gratis Lengkap:** - -``` -# 🆓 Ultimate Free Stack 2026 — 11 Providers, $0 Forever -Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED -LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 -Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed -Qwen (qw/) → qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next UNLIMITED -Gemini (gemini/) → Gemini 2.5 Flash — 1,500 req/day free API key -Cloudflare AI (cf/) → Llama 70B, Gemma 3, Mistral — 10K Neurons/day -Scaleway (scw/) → Qwen3 235B, Llama 70B — 1M free tokens (EU) -Groq (groq/) → Llama/Gemma ultra-fast — 14.4K req/day -NVIDIA NIM (nvidia/) → 70+ open models — 40 RPM forever -Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day -``` - -**Tanpa biaya. Jangan pernah berhenti melakukan pengkodean.** Konfigurasikan ini sebagai satu kombo OmniRoute dan semua fallback terjadi secara otomatis — tidak pernah ada peralihan manual. - ---- - ---- - -## 🆓 Model Gratis — Apa yang Sebenarnya Anda Dapatkan - -> Semua model di bawah **100% gratis tanpa memerlukan kartu kredit**. OmniRoute melakukan rute otomatis di antara keduanya ketika satu kuota habis — gabungkan semuanya untuk kombo $0 yang tidak dapat dipecahkan. - -### 🔵 MODEL CLAUDE (melalui Kiro — ID AWS Builder) - -| Model | Awalan | Batasi | Batas Tarif | -| ------------------- | ------ | ------------------ | -------------------------------------- | -| `claude-sonnet-4.5` | `kr/` | **Tidak terbatas** | Tidak ada batas harian yang dilaporkan | -| `claude-haiku-4.5` | `kr/` | **Tidak terbatas** | Tidak ada batas harian yang dilaporkan | -| `claude-opus-4.6` | `kr/` | **Tidak terbatas** | Opus Terbaru melalui Kiro | - -### 🟢 MODEL QODER (OAuth Gratis — Tanpa Kartu Kredit) - -| Model | Awalan | Batasi | Batas Tarif | -| ------------------ | ------ | ------------------ | ------------------------------- | -| `kimi-k2-thinking` | `if/` | **Tidak terbatas** | Tidak ada batas yang dilaporkan | -| `qwen3-coder-plus` | `if/` | **Tidak terbatas** | Tidak ada batas yang dilaporkan | -| `deepseek-r1` | `if/` | **Tidak terbatas** | Tidak ada batas yang dilaporkan | -| `minimax-m2.1` | `if/` | **Tidak terbatas** | Tidak ada batas yang dilaporkan | -| `kimi-k2` | `if/` | **Tidak terbatas** | Tidak ada batas yang dilaporkan | - -### 🟡 MODEL QWEN (Otentikasi Kode Perangkat) - -| Model | Awalan | Batasi | Batas Tarif | -| ------------------- | ------ | ------------------ | ------------------------------- | -| `qwen3-coder-plus` | `qw/` | **Tidak terbatas** | Tidak ada batas yang dilaporkan | -| `qwen3-coder-flash` | `qw/` | **Tidak terbatas** | Tidak ada batas yang dilaporkan | -| `qwen3-coder-next` | `qw/` | **Tidak terbatas** | Tidak ada batas yang dilaporkan | -| `vision-model` | `qw/` | **Tidak terbatas** | Multimodal (gambar) | - -### 🟣 GEMINI CLI (Google OAuth) - -| Model | Awalan | Batasi | Batas Tarif | -| ------------------------ | ------ | ------------------------------ | --------------- | -| `gemini-3-flash-preview` | `gc/` | **180rb tok/bulan** + 1rb/hari | Reset bulanan | -| `gemini-2.5-pro` | `gc/` | 180K/bulan (kolam bersama) | Kualitas tinggi | - -### ⚫ NVIDIA NIM (Kunci API Gratis — build.nvidia.com) - -| Tingkat | Batas Harian | Batas Tarif | Catatan | -| --------------------- | ----------------------- | ----------- | -------------------------------------------------------------------- | -| Gratis (Pengembangan) | Tidak ada batasan token | **~40 RPM** | 70+ model; transisi ke batas tarif murni pada pertengahan tahun 2025 | - -Model gratis populer: `moonshotai/kimi-k2.5` (Kimi K2.5), `z-ai/glm4.7` (GLM 4.7), `deepseek-ai/deepseek-v3.2` (DeepSeek V3.2), `nvidia/llama-3.3-70b-instruct`, `deepseek/deepseek-r1` - -### ⚪ CEREBRAS (Kunci API Gratis — inference.cerebras.ai) - -| Tingkat | Batas Harian | Batas Tarif | Catatan | -| ------- | --------------------- | ---------------- | ---------------------------------------------------------- | -| Gratis | **1 juta token/hari** | 60K TPM / 30 RPM | Inferensi LLM tercepat di dunia; disetel ulang setiap hari | - -Tersedia gratis: `llama-3.3-70b`, `llama-3.1-8b`, `deepseek-r1-distill-llama-70b` - -### 🔴 GROQ (Kunci API Gratis — console.groq.com) - -| Tingkat | Batas Harian | Batas Tarif | Catatan | -| ------- | ------------- | ---------------- | ------------------------------------------------------------- | -| Gratis | **RPD 14,4K** | 30 RPM per model | Tidak ada kartu kredit; 429 pada batas, tidak dikenakan biaya | - -Tersedia gratis: `llama-3.3-70b-versatile`, `gemma2-9b-it`, `mixtral-8x7b`, `whisper-large-v3` - -### 🔴 LONGCAT AI (Kunci API Gratis — longcat.chat) 🆕 - -| Model | Awalan | Kuota Gratis Harian | Catatan | -| ----------------------------- | ------ | -------------------- | ------------------------------------- | -| `LongCat-Flash-Lite` | `lc/` | **50 juta token** 💥 | Kuota gratis terbesar yang pernah ada | -| `LongCat-Flash-Chat` | `lc/` | 500 ribu token | Obrolan multi-putaran | -| `LongCat-Flash-Thinking` | `lc/` | 500 ribu token | Penalaran / CoT | -| `LongCat-Flash-Thinking-2601` | `lc/` | 500 ribu token | Versi Jan 2026 | -| `LongCat-Flash-Omni-2603` | `lc/` | 500 ribu token | Multimoda | - -> 100% gratis saat dalam versi beta publik. Daftar di [longcat.chat](https://longcat.chat) dengan email atau telepon. Reset setiap hari pukul 00:00 UTC. - -### 🟢 POLLINASI AI (Tidak Perlu Kunci API) 🆕 - -| Model | Awalan | Batas Tarif | Penyedia Dibalik | -| ---------- | ------ | --------------------- | -------------------- | -| `openai` | `pol/` | 1 permintaan/15 detik | GPT-5 | -| `claude` | `pol/` | 1 permintaan/15 detik | Claude Antropik | -| `gemini` | `pol/` | 1 permintaan/15 detik | Google Gemini | -| `deepseek` | `pol/` | 1 permintaan/15 detik | Pencarian Dalam V3 | -| `llama` | `pol/` | 1 permintaan/15 detik | Meta Llama 4 Pramuka | -| `mistral` | `pol/` | 1 permintaan/15 detik | AI Mistral | - -> ✨ **Tanpa gesekan:** Tanpa pendaftaran, tanpa kunci API. Tambahkan penyedia Penyerbukan dengan bidang kunci kosong dan itu langsung berfungsi. - -### 🟠 AI CLOUDFLARE WORKERS (Kunci API Gratis — cloudflare.com) 🆕 - -| Tingkat | Neuron Harian | Penggunaan Setara | Catatan | -| ------- | ------------- | --------------------------------------------------- | ---------------------------- | -| Gratis | **10.000** | ~150 respons LLM / audio 500 detik / penyematan 15K | Keunggulan global, 50+ model | - -Model gratis populer: `@cf/meta/llama-3.3-70b-instruct`, `@cf/google/gemma-3-12b-it`, `@cf/openai/whisper-large-v3-turbo` (audio gratis!), `@cf/qwen/qwen2.5-coder-15b-instruct` - -> Membutuhkan Token API + ID Akun dari [dash.cloudflare.com](https://dash.cloudflare.com). Simpan ID Akun di pengaturan penyedia. - -### 🟣 SCALEWAY AI (1 Juta Token Gratis — scaleway.com) 🆕 - -| Tingkat | Kuota Gratis | Lokasi | Catatan | -| ------- | ---------------- | ------------ | ------------------------------------------- | -| Gratis | **1 juta token** | 🇫🇷 Paris, UE | Tidak diperlukan kartu kredit dalam batasan | - -Tersedia gratis: `qwen3-235b-a22b-instruct-2507` (Qwen3 235B!), `llama-3.1-70b-instruct`, `mistral-small-3.2-24b-instruct-2506`, `deepseek-v3-0324` - -> Sesuai dengan UE/GDPR. Dapatkan kunci API di [console.scaleway.com](https://console.scaleway.com). - -> **💡 Tumpukan Gratis Terbaik (11 Penyedia, $0 Selamanya):** -> -> ``` -> Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -> Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED -> LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 -> Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed -> Qwen (qw/) → qwen3-coder models UNLIMITED -> Gemini (gemini/) → Gemini 2.5 Flash — 1,500 req/day free -> Cloudflare AI (cf/) → 50+ models — 10K Neurons/day -> Scaleway (scw/) → Qwen3 235B, Llama 70B — 1M free tokens (EU) -> Groq (groq/) → Llama/Gemma — 14.4K req/day ultra-fast -> NVIDIA NIM (nvidia/) → 70+ open models — 40 RPM forever -> Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day -> ``` - -## 🎙️ Kombo Transkripsi Gratis - -> Transkripsikan audio/video apa pun seharga **$0** — Deepgram memimpin dengan $200 gratis, penggantian AssemblyAI $50, Groq Whisper sebagai cadangan darurat tanpa batas. - -| Penyedia | Kredit Gratis | Model Terbaik | Batas Tarif | -| ------------------ | --------------------------- | -------------------------------------- | ---------------------------------------- | -| 🟢 **Deepgram** | **$200 gratis** (mendaftar) | `nova-3` — akurasi terbaik, 30+ bahasa | Tidak ada batasan RPM pada kredit gratis | -| 🔵 **PerakitanAI** | **$50 gratis** (mendaftar) | `universal-3-pro` — bab, sentimen, PII | Tidak ada batasan RPM pada kredit gratis | -| 🔴 **Groq** | **Gratis selamanya** | `whisper-large-v3` — Bisikan OpenAI | 30 RPM (tarif terbatas) | - -**Kombo yang disarankan di `/dashboard/combos`:** - -``` -Name: free-transcription -Strategy: Priority -Nodes: - [1] deepgram/nova-3 → uses $200 free first - [2] assemblyai/universal-3-pro → fallback when Deepgram credits run out - [3] groq/whisper-large-v3 → free forever, emergency fallback -``` - -Kemudian di tab `/dashboard/media` → **Transkripsi**: unggah file audio atau video apa pun → pilih titik akhir kombo Anda → dapatkan transkripsi dalam format yang didukung. - -## 💡 Fitur Utama - -OmniRoute v2.0 dibangun sebagai platform operasional, bukan hanya proxy relai. - -### 🆕 Baru — Peningkatan yang Terinspirasi ClawRouter (Mar 2026) - -| Fitur | Apa Fungsinya | -| --------------------------------------- | ----------------------------------------------------------------------------------------------------------- | -| ⚡ **Keluarga Cepat Grok-4** | model xAI seharga $0,20/$0,50/M — dengan benchmark 1143ms (30% lebih cepat dari Gemini 2.5 Flash) | -| 🧠 **GLM-5 melalui Z.AI** | Konteks keluaran 128 ribu, $0,5/1 juta — andalan terbaru dari keluarga GLM | -| 🔮 **MiniMax M2.5** | Penalaran + tugas agen seharga $0,30/1 juta — peningkatan signifikan dari M2.1 | -| 🎯 **alat Memanggil Bendera per Model** | Per model `toolCalling: true/false` di registri — AutoCombo melewatkan model yang tidak mendukung alat | -| 🌍 **Deteksi Niat Multibahasa** | Kata kunci PT/ZH/ES/AR dalam penilaian AutoCombo — pemilihan model yang lebih baik untuk konten non-Inggris | -| 📊 **Fallback Berdasarkan Tolok Ukur** | Latensi p95 nyata dari penilaian kombo umpan permintaan langsung — AutoCombo belajar dari data aktual | -| 🔁 **Minta Deduplikasi** | Jendela dedup berbasis hash konten — aman untuk multi-agen, mencegah biaya duplikat | -| 🔌 **Strategi Router Pluggable** | Antarmuka `RouterStrategy` yang dapat diperluas — tambahkan logika perutean khusus sebagai plugin | - -### 🚀 Sebelumnya v2.0.9+ — Taman bermain, Sidik Jari CLI & ACP - -| Fitur | Apa Fungsinya | -| ----------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 🎮 **Model Taman Bermain** | Halaman dasbor untuk menguji model apa pun secara langsung — pemilih penyedia/model/titik akhir, Editor Monaco, streaming, batalkan, pengaturan waktu | -| 🔏 **Pencocokan Sidik Jari CLI** | Pengurutan header/isi per penyedia agar sesuai dengan tanda tangan CLI asli — alihkan per penyedia di Pengaturan > Keamanan. **IP proxy Anda dipertahankan** | -| 🤝 **Dukungan ACP (Protokol Klien Agen)** | Penemuan agen CLI (Codex, Claude, Goose, Gemini CLI, OpenClaw + 9 lainnya), pemijahan proses, titik akhir `/api/acp/agents` | -| 🤖 **Dasbor Agen ACP** | Debug › Halaman agen — kisi 14 agen dengan status pemasangan, versi, formulir agen khusus untuk alat CLI apa pun. Pengguna **OpenCode** mendapatkan tombol "Unduh opencode.json" yang secara otomatis menghasilkan konfigurasi siap pakai dengan semua model yang tersedia. | -| 🔧 **Perutean Model Khusus `apiFormat`** | Model khusus dengan `apiFormat: "responses"` sekarang dirutekan dengan benar ke penerjemah Responses API | -| 🏢 **Isolasi Ruang Kerja Codex** | Beberapa ruang kerja Codex per email — OAuth memisahkan koneksi dengan benar berdasarkan ID ruang kerja | -| 🔄 **Pembaruan Otomatis Elektron** | Aplikasi desktop memeriksa pembaruan + instal otomatis saat restart | - -### 🤖 Operasi Agen & Protokol (v2.0) - -| Fitur | Apa Fungsinya | -| ------------------------------------------ | ------------------------------------------------------------------------------------------------------------- | -| 🔧 **Server MCP (16 alat)** | Alat IDE/agen melalui 3 transport: stdio, SSE (`/api/mcp/sse`), HTTP yang Dapat Dialirkan (`/api/mcp/stream`) | -| 🤝 **Server A2A (JSON-RPC + SSE)** | Eksekusi tugas agen-ke-agen dengan aliran sinkronisasi dan streaming | -| 🧭 **Halaman Titik Akhir Konsolidasi** | Halaman manajemen bertab dengan tab Endpoint Proxy, MCP, A2A, dan API Endpoints | -| 🎚️ **Tombol Aktifkan/Nonaktifkan Layanan** | Sakelar ON/OFF untuk MCP dan A2A dengan pengaturan persistensi (default: OFF) | -| 🛰️ **Detak Jantung Waktu Proses MCP** | Status proses nyata (pid, uptime, usia detak jantung, transportasi, mode cakupan) | -| 📋 **Jejak Audit MCP** | Log audit yang dapat difilter dengan keberhasilan/kegagalan dan atribusi kunci | -| 🔐 **Penegakan Lingkup MCP** | 9 izin cakupan terperinci untuk akses alat terkontrol | -| 📡 **Manajemen Siklus Hidup Tugas A2A** | Daftar/filter tugas, periksa peristiwa/artefak, batalkan tugas yang sedang berjalan | -| 📋 **Penemuan Kartu Agen** | `/.well-known/agent.json` untuk penemuan otomatis klien | -| 🧪 **Memanfaatkan Uji Protokol E2E** | Aliran klien MCP SDK + A2A nyata di `test:protocols:e2e` | -| ⚙️ **Kontrol Operasional** | Ganti kombo, terapkan profil ketahanan, setel ulang pemutus dari satu permukaan kontrol | - -### 🧠 Perutean & Kecerdasan - -| Fitur | Apa Fungsinya | -| ------------------------------------ | ----------------------------------------------------------------------------------------- | -| 🎯 **Pengembalian 4 Tingkat Cerdas** | Rute otomatis: Berlangganan → Kunci API → Murah → Gratis | -| 📊 **Pelacakan Kuota Waktu Nyata** | Jumlah token langsung + setel ulang hitungan mundur per penyedia | -| 🔄 **Terjemahan Format** | OpenAI ↔ Claude ↔ Gemini ↔ Respons dengan konversi aman skema | -| 👥 **Dukungan Multi-Akun** | Banyak akun per penyedia dengan pilihan cerdas | -| 🔄 **Penyegaran Token Otomatis** | Token OAuth disegarkan secara otomatis dengan coba lagi | -| 🎨 **Kombo Khusus** | 6 strategi penyeimbangan + kontrol rantai mundur | -| 🌐 **Router Wildcard** | `provider/*` perutean dinamis | -| 🧠 **Memikirkan Kontrol Anggaran** | Batas penalaran passthrough, otomatis, kustom, dan adaptif | -| 🔀 **Model Alias** | Aliasing model kustom + bawaan dan keamanan migrasi | -| ⚡ **Degradasi Latar Belakang** | Arahkan tugas latar belakang berprioritas rendah ke model yang lebih murah | -| 🧪 **Perutean Cerdas Sadar Tugas** | Pilih model secara otomatis berdasarkan jenis konten (pengkodean/visi/analisis/ringkasan) | -| 💬 **Injeksi Perintah Sistem** | Pengendalian perilaku global diterapkan secara konsisten | -| 📄 **Kompatibilitas API Respons** | Dukungan penuh `/v1/responses` untuk Codex dan alur kerja agen tingkat lanjut | - -### 🎵 API Multi-Modal - -| Fitur | Apa Fungsinya | -| -------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 🖼️ **Pembuatan Gambar** | `/v1/images/generations` dengan cloud dan backend lokal | -| 📐 **Sematan** | `/v1/embeddings` untuk saluran pencarian dan RAG | -| 🎤 **Transkripsi Audio** | `/v1/audio/transcriptions` — 7 penyedia (Deepgram Nova 3, AssemblyAI, Groq Whisper, HuggingFace, ElevenLabs, OpenAI, Azure), deteksi bahasa otomatis, dukungan MP4/MP3/WAV | -| 🔊 **Teks-ke-Ucapan** | `/v1/audio/speech` — 10 penyedia (ElevenLabs, OpenAI, Deepgram, Cartesia, PlayHT, HuggingFace, Nvidia NIM, Inworld, Coqui, Tortoise) dengan pesan kesalahan yang benar | -| 🎬 **Pembuatan Video** | `/v1/videos/generations` (Alur kerja WebUI Nyaman + SD) | -| 🎵 **Generasi Musik** | `/v1/music/generations` (Alur kerja UI yang Nyaman) | -| 🛡️ **Moderasi** | `/v1/moderations` pemeriksaan keamanan | -| 🔀 **Pemeringkatan Ulang** | `/v1/rerank` untuk penilaian relevansi | -| 🔍 **Penelusuran Web** 🆕 | `/v1/search` — 5 penyedia (Serper, Brave, Perplexity, Exa, Tavily), 6.500+ gratis/bulan, failover otomatis, cache | - -### 🛡️ Ketahanan, Keamanan & Tata Kelola - -| Fitur | Apa Fungsinya | -| ---------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | -| 🔌 **Pemutus Arus** | Perjalanan/pemulihan per model dengan kontrol ambang batas | -| 🎯 **Model Sadar Titik Akhir** | Model khusus mendeklarasikan titik akhir yang didukung + format API | -| 🛡️ **Kawanan Anti Guntur** | Perlindungan mutex + semaphore pada acara coba ulang/nilai | -| 🧠 **Semantik + Cache Tanda Tangan** | Pengurangan biaya/latensi dengan dua lapisan cache | -| ⚡ **Minta Idempotensi** | Jendela perlindungan duplikat | -| 🔒 **Spoofing Sidik Jari TLS** | Sidik jari TLS seperti browser — **mengurangi deteksi bot dan penandaan akun** | -| 🔏 **Pencocokan Sidik Jari CLI** | Cocok dengan tanda tangan permintaan CLI asli — **mengurangi risiko larangan sekaligus mempertahankan IP proxy** | -| 🌐 **Pemfilteran IP** | Kontrol daftar yang diizinkan/daftar blokir untuk penerapan yang terbuka | -| 📊 **Batas Tarif yang Dapat Diedit** | Batas tingkat global/penyedia yang dapat dikonfigurasi dengan persistensi | -| 🔑 **Manajemen Kunci API + Pelingkupan** | Mengamankan penerbitan/rotasi kunci dan kontrol model/penyedia | -| 🛡️ **Dilindungi `/models`** | Gerbang autentikasi opsional dan penyembunyian penyedia untuk katalog model | - -### 📊 Observabilitas & Analisis - -| Fitur | Apa Fungsinya | -| ------------------------------------- | ---------------------------------------------------------------------- | -| 📝 **Permintaan + Pencatatan Proksi** | Permintaan/tanggapan lengkap dan pencatatan proksi | -| 📉 **Streamed Detailed Logs** 🆕 | Reconstructs SSE payload streams cleanly into the UI | -| 📋 **Dasbor Log Terpadu** | Tampilan permintaan, proksi, audit, dan konsol dalam satu halaman | -| 🔍 **Permintaan Telemetri** | latensi p50/p95/p99 dan penelusuran permintaan | -| 🏥 **Dasbor Kesehatan** | Waktu aktif, status pemutus, penguncian, statistik cache | -| 💰 **Pelacakan Biaya** | Kontrol anggaran dan visibilitas harga per model | -| 📈 **Visualisasi Analisis** | Wawasan penggunaan model/penyedia dan tampilan tren | -| 🧪 **Kerangka Evaluasi** | Pengujian set emas dengan strategi pencocokan yang dapat dikonfigurasi | - -### ☁️ Penerapan & Platform - -| Fitur | Apa Fungsinya | -| ---------------------------- | ----------------------------------------------------------- | -| 🌐 **Terapkan Di Mana Saja** | Localhost, VPS, Docker, Lingkungan Cloud | -| 💾 **Sinkronisasi Cloud** | Sinkronisasi konfigurasi melalui pekerja cloud | -| 🔄 **Cadangan/Pemulihan** | Arus ekspor/impor dan pemulihan bencana | -| 🧙 **Wizard Orientasi** | Penyiapan terpandu yang dijalankan pertama kali | -| 🔧 **Dasbor Alat CLI** | Pengaturan sekali klik untuk alat pengkodean populer | -| 🎮 **Model Taman Bermain** | Uji penyedia/model/titik akhir apa pun dari dasbor | -| 🔏 **Tolak Sidik Jari CLI** | Pencocokan sidik jari per penyedia di Pengaturan > Keamanan | -| 🌐 **i18n (30 bahasa)** | Dasbor lengkap + dukungan bahasa dokumen dengan cakupan RTL | -| 🧹 **Hapus Semua Model** | Pembersihan daftar model sekali klik di detail penyedia | -| 👁️ **Sidebar Controls** 🆕 | Hide components and integrations from Appearance Settings | -| 📋 **Template Masalah** | Templat GitHub standar untuk bug dan fitur | -| 📂 **Direktori Data Khusus** | `DATA_DIR` penggantian untuk lokasi penyimpanan | - -### Fitur Penyelaman Mendalam - -#### Penggantian cerdas dengan pengendalian biaya praktis - -```txt -Combo: "my-coding-stack" - 1. cc/claude-opus-4-6 - 2. nvidia/llama-3.3-70b - 3. glm/glm-4.7 - 4. if/kimi-k2-thinking -``` - -Ketika kuota, tarif, atau kesehatan gagal, OmniRoute secara otomatis berpindah ke kandidat berikutnya tanpa peralihan manual. - -#### Manajemen protokol yang terlihat dan dapat dioperasikan - -- MCP + A2A dapat ditemukan di UI dan dokumen (tidak disembunyikan) -- API status protokol memaparkan data operasional langsung (`/api/mcp/*`, `/api/a2a/*`) -- Dasbor mencakup tindakan untuk operasi hari ke-2 (pengalihan kombo, pengaturan ulang pemutus, pembatalan tugas) - -#### Penerjemah + alur kerja validasi - -Area Penerjemah meliputi: - -- **Taman Bermain**: meminta pemeriksaan transformasi -- **Penguji Obrolan**: permintaan/respons penuh pulang pergi -- **Test Bench**: beberapa kasus sekaligus -- **Monitor Langsung**: tampilan lalu lintas waktu nyata - -Ditambah validasi protokol dengan klien nyata melalui `npm run test:protocols:e2e`. - -> 📖 **[MCP Server README](open-sse/mcp-server/README.md)** — Referensi alat, konfigurasi IDE, dan contoh klien -> -> 📖 **[A2A Server README](src/lib/a2a/README.md)** — Keterampilan, metode JSON-RPC, streaming, dan siklus hidup tugas - -## 🧪 Evaluasi (Eval) - -OmniRoute menyertakan kerangka evaluasi bawaan untuk menguji kualitas respons LLM terhadap rangkaian emas. Akses melalui **Analytics → Evals** di dasbor. - -### Set Emas Bawaan - -"OmniRoute Golden Set" yang dimuat sebelumnya berisi kasus uji untuk: - -- Salam, matematika, geografi, pembuatan kode -- Kepatuhan format JSON, terjemahan, pembuatan penurunan harga -- Penolakan keamanan (konten berbahaya), penghitungan, logika boolean - -### Strategi Evaluasi - -| Strategi | Deskripsi | Contoh | -| ---------- | ------------------------------------------------------------ | -------------------------------- | -| `exact` | Output harus sama persis | `"4"` | -| `contains` | Output harus berisi substring (tidak peka huruf besar-kecil) | `"Paris"` | -| `regex` | Output harus sesuai dengan pola regex | `"1.*2.*3"` | -| `custom` | Fungsi JS khusus mengembalikan benar/salah | `(output) => output.length > 10` | - ---- - -## 📖 Panduan Pengaturan - -### Pengaturan Protokol (MCP + A2A) - -<details> -<summary><b>🧩 Penyiapan MCP (Protokol Konteks Model)</b></summary> - -Mulai transportasi MCP dalam mode stdio: - -```bash -omniroute --mcp -``` - -Alur validasi yang disarankan: - -1. Hubungkan klien MCP Anda melalui stdio. -2. Jalankan `omniroute_get_health`. -3. Jalankan `omniroute_list_combos`. -4. Buka `/dashboard/mcp` untuk mengonfirmasi detak jantung, aktivitas, dan audit. - -API yang berguna untuk otomatisasi: - -- `GET /api/mcp/status` -- `GET /api/mcp/tools` -- `GET /api/mcp/audit` -- `GET /api/mcp/audit/stats` - -</details> - -<details> -<summary><b>🤝 Pengaturan A2A (Agen2Agen)</b></summary> - -Temukan agennya: - -```bash -curl http://localhost:20128/.well-known/agent.json -``` - -Kirim tugas: - -```bash -curl -X POST http://localhost:20128/a2a \ - -H 'content-type: application/json' \ - -d '{"jsonrpc":"2.0","id":"setup-a2a","method":"message/send","params":{"skill":"quota-management","messages":[{"role":"user","content":"Summarize quota status."}]}}' -``` - -Kelola siklus hidup: - -- `GET /api/a2a/status` -- `GET /api/a2a/tasks` -- `GET /api/a2a/tasks/:id` -- `POST /api/a2a/tasks/:id/cancel` - -UI Operasional: - -- `/dashboard/a2a` untuk observasi tugas/status/aliran dan tindakan asap - -</details> - -<details> -<summary><b>🧪 Validasi protokol menyeluruh</b></summary> - -Validasi kedua protokol dengan klien nyata: - -```bash -npm run test:protocols:e2e -``` - -Ini memverifikasi: - -- Koneksi/daftar/panggilan klien MCP SDK -- Penemuan A2A/kirim/aliran/dapatkan/batalkan -- Periksa silang data dalam audit MCP dan API manajemen tugas A2A - -</details> - -<details> -<summary><b>💳 Penyedia Langganan</b></summary> - -### Kode Claude (Pro/Maks) - -```bash -Dashboard → Providers → Connect Claude Code -→ OAuth login → Auto token refresh -→ 5-hour + weekly quota tracking - -Models: - cc/claude-opus-4-6 - cc/claude-sonnet-4-5-20250929 - cc/claude-haiku-4-5-20251001 -``` - -**Kiat Pro:** Gunakan Opus untuk tugas kompleks, Soneta untuk kecepatan. OmniRoute melacak kuota per model! - -### Kodeks OpenAI (Plus/Pro) - -```bash -Dashboard → Providers → Connect Codex -→ OAuth login (port 1455) -→ 5-hour + weekly reset - -Models: - cx/gpt-5.2-codex - cx/gpt-5.1-codex-max -``` - -#### Manajemen Batas Akun Codex (5 jam + Mingguan) - -Setiap akun Codex sekarang memiliki tombol kebijakan di `Dashboard -> Providers`: - -- `5h` (ON/OFF): menerapkan kebijakan ambang jendela 5 jam. -- `Weekly` (ON/OFF): menerapkan kebijakan ambang jendela mingguan. -- Perilaku ambang batas: ketika jendela yang diaktifkan mencapai >=90% penggunaan, akun tersebut dilewati. -- Perilaku rotasi: OmniRoute merutekan ke akun Codex berikutnya yang memenuhi syarat secara otomatis. -- Perilaku reset: ketika waktu `resetAt` penyedia berlalu, akun menjadi memenuhi syarat lagi secara otomatis. - -Skenario: - -- `5h ON` + `Weekly ON`: akun dilewati ketika salah satu jendela mencapai ambang batas. -- `5h OFF` + `Weekly ON` : hanya penggunaan mingguan yang dapat memblokir akun. -- `5h ON` + `Weekly OFF` : penggunaan 5 jam saja dapat memblokir akun. -- `resetAt` lolos: akun masuk kembali ke rotasi secara otomatis (tidak ada pengaktifan ulang secara manual). - -### Gemini CLI (GRATIS 180K/bulan!) - -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Nilai Terbaik:** Tingkat gratis yang sangat besar! Gunakan ini sebelum tingkatan berbayar. - -### Kopilot GitHub - -```bash -Dashboard → Providers → Connect GitHub -→ OAuth via GitHub -→ Monthly reset (1st of month) - -Models: - gh/gpt-5 - gh/claude-4.5-sonnet - gh/gemini-3-pro -``` - -</details> - -<details> -<summary><b>🔑 Penyedia Kunci API</b></summary> - -### NVIDIA NIM (akses pengembang GRATIS — 70+ model) - -1. Daftar: [build.nvidia.com](https://build.nvidia.com) -2. Dapatkan kunci API gratis (termasuk 1000 kredit inferensi) -3. Dasbor → Tambah Penyedia → NVIDIA NIM: - - Kunci API: `nvapi-your-key` - -**Model:** `nvidia/llama-3.3-70b-instruct`, `nvidia/mistral-7b-instruct`, dan 50+ lainnya - -**Kiat Pro:** API yang kompatibel dengan OpenAI — bekerja secara lancar dengan terjemahan format OmniRoute! - -### Pencarian Dalam - -1. Daftar: [platform.deepseek.com](https://platform.deepseek.com) -2. Dapatkan kunci API -3. Dasbor → Tambah Penyedia → DeepSeek - -**Model:** `deepseek/deepseek-chat`, `deepseek/deepseek-coder` - -### Groq (Tersedia Tingkat Gratis!) - -1. Daftar: [console.groq.com](https://console.groq.com) -2. Dapatkan kunci API (termasuk tingkat gratis) -3. Dasbor → Tambah Penyedia → Groq - -**Model:** `groq/llama-3.3-70b`, `groq/mixtral-8x7b` - -**Kiat Pro:** Inferensi ultra-cepat — terbaik untuk pengkodean waktu nyata! - -### OpenRouter (100+ Model) - -1. Daftar: [openrouter.ai](https://openrouter.ai) -2. Dapatkan kunci API -3. Dasbor → Tambah Penyedia → OpenRouter - -**Model:** Akses 100+ model dari semua penyedia utama melalui satu kunci API. - -</details> - -<details> -<summary><b>💰 Penyedia Murah (Cadangan)</b></summary> - -### GLM-4.7 (Reset harian, $0,6/1 juta) - -1. Daftar: [Zhipu AI](https://open.bigmodel.cn/) -2. Dapatkan kunci API dari Coding Plan -3. Dasbor → Tambahkan Kunci API: - - Penyedia: `glm` - - Kunci API: `your-key` - -**Gunakan:** `glm/glm-4.7` - -**Tips Pro:** Paket Coding menawarkan 3× kuota dengan biaya 1/7! Reset setiap hari pukul 10.00. - -### MiniMax M2.1 (reset 5 jam, $0,20/1 juta) - -1. Daftar: [MiniMax](https://www.minimax.io/) -2. Dapatkan kunci API -3. Dasbor → Tambahkan Kunci API - -**Gunakan:** `minimax/MiniMax-M2.1` - -**Kiat Pro:** Opsi termurah untuk konteks panjang (1 juta token)! - -### Kimi K2 ($9/bulan tetap) - -1. Berlangganan: [Moonshot AI](https://platform.moonshot.ai/) -2. Dapatkan kunci API -3. Dasbor → Tambahkan Kunci API - -**Gunakan:** `kimi/kimi-latest` - -**Kiat Pro:** Memperbaiki $9/bulan untuk 10 juta token = biaya efektif $0,90/1 juta! - -</details> - -<details> -<summary><b>🆓 Penyedia GRATIS (Cadangan Darurat)</b></summary> - -### Qoder (5 model GRATIS melalui OAuth) - -```bash -Dashboard → Connect Qoder -→ Qoder OAuth login -→ Unlimited usage - -Models: - if/kimi-k2-thinking - if/qwen3-coder-plus - if/glm-4.7 - if/minimax-m2 - if/deepseek-r1 -``` - -### Qwen (4 model GRATIS melalui Kode Perangkat) - -```bash -Dashboard → Connect Qwen -→ Device code authorization -→ Unlimited usage - -Models: - qw/qwen3-coder-plus - qw/qwen3-coder-flash -``` - -### Kiro (Claude GRATIS) - -```bash -Dashboard → Connect Kiro -→ AWS Builder ID or Google/GitHub -→ Unlimited usage - -Models: - kr/claude-sonnet-4.5 - kr/claude-haiku-4.5 -``` - -</details> - -<details> -<summary><b>🎨 Buat Kombo</b></summary> - -### Contoh 1: Maksimalkan Langganan → Cadangan Murah - -``` -Dashboard → Combos → Create New - -Name: premium-coding -Models: - 1. cc/claude-opus-4-6 (Subscription primary) - 2. glm/glm-4.7 (Cheap backup, $0.6/1M) - 3. minimax/MiniMax-M2.1 (Cheapest fallback, $0.20/1M) - -Use in CLI: premium-coding -``` - -### Contoh 2: Gratis Saja (Tanpa Biaya) - -``` -Name: free-combo -Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) - -Cost: $0 forever! -``` - -</details> - -<details> -<summary><b>🔧 Integrasi CLI</b></summary> - -### IDE Kursor - -``` -Settings → Models → Advanced: - OpenAI API Base URL: http://localhost:20128/v1 - OpenAI API Key: [from OmniRoute dashboard] - Model: cc/claude-opus-4-6 -``` - -### Kode Claude - -Gunakan halaman **Alat CLI** di dasbor untuk konfigurasi sekali klik, atau edit `~/.claude/settings.json` secara manual. - -### Kodeks CLI - -```bash -export OPENAI_BASE_URL="http://localhost:20128" -export OPENAI_API_KEY="your-omniroute-api-key" - -codex "your prompt" -``` - -### Buka Cakar - -**Opsi 1 — Dasbor (disarankan):** - -``` -Dashboard → CLI Tools → OpenClaw → Select Model → Apply -``` - -**Opsi 2 — Panduan:** Sunting `~/.openclaw/openclaw.json`: - -```json -{ - "models": { - "providers": { - "omniroute": { - "baseUrl": "http://127.0.0.1:20128/v1", - "apiKey": "sk_omniroute", - "api": "openai-completions" - } - } - } -} -``` - -> **Catatan:** OpenClaw hanya berfungsi dengan OmniRoute lokal. Gunakan `127.0.0.1` alih-alih `localhost` untuk menghindari masalah resolusi IPv6. - -### Cline / Lanjutkan / RooCode - -``` -Settings → API Configuration: - Provider: OpenAI Compatible - Base URL: http://localhost:20128/v1 - API Key: [from OmniRoute dashboard] - Model: if/kimi-k2-thinking -``` - -### Kode Terbuka - -**Langkah 1:** Tambahkan OmniRoute sebagai penyedia khusus: - -```bash -opencode -/connect -# Select "Other" → Enter ID: "omniroute" → Enter your OmniRoute API key -``` - -**Langkah 2:** Buat/edit `opencode.json` di root proyek Anda: - -```json -{ - "$schema": "https://opencode.ai/config.json", - "provider": { - "omniroute": { - "npm": "@ai-sdk/openai-compatible", - "name": "OmniRoute", - "options": { - "baseURL": "http://localhost:20128/v1" - }, - "models": { - "cc/claude-sonnet-4-20250514": { "name": "Claude Sonnet 4" }, - "gg/gemini-2.5-pro": { "name": "Gemini 2.5 Pro" }, - "if/kimi-k2-thinking": { "name": "Kimi K2 (Free)" } - } - } - } -} -``` - -**Langkah 3:** Pilih model di OpenCode: - -```bash -/models -# Select any OmniRoute model from the list -``` - -> **Tips:** Tambahkan model apa pun yang tersedia di titik akhir OmniRoute `/v1/models` Anda ke bagian `models`. Gunakan format `provider/model-id` dari dasbor OmniRoute Anda. - -</details> - ---- - -## 🐛 Pemecahan masalah - -<details> -<summary><b>Klik untuk memperluas panduan pemecahan masalah</b></summary> - -**"Model bahasa tidak memberikan pesan"** - -- Kuota penyedia habis → Periksa dashboard pelacak kuota -- Solusi: Gunakan combo fallback atau beralih ke tier yang lebih murah - -**Pembatasan tarif** - -- Kuota berlangganan habis → Penggantian ke GLM/MiniMax -- Tambahkan kombo: `cc/claude-opus-4-6 → glm/glm-4.7 → if/kimi-k2-thinking` - -**Token OAuth kedaluwarsa** - -- Disegarkan secara otomatis oleh OmniRoute -- Jika masalah terus berlanjut: Dasbor → Penyedia → Sambungkan kembali - -**Biaya tinggi** - -- Periksa statistik penggunaan di Dashboard → Biaya -- Ganti model utama ke GLM/MiniMax -- Gunakan tingkat gratis (Gemini CLI, Qoder) untuk tugas-tugas yang tidak penting - -**Port dasbor/API salah** - -- `PORT` adalah port dasar kanonik (dan port API secara default) -- `API_PORT` hanya menimpa pendengar API yang kompatibel dengan OpenAI -- `DASHBOARD_PORT` hanya menimpa dashboard/pendengar Next.js -- Setel `NEXT_PUBLIC_BASE_URL` ke dasbor/URL publik Anda (untuk panggilan balik OAuth) - -**Kesalahan sinkronisasi cloud** - -- Verifikasi `BASE_URL` poin ke instance Anda yang sedang berjalan -- Verifikasi `CLOUD_URL` poin ke titik akhir cloud yang Anda harapkan -- Jaga agar nilai `NEXT_PUBLIC_*` selaras dengan nilai sisi server - -**Login pertama tidak berfungsi** - -- Periksa `INITIAL_PASSWORD` di `.env` -- Jika tidak disetel, kata sandi cadangan adalah `123456` - -**Tidak ada log permintaan** - -- Tetapkan `ENABLE_REQUEST_LOGS=true` di `.env` - -**Tes koneksi menunjukkan "Tidak Valid" untuk penyedia yang kompatibel dengan OpenAI** - -- Banyak penyedia tidak mengekspos titik akhir `/models` -- OmniRoute v1.0.6+ menyertakan validasi fallback melalui penyelesaian obrolan -- Pastikan URL dasar menyertakan akhiran `/v1` - -### 🔐 OAuth di Server Jarak Jauh - -<a name="oauth-on-a-remote-server"></a> -<a name="oauth-em-servidor-remoto"></a> - -> **⚠️ Penting bagi pengguna yang menjalankan OmniRoute di VPS, Docker, atau server jarak jauh mana pun** - -#### Mengapa Antigravity / Gemini CLI OAuth gagal di server jarak jauh? - -Penyedia **Antigravitasi** dan **Gemini CLI** menggunakan **Google OAuth 2.0**. Google mewajibkan `redirect_uri` dalam alur OAuth agar sama persis dengan salah satu URI yang telah didaftarkan sebelumnya di Google Cloud Console aplikasi. - -Kredensial OAuth yang disertakan dalam OmniRoute didaftarkan **hanya untuk `localhost`**. Saat Anda mengakses OmniRoute di server jarak jauh (misalnya `https://omniroute.myserver.com`), Google menolak autentikasi dengan: - -``` -Error 400: redirect_uri_mismatch -``` - -#### Solusi: Konfigurasikan kredensial OAuth Anda sendiri - -Anda perlu membuat **ID Klien OAuth 2.0** di Google Cloud Console dengan URI server Anda. - -#### Langkah demi langkah - -**1. Buka Google Cloud Console** - -Kunjungi: [https://console.cloud.google.com/apis/credentials](https://console.cloud.google.com/apis/credentials) - -**2. Buat ID Klien OAuth 2.0 baru** - -- Klik **"+ Buat Kredensial"** → **"ID klien OAuth"** -- Jenis aplikasi: **"Aplikasi web"** -- Nama: apa pun yang Anda suka (mis. `OmniRoute Remote`) - -**3. Tambahkan URI Pengalihan Resmi** - -Di kolom **"URI pengalihan resmi"**, tambahkan: - -``` -https://your-server.com/callback -``` - -> Ganti `your-server.com` dengan domain atau IP server Anda (sertakan port jika diperlukan, misalnya `http://45.33.32.156:20128/callback`). - -**4. Simpan dan salin kredensial** - -Setelah pembuatan, Google akan menampilkan **ID Klien** dan **Rahasia Klien**. - -**5. Tetapkan variabel lingkungan** - -Di `.env` Anda (atau variabel lingkungan Docker): - -```bash -# For Antigravity: -ANTIGRAVITY_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com -ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-your-secret - -# For Gemini CLI: -GEMINI_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com -GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -``` - -**6. Mulai ulang OmniRoute** - -```bash -# npm: -npm run dev - -# Docker: -docker restart omniroute -``` - -**7. Coba sambungkan lagi** - -Dasbor → Penyedia → Antigravitasi (atau Gemini CLI) → OAuth - -Google sekarang akan mengalihkan dengan benar ke `https://your-server.com/callback`. - ---- - -#### Solusi sementara (tanpa kredensial khusus) - -Jika Anda tidak ingin menyiapkan kredensial Anda sendiri saat ini, Anda masih dapat menggunakan **alur URL manual**: - -1. OmniRoute membuka URL otorisasi Google -2. Setelah otorisasi, Google mencoba mengalihkan ke `localhost` (yang gagal di server jauh) -3. **Salin URL lengkap** dari bilah alamat browser Anda (meskipun halaman tidak dimuat) -4. Tempelkan URL tersebut ke bidang yang ditampilkan di modal koneksi OmniRoute -5. Klik **"Hubungkan"** - -> Ini berfungsi karena kode otorisasi di URL valid terlepas dari apakah halaman pengalihan dimuat. - ---- - -<details> -<summary><b>🇧🇷 Versão em Português</b></summary> - -#### Mengapa OAuth melakukan Antigravity / Gemini CLI gagal dalam layanan jarak jauh? - -Pembuktiannya **Antigravitasi** dan **Gemini CLI** digunakan **Google OAuth 2.0** untuk autentikasi. Google meminta agar `redirect_uri` menggunakan OAuth yang terus berubah, jadi **exatamente** adalah URI yang sudah ada sebelumnya di Google Cloud Console yang dapat diterapkan. - -Karena kredensial OAuth yang diberikan pada OmniRoute adalah kadastrada **apenas untuk `localhost`**. Ketika Anda mengakses OmniRoute dari server jarak jauh (misal: `https://omniroute.meuservidor.com`), atau Google meminta autenticação com: - -``` -Error 400: redirect_uri_mismatch -``` - -#### Solusi: Konfigurasikan akun OAuth Anda - -Anda perlu membuat **ID Klien OAuth 2.0** di Google Cloud Console dengan URI di server Anda. - -#### Lewati dulu - -**1. Mengakses Google Cloud Console** - -Abra: [https://console.cloud.google.com/apis/credentials](https://console.cloud.google.com/apis/credentials) - -**2. Inilah ID Klien OAuth 2.0 yang baru** - -- Klik pada **"+ Buat Kredensial"** → **"ID klien OAuth"** -- Tip aplikasi: **"Aplikasi web"** -- Nama: nama escolha qualquer (misal: `OmniRoute Remote`) - -**3. Tambahan sebagai URI Pengalihan Resmi** - -Selain itu **"URI pengalihan resmi"**, tambahan: - -``` -https://seu-servidor.com/callback -``` - -> Pengganti `seu-servidor.com` pelo domínio atau IP ke server Anda (termasuk port yang diperlukan, misal: `http://45.33.32.156:20128/callback`). - -**4. Salep dan salin sebagai kredensial** - -Kemudian, Google menampilkan **ID Klien** dan **Rahasia Klien**. - -**5. Konfigurasikan sebagai variáveis de ambiente** - -Di `.env` Anda (atau berbagai lingkungan di Docker): - -```bash -# Para Antigravity: -ANTIGRAVITY_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com -ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret - -# Para Gemini CLI: -GEMINI_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com -GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -``` - -**6. Memulai kembali OmniRoute** - -```bash -# Se usando npm: -npm run dev - -# Se usando Docker: -docker restart omniroute -``` - -**7. Mari kita sambungkan lagi** - -Dasbor → Penyedia → Antigravitasi (atau Gemini CLI) → OAuth - -Sekarang o Google dialihkan langsung ke `https://seu-servidor.com/callback` dan autentikasi berfungsi. - ---- - -#### Solusi sementara (sem configurar credenciais próprias) - -Jika Anda tidak ingin membuat kredensial pribadi sekarang, Anda mungkin dapat menggunakan fluks **panduan URL**: - -1. O OmniRoute membuka URL autoriza dari Google -2. Setelah Anda autorizar, Google mengarahkan pengalihan ke `localhost` (yang gagal pada server jarak jauh) -3. **Salin URL lengkap** dari bilah akhir browser Anda (meskipun halaman tidak dimuat) -4. Gunakan URL ini karena tidak ada modal koneksi ke OmniRoute -5. Klik pada **"Hubungkan"** - -> Solusi ini berfungsi karena kode otorisasi pada URL valid secara independen untuk mengarahkan ulang ke akun atau tidak. - -</details> - ---- - -</details> - -## 🛠️ Tumpukan Teknologi - -<details> -<summary><b>Klik untuk memperluas detail tumpukan teknologi</b></summary> - -- **Runtime**: Node.js 18–22 LTS (⚠️ Node.js 24+ **tidak didukung** — `better-sqlite3` biner asli tidak kompatibel) -- **Bahasa**: TypeScript 5.9 — **100% TypeScript** di `src/` dan `open-sse/` (nol `any` dalam modul inti sejak v2.0) -- **Kerangka Kerja**: Next.js 16 + React 19 + Tailwind CSS 4 -- **Database**: LowDB (JSON) + SQLite (status domain + log proksi + audit MCP + keputusan perutean) -- **Skema**: Zod (validasi I/O alat MCP, kontrak API) -- **Protokol**: MCP (stdio/HTTP) + A2A v0.3 (JSON-RPC 2.0 + SSE) -- **Streaming**: Peristiwa Terkirim Server (SSE) -- **Auth**: OAuth 2.0 (PKCE) + JWT + Kunci API + Otorisasi Cakupan MCP -- **Pengujian**: Pelari pengujian Node.js + Vitest (900+ pengujian termasuk unit, integrasi, E2E) -- **CI/CD**: Tindakan GitHub (publikasi npm otomatis + Docker Hub saat dirilis) -- **Situs Web**: [omniroute.online](https://omniroute.online) -- **Paket**: [npmjs.com/package/omniroute](https://www.npmjs.com/package/omniroute) -- **Pekerja Pelabuhan**: [hub.docker.com/r/diegosouzapw/omniroute](https://hub.docker.com/r/diegosouzapw/omniroute) -- **Ketahanan**: Pemutus arus, backoff eksponensial, kawanan anti-thundering, spoofing TLS, penyembuhan diri kombo otomatis - -</details> - ---- - -## 📖 Dokumentasi - -| Dokumen | Deskripsi | -| ---------------------------------------------- | --------------------------------------------------------------- | -| [User Guide](docs/USER_GUIDE.md) | Penyedia, kombo, integrasi CLI, penerapan | -| [API Reference](docs/API_REFERENCE.md) | Semua titik akhir dengan contoh | -| [MCP Server](open-sse/mcp-server/README.md) | 16 alat MCP, konfigurasi IDE, klien Python/TS/Go | -| [A2A Server](src/lib/a2a/README.md) | Protokol JSON-RPC 2.0, keterampilan, streaming, manajemen tugas | -| [Auto-Combo Engine](docs/auto-combo.md) | Penilaian 6 faktor, paket mode, penyembuhan diri | -| [Troubleshooting](docs/TROUBLESHOOTING.md) | Masalah umum dan solusinya | -| [Architecture](docs/ARCHITECTURE.md) | Arsitektur sistem dan internal | -| [Contributing](CONTRIBUTING.md) | Pengaturan dan pedoman pengembangan | -| [OpenAPI Spec](docs/openapi.yaml) | Spesifikasi OpenAPI 3.0 | -| [Security Policy](SECURITY.md) | Pelaporan kerentanan dan praktik keamanan | -| [VM Deployment](docs/VM_DEPLOYMENT_GUIDE.md) | Panduan lengkap: VM + nginx + Pengaturan Cloudflare | -| [Features Gallery](docs/FEATURES.md) | Tur dasbor visual dengan tangkapan layar | -| [Release Checklist](docs/RELEASE_CHECKLIST.md) | Langkah validasi pra-rilis | - ---- - -## 🗺️ Peta Jalan - -OmniRoute memiliki **210+ fitur yang direncanakan** di berbagai fase pengembangan. Berikut adalah bidang-bidang utamanya: - -| Kategori | Fitur yang Direncanakan | Sorotan | -| ---------------------------- | ----------------------- | --------------------------------------------------------------------------------------------------- | -| 🧠 **Perutean & Kecerdasan** | 25+ | Perutean latensi terendah, perutean berbasis tag, preflight kuota, pemilihan akun P2C | -| 🔒 **Keamanan & Kepatuhan** | 20+ | Pengerasan SSRF, penyelubungan kredensial, batas tarif per titik akhir, pelingkupan kunci manajemen | -| 📊 **Kemampuan Observasi** | 15+ | Integrasi OpenTelemetry, pemantauan kuota waktu nyata, pelacakan biaya per model | -| 🔄 **Integrasi Penyedia** | 20+ | Registri model dinamis, cooldown penyedia, Codex multi-akun, penguraian kuota Salinan | -| ⚡ **Kinerja** | 15+ | Lapisan cache ganda, cache cepat, cache respons, streaming keepalive, API batch | -| 🌐 **Ekosistem** | 10+ | WebSocket API, konfigurasi hot-reload, penyimpanan konfigurasi terdistribusi, mode komersial | - -### 🔜 Segera Hadir - -- 🔗 **Integrasi OpenCode** — Dukungan penyedia asli untuk IDE pengkodean AI OpenCode -- 🔗 **Integrasi TRAE** — Dukungan penuh untuk kerangka pengembangan AI TRAE -- 📦 **Batch API** — Pemrosesan batch asinkron untuk permintaan massal -- 🎯 **Perutean Berbasis Tag** — Merutekan permintaan berdasarkan tag dan metadata khusus -- 💰 **Strategi Biaya Terendah** — Secara otomatis memilih penyedia termurah yang tersedia - -> 📝 Spesifikasi fitur lengkap tersedia di [**OMNI_TOKEN_342**](docs/new-features/) (217 spesifikasi detail) - ---- - -## 👥 Kontributor - -[![Contributors](https://contrib.rocks/image?repo=diegosouzapw/OmniRoute&max=100&columns=20&anon=1)](https://github.com/diegosouzapw/OmniRoute/graphs/contributors) - -### Cara Berkontribusi - -1. Cabangkan repositori -2. Buat cabang fitur Anda (`git checkout -b feature/amazing-feature`) -3. Komit perubahan Anda (`git commit -m 'Add amazing feature'`) -4. Dorong ke cabang (`git push origin feature/amazing-feature`) -5. Buka Permintaan Tarik - -Lihat [CONTRIBUTING.md](CONTRIBUTING.md) untuk panduan detailnya. - -### Merilis Versi Baru - -```bash -# Create a release — npm publish happens automatically -gh release create v2.0.0 --title "v2.0.0" --generate-notes -``` - ---- - -## 📊 Sejarah Bintang - -## Pengamat bintang dari waktu ke waktu - -## [![Stargazers over time](https://starchart.cc/diegosouzapw/OmniRoute.svg?variant=adaptive)](https://starchart.cc/diegosouzapw/OmniRoute) - -## 🙏 Ucapan Terima Kasih - -Terima kasih khusus kepada **[9router](https://github.com/decolua/9router)** oleh **[decolua](https://github.com/decolua)** — proyek asli yang menginspirasi fork ini. OmniRoute dibangun di atas fondasi luar biasa tersebut dengan fitur tambahan, API multi-modal, dan penulisan ulang TypeScript lengkap. - -Terima kasih khusus kepada **[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)** — implementasi Go asli yang menginspirasi port JavaScript ini. - ---- - -## 📄 Lisensi - -Lisensi MIT - lihat [LICENSE](LICENSE) untuk detailnya. - ---- - -<div align="center"> - <sub>Dibangun dengan ❤️ untuk pengembang yang membuat kode 24/7</sub> - <br/> - <sub><a href="https://omniroute.online">omniroute.online</a></sub> -</div> -<!-- Diskusi GitHub diaktifkan untuk Tanya Jawab komunitas --> +👉 **[Read the Documentation here](docs/i18n/id/README.md)** diff --git a/README.in.md b/README.in.md index 9717611e43..885c53aa12 100644 --- a/README.in.md +++ b/README.in.md @@ -1,1965 +1,5 @@ -# 🚀 ओम्निरूट - निःशुल्क एआई गेटवे +# 🌐 OmniRoute (in) -### कोडिंग कभी बंद न करें। स्वचालित फ़ॉलबैक के साथ **मुफ़्त और कम लागत वाले AI मॉडल** के लिए स्मार्ट रूटिंग। +The documentation has been formalized and moved to our centralized i18n structure. -_आपका सार्वभौमिक एपीआई प्रॉक्सी - एक समापन बिंदु, 67+ प्रदाता, शून्य डाउनटाइम। अब **एमसीपी और ए2ए** एजेंट ऑर्केस्ट्रेशन के साथ।_ - -**चैट समापन • एंबेडिंग • छवि निर्माण • वीडियो • संगीत • ऑडियो • पुनःरैंकिंग • **वेब खोज** • एमसीपी सर्वर • ए2ए प्रोटोकॉल • 100% टाइपस्क्रिप्ट** - ---- - -**OMNI_टोकन_452** - -[![npm version](https://img.shields.io/npm/v/omniroute?color=cb3837&logo=npm)](https://www.npmjs.com/package/omniroute) -[![npm downloads](https://img.shields.io/npm/dm/omniroute?color=cb3837&logo=npm&label=npm%20downloads)](https://www.npmjs.com/package/omniroute) -[![Docker Hub](https://img.shields.io/docker/v/diegosouzapw/omniroute?label=Docker%20Hub&logo=docker&color=2496ED)](https://hub.docker.com/r/diegosouzapw/omniroute) -[![Docker Pulls](https://img.shields.io/docker/pulls/diegosouzapw/omniroute?logo=docker&color=2496ED&label=docker%20pulls)](https://hub.docker.com/r/diegosouzapw/omniroute) -[![License](https://img.shields.io/github/license/diegosouzapw/OmniRoute)](https://github.com/diegosouzapw/OmniRoute/blob/main/LICENSE) -[![Website](https://img.shields.io/badge/Website-omniroute.online-blue?logo=google-chrome&logoColor=white)](https://omniroute.online) -[![WhatsApp](https://img.shields.io/badge/WhatsApp-Community-25D366?logo=whatsapp&logoColor=white)](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) - -[🌐 Website](https://omniroute.online) • [🚀 Quick Start](#-quick-start) • [💡 Features](#-key-features) • [📖 Docs](#-documentation) • [💰 Pricing](#-pricing-at-a-glance) • [💬 WhatsApp](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) - -**OMNI_टोकन_453** - -🌐 **यहां उपलब्ध:** 🇺🇸 [English](README.md) | 🇧🇷 [Português (Brasil)](docs/i18n/pt-BR/README.md) | 🇪🇸 [Español](docs/i18n/es/README.md) | 🇫🇷 [Français](docs/i18n/fr/README.md) | 🇮🇹[Italiano](docs/i18n/it/README.md) | 🇷🇺 [Русский](docs/i18n/ru/README.md) | 🇨🇳 [中文 (简体)](docs/i18n/zh-CN/README.md) | 🇩🇪 [Deutsch](docs/i18n/de/README.md) | 🇮🇳 [हिन्दी](docs/i18n/in/README.md) | 🇹🇭 [ไทย](docs/i18n/th/README.md) | 🇺🇦 [Українська](docs/i18n/uk-UA/README.md) | 🇸🇦 [العربية](docs/i18n/ar/README.md) | 🇯🇵 [日本語](docs/i18n/ja/README.md) | 🇻🇳 [Tiếng Việt](docs/i18n/vi/README.md) | 🇧🇬 [Български](docs/i18n/bg/README.md) | 🇩🇰 [Dansk](docs/i18n/da/README.md) | 🇫🇮 [Suomi](docs/i18n/fi/README.md) | 🇮🇱 [עברית](docs/i18n/he/README.md) | 🇭🇺 [Magyar](docs/i18n/hu/README.md) | 🇮🇩 [Bahasa Indonesia](docs/i18n/id/README.md) | 🇰🇷 [한국어](docs/i18n/ko/README.md) | 🇲🇾 [Bahasa Melayu](docs/i18n/ms/README.md) | 🇳🇱 [Nederlands](docs/i18n/nl/README.md) | 🇳🇴 [Norsk](docs/i18n/no/README.md) | 🇵🇹 [Português (Portugal)](docs/i18n/pt/README.md) | 🇷🇴 [Română](docs/i18n/ro/README.md) | 🇵🇱 [Polski](docs/i18n/pl/README.md) | 🇸🇰 [Slovenčina](docs/i18n/sk/README.md) | 🇸🇪 [Svenska](docs/i18n/sv/README.md) | 🇵🇭 [Filipino](docs/i18n/phi/README.md) | 🇨🇿 [Čeština](docs/i18n/cs/README.md) - ---- - -## 🆕 v3.0.0 में नया क्या है - -> **v2.9.5 से अपग्रेड किया जा रहा है?** — सभी परिवर्तनों के लिए [full CHANGELOG](CHANGELOG.md#300--2026-03-22-release-candidate--not-yet-merged-to-main) देखें। - -| क्षेत्र | परिवर्तन | -| -------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| 🔒 **कोडक्यूएल सुरक्षा** | फिक्स्ड 10+ कोडक्यूएल अलर्ट: बहुपद-रेडोस, असुरक्षित-यादृच्छिकता, शेल-इंजेक्शन उपचार | -| ✅ **रूट सत्यापन** | सभी 176 एपीआई रूट अब ज़ॉड स्कीमा + `validateBody()` — CI `check:route-validation:t06` पास के साथ मान्य हैं | -| 🐛 **ओम्नीमॉडल टैग लीक** | आंतरिक `<omniModel>` टैग अब SSE स्ट्रीमिंग प्रतिक्रियाओं में ग्राहकों के लिए लीक नहीं होंगे (#585) | -| 🔑 **पंजीकृत कुंजी एपीआई** | प्रति-प्रदाता/खाता कोटा प्रवर्तन, निष्क्रियता, SHA-256 भंडारण और वैकल्पिक GitHub समस्या रिपोर्टिंग के साथ `POST /api/v1/registered-keys` के माध्यम से स्वचालित-प्रावधान API कुंजियाँ | -| 👁️ **Scoped API Key Reveal** 🆕 | Opt-in recovery of API keys via `ALLOW_API_KEY_REVEAL` | -| 🎨 **प्रदाता चिह्न** | पीएनजी के साथ `@lobehub/icons` (एसवीजी) के माध्यम से 130+ प्रदाता लोगो → सामान्य फ़ॉलबैक श्रृंखला | -| 🔄 **मॉडल ऑटो-सिंक** | बिल्ट-इन और कस्टम ओपनएआई-संगत प्रदाताओं के लिए मॉडल सूचियों को सिंक करने के लिए 24 घंटे शेड्यूलर और मैनुअल यूआई टॉगल | -| 🌐 **ओपनकोड ज़ेन/गो** | @kang-heewon से PR #530 के माध्यम से दो नए प्रदाता: निःशुल्क स्तर + `OpencodeExecutor` के माध्यम से सदस्यता स्तर | -| 🐛 **मिथुन सीएलआई ओऑथ** | डॉकर में `GEMINI_OAUTH_CLIENT_SECRET` गायब होने पर कार्रवाई योग्य त्रुटि (गूढ़ Google त्रुटि थी) | -| 🐛 **ओपनकोड कॉन्फिग** | `saveOpenCodeConfig()` अब TOML को `XDG_CONFIG_HOME` पर सही ढंग से लिखता है | -| 🐛 **पिन किया गया मॉडल ओवरराइड** | `body.model` संदर्भ-कैश सुरक्षा पर `pinnedModel` पर सही ढंग से सेट है | -| 🐛 **कोडेक्स/क्लाउड लूप** | `tool_result` ब्लॉक अब अनंत लूप को रोकने के लिए टेक्स्ट में परिवर्तित हो गए हैं | -| 🐛 **लॉगिन रीडायरेक्ट** | पासवर्ड सेटअप छोड़ने के बाद लॉगिन रुकता नहीं है | -| 🐛 **विंडोज़ पथ** | MSYS2/Git-बैश पथ (`/c/...`) स्वचालित रूप से `C:\...` पर सामान्यीकृत हो गए | - ---- - -## 🖼️ मुख्य डैशबोर्ड - -**OMNI_टोकन_454** -**OMNI_टोकन_447** -**OMNI_टोकन_455** - ---- - -## 📸 डैशबोर्ड पूर्वावलोकन - -**OMNI_टोकन_456** - -<summary><b>डैशबोर्ड स्क्रीनशॉट देखने के लिए क्लिक करें</b></summary> - -| पेज | स्क्रीनशॉट | -| ---------------- | ------------------------------------------------- | -| **प्रदाता** | ![Providers](docs/screenshots/01-providers.png) | -| **कॉम्बोस** | ![Combos](docs/screenshots/02-combos.png) | -| **एनालिटिक्स** | ![Analytics](docs/screenshots/03-analytics.png) | -| **स्वास्थ्य** | ![Health](docs/screenshots/04-health.png) | -| **अनुवादक** | ![Translator](docs/screenshots/05-translator.png) | -| **सेटिंग्स** | ![Settings](docs/screenshots/06-settings.png) | -| **सीएलआई उपकरण** | ![CLI Tools](docs/screenshots/07-cli-tools.png) | -| **उपयोग लॉग** | ![Usage](docs/screenshots/08-usage.png) | -| **अंतबिंदु** | ![Endpoints](docs/screenshots/09-endpoint.png) | - -**OMNI_टोकन_461** - ---- - -### 🤖 आपके पसंदीदा कोडिंग एजेंटों के लिए निःशुल्क एआई प्रदाता - -_OmniRoute के माध्यम से किसी भी AI-संचालित IDE या CLI टूल को कनेक्ट करें - असीमित कोडिंग के लिए निःशुल्क API गेटवे।_ - - <table> - <tr> - <td align="center" width="110"> - <a href="https://github.com/openclaw/openclaw"> - <img src="./public/providers/openclaw.png" alt="OpenClaw" width="48"/><br/> - <b>OpenClaw</b> - </a><br/> - <sub>⭐ 205K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/HKUDS/nanobot"> - <img src="./public/providers/nanobot.png" alt="NanoBot" width="48"/><br/> - <b>NanoBot</b> - </a><br/> - <sub>⭐ 20.9K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/sipeed/picoclaw"> - <img src="./public/providers/picoclaw.jpg" alt="PicoClaw" width="48"/><br/> - <b>PicoClaw</b> - </a><br/> - <sub>⭐ 14.6K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/zeroclaw-labs/zeroclaw"> - <img src="./public/providers/zeroclaw.png" alt="ZeroClaw" width="48"/><br/> - <b>ZeroClaw</b> - </a><br/> - <sub>⭐ 9.9K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/nearai/ironclaw"> - <img src="./public/providers/ironclaw.png" alt="IronClaw" width="48"/><br/> - <b>IronClaw</b> - </a><br/> - <sub>⭐ 2.1K</sub> - </td> - </tr> - <tr> - <td align="center" width="110"> - <a href="https://github.com/anomalyco/opencode"> - <img src="./public/providers/opencode.svg" alt="OpenCode" width="48"/><br/> - <b>OpenCode</b> - </a><br/> - <sub>⭐ 106K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/openai/codex"> - <img src="./public/providers/codex.png" alt="Codex CLI" width="48"/><br/> - <b>Codex CLI</b> - </a><br/> - <sub>⭐ 60.8K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/anthropics/claude-code"> - <img src="./public/providers/claude.png" alt="Claude Code" width="48"/><br/> - <b>Claude Code</b> - </a><br/> - <sub>⭐ 67.3K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/google-gemini/gemini-cli"> - <img src="./public/providers/gemini-cli.png" alt="Gemini CLI" width="48"/><br/> - <b>Gemini CLI</b> - </a><br/> - <sub>⭐ 94.7K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/Kilo-Org/kilocode"> - <img src="./public/providers/kilocode.png" alt="Kilo Code" width="48"/><br/> - <b>Kilo Code</b> - </a><br/> - <sub>⭐ 15.5K</sub> - </td> - </tr> - </table> - -<sub>📡 सभी एजेंट <code>http://localhost:20128/v1</code> या <code>http://cloud.omniroute.online/v1</code> के माध्यम से जुड़ते हैं - एक कॉन्फ़िगरेशन, असीमित मॉडल और कोटा</sub> - ---- - -## 🤔ओम्नीरूट क्यों? - -**पैसा बर्बाद करना और सीमा पार करना बंद करें:** - -- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> सदस्यता कोटा हर महीने अप्रयुक्त रूप से समाप्त हो जाता है -- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> दर सीमा आपको कोडिंग के बीच में रोक देती है -- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> महँगे API ($20-50/माह प्रति प्रदाता) -- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> प्रदाताओं के बीच मैन्युअल स्विचिंग - -**OmniRoute इसका समाधान करता है:** - -- ✅ **सब्सक्रिप्शन अधिकतम करें** - कोटा ट्रैक करें, रीसेट से पहले हर बिट का उपयोग करें -- ✅ **ऑटो फ़ॉलबैक** - सदस्यता → एपीआई कुंजी → सस्ता → निःशुल्क, शून्य डाउनटाइम -- ✅ **मल्टी-अकाउंट** - प्रति प्रदाता खातों के बीच राउंड-रॉबिन -- ✅ **यूनिवर्सल** - क्लाउड कोड, कोडेक्स, जेमिनी सीएलआई, कर्सर, क्लाइन, ओपनक्लॉ, किसी भी सीएलआई टूल के साथ काम करता है - ---- - -## 📧समर्थन - -> 💬 **हमारे समुदाय में शामिल हों!** [WhatsApp Group](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) — सहायता प्राप्त करें, सुझाव साझा करें और अपडेट रहें। - -- **वेबसाइट**: [omniroute.online](https://omniroute.online) -- **गिटहब**: [github.com/diegosouzapw/OmniRoute](https://github.com/diegosouzapw/OmniRoute) -- **मुद्दे**: [github.com/diegosouzapw/OmniRoute/issues](https://github.com/diegosouzapw/OmniRoute/issues) -- **व्हाट्सएप**: [Community Group](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) -- **योगदान**: [CONTRIBUTING.md](CONTRIBUTING.md) देखें, एक पीआर खोलें, या एक `good first issue` चुनें -- **मूल परियोजना**: [9router by decolua](https://github.com/decolua/9router) - -### 🐛 बग की रिपोर्ट करना? - -कोई समस्या खोलते समय, कृपया सिस्टम-जानकारी कमांड चलाएँ और जेनरेट की गई फ़ाइल संलग्न करें: - -```bash -npm run system-info -``` - -यह आपके Node.js संस्करण, ओमनीरूट संस्करण, OS विवरण, स्थापित CLI उपकरण (qoder, जेमिनी, क्लाउड, कोडेक्स, एंटीग्रेविटी, ड्रॉइड, आदि), Docker/PM2 स्थिति और सिस्टम पैकेज के साथ एक `system-info.txt` उत्पन्न करता है - वह सब कुछ जो हमें आपकी समस्या को शीघ्रता से पुन: उत्पन्न करने के लिए चाहिए। फ़ाइल को सीधे अपने GitHub मुद्दे से संलग्न करें। - ---- - -## 🔄 यह कैसे काम करता है - -**OMNI_टोकन_1** - ---- - -## 🎯 ओमनीरूट क्या समाधान करता है - 30 वास्तविक समस्या बिंदु और उपयोग के मामले - -> **एआई टूल का उपयोग करने वाला प्रत्येक डेवलपर प्रतिदिन इन समस्याओं का सामना करता है।** ओम्नीरूट को उन सभी को हल करने के लिए बनाया गया था - लागत वृद्धि से लेकर क्षेत्रीय ब्लॉक तक, टूटे हुए ओएथ प्रवाह से लेकर प्रोटोकॉल संचालन और एंटरप्राइज़ अवलोकन तक। - -**OMNI_टोकन_468** - -<summary><b>💸 1. "मैं एक महंगी सदस्यता के लिए भुगतान करता हूं लेकिन फिर भी सीमा से बाधित होता हूं"</b></summary> - -डेवलपर्स क्लाउड प्रो, कोडेक्स प्रो, या गिटहब कोपायलट के लिए $20-200/माह का भुगतान करते हैं। यहां तक ​​कि भुगतान करने पर भी, कोटा की एक सीमा होती है - 5 घंटे का उपयोग, साप्ताहिक सीमा, या प्रति मिनट की दर सीमा। मध्य-कोडिंग सत्र में, प्रदाता प्रत्युत्तर देना बंद कर देता है और डेवलपर प्रवाह और उत्पादकता खो देता है। - -**ओम्नीरूट इसे कैसे हल करता है:** - -- **स्मार्ट 4-टियर फ़ॉलबैक** - यदि सदस्यता कोटा समाप्त हो जाता है, तो स्वचालित रूप से एपीआई कुंजी पर रीडायरेक्ट हो जाता है → सस्ता → शून्य मैन्युअल हस्तक्षेप के साथ मुफ़्त -- **वास्तविक समय कोटा ट्रैकिंग** - रीसेट उलटी गिनती के साथ वास्तविक समय में टोकन खपत दिखाता है (5 घंटे, दैनिक, साप्ताहिक) -- **मल्टी-अकाउंट सपोर्ट** - ऑटो राउंड-रॉबिन के साथ प्रति प्रदाता एकाधिक खाते - जब एक खत्म हो जाता है, तो अगले पर स्विच हो जाता है -- **कस्टम कॉम्बो** - 6 संतुलन रणनीतियों (भरण-प्रथम, राउंड-रॉबिन, पी2सी, यादृच्छिक, कम से कम उपयोग, लागत-अनुकूलित) के साथ अनुकूलन योग्य फ़ॉलबैक चेन -- **कोडेक्स बिजनेस कोटा** - बिजनेस/टीम कार्यक्षेत्र कोटा की निगरानी सीधे डैशबोर्ड में - -**OMNI_टोकन_473** - -**OMNI_टोकन_474** - -<summary><b>🔌 2. "मुझे कई प्रदाताओं का उपयोग करने की आवश्यकता है लेकिन प्रत्येक के पास एक अलग API है"</b></summary> - -ओपनएआई एक प्रारूप का उपयोग करता है, क्लाउड (एंथ्रोपिक) दूसरे का उपयोग करता है, जेमिनी एक और का उपयोग करता है। यदि कोई डेवलपर विभिन्न प्रदाताओं के मॉडल का परीक्षण करना चाहता है या उनके बीच फ़ॉलबैक करना चाहता है, तो उन्हें एसडीके को फिर से कॉन्फ़िगर करना होगा, एंडपॉइंट बदलना होगा, असंगत प्रारूपों से निपटना होगा। कस्टम प्रदाताओं (फ्रेंडएलआई, एनआईएम) के पास गैर-मानक मॉडल एंडपॉइंट हैं। - -**ओम्नीरूट इसे कैसे हल करता है:** - -- **एकीकृत समापन बिंदु** - एक एकल `http://localhost:20128/v1` सभी 67+ प्रदाताओं के लिए प्रॉक्सी के रूप में कार्य करता है -- **प्रारूप अनुवाद** - स्वचालित और पारदर्शी: ओपनएआई ↔ क्लाउड ↔ जेमिनी ↔ प्रतिक्रिया एपीआई -- **प्रतिक्रिया स्वच्छता** - गैर-मानक फ़ील्ड (`x_groq`, `usage_breakdown`, `service_tier`) को स्ट्रिप्स करता है जो OpenAI SDK v1.83+ को तोड़ता है -- **भूमिका सामान्यीकरण** - गैर-ओपनएआई प्रदाताओं के लिए `developer` → `system` परिवर्तित करता है; `system` → GLM/ERNIE के लिए `user` -- **टैग एक्सट्रैक्शन के बारे में सोचें** - डीपसीक आर1 जैसे मॉडलों से `<think>` ब्लॉक को मानकीकृत `reasoning_content` में निकालता है -- **मिथुन राशि वालों के लिए संरचित आउटपुट** — `json_schema` → `responseMimeType`/`responseSchema` स्वचालित रूपांतरण -- **`stream` डिफ़ॉल्ट रूप से `false`** पर जाता है - OpenAI विनिर्देश के साथ संरेखित होता है, Python/Rust/Go SDKs में अप्रत्याशित SSE से बचता है - -**OMNI_टोकन_479** - -**OMNI_टोकन_480** - -<summary><b>🌐 3. "मेरा AI प्रदाता मेरे क्षेत्र/देश को ब्लॉक कर देता है"</b></summary> - -OpenAI/Codex जैसे प्रदाता कुछ भौगोलिक क्षेत्रों से पहुंच को रोकते हैं। उपयोगकर्ताओं को OAuth और API कनेक्शन के दौरान `unsupported_country_region_territory` जैसी त्रुटियां मिलती हैं। यह विकासशील देशों के डेवलपर्स के लिए विशेष रूप से निराशाजनक है। - -**ओम्नीरूट इसे कैसे हल करता है:** - -- **3-स्तरीय प्रॉक्सी कॉन्फ़िगरेशन** - 3 स्तरों पर कॉन्फ़िगर करने योग्य प्रॉक्सी: वैश्विक (सभी ट्रैफ़िक), प्रति-प्रदाता (केवल एक प्रदाता), और प्रति-कनेक्शन/कुंजी -- **रंग-कोडित प्रॉक्सी बैज** - दृश्य संकेतक: 🟢 वैश्विक प्रॉक्सी, 🟡 प्रदाता प्रॉक्सी, 🔵 कनेक्शन प्रॉक्सी, हमेशा आईपी दिखाता है -- **प्रॉक्सी के माध्यम से OAuth टोकन एक्सचेंज** - OAuth प्रवाह भी प्रॉक्सी के माध्यम से चलता है, `unsupported_country_region_territory` को हल करता है -- **प्रॉक्सी के माध्यम से कनेक्शन परीक्षण** - कनेक्शन परीक्षण कॉन्फ़िगर प्रॉक्सी का उपयोग करते हैं (अब कोई प्रत्यक्ष बाईपास नहीं) -- **SOCKS5 समर्थन** - आउटबाउंड रूटिंग के लिए पूर्ण SOCKS5 प्रॉक्सी समर्थन -- **टीएलएस फिंगरप्रिंट स्पूफिंग** - बॉट डिटेक्शन को बायपास करने के लिए `wreq-js` के माध्यम से ब्राउज़र जैसा टीएलएस फिंगरप्रिंट -- **🔏 सीएलआई फ़िंगरप्रिंट मिलान** - मूल सीएलआई बाइनरी हस्ताक्षरों से मिलान करने के लिए हेडर और बॉडी फ़ील्ड को पुन: व्यवस्थित करता है, जिससे खाता फ़्लैगिंग जोखिम काफी कम हो जाता है। प्रॉक्सी आईपी संरक्षित है - आपको एक साथ स्टील्थ **और** आईपी मास्किंग दोनों मिलते हैं - -**OMNI_टोकन_485** - -**OMNI_टोकन_486** - -<summary><b>🆓 4. "मैं कोडिंग के लिए AI का उपयोग करना चाहता हूं लेकिन मेरे पास पैसे नहीं हैं"</b></summary> - -हर कोई AI सदस्यता के लिए $20-200/माह का भुगतान नहीं कर सकता। छात्रों, उभरते देशों के डेवलपर्स, शौकीनों और फ्रीलांसरों को शून्य लागत पर गुणवत्ता वाले मॉडल तक पहुंच की आवश्यकता है। - -**ओम्नीरूट इसे कैसे हल करता है:** - -- **फ्री टियर प्रोवाइडर बिल्ट-इन** - 100% फ्री प्रदाताओं के लिए मूल समर्थन: Qoder (OAuth के माध्यम से 5 असीमित मॉडल: किमी-के2-थिंकिंग, क्वेन3-कोडर-प्लस, डीपसीक-आर1, मिनिमैक्स-एम2, किमी-के2), क्वेन (4 असीमित मॉडल: क्वेन3-कोडर-प्लस, क्वेन3-कोडर-फ्लैश, क्वेन3-कोडर-नेक्स्ट, विज़न-मॉडल), किरो (क्लाउड + एडब्ल्यूएस बिल्डर आईडी मुफ़्त), जेमिनी सीएलआई (180K टोकन/माह मुफ़्त) -- **ओलामा क्लाउड** - निःशुल्क "लाइट उपयोग" स्तर के साथ `api.ollama.com` पर क्लाउड-होस्टेड ओलामा मॉडल; `ollamacloud/<model>` उपसर्ग का उपयोग करें -- **केवल-निःशुल्क कॉम्बो** — चेन `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/माह, शून्य डाउनटाइम के साथ -- **एनवीडिया एनआईएम फ्री एक्सेस** - ~40 आरपीएम डेव-बिल्ड.एनवीडिया.कॉम पर 70+ मॉडलों तक हमेशा के लिए मुफ्त एक्सेस (क्रेडिट से शुद्ध दर सीमा तक संक्रमण) -- **लागत अनुकूलित रणनीति** - रूटिंग रणनीति जो स्वचालित रूप से सबसे सस्ते उपलब्ध प्रदाता को चुनती है - -**OMNI_टोकन_491** - -<details> -<summary><b>🔒 5. "मुझे अपने AI गेटवे को अनधिकृत पहुंच से बचाने की आवश्यकता है"</b></summary> - -नेटवर्क (LAN, VPS, Docker) में AI गेटवे को उजागर करते समय, पते वाला कोई भी व्यक्ति डेवलपर के टोकन/कोटा का उपभोग कर सकता है। सुरक्षा के बिना, एपीआई दुरुपयोग, त्वरित इंजेक्शन और दुरुपयोग के प्रति संवेदनशील हैं। - -**ओम्नीरूट इसे कैसे हल करता है:** - -- **एपीआई कुंजी प्रबंधन** - एक समर्पित `/dashboard/api-manager` पेज के साथ प्रति प्रदाता जनरेशन, रोटेशन और स्कोपिंग -- **मॉडल-स्तरीय अनुमतियाँ** - एपीआई कुंजियों को विशिष्ट मॉडलों तक सीमित करें (`openai/*`, वाइल्डकार्ड पैटर्न), सभी को अनुमति दें/प्रतिबंधित टॉगल के साथ -- **एपीआई एंडपॉइंट सुरक्षा** - `/v1/models` के लिए एक कुंजी की आवश्यकता है और विशिष्ट प्रदाताओं को लिस्टिंग से ब्लॉक करें -- **ऑथ गार्ड + सीएसआरएफ सुरक्षा** - सभी डैशबोर्ड रूट `withAuth` मिडलवेयर + सीएसआरएफ टोकन से सुरक्षित हैं -- **रेट लिमिटर** - कॉन्फ़िगर करने योग्य विंडो के साथ प्रति-आईपी दर सीमित करना -- **आईपी फ़िल्टरिंग** - अभिगम नियंत्रण के लिए अनुमति सूची/अवरुद्ध सूची -- **प्रॉम्प्ट इंजेक्शन गार्ड** - दुर्भावनापूर्ण प्रॉम्प्ट पैटर्न के विरुद्ध स्वच्छता -- **एईएस-256-जीसीएम एन्क्रिप्शन** - क्रेडेंशियल आराम से एन्क्रिप्ट किए गए - -**OMNI_टोकन_497** - -<details> -<summary><b>🛑 6. "मेरा प्रदाता बंद हो गया और मैंने अपना कोडिंग प्रवाह खो दिया"</b></summary> - -एआई प्रदाता अस्थिर हो सकते हैं, 5xx त्रुटियाँ लौटा सकते हैं, या अस्थायी दर सीमा तक पहुँच सकते हैं। यदि कोई डेवलपर किसी एकल प्रदाता पर निर्भर करता है, तो वे बाधित हो जाते हैं। सर्किट ब्रेकर के बिना, बार-बार पुनः प्रयास करने से एप्लिकेशन क्रैश हो सकता है। - -**ओम्नीरूट इसे कैसे हल करता है:** - -- **प्रति-मॉडल सर्किट ब्रेकर** - कॉन्फ़िगर करने योग्य थ्रेसहोल्ड और कूलडाउन (बंद/खुला/आधा-खुला) के साथ ऑटो-खुला/बंद, कैस्केडिंग ब्लॉक से बचने के लिए प्रति-मॉडल स्कोप्ड -- **एक्सपोनेंशियल बैकऑफ़** - प्रगतिशील पुनः प्रयास में देरी -- **एंटी-थंडरिंग हर्ड** - म्यूटेक्स + समवर्ती रिट्री तूफानों के खिलाफ सेमाफोर सुरक्षा -- **कॉम्बो फ़ॉलबैक चेन** - यदि प्राथमिक प्रदाता विफल हो जाता है, तो बिना किसी हस्तक्षेप के स्वचालित रूप से चेन से गिर जाता है -- **कॉम्बो सर्किट ब्रेकर** - कॉम्बो श्रृंखला के भीतर विफल प्रदाताओं को स्वचालित रूप से अक्षम करता है -- **स्वास्थ्य डैशबोर्ड** - अपटाइम मॉनिटरिंग, सर्किट ब्रेकर स्थिति, लॉकआउट, कैश आँकड़े, p50/p95/p99 विलंबता - -**OMNI_टोकन_503** - -**OMNI_टोकन_504** - -<summary><b>🔧 7. "प्रत्येक AI उपकरण को कॉन्फ़िगर करना कठिन और दोहराव वाला है"</b></summary> - -डेवलपर्स कर्सर, क्लाउड कोड, कोडेक्स सीएलआई, ओपनक्लाव, जेमिनी सीएलआई, किलो कोड का उपयोग करते हैं... प्रत्येक टूल को एक अलग कॉन्फ़िगरेशन (एपीआई एंडपॉइंट, कुंजी, मॉडल) की आवश्यकता होती है। प्रदाताओं या मॉडलों को स्विच करते समय पुन: कॉन्फ़िगर करना समय की बर्बादी है। - -**ओम्नीरूट इसे कैसे हल करता है:** - -- **सीएलआई टूल्स डैशबोर्ड** - क्लाउड कोड, कोडेक्स सीएलआई, ओपनक्लाव, किलो कोड, एंटीग्रेविटी, क्लाइन के लिए एक-क्लिक सेटअप वाला समर्पित पेज -- **GitHub Copilot कॉन्फिग जेनरेटर** — बल्क मॉडल चयन के साथ VS कोड के लिए `chatLanguageModels.json` जेनरेट करता है -- **ऑनबोर्डिंग विज़ार्ड** - पहली बार उपयोगकर्ताओं के लिए निर्देशित 4-चरणीय सेटअप -- **एक समापन बिंदु, सभी मॉडल** - `http://localhost:20128/v1` को एक बार कॉन्फ़िगर करें, 67+ प्रदाताओं तक पहुंचें - -</details> - -<details> -<summary><b>🔑 8. "एकाधिक प्रदाताओं से OAuth टोकन प्रबंधित करना नरक है"</b></summary> - -क्लाउड कोड, कोडेक्स, जेमिनी सीएलआई, कोपायलट - सभी समाप्त होने वाले टोकन के साथ OAuth 2.0 का उपयोग करते हैं। डेवलपर्स को लगातार पुन: प्रमाणित करने, `client_secret is missing`, `redirect_uri_mismatch` और दूरस्थ सर्वर पर विफलताओं से निपटने की आवश्यकता होती है। LAN/VPS पर OAuth विशेष रूप से समस्याग्रस्त है। - -**ओम्नीरूट इसे कैसे हल करता है:** - -- **ऑटो टोकन रिफ्रेश** - OAuth टोकन समाप्ति से पहले पृष्ठभूमि में रिफ्रेश होते हैं -- **OAuth 2.0 (PKCE) बिल्ट-इन** - क्लाउड कोड, कोडेक्स, जेमिनी सीएलआई, कोपायलट, किरो, क्वेन, आईफ्लो के लिए स्वचालित प्रवाह -- **मल्टी-अकाउंट OAuth** - JWT/ID टोकन निष्कर्षण के माध्यम से प्रति प्रदाता एकाधिक खाते -- **OAuth LAN/रिमोट फिक्स** - `redirect_uri` के लिए निजी आईपी डिटेक्शन + रिमोट सर्वर के लिए मैनुअल यूआरएल मोड -- **Nginx के पीछे OAuth** - रिवर्स प्रॉक्सी संगतता के लिए `window.location.origin` का उपयोग करता है -- **दूरस्थ OAuth मार्गदर्शिका** — VPS/Docker पर Google क्लाउड क्रेडेंशियल के लिए चरण-दर-चरण मार्गदर्शिका - -</details> - -<details> -<summary><b>📊 9. "मुझे नहीं पता कि मैं कितना और कहां खर्च कर रहा हूं"</b></summary> - -डेवलपर्स कई भुगतान प्रदाताओं का उपयोग करते हैं लेकिन खर्च के बारे में कोई एकीकृत दृष्टिकोण नहीं रखते हैं। प्रत्येक प्रदाता का अपना बिलिंग डैशबोर्ड होता है, लेकिन कोई समेकित दृश्य नहीं होता है। अप्रत्याशित लागतें बढ़ सकती हैं। - -**ओम्नीरूट इसे कैसे हल करता है:** - -- **लागत विश्लेषण डैशबोर्ड** — प्रति प्रदाता प्रति टोकन लागत ट्रैकिंग और बजट प्रबंधन -- **प्रति स्तर बजट सीमा** - प्रति स्तर खर्च की अधिकतम सीमा जो स्वचालित फ़ॉलबैक को ट्रिगर करती है -- **प्रति-मॉडल मूल्य निर्धारण कॉन्फ़िगरेशन** - प्रति मॉडल कॉन्फ़िगर करने योग्य कीमतें -- **प्रति एपीआई कुंजी उपयोग सांख्यिकी** - अनुरोध गणना और प्रति कुंजी अंतिम बार उपयोग किया गया टाइमस्टैम्प -- **एनालिटिक्स डैशबोर्ड** - स्टेट कार्ड, मॉडल उपयोग चार्ट, सफलता दर और विलंबता के साथ प्रदाता तालिका - -</details> - -<details> -<summary><b>🐛 10. "मैं AI कॉल में त्रुटियों और समस्याओं का निदान नहीं कर सकता"</b></summary> - -जब कोई कॉल विफल हो जाती है, तो देव को पता नहीं चलता कि यह दर सीमा, समाप्त टोकन, गलत प्रारूप या प्रदाता त्रुटि थी। विभिन्न टर्मिनलों पर खंडित लॉग। अवलोकन के बिना, डिबगिंग परीक्षण-और-त्रुटि है। - -**ओम्नीरूट इसे कैसे हल करता है:** - -- **एकीकृत लॉग डैशबोर्ड** - 4 टैब: अनुरोध लॉग, प्रॉक्सी लॉग, ऑडिट लॉग, कंसोल -- **कंसोल लॉग व्यूअर** - रंग-कोडित स्तरों, ऑटो-स्क्रॉल, खोज, फ़िल्टर के साथ वास्तविक समय टर्मिनल-शैली व्यूअर -- **SQLite प्रॉक्सी लॉग** - लगातार लॉग जो सर्वर पुनरारंभ होने से बचे रहते हैं -- **अनुवादक खेल का मैदान** - 4 डिबगिंग मोड: खेल का मैदान (प्रारूप अनुवाद), चैट टेस्टर (राउंड-ट्रिप), टेस्ट बेंच (बैच), लाइव मॉनिटर (वास्तविक समय) -- **अनुरोध टेलीमेट्री** - p50/p95/p99 विलंबता + X-अनुरोध-आईडी ट्रेसिंग -- **रोटेशन के साथ फ़ाइल-आधारित लॉगिंग** - कंसोल इंटरसेप्टर आकार-आधारित रोटेशन के साथ JSON लॉग में सब कुछ कैप्चर करता है -- **सिस्टम जानकारी रिपोर्ट** - `npm run system-info` आपके पूर्ण वातावरण (नोड संस्करण, ओमनीरूट संस्करण, ओएस, सीएलआई उपकरण, डॉकर/पीएम2 स्थिति) के साथ `system-info.txt` उत्पन्न करता है। त्वरित ट्राइएज के लिए समस्याओं की रिपोर्ट करते समय इसे संलग्न करें। - -</details> - -<details> -<summary><b>🏗️ 11. "गेटवे की तैनाती और रखरखाव जटिल है"</b></summary> - -विभिन्न वातावरणों (स्थानीय, वीपीएस, डॉकर, क्लाउड) में एआई प्रॉक्सी को स्थापित करना, कॉन्फ़िगर करना और बनाए रखना श्रम-गहन है। हार्डकोडेड पथ, निर्देशिकाओं पर `EACCES`, पोर्ट विरोध और क्रॉस-प्लेटफ़ॉर्म बिल्ड जैसी समस्याएं घर्षण बढ़ाती हैं। - -**ओम्नीरूट इसे कैसे हल करता है:** - -- **एनपीएम ग्लोबल इंस्टाल** — `npm install -g omniroute && omniroute` — हो गया -- **डॉकर मल्टी-प्लेटफ़ॉर्म** - AMD64 + ARM64 नेटिव (Apple सिलिकॉन, AWS ग्रेविटॉन, रास्पबेरी पाई) -- **डॉकर कंपोज प्रोफाइल** - `base` (कोई CLI उपकरण नहीं) और `cli` (क्लाउड कोड, कोडेक्स, ओपनक्लॉ के साथ) -- **इलेक्ट्रॉन डेस्कटॉप ऐप** - सिस्टम ट्रे, ऑटो-स्टार्ट, ऑफ़लाइन मोड के साथ विंडोज/मैकओएस/लिनक्स के लिए मूल ऐप -- **स्प्लिट-पोर्ट मोड** - उन्नत परिदृश्यों के लिए अलग-अलग पोर्ट पर एपीआई और डैशबोर्ड (रिवर्स प्रॉक्सी, कंटेनर नेटवर्किंग) -- **क्लाउड सिंक** - क्लाउडफ्लेयर वर्कर्स के माध्यम से सभी डिवाइसों में कॉन्फिग सिंक्रोनाइजेशन -- **डीबी बैकअप** - सभी सेटिंग्स का स्वचालित बैकअप, पुनर्स्थापना, निर्यात और आयात - -**OMNI_टोकन_533** - -**OMNI_टोकन_534** - -<summary><b>🌍 12. "इंटरफ़ेस केवल अंग्रेजी है और मेरी टीम अंग्रेजी नहीं बोलती"</b></summary> - -गैर-अंग्रेजी भाषी देशों, विशेष रूप से लैटिन अमेरिका, एशिया और यूरोप में टीमें, केवल अंग्रेजी इंटरफेस के साथ संघर्ष करती हैं। भाषा बाधाएँ अपनाने को कम करती हैं और कॉन्फ़िगरेशन त्रुटियों को बढ़ाती हैं। - -**ओम्नीरूट इसे कैसे हल करता है:** - -- **डैशबोर्ड i18n - 30 भाषाएँ** - अरबी, बल्गेरियाई, डेनिश, जर्मन, स्पेनिश, फिनिश, फ्रेंच, हिब्रू, हिंदी, हंगेरियन, इंडोनेशियाई, इतालवी, जापानी, कोरियाई, मलय, डच, नॉर्वेजियन, पोलिश, पुर्तगाली (पीटी/बीआर), रोमानियाई, रूसी, स्लोवाक, स्वीडिश, थाई, यूक्रेनी, वियतनामी, चीनी, फिलिपिनो, अंग्रेजी सहित सभी 500+ कुंजियाँ अनुवादित -- **आरटीएल समर्थन** - अरबी और हिब्रू के लिए दाएं से बाएं समर्थन -- **बहु-भाषा रीडमी** - 30 पूर्ण दस्तावेज़ीकरण अनुवाद -- **भाषा चयनकर्ता** - वास्तविक समय स्विचिंग के लिए हेडर में ग्लोब आइकन - -**OMNI_टोकन_539** - -<details> -<summary><b>🔄 13. "मुझे चैट से अधिक की आवश्यकता है - मुझे एम्बेडिंग, चित्र, ऑडियो की आवश्यकता है"</b></summary> - -एआई का मतलब सिर्फ चैट पूरा करना नहीं है। देवों को छवियां उत्पन्न करने, ऑडियो ट्रांसक्राइब करने, आरएजी के लिए एम्बेडिंग बनाने, दस्तावेज़ों को फिर से रैंक करने और सामग्री को मॉडरेट करने की आवश्यकता होती है। प्रत्येक एपीआई का एक अलग समापन बिंदु और प्रारूप होता है। - -**ओम्नीरूट इसे कैसे हल करता है:** - -- **एंबेडिंग** - `/v1/embeddings` 6 प्रदाताओं और 9+ मॉडल के साथ -- **इमेज जेनरेशन** - `/v1/images/generations` 10 प्रदाताओं और 20+ मॉडलों के साथ (ओपनएआई, एक्सएआई, टुगेदर, फायरवर्क्स, नेबियस, हाइपरबोलिक, नैनोबनाना, एंटीग्रेविटी, एसडी वेबयूआई, कॉम्फीयूआई) -- **टेक्स्ट-टू-वीडियो** — `/v1/videos/generations` — कॉम्फ़ीयूआई (एनिमेटडिफ़, एसवीडी) और एसडी वेबयूआई -- **टेक्स्ट-टू-म्यूजिक** — `/v1/music/generations` — कॉम्फीयूआई (स्थिर ऑडियो ओपन, म्यूजिकजेन) -- **ऑडियो ट्रांस्क्रिप्शन** — `/v1/audio/transcriptions` — व्हिस्पर + एनवीडिया एनआईएम, हगिंगफेस, क्वेन3 -- **टेक्स्ट-टू-स्पीच** — `/v1/audio/speech` — इलेवनलैब्स, एनवीडिया एनआईएम, हगिंगफेस, कोक्वी, टोरटोइज़, क्वेन3, **इनवर्ल्ड**, **कार्टेसिया**, **प्लेएचटी**, + मौजूदा प्रदाता -- **संयम** — `/v1/moderations` — सामग्री सुरक्षा जांच -- **पुनर्रैंकिंग** — `/v1/rerank` — दस्तावेज़ प्रासंगिकता पुन:रैंकिंग -- **प्रतिक्रिया एपीआई** - कोडेक्स के लिए पूर्ण `/v1/responses` समर्थन - -**OMNI_टोकन_545** - -**OMNI_टोकन_546** - -<summary><b>🧪 14. "मेरे पास सभी मॉडलों की गुणवत्ता का परीक्षण और तुलना करने का कोई तरीका नहीं है"</b></summary> - -डेवलपर्स जानना चाहते हैं कि उनके उपयोग के मामले में कौन सा मॉडल सबसे अच्छा है - कोड, अनुवाद, तर्क - लेकिन मैन्युअल रूप से तुलना करना धीमा है। कोई एकीकृत eval उपकरण मौजूद नहीं है। - -**ओम्नीरूट इसे कैसे हल करता है:** - -- **एलएलएम मूल्यांकन** - अभिवादन, गणित, भूगोल, कोड जनरेशन, JSON अनुपालन, अनुवाद, मार्कडाउन, सुरक्षा इनकार को कवर करने वाले 10 प्री-लोडेड मामलों के साथ गोल्डन सेट परीक्षण -- **4 मैच रणनीतियाँ** — `exact`, `contains`, `regex`, `custom` (JS फ़ंक्शन) -- **अनुवादक खेल का मैदान परीक्षण बेंच** - एकाधिक इनपुट और अपेक्षित आउटपुट, क्रॉस-प्रदाता तुलना के साथ बैच परीक्षण -- **चैट परीक्षक** - दृश्य प्रतिक्रिया प्रतिपादन के साथ पूर्ण राउंड-ट्रिप -- **लाइव मॉनिटर** - प्रॉक्सी के माध्यम से बहने वाले सभी अनुरोधों की वास्तविक समय स्ट्रीम - -**OMNI_टोकन_551** - -**OMNI_टोकन_552** - -<summary><b>📈 15. "मुझे प्रदर्शन खोए बिना स्केल करने की आवश्यकता है"</b></summary> - -जैसे-जैसे अनुरोध की मात्रा बढ़ती है, कैशिंग के बिना वही प्रश्न डुप्लिकेट लागत उत्पन्न करते हैं। निष्क्रियता के बिना, डुप्लिकेट अपशिष्ट प्रसंस्करण का अनुरोध करता है। प्रति-प्रदाता दर सीमा का सम्मान किया जाना चाहिए। - -**ओम्नीरूट इसे कैसे हल करता है:** - -- **सिमेंटिक कैश** - दो-स्तरीय कैश (हस्ताक्षर + सिमेंटिक) लागत और विलंबता को कम करता है -- **अनुरोध Idempotency** - समान अनुरोधों के लिए 5s डिडुप्लीकेशन विंडो -- **दर सीमा का पता लगाना** - प्रति-प्रदाता आरपीएम, न्यूनतम अंतर, और अधिकतम समवर्ती ट्रैकिंग -- **संपादन योग्य दर सीमाएँ** — सेटिंग्स में कॉन्फ़िगर करने योग्य डिफ़ॉल्ट → दृढ़ता के साथ लचीलापन -- **एपीआई कुंजी सत्यापन कैश** - उत्पादन प्रदर्शन के लिए 3-स्तरीय कैश -- **टेलीमेट्री के साथ स्वास्थ्य डैशबोर्ड** — p50/p95/p99 विलंबता, कैश आँकड़े, अपटाइम - -</details> - -**OMNI_टोकन_558** - -<summary><b>🤖 16. "मैं विश्व स्तर पर मॉडल व्यवहार को नियंत्रित करना चाहता हूं"</b></summary> - -ऐसे डेवलपर जो सभी प्रतिक्रियाएं एक विशिष्ट भाषा में, एक विशिष्ट लहजे में चाहते हैं, या तर्क टोकन को सीमित करना चाहते हैं। प्रत्येक टूल/अनुरोध में इसे कॉन्फ़िगर करना अव्यावहारिक है। - -**ओम्नीरूट इसे कैसे हल करता है:** - -- **सिस्टम प्रॉम्प्ट इंजेक्शन** — ग्लोबल प्रॉम्प्ट सभी अनुरोधों पर लागू होता है -- **सोच बजट सत्यापन** - प्रति अनुरोध तर्क टोकन आवंटन नियंत्रण (पासथ्रू, ऑटो, कस्टम, अनुकूली) -- **6 रूटिंग रणनीतियाँ** - वैश्विक रणनीतियाँ जो यह निर्धारित करती हैं कि अनुरोध कैसे वितरित किए जाते हैं -- **वाइल्डकार्ड राउटर** — `provider/*` पैटर्न किसी भी प्रदाता को गतिशील रूप से रूट करता है -- **कॉम्बो सक्षम/अक्षम टॉगल** — कॉम्बो को सीधे डैशबोर्ड से टॉगल करें -- **प्रदाता टॉगल** — एक क्लिक से प्रदाता के लिए सभी कनेक्शन सक्षम/अक्षम करें -- **अवरुद्ध प्रदाता** - `/v1/models` सूची से विशिष्ट प्रदाताओं को बाहर करें - -**OMNI_टोकन_563** - -**OMNI_टोकन_564** - -<summary><b>🧰 17. "मुझे प्रथम श्रेणी उत्पाद क्षमताओं के रूप में MCP टूल की आवश्यकता है"</b></summary> - -कई एआई गेटवे एमसीपी को केवल एक छिपे हुए कार्यान्वयन विवरण के रूप में उजागर करते हैं। टीमों को एक दृश्यमान, प्रबंधनीय संचालन परत की आवश्यकता होती है। - -**ओम्नीरूट इसे कैसे हल करता है:** - -- एमसीपी डैशबोर्ड नेविगेशन और एंडपॉइंट प्रोटोकॉल टैब में दिखाई देता है -- प्रक्रिया, उपकरण, कार्यक्षेत्र और ऑडिट के साथ समर्पित एमसीपी प्रबंधन पृष्ठ -- `omniroute --mcp` और क्लाइंट ऑनबोर्डिंग के लिए बिल्ट-इन क्विक-स्टार्ट - -</details> - -<details> -<summary><b>🧠 18. "मुझे सिंक + स्ट्रीम कार्य पथों के साथ A2A ऑर्केस्ट्रेशन की आवश्यकता है"</b></summary> - -एजेंट वर्कफ़्लो को जीवनचक्र नियंत्रण के साथ सीधे उत्तर और लंबे समय तक चलने वाले स्ट्रीम निष्पादन दोनों की आवश्यकता होती है। - -**ओम्नीरूट इसे कैसे हल करता है:** - -- A2A JSON-RPC एंडपॉइंट (`POST /a2a`) `message/send` और `message/stream` के साथ -- टर्मिनल राज्य प्रसार के साथ एसएसई स्ट्रीमिंग -- `tasks/get` और `tasks/cancel` के लिए कार्य जीवनचक्र API - -**OMNI_टोकन_575** - -**OMNI_टोकन_576** - -<summary><b>🛰️ 19. "मुझे वास्तविक MCP प्रक्रिया स्वास्थ्य की आवश्यकता है, अनुमानित स्थिति की नहीं"</b></summary> - -परिचालन टीमों को यह जानने की जरूरत है कि क्या एमसीपी वास्तव में जीवित है, न कि केवल एपीआई पहुंच योग्य है या नहीं। - -**ओम्नीरूट इसे कैसे हल करता है:** - -- पीआईडी, टाइमस्टैम्प, ट्रांसपोर्ट, टूल काउंट और स्कोप मोड के साथ रनटाइम हार्टबीट फ़ाइल -- एमसीपी स्थिति एपीआई दिल की धड़कन + हाल की गतिविधि का संयोजन -- प्रक्रिया/अपटाइम/दिल की धड़कन ताजगी के लिए यूआई स्टेटस कार्ड - -**OMNI_टोकन_581** - -**OMNI_टोकन_582** - -<summary><b>📋 20. "मुझे ऑडिटेबल MCP टूल निष्पादन की आवश्यकता है"</b></summary> - -जब उपकरण कॉन्फ़िगरेशन को बदलते हैं या ऑप्स क्रियाओं को ट्रिगर करते हैं, तो टीमों को फोरेंसिक ट्रैसेबिलिटी की आवश्यकता होती है। - -**ओम्नीरूट इसे कैसे हल करता है:** - -- MCP टूल कॉल के लिए SQLite समर्थित ऑडिट लॉगिंग -- टूल, सफलता/असफलता, एपीआई कुंजी और पेजिनेशन द्वारा फ़िल्टर -- डैशबोर्ड ऑडिट टेबल + स्वचालन के लिए आँकड़े समापन बिंदु - -**OMNI_टोकन_587** - -**OMNI_टोकन_588** - -<summary><b>🔐 21. "मुझे प्रति एकीकरण के लिए स्कोप्ड MCP अनुमतियों की आवश्यकता है"</b></summary> - -विभिन्न ग्राहकों को टूल श्रेणियों तक कम से कम विशेषाधिकार प्राप्त होना चाहिए। - -**ओम्नीरूट इसे कैसे हल करता है:** - -- नियंत्रित टूल एक्सेस के लिए 9 दानेदार एमसीपी स्कोप -- एमसीपी प्रबंधन यूआई में दायरा प्रवर्तन और दृश्यता -- परिचालन टूलींग के लिए सुरक्षित डिफ़ॉल्ट मुद्रा - -**OMNI_टोकन_593** - -**OMNI_टोकन_594** - -<summary><b>⚙️ 22. "मुझे पुनः तैनाती के बिना परिचालन नियंत्रण की आवश्यकता है"</b></summary> - -घटनाओं या लागत आयोजनों के दौरान टीमों को त्वरित रनटाइम परिवर्तन की आवश्यकता होती है। - -**ओम्नीरूट इसे कैसे हल करता है:** - -- कॉम्बो सक्रियण को सीधे एमसीपी डैशबोर्ड से स्विच करें -- पूर्व-निर्धारित पॉलिसी पैक से लचीलापन प्रोफ़ाइल लागू करें -- उसी ऑपरेशन पैनल से सर्किट ब्रेकर स्थिति को रीसेट करें - -</details> - -<details> -<summary><b>🔄 23. "मुझे लाइव A2A कार्य जीवनचक्र दृश्यता और रद्दीकरण की आवश्यकता है"</b></summary> - -जीवनचक्र दृश्यता के बिना, कार्य घटनाओं का परीक्षण करना कठिन हो जाता है। - -**ओम्नीरूट इसे कैसे हल करता है:** - -- पेजिनेशन के साथ राज्य/कौशल द्वारा कार्य सूचीकरण/फ़िल्टरिंग -- कार्य मेटाडेटा, घटनाओं और कलाकृतियों पर ड्रिल-डाउन -- पुष्टि के साथ कार्य रद्दीकरण समापन बिंदु और यूआई कार्रवाई - -**OMNI_टोकन_605** - -**OMNI_टोकन_606** - -<summary><b>🌊 24. "मुझे A2A लोड के लिए सक्रिय स्ट्रीम मेट्रिक्स की आवश्यकता है"</b></summary> - -स्ट्रीमिंग वर्कफ़्लो के लिए समवर्ती और लाइव कनेक्शन में परिचालन अंतर्दृष्टि की आवश्यकता होती है। - -**ओम्नीरूट इसे कैसे हल करता है:** - -- सक्रिय स्ट्रीम काउंटर A2A स्थिति में एकीकृत -- अंतिम कार्य टाइमस्टैम्प और प्रति-राज्य गणना -- वास्तविक समय ऑप्स निगरानी के लिए A2A डैशबोर्ड कार्ड - -**OMNI_टोकन_611** - -**OMNI_टोकन_612** - -<summary><b>🪪 25. "मुझे ग्राहकों के लिए मानक एजेंट खोज की आवश्यकता है"</b></summary> - -बाहरी ग्राहकों और ऑर्केस्ट्रेटर्स को ऑनबोर्डिंग के लिए मशीन-पठनीय मेटाडेटा की आवश्यकता होती है। - -**ओम्नीरूट इसे कैसे हल करता है:** - -- एजेंट कार्ड `/.well-known/agent.json` पर प्रदर्शित किया गया -- प्रबंधन यूआई में दिखाई गई क्षमताएं और कौशल -- A2A स्थिति API में स्वचालन के लिए खोज मेटाडेटा शामिल है - -**OMNI_टोकन_617** - -**OMNI_टोकन_618** - -<summary><b>🧭 26. "मुझे उत्पाद UX में प्रोटोकॉल खोज योग्यता की आवश्यकता है"</b></summary> - -यदि उपयोगकर्ता प्रोटोकॉल सतहों की खोज नहीं कर पाते हैं, तो अपनाने और समर्थन की गुणवत्ता में गिरावट आती है। - -**ओम्नीरूट इसे कैसे हल करता है:** - -- प्रॉक्सी, एमसीपी, ए2ए और एपीआई एंडपॉइंट के लिए टैब के साथ समेकित **एंडपॉइंट** पेज -- एमसीपी और ए2ए के लिए इनलाइन सेवा स्थिति टॉगल (ऑनलाइन/ऑफ़लाइन)। -- सिंहावलोकन से लेकर समर्पित प्रबंधन टैब तक के लिंक - -**OMNI_टोकन_623** - -**OMNI_टोकन_624** - -<summary><b>🧪 27. "मुझे वास्तविक ग्राहकों के साथ एंड-टू-एंड प्रोटोकॉल सत्यापन की आवश्यकता है"</b></summary> - -रिलीज़ से पहले प्रोटोकॉल संगतता को सत्यापित करने के लिए मॉक परीक्षण पर्याप्त नहीं हैं। - -**ओम्नीरूट इसे कैसे हल करता है:** - -- E2E सुइट जो ऐप को बूट करता है और वास्तविक MCP SDK क्लाइंट ट्रांसपोर्ट का उपयोग करता है -- A2A क्लाइंट खोज, भेजने, स्ट्रीम करने, प्राप्त करने और प्रवाह को रद्द करने के लिए परीक्षण करता है -- एमसीपी ऑडिट और ए2ए कार्य एपीआई के खिलाफ दावों की क्रॉस-चेक करें - -**OMNI_टोकन_629** - -**OMNI_टोकन_630** - -<summary><b>📡 28. "मुझे सभी इंटरफेस में एकीकृत अवलोकन की आवश्यकता है"</b></summary> - -प्रोटोकॉल द्वारा अवलोकनशीलता को विभाजित करने से ब्लाइंड स्पॉट और लंबा एमटीटीआर बनता है। - -**ओम्नीरूट इसे कैसे हल करता है:** - -- एक उत्पाद में एकीकृत डैशबोर्ड/लॉग/एनालिटिक्स -- स्वास्थ्य + ऑडिट + ओपनएआई, एमसीपी और ए2ए परतों में टेलीमेट्री अनुरोध -- स्थिति और स्वचालन के लिए परिचालन एपीआई - -**OMNI_टोकन_635** - -**OMNI_टोकन_636** - -<summary><b>💼 29. "मुझे प्रॉक्सी + टूल्स + एजेंट ऑर्केस्ट्रेशन के लिए एक रनटाइम की आवश्यकता है"</b></summary> - -कई अलग-अलग सेवाएँ चलाने से परिचालन लागत और विफलता मोड बढ़ जाते हैं। - -**ओम्नीरूट इसे कैसे हल करता है:** - -- OpenAI-संगत प्रॉक्सी, MCP सर्वर और A2A सर्वर एक स्टैक में -- साझा प्रमाणीकरण, लचीलापन, डेटा भंडारण और अवलोकन क्षमता -- सभी संपर्क सतहों पर सुसंगत नीति मॉडल - -**OMNI_टोकन_641** - -**OMNI_टोकन_642** - -<summary><b>🚀 30. "मुझे ग्लू-कोड फैलाव के बिना एजेंटिक वर्कफ़्लो भेजने की आवश्यकता है"</b></summary> - -कई तदर्थ सेवाओं और स्क्रिप्ट्स को सिलाई करते समय टीमों की गति कम हो जाती है। - -**ओम्नीरूट इसे कैसे हल करता है:** - -- ग्राहकों और एजेंटों के लिए एकीकृत समापन बिंदु रणनीति -- अंतर्निहित प्रोटोकॉल प्रबंधन यूआई और धूम्रपान सत्यापन पथ -- उत्पादन के लिए तैयार नींव (सुरक्षा, लॉगिंग, लचीलापन, बैकअप) - -**OMNI_टोकन_647** - -### उदाहरण प्लेबुक (एकीकृत उपयोग के मामले) - -**प्लेबुक ए: सशुल्क सदस्यता + सस्ता बैकअप अधिकतम करें** - -```txt -Combo: "maximize-claude" - 1. cc/claude-opus-4-6 - 2. glm/glm-4.7 - 3. if/kimi-k2-thinking - -Monthly cost: $20 + small backup spend -Outcome: higher quality, near-zero interruption -``` - -**प्लेबुक बी: शून्य-लागत कोडिंग स्टैक** - -```txt -Combo: "free-forever" - 1. gc/gemini-3-flash - 2. if/kimi-k2-thinking - 3. qw/qwen3-coder-plus - -Monthly cost: $0 -Outcome: stable free coding workflow -``` - -**प्लेबुक सी: 24/7 हमेशा चालू फ़ॉलबैक श्रृंखला** - -```txt -Combo: "always-on" - 1. cc/claude-opus-4-6 - 2. cx/gpt-5.2-codex - 3. glm/glm-4.7 - 4. minimax/MiniMax-M2.1 - 5. if/kimi-k2-thinking - -Outcome: deep fallback depth for deadline-critical workloads -``` - -**प्लेबुक डी: एजेंट एमसीपी + ए2ए के साथ काम करता है** - -**OMNI_टोकन_5** - ---- - -## 🆓 निःशुल्क प्रारंभ करें - शून्य कॉन्फ़िगरेशन लागत - -> **$0/माह** पर मिनटों में AI कोडिंग सेटअप करें। इन मुफ़्त खातों को कनेक्ट करें और अंतर्निहित **फ़्री स्टैक** कॉम्बो का उपयोग करें। - -| कदम | कार्रवाई | प्रदाता अनलॉक | -| --- | ------------------------------------------------------ | ---------------------------------------------------------- | -| 1 | कनेक्ट **किरो** (AWS बिल्डर आईडी OAuth) | क्लाउड सॉनेट 4.5, हाइकु 4.5 - **असीमित** | -| 2 | कनेक्ट करें **Qoder** (Google OAuth) | किमी-के2-सोच, क्वेन3-कोडर-प्लस, डीपसीक-आर1... — **असीमित** | -| 3 | कनेक्ट **क्वेन** (डिवाइस कोड) | qwen3-कोडर-प्लस, qwen3-कोडर-फ़्लैश... — **असीमित** | -| 4 | कनेक्ट **मिथुन सीएलआई** (Google OAuth) | जेमिनी-3-फ़्लैश, जेमिनी-2.5-प्रो — **180K/महीना मुफ़्त** | -| 5 | `/dashboard/combos` → **निःशुल्क स्टैक ($0)** टेम्पलेट | सभी मुफ़्त प्रदाताओं को स्वचालित रूप से राउंड-रॉबिन करें | - -**किसी भी आईडीई/सीएलआई को यहां इंगित करें:** `http://localhost:20128/v1` · एपीआई कुंजी: `any-string` · हो गया। - -> **वैकल्पिक अतिरिक्त कवरेज (निःशुल्क भी):** ग्रोक एपीआई कुंजी (30 आरपीएम मुफ्त), एनवीडिया एनआईएम (40 आरपीएम मुफ्त, 70+ मॉडल), सेरेब्रास (1एम टोकन/दिन), लॉन्गकैट एपीआई कुंजी (50एम टोकन/दिन!), क्लाउडफ्लेयर वर्कर्स एआई (10के न्यूरॉन्स/दिन, 50+ मॉडल)। - -## ⚡ त्वरित शुरुआत - -### 1) इंस्टॉल करें और चलाएं - -**OMNI_टोकन_6** - -> **pnpm उपयोगकर्ता:** `better-sqlite3` और `@swc/core` के लिए आवश्यक मूल बिल्ड स्क्रिप्ट को सक्षम करने के लिए इंस्टॉल के बाद `pnpm approve-builds -g` चलाएँ: -> -> ```bash -> pnpm install -g omniroute -> pnpm approve-builds -g # Select all packages → approve -> omniroute -> ``` - -डैशबोर्ड `http://localhost:20128` पर खुलता है और API बेस URL `http://localhost:20128/v1` है। - -| आदेश | विवरण | -| ----------------------- | ----------------------------------------------------------------- | ----------- | -| `omniroute` | सर्वर प्रारंभ करें (`PORT=20128`, API और डैशबोर्ड एक ही पोर्ट पर) | -| `omniroute --port 3000` | कैनोनिकल/एपीआई पोर्ट को 3000 | पर सेट करें | -| `omniroute --mcp` | MCP सर्वर (stdio ट्रांसपोर्ट) प्रारंभ करें | -| `omniroute --no-open` | ब्राउज़र को स्वतः न खोलें | -| `omniroute --help` | सहायता दिखाएँ | - -वैकल्पिक स्प्लिट-पोर्ट मोड: - -**OMNI_टोकन_8** - -### 2) प्रदाताओं को कनेक्ट करें और अपनी एपीआई कुंजी बनाएं - -1. डैशबोर्ड खोलें → `Providers` और कम से कम एक प्रदाता (OAuth या API कुंजी) कनेक्ट करें। -2. डैशबोर्ड खोलें → `Endpoints` और एक एपीआई कुंजी बनाएं। -3. (वैकल्पिक) डैशबोर्ड खोलें → `Combos` और अपनी फ़ॉलबैक श्रृंखला सेट करें। - -### 3) अपने कोडिंग टूल को ओम्निरूट की ओर इंगित करें - -```txt -Base URL: http://localhost:20128/v1 -API Key: [copy from Endpoint page] -Model: if/kimi-k2-thinking (or any provider/model prefix) -``` - -क्लाउड कोड, कोडेक्स सीएलआई, जेमिनी सीएलआई, कर्सर, क्लाइन, ओपनक्लाव, ओपनकोड और ओपनएआई-संगत एसडीके के साथ काम करता है। - -### 4) प्रोटोकॉल सक्षम और मान्य करें (v2.0) - -**एमसीपी (टूल-संचालित संचालन के लिए):** - -```bash -omniroute --mcp -``` - -फिर अपने MCP क्लाइंट को `stdio` पर कनेक्ट करें और टूल का परीक्षण करें जैसे: - -- `omniroute_get_health` -- `omniroute_list_combos` - -**A2A (एजेंट-टू-एजेंट वर्कफ़्लो के लिए):** - -**OMNI_टोकन_11** - -**OMNI_टोकन_12** - -### 5) हर चीज़ को शुरू से अंत तक सत्यापित करें (अनुशंसित) - -**OMNI_टोकन_13** - -यह सुइट चल रहे ऐप के विरुद्ध वास्तविक MCP और A2A क्लाइंट प्रवाह को मान्य करता है। - -### वैकल्पिक: स्रोत से चलाएँ - -**OMNI_टोकन_14** - ---- - -## 🐳 डॉकर - -ओमनीरूट [Docker Hub](https://hub.docker.com/r/diegosouzapw/omniroute) पर सार्वजनिक डॉकर छवि के रूप में उपलब्ध है। - -**त्वरित दौड़:** - -**OMNI_टोकन_15** - -**पर्यावरण फ़ाइल के साथ:** - -**OMNI_टोकन_16** - -**डॉकर कंपोज़ का उपयोग करना:** - -**OMNI_टोकन_17** - -| छवि | टैग | आकार | विवरण | -| ------------------------ | -------- | -------- | ------------------- | -| `diegosouzapw/omniroute` | `latest` | ~250एमबी | नवीनतम स्थिर रिलीज़ | -| `diegosouzapw/omniroute` | `1.0.3` | ~250एमबी | वर्तमान संस्करण | - ---- - -## 🖥️ डेस्कटॉप ऐप - ऑफ़लाइन और हमेशा चालू - -> 🆕 **नया!** ओमनीरूट अब विंडोज, मैकओएस और लिनक्स के लिए **नेटिव डेस्कटॉप एप्लिकेशन** के रूप में उपलब्ध है। - -ओम्नीरूट को एक स्टैंडअलोन डेस्कटॉप ऐप के रूप में चलाएं - स्थानीय मॉडलों के लिए कोई टर्मिनल, कोई ब्राउज़र, कोई इंटरनेट आवश्यक नहीं है। इलेक्ट्रॉन-आधारित ऐप में शामिल हैं: - -- 🖥️ **नेटिव विंडो** - सिस्टम ट्रे एकीकरण के साथ समर्पित ऐप विंडो -- 🔄 **ऑटो-स्टार्ट** — सिस्टम लॉगिन पर ओमनीरूट लॉन्च करें -- 🔔 **मूल सूचनाएं** - कोटा समाप्त होने या प्रदाता समस्याओं के लिए अलर्ट प्राप्त करें -- ⚡ **वन-क्लिक इंस्टॉल** - एनएसआईएस (विंडोज़), डीएमजी (मैकओएस), ऐपइमेज (लिनक्स) -- 🌐 **ऑफ़लाइन मोड** — बंडल सर्वर के साथ पूरी तरह ऑफ़लाइन काम करता है - -### त्वरित शुरुआत - -**OMNI_टोकन_18** - -### सिस्टम ट्रे - -न्यूनतम होने पर, ओमनीरूट त्वरित क्रियाओं के साथ आपके सिस्टम ट्रे में रहता है: - -- डैशबोर्ड खोलें -- सर्वर पोर्ट बदलें -- आवेदन छोड़ें - -📖 पूर्ण दस्तावेज: [**OMNI_TOKEN_153**](electron/README.md) - ---- - -## 💰 मूल्य निर्धारण एक नज़र में - -| टियर | प्रदाता | लागत | कोटा रीसेट | के लिए सर्वश्रेष्ठ | -| ----------------- | ---------------------------- | --------------------------------- | ---------------------- | -------------------------------------- | -| **💳 सदस्यता** | क्लाउड कोड (प्रो) | $20/माह | 5 घंटे + साप्ताहिक | पहले ही सदस्यता ले ली है | -| | कोडेक्स (प्लस/प्रो) | $20-200/महीना | 5 घंटे + साप्ताहिक | OpenAI उपयोगकर्ता | -| | जेमिनी सीएलआई | **मुफ़्त** | 180K/माह + 1K/दिन | सब लोग! | -| | गिटहब कोपायलट | $10-19/माह | मासिक | GitHub उपयोगकर्ता | -| **🔑एपीआई कुंजी** | एनवीडिया एनआईएम | **मुफ़्त** (हमेशा के लिए देव) | ~40 आरपीएम | 70+ खुले मॉडल | -| | सेरेब्रस | **मुफ़्त** (1 मिलियन टोकन/दिन) | 60K टीपीएम / 30 आरपीएम | दुनिया का सबसे तेज़ | -| | ग्रोक | **मुफ़्त** (30 आरपीएम) | 14.4K आरपीडी | अल्ट्रा-फास्ट लामा/जेम्मा | -| | डीपसीक V3.2 | $0.27/$1.10 प्रति 1 मिलियन | कोई नहीं | सर्वोत्तम मूल्य/गुणवत्ता तर्क | -| | xAI ग्रोक-4 फास्ट | **$0.20/$0.50 प्रति 1 मिलियन** 🆕 | कोई नहीं | सबसे तेज़ + टूल कॉलिंग, अल्ट्रालो | -| | xAI ग्रोक-4 (मानक) | $0.20/$1.50 प्रति 1 मिलियन 🆕 | कोई नहीं | xAI से रीज़निंग फ्लैगशिप | -| | मिस्ट्रल | नि:शुल्क परीक्षण + सशुल्क | दर सीमित | यूरोपीय एआई | -| | ओपनराउटर | भुगतान-प्रति-उपयोग | कोई नहीं | 100+ मॉडल कुल मिलाकर। | -| **💰सस्ता** | GLM-5 (Z.AI के माध्यम से) 🆕 | $0.5/1 मिलियन | प्रतिदिन सुबह 10 बजे | 128K आउटपुट, नवीनतम फ्लैगशिप | -| | जीएलएम-4.7 | $0.6/1 मिलियन | प्रतिदिन सुबह 10 बजे | बजट बैकअप | -| | मिनीमैक्स एम2.5 🆕 | $0.3/1M इनपुट | 5 घंटे की रोलिंग | तर्क + एजेंटिक कार्य | -| | मिनीमैक्स एम2.1 | $0.2/1 मिलियन | 5 घंटे की रोलिंग | सबसे सस्ता विकल्प | -| | किमी K2.5 (मूनशॉट एपीआई) 🆕 | भुगतान-प्रति-उपयोग | कोई नहीं | डायरेक्ट मूनशॉट एपीआई एक्सेस | -| | किमी K2 | $9/महीना फ्लैट | 10एम टोकन/माह | अनुमानित लागत | -| **🆓 मुफ़्त** | आईफ्लो | **$0** | असीमित | 5 मॉडल असीमित | -| | क्वेन | **$0** | असीमित | 4 मॉडल असीमित | -| | किरो | **$0** | असीमित | क्लाउड सॉनेट/हाइकू (एडब्ल्यूएस बिल्डर) | -| | लॉन्गकैट फ्लैश-लाइट 🆕 | **$0** (50 मिलियन टोकन/दिन 🔥) | 1 आरपीएस | पृथ्वी पर सबसे बड़ा मुफ़्त कोटा | -| | परागण एआई 🆕 | **$0** (कोई कुंजी आवश्यक नहीं) | 1 अनुरोध/15s | जीपीटी-5, क्लाउड, डीपसीक, लामा 4 | -| | क्लाउडफ्लेयर वर्कर्स एआई 🆕 | **$0** (10K न्यूरॉन्स/दिन) | ~150 सम्मान/दिन | 50+ मॉडल, वैश्विक बढ़त | -| | स्केलवे एआई 🆕 | **$0** (कुल 1 मिलियन टोकन) | दर सीमित | ईयू/जीडीपीआर, क्वेन3 235बी, लामा 70बी | - -> 🆕 **नए मॉडल जोड़े गए (मार्च 2026):** $0.20/$0.50/M पर ग्रोक-4 फास्ट परिवार (1143ms पर बेंचमार्क - जेमिनी 2.5 फ्लैश से 30% तेज), 128K आउटपुट के साथ Z.AI के माध्यम से GLM-5, मिनीमैक्स M2.5 रीजनिंग, डीपसीक V3.2 अद्यतन मूल्य निर्धारण, मूनशॉट डायरेक्ट एपीआई के माध्यम से किमी K2.5। - -**💡 $0 कॉम्बो स्टैक - पूर्ण निःशुल्क सेटअप:** - -**OMNI_टोकन_19** - -**शून्य लागत. कोडिंग कभी बंद नहीं होती।** इसे एक ओमनीरूट कॉम्बो के रूप में कॉन्फ़िगर करें और सभी फ़ॉलबैक स्वचालित रूप से होते हैं - कोई मैन्युअल स्विचिंग नहीं। - ---- - ---- - -## 🆓 निःशुल्क मॉडल - आपको वास्तव में क्या मिलता है - -> नीचे दिए गए सभी मॉडल **शून्य क्रेडिट कार्ड की आवश्यकता के साथ 100% निःशुल्क** हैं। जब एक कोटा समाप्त हो जाता है तो ओमनीरूट उनके बीच ऑटो-रूट करता है - उन सभी को एक अटूट $0 कॉम्बो के लिए संयोजित करें। - -### 🔵 क्लाउड मॉडल (किरो के माध्यम से - एडब्ल्यूएस बिल्डर आईडी) - -| मॉडल | उपसर्ग | सीमा | दर सीमा | -| ------------------- | ------ | ---------- | --------------------------------- | -| `claude-sonnet-4.5` | `kr/` | **असीमित** | कोई रिपोर्ट नहीं की गई दैनिक सीमा | -| `claude-haiku-4.5` | `kr/` | **असीमित** | कोई रिपोर्ट नहीं की गई दैनिक सीमा | -| `claude-opus-4.6` | `kr/` | **असीमित** | किरो के माध्यम से नवीनतम रचना | - -### 🟢 QODER मॉडल (निःशुल्क OAuth - कोई क्रेडिट कार्ड नहीं) - -| मॉडल | उपसर्ग | सीमा | दर सीमा | -| ------------------ | ------ | ---------- | --------------------------- | -| `kimi-k2-thinking` | `if/` | **असीमित** | कोई रिपोर्ट की गई सीमा नहीं | -| `qwen3-coder-plus` | `if/` | **असीमित** | कोई रिपोर्ट की गई सीमा नहीं | -| `deepseek-r1` | `if/` | **असीमित** | कोई रिपोर्ट की गई सीमा नहीं | -| `minimax-m2.1` | `if/` | **असीमित** | कोई रिपोर्ट की गई सीमा नहीं | -| `kimi-k2` | `if/` | **असीमित** | कोई रिपोर्ट की गई सीमा नहीं | - -### 🟡 क्वेन मॉडल (डिवाइस कोड प्रामाणिक) - -| मॉडल | उपसर्ग | सीमा | दर सीमा | -| ------------------- | ------ | ---------- | --------------------------- | -| `qwen3-coder-plus` | `qw/` | **असीमित** | कोई रिपोर्ट की गई सीमा नहीं | -| `qwen3-coder-flash` | `qw/` | **असीमित** | कोई रिपोर्ट की गई सीमा नहीं | -| `qwen3-coder-next` | `qw/` | **असीमित** | कोई रिपोर्ट की गई सीमा नहीं | -| `vision-model` | `qw/` | **असीमित** | मल्टीमॉडल (चित्र) | - -### 🟣 जेमिनी सीएलआई (Google OAuth) - -| मॉडल | उपसर्ग | सीमा | दर सीमा | -| ------------------------ | ------ | -------------------------- | ------------- | -| `gemini-3-flash-preview` | `gc/` | **180K टोकन/माह** + 1K/दिन | मासिक रीसेट | -| **OMNI_टोकन_180** | `gc/` | 180K/माह (साझा पूल) | उच्च गुणवत्ता | - -### ⚫ एनवीडिया एनआईएम (मुफ्त एपीआई कुंजी - build.nvidia.com) - -| Tier | दैनिक सीमा | दर सीमा | नोट्स | -| ------------ | ------------------ | -------------- | ----------------------------------------------------- | -| मुफ़्त (देव) | कोई टोकन सीमा नहीं | **~40 आरपीएम** | 70+ मॉडल; 2025 के मध्य में शुद्ध दर सीमा में परिवर्तन | - -लोकप्रिय निःशुल्क मॉडल: `moonshotai/kimi-k2.5` (किमी K2.5), `z-ai/glm4.7` (GLM 4.7), `deepseek-ai/deepseek-v3.2` (डीपसीक V3.2), `nvidia/llama-3.3-70b-instruct`, `deepseek/deepseek-r1` - -### ⚪ सेरेब्रस (मुफ्त एपीआई कुंजी - inference.cerebras.ai) - -| टियर | दैनिक सीमा | दर सीमा | नोट्स | -| ------ | --------------------- | ---------------------- | --------------------------------------------------------- | -| मुफ़्त | **1 मिलियन टोकन/दिन** | 60K टीपीएम / 30 आरपीएम | दुनिया का सबसे तेज़ एलएलएम अनुमान; प्रतिदिन रीसेट होता है | - -मुफ़्त उपलब्ध: `llama-3.3-70b`, `llama-3.1-8b`, `deepseek-r1-distill-llama-70b` - -### 🔴 GROQ (निःशुल्क एपीआई कुंजी - console.groq.com) - -| टियर | दैनिक सीमा | दर सीमा | नोट्स | -| ------ | ---------------- | -------------------- | ----------------------------------------------- | -| मुफ़्त | **14.4K आरपीडी** | प्रति मॉडल 30 आरपीएम | कोई क्रेडिट कार्ड नहीं; 429 सीमा पर, शुल्क नहीं | - -निःशुल्क उपलब्ध: `llama-3.3-70b-versatile`, `gemma2-9b-it`, `mixtral-8x7b`, `whisper-large-v3` - -### 🔴 लॉन्गकैट एआई (फ्री एपीआई कुंजी - longcat.chat) 🆕 - -| मॉडल | उपसर्ग | दैनिक निःशुल्क कोटा | नोट्स | -| ----------------------------- | ------ | ------------------- | ------------------------------ | -| `LongCat-Flash-Lite` | `lc/` | **50M टोकन** 💥 | अब तक का सबसे बड़ा मुफ़्त कोटा | -| `LongCat-Flash-Chat` | `lc/` | 500K टोकन | मल्टी-टर्न चैट | -| `LongCat-Flash-Thinking` | `lc/` | 500K टोकन | तर्क/सीओटी | -| `LongCat-Flash-Thinking-2601` | `lc/` | 500K टोकन | जनवरी 2026 संस्करण | -| `LongCat-Flash-Omni-2603` | `lc/` | 500K टोकन | मल्टीमॉडल | - -> सार्वजनिक बीटा में रहते हुए 100% निःशुल्क। ईमेल या फोन से [longcat.chat](https://longcat.chat) पर साइन अप करें। प्रतिदिन 00:00 UTC पर रीसेट होता है। - -### 🟢 परागण एआई (कोई एपीआई कुंजी आवश्यक नहीं) 🆕 - -| मॉडल | उपसर्ग | दर सीमा | पीछे प्रदाता | -| ---------- | ------ | ------------ | ------------------ | -| `openai` | `pol/` | 1 अनुरोध/15s | जीपीटी-5 | -| `claude` | `pol/` | 1 अनुरोध/15s | एंथ्रोपिक क्लाउड | -| `gemini` | `pol/` | 1 अनुरोध/15s | गूगल जेमिनी | -| `deepseek` | `pol/` | 1 अनुरोध/15s | डीपसीक वी3 | -| `llama` | `pol/` | 1 अनुरोध/15s | मेटा लामा 4 स्काउट | -| `mistral` | `pol/` | 1 अनुरोध/15s | मिस्ट्रल एआई | - -> ✨ **शून्य घर्षण:** कोई साइनअप नहीं, कोई एपीआई कुंजी नहीं। खाली कुंजी फ़ील्ड के साथ परागण प्रदाता जोड़ें और यह तुरंत काम करता है। - -### 🟠 क्लाउडफ्लेयर वर्कर्स एआई (फ्री एपीआई कुंजी - क्लाउडफ्लेयर.कॉम) 🆕 - -| टियर | दैनिक न्यूरॉन्स | समतुल्य उपयोग | नोट्स | -| ------ | --------------- | ------------------------------------------- | ---------------------- | -| मुफ़्त | **10,000** | ~150 एलएलएम सम्मान / 500s ऑडियो / 15K एंबेड | वैश्विक बढ़त, 50+ मॉडल | - -लोकप्रिय निःशुल्क मॉडल: `@cf/meta/llama-3.3-70b-instruct`, `@cf/google/gemma-3-12b-it`, `@cf/openai/whisper-large-v3-turbo` (मुफ़्त ऑडियो!), `@cf/qwen/qwen2.5-coder-15b-instruct` - -> [dash.cloudflare.com](https://dash.cloudflare.com) से एपीआई टोकन + खाता आईडी की आवश्यकता है। प्रदाता सेटिंग्स में खाता आईडी संग्रहीत करें। - -### 🟣 स्केलवे एआई (1एम निःशुल्क टोकन - स्केलवे.कॉम) 🆕 - -| टियर | मुफ़्त कोटा | स्थान | नोट्स | -| ------ | ----------- | ------------ | ------------------------------------------------ | -| मुफ़्त | **1M टोकन** | 🇫🇷पेरिस, ईयू | सीमा के भीतर किसी क्रेडिट कार्ड की आवश्यकता नहीं | - -मुफ़्त उपलब्ध: `qwen3-235b-a22b-instruct-2507` (Qwen3 235B!), `llama-3.1-70b-instruct`, `mistral-small-3.2-24b-instruct-2506`, `deepseek-v3-0324` - -> ईयू/जीडीपीआर के अनुरूप। [console.scaleway.com](https://console.scaleway.com) पर API कुंजी प्राप्त करें। - -> **💡 परम निःशुल्क स्टैक (11 प्रदाता, $0 हमेशा के लिए):** -> -> ``` -> Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -> Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED -> LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 -> Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed -> Qwen (qw/) → qwen3-coder models UNLIMITED -> Gemini (gemini/) → Gemini 2.5 Flash — 1,500 req/day free -> Cloudflare AI (cf/) → 50+ models — 10K Neurons/day -> Scaleway (scw/) → Qwen3 235B, Llama 70B — 1M free tokens (EU) -> Groq (groq/) → Llama/Gemma — 14.4K req/day ultra-fast -> NVIDIA NIM (nvidia/) → 70+ open models — 40 RPM forever -> Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day -> ``` - -## 🎙️ निःशुल्क ट्रांसक्रिप्शन कॉम्बो - -> **$0** के लिए किसी भी ऑडियो/वीडियो को ट्रांसक्राइब करें - डीपग्राम $200 मुफ़्त, असेंबलीएआई $50 फ़ॉलबैक, ग्रोक व्हिस्पर असीमित आपातकालीन बैकअप के साथ अग्रणी है। - -| प्रदाता | मुफ़्त क्रेडिट | सर्वश्रेष्ठ मॉडल | दर सीमा | -| ----------------- | -------------------------- | ----------------------------------------- | ---------------------------------------- | -| 🟢 **दीपग्राम** | **$200 निःशुल्क** (साइनअप) | `nova-3` — सर्वोत्तम सटीकता, 30+ भाषाएँ | निःशुल्क क्रेडिट पर कोई आरपीएम सीमा नहीं | -| 🔵 **असेंबलीएआई** | **$50 निःशुल्क** (साइनअप) | `universal-3-pro` — अध्याय, भावना, पीआईआई | निःशुल्क क्रेडिट पर कोई आरपीएम सीमा नहीं | -| 🔴 **ग्रोक** | **हमेशा के लिए मुफ़्त** | `whisper-large-v3` — OpenAI व्हिस्पर | 30 आरपीएम (दर सीमित) | - -**`/dashboard/combos` में सुझाया गया कॉम्बो:** - -**OMNI_टोकन_21** - -फिर `/dashboard/media` → **ट्रांसक्रिप्शन** टैब में: कोई भी ऑडियो या वीडियो फ़ाइल अपलोड करें → अपना कॉम्बो एंडपॉइंट चुनें → समर्थित प्रारूपों में ट्रांसक्रिप्शन प्राप्त करें। - -## 💡 मुख्य विशेषताएं - -ओमनीरूट v2.0 को केवल एक रिले प्रॉक्सी नहीं, बल्कि एक ऑपरेशनल प्लेटफॉर्म के रूप में बनाया गया है। - -### 🆕 नया - क्लॉराउटर-प्रेरित सुधार (मार्च 2026) - -| फ़ीचर | यह क्या करता है | -| ----------------------------------- | -------------------------------------------------------------------------------------------------------- | -| ⚡ **ग्रोक-4 फास्ट फ़ैमिली** | $0.20/$0.50/M पर xAI मॉडल - बेंचमार्क 1143ms (जेमिनी 2.5 फ्लैश से 30% तेज) | -| 🧠 **Z.AI के माध्यम से GLM-5** | 128K आउटपुट संदर्भ, $0.5/1M - GLM परिवार का नवीनतम फ्लैगशिप | -| 🔮 **मिनीमैक्स एम2.5** | $0.30/1 मिलियन पर रीज़निंग + एजेंटिक कार्य - एम2.1 से महत्वपूर्ण उन्नयन | -| 🎯 **टूलकॉलिंग फ़्लैग प्रति मॉडल** | रजिस्ट्री में प्रति-मॉडल `toolCalling: true/false` - ऑटोकॉम्बो गैर-उपकरण-सक्षम मॉडल को छोड़ देता है | -| 🌍 **बहुभाषी आशय का पता लगाना** | ऑटोकॉम्बो स्कोरिंग में पीटी/जेडएच/ईएस/एआर कीवर्ड - गैर-अंग्रेजी सामग्री के लिए बेहतर मॉडल चयन | -| 📊 **बेंचमार्क-प्रेरित फ़ॉलबैक** | लाइव अनुरोधों से वास्तविक p95 विलंबता कॉम्बो स्कोरिंग फ़ीड करती है - ऑटोकॉम्बो वास्तविक डेटा से सीखता है | -| 🔁 **डुप्लीकेशन का अनुरोध** | कंटेंट-हैश आधारित डिडअप विंडो - मल्टी-एजेंट सुरक्षित, डुप्लिकेट शुल्क को रोकता है | -| 🔌 **प्लग करने योग्य राउटर रणनीति** | एक्स्टेंसिबल `RouterStrategy` इंटरफ़ेस — प्लगइन्स के रूप में कस्टम रूटिंग लॉजिक जोड़ें | - -### 🚀 पिछला v2.0.9+ - खेल का मैदान, सीएलआई फ़िंगरप्रिंट और एसीपी - -| फ़ीचर | यह क्या करता है | -| --------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 🎮 **मॉडल खेल का मैदान** | किसी भी मॉडल का सीधे परीक्षण करने के लिए डैशबोर्ड पेज - प्रदाता/मॉडल/एंडपॉइंट चयनकर्ता, मोनाको संपादक, स्ट्रीमिंग, निरस्त, समय | -| 🔏 **सीएलआई फ़िंगरप्रिंट मिलान** | मूल सीएलआई हस्ताक्षरों से मिलान करने के लिए प्रति-प्रदाता हेडर/बॉडी ऑर्डरिंग - सेटिंग्स> सुरक्षा में प्रति प्रदाता टॉगल करें। **आपका प्रॉक्सी आईपी संरक्षित है** | -| 🤝 **एसीपी सपोर्ट (एजेंट क्लाइंट प्रोटोकॉल)** | सीएलआई एजेंट खोज (कोडेक्स, क्लाउड, गूज़, जेमिनी सीएलआई, ओपनक्लॉ + 9 अधिक), प्रोसेस स्पॉनर, `/api/acp/agents` एंडपॉइंट | -| 🤖 **एसीपी एजेंट्स डैशबोर्ड** | डीबग › एजेंट पेज - किसी भी सीएलआई टूल के लिए इंस्टॉल स्थिति, संस्करण, कस्टम एजेंट फॉर्म के साथ 14 एजेंटों का ग्रिड। **ओपनकोड** उपयोगकर्ताओं को एक "डाउनलोड ओपनकोड.जेसन" बटन मिलता है जो सभी उपलब्ध मॉडलों के साथ उपयोग के लिए तैयार कॉन्फ़िगरेशन को स्वतः उत्पन्न करता है। | -| 🔧 **कस्टम मॉडल `apiFormat` रूटिंग** | `apiFormat: "responses"` वाले कस्टम मॉडल अब रिस्पॉन्स एपीआई अनुवादक पर सही ढंग से रूट करते हैं | -| 🏢 **कोडेक्स कार्यक्षेत्र अलगाव** | प्रति ईमेल एकाधिक कोडेक्स कार्यस्थान - OAuth कार्यस्थान आईडी द्वारा कनेक्शन को सही ढंग से अलग करता है | -| 🔄 **इलेक्ट्रॉन ऑटो-अपडेट** | डेस्कटॉप ऐप अपडेट की जांच करता है + रीस्टार्ट होने पर ऑटो-इंस्टॉल | - -### 🤖 एजेंट और प्रोटोकॉल संचालन (v2.0) - -| फ़ीचर | यह क्या करता है | -| ---------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | -------------------- | -| 🔧 **एमसीपी सर्वर (16 उपकरण)** | 3 ट्रांसपोर्ट के माध्यम से आईडीई/एजेंट उपकरण: stdio, SSE (`/api/mcp/sse`), स्ट्रीम करने योग्य HTTP (`/api/mcp/stream`) | -| 🤝 **A2A सर्वर (JSON-RPC + SSE)** | सिंक और स्ट्रीमिंग प्रवाह के साथ एजेंट-टू-एजेंट कार्य निष्पादन | -| 🧭 **समेकित समापन बिंदु पृष्ठ** | एंडपॉइंट प्रॉक्सी, एमसीपी, ए2ए और एपीआई एंडपॉइंट टैब के साथ टैब्ड प्रबंधन पृष्ठ | -| 🎚️ **सेवा सक्षम/अक्षम टॉगल** | सेटिंग्स दृढ़ता के साथ एमसीपी और ए2ए के लिए चालू/बंद स्विच (डिफ़ॉल्ट: बंद) | -| 🛰️ **एमसीपी रनटाइम हार्टबीट** | वास्तविक प्रक्रिया स्थिति (पीआईडी, अपटाइम, दिल की धड़कन की उम्र, परिवहन, स्कोप मोड) | -| 📋 **एमसीपी ऑडिट ट्रेल** | सफलता/असफलता और मुख्य एट्रिब्यूशन के साथ फ़िल्टर करने योग्य ऑडिट लॉग | -| 🔐 **एमसीपी स्कोप प्रवर्तन** | नियंत्रित टूल एक्सेस के लिए 9 ग्रैन्युलर स्कोप अनुमतियाँ | -| 📡 **A2A कार्य जीवनचक्र प्रबंधन** | कार्यों को सूचीबद्ध करें/फ़िल्टर करें, घटनाओं/कलाकृतियों का निरीक्षण करें, चल रहे कार्यों को रद्द करें | -| 📋 **एजेंट कार्ड डिस्कवरी** | क्लाइंट ऑटो-डिस्कवरी के लिए `/.well-known/agent.json` | -| 🧪 **प्रोटोकॉल E2E टेस्ट हार्नेस** | वास्तविक MCP SDK + A2A क्लाइंट `test:protocols:e2e` | में प्रवाहित होता है | -| ⚙️ **परिचालन नियंत्रण** | कॉम्बो स्विच करें, लचीलापन प्रोफ़ाइल लागू करें, एक नियंत्रण सतह से ब्रेकर रीसेट करें | - -### 🧠 रूटिंग और इंटेलिजेंस - -| फ़ीचर | यह क्या करता है | -| --------------------------------- | ------------------------------------------------------------------------ | -| 🎯 **स्मार्ट 4-टियर फ़ॉलबैक** | ऑटो-रूट: सदस्यता → एपीआई कुंजी → सस्ता → मुफ़्त | -| 📊 **वास्तविक समय कोटा ट्रैकिंग** | लाइव टोकन गिनती + प्रति प्रदाता रीसेट उलटी गिनती | -| 🔄 **प्रारूप अनुवाद** | OpenAI ↔ क्लाउड ↔ जेमिनी ↔ स्कीमा-सुरक्षित रूपांतरण के साथ प्रतिक्रियाएँ | -| 👥 **मल्टी-अकाउंट सपोर्ट** | बुद्धिमान चयन के साथ प्रति प्रदाता एकाधिक खाते | -| 🔄 **ऑटो टोकन रिफ्रेश** | OAuth टोकन पुनः प्रयास के साथ स्वचालित रूप से ताज़ा हो जाते हैं | -| 🎨 **कस्टम कॉम्बो** | 6 संतुलन रणनीतियाँ + फ़ॉलबैक श्रृंखला नियंत्रण | -| 🌐 **वाइल्डकार्ड राउटर** | `provider/*` डायनेमिक रूटिंग | -| 🧠 **सोच बजट नियंत्रण** | पासथ्रू, ऑटो, कस्टम और अनुकूली तर्क सीमाएँ | -| 🔀 **मॉडल उपनाम** | बिल्ट-इन + कस्टम मॉडल अलियासिंग और माइग्रेशन सुरक्षा | -| ⚡ **पृष्ठभूमि का क्षरण** | कम प्राथमिकता वाले पृष्ठभूमि कार्यों को सस्ते मॉडल पर रूट करें | -| 🧪 **टास्क-अवेयर स्मार्ट रूटिंग** | सामग्री प्रकार (कोडिंग/विज़न/विश्लेषण/सारांशीकरण) द्वारा स्वतः-चयन मॉडल | -| 💬 **सिस्टम प्रॉम्प्ट इंजेक्शन** | वैश्विक व्यवहार नियंत्रण लगातार लागू | -| 📄 **प्रतिक्रियाएं एपीआई संगतता** | कोडेक्स और उन्नत एजेंटिक वर्कफ़्लोज़ के लिए पूर्ण `/v1/responses` समर्थन | - -### 🎵 मल्टी-मॉडल एपीआई - -| फ़ीचर | यह क्या करता है | -| ---------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 🖼️ **छवि निर्माण** | `/v1/images/generations` क्लाउड और स्थानीय बैकएंड के साथ | -| 📐 **एंबेडिंग** | खोज और RAG पाइपलाइनों के लिए `/v1/embeddings` | -| 🎤 **ऑडियो ट्रांस्क्रिप्शन** | `/v1/audio/transcriptions` - 7 प्रदाता (डीपग्राम नोवा 3, असेंबलीएआई, ग्रोक व्हिस्पर, हगिंगफेस, इलेवनलैब्स, ओपनएआई, एज़्योर), ऑटो-लैंग्वेज डिटेक्शन, MP4/MP3/WAV सपोर्ट | -| 🔊 **टेक्स्ट-टू-स्पीच** | `/v1/audio/speech` - सही त्रुटि संदेशों के साथ 10 प्रदाता (इलेवनलैब्स, ओपनएआई, डीपग्राम, कार्टेसिया, प्लेएचटी, हगिंगफेस, एनवीडिया एनआईएम, इनवर्ल्ड, कोक्वी, टोरटोइज़) | -| 🎬 **वीडियो जेनरेशन** | `/v1/videos/generations` (ComfyUI + SD WebUI वर्कफ़्लो) | -| 🎵 **संगीत पीढ़ी** | `/v1/music/generations` (ComfyUI वर्कफ़्लोज़) | -| 🛡️ **संयम** | `/v1/moderations` सुरक्षा जांच | -| 🔀 **पुनर्रैंकिंग** | प्रासंगिकता स्कोरिंग के लिए `/v1/rerank` | -| 🔍 **वेब खोज** 🆕 | `/v1/search` - 5 प्रदाता (सर्पर, ब्रेव, पर्प्लेक्सिटी, एक्सा, टैविली), 6,500+ मुफ़्त/माह, ऑटो-फ़ेलओवर, कैश | - -### 🛡️ लचीलापन, सुरक्षा और शासन - -| फ़ीचर | यह क्या करता है | -| ------------------------------------- | ------------------------------------------------------------------------------------------------------------------ | -| 🔌 **सर्किट तोड़ने वाले** | प्रति-मॉडल यात्रा/सीमा नियंत्रण के साथ पुनर्प्राप्ति | -| 🎯 **एंडपॉइंट-अवेयर मॉडल** | कस्टम मॉडल समर्थित एंडपॉइंट + एपीआई प्रारूप की घोषणा करते हैं | -| 🛡️ **एंटी-थंडरिंग झुंड** | पुनः प्रयास/दर घटनाओं पर म्यूटेक्स + सेमाफोर सुरक्षा | -| 🧠 **सिमेंटिक + सिग्नेचर कैश** | दो कैश परतों के साथ लागत/विलंबता में कमी | -| ⚡ **निष्क्रियता का अनुरोध** | डुप्लिकेट सुरक्षा विंडो | -| 🔒 **टीएलएस फ़िंगरप्रिंट स्पूफ़िंग** | ब्राउज़र जैसा टीएलएस फ़िंगरप्रिंट - **बॉट डिटेक्शन और अकाउंट फ़्लैगिंग को कम करता है** | -| 🔏 **सीएलआई फ़िंगरप्रिंट मिलान** | मूल सीएलआई अनुरोध हस्ताक्षरों से मेल खाता है - **प्रॉक्सी आईपी को संरक्षित करते हुए प्रतिबंध जोखिम को कम करता है** | -| 🌐 **आईपी फ़िल्टरिंग** | उजागर तैनाती के लिए अनुमति सूची/अवरुद्ध सूची नियंत्रण | -| 📊 **संपादन योग्य दर सीमाएँ** | दृढ़ता के साथ कॉन्फ़िगर करने योग्य वैश्विक/प्रदाता-स्तर की सीमाएं | -| 🔑 **एपीआई कुंजी प्रबंधन + स्कोपिंग** | सुरक्षित कुंजी जारी करना/रोटेशन और मॉडल/प्रदाता नियंत्रण | -| 🛡️ **संरक्षित `/models`** | मॉडल कैटलॉग के लिए वैकल्पिक प्रमाणीकरण गेटिंग और प्रदाता छिपाना | - -### 📊 अवलोकनशीलता और विश्लेषण - -| फ़ीचर | यह क्या करता है | -| -------------------------------- | ------------------------------------------------------- | -| 📝 **अनुरोध + प्रॉक्सी लॉगिंग** | पूर्ण अनुरोध/प्रतिक्रिया और प्रॉक्सी लॉगिंग | -| 📉 **Streamed Detailed Logs** 🆕 | Reconstructs SSE payload streams cleanly into the UI | -| 📋 **एकीकृत लॉग डैशबोर्ड** | एक पृष्ठ में अनुरोध, प्रॉक्सी, ऑडिट और कंसोल दृश्य | -| 🔍 **टेलीमेट्री के लिए अनुरोध** | p50/p95/p99 विलंबता और अनुरोध अनुरेखण | -| 🏥 **स्वास्थ्य डैशबोर्ड** | अपटाइम, ब्रेकर स्थिति, लॉकआउट, कैश आँकड़े | -| 💰 **लागत ट्रैकिंग** | बजट नियंत्रण और प्रति-मॉडल मूल्य निर्धारण दृश्यता | -| 📈 **एनालिटिक्स विज़ुअलाइज़ेशन** | मॉडल/प्रदाता उपयोग अंतर्दृष्टि और रुझान दृश्य | -| 🧪 **मूल्यांकन ढाँचा** | विन्यास योग्य मिलान रणनीतियों के साथ गोल्डन सेट परीक्षण | - -### ☁️ परिनियोजन एवं प्लेटफार्म - -| फ़ीचर | यह क्या करता है | -| ------------------------------- | --------------------------------------------------------- | ------------------------------------ | -| 🌐 **कहीं भी तैनात करें** | लोकलहोस्ट, वीपीएस, डॉकर, क्लाउड वातावरण | -| 💾 **क्लाउड सिंक** | क्लाउड वर्कर के माध्यम से कॉन्फ़िगरेशन सिंक | -| 🔄 **बैकअप/पुनर्स्थापना** | निर्यात/आयात और आपदा पुनर्प्राप्ति प्रवाह | -| 🧙 **ऑनबोर्डिंग विज़ार्ड** | फर्स्ट-रन गाइडेड सेटअप | -| 🔧 **सीएलआई टूल्स डैशबोर्ड** | लोकप्रिय कोडिंग टूल के लिए एक-क्लिक सेटअप | -| 🎮 **मॉडल खेल का मैदान** | डैशबोर्ड से किसी भी प्रदाता/मॉडल/एंडपॉइंट का परीक्षण करें | -| 🔏 **सीएलआई फ़िंगरप्रिंट टॉगल** | सेटिंग्स > सुरक्षा | में प्रति प्रदाता फ़िंगरप्रिंट मिलान | -| 🌐 **i18n (30 भाषाएँ)** | पूर्ण डैशबोर्ड + आरटीएल कवरेज के साथ डॉक्स भाषा समर्थन | -| 🧹 **सभी मॉडल साफ़ करें** | प्रदाता विवरण में एक-क्लिक मॉडल सूची समाशोधन | -| 👁️ **Sidebar Controls** 🆕 | Hide components and integrations from Appearance Settings | -| 📋 **मुद्दा टेम्पलेट** | बग और सुविधाओं के लिए मानकीकृत GitHub टेम्पलेट | -| 📂 **कस्टम डेटा निर्देशिका** | भंडारण स्थान के लिए `DATA_DIR` ओवरराइड | - -### फ़ीचर डीप डाइव - -#### व्यावहारिक लागत नियंत्रण के साथ स्मार्ट फ़ॉलबैक - -**OMNI_टोकन_22** - -जब कोटा, दर, या स्वास्थ्य विफल हो जाता है, तो ओमनीरूट मैन्युअल स्विचिंग के बिना स्वचालित रूप से अगले उम्मीदवार के पास चला जाता है। - -#### प्रोटोकॉल प्रबंधन जो दृश्यमान और संचालन योग्य है - -- MCP + A2A UI और डॉक्स में खोजने योग्य हैं (छिपा हुआ नहीं) -- प्रोटोकॉल स्थिति एपीआई लाइव परिचालन डेटा को उजागर करते हैं (`/api/mcp/*`, `/api/a2a/*`) -- डैशबोर्ड में दिन-2 ऑप्स के लिए क्रियाएं शामिल हैं (कॉम्बो टॉगल, ब्रेकर रीसेट, कार्य रद्दीकरण) - -#### अनुवादक + सत्यापन वर्कफ़्लो - -अनुवादक क्षेत्र में शामिल हैं: - -- **खेल का मैदान**: परिवर्तन जांच का अनुरोध करें -- **चैट परीक्षक**: पूर्ण अनुरोध/प्रतिक्रिया राउंड-ट्रिप -- **टेस्ट बेंच**: एक बार में कई मामले -- **लाइव मॉनिटर**: वास्तविक समय यातायात दृश्य - -`npm run test:protocols:e2e` के माध्यम से वास्तविक ग्राहकों के साथ प्लस प्रोटोकॉल सत्यापन। - -> 📖 **[MCP Server README](open-sse/mcp-server/README.md)** - टूल संदर्भ, आईडीई कॉन्फ़िगरेशन और क्लाइंट उदाहरण -> -> 📖 **[A2A Server README](src/lib/a2a/README.md)** — कौशल, JSON-RPC विधियाँ, स्ट्रीमिंग, और कार्य जीवनचक्र - -## 🧪 मूल्यांकन (Evaluations) - -ओमनीरूट में गोल्डन सेट के मुकाबले एलएलएम प्रतिक्रिया गुणवत्ता का परीक्षण करने के लिए एक अंतर्निहित मूल्यांकन ढांचा शामिल है। डैशबोर्ड में **एनालिटिक्स → इवेल्स** के माध्यम से इसे एक्सेस करें। - -### बिल्ट-इन गोल्डन सेट - -प्री-लोडेड "ओम्नीरूट गोल्डन सेट" में इसके लिए परीक्षण मामले शामिल हैं: - -- नमस्ते, गणित, भूगोल, कोड जनरेशन -- JSON प्रारूप अनुपालन, अनुवाद, मार्कडाउन पीढ़ी -- सुरक्षा इनकार (हानिकारक सामग्री), गिनती, बूलियन तर्क - -### मूल्यांकन रणनीतियाँ - -| रणनीति | विवरण | उदाहरण | -| ---------- | ------------------------------------------------- | -------------------------------- | -| `exact` | आउटपुट बिल्कुल मेल खाना चाहिए | `"4"` | -| `contains` | आउटपुट में सबस्ट्रिंग (केस-असंवेदनशील) होना चाहिए | `"Paris"` | -| `regex` | आउटपुट रेगेक्स पैटर्न से मेल खाना चाहिए | `"1.*2.*3"` | -| `custom` | कस्टम जेएस फ़ंक्शन सही/गलत लौटाता है | `(output) => output.length > 10` | - ---- - -## 📖 सेटअप गाइड - -### प्रोटोकॉल सेटअप (एमसीपी + ए2ए) - -**OMNI_टोकन_648** - -<summary><b>🧩 MCP सेटअप (मॉडल संदर्भ प्रोटोकॉल)</b></summary> - -stdio मोड में MCP ट्रांसपोर्ट प्रारंभ करें: - -**OMNI_टोकन_23** - -अनुशंसित सत्यापन प्रवाह: - -1. अपने MCP क्लाइंट को stdio से कनेक्ट करें। -2. `omniroute_get_health` चलाएँ। -3. `omniroute_list_combos` चलाएँ। -4. दिल की धड़कन, गतिविधि और ऑडिट की पुष्टि के लिए `/dashboard/mcp` खोलें। - -स्वचालन के लिए उपयोगी एपीआई: - -- `GET /api/mcp/status` -- `GET /api/mcp/tools` -- `GET /api/mcp/audit` -- `GET /api/mcp/audit/stats` - -**OMNI_टोकन_653** - -**OMNI_टोकन_654** - -<summary><b>🤝 A2A सेटअप (Agent2Agent)</b></summary> - -एजेंट का पता लगाएं: - -**OMNI_टोकन_24** - -एक कार्य भेजें: - -**OMNI_टोकन_25** - -जीवनचक्र प्रबंधित करें: - -- `GET /api/a2a/status` -- `GET /api/a2a/tasks` -- `GET /api/a2a/tasks/:id` -- `POST /api/a2a/tasks/:id/cancel` - -परिचालन यूआई: - -- `/dashboard/a2a` कार्य/राज्य/स्ट्रीम अवलोकन और धूम्रपान क्रियाओं के लिए - -**OMNI_टोकन_659** - -**OMNI_टोकन_660** - -<summary><b>🧪 एंड-टू-एंड प्रोटोकॉल सत्यापन</b></summary> - -वास्तविक ग्राहकों के साथ दोनों प्रोटोकॉल मान्य करें: - -**OMNI_टोकन_26** - -यह सत्यापित करता है: - -- एमसीपी एसडीके क्लाइंट कनेक्ट/लिस्ट/कॉल -- A2A खोज/भेजें/स्ट्रीम/प्राप्त करें/रद्द करें -- एमसीपी ऑडिट और ए2ए कार्य प्रबंधन एपीआई में डेटा को क्रॉस-चेक करें - -**OMNI_टोकन_665** - -**OMNI_टोकन_666** - -<summary><b>💳 सदस्यता प्रदाता</b></summary> - -### क्लाउड कोड (प्रो/मैक्स) - -```bash -Dashboard → Providers → Connect Claude Code -→ OAuth login → Auto token refresh -→ 5-hour + weekly quota tracking - -Models: - cc/claude-opus-4-6 - cc/claude-sonnet-4-5-20250929 - cc/claude-haiku-4-5-20251001 -``` - -**प्रो टिप:** जटिल कार्यों के लिए ओपस और गति के लिए सॉनेट का उपयोग करें। ओमनीरूट प्रति मॉडल कोटा ट्रैक करता है! - -### ओपनएआई कोडेक्स (प्लस/प्रो) - -```bash -Dashboard → Providers → Connect Codex -→ OAuth login (port 1455) -→ 5-hour + weekly reset - -Models: - cx/gpt-5.2-codex - cx/gpt-5.1-codex-max -``` - -#### कोडेक्स खाता सीमा प्रबंधन (5 घंटे + साप्ताहिक) - -प्रत्येक कोडेक्स खाते में अब `Dashboard -> Providers` में नीति टॉगल हैं: - -- `5h` (चालू/बंद): 5-घंटे की विंडो सीमा नीति लागू करें। -- `Weekly` (चालू/बंद): साप्ताहिक विंडो सीमा नीति लागू करें। -- थ्रेसहोल्ड व्यवहार: जब एक सक्षम विंडो >=90% उपयोग तक पहुंच जाती है, तो वह खाता छोड़ दिया जाता है। -- रोटेशन व्यवहार: ओमनीरूट स्वचालित रूप से अगले पात्र कोडेक्स खाते पर रूट करता है। -- व्यवहार रीसेट करें: जब प्रदाता `resetAt` समय बीत जाता है, तो खाता स्वचालित रूप से फिर से पात्र हो जाता है। - -परिदृश्य: - -- `5h ON` + `Weekly ON`: जब कोई भी विंडो सीमा तक पहुंचती है तो खाता छोड़ दिया जाता है। -- `5h OFF` + `Weekly ON`: केवल साप्ताहिक उपयोग ही खाते को ब्लॉक कर सकता है। -- `5h ON` + `Weekly OFF`: केवल 5 घंटे का उपयोग ही खाते को ब्लॉक कर सकता है। -- `resetAt` उत्तीर्ण: खाता स्वचालित रूप से रोटेशन में पुनः प्रवेश करता है (कोई मैन्युअल पुनः सक्षम नहीं)। - -### जेमिनी सीएलआई (मुफ़्त 180K/माह!) - -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**सर्वोत्तम मूल्य:** विशाल निःशुल्क स्तर! सशुल्क स्तरों से पहले इसका उपयोग करें। - -### गिटहब कोपायलट - -```bash -Dashboard → Providers → Connect GitHub -→ OAuth via GitHub -→ Monthly reset (1st of month) - -Models: - gh/gpt-5 - gh/claude-4.5-sonnet - gh/gemini-3-pro -``` - -**OMNI_टोकन_671** - -**OMNI_टोकन_672** - -<summary><b>🔑 API कुंजी प्रदाता</b></summary> - -### एनवीडिया एनआईएम (मुफ़्त डेवलपर पहुंच - 70+ मॉडल) - -1. साइन अप करें: [build.nvidia.com](https://build.nvidia.com) -2. निःशुल्क एपीआई कुंजी प्राप्त करें (1000 अनुमान क्रेडिट शामिल) -3. डैशबोर्ड → प्रदाता जोड़ें → एनवीडिया एनआईएम: - - एपीआई कुंजी: `nvapi-your-key` - -**मॉडल:** `nvidia/llama-3.3-70b-instruct`, `nvidia/mistral-7b-instruct`, और 50+ अधिक - -**प्रो टिप:** ओपनएआई-संगत एपीआई - ओमनीरूट के प्रारूप अनुवाद के साथ सहजता से काम करता है! - -### डीपसीक - -1. साइन अप करें: [platform.deepseek.com](https://platform.deepseek.com) -2. एपीआई कुंजी प्राप्त करें -3. डैशबोर्ड → प्रदाता जोड़ें → डीपसीक - -**मॉडल:** `deepseek/deepseek-chat`, `deepseek/deepseek-coder` - -### ग्रोक (निःशुल्क टियर उपलब्ध!) - -1. साइन अप करें: [console.groq.com](https://console.groq.com) -2. एपीआई कुंजी प्राप्त करें (फ्री टियर शामिल) -3. डैशबोर्ड → प्रदाता जोड़ें → ग्रोक - -**मॉडल:** `groq/llama-3.3-70b`, `groq/mixtral-8x7b` - -**प्रो टिप:** अल्ट्रा-फास्ट अनुमान - वास्तविक समय कोडिंग के लिए सर्वोत्तम! - -### ओपनराउटर (100+ मॉडल) - -1. साइन अप करें: [openrouter.ai](https://openrouter.ai) -2. एपीआई कुंजी प्राप्त करें -3. डैशबोर्ड → प्रदाता जोड़ें → ओपनराउटर - -**मॉडल:** एक ही एपीआई कुंजी के माध्यम से सभी प्रमुख प्रदाताओं से 100+ मॉडल तक पहुंचें। - -**OMNI_टोकन_677** - -**OMNI_टोकन_678** - -<summary><b>💰 सस्ते प्रदाता (बैकअप)</b></summary> - -### GLM-4.7 (दैनिक रीसेट, $0.6/1 मिलियन) - -1. साइन अप करें: [Zhipu AI](https://open.bigmodel.cn/) -2. कोडिंग योजना से एपीआई कुंजी प्राप्त करें -3. डैशबोर्ड → एपीआई कुंजी जोड़ें: - - प्रदाता: `glm` - - एपीआई कुंजी: `your-key` - -**उपयोग करें:** `glm/glm-4.7` - -**प्रो टिप:** कोडिंग प्लान 1/7 लागत पर 3× कोटा प्रदान करता है! प्रतिदिन सुबह 10:00 बजे रीसेट करें। - -### मिनीमैक्स एम2.1 (5 घंटे रीसेट, $0.20/1 मिलियन) - -1. साइन अप करें: [MiniMax](https://www.minimax.io/) -2. एपीआई कुंजी प्राप्त करें -3. डैशबोर्ड → एपीआई कुंजी जोड़ें - -**उपयोग करें:** `minimax/MiniMax-M2.1` - -**प्रो टिप:** लंबे संदर्भ के लिए सबसे सस्ता विकल्प (1M टोकन)! - -### किमी K2 ($9/माह फ्लैट) - -1. सदस्यता लें: [Moonshot AI](https://platform.moonshot.ai/) -2. एपीआई कुंजी प्राप्त करें -3. डैशबोर्ड → एपीआई कुंजी जोड़ें - -**उपयोग:** `kimi/kimi-latest` - -**प्रो टिप:** 10एम टोकन के लिए निश्चित $9/माह = $0.90/1एम प्रभावी लागत! - -**OMNI_टोकन_683** - -**OMNI_टोकन_684** - -<summary><b>🆓 मुफ़्त प्रदाता (आपातकालीन बैकअप)</b></summary> - -### Qoder (OAuth के माध्यम से 5 निःशुल्क मॉडल) - -```bash -Dashboard → Connect Qoder -→ Qoder OAuth login -→ Unlimited usage - -Models: - if/kimi-k2-thinking - if/qwen3-coder-plus - if/glm-4.7 - if/minimax-m2 - if/deepseek-r1 -``` - -### क्वेन (डिवाइस कोड के माध्यम से 4 मुफ़्त मॉडल) - -```bash -Dashboard → Connect Qwen -→ Device code authorization -→ Unlimited usage - -Models: - qw/qwen3-coder-plus - qw/qwen3-coder-flash -``` - -### किरो (क्लाउड फ्री) - -**OMNI_टोकन_33** - -**OMNI_टोकन_689** - -**OMNI_टोकन_690** - -<summary><b>🎨 कॉम्बो बनाएं</b></summary> - -### उदाहरण 1: सदस्यता अधिकतम करें → सस्ता बैकअप - -**OMNI_टोकन_34** - -### उदाहरण 2: केवल निःशुल्क (शून्य लागत) - -``` -Name: free-combo -Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) - -Cost: $0 forever! -``` - -**OMNI_टोकन_695** - -**OMNI_टोकन_696** - -<summary><b>🔧 CLI एकीकरण</b></summary> - -### कर्सर आईडीई - -``` -Settings → Models → Advanced: - OpenAI API Base URL: http://localhost:20128/v1 - OpenAI API Key: [from OmniRoute dashboard] - Model: cc/claude-opus-4-6 -``` - -### क्लाउड कोड - -एक-क्लिक कॉन्फ़िगरेशन के लिए डैशबोर्ड में **CLI टूल्स** पृष्ठ का उपयोग करें, या `~/.claude/settings.json` को मैन्युअल रूप से संपादित करें। - -### कोडेक्स सीएलआई - -```bash -export OPENAI_BASE_URL="http://localhost:20128" -export OPENAI_API_KEY="your-omniroute-api-key" - -codex "your prompt" -``` - -### ओपनक्लॉ - -**विकल्प 1 - डैशबोर्ड (अनुशंसित):** - -**OMNI_टोकन_38** - -**विकल्प 2 - मैनुअल:** संपादित करें `~/.openclaw/openclaw.json`: - -```json -{ - "models": { - "providers": { - "omniroute": { - "baseUrl": "http://127.0.0.1:20128/v1", - "apiKey": "sk_omniroute", - "api": "openai-completions" - } - } - } -} -``` - -> **ध्यान दें:** ओपनक्लाव केवल स्थानीय ओमनीरूट के साथ काम करता है। IPv6 रिज़ॉल्यूशन समस्याओं से बचने के लिए `localhost` के बजाय `127.0.0.1` का उपयोग करें। - -### क्लाइन / जारी रखें / रूकोड - -``` -Settings → API Configuration: - Provider: OpenAI Compatible - Base URL: http://localhost:20128/v1 - API Key: [from OmniRoute dashboard] - Model: if/kimi-k2-thinking -``` - -### ओपनकोड - -**चरण 1:** एक कस्टम प्रदाता के रूप में ओमनीरूट जोड़ें: - -```bash -opencode -/connect -# Select "Other" → Enter ID: "omniroute" → Enter your OmniRoute API key -``` - -**चरण 2:** अपने प्रोजेक्ट रूट में `opencode.json` बनाएं/संपादित करें: - -```json -{ - "$schema": "https://opencode.ai/config.json", - "provider": { - "omniroute": { - "npm": "@ai-sdk/openai-compatible", - "name": "OmniRoute", - "options": { - "baseURL": "http://localhost:20128/v1" - }, - "models": { - "cc/claude-sonnet-4-20250514": { "name": "Claude Sonnet 4" }, - "gg/gemini-2.5-pro": { "name": "Gemini 2.5 Pro" }, - "if/kimi-k2-thinking": { "name": "Kimi K2 (Free)" } - } - } - } -} -``` - -**चरण 3:** ओपनकोड में मॉडल का चयन करें: - -```bash -/models -# Select any OmniRoute model from the list -``` - -> **टिप:** अपने ओमनीरूट `/v1/models` एंडपॉइंट में उपलब्ध किसी भी मॉडल को `models` अनुभाग में जोड़ें। अपने ओमनीरूट डैशबोर्ड से `provider/model-id` प्रारूप का उपयोग करें। - -</details> - ---- - -## 🐛 समस्या निवारण - -<details> -<summary><b>समस्या निवारण मार्गदर्शिका का विस्तार करने के लिए क्लिक करें</b></summary> - -**"भाषा मॉडल ने संदेश प्रदान नहीं किया"** - -- प्रदाता कोटा समाप्त → डैशबोर्ड कोटा ट्रैकर की जाँच करें -- समाधान: कॉम्बो फ़ॉलबैक का उपयोग करें या सस्ते स्तर पर स्विच करें - -**दर सीमित करना** - -- सदस्यता कोटा ख़त्म → GLM/MiniMax पर फ़ॉलबैक -- कॉम्बो जोड़ें: `cc/claude-opus-4-6 → glm/glm-4.7 → if/kimi-k2-thinking` - -**OAuth टोकन समाप्त हो गया** - -- ओम्निरूट द्वारा स्वतः ताज़ा -- यदि समस्या बनी रहती है: डैशबोर्ड → प्रदाता → पुनः कनेक्ट करें - -**उच्च लागत** - -- डैशबोर्ड → लागत में उपयोग के आँकड़े जाँचें -- प्राथमिक मॉडल को जीएलएम/मिनीमैक्स पर स्विच करें -- गैर-महत्वपूर्ण कार्यों के लिए फ्री टियर (मिथुन सीएलआई, आईफ्लो) का उपयोग करें - -**डैशबोर्ड/एपीआई पोर्ट गलत हैं** - -- `PORT` कैनोनिकल बेस पोर्ट है (और डिफ़ॉल्ट रूप से एपीआई पोर्ट) -- `API_PORT` केवल OpenAI-संगत API श्रोता को ओवरराइड करता है -- `DASHBOARD_PORT` केवल डैशबोर्ड/नेक्स्ट.जेएस श्रोता को ओवरराइड करता है -- अपने डैशबोर्ड/सार्वजनिक URL पर `NEXT_PUBLIC_BASE_URL` सेट करें (OAuth कॉलबैक के लिए) - -**क्लाउड सिंक त्रुटियाँ** - -- अपने चल रहे उदाहरण के लिए `BASE_URL` अंक सत्यापित करें -- अपने अपेक्षित क्लाउड एंडपॉइंट पर `CLOUD_URL` पॉइंट सत्यापित करें -- `NEXT_PUBLIC_*` मानों को सर्वर-साइड मानों के साथ संरेखित रखें - -**पहला लॉगिन काम नहीं कर रहा** - -- `.env` में `INITIAL_PASSWORD` को जांचें -- यदि सेट नहीं है, तो फ़ॉलबैक पासवर्ड `123456` है - -**कोई अनुरोध लॉग नहीं** - -- `.env` में `ENABLE_REQUEST_LOGS=true` सेट करें - -**कनेक्शन परीक्षण OpenAI-संगत प्रदाताओं के लिए "अमान्य" दिखाता है** - -- कई प्रदाता `/models` समापन बिंदु को उजागर नहीं करते हैं -- ओमनीरूट v1.0.6+ में चैट पूर्णता के माध्यम से फ़ॉलबैक सत्यापन शामिल है -- सुनिश्चित करें कि आधार URL में `/v1` प्रत्यय शामिल हो - -### 🔐 रिमोट सर्वर पर OAuth - -<a name="oauth-on-a-remote-server"></a> -<a name="oauth-em-servidor-remoto"></a> - -> **⚠️ वीपीएस, डॉकर या किसी रिमोट सर्वर पर ओमनीरूट चलाने वाले उपयोगकर्ताओं के लिए महत्वपूर्ण** - -#### एंटीग्रेविटी/जेमिनी सीएलआई ओएथ दूरस्थ सर्वर पर विफल क्यों होता है? - -**एंटीग्रेविटी** और **जेमिनी सीएलआई** प्रदाता **Google OAuth 2.0** का उपयोग करते हैं। ऐप के Google क्लाउड कंसोल में पूर्व-पंजीकृत यूआरआई में से एक से सटीक मिलान करने के लिए Google को OAuth प्रवाह में `redirect_uri` की आवश्यकता होती है। - -ओमनीरूट में बंडल किए गए OAuth क्रेडेंशियल **केवल `localhost` के लिए** पंजीकृत हैं। जब आप किसी दूरस्थ सर्वर (जैसे `https://omniroute.myserver.com`) पर ओमनीरूट तक पहुंचते हैं, तो Google प्रमाणीकरण को अस्वीकार कर देता है: - -``` -Error 400: redirect_uri_mismatch -``` - -#### समाधान: अपने स्वयं के OAuth क्रेडेंशियल कॉन्फ़िगर करें - -आपको अपने सर्वर के यूआरआई के साथ Google क्लाउड कंसोल में एक **OAuth 2.0 क्लाइंट आईडी** बनाना होगा। - -#### कदम दर कदम - -**1. Google क्लाउड कंसोल खोलें** - -यहां जाएं: [https://console.cloud.google.com/apis/credentials](https://console.cloud.google.com/apis/credentials) - -**2. एक नया OAuth 2.0 क्लाइंट आईडी बनाएं** - -- **"+ क्रेडेंशियल बनाएं"** → **"OAuth क्लाइंट आईडी"** पर क्लिक करें -- एप्लिकेशन प्रकार: **"वेब एप्लिकेशन"** -- नाम: कुछ भी जो आपको पसंद हो (जैसे `OmniRoute Remote`) - -**3. अधिकृत रीडायरेक्ट यूआरआई जोड़ें** - -**"अधिकृत रीडायरेक्ट यूआरआई"** फ़ील्ड में, जोड़ें: - -``` -https://your-server.com/callback -``` - -> `your-server.com` को अपने सर्वर के डोमेन या IP से बदलें (यदि आवश्यक हो तो पोर्ट शामिल करें, उदाहरण के लिए `http://45.33.32.156:20128/callback`)। - -**4. क्रेडेंशियल सहेजें और कॉपी करें** - -बनाने के बाद, Google **क्लाइंट आईडी** और **क्लाइंट सीक्रेट** दिखाएगा। - -**5. पर्यावरण चर सेट करें** - -आपके `.env` (या डॉकर पर्यावरण चर) में: - -```bash -# For Antigravity: -ANTIGRAVITY_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com -ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-your-secret - -# For Gemini CLI: -GEMINI_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com -GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -``` - -**6. ओम्निरूट को पुनरारंभ करें** - -```bash -# npm: -npm run dev - -# Docker: -docker restart omniroute -``` - -**7. पुनः कनेक्ट करने का प्रयास करें** - -डैशबोर्ड → प्रदाता → एंटीग्रेविटी (या जेमिनी सीएलआई) → OAuth - -Google अब सही ढंग से `https://your-server.com/callback` पर रीडायरेक्ट करेगा। - ---- - -#### अस्थायी समाधान (कस्टम क्रेडेंशियल के बिना) - -यदि आप अभी अपना स्वयं का क्रेडेंशियल सेट नहीं करना चाहते हैं, तो आप अभी भी **मैन्युअल यूआरएल प्रवाह** का उपयोग कर सकते हैं: - -1. ओमनीरूट Google प्राधिकरण URL खोलता है -2. अधिकृत करने के बाद, Google `localhost` पर रीडायरेक्ट करने का प्रयास करता है (जो रिमोट सर्वर पर विफल हो जाता है) -3. **अपने ब्राउज़र के एड्रेस बार से पूरा यूआरएल कॉपी करें** (भले ही पेज लोड न हो) -4. उस यूआरएल को ओमनीरूट कनेक्शन मोडल में दिखाए गए फ़ील्ड में पेस्ट करें -5. **"कनेक्ट"** पर क्लिक करें - -> यह काम करता है क्योंकि यूआरएल में प्राधिकरण कोड इस बात पर ध्यान दिए बिना मान्य है कि रीडायरेक्ट पेज लोड किया गया है या नहीं। - ---- - -**OMNI_टोकन_711** - -<summary><b>🇧🇷 पुर्तगाली भाषा में वर्सो</b></summary> - -#### क्या आप एंटीग्रेविटी/जेमिनी सीएलआई के लिए जिम्मेदार हैं? - -प्रमाणित करने के लिए **एंटीग्रेविटी** और **मिथुन सीएलआई** का उपयोग करें **Google OAuth 2.0** का उपयोग करें। Google को यह देखना है कि `redirect_uri` का उपयोग बिना किसी प्रवाह के OAuth सेजा **exatamente** के माध्यम से किया गया है और आपको Google क्लाउड कंसोल के लिए आवेदन करने से पहले URIs की आवश्यकता है। - -जैसा कि OAuth का प्रमाण है, कोई ओम्निरूट कैडस्ट्राड नहीं है ** `localhost`** के लिए एपेनास। एक सर्विडोर रिमोट (उदा: `https://omniroute.meuservidor.com`) पर ओम्नीरूट का उपयोग कैसे करें, या Google एक प्रमाणीकरण वापस लेता है: - -``` -Error 400: redirect_uri_mismatch -``` - -#### समाधान: OAuth को कॉन्फ़िगर करें - -आपका सटीक विवरण **OAuth 2.0 क्लाइंट आईडी** आपके सर्वर पर यूआरआई के साथ Google क्लाउड कंसोल नहीं है। - -#### पासो ए पासो - -**1. Google क्लाउड कंसोल तक पहुंच** - -अब्राहम: [https://console.cloud.google.com/apis/credentials](https://console.cloud.google.com/apis/credentials) - -**2. नया OAuth 2.0 क्लाइंट आईडी देखें** - -- उन्हें क्लिक करें **"+ क्रेडेंशियल बनाएं"** → **"OAuth क्लाइंट आईडी"** -- आवेदन टिप: **"वेब एप्लिकेशन"** -- नोम: एस्कोल्हा क्वेल्कर नोम (उदा: `OmniRoute Remote`) - -**3. अधिकृत रीडायरेक्ट यूआरआई के रूप में एडिकियोन** - -कोई शिकायत नहीं **"अधिकृत रीडायरेक्ट यूआरआई"**, आदि: - -``` -https://seu-servidor.com/callback -``` - -> स्थानापन्न `seu-servidor.com` अपने आईपी को अपने सर्वर पर रखें (इसमें एक आवश्यक पोर्ट भी शामिल है, उदाहरण के लिए: `http://45.33.32.156:20128/callback`)। - -**4. साख के रूप में सहेजें और कॉपी करें** - -एपोस क्रियर, Google द्वारा **क्लाइंट आईडी** और **क्लाइंट सीक्रेट**। - -**5. परिवेश परिवर्तन** के रूप में कॉन्फ़िगर करें - -कोई `.env` नहीं (आप डॉकर के परिवेश को कैसे बदल सकते हैं): - -**OMNI_टोकन_50** - -**6. ओम्निरूट का नवीनीकरण** - -```bash -# Se usando npm: -npm run dev - -# Se usando Docker: -docker restart omniroute -``` - -**7. नए सिरे से संपर्क करें** - -डैशबोर्ड → प्रदाता → एंटीग्रेविटी (या जेमिनी सीएलआई) → OAuth - -`https://seu-servidor.com/callback` के लिए Google पुनः निर्देशित और एक प्रमाणीकरण कार्य। - ---- - -#### वर्कअराउंड टेम्पोरैरियो (सेम कॉन्फिगरेशन क्रेडेंशियल प्रोप्रियास) - -यदि आप पहले से ही उचित क्रेडेंशियल प्राप्त नहीं करना चाहते हैं, तो आपके लिए फ्लक्सो का उपयोग करना संभव है **यूआरएल का मैनुअल**: - -1. Google पर स्वचालित URL का उपयोग करके ओम्निरूट का उपयोग करें -2. ऑटो रिज़र्व के लिए एपोस, या `localhost` के लिए Google रीडायरेक्ट (यदि कोई सर्वर रिमोट नहीं है) -3. **एक यूआरएल को पूरा कॉपी करें** अपने ब्राउजर से दोबारा डाउनलोड करें (मुझे लगता है कि एक पेज अभी भी उपलब्ध है) -4. ओम्निरूट से जुड़ने के लिए कोई भी यूआरएल नहीं है -5. उन्हें क्लिक करें **"कनेक्ट"** - -> यह समाधान यूआरएल को स्वचालित रूप से डाउनलोड करने के लिए काम कर रहा है और आपके द्वारा किए गए रीडायरेक्ट को स्वतंत्र रूप से वैध बनाता है। - -**OMNI_टोकन_716** - ---- - -</details> - -## 🛠️ टेक स्टैक - -**OMNI_टोकन_718** - -<summary><b>तकनीकी स्टैक विवरण का विस्तार करने के लिए क्लिक करें</b></summary> - -- **रनटाइम**: Node.js 18–22 LTS (⚠️ Node.js 24+ **समर्थित नहीं** है - `better-sqlite3` मूल बायनेरिज़ असंगत हैं) -- **भाषा**: टाइपस्क्रिप्ट 5.9 - **100% टाइपस्क्रिप्ट** `src/` और `open-sse/` में (v2.0 के बाद से कोर मॉड्यूल में शून्य `any`) -- **फ्रेमवर्क**: नेक्स्ट.जेएस 16 + रिएक्ट 19 + टेलविंड सीएसएस 4 -- **डेटाबेस**: LowDB (JSON) + SQLite (डोमेन स्थिति + प्रॉक्सी लॉग + MCP ऑडिट + रूटिंग निर्णय) -- **स्कीमा**: ज़ॉड (एमसीपी टूल I/O सत्यापन, एपीआई अनुबंध) -- **प्रोटोकॉल**: MCP (stdio/HTTP) + A2A v0.3 (JSON-RPC 2.0 + SSE) -- **स्ट्रीमिंग**: सर्वर-भेजे गए इवेंट (एसएसई) -- **प्रामाणिक**: OAuth 2.0 (PKCE) + JWT + API कुंजियाँ + MCP स्कोप्ड प्राधिकरण -- **परीक्षण**: Node.js टेस्ट रनर + विटेस्ट (यूनिट, एकीकरण, E2E सहित 900+ परीक्षण) -- **सीआई/सीडी**: गिटहब क्रियाएँ (ऑटो एनपीएम प्रकाशन + रिलीज पर डॉकर हब) -- **वेबसाइट**: [omniroute.online](https://omniroute.online) -- **पैकेज**: [npmjs.com/package/omniroute](https://www.npmjs.com/package/omniroute) -- **डॉकर**: [hub.docker.com/r/diegosouzapw/omniroute](https://hub.docker.com/r/diegosouzapw/omniroute) -- **लचीलापन**: सर्किट ब्रेकर, एक्सपोनेंशियल बैकऑफ़, एंटी-थंडरिंग झुंड, टीएलएस स्पूफिंग, ऑटो-कॉम्बो सेल्फ-हीलिंग - -**OMNI_टोकन_723** - ---- - -## 📖 दस्तावेज़ीकरण - -| दस्तावेज़ | विवरण | -| ---------------------------------------------- | ---------------------------------------------------------- | -| [User Guide](docs/USER_GUIDE.md) | प्रदाता, कॉम्बो, सीएलआई एकीकरण, तैनाती | -| [API Reference](docs/API_REFERENCE.md) | उदाहरण सहित सभी समापन बिंदु | -| [MCP Server](open-sse/mcp-server/README.md) | 16 एमसीपी उपकरण, आईडीई कॉन्फ़िगरेशन, पायथन/टीएस/गो क्लाइंट | -| [A2A Server](src/lib/a2a/README.md) | JSON-RPC 2.0 प्रोटोकॉल, कौशल, स्ट्रीमिंग, कार्य प्रबंधन | -| [Auto-Combo Engine](docs/auto-combo.md) | 6-कारक स्कोरिंग, मोड पैक, स्व-उपचार | -| [Troubleshooting](docs/TROUBLESHOOTING.md) | सामान्य समस्याएँ एवं समाधान | -| [Architecture](docs/ARCHITECTURE.md) | सिस्टम आर्किटेक्चर और आंतरिक | -| [Contributing](CONTRIBUTING.md) | विकास सेटअप और दिशानिर्देश | -| [OpenAPI Spec](docs/openapi.yaml) | ओपनएपीआई 3.0 विशिष्टता | -| [Security Policy](SECURITY.md) | भेद्यता रिपोर्टिंग और सुरक्षा प्रथाएं | -| [VM Deployment](docs/VM_DEPLOYMENT_GUIDE.md) | संपूर्ण गाइड: VM + nginx + Cloudflare सेटअप | -| [Features Gallery](docs/FEATURES.md) | स्क्रीनशॉट के साथ विजुअल डैशबोर्ड टूर | -| [Release Checklist](docs/RELEASE_CHECKLIST.md) | प्री-रिलीज़ सत्यापन चरण | - ---- - -## 🗺️ रोडमैप - -ओम्निरूट ने कई विकास चरणों में **210+ सुविधाओं की योजना बनाई है**। यहां प्रमुख क्षेत्र हैं: - -| श्रेणी | नियोजित विशेषताएं | हाइलाइट्स | -| --------------------------- | ----------------- | ------------------------------------------------------------------------------------------- | -| 🧠 **रूटिंग और इंटेलिजेंस** | 25+ | न्यूनतम-विलंबता रूटिंग, टैग-आधारित रूटिंग, कोटा प्रीफ़्लाइट, पी2सी खाता चयन | -| 🔒 **सुरक्षा एवं अनुपालन** | 20+ | एसएसआरएफ हार्डनिंग, क्रेडेंशियल क्लोकिंग, प्रति समापन बिंदु दर-सीमा, प्रबंधन कुंजी स्कोपिंग | -| 📊 **अवलोकनशीलता** | 15+ | ओपन टेलीमेट्री एकीकरण, वास्तविक समय कोटा निगरानी, ​​प्रति मॉडल लागत ट्रैकिंग | -| 🔄 **प्रदाता एकीकरण** | 20+ | डायनेमिक मॉडल रजिस्ट्री, प्रदाता कूलडाउन, मल्टी-अकाउंट कोडेक्स, कोपायलट कोटा पार्सिंग | -| ⚡ **प्रदर्शन** | 15+ | दोहरी कैश परत, शीघ्र कैश, प्रतिक्रिया कैश, स्ट्रीमिंग कीपलाइव, बैच एपीआई | -| 🌐 **पारिस्थितिकी तंत्र** | 10+ | वेबसॉकेट एपीआई, कॉन्फिग हॉट-रीलोड, वितरित कॉन्फिग स्टोर, वाणिज्यिक मोड | - -### 🔜 जल्द आ रहा है - -- 🔗 **ओपनकोड इंटीग्रेशन** - ओपनकोड एआई कोडिंग आईडीई के लिए मूल प्रदाता समर्थन -- 🔗 **TRAE एकीकरण** - TRAE AI विकास ढांचे के लिए पूर्ण समर्थन -- 📦 **बैच एपीआई** - थोक अनुरोधों के लिए अतुल्यकालिक बैच प्रोसेसिंग -- 🎯 **टैग-आधारित रूटिंग** - कस्टम टैग और मेटाडेटा के आधार पर रूट अनुरोध -- 💰 **न्यूनतम-लागत रणनीति** — स्वचालित रूप से सबसे सस्ते उपलब्ध प्रदाता का चयन करें - -> 📝 पूर्ण फीचर विशिष्टताएं [**OMNI_TOKEN_342**](docs/new-features/) में उपलब्ध हैं (217 विस्तृत विवरण) - ---- - -## 👥 योगदानकर्ता - -[![Contributors](https://contrib.rocks/image?repo=diegosouzapw/OmniRoute&max=100&columns=20&anon=1)](https://github.com/diegosouzapw/OmniRoute/graphs/contributors) - -### योगदान कैसे करें - -1. रिपॉजिटरी को फोर्क करें -2. अपनी फीचर शाखा बनाएं (`git checkout -b feature/amazing-feature`) -3. अपने परिवर्तन प्रतिबद्ध करें (`git commit -m 'Add amazing feature'`) -4. शाखा में पुश करें (`git push origin feature/amazing-feature`) -5. एक पुल अनुरोध खोलें - -विस्तृत दिशानिर्देशों के लिए [CONTRIBUTING.md](CONTRIBUTING.md) देखें। - -### एक नया संस्करण जारी करना - -```bash -# Create a release — npm publish happens automatically -gh release create v2.0.0 --title "v2.0.0" --generate-notes -``` - ---- - -## 📊 सितारा इतिहास - -## समय के साथ तारागण - -## [![Stargazers over time](https://starchart.cc/diegosouzapw/OmniRoute.svg?variant=adaptive)](https://starchart.cc/diegosouzapw/OmniRoute) - -## 🙏 आभार - -**[decolua](https://github.com/decolua)** द्वारा **[decolua](https://github.com/decolua)** को विशेष धन्यवाद - मूल परियोजना जिसने इस फोर्क को प्रेरित किया। ओमनीरूट अतिरिक्त सुविधाओं, मल्टी-मोडल एपीआई और पूर्ण टाइपस्क्रिप्ट पुनर्लेखन के साथ उस अविश्वसनीय नींव पर आधारित है। - -**[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)** को विशेष धन्यवाद - मूल गो कार्यान्वयन जिसने इस जावास्क्रिप्ट पोर्ट को प्रेरित किया। - ---- - -## 📄 लाइसेंस - -एमआईटी लाइसेंस - विवरण के लिए [LICENSE](LICENSE) देखें। - ---- - -<div align="center"> - <sub>24/7 कोड करने वाले डेवलपर्स के लिए ❤️ के साथ निर्मित</sub> - <br/> - <sub><a href="https://omniroute.online">omniroute.online</a></sub> -__OMNI_टोकन_732__ -<!-- समुदाय प्रश्नोत्तरी के लिए GitHub चर्चाएँ सक्षम --> +👉 **[Read the Documentation here](docs/i18n/in/README.md)** diff --git a/README.ja.md b/README.ja.md index 2bdb61baa3..271a24496d 100644 --- a/README.ja.md +++ b/README.ja.md @@ -1,2076 +1,5 @@ -# 🚀 OmniRoute — 無料の AI ゲートウェイ +# 🌐 OmniRoute (ja) -### コーディングを決してやめないでください。自動フォールバックを備えた **無料および低コストの AI モデル**へのスマート ルーティング。 +The documentation has been formalized and moved to our centralized i18n structure. -_ユニバーサル API プロキシ - 1 つのエンドポイント、67 以上のプロバイダー、ダウンタイムなし。 **MCP および A2A** エージェント オーケストレーションを使用できるようになりました。_ - -**チャット補完 • 埋め込み • 画像生成 • ビデオ • 音楽 • オーディオ • 再ランキング • **Web 検索** • MCP サーバー • A2A プロトコル • 100% TypeScript** - ---- - -<div align="center"> - -[![npm version](https://img.shields.io/npm/v/omniroute?color=cb3837&logo=npm)](https://www.npmjs.com/package/omniroute) -[![npm downloads](https://img.shields.io/npm/dm/omniroute?color=cb3837&logo=npm&label=npm%20downloads)](https://www.npmjs.com/package/omniroute) -[![Docker Hub](https://img.shields.io/docker/v/diegosouzapw/omniroute?label=Docker%20Hub&logo=docker&color=2496ED)](https://hub.docker.com/r/diegosouzapw/omniroute) -[![Docker Pulls](https://img.shields.io/docker/pulls/diegosouzapw/omniroute?logo=docker&color=2496ED&label=docker%20pulls)](https://hub.docker.com/r/diegosouzapw/omniroute) -[![License](https://img.shields.io/github/license/diegosouzapw/OmniRoute)](https://github.com/diegosouzapw/OmniRoute/blob/main/LICENSE) -[![Website](https://img.shields.io/badge/Website-omniroute.online-blue?logo=google-chrome&logoColor=white)](https://omniroute.online) -[![WhatsApp](https://img.shields.io/badge/WhatsApp-Community-25D366?logo=whatsapp&logoColor=white)](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) - -[🌐 Website](https://omniroute.online) • [🚀 Quick Start](#-quick-start) • [💡 Features](#-key-features) • [📖 Docs](#-documentation) • [💰 Pricing](#-pricing-at-a-glance) • [💬 WhatsApp](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) - -</div> - -🌐 **入手可能な場所:** 🇺🇸 [English](README.md) | 🇧🇷 [Português (Brasil)](docs/i18n/pt-BR/README.md) | 🇪🇸 [Español](docs/i18n/es/README.md) | 🇫🇷 [Français](docs/i18n/fr/README.md) | 🇮🇹 [Italiano](docs/i18n/it/README.md) | 🇷🇺 [Русский](docs/i18n/ru/README.md) | 🇨🇳 [中文 (简体)](docs/i18n/zh-CN/README.md) | 🇩🇪 [Deutsch](docs/i18n/de/README.md) | 🇮🇳 [हिन्दी](docs/i18n/in/README.md) | 🇹🇭 [ไทย](docs/i18n/th/README.md) | 🇺🇦 [Українська](docs/i18n/uk-UA/README.md) | 🇸🇦 [العربية](docs/i18n/ar/README.md) | 🇯🇵 [日本語](docs/i18n/ja/README.md) | 🇻🇳 [Tiếng Việt](docs/i18n/vi/README.md) | 🇧🇬 [Български](docs/i18n/bg/README.md) | 🇩🇰 [Dansk](docs/i18n/da/README.md) | 🇫🇮 [Suomi](docs/i18n/fi/README.md) | 🇮🇱 [עברית](docs/i18n/he/README.md) | 🇭🇺 [Magyar](docs/i18n/hu/README.md) | 🇮🇩 [Bahasa Indonesia](docs/i18n/id/README.md) | 🇰🇷 [한국어](docs/i18n/ko/README.md) | 🇲🇾 [Bahasa Melayu](docs/i18n/ms/README.md) | 🇳🇱 [Nederlands](docs/i18n/nl/README.md) | 🇳🇴 [Norsk](docs/i18n/no/README.md) | 🇵🇹 [Português (Portugal)](docs/i18n/pt/README.md) | 🇷🇴 [Română](docs/i18n/ro/README.md) | 🇵🇱 [Polski](docs/i18n/pl/README.md) | 🇸🇰 [Slovenčina](docs/i18n/sk/README.md) | 🇸🇪 [Svenska](docs/i18n/sv/README.md) | 🇵🇭 [Filipino](docs/i18n/phi/README.md) | 🇨🇿 [Čeština](docs/i18n/cs/README.md) - ---- - -## 🆕 v3.0.0 の新機能 - -> **v2.9.5 からアップグレードしますか?** — すべての変更点については、[full CHANGELOG](CHANGELOG.md#300--2026-03-22-release-candidate--not-yet-merged-to-main) を参照してください。 - -| エリア | 変更 | -| ----------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 🔒 **CodeQL セキュリティ** | 10 件以上の CodeQL アラートを修正: 多項式やり直し、安全でないランダム性、シェル インジェクションの修復 | -| ✅ **ルート検証** | 176 個の API ルートすべてが Zod スキーマ + `validateBody()` — CI `check:route-validation:t06` パスで検証されるようになりました。 | -| 🐛 **omniModel タグのリーク** | 内部 `<omniModel>` タグは、SSE ストリーミング応答でクライアントにリークしなくなりました (#585)。 | -| 🔑 **登録キー API** | `POST /api/v1/registered-keys` 経由で API キーを自動プロビジョニングし、プロバイダー/アカウントごとのクォータ適用、冪等性、SHA-256 ストレージ、およびオプションの GitHub 問題レポートを使用できます。 | -| 👁️ **Scoped API Key Reveal** 🆕 | Opt-in recovery of API keys via `ALLOW_API_KEY_REVEAL` | -| 🎨 **プロバイダーアイコン** | PNG を使用した `@lobehub/icons` (SVG) → 汎用フォールバック チェーン経由の 130 以上のプロバイダー ロゴ | -| 🔄 **モデルの自動同期** | 24 時間スケジューラーと手動 UI を切り替えて、組み込みおよびカスタムの OpenAI 互換プロバイダーのモデル リストを同期 | -| 🌐 **OpenCode Zen/Go** | PR #530 経由の @kang-heewon からの 2 つの新しいプロバイダー: 無料枠 + `OpencodeExecutor` 経由のサブスクリプション枠 | -| 🐛 **Gemini CLI OAuth** | Docker に `GEMINI_OAUTH_CLIENT_SECRET` が見つからない場合の対処可能なエラー (不可解な Google エラー) | -| 🐛 **OpenCode 構成** | `saveOpenCodeConfig()` は TOML を `XDG_CONFIG_HOME` に正しく書き込むようになりました。 | -| 🐛 **固定モデルのオーバーライド** | コンテキスト キャッシュ保護で `body.model` が `pinnedModel` に正しく設定されました。 | -| 🐛 **コーデックス/クロード ループ** | `tool_result` ブロックは無限ループを防ぐためにテキストに変換されるようになりました。 | -| 🐛 **ログインリダイレクト** | パスワード設定をスキップしてもログインがフリーズしなくなりました | -| 🐛 **Windows パス** | MSYS2/Git-Bash パス (`/c/...`) は `C:\...` に自動的に正規化されます。 | - ---- - -## 🖼️ メイン ダッシュボード - -<div align="center"> - <img src="./docs/screenshots/MainOmniRoute.png" alt="OmniRoute Dashboard" width="800"/> -</div> - ---- - -## 📸 ダッシュボードのプレビュー - -<details> -<summary><b>クリックしてダッシュボードのスクリーンショットを表示</b></summary> - -| ページ | スクリーンショット | -| ------------------ | ------------------------------------------------- | -| **プロバイダー** | ![Providers](docs/screenshots/01-providers.png) | -| **コンボ** | ![Combos](docs/screenshots/02-combos.png) | -| **分析** | ![Analytics](docs/screenshots/03-analytics.png) | -| **健康** | ![Health](docs/screenshots/04-health.png) | -| **翻訳者** | ![Translator](docs/screenshots/05-translator.png) | -| **設定** | ![Settings](docs/screenshots/06-settings.png) | -| **CLI ツール** | ![CLI Tools](docs/screenshots/07-cli-tools.png) | -| **使用ログ** | ![Usage](docs/screenshots/08-usage.png) | -| **エンドポイント** | ![Endpoints](docs/screenshots/09-endpoint.png) | - -</details> - ---- - -### 🤖 お気に入りのコーディング エージェント向けの無料 AI プロバイダー - -_AI を活用した IDE または CLI ツールを、無制限のコーディングのための無料 API ゲートウェイである OmniRoute 経由で接続します。_ - - <table> - <tr> - <td align="center" width="110"> - <a href="https://github.com/openclaw/openclaw"> - <img src="./public/providers/openclaw.png" alt="OpenClaw" width="48"/><br/> - <b>OpenClaw</b> - </a><br/> - <sub>⭐ 205K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/HKUDS/nanobot"> - <img src="./public/providers/nanobot.png" alt="NanoBot" width="48"/><br/> - <b>NanoBot</b> - </a><br/> - <sub>⭐ 20.9K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/sipeed/picoclaw"> - <img src="./public/providers/picoclaw.jpg" alt="PicoClaw" width="48"/><br/> - <b>PicoClaw</b> - </a><br/> - <sub>⭐ 14.6K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/zeroclaw-labs/zeroclaw"> - <img src="./public/providers/zeroclaw.png" alt="ZeroClaw" width="48"/><br/> - <b>ZeroClaw</b> - </a><br/> - <sub>⭐ 9.9K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/nearai/ironclaw"> - <img src="./public/providers/ironclaw.png" alt="IronClaw" width="48"/><br/> - <b>IronClaw</b> - </a><br/> - <sub>⭐ 2.1K</sub> - </td> - </tr> - <tr> - <td align="center" width="110"> - <a href="https://github.com/anomalyco/opencode"> - <img src="./public/providers/opencode.svg" alt="OpenCode" width="48"/><br/> - <b>OpenCode</b> - </a><br/> - <sub>⭐ 106K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/openai/codex"> - <img src="./public/providers/codex.png" alt="Codex CLI" width="48"/><br/> - <b>Codex CLI</b> - </a><br/> - <sub>⭐ 60.8K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/anthropics/claude-code"> - <img src="./public/providers/claude.png" alt="Claude Code" width="48"/><br/> - <b>Claude Code</b> - </a><br/> - <sub>⭐ 67.3K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/google-gemini/gemini-cli"> - <img src="./public/providers/gemini-cli.png" alt="Gemini CLI" width="48"/><br/> - <b>Gemini CLI</b> - </a><br/> - <sub>⭐ 94.7K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/Kilo-Org/kilocode"> - <img src="./public/providers/kilocode.png" alt="Kilo Code" width="48"/><br/> - <b>Kilo Code</b> - </a><br/> - <sub>⭐ 15.5K</sub> - </td> - </tr> - </table> - -<sub>📡 すべてのエージェントは <code>http://localhost:20128/v1</code> または <code>http://cloud.omniroute.online/v1</code> 経由で接続します — 1 つの構成、無制限のモデルとクォータ</sub> - ---- - -## 🤔 なぜオムニルートなのか? - -**お金の無駄遣いや限界に達するのはやめましょう:** - -- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> サブスクリプション クォータは毎月未使用のまま期限切れになります -- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> レート制限によりコーディングの途中で停止する -- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> 高価な API (プロバイダーごとに月額 20 ~ 50 ドル) -- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> プロバイダー間の手動切り替え - -**OmniRoute はこれを解決します:** - -- ✅ **サブスクリプションを最大化** - クォータを追跡し、リセットする前にすべてのビットを使用します -- ✅ **自動フォールバック** - サブスクリプション → API キー → 安価 → 無料、ダウンタイムなし -- ✅ **マルチアカウント** - プロバイダーごとのアカウント間のラウンドロビン -- ✅ **ユニバーサル** - Claude Code、Codex、Gemini CLI、Cursor、Cline、OpenClaw、あらゆる CLI ツールで動作します - ---- - -## 📧 サポート - -> 💬 **コミュニティに参加してください!** [WhatsApp Group](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) — ヘルプを取得し、ヒントを共有し、最新情報を入手してください。 - -- **ウェブサイト**: [omniroute.online](https://omniroute.online) -- **GitHub**: [github.com/diegosouzapw/OmniRoute](https://github.com/diegosouzapw/OmniRoute) -- **問題**: [github.com/diegosouzapw/OmniRoute/issues](https://github.com/diegosouzapw/OmniRoute/issues) -- **WhatsApp**: [Community Group](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) -- **貢献**: [CONTRIBUTING.md](CONTRIBUTING.md) を参照するか、PR を開くか、`good first issue` を選択してください -- **オリジナル プロジェクト**: [9router by decolua](https://github.com/decolua/9router) - -### 🐛 バグを報告しますか? - -問題を開くときは、system-info コマンドを実行して、生成されたファイルを添付してください。 - -```bash -npm run system-info -``` - -これにより、Node.js のバージョン、OmniRoute のバージョン、OS の詳細、インストールされている CLI ツール (qoder、gemini、claude、codex、antigravity、droid など)、Docker/PM2 のステータス、システム パッケージなど、問題を迅速に再現するために必要なものすべてを含む `system-info.txt` が生成されます。ファイルを GitHub の問題に直接添付します。 - ---- - -## 🔄 仕組み - -``` -┌─────────────┐ -│ Your CLI │ (Claude Code, Codex, Gemini CLI, OpenClaw, Cursor, Cline...) -│ Tool │ -└──────┬──────┘ - │ http://localhost:20128/v1 - ↓ -┌─────────────────────────────────────────┐ -│ OmniRoute (Smart Router) │ -│ • Format translation (OpenAI ↔ Claude) │ -│ • Quota tracking + Embeddings + Images │ -│ • Auto token refresh │ -└──────┬──────────────────────────────────┘ - │ - ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex, Gemini CLI - │ ↓ quota exhausted - ├─→ [Tier 2: API KEY] DeepSeek, Groq, xAI, Mistral, NVIDIA NIM, etc. - │ ↓ budget limit - ├─→ [Tier 3: CHEAP] GLM ($0.6/1M), MiniMax ($0.2/1M) - │ ↓ budget limit - └─→ [Tier 4: FREE] Qoder, Qwen, Kiro (unlimited) - -Result: Never stop coding, minimal cost -``` - ---- - -## 🎯 OmniRoute が解決するもの — 30 の実際の問題点とユースケース - -> **AI ツールを使用するすべての開発者は、これらの問題に日々直面しています。** OmniRoute は、コスト超過から地域ブロック、壊れた OAuth フローからプロトコル操作、企業の可観測性まで、それらすべてを解決するために構築されました。 - -<details> -<summary><b>💸 1. 「高価なサブスクリプションの料金を支払っているのに、制限によって中断されます。」</b></summary> - -開発者は、Claude Pro、Codex Pro、または GitHub Copilot に月額 20 ~ 200 ドルを支払います。有料であっても、割り当てには上限があり、5 時間の使用量、週ごとの制限、または分ごとのレート制限があります。コーディング セッションの途中でプロバイダーが応答を停止し、開発者はフローと生産性を失います。 - -**OmniRoute がそれを解決する方法:** - -- **スマート 4 層フォールバック** — サブスクリプション クォータが不足すると、手動介入なしで自動的に API キー→格安→無料にリダイレクトされます。 -- **リアルタイム クォータ トラッキング** — リセット カウントダウン (5 時間、毎日、毎週) でトークンの消費量をリアルタイムで表示します。 -- **マルチアカウントのサポート** — 自動ラウンドロビンによるプロバイダーごとの複数のアカウント — 1 つのアカウントがなくなると、次のアカウントに切り替わります -- **カスタム コンボ** — 6 つのバランシング戦略 (フィルファースト、ラウンドロビン、P2C、ランダム、最小使用、コスト最適化) を備えたカスタマイズ可能なフォールバック チェーン -- **Codex Business クォータ** — ビジネス/チームのワークスペース クォータをダッシュボードで直接監視 - -</details> - -<details> -<summary><b>🔌 2. 「複数のプロバイダーを使用する必要があるが、それぞれに異なる API がある」</b></summary> - -OpenAI は 1 つの形式を使用し、Claude (Anthropic) は別の形式を使用し、Gemini はさらに別の形式を使用します。開発者が異なるプロバイダーのモデルをテストしたり、プロバイダー間でフォールバックしたりする場合は、SDK を再構成し、エンドポイントを変更し、互換性のない形式に対処する必要があります。カスタム プロバイダー (FriendLI、NIM) には、非標準モデルのエンドポイントがあります。 - -**OmniRoute がそれを解決する方法:** - -- **統合エンドポイント** — 単一の `http://localhost:20128/v1` が 67 を超えるすべてのプロバイダーのプロキシとして機能します -- **フォーマット変換** — 自動かつ透過的: OpenAI ↔ Claude ↔ Gemini ↔ Responses API -- **レスポンスのサニタイズ** — OpenAI SDK v1.83+ を破壊する非標準フィールド (`x_groq`、`usage_breakdown`、`service_tier`) を削除します。 -- **ロールの正規化** — 非 OpenAI プロバイダーの場合は `developer` → `system` を変換します。 `system` → `user` (GLM/ERNIE 用) -- **Think Tag Extraction** — DeepSeek R1 などのモデルから `<think>` ブロックを標準化された `reasoning_content` に抽出します。 -- **Gemini の構造化出力** — `json_schema` → `responseMimeType`/`responseSchema` 自動変換 -- **`stream` のデフォルトは `false`** — OpenAI 仕様に準拠し、Python/Rust/Go SDK での予期しない SSE を回避します - -</details> - -<details> -<summary><b>🌐 3. 「AI プロバイダーが私の地域/国をブロックしています」</b></summary> - -OpenAI/Codex などのプロバイダーは、特定の地理的地域からのアクセスをブロックします。ユーザーは、OAuth および API 接続中に `unsupported_country_region_territory` のようなエラーを受け取ります。これは、発展途上国の開発者にとって特にイライラさせられます。 - -**OmniRoute がそれを解決する方法:** - -- **3 レベルのプロキシ構成** — 3 つのレベルで構成可能なプロキシ: グローバル (すべてのトラフィック)、プロバイダーごと (1 つのプロバイダーのみ)、および接続/キーごと -- **色分けされたプロキシ バッジ** — 視覚的なインジケーター: 🟢 グローバル プロキシ、🟡 プロバイダー プロキシ、🔵 接続プロキシ、常に IP を表示 -- **プロキシを介した OAuth トークン交換** — OAuth フローもプロキシを経由し、`unsupported_country_region_territory` を解決します -- **プロキシ経由の接続テスト** — 接続テストは構成されたプロキシを使用します (直接バイパスはありません)。 -- **SOCKS5 サポート** — アウトバウンド ルーティングに対する SOCKS5 プロキシの完全なサポート -- **TLS フィンガープリント スプーフィング** — `wreq-js` を介したブラウザーのような TLS フィンガープリントによりボット検出をバイパスします -- **🔏 CLI フィンガープリント マッチング** — ネイティブ CLI バイナリ署名と一致するようにヘッダーと本文フィールドの順序を変更し、アカウントにフラグを立てるリスクを大幅に軽減します。プロキシ IP は保持されます。ステルス ** と ** IP マスキングの両方を同時に取得できます。 - -</details> - -<details> -<summary><b>🆓 4. 「コーディングに AI を使用したいが、お金がない」</b></summary> - -誰もが AI サブスクリプションに月額 20 ~ 200 ドルを支払えるわけではありません。学生、新興国の開発者、愛好家、フリーランサーは、高品質のモデルに無料でアクセスできる必要があります。 - -**OmniRoute がそれを解決する方法:** - -- **無料利用枠プロバイダーの組み込み** — 100% 無料プロバイダーのネイティブ サポート: Qoder (OAuth 経由の 5 つの無制限のモデル: kimi-k2- Thinking、qwen3-coder-plus、deepseek-r1、minimax-m2、kimi-k2)、Qwen (4 つの無制限のモデル: qwen3-coder-plus、qwen3-coder-flash、qwen3-coder-next、 vision-model)、Kiro (Claude + AWS Builder ID は無料)、Gemini CLI (180,000 トークン/月は無料) -- **Ollama Cloud** — 無料の「ライト使用量」レベルの `api.ollama.com` のクラウド ホスト型 Ollama モデル。 `ollamacloud/<model>` プレフィックスを使用する -- **無料のみのコンボ** — チェーン `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = 月額 0 ドル、ダウンタイムなし -- **NVIDIA NIM 無料アクセス** — ~40 RPM 開発 - build.nvidia.com で 70 以上のモデルに永久に無料アクセス (クレジットから純粋なレート制限に移行) -- **コスト最適化戦略** — 利用可能な最も安価なプロバイダーを自動的に選択するルーティング戦略 - -</details> - -<details> -<summary><b>🔒 5. 「AI ゲートウェイを不正アクセスから保護する必要があります」</b></summary> - -AI ゲートウェイをネットワーク (LAN、VPS、Docker) に公開すると、アドレスを持っている人は誰でも開発者のトークン/クォータを消費できます。保護がなければ、API は誤用、即時挿入、悪用に対して脆弱になります。 - -**OmniRoute がそれを解決する方法:** - -- **API キー管理** — 専用の `/dashboard/api-manager` ページによるプロバイダーごとの生成、ローテーション、スコープ設定 -- **モデルレベルの権限** — すべて許可/制限の切り替えにより、API キーを特定のモデル (`openai/*`、ワイルドカード パターン) に制限します -- **API エンドポイント保護** — `/v1/models` のキーを要求し、リストから特定のプロバイダーをブロックします -- **認証ガード + CSRF 保護** — すべてのダッシュボード ルートは `withAuth` ミドルウェア + CSRF トークンで保護されています -- **レート リミッター** — 構成可能なウィンドウによる IP ごとのレート制限 -- **IP フィルタリング** — アクセス制御の許可リスト/ブロックリスト -- **プロンプト インジェクション ガード** — 悪意のあるプロンプト パターンに対するサニタイズ -- **AES-256-GCM 暗号化** — 認証情報は保存時に暗号化されます - -</details> - -<details> -<summary><b>🛑 6. 「プロバイダーがダウンし、コーディング フローが失われました」</b></summary> - -AI プロバイダーが不安定になったり、5xx エラーを返したり、一時的なレート制限に達したりする可能性があります。開発者が単一のプロバイダーに依存している場合、それらは中断されます。サーキット ブレーカーがないと、再試行を繰り返すとアプリケーションがクラッシュする可能性があります。 - -**OmniRoute がそれを解決する方法:** - -- **モデルごとのサーキット ブレーカー** — 設定可能なしきい値とクールダウン (閉/開/半開) による自動開閉、カスケード ブロックを回避するためのモデルごとのスコープ -- **指数バックオフ** — 漸進的な再試行遅延 -- **Anti-Thundering Herd** — 同時再試行の嵐に対するミューテックス + セマフォ保護 -- **コンボ フォールバック チェーン** - プライマリ プロバイダーに障害が発生した場合、介入なしで自動的にチェーンを通過します。 -- **コンボ サーキット ブレーカー** — コンボ チェーン内の障害が発生したプロバイダーを自動的に無効にします -- **ヘルス ダッシュボード** — 稼働時間モニタリング、サーキット ブレーカーの状態、ロックアウト、キャッシュ統計、p50/p95/p99 レイテンシ - -</details> - -<details> -<summary><b>🔧 7. 「各 AI ツールの設定は面倒で繰り返しが多い」</b></summary> - -開発者は、Cursor、Claude Code、Codex CLI、OpenClaw、Gemini CLI、Kilo Code を使用します。各ツールには異なる構成 (API エンドポイント、キー、モデル) が必要です。プロバイダーや機種変更時に再設定するのは時間の無駄です。 - -**OmniRoute がそれを解決する方法:** - -- **CLI ツール ダッシュボード** — Claude Code、Codex CLI、OpenClaw、Kilo Code、Antigravity、Cline をワンクリックでセットアップできる専用ページ -- **GitHub Copilot Config Generator** — モデルを一括選択して VS Code の `chatLanguageModels.json` を生成します -- **オンボーディング ウィザード** - 初めてユーザー向けのガイド付き 4 ステップ セットアップ -- **1 つのエンドポイント、すべてのモデル** — `http://localhost:20128/v1` を 1 回構成すると、67 を超えるプロバイダーにアクセスできます - -</details> - -<details> -<summary><b>🔑 8. 「複数のプロバイダーからの OAuth トークンを管理するのは地獄です」</b></summary> - -Claude Code、Codex、Gemini CLI、Copilot — すべては有効期限切れのトークンを持つ OAuth 2.0 を使用します。開発者は定期的に再認証し、`client_secret is missing`、`redirect_uri_mismatch`、およびリモート サーバーの障害に対処する必要があります。 LAN/VPS 上の OAuth は特に問題があります。 - -**OmniRoute がそれを解決する方法:** - -- **自動トークン更新** — OAuth トークンは有効期限が切れる前にバックグラウンドで更新されます。 -- **OAuth 2.0 (PKCE) ビルトイン** — Claude Code、Codex、Gemini CLI、Copilot、Kiro、Qwen、Qoder の自動フロー -- **マルチアカウント OAuth** — JWT/ID トークン抽出によるプロバイダーごとの複数のアカウント -- **OAuth LAN/リモート修正** — `redirect_uri` のプライベート IP 検出 + リモート サーバーの手動 URL モード -- **Nginx の背後にある OAuth** — リバース プロキシの互換性のために `window.location.origin` を使用します -- **リモート OAuth ガイド** — VPS/Docker での Google Cloud 認証情報のステップバイステップ ガイド - -</details> - -<details> -<summary><b>📊 9. 「どこにいくら使っているのか分かりません」</b></summary> - -開発者は複数の有料プロバイダーを使用していますが、支出について統一した見解がありません。各プロバイダーには独自の請求ダッシュボードがありますが、統合されたビューはありません。予期せぬ出費がかさむ可能性があります。 - -**OmniRoute がそれを解決する方法:** - -- **コスト分析ダッシュボード** — トークンごとのコスト追跡とプロバイダーごとの予算管理 -- **階層ごとの予算制限** — 自動フォールバックをトリガーする階層ごとの支出上限 -- **モデルごとの価格構成** — モデルごとに構成可能な価格 -- **API キーごとの使用統計** — キーごとのリクエスト数と最後に使用されたタイムスタンプ -- **分析ダッシュボード** — 統計カード、モデル使用状況グラフ、成功率と遅延を含むプロバイダー表 - -</details> - -<details> -<summary><b>🐛 10. 「AI 呼び出しのエラーや問題を診断できません」</b></summary> - -呼び出しが失敗すると、開発者はそれがレート制限なのか、トークンの期限切れなのか、間違った形式なのか、プロバイダーのエラーなのかわかりません。異なる端末間で断片化されたログ。可観測性がなければ、デバッグは試行錯誤になります。 - -**OmniRoute がそれを解決する方法:** - -- **統合ログ ダッシュボード** — 4 つのタブ: リクエスト ログ、プロキシ ログ、監査ログ、コンソール -- **コンソール ログ ビューア** — 色分けされたレベル、自動スクロール、検索、フィルターを備えたリアルタイムのターミナル スタイルのビューア -- **SQLite プロキシ ログ** — サーバーの再起動後も存続する永続的なログ -- **Translator Playground** — 4 つのデバッグ モード: プレイグラウンド (形式変換)、チャット テスター (往復)、テストベンチ (バッチ)、ライブ モニター (リアルタイム) -- **リクエスト テレメトリ** — p50/p95/p99 レイテンシー + X-Request-Id トレース -- **ローテーションを使用したファイルベースのログ** — コンソール インターセプターは、サイズベースのローテーションを使用してすべてを JSON ログにキャプチャします。 -- **システム情報レポート** - `npm run system-info` は、完全な環境 (ノード バージョン、OmniRoute バージョン、OS、CLI ツール、Docker/PM2 ステータス) を含む `system-info.txt` を生成します。即時トリアージのために問題を報告するときに添付してください。 - -</details> - -<details> -<summary><b>🏗️ 11. 「ゲートウェイの導入と保守は複雑です」</b></summary> - -さまざまな環境 (ローカル、VPS、Docker、クラウド) 間で AI プロキシをインストール、構成、維持するには、多大な労力がかかります。ハードコーディングされたパス、ディレクトリ上の `EACCES`、ポートの競合、クロスプラットフォーム ビルドなどの問題により、摩擦が増大します。 - -**OmniRoute がそれを解決する方法:** - -- **npm グローバル インストール** — `npm install -g omniroute && omniroute` — 完了 -- **Docker マルチプラットフォーム** — AMD64 + ARM64 ネイティブ (Apple Silicon、AWS Graviton、Raspberry Pi) -- **Docker Compose プロファイル** — `base` (CLI ツールなし) および `cli` (Claude Code、Codex、OpenClaw あり) -- **Electron デスクトップ アプリ** — システム トレイ、自動起動、オフライン モードを備えた Windows/macOS/Linux 用ネイティブ アプリ -- **分割ポート モード** - 高度なシナリオ (リバース プロキシ、コンテナ ネットワーキング) 向けに個別のポート上の API とダッシュボード -- **Cloud Sync** — Cloudflare Workers を介したデバイス間での設定の同期 -- **DB バックアップ** — すべての設定の自動バックアップ、復元、エクスポート、インポート - -</details> - -<details> -<summary><b>🌍 12. 「インターフェースは英語のみで、私のチームは英語を話せません。」</b></summary> - -非英語圏の国、特にラテンアメリカ、アジア、ヨーロッパのチームは、英語のみのインターフェースに苦労しています。言語の壁があると採用が減り、構成エラーが増加します。 - -**OmniRoute がそれを解決する方法:** - -- **ダッシュボード i18n — 30 言語** — アラビア語、ブルガリア語、デンマーク語、ドイツ語、スペイン語、フィンランド語、フランス語、ヘブライ語、ヒンディー語、ハンガリー語、インドネシア語、イタリア語、日本語、韓国語、マレー語、オランダ語、ノルウェー語、ポーランド語、ポルトガル語 (PT/BR)、ルーマニア語、ロシア語、スロバキア語、スウェーデン語、タイ語、ウクライナ語、ベトナム語、中国語、フィリピン語、英語 -- **RTL サポート** — アラビア語とヘブライ語の右から左へのサポート -- **多言語 README** — 30 件の完全なドキュメント翻訳 -- **言語セレクター** — リアルタイム切り替えのためのヘッダーの地球儀アイコン - -</details> - -<details> -<summary><b>🔄 13. 「チャット以上のものが必要です — 埋め込み、画像、音声が必要です」</b></summary> - -AIは単なるチャット補完ではありません。開発者は、画像の生成、音声の文字起こし、RAG の埋め込みの作成、ドキュメントの再ランク付け、およびコンテンツの管理を行う必要があります。各 API には異なるエンドポイントと形式があります。 - -**OmniRoute がそれを解決する方法:** - -- **エンベディング** — `/v1/embeddings` (6 つのプロバイダーと 9 つ以上のモデル) -- **画像生成** — 10 プロバイダーと 20 以上のモデルを備えた `/v1/images/generations` (OpenAI、xAI、Togetter、Fireworks、Nebius、Hyperbolic、NanoBanana、Antigravity、SD WebUI、ComfyUI) -- **Text-to-Video** — `/v1/videos/generations` — ComfyUI (AnimateDiff、SVD) および SD WebUI -- **Text-to-Music** — `/v1/music/generations` — ComfyUI (安定したオーディオ オープン、MusicGen) -- **音声転写** — `/v1/audio/transcriptions` — Whisper + Nvidia NIM、HuggingFace、Qwen3 -- **テキスト読み上げ** — `/v1/audio/speech` — イレブンラボ、Nvidia NIM、HuggingFace、Coqui、Tortoise、Qwen3、**Inworld**、**Cartesia**、**PlayHT**、+ 既存のプロバイダー -- **モデレーション** — `/v1/moderations` — コンテンツの安全性チェック -- **再ランキング** — `/v1/rerank` — ドキュメントの関連性の再ランキング -- **レスポンス API** — Codex の `/v1/responses` の完全サポート - -</details> - -<details> -<summary><b>🧪 14. 「モデル間で品質をテストして比較する方法がない」</b></summary> - -開発者は、コード、翻訳、推論などのユースケースにどのモデルが最適であるかを知りたいと考えていますが、手動で比較するのは時間がかかります。統合された評価ツールは存在しません。 - -**OmniRoute がそれを解決する方法:** - -- **LLM 評価** — 挨拶、数学、地理、コード生成、JSON 準拠、翻訳、マークダウン、安全性の拒否をカバーする 10 個の事前ロードされたケースによるゴールデン セット テスト -- **4 つのマッチ戦略** — `exact`、`contains`、`regex`、`custom` (JS 関数) -- **Translator Playground Test Bench** — 複数の入力と予想される出力を使用したバッチ テスト、クロスプロバイダー比較 -- **チャット テスター** — 視覚的な応答レンダリングによる完全な往復 -- **ライブ モニター** — プロキシを通過するすべてのリクエストのリアルタイム ストリーム - -</details> - -<details> -<summary><b>📈 15. 「パフォーマンスを落とさずにスケールする必要がある」</b></summary> - -リクエストの量が増えると、同じ質問をキャッシュしないと重複したコストが発生します。冪等性がないと、重複したリクエストにより処理が無駄になります。プロバイダーごとのレート制限を遵守する必要があります。 - -**OmniRoute がそれを解決する方法:** - -- **セマンティック キャッシュ** — 2 層キャッシュ (署名 + セマンティック) によりコストと遅延が削減されます。 -- **リクエストの冪等性** — 同一のリクエストに対する重複排除ウィンドウは 5 秒です -- **レート制限検出** — プロバイダーごとの RPM、最小ギャップ、最大同時トラッキング -- **編集可能なレート制限** — [設定] → [永続性を伴う回復力] で構成可能なデフォルト -- **API キー検証キャッシュ** — 運用パフォーマンスのための 3 層キャッシュ -- **テレメトリ付きヘルス ダッシュボード** — p50/p95/p99 レイテンシ、キャッシュ統計、稼働時間 - -</details> - -<details> -<summary><b>🤖 16. 「モデルの動作をグローバルに制御したい」</b></summary> - -すべての応答を特定の言語、特定の口調で行いたい、または推論トークンを制限したい開発者。すべてのツール/リクエストでこれを設定するのは現実的ではありません。 - -**OmniRoute がそれを解決する方法:** - -- **システム プロンプト インジェクション** — すべてのリクエストに適用されるグローバル プロンプト -- **思考予算検証** — リクエストごとの推論トークン割り当て制御 (パススルー、自動、カスタム、適応) -- **6 ルーティング戦略** — リクエストの分散方法を決定するグローバル戦略 -- **ワイルドカード ルーター** - `provider/*` パターンは任意のプロバイダーに動的にルーティングします -- **コンボ有効/無効切り替え** — ダッシュボードから直接コンボを切り替えます -- **プロバイダー切り替え** — ワンクリックでプロバイダーのすべての接続を有効/無効にします。 -- **ブロックされたプロバイダー** — `/v1/models` リストから特定のプロバイダーを除外します - -</details> - -<details> -<summary><b>🧰 17. 「一流の製品機能として MCP ツールが必要です」</b></summary> - -多くの AI ゲートウェイは、MCP を非表示の実装詳細としてのみ公開します。チームには、目に見えて管理しやすいオペレーション レイヤーが必要です。 - -**OmniRoute がそれを解決する方法:** - -- MCP はダッシュボードのナビゲーションとエンドポイント プロトコル タブに表示されます -- プロセス、ツール、スコープ、監査を備えた専用の MCP 管理ページ -- `omniroute --mcp` およびクライアントのオンボーディング用の組み込みクイックスタート - -</details> - -<details> -<summary><b>🧠 18. 「同期 + ストリーム タスク パスを使用した A2A オーケストレーションが必要です」</b></summary> - -エージェント ワークフローには、直接応答と、ライフサイクル制御による長時間実行のストリーミング実行の両方が必要です。 - -**OmniRoute がそれを解決する方法:** - -- A2A JSON-RPC エンドポイント (`POST /a2a`) と `message/send` および `message/stream` -- 端末状態の伝播を伴う SSE ストリーミング -- `tasks/get` および `tasks/cancel` のタスク ライフサイクル API - -</details> - -<details> -<summary><b>🛰️ 19. 「推測されたステータスではなく、実際の MCP プロセスの健全性が必要です」</b></summary> - -運用チームは、API が到達可能かどうかだけでなく、MCP が実際に生きているかどうかを知る必要があります。 - -**OmniRoute がそれを解決する方法:** - -- PID、タイムスタンプ、トランスポート、ツール数、およびスコープモードを含むランタイムハートビートファイル -- ハートビートと最近のアクティビティを組み合わせた MCP ステータス API -- プロセス/稼働時間/ハートビートの鮮度を示す UI ステータス カード - -</details> - -<details> -<summary><b>📋 20. 「監査可能な MCP ツールの実行が必要です」</b></summary> - -ツールが構成を変更したり、運用アクションをトリガーしたりする場合、チームはフォレンジックなトレーサビリティを必要とします。 - -**OmniRoute がそれを解決する方法:** - -- MCP ツール呼び出しの SQLite ベースの監査ログ -- ツール、成功/失敗、API キー、ページネーションによるフィルター -- ダッシュボード監査テーブル + 自動化のための統計エンドポイント - -</details> - -<details> -<summary><b>🔐 21. 「統合ごとにスコープ指定された MCP 権限が必要です」</b></summary> - -異なるクライアントには、ツール カテゴリへの最小限の特権アクセスが必要です。 - -**OmniRoute がそれを解決する方法:** - -- 制御されたツールアクセスのための 9 つの詳細な MCP スコープ -- MCP 管理 UI でのスコープの適用と可視性 -- 運用ツールの安全なデフォルト姿勢 - -</details> - -<details> -<summary><b>⚙️ 22. 「再デプロイせずに運用制御が必要です」</b></summary> - -チームは、インシデントやコスト イベントが発生した際に、実行時の変更を迅速に行う必要があります。 - -**OmniRoute がそれを解決する方法:** - -- MCP ダッシュボードからコンボのアクティブ化を直接切り替えます -- 事前定義されたポリシーパックから復元プロファイルを適用 -- 同じ操作パネルからサーキットブレーカーの状態をリセット - -</details> - -<details> -<summary><b>🔄 23. 「ライブ A2A タスクのライフサイクルの可視化とキャンセルが必要です」</b></summary> - -ライフサイクルの可視性がなければ、タスク インシデントの優先順位付けが困難になります。 - -**OmniRoute がそれを解決する方法:** - -- ページネーションを使用した状態/スキルによるタスクのリスト/フィルタリング -- タスクのメタデータ、イベント、アーティファクトのドリルダウン -- タスクキャンセルエンドポイントと確認付きの UI アクション - -</details> - -<details> -<summary><b>🌊 24. 「A2A ロード用のアクティブ ストリーム メトリクスが必要です」</b></summary> - -ストリーミング ワークフローには、同時実行性とライブ接続に関する運用上の洞察が必要です。 - -**OmniRoute がそれを解決する方法:** - -- アクティブ ストリーム カウンターが A2A ステータスに統合されました -- 最後のタスクのタイムスタンプと状態ごとのカウント -- リアルタイム運用監視用の A2A ダッシュボード カード - -</details> - -<details> -<summary><b>🪪 25. 「クライアントの標準エージェント検出が必要です」</b></summary> - -外部クライアントとオーケストレーターには、オンボーディング用の機械可読メタデータが必要です。 - -**OmniRoute がそれを解決する方法:** - -- `/.well-known/agent.json` で公開されたエージェント カード -- 管理UIに表示される能力とスキル -- A2A ステータス API には自動化のための検出メタデータが含まれています - -</details> - -<details> -<summary><b>🧭 26. 「製品 UX にプロトコルの検出機能が必要です」</b></summary> - -ユーザーがプロトコルの表面を発見できない場合、導入とサポートの品質が低下します。 - -**OmniRoute がそれを解決する方法:** - -- プロキシ、MCP、A2A、API エンドポイントのタブを備えた統合された **エンドポイント** ページ -- MCP および A2A のインライン サービス ステータスの切り替え (オンライン/オフライン) -- 概要から専用の管理タブへのリンク - -</details> - -<details> -<summary><b>🧪 27. 「実際のクライアントを使用したエンドツーエンドのプロトコル検証が必要です」</b></summary> - -模擬テストは、リリース前にプロトコルの互換性を検証するには十分ではありません。 - -**OmniRoute がそれを解決する方法:** - -- アプリを起動し、実際の MCP SDK クライアント トランスポートを使用する E2E スイート -- A2A クライアントは、フローの検出、送信、ストリーミング、取得、キャンセルをテストします。 -- MCP 監査および A2A タスク API に対するアサーションのクロスチェック - -</details> - -<details> -<summary><b>📡 28. 「すべてのインターフェースにわたって統合された可観測性が必要です」</b></summary> - -プロトコルごとに可観測性を分割すると、盲点が生じ、MTTR が長くなります。 - -**OmniRoute がそれを解決する方法:** - -- ダッシュボード/ログ/分析を 1 つの製品に統合 -- OpenAI、MCP、A2A レイヤーにわたるヘルス + 監査 + リクエスト テレメトリ -- ステータスと自動化のための運用 API - -</details> - -<details> -<summary><b>💼 29. 「プロキシ + ツール + エージェント オーケストレーション用のランタイムが 1 つ必要です」</b></summary> - -多くの個別のサービスを実行すると、運用コストが増加し、障害モードが増加します。 - -**OmniRoute がそれを解決する方法:** - -- OpenAI互換プロキシ、MCPサーバー、A2Aサーバーを1つのスタックに搭載 -- 共有認証、復元力、データストア、可観測性 -- すべての対話面にわたる一貫したポリシー モデル - -</details> - -<details> -<summary><b>🚀 30. 「グルーコードのスプロールなしでエージェント ワークフローを出荷する必要がある」</b></summary> - -複数のアドホック サービスとスクリプトをつなぎ合わせると、チームの速度が低下します。 - -**OmniRoute がそれを解決する方法:** - -- クライアントとエージェント向けの統合エンドポイント戦略 -- 組み込みのプロトコル管理 UI とスモーク検証パス -- 本番環境に対応した基盤 (セキュリティ、ロギング、復元力、バックアップ) - -</details> - -### プレイブックの例 (統合されたユースケース) - -**戦略 A: 有料サブスクリプション + 安価なバックアップを最大限に活用する** - -```txt -Combo: "maximize-claude" - 1. cc/claude-opus-4-6 - 2. glm/glm-4.7 - 3. if/kimi-k2-thinking - -Monthly cost: $20 + small backup spend -Outcome: higher quality, near-zero interruption -``` - -**プレイブック B: ゼロコストのコーディング スタック** - -```txt -Combo: "free-forever" - 1. gc/gemini-3-flash - 2. if/kimi-k2-thinking - 3. qw/qwen3-coder-plus - -Monthly cost: $0 -Outcome: stable free coding workflow -``` - -**プレイブック C: 24 時間年中無休の常時オンのフォールバック チェーン** - -```txt -Combo: "always-on" - 1. cc/claude-opus-4-6 - 2. cx/gpt-5.2-codex - 3. glm/glm-4.7 - 4. minimax/MiniMax-M2.1 - 5. if/kimi-k2-thinking - -Outcome: deep fallback depth for deadline-critical workloads -``` - -**プレイブック D: MCP + A2A を使用したエージェントの運用** - -```txt -1) Start MCP transport (`omniroute --mcp`) for tool-driven operations -2) Run A2A tasks via `message/send` and `message/stream` -3) Observe via /dashboard/endpoint (MCP and A2A tabs) -4) Toggle services via inline status controls -``` - ---- - -## 🆓 無料で始められる - 構成コストゼロ - -> **$0/月**で AI コーディングを数分でセットアップできます。これらの無料アカウントを接続し、組み込みの **Free Stack** コンボを使用します。 - -| ステップ | アクション | プロバイダーのロックが解除されました | -| -------- | -------------------------------------------------------- | ---------------------------------------------------------------- | -| 1 | **Kiro** に接続 (AWS ビルダー ID OAuth) | Claude Sonnet 4.5、Haiku 4.5 — **無制限** | -| 2 | **Qoder** に接続する (Google OAuth) | kimi-k2- Thinking、qwen3-coder-plus、deepseek-r1... — **無制限** | -| 3 | **Qwen** を接続 (デバイス コード) | qwen3-coder-plus、qwen3-coder-flash... — **無制限** | -| 4 | **Gemini CLI** に接続する (Google OAuth) | gemini-3-flash、gemini-2.5-pro — **180K/月無料** | -| 5 | `/dashboard/combos` → **無料スタック ($0)** テンプレート | すべての無料プロバイダーを自動的にラウンドロビンします。 | - -**任意の IDE/CLI を次のように指定します。** `http://localhost:20128/v1` · API キー: `any-string` · 完了。 - -> **オプションの追加補償範囲 (こちらも無料):** Groq API キー (30 RPM 無料)、NVIDIA NIM (40 RPM 無料、70 以上のモデル)、Cerebras (100 万トークン/日)、LongCat API キー (5000 万トークン/日!)、Cloudflare Workers AI (10,000 ニューロン/日、50 以上のモデル)。 - -## ⚡ クイックスタート - -### 1) インストールして実行する - -```bash -npm install -g omniroute -omniroute -``` - -> **pnpm ユーザー:** インストール後に `pnpm approve-builds -g` を実行して、`better-sqlite3` および `@swc/core` に必要なネイティブ ビルド スクリプトを有効にします。 -> -> ```bash -> pnpm install -g omniroute -> pnpm approve-builds -g # Select all packages → approve -> omniroute -> ``` - -ダッシュボードは `http://localhost:20128` で開き、API ベース URL は `http://localhost:20128/v1` です。 - -| コマンド | 説明 | -| ----------------------- | --------------------------------------------------------------------------------- | -| `omniroute` | サーバーを開始します (`PORT=20128`、API とダッシュボードは同じポート上にあります) | -| `omniroute --port 3000` | 正規/API ポートを 3000 に設定します。 | -| `omniroute --mcp` | MCP サーバー (stdio トランスポート) を開始します。 | -| `omniroute --no-open` | ブラウザを自動的に開かない | -| `omniroute --help` | ヘルプを表示 | - -オプションの分割ポート モード: - -```bash -PORT=20128 DASHBOARD_PORT=20129 omniroute -# API: http://localhost:20128/v1 -# Dashboard: http://localhost:20129 -``` - -### 2) プロバイダーに接続し、API キーを作成します - -1. ダッシュボード → `Providers` を開き、少なくとも 1 つのプロバイダー (OAuth または API キー) に接続します。 -2. ダッシュボード → `Endpoints` を開き、API キーを作成します。 -3. (オプション) ダッシュボード → `Combos` を開き、フォールバック チェーンを設定します。 - -### 3) コーディング ツールを OmniRoute に指定します - -```txt -Base URL: http://localhost:20128/v1 -API Key: [copy from Endpoint page] -Model: if/kimi-k2-thinking (or any provider/model prefix) -``` - -Claude Code、Codex CLI、Gemini CLI、Cursor、Cline、OpenClaw、OpenCode、OpenAI 互換 SDK で動作します。 - -### 4) プロトコルを有効にして検証する (v2.0) - -**MCP (ツール主導の操作用):** - -```bash -omniroute --mcp -``` - -次に、`stdio` 経由で MCP クライアントに接続し、次のようなツールをテストします。 - -- `omniroute_get_health` -- `omniroute_list_combos` - -**A2A (エージェント間のワークフロー用):** - -```bash -curl http://localhost:20128/.well-known/agent.json -``` - -```bash -curl -X POST http://localhost:20128/a2a \ - -H 'content-type: application/json' \ - -d '{"jsonrpc":"2.0","id":"quickstart","method":"message/send","params":{"skill":"quota-management","messages":[{"role":"user","content":"Give me a short quota summary."}]}}' -``` - -### 5) すべてをエンドツーエンドで検証します (推奨) - -```bash -npm run test:protocols:e2e -``` - -このスイートは、実行中のアプリに対して実際の MCP および A2A クライアント フローを検証します。 - -### 代替案: ソースから実行 - -```bash -cp .env.example .env -npm install -PORT=20128 DASHBOARD_PORT=20129 NEXT_PUBLIC_BASE_URL=http://localhost:20129 npm run dev -``` - ---- - -## 🐳 ドッカー - -OmniRoute は、[Docker Hub](https://hub.docker.com/r/diegosouzapw/omniroute) のパブリック Docker イメージとして利用できます。 - -**クイック実行:** - -```bash -docker run -d \ - --name omniroute \ - --restart unless-stopped \ - -p 20128:20128 \ - -v omniroute-data:/app/data \ - diegosouzapw/omniroute:latest -``` - -**環境ファイルあり:** - -```bash -# Copy and edit .env first -cp .env.example .env - -docker run -d \ - --name omniroute \ - --restart unless-stopped \ - --env-file .env \ - -p 20128:20128 \ - -v omniroute-data:/app/data \ - diegosouzapw/omniroute:latest -``` - -**Docker Compose の使用:** - -```bash -# Base profile (no CLI tools) -docker compose --profile base up -d - -# CLI profile (Claude Code, Codex, OpenClaw built-in) -docker compose --profile cli up -d -``` - -| 画像 | タグ | サイズ | 説明 | -| ------------------------ | -------- | ------- | -------------------- | -| `diegosouzapw/omniroute` | `latest` | ~250MB | 最新の安定版リリース | -| `diegosouzapw/omniroute` | `1.0.3` | ~250MB | 現在のバージョン | - ---- - -## 🖥️ デスクトップ アプリ — オフライン&常時接続 - -> 🆕 **新規!** OmniRoute は、Windows、macOS、Linux の **ネイティブ デスクトップ アプリケーション** として利用できるようになりました。 - -OmniRoute をスタンドアロンのデスクトップ アプリとして実行します。ローカル モデルにはターミナル、ブラウザ、インターネットは必要ありません。 Electron ベースのアプリには次のものが含まれます。 - -- 🖥️ **ネイティブ ウィンドウ** — システム トレイと統合された専用アプリ ウィンドウ -- 🔄 **自動開始** — システムログイン時に OmniRoute を起動します -- 🔔 **ネイティブ通知** — クォータの枯渇またはプロバイダーの問題に関するアラートを受け取ります -- ⚡ **ワンクリック インストール** — NSIS (Windows)、DMG (macOS)、AppImage (Linux) -- 🌐 **オフライン モード** — バンドルされたサーバーで完全にオフラインで動作します - -### クイックスタート - -```bash -# Development mode -npm run electron:dev - -# Build for your platform -npm run electron:build # Current platform -npm run electron:build:win # Windows (.exe) -npm run electron:build:mac # macOS (.dmg) — x64 & arm64 -npm run electron:build:linux # Linux (.AppImage) -``` - -### システムトレイ - -最小化すると、OmniRoute はシステム トレイに常駐し、簡単なアクションが実行されます。 - -- ダッシュボードを開く -- サーバーポートの変更 -- アプリケーションを終了する - -📖 完全なドキュメント: [**OMNI_TOKEN_153**](electron/README.md) - ---- - -## 💰 価格の概要 - -| 階層 | プロバイダー | コスト | クォータのリセット | 最適な用途 | -| ------------------------- | --------------------------------- | ------------------------------- | ------------------- | --------------------------------------- | -| **💳 サブスクリプション** | クロード・コード (プロ) | $20/月 | 5 時間 + 毎週 | すでに購読済み | -| | コーデックス (プラス/プロ) | $20-200/月 | 5 時間 + 毎週 | OpenAI ユーザー | -| | ジェミニ CLI | **無料** | 180K/月 + 1K/日 | みんな! | -| | GitHub コパイロット | $10-19/月 | 月刊 | GitHub ユーザー | -| **🔑 API キー** | NVIDIA NIM | **無料** (開発は永久に) | ~40 RPM | 70 以上のオープン モデル | -| | 大脳 | **無料** (100 万トーク/日) | 60K TPM / 30 RPM | 世界最速 | -| | グロク | **無料** (30 RPM) | 14.4K RPD | 超高速ラマ/ジェマ | -| | ディープシーク V3.2 | 100 万あたり $0.27/$1.10 | なし | 最高の価格/品質の理由 | -| | xAI Grok-4 高速 | **100 万あたり $0.20/$0.50** 🆕 | なし | 最速 + ツール呼び出し、超低コスト | -| | xAI Grok-4 (標準) | 100 万あたり $0.20/$1.50 🆕 | なし | xAI の推論フラッグシップ | -| | ミストラル | 無料トライアル + 有料 | レート制限 | ヨーロッパのAI | -| | オープンルーター | 従量課金制 | なし | 合計 100 以上のモデル | -| **💰安い** | GLM-5 (Z.AI経由) 🆕 | $0.5/100万 | 毎日午前 10 時 | 128K 出力、最新のフラッグシップ | -| | GLM-4.7 | $0.6/100万 | 毎日午前 10 時 | 予算のバックアップ | -| | ミニマックス M2.5 🆕 | 100 万ドルあたり 0.3 ドルの入力 | 5時間ローリング | 推論 + エージェント タスク | -| | ミニマックス M2.1 | $0.2/100万 | 5時間ローリング | 最も安いオプション | -| | キミ K2.5 (ムーンショット API) 🆕 | 従量課金制 | なし | Moonshot API への直接アクセス | -| | キミ K2 | 月額 9 ドルのフラット | 1,000 万トークン/月 | 予測可能なコスト | -| **🆓 無料** | Qoder | **$0** | 無制限 | 5モデル無制限 | -| | クウェン | **$0** | 無制限 | 4モデル無制限 | -| | キロ | **$0** | 無制限 | クロード・ソネット/俳句 (AWS ビルダー) | -| | LongCat Flash-Lite 🆕 | **$0** (5,000 万トーク/日 🔥) | 1 RPS | 地球上で最大の無料割り当て | -| | 受粉 AI 🆕 | **$0** (キーは必要ありません) | 1 リクエスト/15 秒 | GPT-5、クロード、ディープシーク、ラマ 4 | -| | Cloudflare ワーカー AI 🆕 | **$0** (10,000 ニューロン/日) | ~150 回/日 | 50 を超えるモデル、グローバル エッジ | -| | スケールウェイ AI 🆕 | **$0** (合計 100 万トークン) | レート制限 | EU/GDPR、Qwen3 235B、ラマ 70B | - -> 🆕 **新しいモデルの追加 (2026 年 3 月):** $0.20/$0.50/M の Grok-4 Fast ファミリ (1143 ミリ秒でベンチマーク - Gemini 2.5 フラッシュより 30% 高速)、128K 出力の Z.AI 経由の GLM-5、MiniMax M2.5 推論、DeepSeek V3.2 の最新価格、Moonshot direct API 経由の Kim K2.5。 - -**💡 $0 コンボ スタック — 完全な無料セットアップ:** - -``` -# 🆓 Ultimate Free Stack 2026 — 11 Providers, $0 Forever -Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED -LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 -Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed -Qwen (qw/) → qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next UNLIMITED -Gemini (gemini/) → Gemini 2.5 Flash — 1,500 req/day free API key -Cloudflare AI (cf/) → Llama 70B, Gemma 3, Mistral — 10K Neurons/day -Scaleway (scw/) → Qwen3 235B, Llama 70B — 1M free tokens (EU) -Groq (groq/) → Llama/Gemma ultra-fast — 14.4K req/day -NVIDIA NIM (nvidia/) → 70+ open models — 40 RPM forever -Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day -``` - -**コストゼロ。コーディングを決してやめません。** これを 1 つの OmniRoute コンボとして設定すると、すべてのフォールバックが自動的に行われ、手動で切り替える必要はありません。 - ---- - ---- - -## 🆓 無料モデル — 実際に得られるもの - -> 以下のすべてのモデルは **完全に無料で、クレジット カードは必要ありません**。 OmniRoute は、1 つのクォータがなくなると、それらの間で自動ルーティングを行います。すべてを組み合わせて、破ることのできない $0 コンボを実現します。 - -### 🔵 CLAUDE MODELS (Kiro 経由 — AWS ビルダー ID) - -| モデル | プレフィックス | 制限 | レート制限 | -| ------------------- | -------------- | ---------- | ------------------------------------ | -| `claude-sonnet-4.5` | `kr/` | **無制限** | 1 日あたりの上限は報告されていません | -| `claude-haiku-4.5` | `kr/` | **無制限** | 1 日あたりの上限は報告されていません | -| `claude-opus-4.6` | `kr/` | **無制限** | Kiro 経由の最新作品 | - -### 🟢 QODER モデル (無料 OAuth — クレジット カードなし) - -| モデル | プレフィックス | 制限 | レート制限 | -| ------------------ | -------------- | ---------- | -------------------------- | -| `kimi-k2-thinking` | `if/` | **無制限** | 報告された上限はありません | -| `qwen3-coder-plus` | `if/` | **無制限** | 報告された上限はありません | -| `deepseek-r1` | `if/` | **無制限** | 報告された上限はありません | -| `minimax-m2.1` | `if/` | **無制限** | 報告された上限はありません | -| `kimi-k2` | `if/` | **無制限** | 報告された上限はありません | - -### 🟡 QWEN モデル (デバイスコード認証) - -| モデル | プレフィックス | 制限 | レート制限 | -| ------------------- | -------------- | ---------- | -------------------------- | -| `qwen3-coder-plus` | `qw/` | **無制限** | 報告された上限はありません | -| `qwen3-coder-flash` | `qw/` | **無制限** | 報告された上限はありません | -| `qwen3-coder-next` | `qw/` | **無制限** | 報告された上限はありません | -| `vision-model` | `qw/` | **無制限** | マルチモーダル (画像) | - -### 🟣 GEMINI CLI (Google OAuth) - -| モデル | プレフィックス | 制限 | レート制限 | -| ------------------------ | -------------- | --------------------------------------- | -------------- | -| `gemini-3-flash-preview` | `gc/` | **180,000 トーク/月** + 1,000 トーク/日 | 毎月のリセット | -| `gemini-2.5-pro` | `gc/` | 180K/月 (共有プール) | 高品質 | - -### ⚫ NVIDIA NIM (無料 API キー — build.nvidia.com) - -| 階層 | 1 日あたりの制限 | レート制限 | メモ | -| ----------- | -------------------- | ----------- | --------------------------------------------------- | -| 無料 (開発) | トークンキャップなし | **~40 RPM** | 70以上のモデル; 2025 年半ばに純粋なレート制限に移行 | - -人気の無料モデル: `moonshotai/kimi-k2.5` (Kimi K2.5)、`z-ai/glm4.7` (GLM 4.7)、`deepseek-ai/deepseek-v3.2` (DeepSeek V3.2)、`nvidia/llama-3.3-70b-instruct`、`deepseek/deepseek-r1` - -### ⚪ CEREBRAS (無料 API キー — inference.cerebras.ai) - -| 階層 | 1 日あたりの制限 | レート制限 | メモ | -| ---- | --------------------- | ---------------- | --------------------------------- | -| 無料 | **100 万トークン/日** | 60K TPM / 30 RPM | 世界最速の LLM 推論。毎日リセット | - -無料で利用可能: `llama-3.3-70b`、`llama-3.1-8b`、`deepseek-r1-distill-llama-70b` - -### 🔴 GROQ (無料 API キー — console.groq.com) - -| 階層 | 1 日あたりの制限 | レート制限 | メモ | -| ---- | ---------------- | ------------------- | ------------------------------------------------------- | -| 無料 | **14.4K RPD** | モデルごとに 30 RPM | クレジットカードはありません。 429 が制限、課金されない | - -無料で利用可能: `llama-3.3-70b-versatile`、`gemma2-9b-it`、`mixtral-8x7b`、`whisper-large-v3` - -### 🔴 LONGCAT AI (無料 API キー — longcat.chat) 🆕 - -| モデル | プレフィックス | 毎日の無料割り当て | メモ | -| ----------------------------- | -------------- | ----------------------- | ---------------------- | -| `LongCat-Flash-Lite` | `lc/` | **5,000 万トークン** 💥 | 史上最大の無料割り当て | -| `LongCat-Flash-Chat` | `lc/` | 500K トークン | マルチターンチャット | -| `LongCat-Flash-Thinking` | `lc/` | 500K トークン | 推論/CoT | -| `LongCat-Flash-Thinking-2601` | `lc/` | 500K トークン | 2026年1月版 | -| `LongCat-Flash-Omni-2603` | `lc/` | 500K トークン | マルチモーダル | - -> パブリックベータ版の間は完全に無料です。電子メールまたは電話で [longcat.chat](https://longcat.chat) にサインアップしてください。毎日 00:00 UTC にリセットされます。 - -### 🟢 POLLINATIONS AI (API キーは不要) 🆕 - -| モデル | プレフィックス | レート制限 | 背後のプロバイダー | -| ---------- | -------------- | ------------------ | ------------------- | -| `openai` | `pol/` | 1 リクエスト/15 秒 | GPT-5 | -| `claude` | `pol/` | 1 リクエスト/15 秒 | 人間のクロード | -| `gemini` | `pol/` | 1 リクエスト/15 秒 | Google ジェミニ | -| `deepseek` | `pol/` | 1 リクエスト/15 秒 | ディープシーク V3 | -| `llama` | `pol/` | 1 リクエスト/15 秒 | メタラマ 4 スカウト | -| `mistral` | `pol/` | 1 リクエスト/15 秒 | ミストラルAI | - -> ✨ **摩擦ゼロ:** サインアップも API キーも必要ありません。空のキーフィールドを使用して Pollinations プロバイダーを追加すると、すぐに機能します。 - -### 🟠 CLOUDFLARE WORKERS AI (無料 API キー — Cloudflare.com) 🆕 - -| 階層 | デイリーニューロン | 同等の使用法 | メモ | -| ---- | ------------------ | ----------------------------------------------- | ---------------------------------- | -| 無料 | **10,000** | ~150 LLM 対応 / 500 秒オーディオ / 15K 埋め込み | グローバル エッジ、50 以上のモデル | - -人気の無料モデル: `@cf/meta/llama-3.3-70b-instruct`、`@cf/google/gemma-3-12b-it`、`@cf/openai/whisper-large-v3-turbo` (無料音声!)、`@cf/qwen/qwen2.5-coder-15b-instruct` - -> [dash.cloudflare.com](https://dash.cloudflare.com) の API トークン + アカウント ID が必要です。アカウント ID をプロバイダー設定に保存します。 - -### 🟣 Scaleway AI (100 万個の無料トークン —scaleway.com) 🆕 - -| 階層 | 無料割り当て | 場所 | メモ | -| ---- | ------------------ | ----------- | ------------------------------------------ | -| 無料 | **100 万トークン** | 🇫🇷 パリ、EU | 制限内ではクレジットカードは必要ありません | - -無料で利用可能: `qwen3-235b-a22b-instruct-2507` (Qwen3 235B!)、`llama-3.1-70b-instruct`、`mistral-small-3.2-24b-instruct-2506`、`deepseek-v3-0324` - -> EU/GDPR に準拠。 [console.scaleway.com](https://console.scaleway.com) で API キーを取得します。 - -> **💡 究極の無料スタック (11 プロバイダー、永久に $0):** -> -> ``` -> Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -> Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED -> LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 -> Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed -> Qwen (qw/) → qwen3-coder models UNLIMITED -> Gemini (gemini/) → Gemini 2.5 Flash — 1,500 req/day free -> Cloudflare AI (cf/) → 50+ models — 10K Neurons/day -> Scaleway (scw/) → Qwen3 235B, Llama 70B — 1M free tokens (EU) -> Groq (groq/) → Llama/Gemma — 14.4K req/day ultra-fast -> NVIDIA NIM (nvidia/) → 70+ open models — 40 RPM forever -> Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day -> ``` - -## 🎙️ 無料文字起こしコンボ - -> あらゆるオーディオ/ビデオを **$0** で文字起こし — Deepgram は 200 ドルを無料、AssemblyAI は 50 ドルのフォールバック、無制限の緊急バックアップとして Groq Whisper を提供します。 - -| プロバイダー | 無料クレジット | ベストモデル | レート制限 | -| --------------------- | ------------------------------- | ----------------------------------------- | ------------------------------- | -| 🟢 **ディープグラム** | **200 ドル無料** (サインアップ) | `nova-3` — 最高の精度、30 以上の言語 | 無料クレジットには RPM 制限なし | -| 🔵 **AssemblyAI** | **50 ドル無料** (サインアップ) | `universal-3-pro` — 章、センチメント、PII | 無料クレジットには RPM 制限なし | -| 🔴 **グロク** | **永久無料** | `whisper-large-v3` — OpenAI ウィスパー | 30 RPM (レート制限) | - -**`/dashboard/combos` での推奨コンボ:** - -``` -Name: free-transcription -Strategy: Priority -Nodes: - [1] deepgram/nova-3 → uses $200 free first - [2] assemblyai/universal-3-pro → fallback when Deepgram credits run out - [3] groq/whisper-large-v3 → free forever, emergency fallback -``` - -次に、`/dashboard/media` → **文字起こし** タブで、音声ファイルまたはビデオ ファイルをアップロード → コンボ エンドポイントを選択 → サポートされている形式で文字起こしを取得します。 - -## 💡 主な機能 - -OmniRoute v2.0 は、単なるリレー プロキシではなく、運用プラットフォームとして構築されています。 - -### 🆕 新しい — ClawRouter からインスピレーションを得た改善 (2026 年 3 月) - -| 特集 | 何をするのか | -| --------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | -| ⚡ **Grok-4 高速ファミリー** | xAI モデルは $0.20/$0.50/M です — ベンチマークでは 1143 ミリ秒 (Gemini 2.5 フラッシュより 30% 高速) | -| 🧠 **GLM-5 (Z.AI 経由)** | 128K 出力コンテキスト、0.5/100 万ドル — GLM ファミリの最新フラッグシップ | -| 🔮 **ミニマックス M2.5** | 推論 + エージェント タスクを $0.30/1M で – M2.1 からの大幅なアップグレード | -| 🎯 **モデルごとのツール呼び出しフラグ** | レジストリ内のモデルごとの `toolCalling: true/false` — AutoCombo はツールに対応していないモデルをスキップします。 | -| 🌍 **多言語の意図の検出** | オートコンボ スコアリングにおける PT/ZH/ES/AR キーワード — 英語以外のコンテンツに対するより適切なモデル選択 | -| 📊 **ベンチマーク主導のフォールバック** | ライブリクエストからの実際の p95 レイテンシがコンボスコアリングにフィード — AutoCombo は実際のデータから学習 | -| 🔁 **重複排除をリクエスト** | コンテンツ ハッシュ ベースの重複排除ウィンドウ - マルチエージェントで安全、重複請求を防止 | -| 🔌 **プラグイン可能なルーター戦略** | 拡張可能な `RouterStrategy` インターフェイス — カスタム ルーティング ロジックをプラグインとして追加します。 | - -### 🚀 以前の v2.0.9+ — プレイグラウンド、CLI フィンガープリント、ACP - -| 特集 | 何をするのか | -| ---------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 🎮 **モデルの遊び場** | 任意のモデルを直接テストするためのダッシュボード ページ — プロバイダー/モデル/エンドポイント セレクター、モナコ エディター、ストリーミング、中止、タイミング | -| 🔏 **CLI 指紋照合** | ネイティブ CLI 署名と一致するようにプロバイダーごとにヘッダー/本文を順序付けします。[設定] > [セキュリティ] でプロバイダーごとに切り替えます。 **プロキシ IP は保持されます** | -| 🤝 **ACP サポート (エージェント クライアント プロトコル)** | CLI エージェント検出 (Codex、Claude、Goose、Gemini CLI、OpenClaw + その他 9 つ)、プロセス スポーナー、`/api/acp/agents` エンドポイント | -| 🤖 **ACP エージェント ダッシュボード** | デバッグ › エージェント ページ — インストール ステータス、バージョン、CLI ツールのカスタム エージェント フォームを含む 14 個のエージェントのグリッド。 **OpenCode** ユーザーには、利用可能なすべてのモデルですぐに使用できる構成を自動生成する [opencode.json をダウンロード] ボタンが表示されます。 | -| 🔧 **カスタム モデル `apiFormat` ルーティング** | `apiFormat: "responses"` を使用したカスタム モデルは、Responses API トランスレーターに正しくルーティングされるようになりました。 | -| 🏢 **Codex ワークスペースの分離** | 電子メールごとに複数の Codex ワークスペース - OAuth はワークスペース ID によって接続を正しく分離します。 | -| 🔄 **Electron 自動アップデート** | デスクトップ アプリがアップデートをチェックし、再起動時に自動インストール | - -### 🤖 エージェントとプロトコルの操作 (v2.0) - -| 特集 | 何をするのか | -| ---------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | -| 🔧 **MCP サーバー (16 ツール)** | 3 つのトランスポート経由の IDE/エージェント ツール: 標準入出力、SSE (`/api/mcp/sse`)、ストリーミング可能な HTTP (`/api/mcp/stream`) | -| 🤝 **A2A サーバー (JSON-RPC + SSE)** | 同期およびストリーミング フローを使用したエージェント間のタスクの実行 | -| 🧭 **統合エンドポイント ページ** | [エンドポイント プロキシ]、[MCP]、[A2A]、および [API エンドポイント] タブを備えたタブ付き管理ページ | -| 🎚️ **サービスの有効化/無効化の切り替え** | 設定永続性を備えた MCP および A2A の ON/OFF スイッチ (デフォルト: OFF) | -| 🛰️ **MCP ランタイム ハートビート** | 実際のプロセス ステータス (pid、稼働時間、ハートビート経過時間、トランスポート、スコープ モード) | -| 📋 **MCP 監査証跡** | 成功/失敗およびキーの属性を含むフィルタリング可能な監査ログ | -| 🔐 **MCP スコープの適用** | 制御されたツールアクセスのための 9 つの詳細な範囲の権限 | -| 📡 **A2A タスク ライフサイクル管理** | タスクのリスト/フィルター、イベント/アーティファクトの検査、実行中のタスクのキャンセル | -| 📋 **エージェント カードの検出** | `/.well-known/agent.json` クライアント自動検出用 | -| 🧪 **プロトコル E2E テスト ハーネス** | `test:protocols:e2e` での実際の MCP SDK + A2A クライアント フロー | -| ⚙️ **運用管理** | 1 つのコントロール サーフェスからコンボを切り替え、レジリエンス プロファイルを適用し、ブレーカーをリセット | - -### 🧠 ルーティングとインテリジェンス - -| 特集 | 何をするのか | -| ------------------------------------------- | ---------------------------------------------------------------------------- | -| 🎯 **スマート 4 層フォールバック** | 自動ルート: サブスクリプション → API キー → 格安 → 無料 | -| 📊 **リアルタイムのクォータ追跡** | プロバイダーごとのライブ トークン数 + リセット カウントダウン | -| 🔄 **フォーマット変換** | OpenAI ↔ Claude ↔ Gemini ↔ スキーマセーフな変換による応答 | -| 👥 **マルチアカウントのサポート** | インテリジェントな選択によるプロバイダーごとの複数のアカウント | -| 🔄 **自動トークン更新** | OAuth トークンは再試行によって自動的に更新されます。 | -| 🎨 **カスタムコンボ** | 6 つのバランシング戦略 + フォールバック チェーン制御 | -| 🌐 **ワイルドカードルーター** | `provider/*` 動的ルーティング | -| 🧠 **予算管理について考える** | パススルー、自動、カスタム、および適応推論の制限 | -| 🔀 **モデルのエイリアス** | 組み込み + カスタム モデルのエイリアシングと移行の安全性 | -| ⚡ **背景の劣化** | 優先度の低いバックグラウンド タスクを安価なモデルにルーティングする | -| 🧪 **タスク認識型スマート ルーティング** | コンテンツ タイプ (コーディング/ビジョン/分析/要約) によるモデルの自動選択 | -| 💬 **システム プロンプト インジェクション** | 一貫して適用されるグローバルな動作制御 | -| 📄 **レスポンス API の互換性** | Codex および高度なエージェント ワークフローの完全な `/v1/responses` サポート | - -### 🎵 マルチモーダル API - -| 特集 | 何をするのか | -| ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 🖼️ **画像生成** | `/v1/images/generations` クラウドおよびローカル バックエンドを使用 | -| 📐 **埋め込み** | `/v1/embeddings` 検索および RAG パイプライン用 | -| 🎤 **音声文字起こし** | `/v1/audio/transcriptions` — 7 つのプロバイダー (Deepgram Nova 3、AssemblyAI、Groq Whisper、HuggingFace、イレブンラボ、OpenAI、Azure)、自動言語検出、MP4/MP3/WAV サポート | -| 🔊 **テキスト読み上げ** | `/v1/audio/speech` — 10 プロバイダー (イレブンラボ、OpenAI、Deepgram、Cartesia、PlayHT、HuggingFace、Nvidia NIM、I​​nworld、Coqui、Tortoise) と正しいエラー メッセージ | -| 🎬 **ビデオ生成** | `/v1/videos/generations` (ComfyUI + SD WebUI ワークフロー) | -| 🎵 **音楽生成** | `/v1/music/generations` (ComfyUI ワークフロー) | -| 🛡️ **モデレーション** | `/v1/moderations` 安全性チェック | -| 🔀 **再ランキング** | 関連性スコアリング用の `/v1/rerank` | -| 🔍 **ウェブ検索** 🆕 | `/v1/search` — 5 プロバイダー (Serper、Brave、Perplexity、Exa、Tavily)、6,500 以上無料/月、自動フェイルオーバー、キャッシュ | - -### 🛡️ 復元力、セキュリティ、ガバナンス - -| 特集 | 何をするのか | -| -------------------------------------- | ---------------------------------------------------------------------------------------------- | -| 🔌 **サーキットブレーカー** | 閾値制御によるモデルごとのトリップ/リカバリ | -| 🎯 **エンドポイント対応モデル** | カスタム モデルは、サポートされるエンドポイント + API 形式を宣言します。 | -| 🛡️ **対雷鳴の群れ** | 再試行/レートイベントにおけるミューテックス + セマフォ保護 | -| 🧠 **セマンティック + 署名キャッシュ** | 2 つのキャッシュ層によるコスト/遅延の削減 | -| ⚡ **冪等性のリクエスト** | 重複保護ウィンドウ | -| 🔒 **TLS 指紋スプーフィング** | ブラウザのような TLS フィンガープリント — **ボットの検出とアカウントのフラグ付けを削減します** | -| 🔏 **CLI 指紋照合** | ネイティブ CLI リクエスト署名と一致 — **プロキシ IP を保持しながら禁止リスクを軽減** | -| 🌐 **IP フィルタリング** | 公開された展開のホワイトリスト/ブロックリストの制御 | -| 📊 **編集可能なレート制限** | 永続性を備えた構成可能なグローバル/プロバイダーレベルの制限 | -| 🔑 **API キー管理 + スコーピング** | 安全なキーの発行/ローテーションとモデル/プロバイダーの制御 | -| 🛡️ **保護されています `/models`** | モデル カタログのオプションの認証ゲートとプロバイダーの非表示 | - -### 📊 可観測性と分析 - -| 特集 | 何をするのか | -| --------------------------------- | --------------------------------------------------------------------- | -| 📝 **リクエスト + プロキシ ログ** | 完全なリクエスト/レスポンスとプロキシ ログ | -| 📉 **Streamed Detailed Logs** 🆕 | Reconstructs SSE payload streams cleanly into the UI | -| 📋 **統合ログ ダッシュボード** | リクエスト、プロキシ、監査、およびコンソールのビューを 1 ページに表示 | -| 🔍 **テレメトリのリクエスト** | p50/p95/p99 レイテンシーとリクエストのトレース | -| 🏥 **健康ダッシュボード** | 稼働時間、ブレーカー状態、ロックアウト、キャッシュ統計 | -| 💰 **コスト追跡** | 予算管理とモデルごとの価格の可視性 | -| 📈 **分析の視覚化** | モデル/プロバイダーの使用状況に関する洞察と傾向ビュー | -| 🧪 **評価フレームワーク** | 構成可能な一致戦略を使用したゴールデン セット テスト | - -### ☁️ 導入とプラットフォーム - -| 特集 | 何をするのか | -| ----------------------------------- | -------------------------------------------------------------------------- | ------------------------------ | -| 🌐 **どこにでも展開** | Localhost、VPS、Docker、クラウド環境 | -| 💾 **クラウド同期** | クラウド ワーカー経由の構成同期 | -| 🔄 **バックアップ/復元** | エクスポート/インポートと災害復旧フロー | -| 🧙 **オンボーディング ウィザード** | 初回実行のガイド付きセットアップ | -| 🔧 **CLI ツール ダッシュボード** | 人気のコーディング ツールをワンクリックでセットアップ | -| 🎮 **モデルの遊び場** | ダッシュボードから任意のプロバイダー/モデル/エンドポイントをテストします。 | -| 🔏 **CLI 指紋切り替え** | [設定] > [セキュリティ] | でのプロバイダーごとの指紋照合 | -| 🌐 **i18n (30 言語)** | RTL をカバーする完全なダッシュボード + ドキュメント言語サポート | -| 🧹 **すべてのモデルをクリア** | ワンクリックでプロバイダー詳細のモデルリストをクリア | -| 👁️ **Sidebar Controls** 🆕 | Hide components and integrations from Appearance Settings | -| 📋 **問題テンプレート** | バグと機能用の標準化された GitHub テンプレート | -| 📂 **カスタム データ ディレクトリ** | `DATA_DIR` 保管場所のオーバーライド | - -### 機能の詳細 - -#### 実用的なコスト管理によるスマートなフォールバック - -```txt -Combo: "my-coding-stack" - 1. cc/claude-opus-4-6 - 2. nvidia/llama-3.3-70b - 3. glm/glm-4.7 - 4. if/kimi-k2-thinking -``` - -クォータ、レート、またはヘルスに障害が発生した場合、OmniRoute は手動で切り替えることなく、次の候補に自動的に移動します。 - -#### 見える化・操作可能なプロトコル管理 - -- MCP + A2A は UI とドキュメントで検出可能です (非表示ではありません) -- プロトコル ステータス API はライブ運用データを公開します (`/api/mcp/*`、`/api/a2a/*`) -- ダッシュボードには 2 日目の操作のアクション (コンボの切り替え、ブレーカーのリセット、タスクのキャンセル) が含まれています - -#### 翻訳者 + 検証ワークフロー - -翻訳領域には次のものが含まれます。 - -- **プレイグラウンド**: 変換チェックをリクエストします -- **チャット テスター**: 完全なリクエスト/レスポンスの往復 -- **テストベンチ**: 1 回の実行で複数のケース -- **ライブ モニター**: リアルタイムの交通状況ビュー - -さらに、`npm run test:protocols:e2e` を介した実際のクライアントでのプロトコル検証。 - -> 📖 **[MCP Server README](open-sse/mcp-server/README.md)** — ツールリファレンス、IDE 構成、およびクライアントの例 -> -> 📖 **[A2A Server README](src/lib/a2a/README.md)** — スキル、JSON-RPC メソッド、ストリーミング、タスクのライフサイクル - -## 🧪 評価 (Evals) - -OmniRoute には、ゴールデン セットに対して LLM 応答品質をテストするための評価フレームワークが組み込まれています。ダッシュボードの **Analytics → Evals** からアクセスします。 - -### 内蔵ゴールデンセット - -プリロードされた「OmniRoute Golden Set」には、次のテスト ケースが含まれています。 - -- 挨拶、数学、地理、コード生成 -- JSON形式への準拠、翻訳、マークダウン生成 -- 安全拒否(有害なコンテンツ)、カウント、ブール論理 - -### 評価戦略 - -| 戦略 | 説明 | 例 | -| ---------- | ------------------------------------------------------------------------------------------- | ----------- | -| `exact` | 出力は正確に一致する必要があります | `"4"` | -| `contains` | 出力には部分文字列が含まれている必要があります (大文字と小文字は区別されません)。 `"Paris"` | -| `regex` | 出力は正規表現パターンと一致する必要があります | `"1.*2.*3"` | -| `custom` | カスタム JS 関数は true/false を返します。 `(output) => output.length > 10` | - ---- - -## 📖 セットアップガイド - -### プロトコルのセットアップ (MCP + A2A) - -<details> -<summary><b>🧩 MCP セットアップ (モデル コンテキスト プロトコル)</b></summary> - -MCP トランスポートを標準入出力モードで開始します。 - -```bash -omniroute --mcp -``` - -推奨される検証フロー: - -1. MCP クライアントを標準入出力経由で接続します。 -2. `omniroute_get_health` を実行します。 -3. `omniroute_list_combos` を実行します。 -4. `/dashboard/mcp` を開いて、ハートビート、アクティビティ、および監査を確認します。 - -自動化に役立つ API: - -- `GET /api/mcp/status` -- `GET /api/mcp/tools` -- `GET /api/mcp/audit` -- `GET /api/mcp/audit/stats` - -</details> - -<details> -<summary><b>🤝 A2A セットアップ (エージェント 2 エージェント)</b></summary> - -エージェントを検出します。 - -```bash -curl http://localhost:20128/.well-known/agent.json -``` - -タスクを送信します。 - -```bash -curl -X POST http://localhost:20128/a2a \ - -H 'content-type: application/json' \ - -d '{"jsonrpc":"2.0","id":"setup-a2a","method":"message/send","params":{"skill":"quota-management","messages":[{"role":"user","content":"Summarize quota status."}]}}' -``` - -ライフサイクルを管理する: - -- `GET /api/a2a/status` -- `GET /api/a2a/tasks` -- `GET /api/a2a/tasks/:id` -- `POST /api/a2a/tasks/:id/cancel` - -操作UI: - -- `/dashboard/a2a` タスク/状態/ストリームの可観測性とスモークアクション用 - -</details> - -<details> -<summary><b>🧪 エンドツーエンドのプロトコル検証</b></summary> - -実際のクライアントを使用して両方のプロトコルを検証します。 - -```bash -npm run test:protocols:e2e -``` - -これにより以下が検証されます。 - -- MCP SDK クライアントの接続/リスト/呼び出し -- A2A 検出/送信/ストリーム/取得/キャンセル -- MCP監査およびA2Aタスク管理APIのデータをクロスチェックします - -</details> - -<details> -<summary><b>💳 サブスクリプションプロバイダー</b></summary> - -### クロード コード (Pro/Max) - -```bash -Dashboard → Providers → Connect Claude Code -→ OAuth login → Auto token refresh -→ 5-hour + weekly quota tracking - -Models: - cc/claude-opus-4-6 - cc/claude-sonnet-4-5-20250929 - cc/claude-haiku-4-5-20251001 -``` - -**プロのヒント:** 複雑なタスクには Opus を使用し、速度を求める場合は Sonnet を使用します。 OmniRoute はモデルごとの割り当てを追跡します。 - -### OpenAI コーデックス (プラス/プロ) - -```bash -Dashboard → Providers → Connect Codex -→ OAuth login (port 1455) -→ 5-hour + weekly reset - -Models: - cx/gpt-5.2-codex - cx/gpt-5.1-codex-max -``` - -#### Codex アカウント制限管理 (5 時間 + 毎週) - -各 Codex アカウントには、`Dashboard -> Providers` でポリシーの切り替えが含まれるようになりました。 - -- `5h` (オン/オフ): 5 時間のウィンドウしきい値ポリシーを適用します。 -- `Weekly` (オン/オフ): 週ごとのウィンドウしきい値ポリシーを強制します。 -- しきい値の動作: 有効なウィンドウの使用率が 90% 以上に達すると、そのアカウントはスキップされます。 -- ローテーション動作: OmniRoute は、次の対象となる Codex アカウントに自動的にルーティングします。 -- リセット動作: プロバイダー `resetAt` 時間が経過すると、アカウントは自動的に再び適格になります。 - -シナリオ: - -- `5h ON` + `Weekly ON`: いずれかのウィンドウがしきい値に達すると、アカウントはスキップされます。 -- `5h OFF` + `Weekly ON`: アカウントをブロックできるのは週単位の使用のみです。 -- `5h ON` + `Weekly OFF`: アカウントをブロックできるのは 5 時間の使用のみです。 -- `resetAt` に合格しました: アカウントは自動的にローテーションを再開します (手動での再有効化はありません)。 - -### Gemini CLI (月額 180,000 回無料!) - -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**ベストバリュー:** 膨大な無料枠!有料レベルの前にこれを使用してください。 - -### GitHub コパイロット - -```bash -Dashboard → Providers → Connect GitHub -→ OAuth via GitHub -→ Monthly reset (1st of month) - -Models: - gh/gpt-5 - gh/claude-4.5-sonnet - gh/gemini-3-pro -``` - -</details> - -<details> -<summary><b>🔑 API キープロバイダー</b></summary> - -### NVIDIA NIM (無料の開発者アクセス - 70 以上のモデル) - -1. サインアップ: [build.nvidia.com](https://build.nvidia.com) -2. 無料の API キーを取得します (1000 推論クレジットが含まれます) -3. ダッシュボード → プロバイダーの追加 → NVIDIA NIM: - - API キー: `nvapi-your-key` - -**モデル:** `nvidia/llama-3.3-70b-instruct`、`nvidia/mistral-7b-instruct`、および 50 以上 - -**プロのヒント:** OpenAI 互換 API — OmniRoute のフォーマット変換とシームレスに連携します。 - -### ディープシーク - -1. サインアップ: [platform.deepseek.com](https://platform.deepseek.com) -2. APIキーを取得する -3. ダッシュボード → プロバイダーの追加 → DeepSeek - -**モデル:** `deepseek/deepseek-chat`、`deepseek/deepseek-coder` - -### Groq (無料利用枠あり!) - -1. サインアップ: [console.groq.com](https://console.groq.com) -2. API キーを取得します (無料利用枠を含む) -3. ダッシュボード → プロバイダーの追加 → Groq - -**モデル:** `groq/llama-3.3-70b`、`groq/mixtral-8x7b` - -**プロのヒント:** 超高速推論 — リアルタイム コーディングに最適です。 - -### OpenRouter (100 以上のモデル) - -1. サインアップ: [openrouter.ai](https://openrouter.ai) -2. APIキーを取得する -3. ダッシュボード → プロバイダーの追加 → OpenRouter - -**モデル:** 単一の API キーを通じて、すべての主要プロバイダーの 100 以上のモデルにアクセスします。 - -</details> - -<details> -<summary><b>💰 格安プロバイダー (バックアップ)</b></summary> - -### GLM-4.7 (毎日リセット、0.6 ドル/100 万ドル) - -1. サインアップ: [Zhipu AI](https://open.bigmodel.cn/) 2.コーディングプランからAPIキーを取得 -2. ダッシュボード → API キーの追加: - - プロバイダー: `glm` - - API キー: `your-key` - -**使用方法:** `glm/glm-4.7` - -**プロのヒント:** コーディング プランでは、1/7 のコストで 3 倍の割り当てを提供します。毎日午前 10 時にリセットされます。 - -### MiniMax M2.1 (5 時間リセット、$0.20/1M) - -1. サインアップ: [MiniMax](https://www.minimax.io/) -2. APIキーを取得する -3. ダッシュボード → APIキーの追加 - -**使用方法:** `minimax/MiniMax-M2.1` - -**プロのヒント:** 長いコンテキスト (100 万トークン) の最も安価なオプション! - -### キミ K2 (月額定額 9 ドル) - -1. 購読: [Moonshot AI](https://platform.moonshot.ai/) -2. APIキーを取得する -3. ダッシュボード → APIキーの追加 - -**使用方法:** `kimi/kimi-latest` - -**プロのヒント:** 1,000 万トークンの固定 $9/月 = 0.90 ドル/100 万の実効コスト! - -</details> - -<details> -<summary><b>🆓 無料プロバイダー (緊急バックアップ)</b></summary> - -### Qoder (OAuth 経由の 5 つの無料モデル) - -```bash -Dashboard → Connect Qoder -→ Qoder OAuth login -→ Unlimited usage - -Models: - if/kimi-k2-thinking - if/qwen3-coder-plus - if/glm-4.7 - if/minimax-m2 - if/deepseek-r1 -``` - -### Qwen (デバイス コード経由の 4 つの無料モデル) - -```bash -Dashboard → Connect Qwen -→ Device code authorization -→ Unlimited usage - -Models: - qw/qwen3-coder-plus - qw/qwen3-coder-flash -``` - -### キロ (クロード・フリー) - -```bash -Dashboard → Connect Kiro -→ AWS Builder ID or Google/GitHub -→ Unlimited usage - -Models: - kr/claude-sonnet-4.5 - kr/claude-haiku-4.5 -``` - -</details> - -<details> -<summary><b>🎨 コンボを作成</b></summary> - -### 例 1: サブスクリプションを最大化 → 安価なバックアップ - -``` -Dashboard → Combos → Create New - -Name: premium-coding -Models: - 1. cc/claude-opus-4-6 (Subscription primary) - 2. glm/glm-4.7 (Cheap backup, $0.6/1M) - 3. minimax/MiniMax-M2.1 (Cheapest fallback, $0.20/1M) - -Use in CLI: premium-coding -``` - -### 例 2: 無料のみ (コストゼロ) - -``` -Name: free-combo -Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) - -Cost: $0 forever! -``` - -</details> - -<details> -<summary><b>🔧 CLI 統合</b></summary> - -### カーソル IDE - -``` -Settings → Models → Advanced: - OpenAI API Base URL: http://localhost:20128/v1 - OpenAI API Key: [from OmniRoute dashboard] - Model: cc/claude-opus-4-6 -``` - -### クロードコード - -ダッシュボードの **CLI ツール** ページを使用してワンクリック構成するか、`~/.claude/settings.json` を手動で編集します。 - -### コーデックス CLI - -```bash -export OPENAI_BASE_URL="http://localhost:20128" -export OPENAI_API_KEY="your-omniroute-api-key" - -codex "your prompt" -``` - -### オープンクロー - -**オプション 1 — ダッシュボード (推奨):** - -``` -Dashboard → CLI Tools → OpenClaw → Select Model → Apply -``` - -**オプション 2 — 手動:** `~/.openclaw/openclaw.json` を編集: - -```json -{ - "models": { - "providers": { - "omniroute": { - "baseUrl": "http://127.0.0.1:20128/v1", - "apiKey": "sk_omniroute", - "api": "openai-completions" - } - } - } -} -``` - -> **注:** OpenClaw はローカル OmniRoute でのみ機能します。 IPv6 解決の問題を回避するには、`localhost` ではなく `127.0.0.1` を使用してください。 - -### クライン / 継続 / RooCode - -``` -Settings → API Configuration: - Provider: OpenAI Compatible - Base URL: http://localhost:20128/v1 - API Key: [from OmniRoute dashboard] - Model: if/kimi-k2-thinking -``` - -### オープンコード - -**ステップ 1:** OmniRoute をカスタム プロバイダーとして追加します。 - -```bash -opencode -/connect -# Select "Other" → Enter ID: "omniroute" → Enter your OmniRoute API key -``` - -**ステップ 2:** プロジェクト ルートで `opencode.json` を作成/編集します。 - -```json -{ - "$schema": "https://opencode.ai/config.json", - "provider": { - "omniroute": { - "npm": "@ai-sdk/openai-compatible", - "name": "OmniRoute", - "options": { - "baseURL": "http://localhost:20128/v1" - }, - "models": { - "cc/claude-sonnet-4-20250514": { "name": "Claude Sonnet 4" }, - "gg/gemini-2.5-pro": { "name": "Gemini 2.5 Pro" }, - "if/kimi-k2-thinking": { "name": "Kimi K2 (Free)" } - } - } - } -} -``` - -**ステップ 3:** OpenCode でモデルを選択します。 - -```bash -/models -# Select any OmniRoute model from the list -``` - -> **ヒント:** OmniRoute `/v1/models` エンドポイントで利用可能なモデルを `models` セクションに追加します。 OmniRoute ダッシュボードから `provider/model-id` 形式を使用します。 - -</details> - ---- - -## 🐛 トラブルシューティング - -<details> -<summary><b>クリックしてトラブルシューティング ガイドを展開</b></summary> - -**「言語モデルがメッセージを提供しませんでした」** - -- プロバイダー クォータが枯渇した → ダッシュボード クォータ トラッカーを確認してください -- 解決策: コンボフォールバックを使用するか、より安価なレベルに切り替える - -**レート制限** - -- サブスクリプション クォータ アウト → GLM/MiniMax へのフォールバック -- コンボを追加: `cc/claude-opus-4-6 → glm/glm-4.7 → if/kimi-k2-thinking` - -**OAuth トークンの有効期限が切れました** - -- OmniRouteによる自動更新 -- 問題が解決しない場合: ダッシュボード → プロバイダー → 再接続 - -**高コスト** - -- [ダッシュボード] → [コスト] で使用状況の統計を確認します。 -- プライマリ モデルを GLM/MiniMax に切り替えます -- 重要ではないタスクには無料枠 (Gemini CLI、Qoder) を使用する - -**ダッシュボード/API ポートが間違っています** - -- `PORT` は正規のベース ポート (およびデフォルトでは API ポート) -- `API_PORT` は OpenAI 互換の API リスナーのみをオーバーライドします -- `DASHBOARD_PORT` はダッシュボード/Next.js リスナーのみをオーバーライドします -- `NEXT_PUBLIC_BASE_URL` をダッシュボード/パブリック URL に設定します (OAuth コールバック用) - -**クラウド同期エラー** - -- `BASE_URL` が実行中のインスタンスを指していることを確認します -- `CLOUD_URL` が予想されるクラウド エンドポイントを指していることを確認します -- `NEXT_PUBLIC_*` 値をサーバー側の値と一致させます。 - -**最初のログインが機能しない** - -- `.env` の `INITIAL_PASSWORD` を確認してください -- 設定されていない場合、フォールバック パスワードは `123456` です。 - -**リクエストログなし** - -- `.env` に `ENABLE_REQUEST_LOGS=true` を設定します - -**OpenAI 互換プロバイダーの接続テストで「無効」と表示される** - -- 多くのプロバイダーは `/models` エンドポイントを公開していません -- OmniRoute v1.0.6+ には、チャット完了によるフォールバック検証が含まれています -- ベース URL に `/v1` サフィックスが含まれていることを確認してください - -### 🔐 リモートサーバー上の OAuth - -<a name="oauth-on-a-remote-server"></a> -<a name="oauth-em-servidor-remoto"></a> - -> **⚠️ VPS、Docker、または任意のリモート サーバーで OmniRoute を実行しているユーザーにとって重要** - -#### Antigravity / Gemini CLI OAuth がリモート サーバーで失敗するのはなぜですか? - -**Antigravity** プロバイダーと **Gemini CLI** プロバイダーは **Google OAuth 2.0** を使用します。 Google では、OAuth フロー内の `redirect_uri` が、アプリの Google Cloud Console に事前登録された URI の 1 つと正確に一致する必要があります。 - -OmniRoute にバンドルされている OAuth 資格情報は、**`localhost` に対してのみ**登録されます。リモート サーバー (`https://omniroute.myserver.com` など) 上の OmniRoute にアクセスすると、Google は次のような認証を拒否します。 - -``` -Error 400: redirect_uri_mismatch -``` - -#### 解決策: 独自の OAuth 資格情報を構成する - -Google Cloud Console でサーバーの URI を使用して **OAuth 2.0 クライアント ID** を作成する必要があります。 - -#### ステップバイステップ - -**1. Google Cloud コンソールを開きます** - -[https://console.cloud.google.com/apis/credentials](https://console.cloud.google.com/apis/credentials) に移動します。 - -**2.新しい OAuth 2.0 クライアント ID を作成します** - -- **「+ 資格情報の作成」** → **「OAuth クライアント ID」** をクリックします。 -- アプリケーションの種類: **「Web アプリケーション」** -- 名前: 任意の名前 (例: `OmniRoute Remote`) - -**3.承認されたリダイレクト URI の追加** - -**「承認されたリダイレクト URI」** フィールドに、次を追加します。 - -``` -https://your-server.com/callback -``` - -> `your-server.com` をサーバーのドメインまたは IP に置き換えます (必要に応じてポートを含めます (例: `http://45.33.32.156:20128/callback`))。 - -**4.資格情報を保存してコピーします** - -作成後、Google には **クライアント ID** と **クライアント シークレット**が表示されます。 - -**5.環境変数を設定します** - -`.env` (または Docker 環境変数) 内: - -```bash -# For Antigravity: -ANTIGRAVITY_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com -ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-your-secret - -# For Gemini CLI: -GEMINI_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com -GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -``` - -**6. OmniRoute を再起動します** - -```bash -# npm: -npm run dev - -# Docker: -docker restart omniroute -``` - -**7.もう一度接続してみてください** - -ダッシュボード → プロバイダー → Antigravity (または Gemini CLI) → OAuth - -Google は `https://your-server.com/callback` に正しくリダイレクトされるようになりました。 - ---- - -#### 一時的な回避策 (カスタム認証情報を使用しない場合) - -今すぐ独自の認証情報を設定したくない場合でも、**手動 URL フロー**を使用できます。 - -1. OmniRoute が Google 認証 URL を開きます -2. 承認後、Google は `localhost` へのリダイレクトを試行します (リモート サーバーで失敗します)。 -3. ブラウザのアドレス バーから **完全な URL をコピー**します (ページが読み込まれない場合でも) -4. その URL を OmniRoute 接続モーダルに表示されるフィールドに貼り付けます。 -5. **「接続」** をクリックします。 - -> これは、リダイレクト ページが読み込まれたかどうかに関係なく、URL 内の認証コードが有効であるため機能します。 - ---- - -<details> -<summary><b>🇧🇷 ポルトガル語</b></summary> - -#### Antigravity / Gemini CLI の OAuth は、リモートのサービスを提供しますか? - -**反重力** と **Gemini CLI** を使用して **Google OAuth 2.0** を認証します。 O Google exige que a `redirect_uri` usada no fluxo OAuth seja **exatamente** uma das URIs pré-cadastradas Google Cloud Console でアプリケーションを実行できません。 - -認証情報として OAuth は、`localhost`\*\* の OmniRoute データベースの構築をサポートしません。 OmniRoute サーバー リモートへのアクセス (例: `https://omniroute.meuservidor.com`)、Google による認証: - -``` -Error 400: redirect_uri_mismatch -``` - -#### 解決策: OAuth の固有資格情報を構成する - -**OAuth 2.0 クライアント ID** では、Google Cloud Console の URI がサーバーを参照するための正確な基準が設定されています。 - -#### パッソ ア パッソ - -**1. Google Cloud コンソールへのアクセス** - -アブラ: [https://console.cloud.google.com/apis/credentials](https://console.cloud.google.com/apis/credentials) - -**2.新しい OAuth 2.0 クライアント ID** - -- Clique em **「+ 認証情報の作成」** → **「OAuth クライアント ID」** -- 応用情報: **「Web アプリケーション」** -- 名前: escolha qualquer 名前 (例: `OmniRoute Remote`) - -**3.承認されたリダイレクト URI としての Adicione** - -**「承認されたリダイレクト URI」** はありません、アディシオン: - -``` -https://seu-servidor.com/callback -``` - -> `seu-servidor.com` を IP サーバーとして置き換えてください (必要なポータルを含む、例: `http://45.33.32.156:20128/callback`)。 - -**4.コピーを認証情報として保存** - -Google のほとんどの情報、**クライアント ID**、または **クライアント シークレット** を使用してください。 - -**5.環境変数として設定** - -`.env` は使用できません (Docker の環境変数を変更します): - -```bash -# Para Antigravity: -ANTIGRAVITY_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com -ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret - -# Para Gemini CLI: -GEMINI_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com -GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -``` - -**6.レイニシー・オ・オムニルート** - -```bash -# Se usando npm: -npm run dev - -# Se usando Docker: -docker restart omniroute -``` - -**7.テンテ コネクター ノヴァメンテ** - -ダッシュボード → プロバイダー → Antigravity (Gemini CLI) → OAuth - -`https://seu-servidor.com/callback` の認証機能を Google でリダイレクトして修正します。 - ---- - -#### 一時的な回避策 (資格情報を適切に設定する) - -**URL のマニュアル**: - -1. OmniRoute は Google の自動 URL を提供します -2. `localhost` による Google の自動リダイレクト (サーバー リモートの要求) -3. **URL をコピーしてください** ブラウザを使用してブラウザを開きます (カレーグのページを表示します) -4. コール エッサ URL は、OmniRoute の接続モーダルなしです。 -5. クリーク**「接続」** - -> 自動回避策の機能は URL から独立してリダイレクトされます。 - -</details> - ---- - -</details> - -## 🛠️ 技術スタック - -<details> -<summary><b>クリックして技術スタックの詳細を展開</b></summary> - -- **ランタイム**: Node.js 18–22 LTS (⚠️ Node.js 24+ は **サポートされていません** — `better-sqlite3` ネイティブ バイナリは互換性がありません) -- **言語**: TypeScript 5.9 — `src/` および `open-sse/` 全体で **100% TypeScript** (v2.0 以降のコア モジュールには `any` はありません) -- **フレームワーク**: Next.js 16 + React 19 + Tailwind CSS 4 -- **データベース**: LowDB (JSON) + SQLite (ドメイン状態 + プロキシ ログ + MCP 監査 + ルーティング決定) -- **スキーマ**: Zod (MCP ツール I/O 検証、API コントラクト) -- **プロトコル**: MCP (stdio/HTTP) + A2A v0.3 (JSON-RPC 2.0 + SSE) -- **ストリーミング**: サーバー送信イベント (SSE) -- **認証**: OAuth 2.0 (PKCE) + JWT + API キー + MCP スコープの認証 -- **テスト**: Node.js テスト ランナー + Vitest (単体、統合、E2E を含む 900 以上のテスト) -- **CI/CD**: GitHub アクション (自動 npm パブリッシュ + リリース時の Docker Hub) -- **ウェブサイト**: [omniroute.online](https://omniroute.online) -- **パッケージ**: [npmjs.com/package/omniroute](https://www.npmjs.com/package/omniroute) -- **Docker**: [hub.docker.com/r/diegosouzapw/omniroute](https://hub.docker.com/r/diegosouzapw/omniroute) -- **回復力**: サーキット ブレーカー、エクスポネンシャル バックオフ、アンチサンダー ハード、TLS スプーフィング、自動コンボ自己修復 - -</details> - ---- - -## 📖 ドキュメント - -| ドキュメント | 説明 | -| ---------------------------------------------- | ----------------------------------------------------------- | -| [User Guide](docs/USER_GUIDE.md) | プロバイダー、コンボ、CLI 統合、展開 | -| [API Reference](docs/API_REFERENCE.md) | すべてのエンドポイントと例 | -| [MCP Server](open-sse/mcp-server/README.md) | 16 MCP ツール、IDE 構成、Python/TS/Go クライアント | -| [A2A Server](src/lib/a2a/README.md) | JSON-RPC 2.0 プロトコル、スキル、ストリーミング、タスク管理 | -| [Auto-Combo Engine](docs/auto-combo.md) | 6 要素スコアリング、モード パック、自己修復 | -| [Troubleshooting](docs/TROUBLESHOOTING.md) | よくある問題と解決策 | -| [Architecture](docs/ARCHITECTURE.md) | システム アーキテクチャと内部構造 | -| [Contributing](CONTRIBUTING.md) | 開発セットアップとガイドライン | -| [OpenAPI Spec](docs/openapi.yaml) | OpenAPI 3.0 仕様 | -| [Security Policy](SECURITY.md) | 脆弱性の報告とセキュリティの実践 | -| [VM Deployment](docs/VM_DEPLOYMENT_GUIDE.md) | 完全ガイド: VM + nginx + Cloudflare セットアップ | -| [Features Gallery](docs/FEATURES.md) | スクリーンショットを含むビジュアル ダッシュボード ツアー | -| [Release Checklist](docs/RELEASE_CHECKLIST.md) | リリース前の検証手順 | - ---- - -## 🗺️ ロードマップ - -OmniRoute には、複数の開発フェーズにわたって **210 以上の機能が計画されています**。主要な領域は次のとおりです。 - -| カテゴリー | 計画されている機能 | ハイライト | -| ------------------------------------- | ------------------ | -------------------------------------------------------------------------------------------------------------- | -| 🧠 **ルーティングとインテリジェンス** | 25+ | 最低レイテンシのルーティング、タグベースのルーティング、クォータ プリフライト、P2C アカウントの選択 | -| 🔒 **セキュリティとコンプライアンス** | 20歳以上 | SSRF の強化、資格情報のクローキング、エンドポイントごとのレート制限、管理キーのスコーピング | -| 📊 **可観測性** | 15 歳以上 | OpenTelemetry 統合、リアルタイム クォータ監視、モデルごとのコスト追跡 | -| 🔄 **プロバイダーの統合** | 20歳以上 | 動的モデル レジストリ、プロバイダーのクールダウン、マルチアカウント Codex、Copilot クォータ解析 | -| ⚡ **パフォーマンス** | 15 歳以上 | デュアル キャッシュ レイヤー、プロンプト キャッシュ、応答キャッシュ、ストリーミング キープアライブ、バッチ API | -| 🌐 **生態系** | 10+ | WebSocket API、構成ホットリロード、分散構成ストア、商用モード | - -### 🔜近日公開予定 - -- 🔗 **OpenCode Integration** — OpenCode AI コーディング IDE のネイティブ プロバイダー サポート -- 🔗 **TRAE 統合** — TRAE AI 開発フレームワークの完全サポート -- 📦 **バッチ API** — 一括リクエストの非同期バッチ処理 -- 🎯 **タグベースのルーティング** — カスタムタグとメタデータに基づいてリクエストをルーティングします -- 💰 **最低コスト戦略** — 利用可能な最も安価なプロバイダーを自動的に選択します - -> 📝 [**OMNI_TOKEN_342**](docs/new-features/) で全機能の仕様が利用可能 (217 の詳細仕様) - ---- - -## 👥 貢献者 - -[![Contributors](https://contrib.rocks/image?repo=diegosouzapw/OmniRoute&max=100&columns=20&anon=1)](https://github.com/diegosouzapw/OmniRoute/graphs/contributors) - -### 貢献方法 - -1. リポジトリをフォークする -2. 機能ブランチを作成します (`git checkout -b feature/amazing-feature`) -3. 変更をコミットします (`git commit -m 'Add amazing feature'`) -4. ブランチにプッシュします (`git push origin feature/amazing-feature`) -5. プルリクエストを開く - -詳細なガイドラインについては、[CONTRIBUTING.md](CONTRIBUTING.md) を参照してください。 - -### 新しいバージョンのリリース - -```bash -# Create a release — npm publish happens automatically -gh release create v2.0.0 --title "v2.0.0" --generate-notes -``` - ---- - -## 📊 スターの歴史 - -## 時を超えたスターゲイザー - -## [![Stargazers over time](https://starchart.cc/diegosouzapw/OmniRoute.svg?variant=adaptive)](https://starchart.cc/diegosouzapw/OmniRoute) - -## 🙏 謝辞 - -このフォークのきっかけとなった元のプロジェクトである **[decolua](https://github.com/decolua)** による **[9router](https://github.com/decolua/9router)** に感謝します。 OmniRoute は、追加機能、マルチモーダル API、完全な TypeScript の書き換えを備えた素晴らしい基盤の上に構築されています。 - -この JavaScript 移植のきっかけとなったオリジナルの Go 実装である **[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)** に感謝します。 - ---- - -## 📄 ライセンス - -MIT ライセンス - 詳細については、[LICENSE](LICENSE) を参照してください。 - ---- - -<div align="center"> - <sub>24 時間 365 日コーディングする開発者向けに ❤️ で構築</sub> - <br/> - <sub><a href="https://omniroute.online">omniroute.online</a></sub> -</div> -<!-- GitHub ディスカッションでコミュニティ Q&A が有効になりました --> +👉 **[Read the Documentation here](docs/i18n/ja/README.md)** diff --git a/README.ko.md b/README.ko.md index 6ef1e9cfc6..dd32fb014e 100644 --- a/README.ko.md +++ b/README.ko.md @@ -1,2077 +1,5 @@ -# 🚀 OmniRoute — 무료 AI 게이트웨이 +# 🌐 OmniRoute (ko) -### 코딩을 멈추지 마세요. 자동 폴백을 통해 **무료 및 저가형 AI 모델**로 스마트 라우팅합니다. +The documentation has been formalized and moved to our centralized i18n structure. -_범용 API 프록시 — 하나의 엔드포인트, 67개 이상의 공급자, 가동 중지 시간 없음. 이제 **MCP 및 A2A** 에이전트 오케스트레이션이 가능합니다._ - -**채팅 완료 • 임베딩 • 이미지 생성 • 비디오 • 음악 • 오디오 • 순위 재지정 • **웹 검색** • MCP 서버 • A2A 프로토콜 • 100% TypeScript** - ---- - -<div align="center"> - -[![npm version](https://img.shields.io/npm/v/omniroute?color=cb3837&logo=npm)](https://www.npmjs.com/package/omniroute) -[![npm downloads](https://img.shields.io/npm/dm/omniroute?color=cb3837&logo=npm&label=npm%20downloads)](https://www.npmjs.com/package/omniroute) -[![Docker Hub](https://img.shields.io/docker/v/diegosouzapw/omniroute?label=Docker%20Hub&logo=docker&color=2496ED)](https://hub.docker.com/r/diegosouzapw/omniroute) -[![Docker Pulls](https://img.shields.io/docker/pulls/diegosouzapw/omniroute?logo=docker&color=2496ED&label=docker%20pulls)](https://hub.docker.com/r/diegosouzapw/omniroute) -[![License](https://img.shields.io/github/license/diegosouzapw/OmniRoute)](https://github.com/diegosouzapw/OmniRoute/blob/main/LICENSE) -[![Website](https://img.shields.io/badge/Website-omniroute.online-blue?logo=google-chrome&logoColor=white)](https://omniroute.online) -[![WhatsApp](https://img.shields.io/badge/WhatsApp-Community-25D366?logo=whatsapp&logoColor=white)](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) - -[🌐 Website](https://omniroute.online) · [🚀 Quick Start](#-quick-start) · [💡 Features](#-key-features) · [📖 Docs](#-documentation) · [💰 Pricing](#-pricing-at-a-glance) · [💬 WhatsApp](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) - -</div> - -🌐 **Available in:** 🇺🇸 [English](README.md) | 🇧🇷 [Português (Brasil)](docs/i18n/pt-BR/README.md) | 🇪🇸 [Español](docs/i18n/es/README.md) | 🇫🇷 [Français](docs/i18n/fr/README.md) | 🇮🇹 [Italiano](docs/i18n/it/README.md) | 🇷🇺 [Русский](docs/i18n/ru/README.md) | 🇨🇳 [中文 (简体)](docs/i18n/zh-CN/README.md) | 🇩🇪 [Deutsch](docs/i18n/de/README.md) | 🇮🇳 [हिन्दी](docs/i18n/in/README.md) | 🇹🇭 [ไทย](docs/i18n/th/README.md) | 🇺🇦 [Українська](docs/i18n/uk-UA/README.md) | 🇸🇦 [العربية](docs/i18n/ar/README.md) | 🇯🇵 [日本語](docs/i18n/ja/README.md) | 🇻🇳 [Tiếng Việt](docs/i18n/vi/README.md) | 🇧🇬 [Български](docs/i18n/bg/README.md) | 🇩🇰 [Dansk](docs/i18n/da/README.md) | 🇫🇮 [Suomi](docs/i18n/fi/README.md) | 🇮🇱 [עברית](docs/i18n/he/README.md) | 🇭🇺 [Magyar](docs/i18n/hu/README.md) | 🇮🇩 [Bahasa Indonesia](docs/i18n/id/README.md) | instagram [한국어](docs/i18n/ko/README.md) | 🇲🇾 [Bahasa Melayu](docs/i18n/ms/README.md) | 🇳🇱 [Nederlands](docs/i18n/nl/README.md) | 🇳🇴 [Norsk](docs/i18n/no/README.md) | 🇵🇹 [Português (Portugal)](docs/i18n/pt/README.md) | 🇷🇴 [Română](docs/i18n/ro/README.md) | 🇵🇱 [Polski](docs/i18n/pl/README.md) | 🇸🇰 [Slovenčina](docs/i18n/sk/README.md) | 🇸🇪 [Svenska](docs/i18n/sv/README.md) | 🇵🇭 [Filipino](docs/i18n/phi/README.md) | 🇨🇿 [Čeština](docs/i18n/cs/README.md) - ---- - -## 🆕 v3.0.0의 새로운 기능 - -> **Upgrading from v2.9.5?** — See the [full CHANGELOG](CHANGELOG.md#300--2026-03-22-release-candidate--not-yet-merged-to-main) for all changes. - -| 면적 | 변경 | -| ------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | -| 🔒 **CodeQL 보안** | 10개 이상의 CodeQL 경고 수정: 다항식 재실행, 안전하지 않은 무작위성, 셸 주입 수정 | -| ✅ **경로 검증** | 이제 Zod 스키마 + `validateBody()` — CI `check:route-validation:t06` 통과로 검증된 모든 176개 API 경로 | -| 🐛 **omniModel 태그 유출** | 내부 `<omniModel>` 태그가 더 이상 SSE 스트리밍 응답에서 클라이언트로 누출되지 않습니다(#585) | -| 🔑 **등록된 키 API** | 공급자/계정별 할당량 적용, 멱등성, SHA-256 저장소 및 선택적 GitHub 문제 보고 기능을 갖춘 `POST /api/v1/registered-keys`을 통해 API 키 자동 프로비저닝 | -| 👁️ **Scoped API Key Reveal** 🆕 | Opt-in recovery of API keys via `ALLOW_API_KEY_REVEAL` | -| 🎨 **공급자 아이콘** | PNG가 포함된 `@lobehub/icons`(SVG)을 통한 130개 이상의 공급자 로고 → 일반 폴백 체인 | -| 🔄 **모델 자동 동기화** | 내장 및 사용자 정의 OpenAI 호환 공급자에 대한 모델 목록을 동기화하기 위한 24시간 스케줄러 및 수동 UI 토글 | -| 🌐 **오픈코드 Zen/Go** | PR #530을 통한 @kang-heewon의 두 가지 새로운 제공자: `OpencodeExecutor`를 통한 무료 등급 + 구독 등급 | -| 🐛 **Gemini CLI OAuth** | Docker에 `GEMINI_OAUTH_CLIENT_SECRET`이 누락된 경우 실행 가능한 오류(암호적인 Google 오류임) | -| 🐛 **OpenCode 구성** | `saveOpenCodeConfig()`은 이제 TOML을 `XDG_CONFIG_HOME`에 올바르게 씁니다. | -| 🐛 **고정된 모델 재정의** | `body.model`이 컨텍스트 캐시 보호에서 `pinnedModel`로 올바르게 설정됨 | -| 🐛 **코덱스/클로드 루프** | `tool_result` 블록이 이제 무한 루프를 중지하기 위해 텍스트로 변환되었습니다. | -| 🐛 **로그인 리디렉션** | 비밀번호 설정을 건너뛴 후 로그인이 더 이상 정지되지 않습니다. | -| 🐛 **Windows 경로** | MSYS2/Git-Bash 경로(`/c/...`)가 자동으로 `C:\...`로 정규화됨 | - ---- - -## 🖼️ 메인 대시보드 - -<div align="center"> - <img src="./docs/screenshots/MainOmniRoute.png" alt="OmniRoute Dashboard" width="800"/> -</div> - ---- - -## 📸 대시보드 미리보기 - -<details> -<summary><b>Click to see dashboard screenshots</b></summary> - -| 페이지 | Screenshot | -| -------------- | ------------------------------------------------- | -| **Providers** | ![Providers](docs/screenshots/01-providers.png) | -| **콤보** | ![Combos](docs/screenshots/02-combos.png) | -| **분석** | ![Analytics](docs/screenshots/03-analytics.png) | -| **건강** | ![Health](docs/screenshots/04-health.png) | -| **번역가** | ![Translator](docs/screenshots/05-translator.png) | -| **설정** | ![Settings](docs/screenshots/06-settings.png) | -| **CLI 도구** | ![CLI Tools](docs/screenshots/07-cli-tools.png) | -| **사용 로그** | ![Usage](docs/screenshots/08-usage.png) | -| **엔드포인트** | ![Endpoints](docs/screenshots/09-endpoint.png) | - -</details> - ---- - -### 🤖 Free AI Provider for your favorite coding agents - -_Connect any AI-powered IDE or CLI tool through OmniRoute — free API gateway for unlimited coding._ - - <table> - <tr> - <td align="center" width="110"> - <a href="https://github.com/openclaw/openclaw"> - <img src="./public/providers/openclaw.png" alt="OpenClaw" width="48"/><br/> - <b>OpenClaw</b> - </a><br/> - <sub>⭐ 205K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/HKUDS/nanobot"> - <img src="./public/providers/nanobot.png" alt="NanoBot" width="48"/><br/> - <b>NanoBot</b> - </a><br/> - <sub>⭐ 20.9K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/sipeed/picoclaw"> - <img src="./public/providers/picoclaw.jpg" alt="PicoClaw" width="48"/><br/> - <b>PicoClaw</b> - </a><br/> - <sub>⭐ 14.6K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/zeroclaw-labs/zeroclaw"> - <img src="./public/providers/zeroclaw.png" alt="ZeroClaw" width="48"/><br/> - <b>ZeroClaw</b> - </a><br/> - <sub>⭐ 9.9K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/nearai/ironclaw"> - <img src="./public/providers/ironclaw.png" alt="IronClaw" width="48"/><br/> - <b>IronClaw</b> - </a><br/> - <sub>⭐ 2.1K</sub> - </td> - </tr> - <tr> - <td align="center" width="110"> - <a href="https://github.com/anomalyco/opencode"> - <img src="./public/providers/opencode.svg" alt="OpenCode" width="48"/><br/> - <b>OpenCode</b> - </a><br/> - <sub>⭐ 106K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/openai/codex"> - <img src="./public/providers/codex.png" alt="Codex CLI" width="48"/><br/> - <b>Codex CLI</b> - </a><br/> - <sub>⭐ 60.8K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/anthropics/claude-code"> - <img src="./public/providers/claude.png" alt="Claude Code" width="48"/><br/> - <b>Claude Code</b> - </a><br/> - <sub>⭐ 67.3K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/google-gemini/gemini-cli"> - <img src="./public/providers/gemini-cli.png" alt="Gemini CLI" width="48"/><br/> - <b>Gemini CLI</b> - </a><br/> - <sub>⭐ 94.7K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/Kilo-Org/kilocode"> - <img src="./public/providers/kilocode.png" alt="Kilo Code" width="48"/><br/> - <b>Kilo Code</b> - </a><br/> - <sub>⭐ 15.5K</sub> - </td> - </tr> - </table> - -<sub>📡 모든 에이전트는 <code>http://localhost:20128/v1</code> 또는 <code>http://cloud.omniroute.online/v1</code>을 통해 연결됩니다. — 하나의 구성, 무제한 모델 및 할당량</sub> - ---- - -## 🤔 왜 OmniRoute인가요? - -**돈을 낭비하지 말고 한도에 도달하지 마세요.** - -- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Subscription quota expires unused every month -- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Rate limits stop you mid-coding -- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Expensive APIs ($20-50/month per provider) -- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Manual switching between providers - -**OmniRoute는 이 문제를 해결합니다.** - -- ✅ **Maximize subscriptions** - Track quota, use every bit before reset -- ✅ **Auto fallback** - Subscription → API Key → Cheap → Free, zero downtime -- ✅ **Multi-account** - Round-robin between accounts per provider -- ✅ **Universal** - Works with Claude Code, Codex, Gemini CLI, Cursor, Cline, OpenClaw, any CLI tool - ---- - -## 📧 지원 - -> 💬 **Join our community!** [WhatsApp Group](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) — Get help, share tips, and stay updated. - -- **웹사이트**: [omniroute.online](https://omniroute.online) -- **GitHub**: [github.com/diegosouzapw/OmniRoute](https://github.com/diegosouzapw/OmniRoute) -- **문제**: [github.com/diegosouzapw/OmniRoute/issues](https://github.com/diegosouzapw/OmniRoute/issues) -- **WhatsApp**: [Community Group](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) -- **Contributing**: See [CONTRIBUTING.md](CONTRIBUTING.md), open a PR, or pick a `good first issue` -- **원래 프로젝트**: [9router by decolua](https://github.com/decolua/9router) - -### 🐛 버그를 신고하시나요? - -When opening an issue, please run the system-info command and attach the generated file: - -```bash -npm run system-info -``` - -그러면 Node.js 버전, OmniRoute 버전, OS 세부 정보, 설치된 CLI 도구(qoder, gemini, claude, codex, antigravity, droid 등), Docker/PM2 상태, 시스템 패키지 등 문제를 신속하게 재현하는 데 필요한 모든 항목이 포함된 `system-info.txt`이 생성됩니다. GitHub 문제에 직접 파일을 첨부하세요. - ---- - -## 🔄 작동 방식 - -``` -┌─────────────┐ -│ Your CLI │ (Claude Code, Codex, Gemini CLI, OpenClaw, Cursor, Cline...) -│ Tool │ -└──────┬──────┘ - │ http://localhost:20128/v1 - ↓ -┌─────────────────────────────────────────┐ -│ OmniRoute (Smart Router) │ -│ • Format translation (OpenAI ↔ Claude) │ -│ • Quota tracking + Embeddings + Images │ -│ • Auto token refresh │ -└──────┬──────────────────────────────────┘ - │ - ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex, Gemini CLI - │ ↓ quota exhausted - ├─→ [Tier 2: API KEY] DeepSeek, Groq, xAI, Mistral, NVIDIA NIM, etc. - │ ↓ budget limit - ├─→ [Tier 3: CHEAP] GLM ($0.6/1M), MiniMax ($0.2/1M) - │ ↓ budget limit - └─→ [Tier 4: FREE] Qoder, Qwen, Kiro (unlimited) - -Result: Never stop coding, minimal cost -``` - ---- - -## 🎯 What OmniRoute Solves — 30 Real Pain Points & Use Cases - -> **AI 도구를 사용하는 모든 개발자는 매일 이러한 문제에 직면합니다.** OmniRoute는 비용 초과부터 지역적 차단, 손상된 OAuth 흐름부터 프로토콜 운영 및 기업 관찰 가능성까지 모든 문제를 해결하기 위해 구축되었습니다. - -<details> -<summary><b>💸 1. "비싼 구독 비용을 지불했지만 여전히 한도 때문에 중단됩니다."</b></summary> - -Developers pay $20–200/month for Claude Pro, Codex Pro, or GitHub Copilot. Even paying, quota has a ceiling — 5h of usage, weekly limits, or per-minute rate limits. Mid-coding session, the provider stops responding and the developer loses flow and productivity. - -**OmniRoute가 이를 해결하는 방법:** - -- **스마트 4계층 폴백** — 구독 할당량이 소진되면 수동 개입 없이 자동으로 API 키 → 저렴함 → 무료로 리디렉션됩니다. -- **Real-Time Quota Tracking** — Shows token consumption in real-time with reset countdown (5h, daily, weekly) -- **Multi-Account Support** — Multiple accounts per provider with auto round-robin — when one runs out, switches to the next -- **사용자 정의 콤보** — 6가지 균형 전략(채우기 우선, 라운드 로빈, P2C, 무작위, 최소 사용, 비용 최적화)을 갖춘 사용자 정의 가능한 폴백 체인 -- **Codex Business Quotas** — Business/Team workspace quota monitoring directly in the dashboard - -</details> - -<details> -<summary><b>🔌 2. "I need to use multiple providers but each has a different API"</b></summary> - -OpenAI uses one format, Claude (Anthropic) uses another, Gemini yet another. 개발자가 다른 제공업체의 모델을 테스트하거나 이들 사이에서 대체하려는 경우 SDK를 재구성하고, 엔드포인트를 변경하고, 호환되지 않는 형식을 처리해야 합니다. Custom providers (FriendLI, NIM) have non-standard model endpoints. - -**OmniRoute가 이를 해결하는 방법:** - -- **Unified Endpoint** — A single `http://localhost:20128/v1` serves as proxy for all 67+ providers -- **Format Translation** — Automatic and transparent: OpenAI ↔ Claude ↔ Gemini ↔ Responses API -- **응답 삭제** — OpenAI SDK v1.83+를 손상시키는 비표준 필드(`x_groq`, `usage_breakdown`, `service_tier`)를 제거합니다. -- **Role Normalization** — Converts `developer` → `system` for non-OpenAI providers; `system` → `user` for GLM/ERNIE -- **Think Tag Extraction** — Extracts `<think>` blocks from models like DeepSeek R1 into standardized `reasoning_content` -- **Structured Output for Gemini** — `json_schema` → `responseMimeType`/`responseSchema` automatic conversion -- **`stream` defaults to `false`** — Aligns with OpenAI spec, avoiding unexpected SSE in Python/Rust/Go SDKs - -</details> - -<details> -<summary><b>🌐 3. "My AI provider blocks my region/country"</b></summary> - -Providers like OpenAI/Codex block access from certain geographic regions. Users get errors like `unsupported_country_region_territory` during OAuth and API connections. This is especially frustrating for developers from developing countries. - -**OmniRoute가 이를 해결하는 방법:** - -- **3-Level Proxy Config** — Configurable proxy at 3 levels: global (all traffic), per-provider (one provider only), and per-connection/key -- **Color-Coded Proxy Badges** — Visual indicators: 🟢 global proxy, 🟡 provider proxy, 🔵 connection proxy, always showing the IP -- **OAuth Token Exchange Through Proxy** — OAuth flow also goes through the proxy, solving `unsupported_country_region_territory` -- **Connection Tests via Proxy** — Connection tests use the configured proxy (no more direct bypass) -- **SOCKS5 Support** — Full SOCKS5 proxy support for outbound routing -- **TLS Fingerprint Spoofing** — Browser-like TLS fingerprint via `wreq-js` to bypass bot detection -- **🔏 CLI 지문 일치** — 기본 CLI 바이너리 서명과 일치하도록 헤더와 본문 필드의 순서를 변경하여 계정 플래그 위험을 대폭 줄입니다. The proxy IP is preserved — you get both stealth **and** IP masking simultaneously - -</details> - -<details> -<summary><b>🆓 4. "I want to use AI for coding but I have no money"</b></summary> - -Not everyone can pay $20–200/month for AI subscriptions. Students, devs from emerging countries, hobbyists, and freelancers need access to quality models at zero cost. - -**OmniRoute가 이를 해결하는 방법:** - -- **무료 계층 제공자 내장** — 100% 무료 제공자에 대한 기본 지원: Qoder(OAuth를 통한 5개의 무제한 모델: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen(4개의 무제한 모델: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, Vision-model), Kiro (Claude + AWS Builder ID for free), Gemini CLI (180K tokens/month free) -- **Ollama Cloud** — Cloud-hosted Ollama models at `api.ollama.com` with free "Light usage" tier; `ollamacloud/<model>` 접두사 사용 -- **Free-Only Combos** — Chain `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime -- **NVIDIA NIM 무료 액세스** — ~40RPM 개발 - build.nvidia.com에서 70개 이상의 모델에 영원히 무료 액세스(크레딧에서 순수 속도 제한으로 전환) -- **Cost Optimized Strategy** — Routing strategy that automatically chooses the cheapest available provider - -</details> - -<details> -<summary><b>🔒 5. "I need to protect my AI gateway from unauthorized access"</b></summary> - -When exposing an AI gateway to the network (LAN, VPS, Docker), anyone with the address can consume the developer's tokens/quota. Without protection, APIs are vulnerable to misuse, prompt injection, and abuse. - -**OmniRoute가 이를 해결하는 방법:** - -- **API Key Management** — Generation, rotation, and scoping per provider with a dedicated `/dashboard/api-manager` page -- **Model-Level Permissions** — Restrict API keys to specific models (`openai/*`, wildcard patterns), with Allow All/Restrict toggle -- **API Endpoint Protection** — Require a key for `/v1/models` and block specific providers from the listing -- **Auth Guard + CSRF Protection** — All dashboard routes protected with `withAuth` middleware + CSRF tokens -- **Rate Limiter** — Per-IP rate limiting with configurable windows -- **IP Filtering** — Allowlist/blocklist for access control -- **Prompt Injection Guard** — Sanitization against malicious prompt patterns -- **AES-256-GCM Encryption** — Credentials encrypted at rest - -</details> - -<details> -<summary><b>🛑 6. "My provider went down and I lost my coding flow"</b></summary> - -AI providers can become unstable, return 5xx errors, or hit temporary rate limits. If a dev depends on a single provider, they're interrupted. Without circuit breakers, repeated retries can crash the application. - -**OmniRoute가 이를 해결하는 방법:** - -- **모델별 회로 차단기** — 구성 가능한 임계값 및 쿨다운(닫힘/열림/반열림)을 통한 자동 열기/닫기, 계단식 블록 방지를 위한 모델별 범위 지정 -- **Exponential Backoff** — Progressive retry delays -- **Anti-Thundering Herd** — Mutex + semaphore protection against concurrent retry storms -- **Combo Fallback Chains** — If the primary provider fails, automatically falls through the chain with no intervention -- **Combo Circuit Breaker** — Auto-disables failing providers within a combo chain -- **Health Dashboard** — Uptime monitoring, circuit breaker states, lockouts, cache stats, p50/p95/p99 latency - -</details> - -<details> -<summary><b>🔧 7. "Configuring each AI tool is tedious and repetitive"</b></summary> - -Developers use Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code... Each tool needs a different config (API endpoint, key, model). Reconfiguring when switching providers or models is a waste of time. - -**OmniRoute가 이를 해결하는 방법:** - -- **CLI Tools Dashboard** — Dedicated page with one-click setup for Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline -- **GitHub Copilot Config Generator** — Generates `chatLanguageModels.json` for VS Code with bulk model selection -- **Onboarding Wizard** — Guided 4-step setup for first-time users -- **One endpoint, all models** — Configure `http://localhost:20128/v1` once, access 67+ providers - -</details> - -<details> -<summary><b>🔑 8. "Managing OAuth tokens from multiple providers is hell"</b></summary> - -Claude Code, Codex, Gemini CLI, Copilot — all use OAuth 2.0 with expiring tokens. Developers need to re-authenticate constantly, deal with `client_secret is missing`, `redirect_uri_mismatch`, and failures on remote servers. LAN/VPS의 OAuth는 특히 문제가 됩니다. - -**OmniRoute가 이를 해결하는 방법:** - -- **Auto Token Refresh** — OAuth tokens refresh in background before expiration -- **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder -- **Multi-Account OAuth** — Multiple accounts per provider via JWT/ID token extraction -- **OAuth LAN/Remote Fix** — Private IP detection for `redirect_uri` + manual URL mode for remote servers -- **OAuth Behind Nginx** — Uses `window.location.origin` for reverse proxy compatibility -- **Remote OAuth Guide** — Step-by-step guide for Google Cloud credentials on VPS/Docker - -</details> - -<details> -<summary><b>📊 9. "I don't know how much I'm spending or where"</b></summary> - -Developers use multiple paid providers but have no unified view of spending. Each provider has its own billing dashboard, but there's no consolidated view. 예상치 못한 비용이 쌓일 수 있습니다. - -**OmniRoute가 이를 해결하는 방법:** - -- **Cost Analytics Dashboard** — Per-token cost tracking and budget management per provider -- **Budget Limits per Tier** — Spending ceiling per tier that triggers automatic fallback -- **Per-Model Pricing Configuration** — Configurable prices per model -- **Usage Statistics Per API Key** — Request count and last-used timestamp per key -- **Analytics Dashboard** — Stat cards, model usage chart, provider table with success rates and latency - -</details> - -<details> -<summary><b>🐛 10. "AI 호출에서는 오류 및 문제를 진단할 수 없습니다."</b></summary> - -호출이 실패하면 개발자는 속도 제한, 만료된 토큰, 잘못된 형식 또는 공급자 오류인지 알 수 없습니다. 여러 터미널에 걸쳐 조각화된 로그. 관찰 가능성이 없으면 디버깅은 시행착오를 겪게 됩니다. - -**OmniRoute가 이를 해결하는 방법:** - -- **통합 로그 대시보드** — 탭 4개: 요청 로그, 프록시 로그, 감사 로그, 콘솔 -- **콘솔 로그 뷰어** — 색상으로 구분된 레벨, 자동 스크롤, 검색, 필터 기능을 갖춘 실시간 터미널 스타일 뷰어 -- **SQLite 프록시 로그** — 서버를 다시 시작해도 지속되는 영구 로그 -- **번역기 플레이그라운드** — 4가지 디버깅 모드: 플레이그라운드(형식 번역), 채팅 테스터(왕복), 테스트 벤치(일괄), 라이브 모니터(실시간) -- **원격 측정 요청** — p50/p95/p99 대기 시간 + X-요청-ID 추적 -- **회전을 통한 파일 기반 로깅** — 콘솔 인터셉터는 크기 기반 회전을 통해 모든 것을 JSON 로그에 캡처합니다. -- **시스템 정보 보고서** — `npm run system-info`은 전체 환경(노드 버전, OmniRoute 버전, OS, CLI 도구, Docker/PM2 상태)에서 `system-info.txt`을 생성합니다. 즉각적인 분류를 위해 문제를 보고할 때 첨부하세요. - -</details> - -<details> -<summary><b>🏗️ 11. "게이트웨이 배포 및 유지 관리가 복잡합니다."</b></summary> - -다양한 환경(로컬, VPS, Docker, 클라우드)에서 AI 프록시를 설치, 구성 및 유지 관리하는 것은 노동 집약적입니다. 하드코딩된 경로, 디렉터리의 `EACCES`, 포트 충돌, 크로스 플랫폼 빌드와 같은 문제로 인해 마찰이 가중됩니다. - -**OmniRoute가 이를 해결하는 방법:** - -- **npm 전역 설치** — `npm install -g omniroute && omniroute` — 완료 -- **Docker 다중 플랫폼** — AMD64 + ARM64 기본(Apple Silicon, AWS Graviton, Raspberry Pi) -- **Docker Compose 프로필** — `base`(CLI 도구 없음) 및 `cli`(Claude Code, Codex, OpenClaw 포함) -- **Electron 데스크탑 앱** — 시스템 트레이, 자동 시작, 오프라인 모드를 갖춘 Windows/macOS/Linux용 기본 앱 -- **분할 포트 모드** — 고급 시나리오(역방향 프록시, 컨테이너 네트워킹)를 위한 별도의 포트에 있는 API 및 대시보드 -- **클라우드 동기화** — Cloudflare Workers를 통해 장치 간 구성 동기화 -- **DB 백업** — 모든 설정의 자동 백업, 복원, 내보내기 및 가져오기 - -</details> - -<details> -<summary><b>🌍 12. "인터페이스는 영어로만 제공되며 우리 팀은 영어를 구사하지 않습니다."</b></summary> - -영어를 사용하지 않는 국가, 특히 라틴 아메리카, 아시아, 유럽의 팀은 영어 전용 인터페이스로 인해 어려움을 겪고 있습니다. 언어 장벽으로 인해 채택이 줄어들고 구성 오류가 증가합니다. - -**OmniRoute가 이를 해결하는 방법:** - -- **대시보드 i18n — 30개 언어** — 한국어, 아랍어, 불가리아어, 덴마크어, 독일어, 스페인어, 핀란드어, 프랑스어, 히브리어, 힌디어, 헝가리어, 인도네시아어, 이탈리아어, 일본어, 말레이어, 네덜란드어, 노르웨이어, 폴란드어, 포르투갈어(PT/BR), 루마니아어, 러시아어, 슬로바키아어, 스웨덴어, 태국어, 우크라이나어, 베트남어, 중국어, 필리핀어, 영어를 포함한 500개 이상의 키 번역됨 -- **RTL 지원** — 아랍어 및 히브리어에 대해 오른쪽에서 왼쪽으로 지원 -- **다국어 README** — 30개의 완전한 문서 번역 -- **언어 선택기** — 실시간 전환을 위한 헤더의 지구본 아이콘 - -</details> - -<details> -<summary><b>🔄 13. "채팅 이상의 것이 필요합니다. 임베딩, 이미지, 오디오가 필요합니다."</b></summary> - -AI는 단순한 채팅 완성이 아닙니다. 개발자는 이미지를 생성하고, 오디오를 기록하고, RAG용 임베딩을 만들고, 문서 순위를 다시 지정하고, 콘텐츠를 조정해야 합니다. 각 API에는 서로 다른 엔드포인트와 형식이 있습니다. - -**OmniRoute가 이를 해결하는 방법:** - -- **임베딩** — `/v1/embeddings`(6개 공급자 및 9개 이상의 모델 포함) -- **이미지 생성** — 10개 공급자와 20개 이상의 모델(OpenAI, xAI, Together, Fireworks, Nebius, Hyperbolic, NanoBanana, Antigravity, SD WebUI, ComfyUI)을 갖춘 `/v1/images/generations` -- **텍스트-비디오** — `/v1/videos/generations` — ComfyUI(AnimateDiff, SVD) 및 SD WebUI -- **텍스트-음악** — `/v1/music/generations` — ComfyUI(안정적인 오디오 오픈, MusicGen) -- **오디오 전사** — `/v1/audio/transcriptions` — Whisper + Nvidia NIM, HuggingFace, Qwen3 -- **텍스트 음성 변환** — `/v1/audio/speech` — ElevenLabs, Nvidia NIM, HuggingFace, Coqui, Tortoise, Qwen3, **Inworld**, **Cartesia**, **PlayHT**, + 기존 제공업체 -- **조정** — `/v1/moderations` — 콘텐츠 안전 확인 -- **재순위** — `/v1/rerank` — 문서 관련성 재순위 -- **응답 API** — Codex에 대한 전체 `/v1/responses` 지원 - -</details> - -<details> -<summary><b>🧪 14. "모델 간 품질을 테스트하고 비교할 방법이 없습니다."</b></summary> - -개발자는 자신의 사용 사례(코드, 번역, 추론)에 가장 적합한 모델을 알고 싶어하지만 수동으로 비교하는 것은 느립니다. 통합 평가 도구가 없습니다. - -**OmniRoute가 이를 해결하는 방법:** - -- **LLM 평가** — 인사말, 수학, 지리, 코드 생성, JSON 준수, 번역, 마크다운, 안전 거부를 다루는 사전 로드된 10가지 사례를 사용한 골든 세트 테스트 -- **4가지 일치 전략** — `exact`, `contains`, `regex`, `custom`(JS 함수) -- **번역기 플레이그라운드 테스트 벤치** — 여러 입력 및 예상 출력을 사용한 일괄 테스트, 공급업체 간 비교 -- **채팅 테스터** — 시각적 응답 렌더링을 포함한 전체 왕복 -- **라이브 모니터** — 프록시를 통해 흐르는 모든 요청의 실시간 스트림 - -</details> - -<details> -<summary><b>📈 15. "성능 저하 없이 확장해야 합니다."</b></summary> - -요청량이 증가함에 따라 동일한 질문을 캐싱하지 않으면 중복 비용이 발생합니다. 멱등성이 없으면 중복 요청으로 인해 처리가 낭비됩니다. 공급자별 요금 제한을 준수해야 합니다. - -**OmniRoute가 이를 해결하는 방법:** - -- **의미 체계 캐시** — 2계층 캐시(서명 + 의미 체계)로 비용과 대기 시간 감소 -- **멱등성 요청** — 동일한 요청에 대한 중복 제거 기간은 5초입니다. -- **속도 제한 감지** — 제공업체별 RPM, 최소 간격 및 최대 동시 추적 -- **편집 가능한 속도 제한** — 설정 → 지속성을 통한 복원력에서 구성 가능한 기본값 -- **API 키 검증 캐시** — 프로덕션 성능을 위한 3계층 캐시 -- **원격 측정 기능을 갖춘 상태 대시보드** — p50/p95/p99 대기 시간, 캐시 통계, 가동 시간 - -</details> - -<details> -<summary><b>🤖 16. "모델 동작을 전역적으로 제어하고 싶습니다."</b></summary> - -특정 언어, 특정 어조로 모든 응답을 원하거나 추론 토큰을 제한하려는 개발자. 모든 도구/요청에서 이를 구성하는 것은 비현실적입니다. - -**OmniRoute가 이를 해결하는 방법:** - -- **시스템 프롬프트 삽입** — 모든 요청에 전역 프롬프트 적용 -- **생각 예산 검증** — 요청별 토큰 할당 제어 추론(패스스루, 자동, 사용자 정의, 적응형) -- **6가지 라우팅 전략** — 요청 배포 방법을 결정하는 글로벌 전략 -- **와일드카드 라우터** — `provider/*` 패턴은 모든 공급자에게 동적으로 라우팅됩니다. -- **콤보 활성화/비활성화 토글** — 대시보드에서 직접 콤보를 토글합니다. -- **공급자 토글** — 한 번의 클릭으로 공급자에 대한 모든 연결을 활성화/비활성화합니다. -- **차단된 제공자** — `/v1/models` 목록에서 특정 제공자를 제외합니다. - -</details> - -<details> -<summary><b>🧰 17. "최고 수준의 제품 기능으로 MCP 도구가 필요합니다."</b></summary> - -많은 AI 게이트웨이는 MCP를 숨겨진 구현 세부 사항으로만 노출합니다. 팀에는 가시적이고 관리 가능한 운영 레이어가 필요합니다. - -**OmniRoute가 이를 해결하는 방법:** - -- 대시보드 탐색 및 엔드포인트 프로토콜 탭에 MCP가 나타납니다. -- 프로세스, 도구, 범위 및 감사가 포함된 전용 MCP 관리 페이지 -- `omniroute --mcp` 및 클라이언트 온보딩을 위한 기본 제공 빠른 시작 - -</details> - -<details> -<summary><b>🧠 18. "동기화 + 스트림 작업 경로를 갖춘 A2A 오케스트레이션이 필요합니다."</b></summary> - -에이전트 워크플로에는 수명 주기 제어를 통해 직접 응답과 장기 실행 스트리밍 실행이 모두 필요합니다. - -**OmniRoute가 이를 해결하는 방법:** - -- `message/send` 및 `message/stream`이 있는 A2A JSON-RPC 엔드포인트(`POST /a2a`) -- 터미널 상태 전파를 통한 SSE 스트리밍 -- `tasks/get` 및 `tasks/cancel`용 작업 수명 주기 API - -</details> - -<details> -<summary><b>🛰️ 19. "추측된 상태가 아닌 실제 MCP 프로세스 상태가 필요합니다"</b></summary> - -운영팀은 API에 접근할 수 있는지 여부뿐만 아니라 MCP가 실제로 활성화되어 있는지 알아야 합니다. - -**OmniRoute가 이를 해결하는 방법:** - -- PID, 타임스탬프, 전송, 도구 개수 및 범위 모드가 포함된 런타임 하트비트 파일 -- 하트비트 + 최근 활동을 결합한 MCP 상태 API -- 프로세스/가동 시간/하트비트 최신성을 위한 UI 상태 카드 - -</details> - -<details> -<summary><b>📋 20. "감사 가능한 MCP 도구 실행이 필요합니다"</b></summary> - -도구가 구성을 변경하거나 운영 작업을 트리거하는 경우 팀에는 법의학적 추적성이 필요합니다. - -**OmniRoute가 이를 해결하는 방법:** - -- MCP 도구 호출에 대한 SQLite 지원 감사 로깅 -- 도구, 성공/실패, API 키, 페이지 매김 기준으로 필터링 -- 자동화를 위한 대시보드 감사 테이블 + 통계 엔드포인트 - -</details> - -<details> -<summary><b>🔐 21. "통합당 범위가 지정된 MCP 권한이 필요합니다."</b></summary> - -다양한 클라이언트에는 도구 범주에 대한 최소 권한 액세스 권한이 있어야 합니다. - -**OmniRoute가 이를 해결하는 방법:** - -- 제어된 도구 액세스를 위한 9개의 세분화된 MCP 범위 -- MCP 관리 UI의 범위 적용 및 가시성 -- 운영 툴링을 위한 안전한 기본 자세 - -</details> - -<details> -<summary><b>⚙️ 22. "재배포 없이 운영 제어가 필요합니다"</b></summary> - -팀은 사고 또는 비용 이벤트 중에 빠른 런타임 변경이 필요합니다. - -**OmniRoute가 이를 해결하는 방법:** - -- MCP 대시보드에서 직접 콤보 활성화 전환 -- 사전 정의된 정책 팩의 복원력 프로필 적용 -- 동일한 운영 패널에서 회로 차단기 상태 재설정 - -</details> - -<details> -<summary><b>🔄 23. "실시간 A2A 작업 수명주기 가시성 및 취소가 필요합니다."</b></summary> - -수명주기 가시성이 없으면 작업 사고를 분류하기가 어려워집니다. - -**OmniRoute가 이를 해결하는 방법:** - -- 페이지 매김을 통한 상태/기술별 작업 목록/필터링 -- 작업 메타데이터, 이벤트 및 아티팩트에 대한 드릴다운 -- 작업 취소 끝점 및 확인이 포함된 UI 작업 - -</details> - -<details> -<summary><b>🌊 24. "A2A 로드를 위한 활성 스트림 메트릭이 필요합니다"</b></summary> - -스트리밍 워크플로에는 동시성 및 라이브 연결에 대한 운영 통찰력이 필요합니다. - -**OmniRoute가 이를 해결하는 방법:** - -- A2A 상태에 통합된 활성 스트림 카운터 -- 마지막 작업 타임스탬프 및 상태별 개수 -- 실시간 운영 모니터링을 위한 A2A 대시보드 카드 - -</details> - -<details> -<summary><b>🪪 25. "클라이언트를 위한 표준 에이전트 검색이 필요합니다."</b></summary> - -외부 클라이언트 및 오케스트레이터에는 온보딩을 위해 컴퓨터에서 읽을 수 있는 메타데이터가 필요합니다. - -**OmniRoute가 이를 해결하는 방법:** - -- `/.well-known/agent.json`에 노출된 에이전트 카드 -- 관리 UI에 표시되는 능력과 기술 -- A2A 상태 API에는 자동화를 위한 검색 메타데이터가 포함되어 있습니다. - -</details> - -<details> -<summary><b>🧭 26. "제품 UX에서 프로토콜 검색 기능이 필요합니다"</b></summary> - -사용자가 프로토콜 표면을 발견할 수 없는 경우 채택 및 지원 품질이 저하됩니다. - -**OmniRoute가 이를 해결하는 방법:** - -- 프록시, MCP, A2A 및 API 엔드포인트에 대한 탭이 포함된 통합 **엔드포인트** 페이지 -- MCP 및 A2A에 대한 인라인 서비스 상태 토글(온라인/오프라인) -- 개요에서 전용 관리 탭으로의 링크 - -</details> - -<details> -<summary><b>🧪 27. "실제 클라이언트와의 엔드투엔드 프로토콜 검증이 필요합니다"</b></summary> - -모의 테스트는 출시 전에 프로토콜 호환성을 검증하기에 충분하지 않습니다. - -**OmniRoute가 이를 해결하는 방법:** - -- 앱을 부팅하고 실제 MCP SDK 클라이언트 전송을 사용하는 E2E 제품군 -- 흐름 검색, 전송, 스트리밍, 가져오기 및 취소에 대한 A2A 클라이언트 테스트 -- MCP 감사 및 A2A 작업 API에 대한 교차 확인 주장 - -</details> - -<details> -<summary><b>📡 28. "모든 인터페이스에 걸쳐 통합된 관찰 가능성이 필요합니다."</b></summary> - -프로토콜별로 관찰 가능성을 분할하면 사각지대가 발생하고 MTTR이 길어집니다. - -**OmniRoute가 이를 해결하는 방법:** - -- 대시보드/로그/분석을 하나의 제품으로 통합 -- OpenAI, MCP 및 A2A 계층 전반에 걸쳐 상태 + 감사 + 원격 측정 요청 -- 상태 및 자동화를 위한 운영 API - -</details> - -<details> -<summary><b>💼 29. "프록시 + 도구 + 에이전트 오케스트레이션을 위해 하나의 런타임이 필요합니다."</b></summary> - -여러 개별 서비스를 실행하면 운영 비용과 오류 모드가 증가합니다. - -**OmniRoute가 이를 해결하는 방법:** - -- OpenAI 호환 프록시, MCP 서버, A2A 서버가 하나의 스택에 있음 -- 공유 인증, 복원력, 데이터 저장소 및 관찰 가능성 -- 모든 상호 작용 표면에 걸쳐 일관된 정책 모델 - -</details> - -<details> -<summary><b>🚀 30. "글루 코드 확산 없이 에이전트 워크플로를 제공해야 합니다."</b></summary> - -여러 임시 서비스와 스크립트를 결합할 때 팀의 속도가 느려집니다. - -**OmniRoute가 이를 해결하는 방법:** - -- 클라이언트와 에이전트를 위한 통합 엔드포인트 전략 -- 내장된 프로토콜 관리 UI 및 연기 검증 경로 -- 프로덕션 준비 기반(보안, 로깅, 탄력성, 백업) - -</details> - -### 플레이북 예시(통합 사용 사례) - -**플레이북 A: 유료 구독 극대화 + 저렴한 백업** - -```txt -Combo: "maximize-claude" - 1. cc/claude-opus-4-6 - 2. glm/glm-4.7 - 3. if/kimi-k2-thinking - -Monthly cost: $20 + small backup spend -Outcome: higher quality, near-zero interruption -``` - -**플레이북 B: 비용이 전혀 들지 않는 코딩 스택** - -```txt -Combo: "free-forever" - 1. gc/gemini-3-flash - 2. if/kimi-k2-thinking - 3. qw/qwen3-coder-plus - -Monthly cost: $0 -Outcome: stable free coding workflow -``` - -**플레이북 C: 연중무휴 상시 가동 폴백 체인** - -```txt -Combo: "always-on" - 1. cc/claude-opus-4-6 - 2. cx/gpt-5.2-codex - 3. glm/glm-4.7 - 4. minimax/MiniMax-M2.1 - 5. if/kimi-k2-thinking - -Outcome: deep fallback depth for deadline-critical workloads -``` - -**플레이북 D: MCP + A2A를 사용한 에이전트 작업** - -```txt -1) Start MCP transport (`omniroute --mcp`) for tool-driven operations -2) Run A2A tasks via `message/send` and `message/stream` -3) Observe via /dashboard/endpoint (MCP and A2A tabs) -4) Toggle services via inline status controls -``` - ---- - -## 🆓 무료로 시작 — 구성 비용 없음 - -> **$0/월**로 몇 분 만에 AI 코딩을 설정할 수 있습니다. 무료 계정을 연결하고 내장된 **무료 스택** 콤보를 사용하세요. - -| 단계 | 액션 | 제공자 잠금 해제 | -| ---- | ---------------------------------------------- | --------------------------------------------------------------- | -| 1 | **Kiro** 연결(AWS Builder ID OAuth) | 클로드 소네트 4.5, 하이쿠 4.5 — **무제한** | -| 2 | **Qoder** 연결(Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **무제한** | -| 3 | 연결 **Qwen**(장치 코드) | qwen3-coder-plus, qwen3-coder-flash... — **무제한** | -| 4 | **Gemini CLI**(Google OAuth) 연결 | gemini-3-flash, gemini-2.5-pro — **180K/월 무료** | -| 5 | `/dashboard/combos` → **무료 스택($0)** 템플릿 | 모든 무료 공급자를 자동으로 라운드 로빈 | - -**IDE/CLI에서 다음을 지정하십시오.** `http://localhost:20128/v1` · API 키: `any-string` · 완료. - -> **선택적 추가 적용 범위(무료):** Groq API 키(30RPM 무료), NVIDIA NIM(40RPM 무료, 70개 이상의 모델), Cerebras(100만 토크/일), LongCat API 키(5000만 토큰/일!), Cloudflare Workers AI(10K 뉴런/일, 50개 이상의 모델). - -## ⚡ 빠른 시작 - -### 1) 설치 및 실행 - -```bash -npm install -g omniroute -omniroute -``` - -> **pnpm 사용자:** 설치 후 `pnpm approve-builds -g`을 실행하여 `better-sqlite3` 및 `@swc/core`에 필요한 기본 빌드 스크립트를 활성화합니다. -> -> ```bash -> pnpm install -g omniroute -> pnpm approve-builds -g # Select all packages → approve -> omniroute -> ``` - -대시보드는 `http://localhost:20128`에서 열리고 API 기본 URL은 `http://localhost:20128/v1`입니다. - -| 명령 | 설명 | -| ----------------------- | --------------------------------------------------------------- | -| `omniroute` | 서버 시작(`PORT=20128`, API 및 대시보드가 ​​동일한 포트에 있음) | -| `omniroute --port 3000` | 표준/API 포트를 3000으로 설정 | -| `omniroute --mcp` | MCP 서버 시작(stdio 전송) | -| `omniroute --no-open` | 브라우저를 자동으로 열지 않음 | -| `omniroute --help` | 도움말 표시 | - -선택적 분할 포트 모드: - -```bash -PORT=20128 DASHBOARD_PORT=20129 omniroute -# API: http://localhost:20128/v1 -# Dashboard: http://localhost:20129 -``` - -### 2) 공급자 연결 및 API 키 생성 - -1. 대시보드 → `Providers`을 열고 하나 이상의 공급자(OAuth 또는 API 키)를 연결합니다. -2. 대시보드 → `Endpoints`을 열고 API 키를 생성합니다. -3. (선택 사항) 대시보드 → `Combos`을 열고 폴백 체인을 설정합니다. - -### 3) 코딩 도구로 OmniRoute를 지정합니다. - -```txt -Base URL: http://localhost:20128/v1 -API Key: [copy from Endpoint page] -Model: if/kimi-k2-thinking (or any provider/model prefix) -``` - -Claude Code, Codex CLI, Gemini CLI, Cursor, Cline, OpenClaw, OpenCode 및 OpenAI 호환 SDK와 함께 작동합니다. - -### 4) 프로토콜 활성화 및 유효성 검사(v2.0) - -**MCP(도구 기반 작업용):** - -```bash -omniroute --mcp -``` - -그런 다음 `stdio`을 통해 MCP 클라이언트를 연결하고 다음과 같은 테스트 도구를 사용하십시오. - -- `omniroute_get_health` -- `omniroute_list_combos` - -**A2A(에이전트 간 워크플로용):** - -```bash -curl http://localhost:20128/.well-known/agent.json -``` - -```bash -curl -X POST http://localhost:20128/a2a \ - -H 'content-type: application/json' \ - -d '{"jsonrpc":"2.0","id":"quickstart","method":"message/send","params":{"skill":"quota-management","messages":[{"role":"user","content":"Give me a short quota summary."}]}}' -``` - -### 5) 모든 것을 처음부터 끝까지 확인하세요(권장) - -```bash -npm run test:protocols:e2e -``` - -이 제품군은 실행 중인 앱에 대해 실제 MCP 및 A2A 클라이언트 흐름의 유효성을 검사합니다. - -### 대안: 소스에서 실행 - -```bash -cp .env.example .env -npm install -PORT=20128 DASHBOARD_PORT=20129 NEXT_PUBLIC_BASE_URL=http://localhost:20129 npm run dev -``` - ---- - -## 🐳 도커 - -OmniRoute는 [Docker Hub](https://hub.docker.com/r/diegosouzapw/omniroute)에서 공개 Docker 이미지로 사용할 수 있습니다. - -**빠른 실행:** - -```bash -docker run -d \ - --name omniroute \ - --restart unless-stopped \ - -p 20128:20128 \ - -v omniroute-data:/app/data \ - diegosouzapw/omniroute:latest -``` - -**환경 파일 포함:** - -```bash -# Copy and edit .env first -cp .env.example .env - -docker run -d \ - --name omniroute \ - --restart unless-stopped \ - --env-file .env \ - -p 20128:20128 \ - -v omniroute-data:/app/data \ - diegosouzapw/omniroute:latest -``` - -**Docker Compose 사용:** - -```bash -# Base profile (no CLI tools) -docker compose --profile base up -d - -# CLI profile (Claude Code, Codex, OpenClaw built-in) -docker compose --profile cli up -d -``` - -| 이미지 | 태그 | 사이즈 | 설명 | -| ------------------------ | -------- | ------ | ---------------- | -| `diegosouzapw/omniroute` | `latest` | ~250MB | 최신 안정 릴리스 | -| `diegosouzapw/omniroute` | `1.0.3` | ~250MB | 현재 버전 | - ---- - -## 🖥️ 데스크톱 앱 — 오프라인 및 상시 접속 - -> 🆕 **신규!** 이제 OmniRoute를 Windows, macOS, Linux용 **기본 데스크톱 애플리케이션**으로 사용할 수 있습니다. - -OmniRoute를 독립형 데스크톱 앱으로 실행하세요. 로컬 모델에는 터미널, 브라우저, 인터넷이 필요하지 않습니다. Electron 기반 앱에는 다음이 포함됩니다. - -- 🖥️ **기본 창** — 시스템 트레이 통합이 가능한 전용 앱 창 -- 🔄 **자동 시작** — 시스템 로그인 시 OmniRoute 실행 -- 🔔 **기본 알림** — 할당량 소진 또는 공급자 문제에 대한 알림 받기 -- ⚡ **원클릭 설치** — NSIS(Windows), DMG(macOS), AppImage(Linux) -- 🌐 **오프라인 모드** — 번들 서버를 사용하여 완전히 오프라인으로 작동 - -### 빠른 시작 - -```bash -# Development mode -npm run electron:dev - -# Build for your platform -npm run electron:build # Current platform -npm run electron:build:win # Windows (.exe) -npm run electron:build:mac # macOS (.dmg) — x64 & arm64 -npm run electron:build:linux # Linux (.AppImage) -``` - -### 시스템 트레이 - -최소화되면 OmniRoute는 빠른 작업을 통해 시스템 트레이에 표시됩니다. - -- 대시보드 열기 -- 서버 포트 변경 -- 애플리케이션 종료 - -📖 전체 문서: [**OMNI_TOKEN_153**](electron/README.md) - ---- - -## 💰 가격 한눈에 보기 - -| 계층 | 공급자 | 비용 | 할당량 재설정 | 최고의 대상 | -| ------------- | ----------------------- | ------------------------------- | --------------- | -------------------------------------- | -| **💳 구독** | 클로드 코드 (Pro) | $20/월 | 5시간 + 매주 | 이미 구독 중 | -| | 코덱스(플러스/프로) | $20-200/월 | 5시간 + 매주 | OpenAI 사용자 | -| | 제미니 CLI | **무료** | 180K/월 + 1K/일 | 모든 사람! | -| | GitHub 부조종사 | $10-19/월 | 월간 | GitHub 사용자 | -| **🔑 API 키** | 엔비디아 NIM | **무료**(영원한 개발) | ~40RPM | 70개 이상의 공개 모델 | -| | 대뇌 | **무료** (100만 톡/일) | 60K TPM/30RPM | 세계에서 가장 빠른 | -| | 그로크 | **무료**(30RPM) | 14.4KRPD | 초고속 라마/젬마 | -| | DeepSeek V3.2 | 100만 달러당 $0.27/$1.10 | 없음 | 최고의 가격/품질 추론 | -| | xAI Grok-4 고속 | **100만 달러당 $0.20/$0.50** 🆕 | 없음 | 가장 빠른 + 도구 호출, 초저 | -| | xAI Grok-4(표준) | 100만 달러당 $0.20/$1.50 🆕 | 없음 | xAI의 추론 주력 | -| | 미스트랄 | 무료 평가판 + 유료 | 요금 제한 | 유럽의 AI | -| | 오픈라우터 | 종량제 | 없음 | 100개 이상의 모델이 결합되어 있습니다. | -| **💰 저렴한** | GLM-5(Z.AI를 통해) 🆕 | $0.5/1M | 매일 오전 10시 | 128K 출력, 최신 플래그십 | -| | GLM-4.7 | $0.6/1M | 매일 오전 10시 | 예산 백업 | -| | 미니맥스 M2.5 🆕 | $0.3/1M 입력 | 5시간 롤링 | 추론 + 에이전트 작업 | -| | 미니맥스 M2.1 | $0.2/1M | 5시간 롤링 | 가장 저렴한 옵션 | -| | Kimi K2.5(문샷 API) 🆕 | 종량제 | 없음 | 직접 Moonshot API 액세스 | -| | 키미 K2 | $9/월 정액 | 1000만 토큰/월 | 예측 가능한 비용 | -| **🆓 무료** | 아이플로우 | **$0** | 무제한 | 5개 모델 무제한 | -| | 퀀 | **$0** | 무제한 | 4개 모델 무제한 | -| | 키로 | **$0** | 무제한 | 클로드 소네트/하이쿠(AWS 빌더) | -| | LongCat 플래시라이트 🆕 | **$0** (5천만 토크/일 🔥) | 1RPS | 지구상에서 가장 큰 무료 할당량 | -| | 수분 AI 🆕 | **$0** (열쇠 필요 없음) | 요청 1개/15초 | GPT-5, 클로드, DeepSeek, 라마 4 | -| | Cloudflare 작업자 AI 🆕 | **$0** (10,000개의 뉴런/일) | ~150회/일 | 50개 이상의 모델, 글로벌 엣지 | -| | 스케일웨이 AI 🆕 | **$0** (총 1백만 토큰) | 요금 제한 | EU/GDPR, Qwen3 235B, 라마 70B | - -> 🆕 **새 모델 추가됨(2026년 3월):** $0.20/$0.50/M의 Grok-4 Fast 제품군(1143ms로 벤치마크 — Gemini 2.5 플래시보다 30% 빠름), 128K 출력의 Z.AI를 통한 GLM-5, MiniMax M2.5 추론, DeepSeek V3.2 업데이트된 가격, Moonshot 직접 API를 통한 Kimi K2.5. - -**💡 $0 콤보 스택 — 완전한 무료 설정:** - -``` -# 🆓 Ultimate Free Stack 2026 — 11 Providers, $0 Forever -Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED -LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 -Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed -Qwen (qw/) → qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next UNLIMITED -Gemini (gemini/) → Gemini 2.5 Flash — 1,500 req/day free API key -Cloudflare AI (cf/) → Llama 70B, Gemma 3, Mistral — 10K Neurons/day -Scaleway (scw/) → Qwen3 235B, Llama 70B — 1M free tokens (EU) -Groq (groq/) → Llama/Gemma ultra-fast — 14.4K req/day -NVIDIA NIM (nvidia/) → 70+ open models — 40 RPM forever -Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day -``` - -**비용이 0입니다. 코딩을 중단하지 마십시오.** 이를 하나의 OmniRoute 콤보로 구성하면 모든 폴백이 자동으로 수행됩니다. 수동 전환이 필요하지 않습니다. - ---- - ---- - -## 🆓 무료 모델 — 실제로 얻을 수 있는 것 - -> 아래의 모든 모델은 **신용카드가 필요 없이 100% 무료**입니다. 하나의 할당량이 소진되면 OmniRoute는 둘 사이를 자동으로 라우팅합니다. 이를 모두 결합하여 깨지지 않는 $0 콤보를 만듭니다. - -### 🔵 CLAUDE 모델(Kiro를 통해 — AWS Builder ID) - -| 모델 | 접두사 | 한도 | 비율 제한 | -| ------------------- | ------ | ---------- | --------------------- | -| `claude-sonnet-4.5` | `kr/` | **무제한** | 보고된 일일 한도 없음 | -| `claude-haiku-4.5` | `kr/` | **무제한** | 보고된 일일 한도 없음 | -| `claude-opus-4.6` | `kr/` | **무제한** | Kiro를 통한 최신 Opus | - -### 🟢 QODER 모델(무료 OAuth — 신용카드 없음) - -| 모델 | 접두사 | 한도 | 비율 제한 | -| ------------------ | ------ | ---------- | ---------------- | -| `kimi-k2-thinking` | `if/` | **무제한** | 보고된 한도 없음 | -| `qwen3-coder-plus` | `if/` | **무제한** | 보고된 한도 없음 | -| `deepseek-r1` | `if/` | **무제한** | 보고된 한도 없음 | -| `minimax-m2.1` | `if/` | **무제한** | 보고된 한도 없음 | -| `kimi-k2` | `if/` | **무제한** | 보고된 한도 없음 | - -### 🟡 QWEN 모델(장치 코드 인증) - -| 모델 | 접두사 | 한도 | 비율 제한 | -| ------------------- | ------ | ---------- | ----------------- | -| `qwen3-coder-plus` | `qw/` | **무제한** | 보고된 한도 없음 | -| `qwen3-coder-flash` | `qw/` | **무제한** | 보고된 한도 없음 | -| `qwen3-coder-next` | `qw/` | **무제한** | 보고된 한도 없음 | -| `vision-model` | `qw/` | **무제한** | 다중 모드(이미지) | - -### 🟣 GEMINI CLI(Google OAuth) - -| 모델 | 접두사 | 한도 | 비율 제한 | -| ------------------------ | ------ | ---------------------- | ----------- | -| `gemini-3-flash-preview` | `gc/` | **180K 톡/월** + 1K/일 | 월별 재설정 | -| `gemini-2.5-pro` | `gc/` | 180K/월(공유 풀) | 고품질 | - -### ⚫ NVIDIA NIM(무료 API 키 — build.nvidia.com) - -| 계층 | 일일 한도 | 비율 제한 | 메모 | -| ------------ | -------------- | ---------- | ----------------------------------------------------- | -| 무료(개발자) | 토큰 한도 없음 | **~40RPM** | 70개 이상의 모델; 2025년 중반 순수 비율 제한으로 전환 | - -인기 있는 무료 모델: `moonshotai/kimi-k2.5`(Kimi K2.5), `z-ai/glm4.7`(GLM 4.7), `deepseek-ai/deepseek-v3.2`(DeepSeek V3.2), `nvidia/llama-3.3-70b-instruct`, `deepseek/deepseek-r1` - -### ⚪ CEREBRAS(무료 API 키 — inference.cerebras.ai) - -| 계층 | 일일 한도 | 비율 제한 | 메모 | -| ---- | ----------------- | ------------- | ---------------------------------------- | -| 무료 | **100만 토큰/일** | 60K TPM/30RPM | 세계에서 가장 빠른 LLM 추론; 매일 재설정 | - -무료로 사용 가능: `llama-3.3-70b`, `llama-3.1-8b`, `deepseek-r1-distill-llama-70b` - -### 🔴 GROQ(무료 API 키 — console.groq.com) - -| 계층 | 일일 한도 | 비율 제한 | 메모 | -| ---- | ------------- | ------------ | -------------------------------------- | -| 무료 | **14,400RPD** | 모델당 30RPM | 신용카드 없음; 429 한도, 청구되지 않음 | - -무료로 사용 가능: `llama-3.3-70b-versatile`, `gemma2-9b-it`, `mixtral-8x7b`, `whisper-large-v3` - -### 🔴 LONGCAT AI(무료 API 키 — longcat.chat) 🆕 - -| 모델 | 접두사 | 일일 무료 할당량 | 메모 | -| ----------------------------- | ------ | ------------------- | ---------------------------- | -| `LongCat-Flash-Lite` | `lc/` | **5천만 토큰** 품목 | 사상 최대 규모의 무료 할당량 | -| `LongCat-Flash-Chat` | `lc/` | 50만 토큰 | 다단계 채팅 | -| `LongCat-Flash-Thinking` | `lc/` | 50만 토큰 | 추론 / CoT | -| `LongCat-Flash-Thinking-2601` | `lc/` | 50만 토큰 | 2026년 1월 버전 | -| `LongCat-Flash-Omni-2603` | `lc/` | 50만 토큰 | 다중 모드 | - -> 공개 베타 버전에서는 100% 무료입니다. 이메일이나 전화로 [longcat.chat](https://longcat.chat)에 가입하세요. 매일 00:00 UTC에 재설정됩니다. - -### 🟢 POLLINATIONS AI(API 키 필요 없음) 🆕 - -| 모델 | 접두사 | 비율 제한 | 뒤에 공급자 | -| ---------- | ------ | ------------- | -------------------- | -| `openai` | `pol/` | 요청 1개/15초 | GPT-5 | -| `claude` | `pol/` | 요청 1개/15초 | 인류학 클로드 | -| `gemini` | `pol/` | 요청 1개/15초 | 구글 제미니 | -| `deepseek` | `pol/` | 요청 1개/15초 | DeepSeek V3 | -| `llama` | `pol/` | 요청 1개/15초 | 메타 라마 4 스카우트 | -| `mistral` | `pol/` | 요청 1개/15초 | 미스트랄 AI | - -> ✨ **마찰 없음:** 가입이나 API 키가 없습니다. 빈 키 필드가 있는 Pollinations 공급자를 추가하면 즉시 작동합니다. - -### 🟠 CLOUDFLARE WORKERS AI(무료 API 키 — cloudflare.com) 🆕 - -| 계층 | 일일 뉴런 | 동등한 사용법 | 메모 | -| ---- | ---------- | ----------------------------------------- | ----------------------------- | -| 무료 | **10,000** | ~150 LLM 응답 / 500초 오디오 / 15K 임베드 | 글로벌 에지, 50개 이상의 모델 | - -인기 있는 무료 모델: `@cf/meta/llama-3.3-70b-instruct`, `@cf/google/gemma-3-12b-it`, `@cf/openai/whisper-large-v3-turbo`(무료 오디오!), `@cf/qwen/qwen2.5-coder-15b-instruct` - -> [dash.cloudflare.com](https://dash.cloudflare.com)의 API 토큰 + 계정 ID가 필요합니다. 공급자 설정에 계정 ID를 저장합니다. - -### 🟣 SCALEWAY AI(100만 개의 무료 토큰 — scaleway.com) 🆕 - -| 계층 | 무료 할당량 | 위치 | 메모 | -| ---- | ------------------- | ----------- | ------------------------------------------ | -| 무료 | **100만 개의 토큰** | 🇫🇷 파리, EU | 한도 내에서는 신용카드가 필요하지 않습니다 | - -무료로 사용 가능: `qwen3-235b-a22b-instruct-2507` (Qwen3 235B!), `llama-3.1-70b-instruct`, `mistral-small-3.2-24b-instruct-2506`, `deepseek-v3-0324` - -> EU/GDPR을 준수합니다. [console.scaleway.com](https://console.scaleway.com)에서 API 키를 받으세요. - -> **💡 최고의 무료 스택(11개 제공자, 영원히 $0):** -> -> ``` -> Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -> Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED -> LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 -> Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed -> Qwen (qw/) → qwen3-coder models UNLIMITED -> Gemini (gemini/) → Gemini 2.5 Flash — 1,500 req/day free -> Cloudflare AI (cf/) → 50+ models — 10K Neurons/day -> Scaleway (scw/) → Qwen3 235B, Llama 70B — 1M free tokens (EU) -> Groq (groq/) → Llama/Gemma — 14.4K req/day ultra-fast -> NVIDIA NIM (nvidia/) → 70+ open models — 40 RPM forever -> Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day -> ``` - -## 🎙️ 무료 전사 콤보 - -> **$0**에 모든 오디오/비디오 전사 — Deepgram이 무료로 200달러, AssemblyAI가 50달러로 대체, Groq Whisper를 무제한 긴급 백업으로 제공합니다. - -| 공급자 | 무료 크레딧 | 최고의 모델 | 비율 제한 | -| ----------------- | -------------------- | ------------------------------------------ | ----------------------------------- | -| 🟢 **딥그램** | **$200 무료** (가입) | `nova-3` — 최고의 정확성, 30개 이상의 언어 | 무료 크레딧에는 RPM 제한이 없습니다 | -| 🔵 **AssemblyAI** | **$50 무료**(가입) | `universal-3-pro` — 장, 감정, PII | 무료 크레딧에는 RPM 제한이 없습니다 | -| 🔴 **그로크** | **영원히 무료** | `whisper-large-v3` — OpenAI 속삭임 | 30RPM(속도 제한) | - -**`/dashboard/combos`의 제안된 콤보:** - -``` -Name: free-transcription -Strategy: Priority -Nodes: - [1] deepgram/nova-3 → uses $200 free first - [2] assemblyai/universal-3-pro → fallback when Deepgram credits run out - [3] groq/whisper-large-v3 → free forever, emergency fallback -``` - -그런 다음 `/dashboard/media` → **기록** 탭에서 오디오 또는 비디오 파일을 업로드하고 → 콤보 엔드포인트를 선택하고 → 지원되는 형식으로 기록을 가져옵니다. - -## 💡 주요 기능 - -OmniRoute v2.0은 단순한 릴레이 프록시가 아닌 운영 플랫폼으로 구축되었습니다. - -### 🆕 신규 — ClawRouter에서 영감을 받은 개선 사항(2026년 3월) - -| 기능 | 그것이 하는 일 | -| -------------------------------- | ---------------------------------------------------------------------------------------------------- | -| ⚡ **Grok-4 빠른 제품군** | $0.20/$0.50/M의 xAI 모델 — 벤치마크 1143ms(Gemini 2.5 Flash보다 30% 빠름) | -| 🧠 **Z.AI를 통한 GLM-5** | 128K 출력 컨텍스트, $0.5/1M — GLM 제품군의 최신 플래그십 | -| 🔮 **미니맥스 M2.5** | $0.30/1M의 추론 + 에이전트 작업 — M2.1에서 대폭 업그레이드 | -| 🎯 **모델별 toolCalling 플래그** | 레지스트리의 모델별 `toolCalling: true/false` — AutoCombo는 도구를 사용할 수 없는 모델을 건너뜁니다. | -| 🌍 **다국어 의도 감지** | AutoCombo 채점의 PT/ZH/ES/AR 키워드 — 영어가 아닌 콘텐츠에 대한 더 나은 모델 선택 | -| 📊 **벤치마크 기반 폴백** | 라이브 요청의 실제 p95 대기 시간은 콤보 점수를 제공합니다. AutoCombo는 실제 데이터에서 학습합니다 | -| 🔁 **중복 제거 요청** | 콘텐츠 해시 기반 중복 제거 창 — 다중 에이전트 안전, 중복 청구 방지 | -| 🔌 **플러그형 라우터 전략** | 확장 가능한 `RouterStrategy` 인터페이스 — 사용자 정의 라우팅 논리를 플러그인으로 추가 | - -### 🚀 이전 v2.0.9+ — 플레이그라운드, CLI 지문 및 ACP - -| 기능 | 그것이 하는 일 | -| --------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 🎮 **모델 놀이터** | 모든 모델을 직접 테스트할 수 있는 대시보드 페이지 — 제공자/모델/엔드포인트 선택기, 모나코 편집기, 스트리밍, 중단, 타이밍 | -| 🔏 **CLI 지문 매칭** | 기본 CLI 서명과 일치하도록 공급자별 헤더/본문 순서 - 설정 > 보안에서 공급자별로 전환합니다. **프록시 IP는 보존됩니다** | -| 🤝 **ACP 지원(에이전트 클라이언트 프로토콜)** | CLI 에이전트 검색(Codex, Claude, Goose, Gemini CLI, OpenClaw + 9개 이상), 프로세스 생성기, `/api/acp/agents` 엔드포인트 | -| 🤖 **ACP 상담원 대시보드** | 디버그 › 에이전트 페이지 — 모든 CLI 도구에 대한 설치 상태, 버전, 사용자 지정 에이전트 양식이 포함된 14개 에이전트의 그리드입니다. **OpenCode** 사용자에게는 사용 가능한 모든 모델과 함께 즉시 사용 가능한 구성을 자동 생성하는 "opencode.json 다운로드" 버튼이 표시됩니다. | -| 🔧 **사용자 정의 모델 `apiFormat` 라우팅** | `apiFormat: "responses"`을 사용하는 사용자 정의 모델은 이제 Responses API 번역기로 올바르게 라우팅됩니다. | -| 🏢 **Codex 작업 공간 격리** | 이메일당 여러 Codex 작업 공간 - OAuth는 작업 공간 ID로 연결을 올바르게 구분합니다 | -| 🔄 **전자 자동 업데이트** | 데스크탑 앱에서 업데이트 확인 + 재시작 시 자동 설치 | - -### 🤖 에이전트 및 프로토콜 운영(v2.0) - -| 기능 | 그것이 하는 일 | -| ---------------------------------- | ------------------------------------------------------------------------------------------------------ | -| 🔧 **MCP 서버(16개 도구)** | 3가지 전송을 통한 IDE/에이전트 도구: stdio, SSE(`/api/mcp/sse`), 스트리밍 가능 HTTP(`/api/mcp/stream`) | -| 🤝 **A2A 서버(JSON-RPC + SSE)** | 동기화 및 스트리밍 흐름을 통한 에이전트 간 작업 실행 | -| 🧭 **통합 엔드포인트 페이지** | 엔드포인트 프록시, MCP, A2A 및 API 엔드포인트 탭이 있는 탭 관리 페이지 | -| 🎚️ **서비스 활성화/비활성화 토글** | 설정 지속성을 갖춘 MCP 및 A2A용 ON/OFF 스위치(기본값: OFF) | -| 🛰️ **MCP 런타임 하트비트** | 실제 프로세스 상태(pid, 가동 시간, 하트비트 기간, 전송, 범위 모드) | -| 📋 **MCP 감사 추적** | 성공/실패 및 주요 속성이 포함된 필터링 가능한 감사 로그 | -| 🔐 **MCP 범위 적용** | 제어된 도구 액세스를 위한 9개의 세부적인 범위 권한 | -| 📡 **A2A 작업 수명주기 관리** | 작업 나열/필터링, 이벤트/아티팩트 검사, 실행 중인 작업 취소 | -| 📋 **에이전트 카드 검색** | 클라이언트 자동 검색을 위한 `/.well-known/agent.json` | -| 🧪 **프로토콜 E2E 테스트 하네스** | `test:protocols:e2e`의 실제 MCP SDK + A2A 클라이언트 흐름 | -| ⚙️ **작동 제어** | 하나의 제어 표면에서 콤보 전환, 탄력성 프로필 적용, 차단기 재설정 | - -### 🧠 라우팅 및 인텔리전스 - -| 기능 | 그것이 하는 일 | -| ------------------------------ | ----------------------------------------------------------------- | -| 🎯 **스마트 4계층 폴백** | 자동 경로: 구독 → API 키 → 저렴한 → 무료 | -| 📊 **실시간 할당량 추적** | 라이브 토큰 수 + 공급자별 카운트다운 재설정 | -| 🔄 **형식 번역** | OpenAI ⇔ Claude ⇔ Gemini ⇔ 스키마 안전 변환을 통한 응답 | -| 👥 **다중 계정 지원** | 지능적인 선택을 통해 공급자당 여러 계정 | -| 🔄 **자동 토큰 새로고침** | 재시도 시 OAuth 토큰이 자동으로 새로 고쳐집니다. | -| 🎨 **맞춤형 콤보** | 6가지 밸런싱 전략 + 폴백 체인 제어 | -| 🌐 **와일드카드 라우터** | `provider/*` 동적 라우팅 | -| 🧠 **사고 예산 통제** | 통과, 자동, 사용자 정의 및 적응형 추론 제한 | -| 🔀 **모델 별칭** | 내장 + 사용자 정의 모델 앨리어싱 및 마이그레이션 안전 | -| ⚡ **배경 저하** | 우선순위가 낮은 백그라운드 작업을 저렴한 모델로 라우팅 | -| 🧪 **작업 인식 스마트 라우팅** | 콘텐츠 유형별 모델 자동 선택(코딩/비전/분석/요약) | -| 💬 **시스템 프롬프트 삽입** | 일관되게 적용되는 글로벌 행동 제어 | -| 📄 **응답 API 호환성** | Codex 및 고급 에이전트 작업 흐름에 대한 전체 `/v1/responses` 지원 | - -### 🎵 다중 모드 API - -| 기능 | 그것이 하는 일 | -| ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 🖼️ **이미지 생성** | `/v1/images/generations`(클라우드 및 로컬 백엔드 포함) | -| 📐 **임베딩** | 검색 및 RAG 파이프라인용 `/v1/embeddings` | -| 🎤 **오디오 전사** | `/v1/audio/transcriptions` — 7개 공급자(Deepgram Nova 3, AssemblyAI, Groq Whisper, HuggingFace, ElevenLabs, OpenAI, Azure), 자동 언어 감지, MP4/MP3/WAV 지원 | -| 🔊 **텍스트 음성 변환** | `/v1/audio/speech` — 올바른 오류 메시지가 있는 10개 공급자(ElevenLabs, OpenAI, Deepgram, Cartesia, PlayHT, HuggingFace, Nvidia NIM, Inworld, Coqui, Tortoise) | -| 🎬 **비디오 생성** | `/v1/videos/generations`(ComfyUI + SD WebUI 워크플로) | -| 🎵 **음악 세대** | `/v1/music/generations`(ComfyUI 워크플로) | -| 🛡️ **조정** | `/v1/moderations` 안전 확인 | -| 🔀 **재순위** | 관련성 점수를 위한 `/v1/rerank` | -| 🔍 **웹 검색** 🆕 | `/v1/search` — 5개 공급자(Serper, Brave, Perplexity, Exa, Tavily), 월 6,500개 이상의 무료, 자동 장애 조치, 캐시 | - -### 🛡️ 탄력성, 보안 및 거버넌스 - -| 기능 | 그것이 하는 일 | -| ------------------------------ | --------------------------------------------------------------------------- | -| 🔌 **회로 차단기** | 임계값 제어를 통한 모델별 트립/복구 | -| 🎯 **엔드포인트 인식 모델** | 사용자 정의 모델은 지원되는 엔드포인트 + API 형식을 선언합니다 | -| 🛡️ **천둥 방지 무리** | 재시도/비율 이벤트에 대한 뮤텍스 + 세마포어 보호 | -| 🧠 **의미 + 서명 캐시** | 두 개의 캐시 레이어로 비용/지연 시간 감소 | -| ⚡ **멱등성 요청** | 중복 보호 창 | -| 🔒 **TLS 지문 스푸핑** | 브라우저와 유사한 TLS 지문 — **봇 감지 및 계정 플래그 지정 감소** | -| 🔏 **CLI 지문 매칭** | 기본 CLI 요청 서명과 일치 — **프록시 IP를 보존하면서 금지 위험을 줄입니다** | -| 🌐 **IP 필터링** | 노출된 배포에 대한 허용 목록/차단 목록 제어 | -| 📊 **편집 가능한 속도 제한** | 지속성을 통해 구성 가능한 전역/공급자 수준 제한 | -| 🔑 **API 키 관리 + 범위 지정** | 보안 키 발급/교체 및 모델/공급자 제어 | -| 🛡️ **보호되는 `/models`** | 모델 카탈로그에 대한 선택적 인증 게이팅 및 공급자 숨기기 | - -### 📊 관찰 가능성 및 분석 - -| 기능 | 그것이 하는 일 | -| -------------------------------- | ---------------------------------------------------- | -| 📝 **요청 + 프록시 로깅** | 전체 요청/응답 및 프록시 로깅 | -| 📉 **Streamed Detailed Logs** 🆕 | Reconstructs SSE payload streams cleanly into the UI | -| 📋 **통합 로그 대시보드** | 한 페이지에서 요청, 프록시, 감사 및 콘솔 보기 | -| 🔍 **원격 측정 요청** | p50/p95/p99 대기 시간 및 요청 추적 | -| 🏥 **건강 대시보드** | 가동 시간, 차단기 상태, 잠금, 캐시 통계 | -| 💰 **비용 추적** | 예산 제어 및 모델별 가격 가시성 | -| 📈 **분석 시각화** | 모델/공급자 사용량 통찰력 및 추세 보기 | -| 🧪 **평가 프레임워크** | 구성 가능한 매치 전략을 사용한 골든 세트 테스트 | - -### ☁️ 배포 및 플랫폼 - -| 기능 | 그것이 하는 일 | -| ---------------------------------- | --------------------------------------------------------- | ------------------ | -| 🌐 **어디서나 배포** | 로컬호스트, VPS, Docker, 클라우드 환경 | -| 💾 **클라우드 동기화** | 클라우드 작업자를 통한 구성 동기화 | -| 🔄 **백업/복원** | 내보내기/가져오기 및 재해 복구 흐름 | -| 🧙 **온보딩 마법사** | 첫 실행 안내 설정 | -| 🔧 **CLI 도구 대시보드** | 널리 사용되는 코딩 도구를 위한 원클릭 설정 | -| 🎮 **모델 놀이터** | 대시보드에서 공급자/모델/엔드포인트 테스트 | -| 🔏 **CLI 지문 토글** | 설정 > 보안 | 공급자별 지문 일치 | -| 🌐 **i18n(30개 언어)** | RTL 적용 범위를 포함한 전체 대시보드 + 문서 언어 지원 | -| 🧹 **모든 모델 지우기** | 공급자 세부정보에서 원클릭 모델 목록 삭제 | -| 👁️ **Sidebar Controls** 🆕 | Hide components and integrations from Appearance Settings | -| 📋 **이슈 템플릿** | 버그 및 기능을 위한 표준화된 GitHub 템플릿 | -| 📂 **사용자 정의 데이터 디렉터리** | `DATA_DIR` 저장 위치 재정의 | - -### 기능 심층 분석 - -#### 실용적인 비용 관리를 통한 스마트 폴백 - -```txt -Combo: "my-coding-stack" - 1. cc/claude-opus-4-6 - 2. nvidia/llama-3.3-70b - 3. glm/glm-4.7 - 4. if/kimi-k2-thinking -``` - -할당량, 속도 또는 상태가 실패하면 OmniRoute는 수동 전환 없이 자동으로 다음 후보로 이동합니다. - -#### 눈에 보이고 작동 가능한 프로토콜 관리 - -- MCP + A2A는 UI 및 문서에서 검색 가능합니다(숨겨지지 않음). -- 프로토콜 상태 API는 실시간 운영 데이터를 노출합니다(`/api/mcp/*`, `/api/a2a/*`). -- 대시보드에는 2일차 작업에 대한 작업이 포함됩니다(콤보 토글, 차단기 재설정, 작업 취소). - -#### 번역기 + 검증 작업 흐름 - -번역기 영역에는 다음이 포함됩니다. - -- **플레이그라운드**: 변환 확인 요청 -- **채팅 테스터**: 전체 요청/응답 왕복 -- **테스트 벤치**: 한 번에 여러 사례 실행 -- **라이브 모니터**: 실시간 교통 상황 보기 - -`npm run test:protocols:e2e`을 통해 실제 클라이언트를 사용한 프로토콜 검증도 가능합니다. - -> 📖 **[MCP Server README](open-sse/mcp-server/README.md)** — 도구 참조, IDE 구성 및 클라이언트 예 -> -> 📖 **[A2A Server README](src/lib/a2a/README.md)** — 기술, JSON-RPC 방법, 스트리밍 및 작업 수명 주기 - -## 🧪 평가(Evals) - -OmniRoute에는 골든 세트에 대해 LLM 응답 품질을 테스트하기 위한 내장 평가 프레임워크가 포함되어 있습니다. 대시보드의 **분석 → 평가**를 통해 액세스하세요. - -### 내장 골든 세트 - -사전 로드된 "OmniRoute Golden Set"에는 다음에 대한 테스트 사례가 포함되어 있습니다. - -- 인사말, 수학, 지리, 코드 생성 -- JSON 형식 준수, 번역, 마크다운 생성 -- 안전 거부(유해 콘텐츠), 카운팅, 부울 논리 - -### 평가 전략 - -| 전략 | 설명 | 예 | -| ---------- | -------------------------------------------------------------- | -------------------------------- | -| `exact` | 출력은 정확히 일치해야 합니다 | `"4"` | -| `contains` | 출력에는 하위 문자열(대소문자 구분 안 함)이 포함되어야 합니다. | `"Paris"` | -| `regex` | 출력은 정규식 패턴과 일치해야 합니다 | `"1.*2.*3"` | -| `custom` | 사용자 정의 JS 함수가 true/false를 반환합니다. | `(output) => output.length > 10` | - ---- - -## 📖 설정 가이드 - -### 프로토콜 설정(MCP + A2A) - -<details> -<summary><b>🧩 MCP 설정(모델 컨텍스트 프로토콜)</b></summary> - -stdio 모드에서 MCP 전송을 시작합니다. - -```bash -omniroute --mcp -``` - -권장되는 검증 흐름: - -1. stdio를 통해 MCP 클라이언트를 연결합니다. -2. `omniroute_get_health`을 실행합니다. -3. `omniroute_list_combos`을 실행합니다. -4. `/dashboard/mcp`을 열어 하트비트, 활동 및 감사를 확인합니다. - -자동화에 유용한 API: - -- `GET /api/mcp/status` -- `GET /api/mcp/tools` -- `GET /api/mcp/audit` -- `GET /api/mcp/audit/stats` - -</details> - -<details> -<summary><b>🤝 A2A 설정(Agent2Agent)</b></summary> - -에이전트를 검색합니다. - -```bash -curl http://localhost:20128/.well-known/agent.json -``` - -작업 보내기: - -```bash -curl -X POST http://localhost:20128/a2a \ - -H 'content-type: application/json' \ - -d '{"jsonrpc":"2.0","id":"setup-a2a","method":"message/send","params":{"skill":"quota-management","messages":[{"role":"user","content":"Summarize quota status."}]}}' -``` - -수명주기 관리: - -- `GET /api/a2a/status` -- `GET /api/a2a/tasks` -- `GET /api/a2a/tasks/:id` -- `POST /api/a2a/tasks/:id/cancel` - -운영 UI: - -- 작업/상태/스트림 관찰 가능성 및 연기 작업을 위한 `/dashboard/a2a` - -</details> - -<details> -<summary><b>🧪 종단 간 프로토콜 검증</b></summary> - -실제 클라이언트에서 두 프로토콜을 모두 검증합니다. - -```bash -npm run test:protocols:e2e -``` - -이는 다음을 확인합니다. - -- MCP SDK 클라이언트 연결/목록/호출 -- A2A 검색/전송/스트리밍/가져오기/취소 -- MCP 감사 및 A2A 작업 관리 API의 데이터 교차 확인 - -</details> - -<details> -<summary><b>💳 구독 제공업체</b></summary> - -### 클로드 코드(Pro/Max) - -```bash -Dashboard → Providers → Connect Claude Code -→ OAuth login → Auto token refresh -→ 5-hour + weekly quota tracking - -Models: - cc/claude-opus-4-6 - cc/claude-sonnet-4-5-20250929 - cc/claude-haiku-4-5-20251001 -``` - -**프로 팁:** 복잡한 작업에는 Opus를 사용하고, 속도를 높이려면 Sonnet을 사용하세요. OmniRoute는 모델당 할당량을 추적합니다! - -### OpenAI 코덱스(Plus/Pro) - -```bash -Dashboard → Providers → Connect Codex -→ OAuth login (port 1455) -→ 5-hour + weekly reset - -Models: - cx/gpt-5.2-codex - cx/gpt-5.1-codex-max -``` - -#### 코덱스 계정 한도 관리(5시간 + 주간) - -이제 각 Codex 계정에는 `Dashboard -> Providers`에 정책 토글이 있습니다. - -- `5h` (ON/OFF): 5시간 창 임계값 정책을 시행합니다. -- `Weekly` (ON/OFF): 주간 창 임계값 정책을 시행합니다. -- 임계값 동작: 활성화된 창이 사용량의 90% 이상에 도달하면 해당 계정을 건너뜁니다. -- 순환 동작: OmniRoute는 자동으로 다음 적격 Codex 계정으로 라우팅합니다. -- 동작 재설정: 공급자 `resetAt` 시간이 지나면 계정이 자동으로 다시 자격을 갖추게 됩니다. - -시나리오: - -- `5h ON` + `Weekly ON`: 두 창이 임계값에 도달하면 계정을 건너뜁니다. -- `5h OFF` + `Weekly ON`: 주간 사용량만 계정을 차단할 수 있습니다. -- `5h ON` + `Weekly OFF`: 5시간 동안만 사용하면 계정이 차단될 수 있습니다. -- `resetAt` 통과: 계정이 자동으로 순환을 다시 시작합니다(수동 재활성화 없음). - -### Gemini CLI(월 180,000 무료!) - -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**최고의 가치:** 엄청난 무료 등급! 유료 등급 이전에 사용하세요. - -### GitHub 코파일럿 - -```bash -Dashboard → Providers → Connect GitHub -→ OAuth via GitHub -→ Monthly reset (1st of month) - -Models: - gh/gpt-5 - gh/claude-4.5-sonnet - gh/gemini-3-pro -``` - -</details> - -<details> -<summary><b>🔑 API 키 제공자</b></summary> - -### NVIDIA NIM(무료 개발자 액세스 — 70개 이상의 모델) - -1. 가입: [build.nvidia.com](https://build.nvidia.com) -2. 무료 API 키 받기(1000 추론 크레딧 포함) -3. 대시보드 → 공급자 추가 → NVIDIA NIM: - - API 키: `nvapi-your-key` - -**모델:** `nvidia/llama-3.3-70b-instruct`, `nvidia/mistral-7b-instruct` 외 50개 이상 - -**프로 팁:** OpenAI 호환 API — OmniRoute의 형식 변환과 원활하게 작동합니다! - -### 딥시크 - -1. 가입: [platform.deepseek.com](https://platform.deepseek.com) -2. API 키 받기 -3. 대시보드 → 공급자 추가 → DeepSeek - -**모델:** `deepseek/deepseek-chat`, `deepseek/deepseek-coder` - -### Groq(무료 등급 사용 가능!) - -1. 가입: [console.groq.com](https://console.groq.com) -2. API 키 받기(무료 등급 포함) -3. 대시보드 → 공급자 추가 → Groq - -**모델:** `groq/llama-3.3-70b`, `groq/mixtral-8x7b` - -**프로 팁:** 초고속 추론 — 실시간 코딩에 가장 적합합니다! - -### OpenRouter(100개 이상의 모델) - -1. 가입: [openrouter.ai](https://openrouter.ai) -2. API 키 받기 -3. 대시보드 → 공급자 추가 → OpenRouter - -**모델:** 단일 API 키를 통해 모든 주요 제공업체의 100개 이상의 모델에 액세스할 수 있습니다. - -</details> - -<details> -<summary><b>💰 저렴한 공급자(백업)</b></summary> - -### GLM-4.7 (일일 재설정, $0.6/1M) - -1. 가입: [Zhipu AI](https://open.bigmodel.cn/) -2. Coding Plan에서 API Key 받기 -3. 대시보드 → API 키 추가: - - 제공자: `glm` - - API 키: `your-key` - -**사용:** `glm/glm-4.7` - -**프로 팁:** 코딩 계획은 1/7 비용으로 3배 할당량을 제공합니다! 매일 오전 10시에 초기화됩니다. - -### MiniMax M2.1(5시간 재설정, $0.20/1M) - -1. 가입: [MiniMax](https://www.minimax.io/) -2. API 키 받기 -3. 대시보드 → API Key 추가 - -**사용:** `minimax/MiniMax-M2.1` - -**프로 팁:** 긴 컨텍스트(100만 토큰)를 위한 가장 저렴한 옵션입니다! - -### Kimi K2($9/월 정액) - -1. 구독: [Moonshot AI](https://platform.moonshot.ai/) -2. API 키 받기 -3. 대시보드 → API Key 추가 - -**사용:** `kimi/kimi-latest` - -**프로 팁:** 1,000만 토큰에 대해 고정 $9/월 = $0.90/1M 유효 비용! - -</details> - -<details> -<summary><b>🆓 무료 제공업체(긴급 백업)</b></summary> - -### Qoder(OAuth를 통한 5개 무료 모델) - -```bash -Dashboard → Connect Qoder -→ Qoder OAuth login -→ Unlimited usage - -Models: - if/kimi-k2-thinking - if/qwen3-coder-plus - if/glm-4.7 - if/minimax-m2 - if/deepseek-r1 -``` - -### Qwen(장치 코드를 통한 4개의 무료 모델) - -```bash -Dashboard → Connect Qwen -→ Device code authorization -→ Unlimited usage - -Models: - qw/qwen3-coder-plus - qw/qwen3-coder-flash -``` - -### 키로(클로드 프리) - -```bash -Dashboard → Connect Kiro -→ AWS Builder ID or Google/GitHub -→ Unlimited usage - -Models: - kr/claude-sonnet-4.5 - kr/claude-haiku-4.5 -``` - -</details> - -<details> -<summary><b>🎨 콤보 만들기</b></summary> - -### 예시 1: 구독 최대화 → 저렴한 백업 - -``` -Dashboard → Combos → Create New - -Name: premium-coding -Models: - 1. cc/claude-opus-4-6 (Subscription primary) - 2. glm/glm-4.7 (Cheap backup, $0.6/1M) - 3. minimax/MiniMax-M2.1 (Cheapest fallback, $0.20/1M) - -Use in CLI: premium-coding -``` - -### 예시 2: 무료 전용(비용 없음) - -``` -Name: free-combo -Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) - -Cost: $0 forever! -``` - -</details> - -<details> -<summary><b>🔧 CLI 통합</b></summary> - -### 커서 IDE - -``` -Settings → Models → Advanced: - OpenAI API Base URL: http://localhost:20128/v1 - OpenAI API Key: [from OmniRoute dashboard] - Model: cc/claude-opus-4-6 -``` - -### 클로드 코드 - -원클릭 구성을 위해 대시보드의 **CLI 도구** 페이지를 사용하거나 `~/.claude/settings.json`을 수동으로 편집하세요. - -### 코덱스 CLI - -```bash -export OPENAI_BASE_URL="http://localhost:20128" -export OPENAI_API_KEY="your-omniroute-api-key" - -codex "your prompt" -``` - -### 오픈클로 - -**옵션 1 - 대시보드(권장):** - -``` -Dashboard → CLI Tools → OpenClaw → Select Model → Apply -``` - -**옵션 2 - 수동:** `~/.openclaw/openclaw.json` 편집: - -```json -{ - "models": { - "providers": { - "omniroute": { - "baseUrl": "http://127.0.0.1:20128/v1", - "apiKey": "sk_omniroute", - "api": "openai-completions" - } - } - } -} -``` - -> **참고:** OpenClaw는 로컬 OmniRoute에서만 작동합니다. IPv6 확인 문제를 방지하려면 `localhost` 대신 `127.0.0.1`을 사용하세요. - -### 클라인 / 계속 / RooCode - -``` -Settings → API Configuration: - Provider: OpenAI Compatible - Base URL: http://localhost:20128/v1 - API Key: [from OmniRoute dashboard] - Model: if/kimi-k2-thinking -``` - -### 오픈코드 - -**1단계:** OmniRoute를 사용자 지정 공급자로 추가합니다. - -```bash -opencode -/connect -# Select "Other" → Enter ID: "omniroute" → Enter your OmniRoute API key -``` - -**2단계:** 프로젝트 루트에서 `opencode.json`을 생성/편집합니다. - -```json -{ - "$schema": "https://opencode.ai/config.json", - "provider": { - "omniroute": { - "npm": "@ai-sdk/openai-compatible", - "name": "OmniRoute", - "options": { - "baseURL": "http://localhost:20128/v1" - }, - "models": { - "cc/claude-sonnet-4-20250514": { "name": "Claude Sonnet 4" }, - "gg/gemini-2.5-pro": { "name": "Gemini 2.5 Pro" }, - "if/kimi-k2-thinking": { "name": "Kimi K2 (Free)" } - } - } - } -} -``` - -**3단계:** OpenCode에서 모델을 선택합니다. - -```bash -/models -# Select any OmniRoute model from the list -``` - -> **팁:** OmniRoute `/v1/models` 엔드포인트에서 사용 가능한 모델을 `models` 섹션에 추가하세요. OmniRoute 대시보드에서 `provider/model-id` 형식을 사용하세요. - -</details> - ---- - -## 🐛 문제 해결 - -<details> -<summary><b>문제 해결 가이드를 확장하려면 클릭하세요</b></summary> - -**"언어 모델이 메시지를 제공하지 않았습니다"** - -- 공급자 할당량 소진 → 대시보드 할당량 추적기 확인 -- 해결 방법: 콤보 폴백을 사용하거나 더 저렴한 계층으로 전환하세요. - -**비율 제한** - -- 구독 할당량 초과 → GLM/MiniMax로 대체 -- 콤보 추가: `cc/claude-opus-4-6 → glm/glm-4.7 → if/kimi-k2-thinking` - -**OAuth 토큰이 만료되었습니다** - -- OmniRoute에 의해 자동 새로고침 -- 문제가 지속되는 경우: Dashboard → Provider → Reconnect - -**높은 비용** - -- 대시보드 → 비용에서 사용 통계를 확인하세요. -- 기본 모델을 GLM/MiniMax로 전환 -- 중요하지 않은 작업에는 무료 계층(Gemini CLI, Qoder)을 사용합니다. - -**대시보드/API 포트가 잘못되었습니다** - -- `PORT`은 표준 기본 포트(및 기본적으로 API 포트)입니다. -- `API_PORT`은 OpenAI 호환 API 리스너만 재정의합니다. -- `DASHBOARD_PORT`은 대시보드/Next.js 리스너만 재정의합니다. -- `NEXT_PUBLIC_BASE_URL`을 대시보드/공개 URL로 설정합니다(OAuth 콜백용). - -**클라우드 동기화 오류** - -- `BASE_URL`이 실행 중인 인스턴스를 가리키는지 확인합니다. -- `CLOUD_URL`이 예상 클라우드 엔드포인트를 가리키는지 확인하세요. -- `NEXT_PUBLIC_*` 값을 서버 측 값과 일치하도록 유지합니다. - -**첫 번째 로그인이 작동하지 않습니다** - -- `.env`에서 `INITIAL_PASSWORD`을 확인하세요. -- 설정되지 않은 경우 대체 비밀번호는 `123456`입니다. - -**요청 로그 없음** - -- `.env`에 `ENABLE_REQUEST_LOGS=true`을 설정합니다. - -**OpenAI 호환 공급자에 대한 연결 테스트에서 "잘못됨"이 표시됩니다** - -- 많은 공급자가 `/models` 엔드포인트를 노출하지 않습니다. -- OmniRoute v1.0.6+에는 채팅 완료를 통한 대체 검증이 포함되어 있습니다. -- 기본 URL에 `/v1` 접미사가 포함되어 있는지 확인하세요. - -### 🔐 원격 서버의 OAuth - -<a name="oauth-on-a-remote-server"></a> -<a name="oauth-em-servidor-remoto"></a> - -> **⚠️ VPS, Docker 또는 원격 서버에서 OmniRoute를 실행하는 사용자에게 중요** - -#### 원격 서버에서 Antigravity/Gemini CLI OAuth가 실패하는 이유는 무엇입니까? - -**Antigravity** 및 **Gemini CLI** 공급자는 **Google OAuth 2.0**을 사용합니다. Google에서는 OAuth 흐름의 `redirect_uri`이 앱의 Google Cloud Console에 사전 등록된 URI 중 하나와 정확히 일치하도록 요구합니다. - -OmniRoute에 번들로 제공되는 OAuth 자격 증명은 **`localhost`에 대해서만** 등록됩니다. 원격 서버(예: `https://omniroute.myserver.com`)에서 OmniRoute에 액세스하면 Google은 다음을 통한 인증을 거부합니다. - -``` -Error 400: redirect_uri_mismatch -``` - -#### 해결 방법: 자체 OAuth 자격 증명 구성 - -서버의 URI를 사용하여 Google Cloud Console에서 **OAuth 2.0 클라이언트 ID**를 만들어야 합니다. - -#### 단계별 - -**1. Google Cloud Console 열기** - -이동: [https://console.cloud.google.com/apis/credentials](https://console.cloud.google.com/apis/credentials) - -**2. 새 OAuth 2.0 클라이언트 ID 생성** - -- **"+ 자격 증명 만들기"** → **"OAuth 클라이언트 ID"**를 클릭합니다. -- 애플리케이션 유형: **"웹 애플리케이션"** -- 이름: 원하는 것(예: `OmniRoute Remote`) - -**3. 승인된 리디렉션 URI 추가** - -**"승인된 리디렉션 URI"** 필드에 다음을 추가합니다. - -``` -https://your-server.com/callback -``` - -> `your-server.com`을 서버의 도메인 또는 IP로 바꿉니다(필요한 경우 포트 포함(예: `http://45.33.32.156:20128/callback`)). - -**4. 자격 증명 저장 및 복사** - -생성 후 Google은 **클라이언트 ID** 및 **클라이언트 비밀번호**를 표시합니다. - -**5. 환경 변수 설정** - -`.env`(또는 Docker 환경 변수)에서: - -```bash -# For Antigravity: -ANTIGRAVITY_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com -ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-your-secret - -# For Gemini CLI: -GEMINI_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com -GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -``` - -**6. OmniRoute 다시 시작** - -```bash -# npm: -npm run dev - -# Docker: -docker restart omniroute -``` - -**7. 다시 연결해 보세요** - -대시보드 → 공급자 → Antigravity(또는 Gemini CLI) → OAuth - -이제 Google은 `https://your-server.com/callback`로 올바르게 리디렉션됩니다. - ---- - -#### 임시 해결 방법(사용자 지정 자격 증명 없음) - -지금 바로 자격 증명을 설정하고 싶지 않은 경우에도 **수동 URL 흐름**을 사용할 수 있습니다. - -1. OmniRoute는 Google 인증 URL을 엽니다. -2. 승인 후 Google은 `localhost`로 리디렉션을 시도합니다(원격 서버에서는 실패함). -3. 브라우저의 주소 표시줄에서 **전체 URL을 복사**하세요(페이지가 로드되지 않는 경우에도 해당). -4. 해당 URL을 OmniRoute 연결 모달에 표시된 필드에 붙여넣습니다. -5. **"연결"**을 클릭하세요. - -> 이는 리디렉션 페이지 로드 여부에 관계없이 URL의 인증 코드가 유효하기 때문에 작동합니다. - ---- - -<details> -<summary><b>🇧🇷 포르투갈어 버전</b></summary> - -#### OAuth에서 Antigravity/Gemini CLI를 원격 서비스로 사용하려면 어떻게 해야 합니까? - -Os는 **반중력** 및 **Gemini CLI**를 인증하기 위해 **Google OAuth 2.0**을 입증했습니다. O Google exige que a `redirect_uri` usada no fluxo OAuth seja **exatamente** uma das URIs pre-cadastradas no Google Cloud Console do aplicativo. - -OAuth는 OmniRoute에 대한 신용 정보를 포함하지 않으므로 **`localhost`**에 대한 액세스 권한을 갖습니다. Quando você acessa o OmniRoute em um servidor remoto (예: `https://omniroute.meuservidor.com`), o Google rejeita a autenticação com: - -``` -Error 400: redirect_uri_mismatch -``` - -#### 해결책: 개인 정보 보호 OAuth 구성 - -Você precisa criar um **OAuth 2.0 Client ID** no Google Cloud Console com a URI do seu servidor. - -#### 파쏘 아 파소 - -**1. Google Cloud Console에 액세스** - -아브라: [https://console.cloud.google.com/apis/credentials](https://console.cloud.google.com/apis/credentials) - -**2. Crie um novo OAuth 2.0 클라이언트 ID** - -- em 클릭 **"+ 자격 증명 만들기"** → **"OAuth 클라이언트 ID"** -- 적용 분야: **"웹 애플리케이션"** -- 이름: escolha qualquer nome (예: `OmniRoute Remote`) - -**3. 승인된 리디렉션 URI로서의 Adicione** - -아니요 **"승인된 리디렉션 URI"**, 추가: - -``` -https://seu-servidor.com/callback -``` - -> `seu-servidor.com` pelo domínio 또는 IP do seu servidor로 대체합니다(필요한 포트 포함, 예: `http://45.33.32.156:20128/callback`). - -**4. 사본을 자격 증명으로 저장** - -Após criar, o Google morerá o **클라이언트 ID** e o **클라이언트 비밀번호**. - -**5. 다양한 주변 환경으로 구성** - -`.env`(Docker의 주변 환경에 따라 다름)이 없습니다. - -```bash -# Para Antigravity: -ANTIGRAVITY_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com -ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret - -# Para Gemini CLI: -GEMINI_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com -GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -``` - -**6. Reinicie 또는 OmniRoute** - -```bash -# Se usando npm: -npm run dev - -# Se usando Docker: -docker restart omniroute -``` - -**7. Tente conectar novamente** - -대시보드 → 공급자 → Antigravity(또는 Gemini CLI) → OAuth - -Agora는 `https://seu-servidor.com/callback` 및 자동 기능을 통해 Google을 리디렉션합니다. - ---- - -#### 임시 해결 방법(sem configurar credenciais próprias) - -Se não quiser criar credenciais próprias agora, ainda é possível usar o fluxo **manual de URL**: - -1. OmniRoute는 Google 자동 생성 URL을 확인합니다. -2. Após você autorizar, o Google tentará redirectionar para `localhost` (que falha no servidor remoto) -3. **URL 복사 완료** da barra de endereço do seu browser (mesmo que a página não carregue) -4. Cole essa URL no campo que aparece no modal de conexão do OmniRoute -5. Clique em **"연결"** - -> 이 해결 방법은 URL을 통해 자동으로 코드를 확인하거나 독립적으로 리디렉션할 수 있도록 하는 것입니다. - -</details> - ---- - -</details> - -## 🛠️ 기술 스택 - -<details> -<summary><b>기술 스택 세부정보를 확장하려면 클릭하세요.</b></summary> - -- **런타임**: Node.js 18–22 LTS(⚠️ Node.js 24+는 **지원되지 않습니다** — `better-sqlite3` 네이티브 바이너리는 호환되지 않습니다) -- **언어**: TypeScript 5.9 — `src/` 및 `open-sse/`에서 **100% TypeScript**(v2.0 이후 핵심 모듈에서는 `any`이 0임) -- **프레임워크**: Next.js 16 + React 19 + Tailwind CSS 4 -- **데이터베이스**: LowDB(JSON) + SQLite(도메인 상태 + 프록시 로그 + MCP 감사 + 라우팅 결정) -- **스키마**: Zod(MCP 도구 I/O 검증, API 계약) -- **프로토콜**: MCP(stdio/HTTP) + A2A v0.3(JSON-RPC 2.0 + SSE) -- **스트리밍**: 서버에서 보낸 이벤트(SSE) -- **인증**: OAuth 2.0(PKCE) + JWT + API 키 + MCP 범위 승인 -- **테스트**: Node.js 테스트 실행기 + Vitest(단위, 통합, E2E를 포함한 900개 이상의 테스트) -- **CI/CD**: GitHub Actions(자동 npm 게시 + 출시 시 Docker Hub) -- **웹사이트**: [omniroute.online](https://omniroute.online) -- **패키지**: [npmjs.com/package/omniroute](https://www.npmjs.com/package/omniroute) -- **도커**: [hub.docker.com/r/diegosouzapw/omniroute](https://hub.docker.com/r/diegosouzapw/omniroute) -- **복원력**: 회로 차단기, 지수 백오프, 천둥 방지 무리, TLS 스푸핑, 자동 콤보 자가 치유 - -</details> - ---- - -## 📖 문서 - -| 문서 | 설명 | -| ---------------------------------------------- | ------------------------------------------------ | -| [User Guide](docs/USER_GUIDE.md) | 공급자, 콤보, CLI 통합, 배포 | -| [API Reference](docs/API_REFERENCE.md) | 예제가 포함된 모든 엔드포인트 | -| [MCP Server](open-sse/mcp-server/README.md) | 16 MCP tools, IDE configs, Python/TS/Go clients | -| [A2A Server](src/lib/a2a/README.md) | JSON-RPC 2.0 프로토콜, 스킬, 스트리밍, 작업 관리 | -| [Auto-Combo Engine](docs/auto-combo.md) | 6단계 채점, 모드 팩, 자가 치유 | -| [Troubleshooting](docs/TROUBLESHOOTING.md) | 일반적인 문제 및 해결 방법 | -| [Architecture](docs/ARCHITECTURE.md) | 시스템 아키텍처 및 내부 | -| [Contributing](CONTRIBUTING.md) | 개발 설정 및 지침 | -| [OpenAPI Spec](docs/openapi.yaml) | OpenAPI 3.0 사양 | -| [Security Policy](SECURITY.md) | 취약점 보고 및 보안 관행 | -| [VM Deployment](docs/VM_DEPLOYMENT_GUIDE.md) | 전체 가이드: VM + nginx + Cloudflare 설정 | -| [Features Gallery](docs/FEATURES.md) | 스크린샷을 포함한 시각적 대시보드 둘러보기 | -| [Release Checklist](docs/RELEASE_CHECKLIST.md) | 출시 전 유효성 검사 단계 | - ---- - -## 🗺️ 로드맵 - -OmniRoute에는 여러 개발 단계에 걸쳐 **210개 이상의 기능이 계획되어 있습니다**. 주요 영역은 다음과 같습니다. - -| 카테고리 | 계획된 기능 | 하이라이트 | -| --------------------------- | ----------- | ------------------------------------------------------------------------------ | -| 🧠 **라우팅 및 인텔리전스** | 25세 이상 | 최저 대기 시간 라우팅, 태그 기반 라우팅, 실행 전 할당량, P2C 계정 선택 | -| 🔒 **보안 및 규정 준수** | 20세 이상 | SSRF 강화, 자격 증명 클로킹, 엔드포인트당 속도 제한, 관리 키 범위 지정 | -| 📊 **관측성** | 15세 이상 | OpenTelemetry 통합, 실시간 할당량 모니터링, 모델별 비용 추적 | -| 🔄 **공급자 통합** | 20세 이상 | 동적 모델 레지스트리, 공급자 쿨다운, 다중 계정 Codex, Copilot 할당량 구문 분석 | -| ⚡ **성능** | 15세 이상 | 듀얼 캐시 레이어, 프롬프트 캐시, 응답 캐시, 스트리밍 Keepalive, 배치 API | -| 🌐 **생태계** | 10세 이상 | WebSocket API, 구성 핫 리로드, 분산 구성 저장소, 상용 모드 | - -### 🔜 출시 예정 - -- 🔗 **OpenCode 통합** — OpenCode AI 코딩 IDE에 대한 기본 공급자 지원 -- 🔗 **TRAE 통합** — TRAE AI 개발 프레임워크를 완벽하게 지원 -- 📦 **Batch API** — 대량 요청에 대한 비동기식 일괄 처리 -- 🎯 **태그 기반 라우팅** — 사용자 정의 태그 및 메타데이터를 기반으로 요청 라우팅 -- 💰 **최저 비용 전략** — 가장 저렴한 제공업체를 자동으로 선택합니다. - -> 📝 [**OMNI_TOKEN_342**](docs/new-features/)에서 사용 가능한 전체 기능 사양(217개 세부 사양) - ---- - -## 👥 기여자 - -[![Contributors](https://contrib.rocks/image?repo=diegosouzapw/OmniRoute&max=100&columns=20&anon=1)](https://github.com/diegosouzapw/OmniRoute/graphs/contributors) - -### 기여 방법 - -1. 저장소 포크 -2. 기능 분기 생성(`git checkout -b feature/amazing-feature`) -3. 변경 사항을 커밋합니다(`git commit -m 'Add amazing feature'`). -4. 브랜치(`git push origin feature/amazing-feature`)로 푸시 -5. 풀 리퀘스트 열기 - -자세한 지침은 [CONTRIBUTING.md](CONTRIBUTING.md)을 참조하세요. - -### 새 버전 출시 - -```bash -# Create a release — npm publish happens automatically -gh release create v2.0.0 --title "v2.0.0" --generate-notes -``` - ---- - -## 📊 스타 히스토리 - -## 시간이 지남에 따라 스타게이저가 됨 - -## [![Stargazers over time](https://starchart.cc/diegosouzapw/OmniRoute.svg?variant=adaptive)](https://starchart.cc/diegosouzapw/OmniRoute) - -## 🙏 감사의 말씀 - -이 포크에 영감을 준 원본 프로젝트인 **[decolua](https://github.com/decolua)**의 **[9router](https://github.com/decolua/9router)**에게 특별히 감사드립니다. OmniRoute는 추가 기능, 다중 모드 API 및 전체 TypeScript 재작성을 통해 놀라운 기반을 구축합니다. - -이 JavaScript 포트에 영감을 준 최초의 Go 구현인 **[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)**에게 특별히 감사드립니다. - ---- - -## 📄 라이센스 - -MIT 라이선스 - 자세한 내용은 [LICENSE](LICENSE)을 참조하세요. - ---- - -<div align="center"> - <sub>연중무휴</sub>을 코딩하는 개발자를 위해 ❤️으로 구축됨 - <br/> - <sub><a href="https://omniroute.online">omniroute.online</a></sub> -</div> -<!-- 커뮤니티 Q&A를 위한 GitHub 토론 활성화 --> +👉 **[Read the Documentation here](docs/i18n/ko/README.md)** diff --git a/README.ms.md b/README.ms.md index 3c1b28b926..c621bd73e0 100644 --- a/README.ms.md +++ b/README.ms.md @@ -1,2077 +1,5 @@ -# 🚀 OmniRoute — Gerbang AI Percuma +# 🌐 OmniRoute (ms) -### Jangan sekali-kali berhenti mengekod. Penghalaan pintar ke **model AI PERCUMA & kos rendah** dengan sandaran automatik. +The documentation has been formalized and moved to our centralized i18n structure. -_Proksi API universal anda — satu titik akhir, 67+ pembekal, masa henti sifar. Kini dengan orkestra ejen **MCP & A2A**._ - -**Penyelesaian Sembang • Pembenaman • Penjanaan Imej • Video • Muzik • Audio • Kedudukan Semula • **Carian Web** • Pelayan MCP • Protokol A2A • 100% TypeScript** - ---- - -<div align="center"> - -[![npm version](https://img.shields.io/npm/v/omniroute?color=cb3837&logo=npm)](https://www.npmjs.com/package/omniroute) -[![npm downloads](https://img.shields.io/npm/dm/omniroute?color=cb3837&logo=npm&label=npm%20downloads)](https://www.npmjs.com/package/omniroute) -[![Docker Hub](https://img.shields.io/docker/v/diegosouzapw/omniroute?label=Docker%20Hub&logo=docker&color=2496ED)](https://hub.docker.com/r/diegosouzapw/omniroute) -[![Docker Pulls](https://img.shields.io/docker/pulls/diegosouzapw/omniroute?logo=docker&color=2496ED&label=docker%20pulls)](https://hub.docker.com/r/diegosouzapw/omniroute) -[![License](https://img.shields.io/github/license/diegosouzapw/OmniRoute)](https://github.com/diegosouzapw/OmniRoute/blob/main/LICENSE) -[![Website](https://img.shields.io/badge/Website-omniroute.online-blue?logo=google-chrome&logoColor=white)](https://omniroute.online) -[![WhatsApp](https://img.shields.io/badge/WhatsApp-Community-25D366?logo=whatsapp&logoColor=white)](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) - -[🌐 Website](https://omniroute.online) • [🚀 Quick Start](#-quick-start) • [💡 Features](#-key-features) • [📖 Docs](#-documentation) • [💰 Pricing](#-pricing-at-a-glance) • [💬 WhatsApp](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) - -</div> - -🌐 **Terdapat dalam:** 🇺🇸 [English](README.md) | 🇧🇷 [Português (Brasil)](docs/i18n/pt-BR/README.md) | 🇪🇸 [Español](docs/i18n/es/README.md) | 🇫🇷 [Français](docs/i18n/fr/README.md) | 🇮🇹 [Italiano](docs/i18n/it/README.md) | 🇷🇺 [Русский](docs/i18n/ru/README.md) | 🇨🇳 [中文 (简体)](docs/i18n/zh-CN/README.md) | 🇩🇪 [Deutsch](docs/i18n/de/README.md) | 🇮🇳 [हिन्दी](docs/i18n/in/README.md) | 🇹🇭 [ไทย](docs/i18n/th/README.md) | 🇺🇦 [Українська](docs/i18n/uk-UA/README.md) | 🇸🇦 [العربية](docs/i18n/ar/README.md) | 🇯🇵 [日本語](docs/i18n/ja/README.md) | 🇻🇳 [Tiếng Việt](docs/i18n/vi/README.md) | 🇧🇬 [Български](docs/i18n/bg/README.md) | 🇩🇰 [Dansk](docs/i18n/da/README.md) | 🇫🇮 [Suomi](docs/i18n/fi/README.md) | 🇮🇱 [עברית](docs/i18n/he/README.md) | 🇭🇺 [Magyar](docs/i18n/hu/README.md) | 🇮🇩 [Bahasa Indonesia](docs/i18n/id/README.md) | 🇰🇷 [한국어](docs/i18n/ko/README.md) | 🇲🇾 [Bahasa Melayu](docs/i18n/ms/README.md) | 🇳🇱 [Nederlands](docs/i18n/nl/README.md) | 🇳🇴 [Norsk](docs/i18n/no/README.md) | 🇵🇹 [Português (Portugal)](docs/i18n/pt/README.md) | 🇷🇴 [Română](docs/i18n/ro/README.md) | 🇵🇱 [Polski](docs/i18n/pl/README.md) | 🇸🇰 [Slovenčina](docs/i18n/sk/README.md) | 🇸🇪 [Svenska](docs/i18n/sv/README.md) | 🇵🇭 [Filipino](docs/i18n/phi/README.md) | 🇨🇿 [Čeština](docs/i18n/cs/README.md) - ---- - -## 🆕 Apa yang Baharu dalam v3.0.0 - -> **Menaik taraf daripada v2.9.5?** — Lihat [full CHANGELOG](CHANGELOG.md#300--2026-03-22-release-candidate--not-yet-merged-to-main) untuk semua perubahan. - -| Kawasan | Tukar | -| ------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 🔒 **Keselamatan CodeQL** | Memperbaiki 10+ amaran CodeQL: polinomial-redos, tidak selamat-rawak, pemulihan suntikan shell | -| ✅ **Pengesahan Laluan** | Semua 176 laluan API kini disahkan dengan skema Zod + `validateBody()` — CI `check:route-validation:t06` pas | -| 🐛 **omniModel Tag Bocor** | Teg dalaman `<omniModel>` tidak lagi bocor kepada pelanggan dalam respons penstriman SSE (#585) | -| 🔑 **API Kunci Berdaftar** | Auto-peruntukkan kunci API melalui `POST /api/v1/registered-keys` dengan penguatkuasaan kuota setiap pembekal/akaun, idempotency, storan SHA-256 dan pelaporan isu GitHub pilihan | -| 👁️ **Scoped API Key Reveal** 🆕 | Opt-in recovery of API keys via `ALLOW_API_KEY_REVEAL` | -| 🎨 **Ikon Pembekal** | 130+ logo pembekal melalui `@lobehub/icons` (SVG) dengan PNG → rantaian sandaran generik | -| 🔄 **Model Auto-Segerak** | Penjadual 24 jam dan togol UI manual untuk menyegerakkan senarai model bagi pembekal terbina dalam dan tersuai serasi OpenAI | -| 🌐 **OpenCode Zen/Go** | Dua pembekal baharu daripada @kang-heewon melalui PR #530: peringkat percuma + peringkat langganan melalui `OpencodeExecutor` | -| 🐛 **Gemini CLI OAuth** | Ralat boleh diambil tindakan apabila `GEMINI_OAUTH_CLIENT_SECRET` tiada dalam Docker (adalah ralat Google samar) | -| 🐛 **Konfigurasi OpenCode** | `saveOpenCodeConfig()` kini menulis TOML dengan betul kepada `XDG_CONFIG_HOME` | -| 🐛 **Timpa model disematkan** | `body.model` ditetapkan dengan betul kepada `pinnedModel` pada perlindungan konteks-cache | -| 🐛 **Gelung Codex/Claude** | `tool_result` blok kini ditukar kepada teks untuk menghentikan gelung tak terhingga | -| 🐛 **Ubah hala log masuk** | Log masuk tidak lagi membeku selepas melangkau persediaan kata laluan | -| 🐛 **Laluan Windows** | Laluan MSYS2/Git-Bash (`/c/...`) dinormalkan kepada `C:\...` secara automatik | - ---- - -## 🖼️ Papan Pemuka Utama - -<div align="center"> - <img src="./docs/screenshots/MainOmniRoute.png" alt="OmniRoute Dashboard" width="800"/> -</div> - ---- - -## 📸 Pratonton Papan Pemuka - -<details> -<summary><b>Klik untuk melihat tangkapan skrin papan pemuka</b></summary> - -| Halaman | Tangkapan skrin | -| ------------------ | ------------------------------------------------- | -| **Pembekal** | ![Providers](docs/screenshots/01-providers.png) | -| **Kombo** | ![Combos](docs/screenshots/02-combos.png) | -| **Analisis** | ![Analytics](docs/screenshots/03-analytics.png) | -| **Kesihatan** | ![Health](docs/screenshots/04-health.png) | -| **Penterjemah** | ![Translator](docs/screenshots/05-translator.png) | -| **Tetapan** | ![Settings](docs/screenshots/06-settings.png) | -| **Alat CLI** | ![CLI Tools](docs/screenshots/07-cli-tools.png) | -| **Log Penggunaan** | ![Usage](docs/screenshots/08-usage.png) | -| **Titik tamat** | ![Endpoints](docs/screenshots/09-endpoint.png) | - -</details> - ---- - -### 🤖 Pembekal AI percuma untuk ejen pengekodan kegemaran anda - -_Sambungkan mana-mana alat IDE atau CLI berkuasa AI melalui OmniRoute — get laluan API percuma untuk pengekodan tanpa had._ - - <table> - <tr> - <td align="center" width="110"> - <a href="https://github.com/openclaw/openclaw"> - <img src="./public/providers/openclaw.png" alt="OpenClaw" width="48"/><br/> - <b>OpenClaw</b> - </a><br/> - <sub>⭐ 205K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/HKUDS/nanobot"> - <img src="./public/providers/nanobot.png" alt="NanoBot" width="48"/><br/> - <b>NanoBot</b> - </a><br/> - <sub>⭐ 20.9K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/sipeed/picoclaw"> - <img src="./public/providers/picoclaw.jpg" alt="PicoClaw" width="48"/><br/> - <b>PicoClaw</b> - </a><br/> - <sub>⭐ 14.6K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/zeroclaw-labs/zeroclaw"> - <img src="./public/providers/zeroclaw.png" alt="ZeroClaw" width="48"/><br/> - <b>ZeroClaw</b> - </a><br/> - <sub>⭐ 9.9K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/nearai/ironclaw"> - <img src="./public/providers/ironclaw.png" alt="IronClaw" width="48"/><br/> - <b>IronClaw</b> - </a><br/> - <sub>⭐ 2.1K</sub> - </td> - </tr> - <tr> - <td align="center" width="110"> - <a href="https://github.com/anomalyco/opencode"> - <img src="./public/providers/opencode.svg" alt="OpenCode" width="48"/><br/> - <b>OpenCode</b> - </a><br/> - <sub>⭐ 106K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/openai/codex"> - <img src="./public/providers/codex.png" alt="Codex CLI" width="48"/><br/> - <b>Codex CLI</b> - </a><br/> - <sub>⭐ 60.8K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/anthropics/claude-code"> - <img src="./public/providers/claude.png" alt="Claude Code" width="48"/><br/> - <b>Claude Code</b> - </a><br/> - <sub>⭐ 67.3K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/google-gemini/gemini-cli"> - <img src="./public/providers/gemini-cli.png" alt="Gemini CLI" width="48"/><br/> - <b>Gemini CLI</b> - </a><br/> - <sub>⭐ 94.7K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/Kilo-Org/kilocode"> - <img src="./public/providers/kilocode.png" alt="Kilo Code" width="48"/><br/> - <b>Kilo Code</b> - </a><br/> - <sub>⭐ 15.5K</sub> - </td> - </tr> - </table> - -<sub>📡 Semua ejen bersambung melalui <code>http://localhost:20128/v1</code> atau <code>http://cloud.omniroute.online/v1</code> atau model <code>http://cloud.omniroute.online/v1__OMNI_TOKEN — un_config dan_4 kuota</sub> - ---- - -## 🤔 Mengapa OmniRoute? - -**Berhenti membazir wang dan mencapai had:** - -- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Kuota langganan tamat tempoh tidak digunakan setiap bulan -- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Had kadar menghalang anda pertengahan pengekodan -- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> API Mahal ($20-50/bulan bagi setiap pembekal) -- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Pertukaran manual antara pembekal - -**OmniRoute menyelesaikan ini:** - -- ✅ **Maksimumkan langganan** - Jejaki kuota, gunakan setiap bit sebelum ditetapkan semula -- ✅ **Auto sandaran** - Langganan → Kunci API → Murah → Percuma, masa henti sifar -- ✅ **Berbilang akaun** - Round-robin antara akaun bagi setiap pembekal -- ✅ **Universal** - Berfungsi dengan Kod Claude, Codex, Gemini CLI, Kursor, Cline, OpenClaw, sebarang alat CLI - ---- - -## 📧 Sokongan - -> 💬 **Sertai komuniti kami!** [WhatsApp Group](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) — Dapatkan bantuan, kongsi petua dan kekal kemas kini. - -- **Laman web**: [omniroute.online](https://omniroute.online) -- **GitHub**: [github.com/diegosouzapw/OmniRoute](https://github.com/diegosouzapw/OmniRoute) -- **Isu**: [github.com/diegosouzapw/OmniRoute/issues](https://github.com/diegosouzapw/OmniRoute/issues) -- **WhatsApp**: [Community Group](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) -- **Menyumbang**: Lihat [CONTRIBUTING.md](CONTRIBUTING.md), buka PR atau pilih `good first issue` -- **Projek Asal**: [9router by decolua](https://github.com/decolua/9router) - -### 🐛 Melaporkan Pepijat? - -Apabila membuka isu, sila jalankan arahan maklumat sistem dan lampirkan fail yang dijana: - -```bash -npm run system-info -``` - -Ini menjana `system-info.txt` dengan versi Node.js anda, versi OmniRoute, butiran OS, alat CLI yang dipasang (qoder, gemini, claude, codex, antigravity, droid, dll.), status Docker/PM2 dan pakej sistem — semua yang kami perlukan untuk mengeluarkan semula isu anda dengan cepat. Lampirkan fail terus pada isu GitHub anda. - ---- - -## 🔄 Cara Ia Berfungsi - -``` -┌─────────────┐ -│ Your CLI │ (Claude Code, Codex, Gemini CLI, OpenClaw, Cursor, Cline...) -│ Tool │ -└──────┬──────┘ - │ http://localhost:20128/v1 - ↓ -┌─────────────────────────────────────────┐ -│ OmniRoute (Smart Router) │ -│ • Format translation (OpenAI ↔ Claude) │ -│ • Quota tracking + Embeddings + Images │ -│ • Auto token refresh │ -└──────┬──────────────────────────────────┘ - │ - ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex, Gemini CLI - │ ↓ quota exhausted - ├─→ [Tier 2: API KEY] DeepSeek, Groq, xAI, Mistral, NVIDIA NIM, etc. - │ ↓ budget limit - ├─→ [Tier 3: CHEAP] GLM ($0.6/1M), MiniMax ($0.2/1M) - │ ↓ budget limit - └─→ [Tier 4: FREE] Qoder, Qwen, Kiro (unlimited) - -Result: Never stop coding, minimal cost -``` - ---- - -## 🎯 Perkara yang Selesaikan OmniRoute — 30 Titik Sakit Nyata & Kes Penggunaan - -> **Setiap pembangun yang menggunakan alatan AI menghadapi masalah ini setiap hari.** OmniRoute dibina untuk menyelesaikan kesemuanya — daripada lebihan kos kepada blok serantau, daripada aliran OAuth yang rosak kepada operasi protokol dan kebolehmerhatian perusahaan. - -<details> -<summary><b>💸 1. "Saya membayar untuk langganan yang mahal tetapi masih terganggu oleh had"</b></summary> - -Pembangun membayar $20–200/bulan untuk Claude Pro, Codex Pro atau GitHub Copilot. Walaupun membayar, kuota mempunyai siling — 5j penggunaan, had mingguan atau had kadar seminit. Sesi pertengahan pengekodan, pembekal berhenti bertindak balas dan pembangun kehilangan aliran dan produktiviti. - -**Cara OmniRoute menyelesaikannya:** - -- **Smart 4-Tier Fallback** — Jika kuota langganan habis, diubah hala secara automatik ke API Key → Murah → Percuma tanpa campur tangan manual -- **Penjejakan Kuota Masa Nyata** — Menunjukkan penggunaan token dalam masa nyata dengan kira detik tetapan semula (5j, harian, mingguan) -- **Sokongan Berbilang Akaun** — Berbilang akaun bagi setiap pembekal dengan auto round-robin — apabila satu kehabisan, beralih kepada yang seterusnya -- **Kombo Tersuai** — Rantaian sandaran yang boleh disesuaikan dengan 6 strategi pengimbangan (isi dahulu, round-robin, P2C, rawak, paling kurang digunakan, dioptimumkan kos) -- **Kuota Perniagaan Codex** — Pemantauan kuota ruang kerja Perniagaan/Pasukan terus dalam papan pemuka - -</details> - -<details> -<summary><b>🔌 2. "Saya perlu menggunakan berbilang pembekal tetapi setiap satu mempunyai API yang berbeza"</b></summary> - -OpenAI menggunakan satu format, Claude (Anthropic) menggunakan satu lagi, Gemini satu lagi. Jika pembangun ingin menguji model daripada pembekal yang berbeza atau sandaran antara mereka, mereka perlu mengkonfigurasi semula SDK, menukar titik akhir, menangani format yang tidak serasi. Pembekal tersuai (FriendLI, NIM) mempunyai titik akhir model bukan standard. - -**Cara OmniRoute menyelesaikannya:** - -- **Titik Akhir Disatukan** — Satu `http://localhost:20128/v1` berfungsi sebagai proksi untuk semua 67+ pembekal -- **Format Terjemahan** — Automatik dan telus: OpenAI ↔ Claude ↔ Gemini ↔ Responses API -- **Sanitization Response** — Mencabut medan bukan standard (`x_groq`, `usage_breakdown`, `service_tier`) yang memecahkan OpenAI SDK v1.83+ -- **Penormalan Peranan** — Menukar `developer` → `system` untuk penyedia bukan OpenAI; `system` → `user` untuk GLM/ERNIE -- **Think Tag Extraction** — Mengekstrak `<think>` menyekat daripada model seperti DeepSeek R1 ke dalam standard `reasoning_content` -- **Output Berstruktur untuk Gemini** — `json_schema` → `responseMimeType`/`responseSchema` penukaran automatik -- **`stream` lalai kepada `false`** — Menjajarkan dengan spesifikasi OpenAI, mengelakkan SSE yang tidak dijangka dalam Python/Rust/Go SDK - -</details> - -<details> -<summary><b>🌐 3. "Pembekal AI saya menyekat wilayah/negara saya"</b></summary> - -Penyedia seperti OpenAI/Codex menyekat akses daripada kawasan geografi tertentu. Pengguna mendapat ralat seperti `unsupported_country_region_territory` semasa sambungan OAuth dan API. Ini amat mengecewakan bagi pemaju dari negara membangun. - -**Cara OmniRoute menyelesaikannya:** - -- **Konfigurasi Proksi 3 Tahap** — Proksi boleh dikonfigurasikan pada 3 peringkat: global (semua trafik), setiap pembekal (satu pembekal sahaja) dan setiap sambungan/kunci -- **Lencana Proksi Berkod Warna** — Penunjuk visual: 🟢 proksi global, 🟡 proksi pembekal, 🔵 proksi sambungan, sentiasa menunjukkan IP -- **Pertukaran Token OAuth Melalui Proksi** — Aliran OAuth juga melalui proksi, menyelesaikan `unsupported_country_region_territory` -- **Ujian Sambungan melalui Proksi** — Ujian sambungan menggunakan proksi yang dikonfigurasikan (tiada lagi pintasan langsung) -- **Sokongan SOCKS5** — Sokongan proksi SOCKS5 penuh untuk penghalaan keluar -- **TLS Fingerprint Spoofing** — Cap jari TLS seperti penyemak imbas melalui `wreq-js` untuk memintas pengesanan bot -- **🔏 Padanan Cap Jari CLI** — Menyusun semula pengepala dan medan badan agar sepadan dengan tandatangan binari CLI asli, secara drastik mengurangkan risiko pembenderaan akaun. IP proksi dikekalkan — anda mendapat kedua-dua penyamaran **dan** IP secara serentak - -</details> - -<details> -<summary><b>🆓 4. "Saya mahu menggunakan AI untuk pengekodan tetapi saya tidak mempunyai wang"</b></summary> - -Tidak semua orang boleh membayar $20–200/bulan untuk langganan AI. Pelajar, pembangun dari negara baru muncul, penggemar dan pekerja bebas memerlukan akses kepada model berkualiti pada kos sifar. - -**Cara OmniRoute menyelesaikannya:** - -- **Pembekal Peringkat Percuma Terbina dalam** — Sokongan asli untuk penyedia percuma 100%: Qoder (5 model tanpa had melalui OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 model tanpa had: qwender3-coder3,-coplus qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID secara percuma), Gemini CLI (180K token/bulan percuma) -- **Ollama Cloud** — Model Ollama dihoskan awan di `api.ollama.com` dengan peringkat "Penggunaan cahaya" percuma; gunakan awalan `ollamacloud/<model>` -- **Kombo Percuma-Sahaja** — Rantaian `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/bulan tanpa masa berhenti sifar -- **Akses Percuma NVIDIA NIM** — ~40 RPM dev-forever akses percuma kepada 70+ model di build.nvidia.com (peralihan daripada kredit kepada had kadar tulen) -- **Strategi Dioptimumkan Kos** — Strategi penghalaan yang secara automatik memilih pembekal yang tersedia paling murah - -</details> - -<details> -<summary><b>🔒 5. "Saya perlu melindungi gerbang AI saya daripada akses tanpa kebenaran"</b></summary> - -Apabila mendedahkan get laluan AI kepada rangkaian (LAN, VPS, Docker), sesiapa sahaja yang mempunyai alamat boleh menggunakan token/kuota pembangun. Tanpa perlindungan, API terdedah kepada penyalahgunaan, suntikan segera dan penyalahgunaan. - -**Cara OmniRoute menyelesaikannya:** - -- **Pengurusan Kunci API** — Penjanaan, penggiliran dan skop setiap pembekal dengan halaman `/dashboard/api-manager` khusus -- **Kebenaran Tahap Model** — Hadkan kunci API kepada model tertentu (`openai/*`, corak kad bebas), dengan Togol Benarkan Semua/Sekat -- **Perlindungan Titik Akhir API** — Memerlukan kunci untuk `/v1/models` dan menyekat penyedia tertentu daripada penyenaraian -- **Auth Guard + CSRF Protection** — Semua laluan papan pemuka dilindungi dengan `withAuth` middleware + token CSRF -- **Penghad Kadar** — Pengehadan kadar Per-IP dengan tetingkap boleh dikonfigurasikan -- **Penapisan IP** — Senarai Benar/senarai sekat untuk kawalan akses -- **Pengawal Suntikan Segera** — Pensanitasi terhadap corak segera yang berniat jahat -- **Penyulitan AES-256-GCM** — Bukti kelayakan disulitkan semasa rehat - -</details> - -<details> -<summary><b>🛑 6. "Pembekal saya gagal dan saya kehilangan aliran pengekodan saya"</b></summary> - -Pembekal AI boleh menjadi tidak stabil, mengembalikan ralat 5xx atau mencapai had kadar sementara. Jika pembangun bergantung pada penyedia tunggal, mereka akan terganggu. Tanpa pemutus litar, percubaan semula berulang boleh ranap aplikasi. - -**Cara OmniRoute menyelesaikannya:** - -- **Pemutus Litar bagi setiap model** — Auto buka/tutup dengan ambang boleh dikonfigurasikan dan cooldown (Tertutup/Buka/Separuh Terbuka), berskop setiap model untuk mengelakkan blok berlatarkan -- **Penyingkiran Eksponen** — Kelewatan percubaan semula progresif -- **Kawanan Anti Gemuruh** — Mutex + perlindungan semafor terhadap ribut percubaan semula serentak -- **Kombo Rantai Sandar** — Jika pembekal utama gagal, secara automatik jatuh melalui rantaian tanpa campur tangan -- **Pemutus Litar Kombo** — Lumpuhkan automatik pembekal yang gagal dalam rantaian kombo -- **Papan Pemuka Kesihatan** — Pemantauan masa aktif, keadaan pemutus litar, penguncian, statistik cache, kependaman p50/p95/p99 - -</details> - -<details> -<summary><b>🔧 7. "Mengkonfigurasi setiap alat AI adalah membosankan dan berulang"</b></summary> - -Pembangun menggunakan Kursor, Kod Claude, Codex CLI, OpenClaw, Gemini CLI, Kod Kilo... Setiap alat memerlukan konfigurasi yang berbeza (titik akhir API, kunci, model). Mengkonfigurasi semula apabila menukar pembekal atau model adalah membuang masa. - -**Cara OmniRoute menyelesaikannya:** - -- **Papan Pemuka Alat CLI** — Halaman khusus dengan persediaan satu klik untuk Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline -- **GitHub Copilot Config Generator** — Menghasilkan `chatLanguageModels.json` untuk Kod VS dengan pemilihan model pukal -- **Onboarding Wizard** — Persediaan 4 langkah berpandu untuk pengguna kali pertama -- **Satu titik akhir, semua model** — Konfigurasikan `http://localhost:20128/v1` sekali, akses 67+ pembekal - -</details> - -<details> -<summary><b>🔑 8. "Menguruskan token OAuth daripada berbilang pembekal adalah neraka"</b></summary> - -Kod Claude, Codex, Gemini CLI, Copilot — semuanya menggunakan OAuth 2.0 dengan token tamat tempoh. Pembangun perlu sentiasa mengesahkan semula, menangani `client_secret is missing`, `redirect_uri_mismatch` dan kegagalan pada pelayan jauh. OAuth pada LAN/VPS amat bermasalah. - -**Cara OmniRoute menyelesaikannya:** - -- **Muat Semula Token Auto** — Token OAuth dimuat semula di latar belakang sebelum tamat tempoh -- **OAuth 2.0 (PKCE) Terbina dalam** — Aliran automatik untuk Kod Claude, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder -- **OAuth Berbilang Akaun** — Berbilang akaun bagi setiap pembekal melalui pengekstrakan token JWT/ID -- **OAuth LAN/Remote Fix** — Pengesanan IP peribadi untuk `redirect_uri` + mod URL manual untuk pelayan jauh -- **OAuth Behind Nginx** — Menggunakan `window.location.origin` untuk keserasian proksi terbalik -- **Panduan OAuth Jauh** — Panduan langkah demi langkah untuk kelayakan Google Cloud pada VPS/Docker - -</details> - -<details> -<summary><b>📊 9. "Saya tidak tahu berapa banyak yang saya belanjakan atau di mana"</b></summary> - -Pembangun menggunakan berbilang penyedia berbayar tetapi tidak mempunyai pandangan bersatu tentang perbelanjaan. Setiap pembekal mempunyai papan pemuka pengebilan sendiri, tetapi tiada paparan disatukan. Kos yang tidak dijangka boleh bertimbun. - -**Cara OmniRoute menyelesaikannya:** - -- **Papan Pemuka Analitis Kos** — Penjejakan kos per-token dan pengurusan belanjawan bagi setiap pembekal -- **Had Belanjawan setiap Peringkat** — Siling perbelanjaan setiap peringkat yang mencetuskan sandaran automatik -- **Konfigurasi Harga Per-Model** — Harga boleh dikonfigurasikan bagi setiap model -- **Statistik Penggunaan Setiap Kunci API** — Kiraan permintaan dan cap masa yang terakhir digunakan setiap kunci -- **Papan Pemuka Analitik** — Kad statistik, carta penggunaan model, jadual pembekal dengan kadar kejayaan dan kependaman - -</details> - -<details> -<summary><b>🐛 10. "Saya tidak dapat mendiagnosis ralat dan masalah dalam panggilan AI"</b></summary> - -Apabila panggilan gagal, pembangun tidak tahu sama ada ia adalah had kadar, token tamat tempoh, format yang salah atau ralat pembekal. Log berpecah-belah merentasi terminal yang berbeza. Tanpa pemerhatian, penyahpepijatan adalah percubaan-dan-ralat. - -**Cara OmniRoute menyelesaikannya:** - -- **Papan Pemuka Log Bersatu** — 4 tab: Log Permintaan, Log Proksi, Log Audit, Konsol -- **Pemapar Log Konsol** — Pemapar gaya terminal masa nyata dengan tahap berkod warna, tatal automatik, carian, penapis -- **Log Proksi SQLite** — Log berterusan yang bertahan dimulakan semula -- **Taman Permainan Penterjemah** — 4 mod nyahpepijat: Taman Permainan (terjemahan format), Penguji Sembang (perjalanan pergi balik), Bangku Ujian (batch), Monitor Langsung (masa nyata) -- **Permintaan Telemetri** — kependaman p50/p95/p99 + pengesanan X-Request-Id -- **Pengelogan Berasaskan Fail dengan Putaran** — Pemintas konsol menangkap segala-galanya ke log JSON dengan putaran berasaskan saiz -- **Laporan Maklumat Sistem** — `npm run system-info` menjana `system-info.txt` dengan persekitaran penuh anda (Versi Nod, versi OmniRoute, OS, alatan CLI, status Docker/PM2). Lampirkannya apabila melaporkan isu untuk percubaan segera. - -</details> - -<details> -<summary><b>🏗️ 11. "Menyedia dan menyelenggara gerbang adalah rumit"</b></summary> - -Memasang, mengkonfigurasi dan menyelenggara proksi AI merentas persekitaran yang berbeza (tempatan, VPS, Docker, awan) adalah intensif buruh. Masalah seperti laluan berkod keras, `EACCES` pada direktori, konflik port dan binaan merentas platform menambahkan geseran. - -**Cara OmniRoute menyelesaikannya:** - -- **pemasangan global npm** — `npm install -g omniroute && omniroute` — selesai -- **Docker Multi-Platform** — AMD64 + ARM64 asli (Apple Silicon, AWS Graviton, Raspberry Pi) -- **Profil Karang Docker** — `base` (tiada alat CLI) dan `cli` (dengan Kod Claude, Codex, OpenClaw) -- **Apl Desktop Elektron** — Apl asli untuk Windows/macOS/Linux dengan dulang sistem, auto mula, mod luar talian -- **Mod Split-Port** — API dan Papan Pemuka pada port berasingan untuk senario lanjutan (proksi terbalik, rangkaian kontena) -- **Cloud Sync** — Konfigurasikan penyegerakan merentas peranti melalui Cloudflare Workers -- **Sandaran DB** — Sandaran automatik, pulihkan, eksport dan import semua tetapan - -</details> - -<details> -<summary><b>🌍 12. "Antara muka adalah bahasa Inggeris sahaja dan pasukan saya tidak berbahasa Inggeris"</b></summary> - -Pasukan di negara bukan berbahasa Inggeris, terutamanya di Amerika Latin, Asia dan Eropah, bergelut dengan antara muka bahasa Inggeris sahaja. Halangan bahasa mengurangkan penggunaan dan meningkatkan ralat konfigurasi. - -**Cara OmniRoute menyelesaikannya:** - -- **Papan pemuka i18n — 30 Bahasa** — Semua 500+ kunci diterjemahkan termasuk bahasa Arab, Bulgaria, Denmark, Jerman, Sepanyol, Finland, Perancis, Ibrani, Hindi, Hungary, Indonesia, Itali, Jepun, Korea, Melayu, Belanda, Norway, Poland, Portugis (PT/BR), Romania, Rusia, Slovak, Sweden, Thai, Ukraine, Inggeris, Cina -- **Sokongan RTL** — Sokongan kanan ke kiri untuk bahasa Arab dan Ibrani -- **README Berbilang Bahasa** — 30 terjemahan dokumentasi lengkap -- **Pemilih Bahasa** — Ikon Glob dalam pengepala untuk penukaran masa nyata - -</details> - -<details> -<summary><b>🔄 13. "Saya perlukan lebih daripada sembang — saya perlukan pembenaman, imej, audio"</b></summary> - -AI bukan sekadar penyelesaian sembang. Pembangun perlu menjana imej, menyalin audio, membuat pembenaman untuk RAG, menyusun semula dokumen dan kandungan sederhana. Setiap API mempunyai titik akhir dan format yang berbeza. - -**Cara OmniRoute menyelesaikannya:** - -- **Pembenaman** — `/v1/embeddings` dengan 6 pembekal dan 9+ model -- **Penjanaan Imej** — `/v1/images/generations` dengan 10 pembekal dan 20+ model (OpenAI, xAI, Together, Fireworks, Nebius, Hyperbolic, NanoBanana, Antigravity, SD WebUI, ComfyUI) -- **Teks-ke-Video** — `/v1/videos/generations` — ComfyUI (AnimateDiff, SVD) dan SD WebUI -- **Teks-ke-Muzik** — `/v1/music/generations` — ComfyUI (Audio Terbuka, MusicGen) -- **Transkripsi Audio** — `/v1/audio/transcriptions` — Whisper + Nvidia NIM, HuggingFace, Qwen3 -- **Text-to-Speech** — `/v1/audio/speech` — ElevenLabs, Nvidia NIM, HuggingFace, Coqui, Tortoise, Qwen3, **Inworld**, **Cartesia**, **PlayHT**, + pembekal sedia ada -- **Moderasi** — `/v1/moderations` — Pemeriksaan keselamatan kandungan -- **Penyusunan semula** — `/v1/rerank` — Penyusunan semula perkaitan dokumen -- **Responses API** — Sokongan `/v1/responses` penuh untuk Codex - -</details> - -<details> -<summary><b>🧪 14. "Saya tiada cara untuk menguji dan membandingkan kualiti merentas model"</b></summary> - -Pembangun ingin mengetahui model mana yang terbaik untuk kes penggunaan mereka — kod, terjemahan, penaakulan — tetapi membandingkan secara manual adalah perlahan. Tiada alat eval bersepadu wujud. - -**Cara OmniRoute menyelesaikannya:** - -- **LLM Evaluations** — Ujian set emas dengan 10 kes pra-muat meliputi salam, matematik, geografi, penjanaan kod, pematuhan JSON, terjemahan, penurunan harga, penolakan keselamatan -- **4 Strategi Padanan** — `exact`, `contains`, `regex`, `custom` (fungsi JS) -- **Bangku Ujian Taman Permainan Penterjemah** — Ujian kelompok dengan berbilang input dan output yang dijangka, perbandingan merentas pembekal -- **Penguji Sembang** — Perjalanan pergi balik penuh dengan pemaparan respons visual -- **Pantau Langsung** — Strim masa nyata semua permintaan yang mengalir melalui proksi - -</details> - -<details> -<summary><b>📈 15. "Saya perlu skala tanpa kehilangan prestasi"</b></summary> - -Apabila volum permintaan bertambah, tanpa menyimpan cache soalan yang sama menjana kos pendua. Tanpa idempotensi, pendua meminta pemprosesan sisa. Had kadar setiap pembekal mesti dipatuhi. - -**Cara OmniRoute menyelesaikannya:** - -- **Cache Semantik** — Cache dua peringkat (tandatangan + semantik) mengurangkan kos dan kependaman -- **Request Idempotency** — tetingkap penyahduplikasi 5s untuk permintaan yang sama -- **Pengesanan Had Kadar** — RPM setiap pembekal, jurang min dan penjejakan serentak maks -- **Had Kadar Boleh Diedit** — Lalai boleh dikonfigurasikan dalam Tetapan → Ketahanan dengan kegigihan -- **Cache Pengesahan Kunci API** — Cache 3 peringkat untuk prestasi pengeluaran -- **Papan Pemuka Kesihatan dengan Telemetri** — kependaman p50/p95/p99, statistik cache, masa beroperasi - -</details> - -<details> -<summary><b>🤖 16. "Saya mahu mengawal tingkah laku model secara global"</b></summary> - -Pembangun yang mahukan semua respons dalam bahasa tertentu, dengan nada tertentu atau ingin mengehadkan token penaakulan. Mengkonfigurasi ini dalam setiap alat/permintaan adalah tidak praktikal. - -**Cara OmniRoute menyelesaikannya:** - -- **System Prompt Injection** — Gesaan global digunakan untuk semua permintaan -- **Pengesahan Belanjawan Berfikir** — Kawalan peruntukan token penaakulan setiap permintaan (laluan, auto, tersuai, adaptif) -- **6 Strategi Penghalaan** — Strategi global yang menentukan cara permintaan diedarkan -- **Penghala Wildcard** — `provider/*` laluan corak secara dinamik kepada mana-mana pembekal -- **Kombo Dayakan/Lumpuhkan Togol** — Togol kombo terus dari papan pemuka -- **Togol Pembekal** — Dayakan/lumpuhkan semua sambungan untuk pembekal dengan satu klik -- **Pembekal Disekat** — Kecualikan pembekal khusus daripada penyenaraian `/v1/models` - -</details> - -<details> -<summary><b>🧰 17. "Saya memerlukan alatan MCP sebagai keupayaan produk kelas pertama"</b></summary> - -Banyak get laluan AI mendedahkan MCP hanya sebagai butiran pelaksanaan tersembunyi. Pasukan memerlukan lapisan operasi yang boleh dilihat dan boleh diurus. - -**Cara OmniRoute menyelesaikannya:** - -- MCP muncul dalam navigasi papan pemuka dan tab protokol titik akhir -- Halaman pengurusan MCP khusus dengan proses, alatan, skop dan audit -- Permulaan pantas terbina dalam untuk `omniroute --mcp` dan penerimaan pelanggan - -</details> - -<details> -<summary><b>🧠 18. "Saya memerlukan orkestrasi A2A dengan laluan tugasan penyegerakan + strim"</b></summary> - -Aliran kerja ejen memerlukan balasan langsung dan pelaksanaan strim jangka panjang dengan kawalan kitaran hayat. - -**Cara OmniRoute menyelesaikannya:** - -- Titik akhir JSON-RPC A2A (`POST /a2a`) dengan `message/send` dan `message/stream` -- Penstriman SSE dengan penyebaran keadaan terminal -- API kitaran hayat tugas untuk `tasks/get` dan `tasks/cancel` - -</details> - -<details> -<summary><b>🛰️ 19. "Saya memerlukan kesihatan proses MCP sebenar, bukan status yang diduga"</b></summary> - -Pasukan operasi perlu mengetahui sama ada MCP sebenarnya masih hidup, bukan hanya sama ada API boleh dicapai. - -**Cara OmniRoute menyelesaikannya:** - -- Fail degupan jantung masa jalan dengan PID, cap masa, pengangkutan, kiraan alat dan mod skop -- API status MCP yang menggabungkan degupan jantung + aktiviti terkini -- Kad status UI untuk kesegaran proses/masa hidup/degupan jantung - -</details> - -<details> -<summary><b>📋 20. "Saya memerlukan pelaksanaan alat MCP yang boleh diaudit"</b></summary> - -Apabila alat mengubah konfigurasi atau mencetuskan tindakan ops, pasukan memerlukan kebolehkesanan forensik. - -**Cara OmniRoute menyelesaikannya:** - -- Pengelogan audit yang disokong SQLite untuk panggilan alat MCP -- Tapis mengikut alat, kejayaan/kegagalan, kunci API dan penomboran -- Jadual audit papan pemuka + titik akhir statistik untuk automasi - -</details> - -<details> -<summary><b>🔐 21. "Saya memerlukan keizinan MCP berskop bagi setiap penyepaduan"</b></summary> - -Pelanggan yang berbeza harus mempunyai akses paling tidak istimewa kepada kategori alat. - -**Cara OmniRoute menyelesaikannya:** - -- 9 skop MCP berbutir untuk akses alat terkawal -- Penguatkuasaan skop dan keterlihatan dalam UI pengurusan MCP -- Postur lalai yang selamat untuk perkakas operasi - -</details> - -<details> -<summary><b>⚙️ 22. "Saya memerlukan kawalan operasi tanpa menggunakan semula"</b></summary> - -Pasukan memerlukan perubahan masa jalan yang cepat semasa insiden atau peristiwa kos. - -**Cara OmniRoute menyelesaikannya:** - -- Tukar pengaktifan kombo terus dari papan pemuka MCP -- Gunakan profil daya tahan daripada pek dasar yang telah ditetapkan -- Tetapkan semula keadaan pemutus litar daripada panel operasi yang sama - -</details> - -<details> -<summary><b>🔄 23. "Saya memerlukan keterlihatan dan pembatalan kitaran hayat tugas A2A secara langsung"</b></summary> - -Tanpa keterlihatan kitaran hayat, insiden tugasan menjadi sukar untuk dicuba. - -**Cara OmniRoute menyelesaikannya:** - -- Penyenaraian tugas/penapisan mengikut keadaan/kemahiran dengan penomboran -- Latih tubi tentang metadata tugas, peristiwa dan artifak -- Titik akhir pembatalan tugas dan tindakan UI dengan pengesahan - -</details> - -<details> -<summary><b>🌊 24. "Saya memerlukan metrik strim aktif untuk beban A2A"</b></summary> - -Aliran kerja penstriman memerlukan cerapan operasi tentang konkurensi dan sambungan langsung. - -**Cara OmniRoute menyelesaikannya:** - -- Kaunter aliran aktif disepadukan ke dalam status A2A -- Cap masa tugas terakhir dan kiraan setiap negeri -- Kad papan pemuka A2A untuk pemantauan operasi masa nyata - -</details> - -<details> -<summary><b>🪪 25. "Saya memerlukan penemuan ejen standard untuk pelanggan"</b></summary> - -Pelanggan dan orkestra luar memerlukan metadata yang boleh dibaca mesin untuk onboarding. - -**Cara OmniRoute menyelesaikannya:** - -- Kad Ejen terdedah di `/.well-known/agent.json` -- Keupayaan dan kemahiran ditunjukkan dalam UI pengurusan -- API status A2A termasuk metadata penemuan untuk automasi - -</details> - -<details> -<summary><b>🧭 26. "Saya memerlukan kebolehtemuan protokol dalam UX produk"</b></summary> - -Jika pengguna tidak dapat menemui permukaan protokol, penggunaan dan kualiti sokongan akan menurun. - -**Cara OmniRoute menyelesaikannya:** - -- Halaman **Titik Akhir** yang disatukan dengan tab untuk Titik Akhir Proksi, MCP, A2A dan API -- Togol status perkhidmatan dalam talian (Dalam Talian/Luar Talian) untuk MCP dan A2A -- Pautan dari gambaran keseluruhan ke tab pengurusan khusus - -</details> - -<details> -<summary><b>🧪 27. "Saya memerlukan pengesahan protokol hujung ke hujung dengan pelanggan sebenar"</b></summary> - -Ujian olok-olok tidak mencukupi untuk mengesahkan keserasian protokol sebelum dikeluarkan. - -**Cara OmniRoute menyelesaikannya:** - -- Suite E2E yang but apl dan menggunakan pengangkutan pelanggan MCP SDK sebenar -- Ujian pelanggan A2A untuk penemuan, menghantar, menstrim, mendapatkan dan membatalkan aliran -- Periksa silang dakwaan terhadap audit MCP dan API tugasan A2A - -</details> - -<details> -<summary><b>📡 28. "Saya memerlukan pemerhatian bersatu merentas semua antara muka"</b></summary> - -Memisahkan kebolehmerhatian mengikut protokol mewujudkan titik buta dan MTTR yang lebih panjang. - -**Cara OmniRoute menyelesaikannya:** - -- Papan pemuka/log/analisis bersatu dalam satu produk -- Kesihatan + audit + telemetri permintaan merentas lapisan OpenAI, MCP dan A2A -- API Operasi untuk status dan automasi - -</details> - -<details> -<summary><b>💼 29. "Saya memerlukan satu masa jalan untuk proksi + alatan + orkestrasi ejen"</b></summary> - -Menjalankan banyak perkhidmatan berasingan meningkatkan kos operasi dan mod kegagalan. - -**Cara OmniRoute menyelesaikannya:** - -- Proksi serasi OpenAI, pelayan MCP dan pelayan A2A dalam satu tindanan -- Kebenaran dikongsi, daya tahan, stor data dan kebolehmerhatian -- Model dasar yang konsisten merentas semua permukaan interaksi - -</details> - -<details> -<summary><b>🚀 30. "Saya perlu menghantar aliran kerja agen tanpa penyebaran kod gam"</b></summary> - -Pasukan kehilangan halaju apabila mencantumkan berbilang perkhidmatan dan skrip ad-hoc. - -**Cara OmniRoute menyelesaikannya:** - -- Strategi titik akhir bersatu untuk pelanggan dan ejen -- UI pengurusan protokol terbina dalam dan laluan pengesahan asap -- Asas sedia pengeluaran (keselamatan, pembalakan, daya tahan, sandaran) - -</details> - -### Contoh Buku Main (Kes Penggunaan Bersepadu) - -**Playbook A: Maksimumkan langganan berbayar + sandaran murah** - -```txt -Combo: "maximize-claude" - 1. cc/claude-opus-4-6 - 2. glm/glm-4.7 - 3. if/kimi-k2-thinking - -Monthly cost: $20 + small backup spend -Outcome: higher quality, near-zero interruption -``` - -**Playbook B: Timbunan pengekodan kos sifar** - -```txt -Combo: "free-forever" - 1. gc/gemini-3-flash - 2. if/kimi-k2-thinking - 3. qw/qwen3-coder-plus - -Monthly cost: $0 -Outcome: stable free coding workflow -``` - -**Playbook C: 24/7 rantai sandaran sentiasa hidup** - -```txt -Combo: "always-on" - 1. cc/claude-opus-4-6 - 2. cx/gpt-5.2-codex - 3. glm/glm-4.7 - 4. minimax/MiniMax-M2.1 - 5. if/kimi-k2-thinking - -Outcome: deep fallback depth for deadline-critical workloads -``` - -**Playbook D: Operasi ejen dengan MCP + A2A** - -```txt -1) Start MCP transport (`omniroute --mcp`) for tool-driven operations -2) Run A2A tasks via `message/send` and `message/stream` -3) Observe via /dashboard/endpoint (MCP and A2A tabs) -4) Toggle services via inline status controls -``` - ---- - -## 🆓 Mula Percuma — Kos Konfigurasi Sifar - -> Sediakan pengekodan AI dalam beberapa minit pada **$0/bulan**. Sambungkan akaun percuma ini dan gunakan kombo **Timbunan Percuma** terbina dalam. - -| Langkah | Tindakan | Pembekal Dibuka Kunci | -| ------- | ------------------------------------------------------- | ------------------------------------------------------------------ | -| 1 | Sambung **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — **tanpa had** | -| 2 | Sambung **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **tanpa had** | -| 3 | Sambung **Qwen** (Kod Peranti) | qwen3-coder-plus, qwen3-coder-flash... — **tanpa had** | -| 4 | Sambung **Gemini CLI** (Google OAuth) | gemini-3-flash, Gemini-2.5-pro — **180K/bln percuma** | -| 5 | `/dashboard/combos` → **Templat Timbunan Percuma ($0)** | Round-robin semua pembekal percuma secara automatik | - -**Tuding mana-mana IDE/CLI ke:** `http://localhost:20128/v1` · Kunci API: `any-string` · Selesai. - -> **Liputan tambahan pilihan (juga percuma):** Kunci API Groq (30 RPM percuma), NVIDIA NIM (40 RPM percuma, 70+ model), Cerebras (1M tok/hari), kunci API LongCat (50M token/hari!), Cloudflare Workers AI (10K Neuron/hari, 50+ model). - -## ⚡ Mula Pantas - -### 1) Pasang dan jalankan - -```bash -npm install -g omniroute -omniroute -``` - -> **pengguna pnpm:** Jalankan `pnpm approve-builds -g` selepas pemasangan untuk mendayakan skrip binaan asli yang diperlukan oleh `better-sqlite3` dan `@swc/core`: -> -> ```bash -> pnpm install -g omniroute -> pnpm approve-builds -g # Select all packages → approve -> omniroute -> ``` - -Papan pemuka dibuka pada `http://localhost:20128` dan URL asas API ialah `http://localhost:20128/v1`. - -| Perintah | Penerangan | -| ----------------------- | ------------------------------------------------------------------------ | -| `omniroute` | Mulakan pelayan (`PORT=20128`, API dan papan pemuka pada port yang sama) | -| `omniroute --port 3000` | Tetapkan port kanonik/API kepada 3000 | -| `omniroute --mcp` | Mulakan pelayan MCP (stdio transport) | -| `omniroute --no-open` | Jangan auto buka penyemak imbas | -| `omniroute --help` | Tunjukkan bantuan | - -Mod split-port pilihan: - -```bash -PORT=20128 DASHBOARD_PORT=20129 omniroute -# API: http://localhost:20128/v1 -# Dashboard: http://localhost:20129 -``` - -### 2) Sambungkan penyedia dan buat kunci API anda - -1. Buka Papan Pemuka → `Providers` dan sambungkan sekurang-kurangnya satu pembekal (kunci OAuth atau API). -2. Buka Papan Pemuka → `Endpoints` dan buat kunci API. -3. (Pilihan) Buka Papan Pemuka → `Combos` dan tetapkan rantaian sandaran anda. - -### 3) Halakan alat pengekodan anda ke OmniRoute - -```txt -Base URL: http://localhost:20128/v1 -API Key: [copy from Endpoint page] -Model: if/kimi-k2-thinking (or any provider/model prefix) -``` - -Berfungsi dengan Claude Code, Codex CLI, Gemini CLI, Cursor, Cline, OpenClaw, OpenCode dan SDK serasi OpenAI. - -### 4) Dayakan dan sahkan protokol (v2.0) - -**MCP (untuk operasi dipacu alat):** - -```bash -omniroute --mcp -``` - -Kemudian sambungkan klien MCP anda melalui `stdio` dan alat ujian seperti: - -- `omniroute_get_health` -- `omniroute_list_combos` - -**A2A (untuk aliran kerja ejen-ke-ejen):** - -```bash -curl http://localhost:20128/.well-known/agent.json -``` - -```bash -curl -X POST http://localhost:20128/a2a \ - -H 'content-type: application/json' \ - -d '{"jsonrpc":"2.0","id":"quickstart","method":"message/send","params":{"skill":"quota-management","messages":[{"role":"user","content":"Give me a short quota summary."}]}}' -``` - -### 5) Sahkan semuanya hujung ke hujung (disyorkan) - -```bash -npm run test:protocols:e2e -``` - -Suite ini mengesahkan aliran klien MCP dan A2A sebenar terhadap apl yang sedang berjalan. - -### Alternatif: jalankan dari sumber - -```bash -cp .env.example .env -npm install -PORT=20128 DASHBOARD_PORT=20129 NEXT_PUBLIC_BASE_URL=http://localhost:20129 npm run dev -``` - ---- - -## 🐳 Docker - -OmniRoute tersedia sebagai imej Docker awam pada [Docker Hub](https://hub.docker.com/r/diegosouzapw/omniroute). - -**Larian pantas:** - -```bash -docker run -d \ - --name omniroute \ - --restart unless-stopped \ - -p 20128:20128 \ - -v omniroute-data:/app/data \ - diegosouzapw/omniroute:latest -``` - -**Dengan fail persekitaran:** - -```bash -# Copy and edit .env first -cp .env.example .env - -docker run -d \ - --name omniroute \ - --restart unless-stopped \ - --env-file .env \ - -p 20128:20128 \ - -v omniroute-data:/app/data \ - diegosouzapw/omniroute:latest -``` - -**Menggunakan Docker Compose:** - -```bash -# Base profile (no CLI tools) -docker compose --profile base up -d - -# CLI profile (Claude Code, Codex, OpenClaw built-in) -docker compose --profile cli up -d -``` - -| Imej | Tag | Saiz | Penerangan | -| ------------------------ | -------- | ------ | ----------------------- | -| `diegosouzapw/omniroute` | `latest` | ~250MB | Keluaran stabil terkini | -| `diegosouzapw/omniroute` | `1.0.3` | ~250MB | Versi semasa | - ---- - -## 🖥️ Apl Desktop — Luar Talian & Sentiasa Hidup - -> 🆕 **BARU!** OmniRoute kini tersedia sebagai **aplikasi desktop asli** untuk Windows, macOS dan Linux. - -Jalankan OmniRoute sebagai apl desktop kendiri — tiada terminal, tiada penyemak imbas, tiada internet diperlukan untuk model tempatan. Aplikasi berasaskan Elektron termasuk: - -- 🖥️ **Tetingkap Asli** — Tetingkap apl khusus dengan penyepaduan dulang sistem -- 🔄 **Auto Mula** — Lancarkan OmniRoute pada log masuk sistem -- 🔔 **Pemberitahuan Asli** — Dapatkan makluman untuk masalah keletihan kuota atau pembekal -- ⚡ **Pasang Satu Klik** — NSIS (Windows), DMG (macOS), AppImage (Linux) -- 🌐 **Mod Luar Talian** — Berfungsi sepenuhnya di luar talian dengan pelayan yang digabungkan - -### Mula Pantas - -```bash -# Development mode -npm run electron:dev - -# Build for your platform -npm run electron:build # Current platform -npm run electron:build:win # Windows (.exe) -npm run electron:build:mac # macOS (.dmg) — x64 & arm64 -npm run electron:build:linux # Linux (.AppImage) -``` - -### Dulang Sistem - -Apabila diminimumkan, OmniRoute tinggal dalam dulang sistem anda dengan tindakan pantas: - -- Buka papan pemuka -- Tukar port pelayan -- Hentikan permohonan - -📖 Dokumentasi penuh: [**OMNI_TOKEN_153**](electron/README.md) - ---- - -## 💰 Sekilas Pandang Harga - -| Peringkat | Pembekal | Kos | Set Semula Kuota | Terbaik Untuk | -| ---------------- | --------------------------- | ------------------------------- | ------------------ | ------------------------------------ | -| **💳 LANGGANAN** | Kod Claude (Pro) | $20/bln | 5j + mingguan | Sudah melanggan | -| | Codex (Plus/Pro) | $20-200/bln | 5j + mingguan | Pengguna OpenAI | -| | Gemini CLI | **PERCUMA** | 180K/bln + 1K/hari | Semua orang! | -| | GitHub Copilot | $10-19/bln | Bulanan | Pengguna GitHub | -| **🔑 KUNCI API** | NVIDIA NIM | **PERCUMA** (dev forever) | ~40 RPM | 70+ model terbuka | -| | Serebral | **PERCUMA** (1J tok/hari) | 60K TPM / 30 RPM | Terpantas di dunia | -| | Groq | **PERCUMA** (30 RPM) | 14.4K RPD | Llama/Gemma sangat pantas | -| | DeepSeek V3.2 | $0.27/$1.10 setiap 1J | Tiada | Penalaran harga/kualiti terbaik | -| | xAI Grok-4 Cepat | **$0.20/$0.50 setiap 1J** 🆕 | Tiada | Panggilan alat + terpantas, ultralow | -| | xAI Grok-4 (standard) | $0.20/$1.50 setiap 1J 🆕 | Tiada | Penaakulan perdana daripada xAI | -| | Mistral | Percubaan percuma + berbayar | Kadar terhad | AI Eropah | -| | OpenRouter | Bayar setiap penggunaan | Tiada | 100+ model aggr. | -| **💰 MURAH** | GLM-5 (melalui Z.AI) 🆕 | $0.5/1J | Setiap hari 10AM | Keluaran 128K, perdana terbaharu | -| | GLM-4.7 | $0.6/1J | Setiap hari 10AM | Sandaran belanjawan | -| | MiniMax M2.5 🆕 | Input $0.3/1J | 5 jam bergolek | Penaakulan + tugas agen | -| | MiniMax M2.1 | $0.2/1J | 5 jam bergolek | Pilihan termurah | -| | Kimi K2.5 (Moonshot API) 🆕 | Bayar setiap penggunaan | Tiada | Akses langsung Moonshot API | -| | Kimi K2 | $9/bln flat | 10 juta token/bln | Kos yang boleh diramal | -| **🆓 PERCUMA** | Qoder | **$0** | tanpa had | 5 model tanpa had | -| | Qwen | **$0** | tanpa had | 4 model tanpa had | -| | Kiro | **$0** | tanpa had | Claude Sonnet/Haiku (Pembina AWS) | -| | LongCat Flash-Lite 🆕 | **$0** (50J tok/hari 🔥) | 1 RPS | Kuota percuma terbesar di Bumi | -| | Pendebungaan AI 🆕 | **$0** (tiada kunci diperlukan) | 1 req/15s | GPT-5, Claude, DeepSeek, Llama 4 | -| | Pekerja Cloudflare AI 🆕 | **$0** (10K Neuron/hari) | ~150 resp/hari | 50+ model, kelebihan global | -| | Scaleway AI 🆕 | **$0** (Jumlah token 1J) | Kadar terhad | EU/GDPR, Qwen3 235B, Llama 70B | - -> 🆕 **Model baharu ditambah (Mac 2026):** Keluarga Grok-4 Fast pada $0.20/$0.50/M (ditanda aras pada 1143ms — 30% lebih pantas daripada Gemini 2.5 Flash), GLM-5 melalui Z.AI dengan output 128K, penaakulan MiniMax M2.5. Kim2 DeepSeek V3, penentuan harga Kim2 DeepSeek V3. - -**💡 Timbunan Kombo $0 — Persediaan Percuma Lengkap:** - -``` -# 🆓 Ultimate Free Stack 2026 — 11 Providers, $0 Forever -Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED -LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 -Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed -Qwen (qw/) → qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next UNLIMITED -Gemini (gemini/) → Gemini 2.5 Flash — 1,500 req/day free API key -Cloudflare AI (cf/) → Llama 70B, Gemma 3, Mistral — 10K Neurons/day -Scaleway (scw/) → Qwen3 235B, Llama 70B — 1M free tokens (EU) -Groq (groq/) → Llama/Gemma ultra-fast — 14.4K req/day -NVIDIA NIM (nvidia/) → 70+ open models — 40 RPM forever -Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day -``` - -**Kos sifar. Jangan sekali-kali berhenti pengekodan.** Konfigurasikan ini sebagai satu kombo OmniRoute dan semua sandaran berlaku secara automatik — tiada penukaran manual. - ---- - ---- - -## 🆓 Model Percuma — Perkara Yang Anda Dapat - -> Semua model di bawah adalah **100% percuma dengan kad kredit sifar diperlukan**. Laluan automatik OmniRoute antara mereka apabila satu kuota habis — gabungkan kesemuanya untuk kombo $0 yang tidak boleh dipecahkan. - -### 🔵 MODEL CLAUDE (melalui Kiro — AWS Builder ID) - -| Model | Awalan | Had | Had Kadar | -| ------------------- | ------ | ---------------- | --------------------------- | -| `claude-sonnet-4.5` | `kr/` | **Tidak terhad** | Tiada had harian dilaporkan | -| `claude-haiku-4.5` | `kr/` | **Tidak terhad** | Tiada had harian dilaporkan | -| `claude-opus-4.6` | `kr/` | **Tidak terhad** | Opus terkini melalui Kiro | - -### 🟢 MODEL QODER (OAuth Percuma — Tiada Kad Kredit) - -| Model | Awalan | Had | Had Kadar | -| ------------------ | ------ | ---------------- | ------------------------- | -| `kimi-k2-thinking` | `if/` | **Tidak terhad** | Tiada had yang dilaporkan | -| `qwen3-coder-plus` | `if/` | **Tidak terhad** | Tiada had yang dilaporkan | -| `deepseek-r1` | `if/` | **Tidak terhad** | Tiada had yang dilaporkan | -| `minimax-m2.1` | `if/` | **Tidak terhad** | Tiada had yang dilaporkan | -| `kimi-k2` | `if/` | **Tidak terhad** | Tiada had yang dilaporkan | - -### MODEL QWEN (Pengesahan Kod Peranti) - -| Model | Awalan | Had | Had Kadar | -| ------------------- | ------ | ---------------- | ------------------------- | -| `qwen3-coder-plus` | `qw/` | **Tidak terhad** | Tiada had yang dilaporkan | -| `qwen3-coder-flash` | `qw/` | **Tidak terhad** | Tiada had dilaporkan | -| `qwen3-coder-next` | `qw/` | **Tidak terhad** | Tiada had dilaporkan | -| `vision-model` | `qw/` | **Tidak terhad** | Multimodal (imej) | - -### 🟣 GEMINI CLI (Google OAuth) - -| Model | Awalan | Had | Had Kadar | -| ------------------------ | ------ | ---------------------------- | ---------------------- | -| `gemini-3-flash-preview` | `gc/` | **180K tok/bulan** + 1K/hari | Tetapan semula bulanan | -| `gemini-2.5-pro` | `gc/` | 180K/bulan (kolam kongsi) | Berkualiti tinggi | - -### ⚫ NVIDIA NIM (Kunci API Percuma — build.nvidia.com) - -| Peringkat | Had Harian | Had Kadar | Nota | -| ------------- | ---------------- | ----------- | ---------------------------------------------------------- | -| Percuma (Dev) | Tiada topi token | **~40 RPM** | 70+ model; beralih kepada had kadar tulen pertengahan 2025 | - -Model percuma popular: `moonshotai/kimi-k2.5` (Kimi K2.5), `z-ai/glm4.7` (GLM 4.7), `deepseek-ai/deepseek-v3.2` (DeepSeek V3.2), `nvidia/llama-3.3-70b-instruct`, `deepseek/deepseek-r1` - -### ⚪ CEREBRAS (Kunci API Percuma — inference.cerebras.ai) - -| Peringkat | Had Harian | Had Kadar | Nota | -| --------- | ----------------- | ---------------- | -------------------------------------------------------------- | -| Percuma | **1J token/hari** | 60K TPM / 30 RPM | Inferens LLM terpantas di dunia; ditetapkan semula setiap hari | - -Tersedia secara percuma: `llama-3.3-70b`, `llama-3.1-8b`, `deepseek-r1-distill-llama-70b` - -### 🔴 GROQ (Kunci API Percuma — console.groq.com) - -| Peringkat | Had Harian | Had Kadar | Nota | -| --------- | ------------- | ------------------- | ------------------------------------------- | -| Percuma | **14.4K RPD** | 30 RPM setiap model | Tiada kad kredit; 429 pada had, tidak dicaj | - -Tersedia secara percuma: `llama-3.3-70b-versatile`, `gemma2-9b-it`, `mixtral-8x7b`, `whisper-large-v3` - -### 🔴 LONGCAT AI (Kunci API Percuma — longcat.chat) 🆕 - -| Model | Awalan | Kuota Percuma Harian | Nota | -| ----------------------------- | ------ | -------------------- | ----------------------------- | -| `LongCat-Flash-Lite` | `lc/` | **50J token** 💥 | Kuota percuma terbesar pernah | -| `LongCat-Flash-Chat` | `lc/` | 500K token | Sembang berbilang pusingan | -| `LongCat-Flash-Thinking` | `lc/` | 500K token | Penaakulan / CoT | -| `LongCat-Flash-Thinking-2601` | `lc/` | 500K token | Versi Jan 2026 | -| `LongCat-Flash-Omni-2603` | `lc/` | 500K token | Multimodal | - -> 100% percuma semasa dalam beta awam. Daftar di [longcat.chat](https://longcat.chat) dengan e-mel atau telefon. Ditetapkan semula setiap hari 00:00 UTC. - -### 🟢 PENDEBATAN AI (Tiada Kunci API Diperlukan) 🆕 - -| Model | Awalan | Had Kadar | Pembekal Di Belakang | -| ---------- | ------ | --------- | --------------------- | -| `openai` | `pol/` | 1 req/15s | GPT-5 | -| `claude` | `pol/` | 1 req/15s | Claude Anthropic | -| `gemini` | `pol/` | 1 req/15s | Google Gemini | -| `deepseek` | `pol/` | 1 req/15s | DeepSeek V3 | -| `llama` | `pol/` | 1 req/15s | Pengakap Meta Llama 4 | -| `mistral` | `pol/` | 1 req/15s | Mistral AI | - -> ✨ **Sifar geseran:** Tiada pendaftaran, tiada kunci API. Tambahkan penyedia Pendebungaan dengan medan kunci kosong dan ia berfungsi serta-merta. - -### 🟠 CLOUDFLARE WORKERS AI (Kunci API Percuma — cloudflare.com) 🆕 - -| Peringkat | Neuron Harian | Penggunaan Setara | Nota | -| --------- | ------------- | ----------------------------------------- | --------------------------- | -| Percuma | **10,000** | ~150 LLM respons / 500s audio / 15K benam | Kelebihan global, 50+ model | - -Model percuma popular: `@cf/meta/llama-3.3-70b-instruct`, `@cf/google/gemma-3-12b-it`, `@cf/openai/whisper-large-v3-turbo` (audio percuma!), `@cf/qwen/qwen2.5-coder-15b-instruct` - -> Memerlukan Token API + ID Akaun daripada [dash.cloudflare.com](https://dash.cloudflare.com). Simpan ID Akaun dalam tetapan pembekal. - -### 🟣 SCALEWAY AI (Token Percuma 1J — scaleway.com) 🆕 - -| Peringkat | Kuota Percuma | Lokasi | Nota | -| --------- | ------------- | ------------ | ------------------------------------- | -| Percuma | **1J token** | 🇫🇷 Paris, EU | Tiada kad kredit diperlukan dalam had | - -Tersedia secara percuma: `qwen3-235b-a22b-instruct-2507` (Qwen3 235B!), `llama-3.1-70b-instruct`, `mistral-small-3.2-24b-instruct-2506`, `deepseek-v3-0324` - -> patuh EU/GDPR. Dapatkan kunci API di [console.scaleway.com](https://console.scaleway.com). - -> **💡 Timbunan Percuma Terunggul (11 Pembekal, $0 Selamanya):** -> -> ``` -> Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -> Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED -> LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 -> Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed -> Qwen (qw/) → qwen3-coder models UNLIMITED -> Gemini (gemini/) → Gemini 2.5 Flash — 1,500 req/day free -> Cloudflare AI (cf/) → 50+ models — 10K Neurons/day -> Scaleway (scw/) → Qwen3 235B, Llama 70B — 1M free tokens (EU) -> Groq (groq/) → Llama/Gemma — 14.4K req/day ultra-fast -> NVIDIA NIM (nvidia/) → 70+ open models — 40 RPM forever -> Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day -> ``` - -## 🎙️ Kombo Transkripsi Percuma - -> Transkripsikan sebarang audio/video untuk **$0** — Deepgram memimpin dengan percuma $200, sandaran AssemblyAI $50, Groq Whisper sebagai sandaran kecemasan tanpa had. - -| Pembekal | Kredit Percuma | Model Terbaik | Had Kadar | -| -------------------- | ------------------------------ | ---------------------------------------- | ---------------------------------- | -| 🟢 **Deepgram** | **$200 percuma** (pendaftaran) | `nova-3` — ketepatan terbaik, 30+ bahasa | Tiada had RPM untuk kredit percuma | -| 🔵 **PerhimpunanAI** | **$50 percuma** (pendaftaran) | `universal-3-pro` — bab, sentimen, PII | Tiada had RPM untuk kredit percuma | -| 🔴 **Groq** | **Percuma selamanya** | `whisper-large-v3` — OpenAI Whisper | 30 RPM (kadar terhad) | - -**Kombo yang dicadangkan dalam `/dashboard/combos`:** - -``` -Name: free-transcription -Strategy: Priority -Nodes: - [1] deepgram/nova-3 → uses $200 free first - [2] assemblyai/universal-3-pro → fallback when Deepgram credits run out - [3] groq/whisper-large-v3 → free forever, emergency fallback -``` - -Kemudian dalam `/dashboard/media` → **Transkripsi** tab: muat naik mana-mana fail audio atau video → pilih titik akhir kombo anda → dapatkan transkripsi dalam format yang disokong. - -## 💡 Ciri Utama - -OmniRoute v2.0 dibina sebagai platform operasi, bukan hanya proksi geganti. - -### 🆕 Baharu — Penambahbaikan Berinspirasikan ClawRouter (Mac 2026) - -| Ciri | Apa yang Dilakukan | -| ----------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | -| ⚡ **Keluarga Cepat Grok-4** | model xAI pada $0.20/$0.50/M — menanda aras 1143ms (30% lebih pantas daripada Gemini 2.5 Flash) | -| 🧠 **GLM-5 melalui Z.AI** | Konteks keluaran 128K, $0.5/1J — perdana terbaharu daripada keluarga GLM | -| 🔮 **MiniMax M2.5** | Penaakulan + tugas agen pada $0.30/1J — peningkatan ketara daripada M2.1 | -| 🎯 **alatMemanggil Bendera setiap Model** | Per-model `toolCalling: true/false` dalam registry — AutoCombo melangkau model bukan alat yang mampu | -| 🌍 **Pengesanan Niat Pelbagai Bahasa** | Kata kunci PT/ZH/ES/AR dalam pemarkahan AutoCombo — pemilihan model yang lebih baik untuk kandungan bukan bahasa Inggeris | -| 📊 **Kemunduran Didorong Penanda Aras** | Kependaman p95 sebenar daripada pemarkahan kombo suapan permintaan langsung — AutoCombo belajar daripada data sebenar | -| 🔁 **Minta Deduplikasi** | Tetingkap penyahduaan berasaskan cincang kandungan — selamat berbilang ejen, menghalang caj pendua | -| 🔌 **Strategi Penghala Boleh Pasang** | Antara muka `RouterStrategy` boleh diperluas — tambah logik penghalaan tersuai sebagai pemalam | - -### 🚀 v2.0.9+ sebelumnya — Taman Permainan, Cap Jari CLI & ACP - -| Ciri | Apa yang Dilakukan | -| --------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| 🎮 **Taman Permainan Model** | Halaman papan pemuka untuk menguji mana-mana model secara langsung — pemilih pembekal/model/titik akhir, Editor Monaco, penstriman, batalkan, pemasaan | -| 🔏 **Padanan Cap Jari CLI** | Penyusunan pengepala/badan setiap penyedia untuk memadankan tandatangan CLI asli — togol setiap pembekal dalam Tetapan > Keselamatan. **IP proksi anda dipelihara** | -| 🤝 **Sokongan ACP (Protokol Pelanggan Agen)** | Penemuan ejen CLI (Codex, Claude, Goose, Gemini CLI, OpenClaw + 9 lagi), pemijah proses, `/api/acp/agents` titik akhir | -| 🤖 **Papan Pemuka Ejen ACP** | Nyahpepijat › Halaman ejen — grid 14 ejen dengan status pemasangan, versi, borang ejen tersuai untuk sebarang alat CLI. Pengguna **OpenCode** mendapat butang "Muat turun opencode.json" yang menjana secara automatik konfigurasi sedia untuk digunakan dengan semua model yang tersedia. | -| 🔧 **Model Tersuai `apiFormat` Penghalaan** | Model tersuai dengan `apiFormat: "responses"` kini dihalakan dengan betul ke penterjemah API Respons | -| 🏢 **Pengasingan Ruang Kerja Codex** | Berbilang ruang kerja Codex setiap e-mel — OAuth memisahkan sambungan dengan betul mengikut ID ruang kerja | -| 🔄 **Kemas Kini Auto Elektron** | Apl desktop menyemak kemas kini + pemasangan automatik semasa dimulakan semula | - -### 🤖 Operasi Ejen & Protokol (v2.0) - -| Ciri | Apa yang Dilakukan | -| ----------------------------------------- | ------------------------------------------------------------------------------------------------------- | -| 🔧 **Pelayan MCP (16 alatan)** | Alat IDE/agen melalui 3 pengangkutan: stdio, SSE (`/api/mcp/sse`), HTTP Boleh Strim (`/api/mcp/stream`) | -| 🤝 **Pelayan A2A (JSON-RPC + SSE)** | Pelaksanaan tugas ejen kepada ejen dengan aliran penyegerakan dan penstriman | -| 🧭 **Halaman Titik Akhir Disatukan** | Halaman pengurusan tab dengan tab Endpoint Proxy, MCP, A2A dan Titik Akhir API | -| 🎚️ **Servis Dayakan/Lumpuhkan Togol** | Suis HIDUP/MATI untuk MCP dan A2A dengan tetapan tetapan (lalai: MATI) | -| 🛰️ **Denyutan Jantung Masa Jalanan MCP** | Status proses sebenar (pid, masa beroperasi, umur degupan jantung, pengangkutan, mod skop) | -| 📋 **Jejak Audit MCP** | Log audit boleh ditapis dengan kejayaan/kegagalan dan atribusi utama | -| 🔐 **Penguatkuasaan Skop MCP** | 9 kebenaran skop berbutir untuk akses alat terkawal | -| 📡 **Pengurusan Kitaran Hayat Tugas A2A** | Senaraikan/tapis tugas, periksa acara/artifak, batalkan tugas yang sedang dijalankan | -| 📋 **Penemuan Kad Agen** | `/.well-known/agent.json` untuk penemuan automatik pelanggan | -| 🧪 **Protokol E2E Test Harness** | Klien MCP SDK + A2A sebenar mengalir dalam `test:protocols:e2e` | -| ⚙️ **Kawalan Operasi** | Tukar kombo, gunakan profil daya tahan, tetapkan semula pemutus dari satu permukaan kawalan | - -### 🧠 Penghalaan & Perisikan - -| Ciri | Apa yang Dilakukan | -| ------------------------------------ | ------------------------------------------------------------------------------------ | -| 🎯 **Smart 4-Tier Fallback** | Laluan automatik: Langganan → Kunci API → Murah → Percuma | -| 📊 **Penjejakan Kuota Masa Nyata** | Kiraan token langsung + tetapan semula kira detik setiap pembekal | -| 🔄 **Terjemahan Format** | OpenAI ↔ Claude ↔ Gemini ↔ Respons dengan penukaran selamat skema | -| 👥 **Sokongan Berbilang Akaun** | Berbilang akaun bagi setiap pembekal dengan pemilihan pintar | -| 🔄 **Muat Semula Token Auto** | Token OAuth dimuat semula secara automatik dengan cuba semula | -| 🎨 **Kombo Tersuai** | 6 strategi pengimbangan + kawalan rantai sandaran | -| 🌐 **Penghala Wildcard** | `provider/*` penghalaan dinamik | -| 🧠 **Kawalan Belanjawan Berfikir** | Had penaakulan laluan, auto, tersuai dan adaptif | -| 🔀 **Alias ​​Model** | Pengalian model + tersuai terbina dalam dan keselamatan penghijrahan | -| ⚡ **Degradasi Latar Belakang** | Halakan tugas latar belakang keutamaan rendah ke model yang lebih murah | -| 🧪 **Penghalaan Pintar Sedar Tugas** | Autopilih model mengikut jenis kandungan (pengekodan/penglihatan/analisis/ringkasan) | -| 💬 **System Prompt Suntikan** | Kawalan tingkah laku global digunakan secara konsisten | -| 📄 **Kesesuaian API Respons** | Sokongan penuh `/v1/responses` untuk Codex dan aliran kerja agen lanjutan | - -### 🎵 API Berbilang Modal - -| Ciri | Apa yang Dilakukan | -| ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| 🖼️ **Penjanaan Imej** | `/v1/images/generations` dengan awan dan hujung belakang tempatan | -| 📐 **Pembenaman** | `/v1/embeddings` untuk carian dan saluran paip RAG | -| 🎤 **Transkripsi Audio** | `/v1/audio/transcriptions` — 7 pembekal (Deepgram Nova 3, AssemblyAI, Groq Whisper, HuggingFace, ElevenLabs, OpenAI, Azure), pengesanan autobahasa, sokongan MP4/MP3/WAV | -| 🔊 **Teks-ke-Ucapan** | `/v1/audio/speech` — 10 pembekal (ElevenLabs, OpenAI, Deepgram, Cartesia, PlayHT, HuggingFace, Nvidia NIM, Inworld, Coqui, Tortoise) dengan mesej ralat yang betul | -| 🎬 **Penjanaan Video** | `/v1/videos/generations` (Aliran kerja ComfyUI + SD WebUI) | -| 🎵 **Generasi Muzik** | `/v1/music/generations` (aliran kerja ComfyUI) | -| 🛡️ **Kesederhanaan** | `/v1/moderations` pemeriksaan keselamatan | -| 🔀 **Penyusunan semula** | `/v1/rerank` untuk pemarkahan perkaitan | -| 🔍 **Carian Web** 🆕 | `/v1/search` — 5 pembekal (Serper, Brave, Perplexity, Exa, Tavily), 6,500+ percuma/bulan, auto-failover, cache | - -### 🛡️ Ketahanan, Keselamatan & Tadbir Urus - -| Ciri | Apa yang Dilakukan | -| ----------------------------------- | ------------------------------------------------------------------------------------------------------------ | -| 🔌 **Pemutus Litar** | Perjalanan/pulih setiap model dengan kawalan ambang | -| 🎯 **Model Sedar Titik Akhir** | Model tersuai mengisytiharkan titik akhir yang disokong + format API | -| 🛡️ **Kawanan Anti Guruh** | Perlindungan Mutex + semaphore pada acara cuba semula/kadar | -| 🧠 **Semantik + Cache Tandatangan** | Pengurangan kos/pendaman dengan dua lapisan cache | -| ⚡ **Minta Idepotency** | Tetingkap perlindungan pendua | -| 🔒 **TLS Fingerprint Spoofing** | Cap jari TLS seperti pelayar — **mengurangkan pengesanan bot dan pembenderaan akaun** | -| 🔏 **Padanan Cap Jari CLI** | Padan dengan tandatangan permintaan CLI asli — **mengurangkan risiko larangan sambil mengekalkan IP proksi** | -| 🌐 **Penapisan IP** | Kawalan senarai benar/senarai sekat untuk penempatan terdedah | -| 📊 **Had Kadar Boleh Diedit** | Had global/peringkat pembekal boleh dikonfigurasikan dengan kegigihan | -| 🔑 **Pengurusan Kunci API + Skop** | Kawalan pengeluaran/putaran kunci dan model/pembekal selamat | -| 🛡️ **Dilindungi `/models`** | Gating pengesahan pilihan dan penyembunyian penyedia untuk katalog model | - -### 📊 Kebolehlihatan & Analitis - -| Ciri | Apa yang Dilakukan | -| ------------------------------------- | ---------------------------------------------------------------- | -| 📝 **Permintaan + Pembalakan Proksi** | Permintaan/tindak balas penuh dan pengelogan proksi | -| 📉 **Streamed Detailed Logs** 🆕 | Reconstructs SSE payload streams cleanly into the UI | -| 📋 **Papan Pemuka Log Bersatu** | Permintaan, proksi, audit dan paparan konsol dalam satu halaman | -| 🔍 **Minta Telemetri** | kependaman p50/p95/p99 dan pengesanan permintaan | -| 🏥 **Papan Pemuka Kesihatan** | Masa aktif, keadaan pemutus, sekatan, statistik cache | -| 💰 **Penjejakan Kos** | Kawalan belanjawan dan keterlihatan harga setiap model | -| 📈 **Penggambaran Analitik** | Cerapan penggunaan model/pembekal dan pandangan arah aliran | -| 🧪 **Rangka Kerja Penilaian** | Ujian set emas dengan strategi perlawanan boleh dikonfigurasikan | - -### ☁️ Deployment & Platform - -| Ciri | Apa yang Dilakukan | -| ----------------------------- | --------------------------------------------------------------- | -| 🌐 **Kerahkan Di Mana-mana** | Localhost, VPS, Docker, persekitaran Cloud | -| 💾 **Penyegerakan Awan** | Penyegerakan konfigurasi melalui pekerja awan | -| 🔄 **Sandaran/Pulihkan** | Eksport/import dan aliran pemulihan bencana | -| 🧙 **Onboarding Wizard** | Persediaan berpandu jalan pertama | -| 🔧 **Papan Pemuka Alat CLI** | Persediaan satu klik untuk alat pengekodan popular | -| 🎮 **Taman Permainan Model** | Uji mana-mana pembekal/model/titik akhir daripada papan pemuka | -| 🔏 **Togol Cap Jari CLI** | Padanan cap jari setiap pembekal dalam Tetapan > Keselamatan | -| 🌐 **i18n (30 bahasa)** | Papan pemuka penuh + sokongan bahasa dokumen dengan liputan RTL | -| 🧹 **Kosongkan Semua Model** | Pembersihan senarai model satu klik dalam butiran pembekal | -| 👁️ **Sidebar Controls** 🆕 | Hide components and integrations from Appearance Settings | -| 📋 **Templat Isu** | Templat GitHub standard untuk pepijat dan ciri | -| 📂 **Direktori Data Tersuai** | `DATA_DIR` ganti untuk lokasi storan | - -### Menampilkan Deep Dive - -#### Saling balik pintar dengan kawalan kos praktikal - -```txt -Combo: "my-coding-stack" - 1. cc/claude-opus-4-6 - 2. nvidia/llama-3.3-70b - 3. glm/glm-4.7 - 4. if/kimi-k2-thinking -``` - -Apabila kuota, kadar atau kesihatan gagal, OmniRoute secara automatik beralih ke calon seterusnya tanpa penukaran manual. - -#### Pengurusan protokol yang boleh dilihat dan dikendalikan - -- MCP + A2A boleh ditemui dalam UI dan dokumen (tidak tersembunyi) -- API status protokol mendedahkan data operasi secara langsung (`/api/mcp/*`, `/api/a2a/*`) -- Papan pemuka termasuk tindakan untuk operasi hari ke-2 (togol kombo, penetapan semula pemutus, pembatalan tugas) - -#### Penterjemah + aliran kerja pengesahan - -Kawasan Penterjemah termasuk: - -- **Taman Permainan**: meminta semakan transformasi -- **Penguji Sembang**: permintaan penuh/tindak balas pergi balik -- **Bangku Ujian**: berbilang kes dalam satu larian -- **Pemantau Langsung**: paparan trafik masa nyata - -Selain itu pengesahan protokol dengan pelanggan sebenar melalui `npm run test:protocols:e2e`. - -> 📖 **[MCP Server README](open-sse/mcp-server/README.md)** — Rujukan alat, konfigurasi IDE dan contoh klien -> -> 📖 **[A2A Server README](src/lib/a2a/README.md)** — Kemahiran, kaedah JSON-RPC, penstriman dan kitaran hayat tugas - -## 🧪 Penilaian (Evals) - -OmniRoute termasuk rangka kerja penilaian terbina dalam untuk menguji kualiti tindak balas LLM terhadap set emas. Aksesnya melalui **Analytics → Evals** dalam papan pemuka. - -### Set Emas Terbina dalam - -"Set Emas OmniRoute" yang dipramuat mengandungi kes ujian untuk: - -- Salam, matematik, geografi, penjanaan kod -- Pematuhan format JSON, terjemahan, penjanaan turun nilai -- Penolakan keselamatan (kandungan berbahaya), pengiraan, logik boolean - -### Strategi Penilaian - -| Strategi | Penerangan | Contoh | -| ---------- | --------------------------------------------------------------------- | -------------------------------- | -| `exact` | Output mesti sepadan dengan tepat | `"4"` | -| `contains` | Output mesti mengandungi subrentetan (tidak peka huruf besar-besaran) | `"Paris"` | -| `regex` | Output mesti sepadan dengan corak regex | `"1.*2.*3"` | -| `custom` | Fungsi JS tersuai mengembalikan benar/salah | `(output) => output.length > 10` | - ---- - -## 📖 Panduan Persediaan - -### Persediaan Protokol (MCP + A2A) - -<details> -<summary><b>🧩 Persediaan MCP (Protokol Konteks Model)</b></summary> - -Mulakan pengangkutan MCP dalam mod stdio: - -```bash -omniroute --mcp -``` - -Aliran pengesahan yang disyorkan: - -1. Sambungkan klien MCP anda melalui stdio. -2. Jalankan `omniroute_get_health`. -3. Jalankan `omniroute_list_combos`. -4. Buka `/dashboard/mcp` untuk mengesahkan degupan jantung, aktiviti dan audit. - -API berguna untuk automasi: - -- `GET /api/mcp/status` -- `GET /api/mcp/tools` -- `GET /api/mcp/audit` -- `GET /api/mcp/audit/stats` - -</details> - -<details> -<summary><b>🤝 Persediaan A2A (Agent2Agent)</b></summary> - -Temui ejen: - -```bash -curl http://localhost:20128/.well-known/agent.json -``` - -Hantar tugasan: - -```bash -curl -X POST http://localhost:20128/a2a \ - -H 'content-type: application/json' \ - -d '{"jsonrpc":"2.0","id":"setup-a2a","method":"message/send","params":{"skill":"quota-management","messages":[{"role":"user","content":"Summarize quota status."}]}}' -``` - -Urus kitaran hayat: - -- `GET /api/a2a/status` -- `GET /api/a2a/tasks` -- `GET /api/a2a/tasks/:id` -- `POST /api/a2a/tasks/:id/cancel` - -UI Operasi: - -- `/dashboard/a2a` untuk pemerhatian tugas/keadaan/strim dan tindakan asap - -</details> - -<details> -<summary><b>🧪 Pengesahan protokol hujung ke hujung</b></summary> - -Sahkan kedua-dua protokol dengan pelanggan sebenar: - -```bash -npm run test:protocols:e2e -``` - -Ini mengesahkan: - -- Sambung/senarai/panggilan klien MCP SDK -- Penemuan A2A/hantar/strim/dapat/batal -- Semak silang data dalam audit MCP dan API pengurusan tugas A2A - -</details> - -<details> -<summary><b>💳 Pembekal Langganan</b></summary> - -### Kod Claude (Pro/Max) - -```bash -Dashboard → Providers → Connect Claude Code -→ OAuth login → Auto token refresh -→ 5-hour + weekly quota tracking - -Models: - cc/claude-opus-4-6 - cc/claude-sonnet-4-5-20250929 - cc/claude-haiku-4-5-20251001 -``` - -**Petua Pro:** Gunakan Opus untuk tugas yang rumit, Sonnet untuk kelajuan. OmniRoute menjejaki kuota setiap model! - -### OpenAI Codex (Plus/Pro) - -```bash -Dashboard → Providers → Connect Codex -→ OAuth login (port 1455) -→ 5-hour + weekly reset - -Models: - cx/gpt-5.2-codex - cx/gpt-5.1-codex-max -``` - -#### Pengurusan Had Akaun Codex (5j + Mingguan) - -Setiap akaun Codex kini mempunyai togol dasar dalam `Dashboard -> Providers`: - -- `5h` (HIDUP/MATI): menguatkuasakan dasar ambang tetingkap 5 jam. -- `Weekly` (HIDUP/MATI): menguatkuasakan dasar ambang tetingkap mingguan. -- Tingkah laku ambang: apabila tetingkap yang didayakan mencapai >=90% penggunaan, akaun itu dilangkau. -- Tingkah laku putaran: Laluan OmniRoute ke akaun Codex yang layak seterusnya secara automatik. -- Tetapkan semula tingkah laku: apabila masa pembekal `resetAt` berlalu, akaun menjadi layak semula secara automatik. - -Senario: - -- `5h ON` + `Weekly ON`: akaun dilangkau apabila mana-mana tetingkap mencapai ambang. -- `5h OFF` + `Weekly ON`: hanya penggunaan mingguan boleh menyekat akaun. -- `5h ON` + `Weekly OFF`: hanya penggunaan 5 jam boleh menyekat akaun. -- `resetAt` lulus: akaun memasuki semula putaran secara automatik (tiada manual didayakan semula). - -### Gemini CLI (PERCUMA 180K/bulan!) - -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Nilai Terbaik:** Peringkat percuma yang besar! Gunakan ini sebelum peringkat berbayar. - -### Copilot GitHub - -```bash -Dashboard → Providers → Connect GitHub -→ OAuth via GitHub -→ Monthly reset (1st of month) - -Models: - gh/gpt-5 - gh/claude-4.5-sonnet - gh/gemini-3-pro -``` - -</details> - -<details> -<summary><b>🔑 Pembekal Kunci API</b></summary> - -### NVIDIA NIM (Akses pembangun PERCUMA — 70+ model) - -1. Daftar: [build.nvidia.com](https://build.nvidia.com) -2. Dapatkan kunci API percuma (1000 kredit inferens disertakan) -3. Papan Pemuka → Tambah Pembekal → NVIDIA NIM: - - Kunci API: `nvapi-your-key` - -**Model:** `nvidia/llama-3.3-70b-instruct`, `nvidia/mistral-7b-instruct` dan 50+ lagi - -**Petua Pro:** API serasi OpenAI — berfungsi dengan lancar dengan terjemahan format OmniRoute! - -### DeepSeek - -1. Daftar: [platform.deepseek.com](https://platform.deepseek.com) -2. Dapatkan kunci API -3. Papan Pemuka → Tambah Pembekal → DeepSeek - -**Model:** `deepseek/deepseek-chat`, `deepseek/deepseek-coder` - -### Groq (Tier Percuma Tersedia!) - -1. Daftar: [console.groq.com](https://console.groq.com) -2. Dapatkan kunci API (termasuk peringkat percuma) -3. Papan Pemuka → Tambah Pembekal → Groq - -**Model:** `groq/llama-3.3-70b`, `groq/mixtral-8x7b` - -**Petua Pro:** Inferens sangat pantas — terbaik untuk pengekodan masa nyata! - -### OpenRouter (100+ Model) - -1. Daftar: [openrouter.ai](https://openrouter.ai) -2. Dapatkan kunci API -3. Papan Pemuka → Tambah Pembekal → OpenRouter - -**Model:** Akses 100+ model daripada semua pembekal utama melalui kunci API tunggal. - -</details> - -<details> -<summary><b>💰 Penyedia Murah (Sandaran)</b></summary> - -### GLM-4.7 (Tetapan semula harian, $0.6/1J) - -1. Daftar: [Zhipu AI](https://open.bigmodel.cn/) -2. Dapatkan kunci API daripada Pelan Pengekodan -3. Papan Pemuka → Tambah Kunci API: - - Pembekal: `glm` - - Kunci API: `your-key` - -**Gunakan:** `glm/glm-4.7` - -**Petua Pro:** Pelan Pengekodan menawarkan kuota 3× pada kos 1/7! Tetapkan semula setiap hari 10:00 AM. - -### MiniMax M2.1 (tetapan semula 5j, $0.20/1J) - -1. Daftar: [MiniMax](https://www.minimax.io/) -2. Dapatkan kunci API -3. Papan Pemuka → Tambah Kunci API - -**Gunakan:** `minimax/MiniMax-M2.1` - -**Petua Pro:** Pilihan termurah untuk konteks panjang (token 1M)! - -### Kimi K2 ($9/bulan rata) - -1. Langgan: [Moonshot AI](https://platform.moonshot.ai/) -2. Dapatkan kunci API -3. Papan Pemuka → Tambah Kunci API - -**Gunakan:** `kimi/kimi-latest` - -**Petua Pro:** Tetap $9/bulan untuk 10J token = $0.90/1J kos efektif! - -</details> - -<details> -<summary><b>🆓 Pembekal PERCUMA (Sandaran Kecemasan)</b></summary> - -### Qoder (5 model PERCUMA melalui OAuth) - -```bash -Dashboard → Connect Qoder -→ Qoder OAuth login -→ Unlimited usage - -Models: - if/kimi-k2-thinking - if/qwen3-coder-plus - if/glm-4.7 - if/minimax-m2 - if/deepseek-r1 -``` - -### Qwen (4 model PERCUMA melalui Kod Peranti) - -```bash -Dashboard → Connect Qwen -→ Device code authorization -→ Unlimited usage - -Models: - qw/qwen3-coder-plus - qw/qwen3-coder-flash -``` - -### Kiro (Claude PERCUMA) - -```bash -Dashboard → Connect Kiro -→ AWS Builder ID or Google/GitHub -→ Unlimited usage - -Models: - kr/claude-sonnet-4.5 - kr/claude-haiku-4.5 -``` - -</details> - -<details> -<summary><b>🎨 Cipta Kombo</b></summary> - -### Contoh 1: Maksimumkan Langganan → Sandaran Murah - -``` -Dashboard → Combos → Create New - -Name: premium-coding -Models: - 1. cc/claude-opus-4-6 (Subscription primary) - 2. glm/glm-4.7 (Cheap backup, $0.6/1M) - 3. minimax/MiniMax-M2.1 (Cheapest fallback, $0.20/1M) - -Use in CLI: premium-coding -``` - -### Contoh 2: Percuma-Sahaja (Kos Sifar) - -``` -Name: free-combo -Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) - -Cost: $0 forever! -``` - -</details> - -<details> -<summary><b>🔧 CLI Integrasi</b></summary> - -### IDE Kursor - -``` -Settings → Models → Advanced: - OpenAI API Base URL: http://localhost:20128/v1 - OpenAI API Key: [from OmniRoute dashboard] - Model: cc/claude-opus-4-6 -``` - -### Kod Claude - -Gunakan halaman **CLI Tools** dalam papan pemuka untuk konfigurasi satu klik atau edit `~/.claude/settings.json` secara manual. - -### Codex CLI - -```bash -export OPENAI_BASE_URL="http://localhost:20128" -export OPENAI_API_KEY="your-omniroute-api-key" - -codex "your prompt" -``` - -### OpenClaw - -**Pilihan 1 — Papan Pemuka (disyorkan):** - -``` -Dashboard → CLI Tools → OpenClaw → Select Model → Apply -``` - -**Pilihan 2 — Manual:** Edit `~/.openclaw/openclaw.json`: - -```json -{ - "models": { - "providers": { - "omniroute": { - "baseUrl": "http://127.0.0.1:20128/v1", - "apiKey": "sk_omniroute", - "api": "openai-completions" - } - } - } -} -``` - -> **Nota:** OpenClaw hanya berfungsi dengan OmniRoute tempatan. Gunakan `127.0.0.1` dan bukannya `localhost` untuk mengelakkan isu resolusi IPv6. - -### Cline / Teruskan / RooCode - -``` -Settings → API Configuration: - Provider: OpenAI Compatible - Base URL: http://localhost:20128/v1 - API Key: [from OmniRoute dashboard] - Model: if/kimi-k2-thinking -``` - -### OpenCode - -**Langkah 1:** Tambahkan OmniRoute sebagai pembekal tersuai: - -```bash -opencode -/connect -# Select "Other" → Enter ID: "omniroute" → Enter your OmniRoute API key -``` - -**Langkah 2:** Cipta/edit `opencode.json` dalam akar projek anda: - -```json -{ - "$schema": "https://opencode.ai/config.json", - "provider": { - "omniroute": { - "npm": "@ai-sdk/openai-compatible", - "name": "OmniRoute", - "options": { - "baseURL": "http://localhost:20128/v1" - }, - "models": { - "cc/claude-sonnet-4-20250514": { "name": "Claude Sonnet 4" }, - "gg/gemini-2.5-pro": { "name": "Gemini 2.5 Pro" }, - "if/kimi-k2-thinking": { "name": "Kimi K2 (Free)" } - } - } - } -} -``` - -**Langkah 3:** Pilih model dalam OpenCode: - -```bash -/models -# Select any OmniRoute model from the list -``` - -> **Petua:** Tambahkan sebarang model yang tersedia dalam titik akhir `/v1/models` OmniRoute anda ke bahagian `models`. Gunakan format `provider/model-id` daripada papan pemuka OmniRoute anda. - -</details> - ---- - -## 🐛 Menyelesaikan masalah - -<details> -<summary><b>Klik untuk mengembangkan panduan penyelesaian masalah</b></summary> - -**"Model bahasa tidak memberikan mesej"** - -- Kuota pembekal habis → Semak penjejak kuota papan pemuka -- Penyelesaian: Gunakan sandaran kombo atau tukar kepada peringkat yang lebih murah - -**Penghadan kadar** - -- Kuota langganan habis → Sandar kepada GLM/MiniMax -- Tambah kombo: `cc/claude-opus-4-6 → glm/glm-4.7 → if/kimi-k2-thinking` - -**Token OAuth tamat tempoh** - -- Dikemas semula secara automatik oleh OmniRoute -- Jika isu berterusan: Papan Pemuka → Pembekal → Sambung semula - -**Kos tinggi** - -- Semak statistik penggunaan dalam Papan Pemuka → Kos -- Tukar model utama kepada GLM/MiniMax -- Gunakan peringkat percuma (Gemini CLI, Qoder) untuk tugasan yang tidak kritikal - -**Port papan pemuka/API salah** - -- `PORT` ialah port asas kanonik (dan port API secara lalai) -- `API_PORT` mengatasi hanya pendengar API yang serasi dengan OpenAI -- `DASHBOARD_PORT` mengatasi hanya papan pemuka/pendengar Next.js -- Tetapkan `NEXT_PUBLIC_BASE_URL` pada papan pemuka/URL awam anda (untuk panggilan balik OAuth) - -**Ralat penyegerakan awan** - -- Sahkan `BASE_URL` mata pada contoh larian anda -- Sahkan `CLOUD_URL` mata ke titik akhir awan anda yang dijangkakan -- Pastikan nilai `NEXT_PUBLIC_*` sejajar dengan nilai sebelah pelayan - -**Log masuk pertama tidak berfungsi** - -- Semak `INITIAL_PASSWORD` dalam `.env` -- Jika tidak ditetapkan, kata laluan sandaran ialah `123456` - -**Tiada log permintaan** - -- Tetapkan `ENABLE_REQUEST_LOGS=true` dalam `.env` - -**Ujian sambungan menunjukkan "Tidak sah" untuk pembekal yang serasi dengan OpenAI** - -- Banyak pembekal tidak mendedahkan titik akhir `/models` -- OmniRoute v1.0.6+ termasuk pengesahan sandaran melalui pelengkapan sembang -- Pastikan URL asas mengandungi akhiran `/v1` - -### 🔐 OAuth pada Pelayan Jauh - -<a name="oauth-on-a-remote-server"></a> -<a name="oauth-em-servidor-remoto"></a> - -> **⚠️ Penting untuk pengguna yang menjalankan OmniRoute pada VPS, Docker atau mana-mana pelayan jauh** - -#### Mengapa Antigravity / Gemini CLI OAuth gagal pada pelayan jauh? - -Pembekal **Antigravity** dan **Gemini CLI** menggunakan **Google OAuth 2.0**. Google memerlukan `redirect_uri` dalam aliran OAuth agar sepadan dengan salah satu URI pradaftar dalam Konsol Awan Google apl. - -Bukti kelayakan OAuth yang digabungkan dalam OmniRoute didaftarkan **untuk `localhost` sahaja**. Apabila anda mengakses OmniRoute pada pelayan jauh (cth. `https://omniroute.myserver.com`), Google menolak pengesahan dengan: - -``` -Error 400: redirect_uri_mismatch -``` - -#### Penyelesaian: Konfigurasikan bukti kelayakan OAuth anda sendiri - -Anda perlu membuat **ID Klien OAuth 2.0** dalam Google Cloud Console dengan URI pelayan anda. - -#### Langkah demi langkah - -**1. Buka Google Cloud Console** - -Pergi ke: [https://console.cloud.google.com/apis/credentials](https://console.cloud.google.com/apis/credentials) - -**2. Buat ID Pelanggan OAuth 2.0 baharu** - -- Klik **"+ Cipta Bukti kelayakan"** → **"ID klien OAuth"** -- Jenis aplikasi: **"Aplikasi web"** -- Nama: apa sahaja yang anda suka (cth. `OmniRoute Remote`) - -**3. Tambah URI Ubah Hala Dibenarkan** - -Dalam medan **"URI halauan dibenarkan"**, tambahkan: - -``` -https://your-server.com/callback -``` - -> Gantikan `your-server.com` dengan domain atau IP pelayan anda (sertakan port jika perlu, cth. `http://45.33.32.156:20128/callback`). - -**4. Simpan dan salin bukti kelayakan** - -Selepas membuat, Google akan menunjukkan **ID Pelanggan** dan **Rahsia Pelanggan**. - -**5. Tetapkan pembolehubah persekitaran** - -Dalam `.env` anda (atau pembolehubah persekitaran Docker): - -```bash -# For Antigravity: -ANTIGRAVITY_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com -ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-your-secret - -# For Gemini CLI: -GEMINI_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com -GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -``` - -**6. Mulakan semula OmniRoute** - -```bash -# npm: -npm run dev - -# Docker: -docker restart omniroute -``` - -**7. Cuba sambung semula** - -Papan pemuka → Pembekal → Antigraviti (atau Gemini CLI) → OAuth - -Google kini akan mengubah hala dengan betul ke `https://your-server.com/callback`. - ---- - -#### Penyelesaian sementara (tanpa kelayakan tersuai) - -Jika anda tidak mahu menyediakan bukti kelayakan anda sendiri sekarang, anda masih boleh menggunakan **aliran URL manual**: - -1. OmniRoute membuka URL kebenaran Google -2. Selepas memberi kebenaran, Google cuba mengubah hala ke `localhost` (yang gagal pada pelayan jauh) -3. **Salin URL penuh** dari bar alamat penyemak imbas anda (walaupun halaman tidak dimuatkan) -4. Tampalkan URL tersebut ke dalam medan yang ditunjukkan dalam modal sambungan OmniRoute -5. Klik **"Sambung"** - -> Ini berfungsi kerana kod kebenaran dalam URL adalah sah tidak kira sama ada halaman ubah hala dimuatkan. - ---- - -<details> -<summary><b>🇧🇷 Versão em Português</b></summary> - -#### Adakah OAuth melakukan Antigraviti / Gemini CLI tidak menggunakan perkhidmatan anda? - -Ia membuktikan **Antigraviti** dan **Gemini CLI** menggunakan **Google OAuth 2.0** untuk autenticação. O Google exige que a `redirect_uri` gunakan tiada fluks OAuth seja **exatamente** uma das URIs pré-cadastradas no Google Cloud Console untuk aplicativo. - -Sebagai credenciais OAuth embutidas no OmniRoute estão cadastradas **apenas untuk `localhost`**. Quando você acessa o OmniRoute em um servidor remoto (cth: `https://omniroute.meuservidor.com`), o Google rejeita a autenticação com: - -``` -Error 400: redirect_uri_mismatch -``` - -#### Penyelesaian: Konfigurasikan suas próprias credenciais OAuth - -Você precisa criar um **OAuth 2.0 Client ID** no Google Cloud Console com a URI do seu servidor. - -#### Passo a passo - -**1. Akses ke Konsol Awan Google** - -Abra: [https://console.cloud.google.com/apis/credentials](https://console.cloud.google.com/apis/credentials) - -**2. Crie um novo ID Pelanggan OAuth 2.0** - -- Klik em **"+ Cipta Bukti Kelayakan"** → **"ID klien OAuth"** -- Tipo de aplicativo: **"Aplikasi web"** -- Nama: escolha qualquer nome (cth: `OmniRoute Remote`) - -**3. Tambah sebagai URI Ubah Hala Dibenarkan** - -Tiada **"URI ubah hala yang dibenarkan"**, tambahan: - -``` -https://seu-servidor.com/callback -``` - -> Gantikan `seu-servidor.com` pelo domínio ou IP do seu servidor (termasuk porta se necessário, cth: `http://45.33.32.156:20128/callback`). - -**4. Simpan dan salin sebagai kredensia** - -Após criar, o Google mostrará o **ID Pelanggan** e o **Rahsia Pelanggan**. - -**5. Konfigurasikan sebagai variáveis de ambiente** - -No seu `.env` (ou nas variáveis de ambiente do Docker): - -```bash -# Para Antigravity: -ANTIGRAVITY_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com -ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret - -# Para Gemini CLI: -GEMINI_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com -GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -``` - -**6. Reinicie o OmniRoute** - -```bash -# Se usando npm: -npm run dev - -# Se usando Docker: -docker restart omniroute -``` - -**7. Tente conectar novamente** - -Papan pemuka → Pembekal → Antigraviti (ou Gemini CLI) → OAuth - -Agora o Google redirectionará corretamente untuk `https://seu-servidor.com/callback` dan a autenticação funcionará. - ---- - -#### Penyelesaian sementara (sem configurar credenciais próprias) - -Jika anda ingin mendapatkan credenciais próprias agora, ada kemungkinan penggunaan atau fluks **manual de URL**: - -1. OmniRoute abrirá a URL de authorização do Google -2. Após você authorizar, o Google tentará redirectionar para `localhost` (que falha no servidor remoto) -3. **Salin URL yang lengkap** pada penyemak imbas barra de endeço do seu (mesmo que a página não carregue) -4. Cole essa URL no campo que aparece no modal de conexão do OmniRoute -5. Klik em **"Sambung"** - -> Penyelesaian ini berfungsi sebagai kodigo de autorização na URL adalah bebas untuk mengubah hala mengikut arahan atau tidak. - -</details> - ---- - -</details> - -## 🛠️ Timbunan Teknologi - -<details> -<summary><b>Klik untuk mengembangkan butiran tindanan teknologi</b></summary> - -- **Waktu Jalan**: Node.js 18–22 LTS (⚠️ Node.js 24+ **tidak disokong** — `better-sqlite3` binari asli tidak serasi) -- **Bahasa**: TypeScript 5.9 — **100% TypeScript** merentas `src/` dan `open-sse/` (sifar `any` dalam modul teras sejak v2.0) -- **Kerangka**: Next.js 16 + React 19 + Tailwind CSS 4 -- **Pangkalan Data**: LowDB (JSON) + SQLite (keadaan domain + log proksi + audit MCP + keputusan penghalaan) -- **Skema**: Zod (pengesahan I/O alat MCP, kontrak API) -- **Protokol**: MCP (stdio/HTTP) + A2A v0.3 (JSON-RPC 2.0 + SSE) -- **Penstriman**: Acara Dihantar Pelayan (SSE) -- **Auth**: OAuth 2.0 (PKCE) + JWT + API Keys + MCP Scoped Authorization -- **Ujian**: Pelari ujian Node.js + Vitest (900+ ujian termasuk unit, penyepaduan, E2E) -- **CI/CD**: GitHub Actions (auto npm publish + Docker Hub pada keluaran) -- **Laman web**: [omniroute.online](https://omniroute.online) -- **Pakej**: [npmjs.com/package/omniroute](https://www.npmjs.com/package/omniroute) -- **Docker**: [hub.docker.com/r/diegosouzapw/omniroute](https://hub.docker.com/r/diegosouzapw/omniroute) -- **Ketahanan**: Pemutus litar, pengunduran eksponen, kumpulan anti-gemuruh, penipuan TLS, penyembuhan diri kombo automatik - -</details> - ---- - -## 📖 Dokumentasi - -| Dokumen | Penerangan | -| ---------------------------------------------- | -------------------------------------------------------- | -| [User Guide](docs/USER_GUIDE.md) | Pembekal, kombo, penyepaduan CLI, penggunaan | -| [API Reference](docs/API_REFERENCE.md) | Semua titik akhir dengan contoh | -| [MCP Server](open-sse/mcp-server/README.md) | 16 alatan MCP, konfigurasi IDE, pelanggan Python/TS/Go | -| [A2A Server](src/lib/a2a/README.md) | JSON-RPC 2.0 protokol, kemahiran, penstriman, mgmt tugas | -| [Auto-Combo Engine](docs/auto-combo.md) | Pemarkahan 6 faktor, pek mod, penyembuhan diri | -| [Troubleshooting](docs/TROUBLESHOOTING.md) | Masalah dan penyelesaian biasa | -| [Architecture](docs/ARCHITECTURE.md) | Seni bina sistem dan dalaman | -| [Contributing](CONTRIBUTING.md) | Persediaan pembangunan dan garis panduan | -| [OpenAPI Spec](docs/openapi.yaml) | Spesifikasi OpenAPI 3.0 | -| [Security Policy](SECURITY.md) | Pelaporan kerentanan dan amalan keselamatan | -| [VM Deployment](docs/VM_DEPLOYMENT_GUIDE.md) | Panduan lengkap: Persediaan VM + nginx + Cloudflare | -| [Features Gallery](docs/FEATURES.md) | Lawatan papan pemuka visual dengan tangkapan skrin | -| [Release Checklist](docs/RELEASE_CHECKLIST.md) | Langkah pengesahan prakeluaran | - ---- - -## 🗺️ Pelan Hala Tuju - -OmniRoute mempunyai **210+ ciri yang dirancang** merentas berbilang fasa pembangunan. Berikut adalah bidang utama: - -| Kategori | Ciri Terancang | Sorotan | -| ------------------------------ | -------------- | ---------------------------------------------------------------------------------------------------- | -| 🧠 **Penghalaan & Perisikan** | 25+ | Penghalaan kependaman terendah, penghalaan berasaskan teg, kuota prapenerbangan, pemilihan akaun P2C | -| 🔒 **Keselamatan & Pematuhan** | 20+ | Pengerasan SSRF, penyelubungan kelayakan, had kadar setiap titik akhir, skop kunci pengurusan | -| 📊 **Kebolehlihatan** | 15+ | Penyepaduan OpenTelemetry, pemantauan kuota masa nyata, penjejakan kos setiap model | -| 🔄 **Integrasi Pembekal** | 20+ | Pendaftaran model dinamik, penyejukan pembekal, Codex berbilang akaun, penghuraian kuota Copilot | -| ⚡ **Prestasi** | 15+ | Lapisan cache dwi, ​​cache gesaan, cache respons, penstriman keepalive, API kelompok | -| 🌐 **Ekosistem** | 10+ | API WebSocket, konfigurasi hot-reload, kedai konfigurasi teragih, mod komersial | - -### 🔜 Akan Datang - -- 🔗 **OpenCode Integration** — Sokongan pembekal asli untuk IDE pengekodan AI OpenCode -- 🔗 **Pengintegrasian TRAE** — Sokongan penuh untuk rangka kerja pembangunan TRAE AI -- 📦 **API Kelompok** — Pemprosesan kelompok tak segerak untuk permintaan pukal -- 🎯 **Penghalaan Berasaskan Teg** — Permintaan laluan berdasarkan teg tersuai dan metadata -- 💰 **Strategi Kos Terendah** — Pilih pembekal yang tersedia paling murah secara automatik - -> 📝 Spesifikasi ciri penuh tersedia dalam [**OMNI_TOKEN_342**](docs/new-features/) (217 spesifikasi terperinci) - ---- - -## 👥 Penyumbang - -[![Contributors](https://contrib.rocks/image?repo=diegosouzapw/OmniRoute&max=100&columns=20&anon=1)](https://github.com/diegosouzapw/OmniRoute/graphs/contributors) - -### Cara Menyumbang - -1. Garpu repositori -2. Buat cawangan ciri anda (`git checkout -b feature/amazing-feature`) -3. Serahkan perubahan anda (`git commit -m 'Add amazing feature'`) -4. Tolak ke cawangan (`git push origin feature/amazing-feature`) -5. Buka Permintaan Tarik - -Lihat [CONTRIBUTING.md](CONTRIBUTING.md) untuk mendapatkan garis panduan terperinci. - -### Mengeluarkan Versi Baharu - -```bash -# Create a release — npm publish happens automatically -gh release create v2.0.0 --title "v2.0.0" --generate-notes -``` - ---- - -## 📊 Sejarah Bintang - -## Stargazers dari semasa ke semasa - -## [![Stargazers over time](https://starchart.cc/diegosouzapw/OmniRoute.svg?variant=adaptive)](https://starchart.cc/diegosouzapw/OmniRoute) - -## 🙏 Ucapan terima kasih - -Terima kasih khas kepada **[9router](https://github.com/decolua/9router)** oleh **[decolua](https://github.com/decolua)** — projek asal yang mengilhamkan garpu ini. OmniRoute membina asas yang luar biasa itu dengan ciri tambahan, API berbilang modal dan penulisan semula TypeScript penuh. - -Terima kasih khas kepada **[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)** — pelaksanaan Go asal yang mengilhamkan port JavaScript ini. - ---- - -## 📄 Lesen - -Lesen MIT - lihat [LICENSE](LICENSE) untuk butiran. - ---- - -<div align="center"> - <sub>Dibina dengan ❤️ untuk pembangun yang kod 24/7</sub> - <br/> - <sub><a href="https://omniroute.online">omniroute.online</a></sub> -</div> -<!-- Perbincangan GitHub didayakan untuk Soal Jawab komuniti --> +👉 **[Read the Documentation here](docs/i18n/ms/README.md)** diff --git a/README.nl.md b/README.nl.md index 5c787eeaf2..f7a878e69e 100644 --- a/README.nl.md +++ b/README.nl.md @@ -1,2077 +1,5 @@ -# 🚀 OmniRoute — De gratis AI-gateway +# 🌐 OmniRoute (nl) -### Stop nooit met coderen. Slimme routering naar **GRATIS en voordelige AI-modellen** met automatische terugval. +The documentation has been formalized and moved to our centralized i18n structure. -_Uw universele API-proxy: één eindpunt, meer dan 67 providers, geen downtime. Nu met **MCP- en A2A**-agentorkestratie._ - -**Chat voltooid • Insluitingen • Beeld genereren • Video • Muziek • Audio • Herrangschikking • **Webzoeken** • MCP-server • A2A-protocol • 100% TypeScript** - ---- - -<div align="center"> - -[![npm version](https://img.shields.io/npm/v/omniroute?color=cb3837&logo=npm)](https://www.npmjs.com/package/omniroute) -[![npm downloads](https://img.shields.io/npm/dm/omniroute?color=cb3837&logo=npm&label=npm%20downloads)](https://www.npmjs.com/package/omniroute) -[![Docker Hub](https://img.shields.io/docker/v/diegosouzapw/omniroute?label=Docker%20Hub&logo=docker&color=2496ED)](https://hub.docker.com/r/diegosouzapw/omniroute) -[![Docker Pulls](https://img.shields.io/docker/pulls/diegosouzapw/omniroute?logo=docker&color=2496ED&label=docker%20pulls)](https://hub.docker.com/r/diegosouzapw/omniroute) -[![License](https://img.shields.io/github/license/diegosouzapw/OmniRoute)](https://github.com/diegosouzapw/OmniRoute/blob/main/LICENSE) -[![Website](https://img.shields.io/badge/Website-omniroute.online-blue?logo=google-chrome&logoColor=white)](https://omniroute.online) -[![WhatsApp](https://img.shields.io/badge/WhatsApp-Community-25D366?logo=whatsapp&logoColor=white)](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) - -[🌐 Website](https://omniroute.online) • [🚀 Quick Start](#-quick-start) • [💡 Features](#-key-features) • [📖 Docs](#-documentation) • [💰 Pricing](#-pricing-at-a-glance) • [💬 WhatsApp](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) - -</div> - -🌐 **Verkrijgbaar in:** 🇺🇸 [English](README.md) | 🇧🇷 [Português (Brasil)](docs/i18n/pt-BR/README.md) | 🇪🇸 [Español](docs/i18n/es/README.md) | 🇫🇷 [Français](docs/i18n/fr/README.md) | 🇮🇹 [Italiano](docs/i18n/it/README.md) | 🇷🇺 [Русский](docs/i18n/ru/README.md) | 🇨🇳 [中文 (简体)](docs/i18n/zh-CN/README.md) | 🇩🇪 [Deutsch](docs/i18n/de/README.md) | 🇮🇳 [हिन्दी](docs/i18n/in/README.md) | 🇹🇭 [ไทย](docs/i18n/th/README.md) | 🇺🇦 [Українська](docs/i18n/uk-UA/README.md) | 🇸🇦 [العربية](docs/i18n/ar/README.md) | 🇯🇵 [日本語](docs/i18n/ja/README.md) | 🇻🇳 [Tiếng Việt](docs/i18n/vi/README.md) | 🇧🇬 [Български](docs/i18n/bg/README.md) | 🇩🇰 [Dansk](docs/i18n/da/README.md) | 🇫🇮 [Suomi](docs/i18n/fi/README.md) | 🇮🇱 [עברית](docs/i18n/he/README.md) | 🇭🇺 [Magyar](docs/i18n/hu/README.md) | 🇮🇩 [Bahasa Indonesia](docs/i18n/id/README.md) | 🇰🇷 [한국어](docs/i18n/ko/README.md) | 🇲🇾 [Bahasa Melayu](docs/i18n/ms/README.md) | 🇳🇱 [Nederlands](docs/i18n/nl/README.md) | 🇳🇴 [Norsk](docs/i18n/no/README.md) | 🇵🇹 [Português (Portugal)](docs/i18n/pt/README.md) | 🇷🇴 [Română](docs/i18n/ro/README.md) | 🇵🇱 [Polski](docs/i18n/pl/README.md) | 🇸🇰 [Slovenčina](docs/i18n/sk/README.md) | 🇸🇪 [Svenska](docs/i18n/sv/README.md) | 🇵🇭 [Filipino](docs/i18n/phi/README.md) | 🇨🇿 [Čeština](docs/i18n/cs/README.md) - ---- - -## 🆕 Wat is er nieuw in v3.0.0 - -> **Upgraden vanaf v2.9.5?** — Zie [full CHANGELOG](CHANGELOG.md#300--2026-03-22-release-candidate--not-yet-merged-to-main) voor alle wijzigingen. - -| Gebied | Wijzig | -| ---------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 🔒 **CodeQL-beveiliging** | Meer dan 10 CodeQL-waarschuwingen opgelost: polynomiale herhalingen, onveilige willekeur, herstel door shell-injectie | -| ✅ **Routevalidatie** | Alle 176 API-routes nu gevalideerd met Zod-schema's + `validateBody()` — CI `check:route-validation:t06` passen | -| 🐛 **omniModel-tag lekt** | Interne `<omniModel>`-tags lekken niet langer naar clients in SSE-streamingreacties (#585) | -| 🔑 **Geregistreerde sleutels-API** | API-sleutels automatisch inrichten via `POST /api/v1/registered-keys` met handhaving van quota per provider/account, idempotentie, SHA-256-opslag en optionele GitHub-probleemrapportage | -| 👁️ **Scoped API Key Reveal** 🆕 | Opt-in recovery of API keys via `ALLOW_API_KEY_REVEAL` | -| 🎨 **Providerpictogrammen** | 130+ providerlogo's via `@lobehub/icons` (SVG) met PNG → generieke fallback-keten | -| 🔄 **Model automatische synchronisatie** | 24-uurs planner en handmatige UI-schakelaar om modellijsten te synchroniseren voor ingebouwde en aangepaste OpenAI-compatibele providers | -| 🌐 **OpenCode Zen/Go** | Twee nieuwe providers van @kang-heewon via PR #530: gratis niveau + abonnementsniveau via `OpencodeExecutor` | -| 🐛 **Gemini CLI OAuth** | Bruikbare fout wanneer `GEMINI_OAUTH_CLIENT_SECRET` ontbreekt in Docker (was een cryptische Google-fout) | -| 🐛 **OpenCode-configuratie** | `saveOpenCodeConfig()` schrijft nu correct TOML naar `XDG_CONFIG_HOME` | -| 🐛 **Vastgezette modeloverschrijving** | `body.model` correct ingesteld op `pinnedModel` bij contextcachebeveiliging | -| 🐛 **Codex/Claude-lus** | `tool_result` blokken nu geconverteerd naar tekst om oneindige lussen te stoppen | -| 🐛 **Inlogomleiding** | Inloggen loopt niet langer vast na het overslaan van het instellen van het wachtwoord | -| 🐛 **Windows-paden** | MSYS2/Git-Bash-paden (`/c/...`) automatisch genormaliseerd naar `C:\...` | - ---- - -## 🖼️ Hoofddashboard - -<div align="center"> - <img src="./docs/screenshots/MainOmniRoute.png" alt="OmniRoute Dashboard" width="800"/> -</div> - ---- - -## 📸 Dashboardvoorbeeld - -<details> -<summary><b>Klik om dashboardscreenshots te bekijken</b></summary> - -| Pagina | Schermafbeelding | -| --------------------- | ------------------------------------------------- | -| **Aanbieders** | ![Providers](docs/screenshots/01-providers.png) | -| **Combo's** | ![Combos](docs/screenshots/02-combos.png) | -| **Analytics** | ![Analytics](docs/screenshots/03-analytics.png) | -| **Gezondheid** | ![Health](docs/screenshots/04-health.png) | -| **Vertaler** | ![Translator](docs/screenshots/05-translator.png) | -| **Instellingen** | ![Settings](docs/screenshots/06-settings.png) | -| **CLI-hulpmiddelen** | ![CLI Tools](docs/screenshots/07-cli-tools.png) | -| **Gebruikslogboeken** | ![Usage](docs/screenshots/08-usage.png) | -| **Eindpunten** | ![Endpoints](docs/screenshots/09-endpoint.png) | - -</details> - ---- - -### 🤖 Gratis AI-provider voor uw favoriete codeeragenten - -_Verbind elke AI-aangedreven IDE- of CLI-tool via OmniRoute: gratis API-gateway voor onbeperkte codering._ - - <table> - <tr> - <td align="center" width="110"> - <a href="https://github.com/openclaw/openclaw"> - <img src="./public/providers/openclaw.png" alt="OpenClaw" width="48"/><br/> - <b>OpenClaw</b> - </a><br/> - <sub>⭐ 205K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/HKUDS/nanobot"> - <img src="./public/providers/nanobot.png" alt="NanoBot" width="48"/><br/> - <b>NanoBot</b> - </a><br/> - <sub>⭐ 20.9K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/sipeed/picoclaw"> - <img src="./public/providers/picoclaw.jpg" alt="PicoClaw" width="48"/><br/> - <b>PicoClaw</b> - </a><br/> - <sub>⭐ 14.6K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/zeroclaw-labs/zeroclaw"> - <img src="./public/providers/zeroclaw.png" alt="ZeroClaw" width="48"/><br/> - <b>ZeroClaw</b> - </a><br/> - <sub>⭐ 9.9K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/nearai/ironclaw"> - <img src="./public/providers/ironclaw.png" alt="IronClaw" width="48"/><br/> - <b>IronClaw</b> - </a><br/> - <sub>⭐ 2.1K</sub> - </td> - </tr> - <tr> - <td align="center" width="110"> - <a href="https://github.com/anomalyco/opencode"> - <img src="./public/providers/opencode.svg" alt="OpenCode" width="48"/><br/> - <b>OpenCode</b> - </a><br/> - <sub>⭐ 106K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/openai/codex"> - <img src="./public/providers/codex.png" alt="Codex CLI" width="48"/><br/> - <b>Codex CLI</b> - </a><br/> - <sub>⭐ 60.8K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/anthropics/claude-code"> - <img src="./public/providers/claude.png" alt="Claude Code" width="48"/><br/> - <b>Claude Code</b> - </a><br/> - <sub>⭐ 67.3K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/google-gemini/gemini-cli"> - <img src="./public/providers/gemini-cli.png" alt="Gemini CLI" width="48"/><br/> - <b>Gemini CLI</b> - </a><br/> - <sub>⭐ 94.7K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/Kilo-Org/kilocode"> - <img src="./public/providers/kilocode.png" alt="Kilo Code" width="48"/><br/> - <b>Kilo Code</b> - </a><br/> - <sub>⭐ 15.5K</sub> - </td> - </tr> - </table> - -<sub>📡 Alle agenten maken verbinding via <code>http://localhost:20128/v1</code> of <code>http://cloud.omniroute.online/v1</code> — één configuratie, onbeperkte modellen en quota</sub> - ---- - -## 🤔 Waarom OmniRoute? - -**Stop met het verspillen van geld en het bereiken van grenzen:** - -- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Het abonnementsquotum verloopt elke maand ongebruikt -- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Snelheidslimieten voorkomen dat u halverwege codeert -- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Dure API's ($20-50/maand per provider) -- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Handmatig schakelen tussen providers - -**OmniRoute lost dit op:** - -- ✅ **Maximaliseer abonnementen** - Houd quota bij, gebruik elk bit voordat u het opnieuw instelt -- ✅ **Automatische terugval** - Abonnement → API-sleutel → Goedkoop → Gratis, geen downtime -- ✅ **Multi-account** - Round-robin tussen accounts per provider -- ✅ **Universeel** - Werkt met Claude Code, Codex, Gemini CLI, Cursor, Cline, OpenClaw, elke CLI-tool - ---- - -## 📧 Ondersteuning - -> 💬 **Word lid van onze community!** [WhatsApp Group](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) — Krijg hulp, deel tips en blijf op de hoogte. - -- **Website**: [omniroute.online](https://omniroute.online) -- **GitHub**: [github.com/diegosouzapw/OmniRoute](https://github.com/diegosouzapw/OmniRoute) -- **Problemen**: [github.com/diegosouzapw/OmniRoute/issues](https://github.com/diegosouzapw/OmniRoute/issues) -- **WhatsApp**: [Community Group](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) -- **Bijdragen**: zie [CONTRIBUTING.md](CONTRIBUTING.md), open een PR of kies een `good first issue` -- **Origineel project**: [9router by decolua](https://github.com/decolua/9router) - -### 🐛 Een bug melden? - -Wanneer u een probleem opent, voert u de opdracht system-info uit en voegt u het gegenereerde bestand toe: - -```bash -npm run system-info -``` - -Dit genereert een `system-info.txt` met uw Node.js-versie, OmniRoute-versie, OS-details, geïnstalleerde CLI-tools (qoder, gemini, claude, codex, antigravity, droid, enz.), Docker/PM2-status en systeempakketten - alles wat we nodig hebben om uw probleem snel te reproduceren. Voeg het bestand rechtstreeks toe aan uw GitHub-probleem. - ---- - -## 🔄 Hoe het werkt - -``` -┌─────────────┐ -│ Your CLI │ (Claude Code, Codex, Gemini CLI, OpenClaw, Cursor, Cline...) -│ Tool │ -└──────┬──────┘ - │ http://localhost:20128/v1 - ↓ -┌─────────────────────────────────────────┐ -│ OmniRoute (Smart Router) │ -│ • Format translation (OpenAI ↔ Claude) │ -│ • Quota tracking + Embeddings + Images │ -│ • Auto token refresh │ -└──────┬──────────────────────────────────┘ - │ - ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex, Gemini CLI - │ ↓ quota exhausted - ├─→ [Tier 2: API KEY] DeepSeek, Groq, xAI, Mistral, NVIDIA NIM, etc. - │ ↓ budget limit - ├─→ [Tier 3: CHEAP] GLM ($0.6/1M), MiniMax ($0.2/1M) - │ ↓ budget limit - └─→ [Tier 4: FREE] Qoder, Qwen, Kiro (unlimited) - -Result: Never stop coding, minimal cost -``` - ---- - -## 🎯 Wat OmniRoute oplost — 30 echte pijnpunten en gebruiksscenario's - -> **Elke ontwikkelaar die AI-tools gebruikt, wordt dagelijks met deze problemen geconfronteerd.** OmniRoute is gebouwd om ze allemaal op te lossen: van kostenoverschrijdingen tot regionale blokkades, van kapotte OAuth-stromen tot protocolbewerkingen en bedrijfsobservatie. - -<details> -<summary><b>💸 1. "Ik betaal voor een duur abonnement, maar word nog steeds onderbroken door limieten"</b></summary> - -Ontwikkelaars betalen $20-200/maand voor Claude Pro, Codex Pro of GitHub Copilot. Zelfs als je betaalt, heeft het quotum een ​​plafond: 5 uur gebruik, wekelijkse limieten of tarieflimieten per minuut. Halverwege de codeersessie reageert de provider niet meer en verliest de ontwikkelaar flow en productiviteit. - -**Hoe OmniRoute het oplost:** - -- **Smart 4-Tier Fallback** — Als het abonnementsquotum opraakt, wordt automatisch doorgestuurd naar API Key → Goedkoop → Gratis zonder handmatige tussenkomst -- **Realtime bijhouden van quota** — Toont het tokenverbruik in realtime met aftelling van de reset (5 uur, dagelijks, wekelijks) -- **Ondersteuning voor meerdere accounts** — Meerdere accounts per provider met automatische round-robin — als de ene op is, wordt er overgeschakeld naar de volgende -- **Aangepaste combo's** — Aanpasbare fallback-ketens met 6 balanceringsstrategieën (fill-first, round-robin, P2C, willekeurig, minst gebruikt, kostengeoptimaliseerd) -- **Codex Business Quota** — Quotabewaking van zakelijke/teamwerkruimte rechtstreeks in het dashboard - -</details> - -<details> -<summary><b>🔌 2. "Ik moet meerdere providers gebruiken, maar elke provider heeft een andere API"</b></summary> - -OpenAI gebruikt het ene formaat, Claude (Anthropic) gebruikt een ander, Gemini nog een ander. Als een ontwikkelaar modellen van verschillende providers wil testen of terug wil vallen tussen deze providers, moet hij SDK's opnieuw configureren, eindpunten wijzigen en omgaan met incompatibele formaten. Aangepaste providers (FriendLI, NIM) hebben niet-standaard modeleindpunten. - -**Hoe OmniRoute het oplost:** - -- **Unified Endpoint** — Eén enkele `http://localhost:20128/v1` fungeert als proxy voor alle 67+ providers -- **Formatvertaling** — Automatisch en transparant: OpenAI ↔ Claude ↔ Gemini ↔ Responses API -- **Response Sanitization** — Verwijdert niet-standaard velden (`x_groq`, `usage_breakdown`, `service_tier`) die de OpenAI SDK v1.83+ verbreken -- **Rolnormalisatie** — Converteert `developer` → `system` voor niet-OpenAI-providers; `system` → `user` voor GLM/ERNIE -- **Think Tag Extraction** — Extraheert `<think>` blokken uit modellen zoals DeepSeek R1 naar gestandaardiseerde `reasoning_content` -- **Gestructureerde uitvoer voor Gemini** — `json_schema` → `responseMimeType`/`responseSchema` automatische conversie -- **`stream` is standaard `false`** — Sluit aan bij de OpenAI-specificaties en vermijdt onverwachte SSE in Python/Rust/Go SDK's - -</details> - -<details> -<summary><b>🌐 3. "Mijn AI-provider blokkeert mijn regio/land"</b></summary> - -Providers zoals OpenAI/Codex blokkeren de toegang vanuit bepaalde geografische regio's. Gebruikers krijgen fouten zoals `unsupported_country_region_territory` tijdens OAuth- en API-verbindingen. Dit is vooral frustrerend voor ontwikkelaars uit ontwikkelingslanden. - -**Hoe OmniRoute het oplost:** - -- **Proxyconfiguratie op 3 niveaus** — Configureerbare proxy op 3 niveaus: globaal (al het verkeer), per provider (slechts één provider) en per verbinding/sleutel -- **Kleurgecodeerde proxybadges** — Visuele indicatoren: 🟢 globale proxy, 🟡 providerproxy, 🔵verbindingsproxy, waarbij altijd het IP-adres wordt weergegeven -- **OAuth-tokenuitwisseling via proxy**: de OAuth-stroom verloopt ook via de proxy, waardoor `unsupported_country_region_territory` wordt opgelost -- **Verbindingstests via proxy** — Verbindingstests gebruiken de geconfigureerde proxy (geen directe bypass meer) -- **SOCKS5-ondersteuning** — Volledige SOCKS5-proxyondersteuning voor uitgaande routering -- **TLS Fingerprint Spoofing** — Browserachtige TLS-vingerafdruk via `wreq-js` om botdetectie te omzeilen -- **🔏 CLI Fingerprint Matching** — Herschikt headers en body-velden zodat ze overeenkomen met de oorspronkelijke binaire CLI-handtekeningen, waardoor het risico op accountmarkeringen drastisch wordt verminderd. Het proxy-IP blijft behouden: u krijgt tegelijkertijd zowel stealth** als** IP-maskering - -</details> - -<details> -<summary><b>🆓 4. "Ik wil AI gebruiken voor codering, maar ik heb geen geld"</b></summary> - -Niet iedereen kan $ 20-200 per maand betalen voor AI-abonnementen. Studenten, ontwikkelaars uit opkomende landen, hobbyisten en freelancers hebben kosteloos toegang nodig tot kwaliteitsmodellen. - -**Hoe OmniRoute het oplost:** - -- **Free Tier Providers ingebouwd** — Native ondersteuning voor 100% gratis providers: Qoder (5 onbeperkte modellen via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 onbeperkte modellen: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID gratis), Gemini CLI (180K tokens/maand gratis) -- **Ollama Cloud** — In de cloud gehoste Ollama-modellen op `api.ollama.com` met gratis laag "Licht gebruik"; gebruik het voorvoegsel `ollamacloud/<model>` -- **Alleen gratis combo's** — Chain `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/maand zonder downtime -- **NVIDIA NIM Free Access** — ~40 RPM ontwikkelaars-voor altijd gratis toegang tot meer dan 70 modellen op build.nvidia.com (overgang van credits naar pure tarieflimieten) -- **Kostengeoptimaliseerde strategie** — Routingstrategie die automatisch de goedkoopste beschikbare provider kiest - -</details> - -<details> -<summary><b>🔒 5. "Ik moet mijn AI-gateway beschermen tegen ongeautoriseerde toegang"</b></summary> - -Bij het blootstellen van een AI-gateway aan het netwerk (LAN, VPS, Docker) kan iedereen met het adres de tokens/quota van de ontwikkelaar gebruiken. Zonder bescherming zijn API's kwetsbaar voor misbruik, snelle injectie en misbruik. - -**Hoe OmniRoute het oplost:** - -- **API Key Management** — Generatie, rotatie en bereik per provider met een speciale `/dashboard/api-manager` pagina -- **Machtigingen op modelniveau** — Beperk API-sleutels tot specifieke modellen (`openai/*`, jokertekenpatronen), met de schakelaar Alles toestaan/Beperken -- **API Endpoint Protection** — Vereist een sleutel voor `/v1/models` en blokkeer specifieke providers uit de lijst -- **Auth Guard + CSRF-bescherming** — Alle dashboardroutes beschermd met `withAuth` middleware + CSRF-tokens -- **Rate Limiter** — Per-IP-snelheidslimiet met configureerbare vensters -- **IP-filtering** — Toelatingslijst/blokkeerlijst voor toegangscontrole -- **Prompt Injection Guard** — Sanering tegen kwaadaardige promptpatronen -- **AES-256-GCM-codering** — Inloggegevens gecodeerd in rust - -</details> - -<details> -<summary><b>🛑 6. "Mijn provider is uitgevallen en ik ben mijn codeerstroom kwijtgeraakt"</b></summary> - -AI-aanbieders kunnen instabiel worden, 5xx-fouten retourneren of tijdelijke tarieflimieten bereiken. Als een ontwikkelaar afhankelijk is van één enkele provider, worden deze onderbroken. Zonder stroomonderbrekers kunnen herhaalde pogingen de toepassing laten crashen. - -**Hoe OmniRoute het oplost:** - -- **Stroomonderbreker per model** — Automatisch openen/sluiten met configureerbare drempels en cooldown (Gesloten/Open/Half-Open), bereik per model om trapsgewijze blokkades te voorkomen -- **Exponentiële uitstel** — Progressieve vertragingen bij nieuwe pogingen -- **Anti-Thundering Herd** — Mutex + semafoorbescherming tegen gelijktijdige nieuwe stormen -- **Combo Fallback Chains** — Als de primaire provider faalt, valt deze automatisch zonder tussenkomst door de keten -- **Combo-stroomonderbreker** — Schakelt falende providers binnen een combo-keten automatisch uit -- **Gezondheidsdashboard** — Uptime-monitoring, status van stroomonderbrekers, uitsluitingen, cachestatistieken, p50/p95/p99-latentie - -</details> - -<details> -<summary><b>🔧 7. "Het configureren van elke AI-tool is vervelend en repetitief"</b></summary> - -Ontwikkelaars gebruiken Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code... Elke tool heeft een andere configuratie nodig (API-eindpunt, sleutel, model). Opnieuw configureren bij het wisselen van provider of model is tijdverspilling. - -**Hoe OmniRoute het oplost:** - -- **CLI Tools Dashboard** — Speciale pagina met installatie met één klik voor Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline -- **GitHub Copilot Config Generator** — Genereert `chatLanguageModels.json` voor VS-code met bulkmodelselectie -- **Onboarding Wizard** — Begeleide installatie in 4 stappen voor nieuwe gebruikers -- **Eén eindpunt, alle modellen** — Configureer `http://localhost:20128/v1` één keer, krijg toegang tot meer dan 67 providers - -</details> - -<details> -<summary><b>🔑 8. "Het beheren van OAuth-tokens van meerdere providers is een hel"</b></summary> - -Claude Code, Codex, Gemini CLI, Copilot: ze gebruiken allemaal OAuth 2.0 met aflopende tokens. Ontwikkelaars moeten zich voortdurend opnieuw authenticeren en omgaan met `client_secret is missing`, `redirect_uri_mismatch` en storingen op externe servers. OAuth op LAN/VPS is bijzonder problematisch. - -**Hoe OmniRoute het oplost:** - -- **Automatische tokenvernieuwing**: OAuth-tokens worden op de achtergrond vernieuwd voordat ze verlopen -- **OAuth 2.0 (PKCE) ingebouwd** — Automatische stroom voor Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder -- **Multi-Account OAuth** — Meerdere accounts per provider via JWT/ID-tokenextractie -- **OAuth LAN/Remote Fix** — Privé-IP-detectie voor `redirect_uri` + handmatige URL-modus voor externe servers -- **OAuth achter Nginx** — Gebruikt `window.location.origin` voor reverse proxy-compatibiliteit -- **Remote OAuth-handleiding** — Stapsgewijze handleiding voor Google Cloud-inloggegevens op VPS/Docker - -</details> - -<details> -<summary><b>📊 9. "Ik weet niet hoeveel ik uitgeef of waar"</b></summary> - -Ontwikkelaars gebruiken meerdere betaalde providers, maar hebben geen uniform beeld van de uitgaven. Elke provider heeft zijn eigen factureringsdashboard, maar er is geen geconsolideerd overzicht. Onverwachte kosten kunnen zich opstapelen. - -**Hoe OmniRoute het oplost:** - -- **Cost Analytics Dashboard** — Kostenregistratie per token en budgetbeheer per provider -- **Budgetlimieten per niveau** — Uitgavenplafond per niveau dat automatische terugval activeert -- **Prijsconfiguratie per model** — Configureerbare prijzen per model -- **Gebruiksstatistieken per API-sleutel** — Verzoekaantal en laatst gebruikte tijdstempel per sleutel -- **Analytics Dashboard** — Statistiekkaarten, modelgebruiksgrafiek, providertabel met succespercentages en latentie - -</details> - -<details> -<summary><b>🐛 10. "Ik kan geen fouten en problemen in AI-oproepen diagnosticeren"</b></summary> - -Wanneer een oproep mislukt, weet de ontwikkelaar niet of het een snelheidslimiet, een verlopen token, een verkeerd formaat of een providerfout is. Gefragmenteerde logboeken over verschillende terminals. Zonder waarneembaarheid is debuggen een kwestie van vallen en opstaan. - -**Hoe OmniRoute het oplost:** - -- **Unified Logs Dashboard** — 4 tabbladen: aanvraaglogboeken, proxylogboeken, auditlogboeken, console -- **Consolelogviewer** — Realtime viewer in terminalstijl met kleurgecodeerde niveaus, automatisch scrollen, zoeken, filteren -- **SQLite Proxy Logs** — Persistente logs die het opnieuw opstarten van de server overleven -- **Translator Playground** — 4 foutopsporingsmodi: Playground (formaatvertaling), Chat Tester (retour), Testbank (batch), Live Monitor (realtime) -- **Request Telemetry** — p50/p95/p99 latentie + X-Request-Id-tracering -- **Op bestanden gebaseerde logboekregistratie met rotatie** — Console-interceptor legt alles vast in JSON-logboek met op grootte gebaseerde rotatie -- **Systeeminforapport** — `npm run system-info` genereert `system-info.txt` met uw volledige omgeving (knooppuntversie, OmniRoute-versie, besturingssysteem, CLI-tools, Docker/PM2-status). Voeg het toe bij het melden van problemen, zodat u direct kunt triageen. - -</details> - -<details> -<summary><b>🏗️ 11. "Het implementeren en onderhouden van de gateway is complex"</b></summary> - -Het installeren, configureren en onderhouden van een AI-proxy in verschillende omgevingen (lokaal, VPS, Docker, cloud) is arbeidsintensief. Problemen zoals hardgecodeerde paden, `EACCES` in mappen, poortconflicten en platformonafhankelijke builds zorgen voor extra wrijving. - -**Hoe OmniRoute het oplost:** - -- **npm globale installatie** — `npm install -g omniroute && omniroute` — klaar -- **Docker Multi-Platform** — AMD64 + ARM64 native (Apple Silicon, AWS Graviton, Raspberry Pi) -- **Docker Compose Profiles** — `base` (geen CLI-tools) en `cli` (met Claude Code, Codex, OpenClaw) -- **Electron Desktop App** — Native app voor Windows/macOS/Linux met systeemvak, automatisch starten, offline modus -- **Split-Port-modus** — API en Dashboard op afzonderlijke poorten voor geavanceerde scenario's (reverse proxy, containernetwerken) -- **Cloud Sync** — Configureer synchronisatie tussen apparaten via Cloudflare Workers -- **DB-back-ups** — Automatische back-up, herstel, export en import van alle instellingen - -</details> - -<details> -<summary><b>🌍 12. "De interface is alleen Engels en mijn team spreekt geen Engels"</b></summary> - -Teams in niet-Engelssprekende landen, vooral in Latijns-Amerika, Azië en Europa, worstelen met interfaces die alleen in het Engels beschikbaar zijn. Taalbarrières verminderen de adoptie en vergroten de configuratiefouten. - -**Hoe OmniRoute het oplost:** - -- **Dashboard i18n — 30 talen** — Alle 500+ toetsen vertaald, waaronder Arabisch, Bulgaars, Deens, Duits, Spaans, Fins, Frans, Hebreeuws, Hindi, Hongaars, Indonesisch, Italiaans, Japans, Koreaans, Maleis, Nederlands, Noors, Pools, Portugees (PT/BR), Roemeens, Russisch, Slowaaks, Zweeds, Thais, Oekraïens, Vietnamees, Chinees, Filipijns, Engels -- **RTL-ondersteuning** — Ondersteuning van rechts naar links voor Arabisch en Hebreeuws -- **Meertalige README's** — 30 volledige documentatievertalingen -- **Taalkiezer** — Wereldbolpictogram in de koptekst voor realtime schakelen - -</details> - -<details> -<summary><b>🔄 13. "Ik heb meer nodig dan chatten - ik heb insluitingen, afbeeldingen en audio nodig"</b></summary> - -AI is niet alleen het voltooien van chats. Ontwikkelaars moeten afbeeldingen genereren, audio transcriberen, insluitingen voor RAG maken, documenten opnieuw rangschikken en inhoud modereren. Elke API heeft een ander eindpunt en formaat. - -**Hoe OmniRoute het oplost:** - -- **Insluitingen** — `/v1/embeddings` met 6 providers en 9+ modellen -- **Beeldgeneratie** — `/v1/images/generations` met 10 providers en 20+ modellen (OpenAI, xAI, Together, Fireworks, Nebius, Hyperbolic, NanoBanana, Antigravity, SD WebUI, ComfyUI) -- **Tekst-naar-video** — `/v1/videos/generations` — ComfyUI (AnimateDiff, SVD) en SD WebUI -- **Tekst-naar-muziek** — `/v1/music/generations` — ComfyUI (stabiele audio open, MusicGen) -- **Audiotranscriptie** — `/v1/audio/transcriptions` — Whisper + Nvidia NIM, HuggingFace, Qwen3 -- **Tekst-naar-spraak** — `/v1/audio/speech` — ElevenLabs, Nvidia NIM, HuggingFace, Coqui, Tortoise, Qwen3, **Inworld**, **Cartesia**, **PlayHT**, + bestaande providers -- **Moderaties** — `/v1/moderations` — Veiligheidscontroles van inhoud -- **Herschikking** — `/v1/rerank` — Herschikking van de relevantie van documenten -- **Responses API** — Volledige `/v1/responses` ondersteuning voor Codex - -</details> - -<details> -<summary><b>🧪 14. "Ik heb geen manier om de kwaliteit van verschillende modellen te testen en te vergelijken"</b></summary> - -Ontwikkelaars willen weten welk model het beste is voor hun gebruiksscenario (code, vertaling, redenering), maar handmatig vergelijken gaat traag. Er bestaan ​​geen geïntegreerde evaluatietools. - -**Hoe OmniRoute het oplost:** - -- **LLM-evaluaties** — Golden set-tests met 10 vooraf geladen cases over begroetingen, wiskunde, aardrijkskunde, codegeneratie, JSON-compliance, vertaling, prijsverlaging, veiligheidsweigering -- **4 Matchstrategieën** — `exact`, `contains`, `regex`, `custom` (JS-functie) -- **Translator Playground Test Bench** — Batchtests met meerdere inputs en verwachte outputs, vergelijking tussen providers -- **Chat Tester** — Volledige rondreis met visuele responsweergave -- **Live Monitor** — Realtime stream van alle verzoeken die door de proxy stromen - -</details> - -<details> -<summary><b>📈 15. "Ik moet schalen zonder prestatieverlies"</b></summary> - -Naarmate het verzoekvolume groeit, genereren dezelfde vragen dubbele kosten als dezelfde vragen niet in de cache worden opgeslagen. Zonder idempotentie verspillen dubbele aanvragen de verwerking. Tarieflimieten per aanbieder moeten worden gerespecteerd. - -**Hoe OmniRoute het oplost:** - -- **Semantische cache** — Cache met twee lagen (handtekening + semantisch) verlaagt de kosten en de latentie -- **Request Idempotency** — 5s deduplicatievenster voor identieke verzoeken -- **Detectie van tarieflimiet** — RPM per provider, minimale tussenruimte en maximale gelijktijdige tracking -- **Bewerkbare snelheidslimieten** — Configureerbare standaardinstellingen in Instellingen → Veerkracht met doorzettingsvermogen -- **API Key Validation Cache** — 3-tier cache voor productieprestaties -- **Gezondheidsdashboard met telemetrie** — p50/p95/p99-latentie, cachestatistieken, uptime - -</details> - -<details> -<summary><b>🤖 16. "Ik wil het modelgedrag wereldwijd controleren"</b></summary> - -Ontwikkelaars die alle antwoorden in een specifieke taal willen, met een specifieke toon, of redeneringstokens willen beperken. Het is onpraktisch om dit in elke tool/verzoek te configureren. - -**Hoe OmniRoute het oplost:** - -- **Systeempromptinjectie**: algemene prompt toegepast op alle verzoeken -- **Thinking Budget Validation** — Redenering van tokentoewijzingscontrole per verzoek (passthrough, automatisch, aangepast, adaptief) -- **6 Routingstrategieën** — Globale strategieën die bepalen hoe verzoeken worden gedistribueerd -- **Wildcard Router** — `provider/*` patronen routeren dynamisch naar elke provider -- **Combo in-/uitschakelen schakelen** — Schakel combo's rechtstreeks vanuit het dashboard in -- **Provider wisselen** — Schakel alle verbindingen voor een provider met één klik in/uit -- **Geblokkeerde providers**: sluit specifieke providers uit van de `/v1/models` lijst - -</details> - -<details> -<summary><b>🧰 17. "Ik heb MCP-tools nodig als eersteklas productmogelijkheden"</b></summary> - -Veel AI-gateways stellen MCP alleen bloot als een verborgen implementatiedetail. Teams hebben een zichtbare, beheersbare operationele laag nodig. - -**Hoe OmniRoute het oplost:** - -- MCP verschijnt op het dashboardnavigatie- en eindpuntprotocoltabblad -- Speciale MCP-beheerpagina met proces, tools, scopes en audit -- Ingebouwde snelstart voor `omniroute --mcp` en onboarding van klanten - -</details> - -<details> -<summary><b>🧠 18. "Ik heb A2A-orkestratie nodig met synchronisatie- en streamtaakpaden"</b></summary> - -Agentworkflows hebben zowel directe antwoorden nodig als langdurige gestreamde uitvoering met levenscycluscontrole. - -**Hoe OmniRoute het oplost:** - -- A2A JSON-RPC-eindpunt (`POST /a2a`) met `message/send` en `message/stream` -- SSE-streaming met voortplanting van de terminalstatus -- Taaklevenscyclus-API's voor `tasks/get` en `tasks/cancel` - -</details> - -<details> -<summary><b>🛰️ 19. "Ik heb echte MCP-processtatus nodig, geen geraden status"</b></summary> - -Operationele teams moeten weten of MCP daadwerkelijk leeft, en niet alleen of een API bereikbaar is. - -**Hoe OmniRoute het oplost:** - -- Runtime-hartslagbestand met PID, tijdstempels, transport, aantal gereedschappen en scope-modus -- MCP-status-API die hartslag + recente activiteit combineert -- UI-statuskaarten voor proces/uptime/hartslagversheid - -</details> - -<details> -<summary><b>📋 20. "Ik heb controleerbare MCP-tooluitvoering nodig"</b></summary> - -Wanneer tools de configuratie muteren of operationele acties activeren, hebben teams forensische traceerbaarheid nodig. - -**Hoe OmniRoute het oplost:** - -- SQLite-ondersteunde auditregistratie voor MCP-toolaanroepen -- Filters op tool, succes/mislukking, API-sleutel en paginering -- Dashboard-audittabel + statistiekeneindpunten voor automatisering - -</details> - -<details> -<summary><b>🔐 21. "Ik heb MCP-machtigingen met bereik nodig per integratie"</b></summary> - -Verschillende clients moeten toegang tot de toolcategorieën met de minste bevoegdheden hebben. - -**Hoe OmniRoute het oplost:** - -- 9 gedetailleerde MCP-scopes voor gecontroleerde toegang tot tools -- Scopehandhaving en zichtbaarheid in de MCP-beheerinterface -- Veilige standaardhouding voor operationeel gereedschap - -</details> - -<details> -<summary><b>⚙️ 22. "Ik heb operationele controles nodig zonder opnieuw te implementeren"</b></summary> - -Teams hebben snelle runtimewijzigingen nodig tijdens incidenten of kostengebeurtenissen. - -**Hoe OmniRoute het oplost:** - -- Schakel combo-activering rechtstreeks vanuit het MCP-dashboard -- Pas veerkrachtprofielen toe uit vooraf gedefinieerde beleidspakketten -- Reset de status van de stroomonderbreker vanaf hetzelfde bedieningspaneel - -</details> - -<details> -<summary><b>🔄 23. "Ik heb live zichtbaarheid en annulering van de levenscyclus van A2A-taken nodig"</b></summary> - -Zonder inzicht in de levenscyclus worden taakincidenten moeilijk te beoordelen. - -**Hoe OmniRoute het oplost:** - -- Takenlijst/filteren op staat/vaardigheid met paginering -- Inzoomen op taakmetagegevens, gebeurtenissen en artefacten -- Eindpunt voor het annuleren van taken en UI-actie met bevestiging - -</details> - -<details> -<summary><b>🌊 24. "Ik heb actieve streamstatistieken nodig voor A2A-belasting"</b></summary> - -Streamingworkflows vereisen operationeel inzicht in gelijktijdigheid en liveverbindingen. - -**Hoe OmniRoute het oplost:** - -- Actieve streamtellers geïntegreerd in de A2A-status -- Tijdstempel van de laatste taak en tellingen per staat -- A2A-dashboardkaarten voor real-time operationele monitoring - -</details> - -<details> -<summary><b>🪪 25. "Ik heb standaard agentdetectie nodig voor klanten"</b></summary> - -Externe klanten en orkestrators hebben machinaal leesbare metagegevens nodig voor onboarding. - -**Hoe OmniRoute het oplost:** - -- Agentkaart getoond op `/.well-known/agent.json` -- Mogelijkheden en vaardigheden weergegeven in de management-UI -- A2A-status-API bevat ontdekkingsmetagegevens voor automatisering - -</details> - -<details> -<summary><b>🧭 26. "Ik heb protocolvindbaarheid nodig in de product-UX"</b></summary> - -Als gebruikers protocoloppervlakken niet kunnen ontdekken, neemt de acceptatie- en ondersteuningskwaliteit af. - -**Hoe OmniRoute het oplost:** - -- Geconsolideerde pagina **Eindpunten** met tabbladen voor proxy-, MCP-, A2A- en API-eindpunten -- Inline servicestatus schakelt (online/offline) voor MCP en A2A -- Links van overzicht naar speciale beheertabbladen - -</details> - -<details> -<summary><b>🧪 27. "Ik heb end-to-end protocolvalidatie nodig met echte clients"</b></summary> - -Mock-tests zijn niet voldoende om de protocolcompatibiliteit vóór de release te valideren. - -**Hoe OmniRoute het oplost:** - -- E2E-suite die de app opstart en echt MCP SDK-clienttransport gebruikt -- A2A-clienttests voor het ontdekken, verzenden, streamen, ophalen en annuleren van stromen -- Controleer beweringen aan de hand van MCP-audit- en A2A-taken-API's - -</details> - -<details> -<summary><b>📡 28. "Ik heb uniforme observatie nodig over alle interfaces"</b></summary> - -Het opsplitsen van de waarneembaarheid per protocol creëert blinde vlekken en een langere MTTR. - -**Hoe OmniRoute het oplost:** - -- Uniforme dashboards/logboeken/analyses in één product -- Gezondheid + audit + verzoektelemetrie over OpenAI-, MCP- en A2A-lagen -- Operationele API's voor status en automatisering - -</details> - -<details> -<summary><b>💼 29. "Ik heb één runtime nodig voor proxy + tools + agentorkestratie"</b></summary> - -Het uitvoeren van veel afzonderlijke services verhoogt de operationele kosten en faalmodi. - -**Hoe OmniRoute het oplost:** - -- OpenAI-compatibele proxy, MCP-server en A2A-server in één stapel -- Gedeelde authenticatie, veerkracht, gegevensopslag en waarneembaarheid -- Consistent beleidsmodel op alle interactieoppervlakken - -</details> - -<details> -<summary><b>🚀 30. "Ik moet agentische workflows verzenden zonder wildgroei van lijmcodes"</b></summary> - -Teams verliezen snelheid bij het samenvoegen van meerdere ad-hocservices en scripts. - -**Hoe OmniRoute het oplost:** - -- Uniforme eindpuntstrategie voor klanten en agenten -- Ingebouwde gebruikersinterfaces voor protocolbeheer en rookvalidatiepaden -- Productieklare fundamenten (beveiliging, loggen, veerkracht, back-up) - -</details> - -### Voorbeeld-playbooks (geïntegreerde gebruiksscenario's) - -**Playbook A: Maximaliseer betaald abonnement + goedkope back-up** - -```txt -Combo: "maximize-claude" - 1. cc/claude-opus-4-6 - 2. glm/glm-4.7 - 3. if/kimi-k2-thinking - -Monthly cost: $20 + small backup spend -Outcome: higher quality, near-zero interruption -``` - -**Playbook B: Codeerstapel zonder kosten** - -```txt -Combo: "free-forever" - 1. gc/gemini-3-flash - 2. if/kimi-k2-thinking - 3. qw/qwen3-coder-plus - -Monthly cost: $0 -Outcome: stable free coding workflow -``` - -**Playbook C: 24/7, altijd actieve fallback-keten** - -```txt -Combo: "always-on" - 1. cc/claude-opus-4-6 - 2. cx/gpt-5.2-codex - 3. glm/glm-4.7 - 4. minimax/MiniMax-M2.1 - 5. if/kimi-k2-thinking - -Outcome: deep fallback depth for deadline-critical workloads -``` - -**Playbook D: Agentoperaties met MCP + A2A** - -```txt -1) Start MCP transport (`omniroute --mcp`) for tool-driven operations -2) Run A2A tasks via `message/send` and `message/stream` -3) Observe via /dashboard/endpoint (MCP and A2A tabs) -4) Toggle services via inline status controls -``` - ---- - -## 🆓 Begin gratis: nul configuratiekosten - -> Stel AI-codering in enkele minuten in voor **$0/maand**. Verbind deze gratis accounts en gebruik de ingebouwde **Gratis Stack**-combinatie. - -| Stap | Actie | Aanbieders ontgrendeld | -| ---- | ----------------------------------------------------- | ------------------------------------------------------------------ | -| 1 | Verbind **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — **onbeperkt** | -| 2 | **Qoder** (Google OAuth) verbinden | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **onbeperkt** | -| 3 | Verbind **Qwen** (apparaatcode) | qwen3-coder-plus, qwen3-coder-flash... — **onbeperkt** | -| 4 | **Gemini CLI** verbinden (Google OAuth) | gemini-3-flash, gemini-2.5-pro — **180K/maand gratis** | -| 5 | `/dashboard/combos` → **Gratis stapel ($0)**-sjabloon | Round-robin alle gratis aanbieders automatisch | - -**Wijs een IDE/CLI naar:** `http://localhost:20128/v1` · API-sleutel: `any-string` · Klaar. - -> **Optionele extra dekking (ook gratis):** Groq API-sleutel (30 RPM gratis), NVIDIA NIM (40 RPM gratis, 70+ modellen), Cerebras (1M tok/dag), LongCat API-sleutel (50M tokens/dag!), Cloudflare Workers AI (10K Neurons/dag, 50+ modellen). - -## ⚡ Snelle start - -### 1) Installeren en uitvoeren - -```bash -npm install -g omniroute -omniroute -``` - -> **pnpm-gebruikers:** Voer `pnpm approve-builds -g` uit na de installatie om native build-scripts in te schakelen die vereist zijn door `better-sqlite3` en `@swc/core`: -> -> ```bash -> pnpm install -g omniroute -> pnpm approve-builds -g # Select all packages → approve -> omniroute -> ``` - -Dashboard wordt geopend op `http://localhost:20128` en de API-basis-URL is `http://localhost:20128/v1`. - -| Commando | Beschrijving | -| ----------------------- | -------------------------------------------------------------- | -| `omniroute` | Startserver (`PORT=20128`, API en dashboard op dezelfde poort) | -| `omniroute --port 3000` | Stel de canonieke/API-poort in op 3000 | -| `omniroute --mcp` | MCP-server starten (stdio-transport) | -| `omniroute --no-open` | Browser niet automatisch openen | -| `omniroute --help` | Hulp tonen | - -Optionele split-port-modus: - -```bash -PORT=20128 DASHBOARD_PORT=20129 omniroute -# API: http://localhost:20128/v1 -# Dashboard: http://localhost:20129 -``` - -### 2) Verbind providers en maak uw API-sleutel aan - -1. Open Dashboard → `Providers` en verbind minimaal één provider (OAuth of API-sleutel). -2. Open Dashboard → `Endpoints` en maak een API-sleutel. -3. (Optioneel) Open Dashboard → `Combos` en stel uw fallback-keten in. - -### 3) Verwijs uw codeertool naar OmniRoute - -```txt -Base URL: http://localhost:20128/v1 -API Key: [copy from Endpoint page] -Model: if/kimi-k2-thinking (or any provider/model prefix) -``` - -Werkt met Claude Code, Codex CLI, Gemini CLI, Cursor, Cline, OpenClaw, OpenCode en OpenAI-compatibele SDK's. - -### 4) Protocollen inschakelen en valideren (v2.0) - -**MCP (voor gereedschapgestuurde bewerkingen):** - -```bash -omniroute --mcp -``` - -Verbind vervolgens uw MCP-client via `stdio` en test tools zoals: - -- `omniroute_get_health` -- `omniroute_list_combos` - -**A2A (voor agent-tot-agent-workflows):** - -```bash -curl http://localhost:20128/.well-known/agent.json -``` - -```bash -curl -X POST http://localhost:20128/a2a \ - -H 'content-type: application/json' \ - -d '{"jsonrpc":"2.0","id":"quickstart","method":"message/send","params":{"skill":"quota-management","messages":[{"role":"user","content":"Give me a short quota summary."}]}}' -``` - -### 5) Valideer alles end-to-end (aanbevolen) - -```bash -npm run test:protocols:e2e -``` - -Deze suite valideert echte MCP- en A2A-clientstromen tegen een actieve app. - -### Alternatief: uitvoeren vanaf de bron - -```bash -cp .env.example .env -npm install -PORT=20128 DASHBOARD_PORT=20129 NEXT_PUBLIC_BASE_URL=http://localhost:20129 npm run dev -``` - ---- - -## 🐳 Docker - -OmniRoute is beschikbaar als openbare Docker-image op [Docker Hub](https://hub.docker.com/r/diegosouzapw/omniroute). - -**Snelle uitvoering:** - -```bash -docker run -d \ - --name omniroute \ - --restart unless-stopped \ - -p 20128:20128 \ - -v omniroute-data:/app/data \ - diegosouzapw/omniroute:latest -``` - -**Met omgevingsbestand:** - -```bash -# Copy and edit .env first -cp .env.example .env - -docker run -d \ - --name omniroute \ - --restart unless-stopped \ - --env-file .env \ - -p 20128:20128 \ - -v omniroute-data:/app/data \ - diegosouzapw/omniroute:latest -``` - -**Met behulp van Docker Compose:** - -```bash -# Base profile (no CLI tools) -docker compose --profile base up -d - -# CLI profile (Claude Code, Codex, OpenClaw built-in) -docker compose --profile cli up -d -``` - -| Afbeelding | Label | Maat | Beschrijving | -| ------------------------ | -------- | ------ | ------------------------- | -| `diegosouzapw/omniroute` | `latest` | ~250MB | Nieuwste stabiele release | -| `diegosouzapw/omniroute` | `1.0.3` | ~250MB | Huidige versie | - ---- - -## 🖥️ Desktop-app — Offline en altijd aan - -> 🆕 **NIEUW!** OmniRoute is nu beschikbaar als **native desktop-applicatie** voor Windows, macOS en Linux. - -Voer OmniRoute uit als een zelfstandige desktop-app: geen terminal, geen browser, geen internet vereist voor lokale modellen. De op Electron gebaseerde app omvat: - -- 🖥️ **Native Window** — Speciaal app-venster met systeemvakintegratie -- 🔄 **Autostart** — Start OmniRoute bij systeemaanmelding -- 🔔 **Native Notificaties** — Ontvang waarschuwingen voor opgebruikte quota of problemen met providers -- ⚡ **Installeren met één klik** — NSIS (Windows), DMG (macOS), AppImage (Linux) -- 🌐 **Offlinemodus** — Werkt volledig offline met gebundelde server - -### Snelle start - -```bash -# Development mode -npm run electron:dev - -# Build for your platform -npm run electron:build # Current platform -npm run electron:build:win # Windows (.exe) -npm run electron:build:mac # macOS (.dmg) — x64 & arm64 -npm run electron:build:linux # Linux (.AppImage) -``` - -### Systeemvak - -Wanneer geminimaliseerd, blijft OmniRoute in uw systeemvak staan met snelle acties: - -- Dashboard openen -- Wijzig de serverpoort -- Sluit de applicatie af - -📖 Volledige documentatie: [**OMNI_TOKEN_153**](electron/README.md) - ---- - -## 💰 Prijzen in één oogopslag - -| Niveau | Aanbieder | Kosten | Quotum opnieuw instellen | Beste voor | -| ------------------ | --------------------------- | ------------------------------------- | ------------------------ | --------------------------------------- | -| **💳 ABONNEMENT** | Claude Code (Pro) | $ 20/maand | 5u + wekelijks | Al geabonneerd | -| | Codex (Plus/Pro) | $ 20-200/maand | 5u + wekelijks | OpenAI-gebruikers | -| | Tweeling CLI | **GRATIS** | 180K/maand + 1K/dag | Iedereen! | -| | GitHub-copiloot | $ 10-19/maand | Maandelijks | GitHub-gebruikers | -| **🔑 API-SLEUTEL** | NVIDIA NIM | **GRATIS** (ontwikkelaar voor altijd) | ~40 tpm | 70+ open modellen | -| | Hersenen | **GRATIS** (1 miljoen tok/dag) | 60K TPM / 30 RPM | 's Werelds snelste | -| | Groq | **GRATIS** (30 toeren) | 14,4K RPD | Ultrasnelle lama/gemma | -| | DeepSeek V3.2 | $0,27/$1,10 per 1 miljoen | Geen | Beste prijs/kwaliteit-redenering | -| | xAI Grok-4 Snel | **$0,20/$0,50 per 1M** 🆕 | Geen | Snelste + gereedschapsoproep, ultralaag | -| | xAI Grok-4 (standaard) | $ 0,20/$ 1,50 per 1 miljoen 🆕 | Geen | Redenerend vlaggenschip van xAI | -| | Mistral | Gratis proefversie + betaald | Tarief beperkt | Europese AI | -| | OpenRouter | Betalen per gebruik | Geen | 100+ modellen aggr. | -| **💰GOEDKOOP** | GLM-5 (via Z.AI) 🆕 | $ 0,5/1 miljoen | Dagelijks 10.00 uur | 128K-uitvoer, nieuwste vlaggenschip | -| | GLM-4.7 | $ 0,6/1 miljoen | Dagelijks 10.00 uur | Budgetback-up | -| | MiniMax M2.5 🆕 | $0,3/1 miljoen invoer | 5-uurs rollen | Redeneren + agenttaken | -| | MiniMax M2.1 | $ 0,2/1 miljoen | 5-uurs rollen | Goedkoopste optie | -| | Kimi K2.5 (Moonshot-API) 🆕 | Betalen per gebruik | Geen | Directe Moonshot API-toegang | -| | Kimi K2 | $ 9/maand plat | 10 miljoen tokens/maand | Voorspelbare kosten | -| **🆓 GRATIS** | Qoder | **$0** | Onbeperkt | 5 modellen onbeperkt | -| | Qwen | **$0** | Onbeperkt | 4 modellen onbeperkt | -| | Kiro | **$0** | Onbeperkt | Claude Sonnet/Haiku (AWS-bouwer) | -| | LongCat Flash-Lite 🆕 | **$0** (50 miljoen tok/dag 🔥) | 1 RPS | Grootste gratis quotum ter wereld | -| | Bestuivingen AI 🆕 | **$0** (geen sleutel nodig) | 1 verzoek/15s | GPT-5, Claude, DeepSeek, Lama 4 | -| | Cloudflare Workers AI 🆕 | **$0** (10.000 neuronen/dag) | ~150 resp./dag | 50+ modellen, mondiale voorsprong | -| | Scaleway-AI 🆕 | **$0** (totaal 1 miljoen tokens) | Tarief beperkt | EU/AVG, Qwen3 235B, Lama 70B | - -> 🆕 **Nieuwe modellen toegevoegd (maart 2026):** Grok-4 Fast-familie voor $ 0,20/$ 0,50/M (benchmarked op 1143 ms - 30% sneller dan Gemini 2.5 Flash), GLM-5 via Z.AI met 128K-uitvoer, MiniMax M2.5-redenering, DeepSeek V3.2 bijgewerkte prijzen, Kimi K2.5 via Moonshot direct API. - -**💡 $0 Combo Stack — De complete gratis installatie:** - -``` -# 🆓 Ultimate Free Stack 2026 — 11 Providers, $0 Forever -Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED -LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 -Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed -Qwen (qw/) → qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next UNLIMITED -Gemini (gemini/) → Gemini 2.5 Flash — 1,500 req/day free API key -Cloudflare AI (cf/) → Llama 70B, Gemma 3, Mistral — 10K Neurons/day -Scaleway (scw/) → Qwen3 235B, Llama 70B — 1M free tokens (EU) -Groq (groq/) → Llama/Gemma ultra-fast — 14.4K req/day -NVIDIA NIM (nvidia/) → 70+ open models — 40 RPM forever -Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day -``` - -**Nul kosten. Stopt nooit met coderen.** Configureer dit als één OmniRoute-combo en alle fallbacks gebeuren automatisch - nooit handmatig schakelen. - ---- - ---- - -## 🆓 Gratis modellen — wat u daadwerkelijk krijgt - -> Alle onderstaande modellen zijn **100% gratis, zonder creditcard**. OmniRoute berekent automatisch routes tussen hen wanneer één quotum op is – combineer ze allemaal voor een onbreekbare combinatie van $ 0. - -### 🔵CLAUDE-MODELLEN (via Kiro — AWS Builder ID) - -| Model | Voorvoegsel | Limiet | Tarieflimiet | -| ------------------- | ----------- | ------------- | ------------------------------------- | -| `claude-sonnet-4.5` | `kr/` | **Onbeperkt** | Geen gerapporteerde dagelijkse limiet | -| `claude-haiku-4.5` | `kr/` | **Onbeperkt** | Geen gerapporteerde dagelijkse limiet | -| `claude-opus-4.6` | `kr/` | **Onbeperkt** | Nieuwste opus via Kiro | - -### 🟢 QODER-MODELLEN (gratis OAuth — geen creditcard) - -| Model | Voorvoegsel | Limiet | Tarieflimiet | -| ------------------ | ----------- | ------------- | -------------------------- | -| `kimi-k2-thinking` | `if/` | **Onbeperkt** | Geen gerapporteerde limiet | -| `qwen3-coder-plus` | `if/` | **Onbeperkt** | Geen gerapporteerde limiet | -| `deepseek-r1` | `if/` | **Onbeperkt** | Geen gerapporteerde limiet | -| `minimax-m2.1` | `if/` | **Onbeperkt** | Geen gerapporteerde limiet | -| `kimi-k2` | `if/` | **Onbeperkt** | Geen gerapporteerde limiet | - -### 🟡 QWEN-MODELLEN (apparaatcodeauthenticatie) - -| Model | Voorvoegsel | Limiet | Tarieflimiet | -| ------------------- | ----------- | ------------- | -------------------------- | -| `qwen3-coder-plus` | `qw/` | **Onbeperkt** | Geen gerapporteerde limiet | -| `qwen3-coder-flash` | `qw/` | **Onbeperkt** | Geen gerapporteerde limiet | -| `qwen3-coder-next` | `qw/` | **Onbeperkt** | Geen gerapporteerde limiet | -| `vision-model` | `qw/` | **Onbeperkt** | Multimodaal (afbeeldingen) | - -### 🟣 GEMINI CLI (Google OAuth) - -| Model | Voorvoegsel | Limiet | Tarieflimiet | -| ------------------------ | ----------- | ---------------------------- | ------------------ | -| `gemini-3-flash-preview` | `gc/` | **180K tok/maand** + 1K/dag | Maandelijkse reset | -| `gemini-2.5-pro` | `gc/` | 180K/maand (gedeeld zwembad) | Hoge kwaliteit | - -### ⚫ NVIDIA NIM (gratis API-sleutel — build.nvidia.com) - -| Niveau | Dagelijkse limiet | Tarieflimiet | Opmerkingen | -| --------------------- | ----------------- | ------------ | ------------------------------------------------------------- | -| Gratis (ontwikkelaar) | Geen tokenlimiet | **~40 tpm** | 70+ modellen; overgang naar zuivere tarieflimieten medio 2025 | - -Populaire gratis modellen: `moonshotai/kimi-k2.5` (Kimi K2.5), `z-ai/glm4.7` (GLM 4.7), `deepseek-ai/deepseek-v3.2` (DeepSeek V3.2), `nvidia/llama-3.3-70b-instruct`, `deepseek/deepseek-r1` - -### ⚪ CEREBRAS (gratis API-sleutel - inference.cerebras.ai) - -| Niveau | Dagelijkse limiet | Tarieflimiet | Opmerkingen | -| ------ | ------------------------ | ---------------- | -------------------------------------------------------------- | -| Gratis | **1 miljoen tokens/dag** | 60K TPM / 30 RPM | 's Werelds snelste LLM-gevolgtrekking; wordt dagelijks gereset | - -Gratis verkrijgbaar: `llama-3.3-70b`, `llama-3.1-8b`, `deepseek-r1-distill-llama-70b` - -### 🔴 GROQ (gratis API-sleutel — console.groq.com) - -| Niveau | Dagelijkse limiet | Tarieflimiet | Opmerkingen | -| ------ | ----------------- | ---------------- | --------------------------------------------------------- | -| Gratis | **14,4K RPD** | 30 RPM per model | Geen creditcard; 429 op limiet, niet in rekening gebracht | - -Gratis verkrijgbaar: `llama-3.3-70b-versatile`, `gemma2-9b-it`, `mixtral-8x7b`, `whisper-large-v3` - -### 🔴 LONGCAT AI (gratis API-sleutel — longcat.chat) 🆕 - -| Model | Voorvoegsel | Dagelijks gratis quotum | Opmerkingen | -| ----------------------------- | ----------- | ------------------------ | --------------------------- | -| `LongCat-Flash-Lite` | `lc/` | **50 miljoen tokens** 💥 | Grootste gratis quotum ooit | -| `LongCat-Flash-Chat` | `lc/` | 500K-tokens | Chat met meerdere beurten | -| `LongCat-Flash-Thinking` | `lc/` | 500K-tokens | Redenering / CoT | -| `LongCat-Flash-Thinking-2601` | `lc/` | 500K-tokens | Versie januari 2026 | -| `LongCat-Flash-Omni-2603` | `lc/` | 500K-tokens | Multimodaal | - -> 100% gratis tijdens de openbare bèta. Meld u aan op [longcat.chat](https://longcat.chat) met e-mail of telefoon. Wordt dagelijks gereset om 00:00 UTC. - -### 🟢 POLLINATIONS AI (geen API-sleutel vereist) 🆕 - -| Model | Voorvoegsel | Tarieflimiet | Aanbieder achter | -| ---------- | ----------- | ------------- | ------------------ | -| `openai` | `pol/` | 1 verzoek/15s | GPT-5 | -| `claude` | `pol/` | 1 verzoek/15s | Antropische Claude | -| `gemini` | `pol/` | 1 verzoek/15s | Google Tweeling | -| `deepseek` | `pol/` | 1 verzoek/15s | DeepSeek V3 | -| `llama` | `pol/` | 1 verzoek/15s | Meta Lama 4 Scout | -| `mistral` | `pol/` | 1 verzoek/15s | Mistral-AI | - -> ✨ **Geen wrijving:** Geen aanmelding, geen API-sleutel. Voeg de Pollinations-provider toe met een leeg sleutelveld en het werkt meteen. - -### 🟠 CLOUDFLARE WORKERS AI (gratis API-sleutel — cloudflare.com) 🆕 - -| Niveau | Dagelijkse neuronen | Equivalent gebruik | Opmerkingen | -| ------ | ------------------- | --------------------------------------------- | ------------------------------------ | -| Gratis | **10.000** | ~150 LLM resp / 500s audio / 15K insluitingen | Wereldwijde voorsprong, 50+ modellen | - -Populaire gratis modellen: `@cf/meta/llama-3.3-70b-instruct`, `@cf/google/gemma-3-12b-it`, `@cf/openai/whisper-large-v3-turbo` (gratis audio!), `@cf/qwen/qwen2.5-coder-15b-instruct` - -> Vereist API-token + account-ID van [dash.cloudflare.com](https://dash.cloudflare.com). Bewaar account-ID in providerinstellingen. - -### 🟣 SCALEWAY AI (1M gratis tokens — scaleway.com) 🆕 - -| Niveau | Gratis quotum | Locatie | Opmerkingen | -| ------ | -------------------- | ------------- | --------------------------------------------- | -| Gratis | **1 miljoen tokens** | 🇫🇷 Parijs, EU | Binnen bepaalde grenzen geen creditcard nodig | - -Gratis verkrijgbaar: `qwen3-235b-a22b-instruct-2507` (Qwen3 235B!), `llama-3.1-70b-instruct`, `mistral-small-3.2-24b-instruct-2506`, `deepseek-v3-0324` - -> EU/AVG-compatibel. Ontvang de API-sleutel op [console.scaleway.com](https://console.scaleway.com). - -> **💡 De ultieme gratis stapel (11 providers, $ 0 voor altijd):** -> -> ``` -> Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -> Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED -> LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 -> Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed -> Qwen (qw/) → qwen3-coder models UNLIMITED -> Gemini (gemini/) → Gemini 2.5 Flash — 1,500 req/day free -> Cloudflare AI (cf/) → 50+ models — 10K Neurons/day -> Scaleway (scw/) → Qwen3 235B, Llama 70B — 1M free tokens (EU) -> Groq (groq/) → Llama/Gemma — 14.4K req/day ultra-fast -> NVIDIA NIM (nvidia/) → 70+ open models — 40 RPM forever -> Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day -> ``` - -## 🎙️ Gratis transcriptiecombinatie - -> Transcribeer audio/video voor **$0** — Deepgram-leads met $200 gratis, AssemblyAI $50 fallback, Groq Whisper als onbeperkte noodback-up. - -| Aanbieder | Gratis tegoeden | Beste model | Tarieflimiet | -| ------------------- | ---------------------------- | -------------------------------------------------- | --------------------------------- | -| 🟢 **Deepgram** | **$200 gratis** (aanmelding) | `nova-3` — beste nauwkeurigheid, meer dan 30 talen | Geen RPM-limiet op gratis credits | -| 🔵 **AssemblageAI** | **$ 50 gratis** (aanmelding) | `universal-3-pro` — hoofdstukken, sentiment, PII | Geen RPM-limiet op gratis credits | -| 🔴 **Groq** | **Voor altijd gratis** | `whisper-large-v3` — OpenAI-fluisteren | 30 RPM (snelheid beperkt) | - -**Voorgestelde combinatie in `/dashboard/combos`:** - -``` -Name: free-transcription -Strategy: Priority -Nodes: - [1] deepgram/nova-3 → uses $200 free first - [2] assemblyai/universal-3-pro → fallback when Deepgram credits run out - [3] groq/whisper-large-v3 → free forever, emergency fallback -``` - -Ga vervolgens naar `/dashboard/media` → tabblad **Transcriptie**: upload een audio- of videobestand → selecteer uw combo-eindpunt → ontvang transcriptie in ondersteunde formaten. - -## 💡 Belangrijkste kenmerken - -OmniRoute v2.0 is gebouwd als een operationeel platform, niet alleen als een relay-proxy. - -### 🆕 Nieuw — op ClawRouter geïnspireerde verbeteringen (maart 2026) - -| Kenmerk | Wat het doet | -| ---------------------------------- | ---------------------------------------------------------------------------------------------------------------- | -| ⚡ **Grok-4 Fast Familie** | xAI-modellen voor $ 0,20/$ 0,50/M — gebenchmarkt 1143 ms (30% sneller dan Gemini 2.5 Flash) | -| 🧠 **GLM-5 via Z.AI** | 128K outputcontext, $0,5/1M — nieuwste vlaggenschip uit de GLM-familie | -| 🔮 **MiniMax M2.5** | Redeneren + agenttaken voor $ 0,30/1 miljoen – aanzienlijke upgrade van M2.1 | -| 🎯 **toolCalling-vlag per model** | Per model `toolCalling: true/false` in register: AutoCombo slaat modellen die niet geschikt zijn voor tools over | -| 🌍 **Meertalige intentiedetectie** | PT/ZH/ES/AR-trefwoorden in AutoCombo-scores — betere modelselectie voor niet-Engelse inhoud | -| 📊 **Benchmarkgestuurde terugval** | Echte p95-latentie van live-verzoeken feeds combo-scores - AutoCombo leert van feitelijke gegevens | -| 🔁 **Ontdubbeling aanvragen** | Op inhoud-hash gebaseerd ontdubbelingsvenster — veilig voor meerdere agenten, voorkomt dubbele kosten | -| 🔌 **Inplugbare routerstrategie** | Uitbreidbare `RouterStrategy` interface — voeg aangepaste routeringslogica toe als plug-ins | - -### 🚀 Vorige v2.0.9+ — Speeltuin, CLI-vingerafdrukken en ACP - -| Kenmerk | Wat het doet | -| ------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 🎮 **Modelspeeltuin** | Dashboardpagina om elk model rechtstreeks te testen: provider/model/eindpuntkiezers, Monaco Editor, streaming, afbreken, timing | -| 🔏 **CLI-vingerafdrukmatching** | Kop-/tekstvolgorde per provider zodat deze overeenkomt met de oorspronkelijke CLI-handtekeningen: schakel per provider in Instellingen > Beveiliging. **Uw proxy-IP blijft behouden** | -| 🤝 **ACP-ondersteuning (Agent Client Protocol)** | CLI-agentdetectie (Codex, Claude, Goose, Gemini CLI, OpenClaw + nog 9), processpawner, `/api/acp/agents` eindpunt | -| 🤖 **ACP-agentendashboard** | Debug › Agentenpagina — raster van 14 agenten met installatiestatus, versie en aangepast agentformulier voor elke CLI-tool. **OpenCode**-gebruikers krijgen een knop 'Opencode.json downloaden' die automatisch een gebruiksklare configuratie genereert met alle beschikbare modellen. | -| 🔧 **Aangepast model `apiFormat` Routing** | Aangepaste modellen met `apiFormat: "responses"` routeren nu correct naar de Responses API-vertaler | -| 🏢 **Codex-werkruimte-isolatie** | Meerdere Codex-werkruimten per e-mail: OAuth scheidt verbindingen correct op werkruimte-ID | -| 🔄 **Elektronische automatische update** | Desktop-app controleert op updates + automatisch installeren bij opnieuw opstarten | - -### 🤖 Agent- en protocolbewerkingen (v2.0) - -| Kenmerk | Wat het doet | -| ---------------------------------------- | --------------------------------------------------------------------------------------------------- | -| 🔧 **MCP-server (16 tools)** | IDE/agent-tools via 3 transporten: stdio, SSE (`/api/mcp/sse`), Streamable HTTP (`/api/mcp/stream`) | -| 🤝 **A2A-server (JSON-RPC + SSE)** | Agent-naar-agent-taakuitvoering met synchronisatie- en streamingstromen | -| 🧭 **Geconsolideerde eindpuntenpagina** | Beheerpagina met tabbladen met tabbladen Endpoint Proxy, MCP, A2A en API Endpoints | -| 🎚️ **Service in-/uitschakelen schakelt** | AAN/UIT-schakelaars voor MCP en A2A met persistentie van de instellingen (standaard: UIT) | -| 🛰️ **MCP Runtime-hartslag** | Echte processtatus (pid, uptime, hartslagleeftijd, transport, scopemodus) | -| 📋 **MCP-audittraject** | Filterbare auditlogboeken met succes/mislukking en sleuteltoeschrijving | -| 🔐 **MCP-scopehandhaving** | 9 gedetailleerde scope-machtigingen voor gecontroleerde toegang tot tools | -| 📡 **A2A Taaklevenscyclusbeheer** | Lijst/filter taken, inspecteer gebeurtenissen/artefacten, annuleer lopende taken | -| 📋 **Agentenkaart ontdekken** | `/.well-known/agent.json` voor automatische detectie van clients | -| 🧪 **Protocol E2E-testharnas** | Echte MCP SDK + A2A-clientstromen in `test:protocols:e2e` | -| ⚙️ **Operationele controles** | Wissel van combo, pas veerkrachtprofielen toe, reset onderbrekers vanaf één bedieningsoppervlak | - -### 🧠 Routing en intelligentie - -| Kenmerk | Wat het doet | -| ------------------------------------------- | --------------------------------------------------------------------------------------- | -| 🎯 **Slimme terugval op 4 niveaus** | Autoroute: Abonnement → API-sleutel → Goedkoop → Gratis | -| 📊 **Realtime quota bijhouden** | Live tokentelling + reset-aftelling per provider | -| 🔄 **Formaatvertaling** | OpenAI ↔ Claude ↔ Gemini ↔ Reacties met schemaveilige conversies | -| 👥 **Ondersteuning voor meerdere accounts** | Meerdere accounts per aanbieder met intelligente selectie | -| 🔄 **Automatische tokenvernieuwing** | OAuth-tokens worden automatisch vernieuwd bij nieuwe poging | -| 🎨 **Aangepaste combo's** | 6 balanceringsstrategieën + terugvalketencontrole | -| 🌐 **Wildcard-router** | `provider/*` dynamische routering | -| 🧠 **Begrotingscontroles bedenken** | Passthrough-, automatische, aangepaste en adaptieve redeneerlimieten | -| 🔀 **Modelaliassen** | Ingebouwde + aangepaste modelaliasing en migratieveiligheid | -| ⚡ **Achtergronddegradatie** | Achtergrondtaken met lage prioriteit routeren naar goedkopere modellen | -| 🧪 **Taakbewuste slimme routering** | Model automatisch selecteren op inhoudstype (codering/visie/analyse/samenvatting) | -| 💬 **Systeempromptinjectie** | Wereldwijde gedragscontroles consequent toegepast | -| 📄 **Reacties API-compatibiliteit** | Volledige `/v1/responses` ondersteuning voor Codex en geavanceerde agentische workflows | - -### 🎵 Multimodale API's - -| Kenmerk | Wat het doet | -| ------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 🖼️ **Beeldgeneratie** | `/v1/images/generations` met cloud- en lokale backends | -| 📐 **Insluitingen** | `/v1/embeddings` voor zoek- en RAG-pijplijnen | -| 🎤 **Audiotranscriptie** | `/v1/audio/transcriptions` — 7 providers (Deepgram Nova 3, AssemblyAI, Groq Whisper, HuggingFace, ElevenLabs, OpenAI, Azure), automatische taaldetectie, MP4/MP3/WAV-ondersteuning | -| 🔊 **Tekst-naar-spraak** | `/v1/audio/speech` — 10 providers (ElevenLabs, OpenAI, Deepgram, Cartesia, PlayHT, HuggingFace, Nvidia NIM, Inworld, Coqui, Tortoise) met correcte foutmeldingen | -| 🎬 **Videogeneratie** | `/v1/videos/generations` (ComfyUI + SD WebUI-workflows) | -| 🎵 **Muziekgeneratie** | `/v1/music/generations` (ComfyUI-workflows) | -| 🛡️ **Moderaties** | `/v1/moderations` veiligheidscontroles | -| 🔀 **Herschikking** | `/v1/rerank` voor relevantiescore | -| 🔍 **Webzoeken** 🆕 | `/v1/search` — 5 providers (Serper, Brave, Perplexity, Exa, Tavily), 6.500+ gratis/maand, automatische failover, cache | - -### 🛡️ Veerkracht, veiligheid en bestuur - -| Kenmerk | Wat het doet | -| -------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | -| 🔌 **Stroomonderbrekers** | Trip/herstel per model met drempelcontroles | -| 🎯 **Eindpuntbewuste modellen** | Aangepaste modellen declareren ondersteunde eindpunten + API-indeling | -| 🛡️ **Anti-donderende kudde** | Mutex + semafoorbescherming bij nieuwe pogingen/beoordeelgebeurtenissen | -| 🧠 **Semantische + handtekeningcache** | Kosten-/latentiereductie met twee cachelagen | -| ⚡ **Idempotentie aanvragen** | Dubbelbeschermingsvenster | -| 🔒 **TLS-vingerafdrukspoofing** | Browserachtige TLS-vingerafdruk — **vermindert botdetectie en accountmarkering** | -| 🔏 **CLI-vingerafdrukmatching** | Komt overeen met de handtekeningen van native CLI-verzoeken — **vermindert het verbodsrisico terwijl het proxy-IP behouden blijft** | -| 🌐 **IP-filtering** | Toelatingslijst/blokkeerlijstbeheer voor blootgestelde implementaties | -| 📊 **Bewerkbare tarieflimieten** | Configureerbare limieten op globaal/providerniveau met persistentie | -| 🔑 **API-sleutelbeheer + Scoping** | Veilige sleuteluitgifte/roulatie en controles op modellen/providers | -| 🛡️ **Beschermd `/models`** | Optionele authenticatie en providerverberging voor modelcatalogus | - -### 📊 Waarneembaarheid en analyse - -| Kenmerk | Wat het doet | -| --------------------------------- | ----------------------------------------------------------------------- | -| 📝 **Verzoek + proxyregistratie** | Volledige aanvraag/antwoord en proxyregistratie | -| 📉 **Streamed Detailed Logs** 🆕 | Reconstructs SSE payload streams cleanly into the UI | -| 📋 **Unified Logdashboard** | Verzoek-, proxy-, audit- en consoleweergaven op één pagina | -| 🔍 **Telemetrie aanvragen** | p50/p95/p99-latentie en tracering van aanvragen | -| 🏥 **Gezondheidsdashboard** | Uptime, status van stroomonderbrekers, uitsluitingen, cachestatistieken | -| 💰 **Kosten bijhouden** | Budgetcontroles en prijszichtbaarheid per model | -| 📈 **Analytische visualisaties** | Gebruiksinzichten in modellen/aanbieders en trendweergaven | -| 🧪 **Evaluatiekader** | Golden set-testen met configureerbare wedstrijdstrategieën | - -### ☁️ Implementatie en platform - -| Kenmerk | Wat het doet | -| --------------------------------- | ----------------------------------------------------------------------- | -| 🌐 **Overal implementeren** | Localhost, VPS, Docker, Cloudomgevingen | -| 💾 **Cloudsynchronisatie** | Configuratiesynchronisatie via cloudwerker | -| 🔄 **Back-up/herstellen** | Export/import en noodherstelstromen | -| 🧙 **Onboarding-wizard** | Begeleide installatie bij eerste gebruik | -| 🔧 **CLI Tools-dashboard** | Installatie met één klik voor populaire codeertools | -| 🎮 **Modelspeeltuin** | Test elke provider/model/eindpunt vanaf het dashboard | -| 🔏 **CLI-vingerafdrukschakelaar** | Matching van vingerafdrukken per provider in Instellingen > Beveiliging | -| 🌐 **i18n (30 talen)** | Volledig dashboard + documenttaalondersteuning met RTL-dekking | -| 🧹 **Alle modellen wissen** | Modellijst wissen met één klik in providergegevens | -| 👁️ **Sidebar Controls** 🆕 | Hide components and integrations from Appearance Settings | -| 📋 **Uitgiftesjablonen** | Gestandaardiseerde GitHub-sjablonen voor bugs en functies | -| 📂 **Aangepaste gegevensmap** | `DATA_DIR` overschrijven voor opslaglocatie | - -### Functie Diepe duik - -#### Slimme terugval met praktische kostenbeheersing - -```txt -Combo: "my-coding-stack" - 1. cc/claude-opus-4-6 - 2. nvidia/llama-3.3-70b - 3. glm/glm-4.7 - 4. if/kimi-k2-thinking -``` - -Wanneer quota, tarief of gezondheid falen, gaat OmniRoute automatisch naar de volgende kandidaat zonder handmatig te schakelen. - -#### Protocolbeheer dat zichtbaar en bedienbaar is - -- MCP + A2A zijn vindbaar in de gebruikersinterface en documenten (niet verborgen) -- Protocolstatus-API's geven live operationele gegevens weer (`/api/mcp/*`, `/api/a2a/*`) -- Dashboards bevatten acties voor operaties van dag 2 (combinatieschakelaars, reset van onderbrekers, annulering van taken) - -#### Vertaler + validatieworkflow - -Het Vertalergebied omvat: - -- **Speeltuin**: transformatiecontroles aanvragen -- **Chat Tester**: volledige aanvraag/antwoordrondreis -- **Testbank**: meerdere cases in één run -- **Live Monitor**: realtime verkeersinformatie - -Plus protocolvalidatie met echte clients via `npm run test:protocols:e2e`. - -> 📖 **[MCP Server README](open-sse/mcp-server/README.md)** — Toolreferentie, IDE-configuraties en clientvoorbeelden -> -> 📖 **[A2A Server README](src/lib/a2a/README.md)** — Vaardigheden, JSON-RPC-methoden, streaming en taaklevenscyclus - -## 🧪 Evaluaties (Evals) - -OmniRoute bevat een ingebouwd evaluatieframework om de LLM-responskwaliteit te testen aan de hand van een gouden set. U kunt deze openen via **Analytics → Evaluaties** in het dashboard. - -### Ingebouwde gouden set - -De vooraf geladen "OmniRoute Golden Set" bevat testcases voor: - -- Groeten, wiskunde, aardrijkskunde, codegeneratie -- Naleving van JSON-formaten, vertaling, genereren van prijsverlagingen -- Veiligheidsweigering (schadelijke inhoud), tellen, booleaanse logica - -### Evaluatiestrategieën - -| Strategie | Beschrijving | Voorbeeld | -| ---------- | --------------------------------------------------------------------- | -------------------------------- | -| `exact` | De uitvoer moet exact overeenkomen met | `"4"` | -| `contains` | De uitvoer moet een subtekenreeks bevatten (niet hoofdlettergevoelig) | `"Paris"` | -| `regex` | Uitvoer moet overeenkomen met regex-patroon | `"1.*2.*3"` | -| `custom` | Aangepaste JS-functie retourneert waar/onwaar | `(output) => output.length > 10` | - ---- - -## 📖 Installatiehandleiding - -### Protocolinstelling (MCP + A2A) - -<details> -<summary><b>🧩 MCP-installatie (modelcontextprotocol)</b></summary> - -Start MCP-transport in stdio-modus: - -```bash -omniroute --mcp -``` - -Aanbevolen validatiestroom: - -1. Verbind uw MCP-client via stdio. -2. Voer `omniroute_get_health` uit. -3. Voer `omniroute_list_combos` uit. -4. Open `/dashboard/mcp` om hartslag, activiteit en audit te bevestigen. - -Handige API's voor automatisering: - -- `GET /api/mcp/status` -- `GET /api/mcp/tools` -- `GET /api/mcp/audit` -- `GET /api/mcp/audit/stats` - -</details> - -<details> -<summary><b>🤝 A2A-installatie (Agent2Agent)</b></summary> - -Ontdek de makelaar: - -```bash -curl http://localhost:20128/.well-known/agent.json -``` - -Stuur een taak: - -```bash -curl -X POST http://localhost:20128/a2a \ - -H 'content-type: application/json' \ - -d '{"jsonrpc":"2.0","id":"setup-a2a","method":"message/send","params":{"skill":"quota-management","messages":[{"role":"user","content":"Summarize quota status."}]}}' -``` - -Levenscyclus beheren: - -- `GET /api/a2a/status` -- `GET /api/a2a/tasks` -- `GET /api/a2a/tasks/:id` -- `POST /api/a2a/tasks/:id/cancel` - -Operationele gebruikersinterface: - -- `/dashboard/a2a` voor observatie van taken/status/streams en rookacties - -</details> - -<details> -<summary><b>🧪 End-to-end protocolvalidatie</b></summary> - -Valideer beide protocollen met echte clients: - -```bash -npm run test:protocols:e2e -``` - -Dit verifieert: - -- MCP SDK-client verbinden/lijst/oproepen -- A2A-detectie/verzenden/streamen/ophalen/annuleren -- Controleer gegevens in MCP-audit en A2A-taakbeheer-API's - -</details> - -<details> -<summary><b>💳 Abonnementsaanbieders</b></summary> - -### Claude-code (Pro/Max) - -```bash -Dashboard → Providers → Connect Claude Code -→ OAuth login → Auto token refresh -→ 5-hour + weekly quota tracking - -Models: - cc/claude-opus-4-6 - cc/claude-sonnet-4-5-20250929 - cc/claude-haiku-4-5-20251001 -``` - -**Pro-tip:** Gebruik Opus voor complexe taken, Sonnet voor snelheid. OmniRoute houdt quota bij per model! - -### OpenAI-codex (Plus/Pro) - -```bash -Dashboard → Providers → Connect Codex -→ OAuth login (port 1455) -→ 5-hour + weekly reset - -Models: - cx/gpt-5.2-codex - cx/gpt-5.1-codex-max -``` - -#### Beheer van Codex-accountlimieten (5 uur + wekelijks) - -Elk Codex-account heeft nu beleidsschakelaars in `Dashboard -> Providers`: - -- `5h` (AAN/UIT): het drempelbeleid voor een periode van 5 uur afdwingen. -- `Weekly` (AAN/UIT): dwing het wekelijkse vensterdrempelbeleid af. -- Drempelgedrag: wanneer een ingeschakeld venster >=90% gebruik bereikt, wordt dat account overgeslagen. -- Rotatiegedrag: OmniRoute routeert automatisch naar het volgende in aanmerking komende Codex-account. -- Resetgedrag: wanneer de provider `resetAt` tijd verstrijkt, komt het account automatisch weer in aanmerking. - -Scenario's: - -- `5h ON` + `Weekly ON`: account wordt overgeslagen wanneer een van beide vensters de drempel bereikt. -- `5h OFF` + `Weekly ON`: alleen wekelijks gebruik kan het account blokkeren. -- `5h ON` + `Weekly OFF`: slechts 5 uur gebruik kan het account blokkeren. -- `resetAt` geslaagd: account wordt automatisch opnieuw gerouleerd (niet handmatig opnieuw inschakelen). - -### Gemini CLI (GRATIS 180K/maand!) - -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Beste waarde:** Enorm gratis niveau! Gebruik dit vóór betaalde niveaus. - -### GitHub-copiloot - -```bash -Dashboard → Providers → Connect GitHub -→ OAuth via GitHub -→ Monthly reset (1st of month) - -Models: - gh/gpt-5 - gh/claude-4.5-sonnet - gh/gemini-3-pro -``` - -</details> - -<details> -<summary><b>🔑 API-sleutelproviders</b></summary> - -### NVIDIA NIM (GRATIS toegang voor ontwikkelaars - 70+ modellen) - -1. Aanmelden: [build.nvidia.com](https://build.nvidia.com) -2. Ontvang een gratis API-sleutel (inclusief 1000 inferentiecredits) -3. Dashboard → Provider toevoegen → NVIDIA NIM: - - API-sleutel: `nvapi-your-key` - -**Modellen:** `nvidia/llama-3.3-70b-instruct`, `nvidia/mistral-7b-instruct` en nog meer dan 50 - -**Pro-tip:** OpenAI-compatibele API — werkt naadloos samen met de formaatvertaling van OmniRoute! - -### Diepzoeken - -1. Aanmelden: [platform.deepseek.com](https://platform.deepseek.com) -2. Haal de API-sleutel op -3. Dashboard → Provider toevoegen → DeepSeek - -**Modellen:** `deepseek/deepseek-chat`, `deepseek/deepseek-coder` - -### Groq (gratis niveau beschikbaar!) - -1. Aanmelden: [console.groq.com](https://console.groq.com) -2. Ontvang een API-sleutel (inclusief gratis laag) -3. Dashboard → Provider toevoegen → Groq - -**Modellen:** `groq/llama-3.3-70b`, `groq/mixtral-8x7b` - -**Pro-tip:** Ultrasnelle gevolgtrekking — het beste voor realtime coderen! - -### OpenRouter (meer dan 100 modellen) - -1. Aanmelden: [openrouter.ai](https://openrouter.ai) -2. Haal de API-sleutel op -3. Dashboard → Provider toevoegen → OpenRouter - -**Modellen:** Krijg toegang tot meer dan 100 modellen van alle grote providers via één enkele API-sleutel. - -</details> - -<details> -<summary><b>💰 Goedkope providers (back-up)</b></summary> - -### GLM-4.7 (dagelijkse reset, $0,6/1 miljoen) - -1. Aanmelden: [Zhipu AI](https://open.bigmodel.cn/) -2. Haal de API-sleutel op uit het Coderingsplan -3. Dashboard → API-sleutel toevoegen: - - Aanbieder: `glm` - - API-sleutel: `your-key` - -**Gebruik:** `glm/glm-4.7` - -**Pro-tip:** Coderingsplan biedt 3× quotum tegen 1/7 kosten! Dagelijks resetten om 10:00 uur. - -### MiniMax M2.1 (5 uur resetten, $0,20/1M) - -1. Aanmelden: [MiniMax](https://www.minimax.io/) -2. Haal de API-sleutel op -3. Dashboard → API-sleutel toevoegen - -**Gebruik:** `minimax/MiniMax-M2.1` - -**Pro-tip:** Goedkoopste optie voor lange context (1 miljoen tokens)! - -### Kimi K2 ($9/maand vast) - -1. Abonneer je: [Moonshot AI](https://platform.moonshot.ai/) -2. Haal de API-sleutel op -3. Dashboard → API-sleutel toevoegen - -**Gebruik:** `kimi/kimi-latest` - -**Pro-tip:** Vaste $ 9/maand voor 10 miljoen tokens = $ 0,90/1 miljoen effectieve kosten! - -</details> - -<details> -<summary><b>🆓 GRATIS providers (noodback-up)</b></summary> - -### Qoder (5 GRATIS modellen via OAuth) - -```bash -Dashboard → Connect Qoder -→ Qoder OAuth login -→ Unlimited usage - -Models: - if/kimi-k2-thinking - if/qwen3-coder-plus - if/glm-4.7 - if/minimax-m2 - if/deepseek-r1 -``` - -### Qwen (4 GRATIS modellen via apparaatcode) - -```bash -Dashboard → Connect Qwen -→ Device code authorization -→ Unlimited usage - -Models: - qw/qwen3-coder-plus - qw/qwen3-coder-flash -``` - -### Kiro (Claude GRATIS) - -```bash -Dashboard → Connect Kiro -→ AWS Builder ID or Google/GitHub -→ Unlimited usage - -Models: - kr/claude-sonnet-4.5 - kr/claude-haiku-4.5 -``` - -</details> - -<details> -<summary><b>🎨 Combo's maken</b></summary> - -### Voorbeeld 1: Maximaliseer abonnement → Goedkope back-up - -``` -Dashboard → Combos → Create New - -Name: premium-coding -Models: - 1. cc/claude-opus-4-6 (Subscription primary) - 2. glm/glm-4.7 (Cheap backup, $0.6/1M) - 3. minimax/MiniMax-M2.1 (Cheapest fallback, $0.20/1M) - -Use in CLI: premium-coding -``` - -### Voorbeeld 2: Alleen gratis (geen kosten) - -``` -Name: free-combo -Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) - -Cost: $0 forever! -``` - -</details> - -<details> -<summary><b>🔧 CLI-integratie</b></summary> - -### Cursor-IDE - -``` -Settings → Models → Advanced: - OpenAI API Base URL: http://localhost:20128/v1 - OpenAI API Key: [from OmniRoute dashboard] - Model: cc/claude-opus-4-6 -``` - -### Claude-code - -Gebruik de pagina **CLI Tools** in het dashboard voor configuratie met één klik, of bewerk `~/.claude/settings.json` handmatig. - -### Codex-CLI - -```bash -export OPENAI_BASE_URL="http://localhost:20128" -export OPENAI_API_KEY="your-omniroute-api-key" - -codex "your prompt" -``` - -### Open Klauw - -**Optie 1 — Dashboard (aanbevolen):** - -``` -Dashboard → CLI Tools → OpenClaw → Select Model → Apply -``` - -**Optie 2 — Handmatig:** Bewerk `~/.openclaw/openclaw.json`: - -```json -{ - "models": { - "providers": { - "omniroute": { - "baseUrl": "http://127.0.0.1:20128/v1", - "apiKey": "sk_omniroute", - "api": "openai-completions" - } - } - } -} -``` - -> **Opmerking:** OpenClaw werkt alleen met lokale OmniRoute. Gebruik `127.0.0.1` in plaats van `localhost` om IPv6-resolutieproblemen te voorkomen. - -### Cline / Doorgaan / RooCode - -``` -Settings → API Configuration: - Provider: OpenAI Compatible - Base URL: http://localhost:20128/v1 - API Key: [from OmniRoute dashboard] - Model: if/kimi-k2-thinking -``` - -### OpenCode - -**Stap 1:** Voeg OmniRoute toe als aangepaste provider: - -```bash -opencode -/connect -# Select "Other" → Enter ID: "omniroute" → Enter your OmniRoute API key -``` - -**Stap 2:** Maak/bewerk `opencode.json` in de hoofdmap van uw project: - -```json -{ - "$schema": "https://opencode.ai/config.json", - "provider": { - "omniroute": { - "npm": "@ai-sdk/openai-compatible", - "name": "OmniRoute", - "options": { - "baseURL": "http://localhost:20128/v1" - }, - "models": { - "cc/claude-sonnet-4-20250514": { "name": "Claude Sonnet 4" }, - "gg/gemini-2.5-pro": { "name": "Gemini 2.5 Pro" }, - "if/kimi-k2-thinking": { "name": "Kimi K2 (Free)" } - } - } - } -} -``` - -**Stap 3:** Selecteer het model in OpenCode: - -```bash -/models -# Select any OmniRoute model from the list -``` - -> **Tip:** Voeg elk model dat beschikbaar is in uw OmniRoute `/v1/models` eindpunt toe aan de sectie `models`. Gebruik het formaat `provider/model-id` van uw OmniRoute-dashboard. - -</details> - ---- - -## 🐛 Problemen oplossen - -<details> -<summary><b>Klik om de probleemoplossingsgids uit te vouwen</b></summary> - -**"Taalmodel heeft geen berichten verstrekt"** - -- Providerquotum opgebruikt → Controleer dashboardquotumtracker -- Oplossing: gebruik combo-fallback of schakel over naar een goedkoper niveau - -**Snelheidslimiet** - -- Abonnementquotum op → Terugval op GLM/MiniMax -- Combinatie toevoegen: `cc/claude-opus-4-6 → glm/glm-4.7 → if/kimi-k2-thinking` - -**OAuth-token verlopen** - -- Automatisch vernieuwd door OmniRoute -- Als de problemen aanhouden: Dashboard → Provider → Opnieuw verbinding maken - -**Hoge kosten** - -- Controleer gebruiksstatistieken in Dashboard → Kosten -- Schakel het primaire model over naar GLM/MiniMax -- Gebruik de gratis laag (Gemini CLI, Qoder) voor niet-kritieke taken - -**Dashboard-/API-poorten zijn verkeerd** - -- `PORT` is de canonieke basispoort (en standaard de API-poort) -- `API_PORT` overschrijft alleen de OpenAI-compatibele API-listener -- `DASHBOARD_PORT` overschrijft alleen dashboard/Next.js-listener -- Stel `NEXT_PUBLIC_BASE_URL` in op uw dashboard/openbare URL (voor OAuth-callbacks) - -**Cloudsynchronisatiefouten** - -- Controleer of `BASE_URL` verwijst naar uw actieve exemplaar -- Controleer of `CLOUD_URL` verwijst naar uw verwachte cloudeindpunt -- Houd `NEXT_PUBLIC_*` waarden afgestemd op de waarden op de server - -**Eerste login werkt niet** - -- Controleer `INITIAL_PASSWORD` in `.env` -- Indien niet ingesteld, is het reservewachtwoord `123456` - -**Geen verzoeklogboeken** - -- Stel `ENABLE_REQUEST_LOGS=true` in in `.env` - -**Verbindingstest toont "Ongeldig" voor OpenAI-compatibele providers** - -- Veel providers stellen geen `/models` eindpunt beschikbaar -- OmniRoute v1.0.6+ omvat fallback-validatie via chat-voltooiingen -- Zorg ervoor dat de basis-URL het achtervoegsel `/v1` bevat - -### 🔐 OAuth op een externe server - -<a name="oauth-on-a-remote-server"></a> -<a name="oauth-em-servidor-remoto"></a> - -> **⚠️ Belangrijk voor gebruikers die OmniRoute gebruiken op een VPS, Docker of een externe server** - -#### Waarom mislukt Antigravity / Gemini CLI OAuth op externe servers? - -De providers **Antigravity** en **Gemini CLI** gebruiken **Google OAuth 2.0**. Google vereist dat de `redirect_uri` in de OAuth-stroom exact overeenkomt met een van de vooraf geregistreerde URI's in de Google Cloud Console van de app. - -De OAuth-inloggegevens die in OmniRoute zijn gebundeld, zijn **alleen voor `localhost`** geregistreerd. Wanneer u OmniRoute opent op een externe server (bijvoorbeeld `https://omniroute.myserver.com`), weigert Google de authenticatie met: - -``` -Error 400: redirect_uri_mismatch -``` - -#### Oplossing: Configureer uw eigen OAuth-inloggegevens - -U moet een **OAuth 2.0 Client ID** maken in Google Cloud Console met de URI van uw server. - -#### Stap voor stap - -**1. Open de Google Cloud Console** - -Ga naar: [https://console.cloud.google.com/apis/credentials](https://console.cloud.google.com/apis/credentials) - -**2. Maak een nieuwe OAuth 2.0-client-ID** - -- Klik op **"+ Credentials aanmaken"** → **"OAuth-client-ID"** -- Applicatietype: **"Webapplicatie"** -- Naam: wat je maar wilt (bijvoorbeeld `OmniRoute Remote`) - -**3. Geautoriseerde omleidings-URI's toevoegen** - -Voeg in het veld **"Geautoriseerde omleidings-URI's"** het volgende toe: - -``` -https://your-server.com/callback -``` - -> Vervang `your-server.com` door het domein of IP-adres van uw server (voeg indien nodig de poort toe, bijvoorbeeld `http://45.33.32.156:20128/callback`). - -**4. Bewaar en kopieer de inloggegevens** - -Na het maken toont Google de **Client-ID** en **Clientgeheim**. - -**5. Omgevingsvariabelen instellen** - -In uw `.env` (of Docker-omgevingsvariabelen): - -```bash -# For Antigravity: -ANTIGRAVITY_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com -ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-your-secret - -# For Gemini CLI: -GEMINI_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com -GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -``` - -**6. Start OmniRoute opnieuw** - -```bash -# npm: -npm run dev - -# Docker: -docker restart omniroute -``` - -**7. Probeer opnieuw verbinding te maken** - -Dashboard → Providers → Antigravity (of Gemini CLI) → OAuth - -Google zal nu correct doorverwijzen naar `https://your-server.com/callback`. - ---- - -#### Tijdelijke oplossing (zonder aangepaste inloggegevens) - -Als u nu niet uw eigen inloggegevens wilt instellen, kunt u nog steeds de **handmatige URL-stroom** gebruiken: - -1. OmniRoute opent de Google-autorisatie-URL -2. Na autorisatie probeert Google om te leiden naar `localhost` (wat mislukt op de externe server) -3. **Kopieer de volledige URL** uit de adresbalk van uw browser (zelfs als de pagina niet wordt geladen) -4. Plak die URL in het veld dat wordt weergegeven in het OmniRoute-verbindingsmodel -5. Klik op **"Verbinden"** - -> Dit werkt omdat de autorisatiecode in de URL geldig is, ongeacht of de omleidingspagina is geladen. - ---- - -<details> -<summary><b>🇧🇷 Versão in Português</b></summary> - -#### Waarom werkt OAuth met Antigravity / Gemini CLI op externe servers? - -Deze bewijzen **Antigravity** en **Gemini CLI** gebruiken **Google OAuth 2.0** voor authenticatie. O Google vraagt ​​dat `redirect_uri` geen OAuth-stroom gebruikt **exatamente** een van de URI's vóór de kadaster zonder toepassing van Google Cloud Console. - -Omdat OAuth geen OmniRoute heeft geregistreerd, is dit **apenas para `localhost`**. Wanneer u OmniRoute op een externe server opent (bijvoorbeeld: `https://omniroute.meuservidor.com`), of Google een authenticatie aanvraagt: - -``` -Error 400: redirect_uri_mismatch -``` - -#### Oplossing: Configureer uw eigen OAuth-credenciais - -U kunt precies zien hoe **OAuth 2.0 Client ID** geen Google Cloud Console heeft met een URI van zijn server. - -#### Passo een passo - -**1. Toegang tot Google Cloud Console** - -Abra: [https://console.cloud.google.com/apis/credentials](https://console.cloud.google.com/apis/credentials) - -**2. Nieuwe OAuth 2.0 client-ID** - -- Klik op **"+ Credentials aanmaken"** → **"OAuth-client-ID"** -- Applicatietip: **"Webapplicatie"** -- Nome: escolha qualquer nome (bijvoorbeeld: `OmniRoute Remote`) - -**3. Adicione als geautoriseerde omleidings-URI's** - -Geen campagne **"Geautoriseerde omleidings-URI's"**, aanbevolen: - -``` -https://seu-servidor.com/callback -``` - -> Vervang `seu-servidor.com` door de domicilie of het IP-adres van uw server (inclusief een noodzakelijke poort, bijvoorbeeld: `http://45.33.32.156:20128/callback`). - -**4. Bewaar en kopieer als credenciais** - -U kunt ook op Google klikken op **Client-ID** en **Clientgeheim**. - -**5. Configureer als variáveis de ambiente** - -Geen `.env` (of de verschillende omgevingen van Docker): - -```bash -# Para Antigravity: -ANTIGRAVITY_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com -ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret - -# Para Gemini CLI: -GEMINI_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com -GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -``` - -**6. Reinicie van OmniRoute** - -```bash -# Se usando npm: -npm run dev - -# Se usando Docker: -docker restart omniroute -``` - -**7. Nieuwe verbinding** - -Dashboard → Providers → Antigravity (ou Gemini CLI) → OAuth - -Nadat Google de juiste verwijzing naar `https://seu-servidor.com/callback` heeft gemaakt, is deze autenticaal functioneel. - ---- - -#### Tijdelijke tijdelijke oplossing (zoals de juiste referentie configureren) - -Als u geen geloofwaardige geloofwaardigheid meer heeft, is het mogelijk om de stroom **handleiding van de URL** te gebruiken: - -1. OmniRoute gebruikt een autorisatie-URL van Google -2. U heeft de autorisatie verleend of Google heeft een doorverwijzing naar `localhost` ingesteld (die geen externe service biedt) -3. **Kopieer een volledige URL** door de browser van uw browser (het bericht dat de pagina niet verder gaat) -4. Cole essa URL is niet beschikbaar op de verbindingswijze van OmniRoute -5. Klik op **"Verbinden"** - -> Deze tijdelijke oplossing werkt door de autorisatiecode van de URL en is onafhankelijk van het omleiden naar uw autorisatie of niet. - -</details> - ---- - -</details> - -## 🛠️Technische stapel - -<details> -<summary><b>Klik om de details van de tech-stack uit te vouwen</b></summary> - -- **Runtime**: Node.js 18–22 LTS (⚠️ Node.js 24+ wordt **niet ondersteund** — `better-sqlite3` native binaire bestanden zijn incompatibel) -- **Taal**: TypeScript 5.9 — **100% TypeScript** voor `src/` en `open-sse/` (nul `any` in kernmodules sinds v2.0) -- **Framework**: Next.js 16 + React 19 + Tailwind CSS 4 -- **Database**: LowDB (JSON) + SQLite (domeinstatus + proxylogboeken + MCP-audit + routeringsbeslissingen) -- **Schema's**: Zod (MCP-tool I/O-validatie, API-contracten) -- **Protocollen**: MCP (stdio/HTTP) + A2A v0.3 (JSON-RPC 2.0 + SSE) -- **Streaming**: door de server verzonden gebeurtenissen (SSE) -- **Auth**: OAuth 2.0 (PKCE) + JWT + API-sleutels + MCP-scoped autorisatie -- **Testen**: Node.js testrunner + Vitest (900+ tests inclusief unit, integratie, E2E) -- **CI/CD**: GitHub-acties (automatische npm-publicatie + Docker Hub bij release) -- **Website**: [omniroute.online](https://omniroute.online) -- **Pakket**: [npmjs.com/package/omniroute](https://www.npmjs.com/package/omniroute) -- **Docker**: [hub.docker.com/r/diegosouzapw/omniroute](https://hub.docker.com/r/diegosouzapw/omniroute) -- **Veerkracht**: stroomonderbreker, exponentiële uitstel, anti-donderkudde, TLS-spoofing, automatische combo-zelfherstel - -</details> - ---- - -## 📖 Documentatie - -| Document | Beschrijving | -| ---------------------------------------------- | ---------------------------------------------------------- | -| [User Guide](docs/USER_GUIDE.md) | Providers, combo's, CLI-integratie, implementatie | -| [API Reference](docs/API_REFERENCE.md) | Alle eindpunten met voorbeelden | -| [MCP Server](open-sse/mcp-server/README.md) | 16 MCP-tools, IDE-configuraties, Python/TS/Go-clients | -| [A2A Server](src/lib/a2a/README.md) | JSON-RPC 2.0-protocol, vaardigheden, streaming, taakbeheer | -| [Auto-Combo Engine](docs/auto-combo.md) | Scoren met 6 factoren, moduspakketten, zelfgenezing | -| [Troubleshooting](docs/TROUBLESHOOTING.md) | Veelvoorkomende problemen en oplossingen | -| [Architecture](docs/ARCHITECTURE.md) | Systeemarchitectuur en internals | -| [Contributing](CONTRIBUTING.md) | Ontwikkelingsopstelling en richtlijnen | -| [OpenAPI Spec](docs/openapi.yaml) | OpenAPI 3.0-specificatie | -| [Security Policy](SECURITY.md) | Kwetsbaarheidsrapportage en beveiligingspraktijken | -| [VM Deployment](docs/VM_DEPLOYMENT_GUIDE.md) | Volledige gids: VM + nginx + Cloudflare-installatie | -| [Features Gallery](docs/FEATURES.md) | Visuele dashboardrondleiding met screenshots | -| [Release Checklist](docs/RELEASE_CHECKLIST.md) | Validatiestappen vóór de release | - ---- - -## 🗺️ Routekaart - -OmniRoute heeft **210+ functies gepland** over meerdere ontwikkelingsfasen. Dit zijn de belangrijkste gebieden: - -| Categorie | Geplande functies | Hoogtepunten | -| ------------------------------- | ----------------- | --------------------------------------------------------------------------------------------------------- | -| 🧠 **Routing en intelligentie** | 25+ | Routering met de laagste latentie, op tags gebaseerde routering, quota-preflight, P2C-accountselectie | -| 🔒 **Beveiliging en naleving** | 20+ | SSRF-verharding, cloaking van inloggegevens, snelheidslimiet per eindpunt, scoping van beheersleutels | -| 📊 **Waarneembaarheid** | 15+ | OpenTelemetry-integratie, realtime quotabewaking, kostenregistratie per model | -| 🔄 **Provider-integraties** | 20+ | Dynamisch modelregister, cooldowns van providers, Codex met meerdere accounts, parseren van Copilot-quota | -| ⚡ **Prestaties** | 15+ | Dubbele cachelaag, promptcache, responscache, streaming keepalive, batch-API | -| 🌐 **Ecosysteem** | 10+ | WebSocket API, configuratie hot-reload, gedistribueerde configuratieopslag, commerciële modus | - -### 🔜 Binnenkort beschikbaar - -- 🔗 **OpenCode-integratie** — Native providerondersteuning voor de OpenCode AI-coderings-IDE -- 🔗 **TRAE-integratie** — Volledige ondersteuning voor het TRAE AI-ontwikkelingsframework -- 📦 **Batch API** — Asynchrone batchverwerking voor bulkaanvragen -- 🎯 **Op tags gebaseerde routering** — Routeer verzoeken op basis van aangepaste tags en metagegevens -- 💰 **Laagste-kostenstrategie** — Selecteer automatisch de goedkoopste beschikbare provider - -> 📝 Volledige functiespecificaties beschikbaar in [**OMNI_TOKEN_342**](docs/new-features/) (217 gedetailleerde specificaties) - ---- - -## 👥 Bijdragers - -[![Contributors](https://contrib.rocks/image?repo=diegosouzapw/OmniRoute&max=100&columns=20&anon=1)](https://github.com/diegosouzapw/OmniRoute/graphs/contributors) - -### Hoe u kunt bijdragen - -1. Fork de repository -2. Maak uw feature branch (`git checkout -b feature/amazing-feature`) -3. Leg uw wijzigingen vast (`git commit -m 'Add amazing feature'`) -4. Duw naar het filiaal (`git push origin feature/amazing-feature`) -5. Open een Pull Request - -Zie [CONTRIBUTING.md](CONTRIBUTING.md) voor gedetailleerde richtlijnen. - -### Er wordt een nieuwe versie uitgebracht - -```bash -# Create a release — npm publish happens automatically -gh release create v2.0.0 --title "v2.0.0" --generate-notes -``` - ---- - -## 📊 Sterrengeschiedenis - -## Sterrenkijkers in de loop van de tijd - -## [![Stargazers over time](https://starchart.cc/diegosouzapw/OmniRoute.svg?variant=adaptive)](https://starchart.cc/diegosouzapw/OmniRoute) - -## 🙏 Dankbetuigingen - -Speciale dank aan **[9router](https://github.com/decolua/9router)** door **[decolua](https://github.com/decolua)** — het originele project dat deze vork inspireerde. OmniRoute bouwt voort op die ongelooflijke basis met extra functies, multimodale API's en een volledige TypeScript-herschrijving. - -Speciale dank aan **[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)** — de originele Go-implementatie die deze JavaScript-port inspireerde. - ---- - -## 📄 Licentie - -MIT-licentie - zie [LICENSE](LICENSE) voor details. - ---- - -<div align="center"> - <sub>Gebouwd met ❤️ voor ontwikkelaars die 24/7 coderen</sub> - <br/> - <sub><a href="https://omniroute.online">omniroute.online</a></sub> -</div> -<!-- GitHub Discussies ingeschakeld voor community Q&A --> +👉 **[Read the Documentation here](docs/i18n/nl/README.md)** diff --git a/README.no.md b/README.no.md index bb63aeeec2..1db4066200 100644 --- a/README.no.md +++ b/README.no.md @@ -1,2077 +1,5 @@ -# 🚀 OmniRoute — Den gratis AI-gatewayen +# 🌐 OmniRoute (no) -### Slutt aldri å kode. Smart ruting til **GRATIS og rimelige AI-modeller** med automatisk fallback. +The documentation has been formalized and moved to our centralized i18n structure. -_Din universelle API-proxy – ett endepunkt, 67+ leverandører, null nedetid. Nå med **MCP & A2A** agentorkestrering._ - -**Chatfullføringer • Innebygginger • Bildegenerering • Video • Musikk • Lyd • Rerangering • **Nettsøk** • MCP-server • A2A-protokoll • 100 % TypeScript** - ---- - -<div align="center"> - -[![npm version](https://img.shields.io/npm/v/omniroute?color=cb3837&logo=npm)](https://www.npmjs.com/package/omniroute) -[![npm downloads](https://img.shields.io/npm/dm/omniroute?color=cb3837&logo=npm&label=npm%20downloads)](https://www.npmjs.com/package/omniroute) -[![Docker Hub](https://img.shields.io/docker/v/diegosouzapw/omniroute?label=Docker%20Hub&logo=docker&color=2496ED)](https://hub.docker.com/r/diegosouzapw/omniroute) -[![Docker Pulls](https://img.shields.io/docker/pulls/diegosouzapw/omniroute?logo=docker&color=2496ED&label=docker%20pulls)](https://hub.docker.com/r/diegosouzapw/omniroute) -[![License](https://img.shields.io/github/license/diegosouzapw/OmniRoute)](https://github.com/diegosouzapw/OmniRoute/blob/main/LICENSE) -[![Website](https://img.shields.io/badge/Website-omniroute.online-blue?logo=google-chrome&logoColor=white)](https://omniroute.online) -[![WhatsApp](https://img.shields.io/badge/WhatsApp-Community-25D366?logo=whatsapp&logoColor=white)](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) - -[🌐 Website](https://omniroute.online) • [🚀 Quick Start](#-quick-start) • [💡 Features](#-key-features) • [📖 Docs](#-documentation) • [💰 Pricing](#-pricing-at-a-glance) • [💬 WhatsApp](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) - -</div> - -🌐 **Tilgjengelig i:** 🇺🇸 [English](README.md) | 🇧🇷 [Português (Brasil)](docs/i18n/pt-BR/README.md) | 🇪🇸 [Español](docs/i18n/es/README.md) | 🇫🇷 [Français](docs/i18n/fr/README.md) | 🇮🇹 [Italiano](docs/i18n/it/README.md) | 🇷🇺 [Русский](docs/i18n/ru/README.md) | 🇨🇳 [中文 (简体)](docs/i18n/zh-CN/README.md) | 🇩🇪 [Deutsch](docs/i18n/de/README.md) | 🇮🇳 [हिन्दी](docs/i18n/in/README.md) | 🇹🇭 [ไทย](docs/i18n/th/README.md) | 🇺🇦 [Українська](docs/i18n/uk-UA/README.md) | 🇸🇦 [العربية](docs/i18n/ar/README.md) | 🇯🇵 [日本語](docs/i18n/ja/README.md) | 🇻🇳 [Tiếng Việt](docs/i18n/vi/README.md) | 🇧🇬 [Български](docs/i18n/bg/README.md) | 🇩🇰 [Dansk](docs/i18n/da/README.md) | 🇫🇮 [Suomi](docs/i18n/fi/README.md) | 🇮🇱 [עברית](docs/i18n/he/README.md) | 🇭🇺 [Magyar](docs/i18n/hu/README.md) | 🇮🇩 [Bahasa Indonesia](docs/i18n/id/README.md) | 🇰🇷 [한국어](docs/i18n/ko/README.md) | 🇲🇾 [Bahasa Melayu](docs/i18n/ms/README.md) | 🇳🇱 [Nederlands](docs/i18n/nl/README.md) | 🇳🇴 [Norsk](docs/i18n/no/README.md) | 🇵🇹 [Português (Portugal)](docs/i18n/pt/README.md) | 🇷🇴 [Română](docs/i18n/ro/README.md) | 🇵🇱 [Polski](docs/i18n/pl/README.md) | 🇸🇰 [Slovenčina](docs/i18n/sk/README.md) | 🇸🇪 [Svenska](docs/i18n/sv/README.md) | 🇵🇭 [Filipino](docs/i18n/phi/README.md) | 🇨🇿 [Čeština](docs/i18n/cs/README.md) - ---- - -## 🆕 Hva er nytt i v3.0.0 - -> **Oppgraderer du fra v2.9.5?** — Se [full CHANGELOG](CHANGELOG.md#300--2026-03-22-release-candidate--not-yet-merged-to-main) for alle endringer. - -| Område | Endre | -| -------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| 🔒 **CodeQL Security** | Faste 10+ CodeQL-varsler: polynom-redos, usikker-tilfeldighet, shell-injection remediation | -| ✅ **Rutevalidering** | Alle 176 API-ruter er nå validert med Zod-skjemaer + `validateBody()` — CI `check:route-validation:t06`-passeringer | -| 🐛 **omniModel Tag Leak** | Interne `<omniModel>`-tagger lekker ikke lenger til klienter i SSE-strømmesvar (#585) | -| 🔑 **Registered Keys API** | Autoprovision API-nøkler via `POST /api/v1/registered-keys` med kvotehåndhevelse per leverandør/konto, idempotens, SHA-256-lagring og valgfri GitHub-problemrapportering | -| 🎨 **Leverandørikoner** | 130+ leverandørlogoer via `@lobehub/icons` (SVG) med PNG → generisk reservekjede | -| 🔄 **Modell Auto-Sync** | 24-timers planlegger og manuell brukergrensesnitt for å synkronisere modelllister for innebygde og tilpassede OpenAI-kompatible leverandører | -| 🌐 **OpenCode Zen/Go** | To nye leverandører fra @kang-heewon via PR #530: gratis nivå + abonnementsnivå via `OpencodeExecutor` | -| 🐛 **Gemini CLI OAuth** | Handlingsbar feil når `GEMINI_OAUTH_CLIENT_SECRET` mangler i Docker (var kryptisk Google-feil) | -| 🐛 **OpenCode-konfigurasjon** | `saveOpenCodeConfig()` skriver nå TOML riktig til `XDG_CONFIG_HOME` | -| 🐛 **Pinned modelloverstyring** | `body.model` riktig satt til `pinnedModel` på kontekstbufferbeskyttelse | -| 🐛 **Codex/Claude loop** | `tool_result` blokker nå konvertert til tekst for å stoppe uendelige løkker | -| 🐛 **Omdirigering av pålogging** | Pålogging fryser ikke lenger etter å ha hoppet over passordoppsett | -| 🐛 **Windows-baner** | MSYS2/Git-Bash-baner (`/c/...`) normalisert til `C:\...` automatisk | - ---- - -## 🖼️ Hoveddashbord - -<div align="center"> - <img src="./docs/screenshots/MainOmniRoute.png" alt="OmniRoute Dashboard" width="800"/> -</div> - ---- - -## 📸 Forhåndsvisning av dashbord - -<details> -<summary><b>Klikk for å se skjermbilder av dashbordet</b></summary> - -| Side | Skjermbilde | -| ----------------- | ------------------------------------------------- | -| **Tilbydere** | ![Providers](docs/screenshots/01-providers.png) | -| **Komboer** | ![Combos](docs/screenshots/02-combos.png) | -| **Analyse** | ![Analytics](docs/screenshots/03-analytics.png) | -| **Helse** | ![Health](docs/screenshots/04-health.png) | -| **Oversetter** | ![Translator](docs/screenshots/05-translator.png) | -| **Innstillinger** | ![Settings](docs/screenshots/06-settings.png) | -| **CLI-verktøy** | ![CLI Tools](docs/screenshots/07-cli-tools.png) | -| **Brukslogger** | ![Usage](docs/screenshots/08-usage.png) | -| **Endepunkter** | ![Endpoints](docs/screenshots/09-endpoint.png) | - -</details> - ---- - -### 🤖 Gratis AI-leverandør for dine favorittkodeagenter - -_Koble til ethvert AI-drevet IDE- eller CLI-verktøy gjennom OmniRoute – gratis API-gateway for ubegrenset koding._ - - <table> - <tr> - <td align="center" width="110"> - <a href="https://github.com/openclaw/openclaw"> - <img src="./public/providers/openclaw.png" alt="OpenClaw" width="48"/><br/> - <b>OpenClaw</b> - </a><br/> - <sub>⭐ 205K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/HKUDS/nanobot"> - <img src="./public/providers/nanobot.png" alt="NanoBot" width="48"/><br/> - <b>NanoBot</b> - </a><br/> - <sub>⭐ 20.9K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/sipeed/picoclaw"> - <img src="./public/providers/picoclaw.jpg" alt="PicoClaw" width="48"/><br/> - <b>PicoClaw</b> - </a><br/> - <sub>⭐ 14.6K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/zeroclaw-labs/zeroclaw"> - <img src="./public/providers/zeroclaw.png" alt="ZeroClaw" width="48"/><br/> - <b>ZeroClaw</b> - </a><br/> - <sub>⭐ 9.9K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/nearai/ironclaw"> - <img src="./public/providers/ironclaw.png" alt="IronClaw" width="48"/><br/> - <b>IronClaw</b> - </a><br/> - <sub>⭐ 2.1K</sub> - </td> - </tr> - <tr> - <td align="center" width="110"> - <a href="https://github.com/anomalyco/opencode"> - <img src="./public/providers/opencode.svg" alt="OpenCode" width="48"/><br/> - <b>OpenCode</b> - </a><br/> - <sub>⭐ 106K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/openai/codex"> - <img src="./public/providers/codex.png" alt="Codex CLI" width="48"/><br/> - <b>Codex CLI</b> - </a><br/> - <sub>⭐ 60.8K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/anthropics/claude-code"> - <img src="./public/providers/claude.png" alt="Claude Code" width="48"/><br/> - <b>Claude Code</b> - </a><br/> - <sub>⭐ 67.3K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/google-gemini/gemini-cli"> - <img src="./public/providers/gemini-cli.png" alt="Gemini CLI" width="48"/><br/> - <b>Gemini CLI</b> - </a><br/> - <sub>⭐ 94.7K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/Kilo-Org/kilocode"> - <img src="./public/providers/kilocode.png" alt="Kilo Code" width="48"/><br/> - <b>Kilo Code</b> - </a><br/> - <sub>⭐ 15.5K</sub> - </td> - </tr> - </table> - -<sub>📡 Alle agenter kobler til via <code>http://localhost:20128/v1</code> eller <code>http://cloud.omniroute.online/v1__OMNI_TOKEN_466, — unlimited one model_466 kvote</sub> - ---- - -## 🤔 Hvorfor OmniRoute? - -**Slutt å kaste bort penger og nå grensene:** - -- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Abonnementskvoten utløper ubrukt hver måned -- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Takstgrenser stopper deg med midtkoding -- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Dyre APIer ($20–50/måned per leverandør) -- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Manuell veksling mellom tilbydere - -**OmniRoute løser dette:** - -- ✅ **Maksimer abonnementer** - Spor kvote, bruk hver bit før tilbakestilling -- ✅ **Automatisk fallback** - Abonnement → API-nøkkel → Billig → Gratis, null nedetid -- ✅ **Multi-konto** - Round-robin mellom kontoer per leverandør -- ✅ **Universal** - Fungerer med Claude Code, Codex, Gemini CLI, Cursor, Cline, OpenClaw, hvilket som helst CLI-verktøy - ---- - -## 📧 Støtte - -> 💬 **Bli med i fellesskapet vårt!** [WhatsApp Group](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) — Få hjelp, del tips og hold deg oppdatert. - -- **Nettsted**: [omniroute.online](https://omniroute.online) -- **GitHub**: [github.com/diegosouzapw/OmniRoute](https://github.com/diegosouzapw/OmniRoute) -- **Problemer**: [github.com/diegosouzapw/OmniRoute/issues](https://github.com/diegosouzapw/OmniRoute/issues) -- **WhatsApp**: [Community Group](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) -- **Bidra**: Se [CONTRIBUTING.md](CONTRIBUTING.md), åpne en PR, eller velg en `good first issue` -- **Originalt prosjekt**: [9router by decolua](https://github.com/decolua/9router) - -### 🐛 Rapportere en feil? - -Når du åpner et problem, kjør systeminfo-kommandoen og legg ved den genererte filen: - -```bash -npm run system-info -``` - -Dette genererer en `system-info.txt` med Node.js-versjonen, OmniRoute-versjonen, OS-detaljer, installerte CLI-verktøy (qoder, gemini, claude, codex, antigravity, droid, etc.), Docker/PM2-status og systempakker – alt vi trenger for å gjenskape problemet raskt. Legg ved filen direkte til GitHub-problemet ditt. - ---- - -## 🔄 Slik fungerer det - -``` -┌─────────────┐ -│ Your CLI │ (Claude Code, Codex, Gemini CLI, OpenClaw, Cursor, Cline...) -│ Tool │ -└──────┬──────┘ - │ http://localhost:20128/v1 - ↓ -┌─────────────────────────────────────────┐ -│ OmniRoute (Smart Router) │ -│ • Format translation (OpenAI ↔ Claude) │ -│ • Quota tracking + Embeddings + Images │ -│ • Auto token refresh │ -└──────┬──────────────────────────────────┘ - │ - ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex, Gemini CLI - │ ↓ quota exhausted - ├─→ [Tier 2: API KEY] DeepSeek, Groq, xAI, Mistral, NVIDIA NIM, etc. - │ ↓ budget limit - ├─→ [Tier 3: CHEAP] GLM ($0.6/1M), MiniMax ($0.2/1M) - │ ↓ budget limit - └─→ [Tier 4: FREE] Qoder, Qwen, Kiro (unlimited) - -Result: Never stop coding, minimal cost -``` - ---- - -## 🎯 Hva OmniRoute løser — 30 ekte smertepoeng og brukstilfeller - -> **Hver utviklere som bruker AI-verktøy møter disse problemene daglig.** OmniRoute ble bygget for å løse dem alle – fra kostnadsoverskridelser til regionale blokker, fra ødelagte OAuth-flyter til protokolloperasjoner og observerbarhet i bedrifter. - -<details> -<summary><b>💸 1. "Jeg betaler for et dyrt abonnement, men blir fortsatt avbrutt av grenser"</b></summary> - -Utviklere betaler $20–200/måned for Claude Pro, Codex Pro eller GitHub Copilot. Selv om du betaler, har kvoten et tak – 5 timers bruk, ukentlige grenser eller rategrenser per minutt. Midtkodingsøkt, leverandøren slutter å svare og utvikleren mister flyt og produktivitet. - -**Hvordan OmniRoute løser det:** - -- **Smart 4-lags fallback** — Hvis abonnementskvoten går tom, omdirigeres automatisk til API-nøkkel → Billig → Gratis med null manuell intervensjon -- **Sanntidskvotesporing** — Viser tokenforbruk i sanntid med tilbakestilt nedtelling (5 timer, daglig, ukentlig) -- **Støtte for flere kontoer** - Flere kontoer per leverandør med automatisk round-robin - når en går tom, bytter du til den neste -- **Egendefinerte kombinasjoner** — Tilpassbare reservekjeder med 6 balansestrategier (fyll først, round-robin, P2C, tilfeldig, minst brukt, kostnadsoptimalisert) -- **Codex Business Quotas** — Overvåking av bedrifts-/teamarbeidsområdekvoter direkte i dashbordet - -</details> - -<details> -<summary><b>🔌 2. "Jeg trenger å bruke flere leverandører, men hver har en annen API"</b></summary> - -OpenAI bruker ett format, Claude (Anthropic) bruker et annet, Gemini enda et annet. Hvis en utvikler ønsker å teste modeller fra forskjellige leverandører eller fallback mellom dem, må de rekonfigurere SDK-er, endre endepunkter, håndtere inkompatible formater. Tilpassede leverandører (FriendLI, NIM) har ikke-standardmodellende endepunkter. - -**Hvordan OmniRoute løser det:** - -- **Unified Endpoint** — En enkelt `http://localhost:20128/v1` fungerer som proxy for alle 67+ leverandører -- **Formatoversettelse** — Automatisk og gjennomsiktig: OpenAI ↔ Claude ↔ Gemini ↔ Responses API - – **Responsrensing** – Fjerner ikke-standardfelter (`x_groq`, `usage_breakdown`, `service_tier`) som bryter OpenAI SDK v1.83+ -- **Rollenormalisering** — Konverterer `developer` → `system` for ikke-OpenAI-leverandører; `system` → `user` for GLM/ERNIE -- **Think Tag Extraction** — Trekker ut `<think>` blokker fra modeller som DeepSeek R1 til standardiserte `reasoning_content` -- **Structured Output for Gemini** — `json_schema` → `responseMimeType`/`responseSchema` automatisk konvertering -- **`stream` er standard til `false`** - Justerer med OpenAI-spesifikasjoner, og unngår uventet SSE i Python/Rust/Go SDK-er - -</details> - -<details> -<summary><b>🌐 3. "Min AI-leverandør blokkerer min region/land"</b></summary> - -Leverandører som OpenAI/Codex blokkerer tilgang fra visse geografiske områder. Brukere får feil som `unsupported_country_region_territory` under OAuth- og API-tilkoblinger. Dette er spesielt frustrerende for utviklere fra utviklingsland. - -**Hvordan OmniRoute løser det:** - -- **3-Level Proxy Config** — Konfigurerbar proxy på 3 nivåer: global (all trafikk), per leverandør (kun én leverandør) og per tilkobling/nøkkel -- **Fargekodede proxy-merker** — Visuelle indikatorer: 🟢 global proxy, 🟡 leverandørproxy, 🔵 tilkoblings proxy, viser alltid IP -- **OAuth-tokenutveksling gjennom proxy** — OAuth-flyt går også gjennom proxyen, og løser `unsupported_country_region_territory` -- **Test av tilkobling via proxy** — Tilkoblingstester bruker den konfigurerte proxyen (ikke mer direkte forbikobling) -- **SOCKS5-støtte** — Full SOCKS5-proxystøtte for utgående ruting -- **TLS-fingeravtrykkspoofing** - Nettleserlignende TLS-fingeravtrykk via `wreq-js` for å omgå botdeteksjon -- **🔏 Matching av CLI-fingeravtrykk** — Omorganiserer overskrifter og brødtekstfelter for å matche native CLI-binære signaturer, noe som reduserer risikoen for kontoflagging drastisk. Proxy-IP-en er bevart – du får både skjult **og** IP-maskering samtidig - -</details> - -<details> -<summary><b>🆓 4. "Jeg vil bruke AI for koding, men jeg har ingen penger"</b></summary> - -Ikke alle kan betale $20–200 per måned for AI-abonnementer. Studenter, utviklere fra fremvoksende land, hobbyfolk og frilansere trenger tilgang til kvalitetsmodeller uten kostnad. - -**Hvordan OmniRoute løser det:** - -- **Gratis-tilbydere innebygd** — Innebygd støtte for 100 % gratis leverandører: Qoder (5 ubegrensede modeller via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen: 4 qwen3-modeller,-r qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID gratis), Gemini CLI (180K tokens/måned gratis) -- **Ollama Cloud** — Ollama-modeller med skyvert hos `api.ollama.com` med gratis «Lett bruk»-lag; bruk `ollamacloud/<model>` prefiks -- **Kun gratis kombinasjoner** — Kjede `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/måned med null nedetid -- **NVIDIA NIM Free Access** — ~40 RPM dev-forever gratis tilgang til 70+ modeller på build.nvidia.com (overgang fra kreditter til rene rategrenser) -- **Kostnadsoptimalisert strategi** — Rutingstrategi som automatisk velger den billigste tilgjengelige leverandøren - -</details> - -<details> -<summary><b>🔒 5. "Jeg trenger å beskytte AI-gatewayen min mot uautorisert tilgang"</b></summary> - -Når du eksponerer en AI-gateway til nettverket (LAN, VPS, Docker), kan alle med adressen konsumere utviklerens tokens/kvote. Uten beskyttelse er API-er sårbare for misbruk, umiddelbar injeksjon og misbruk. - -**Hvordan OmniRoute løser det:** - -- **API Key Management** — Generering, rotasjon og scoping per leverandør med en dedikert `/dashboard/api-manager` side -- **Tillatelser på modellnivå** — Begrens API-nøkler til spesifikke modeller (`openai/*`, jokertegnmønstre), med Tillat alt/begrens-bryteren -- **API Endpoint Protection** — Krev en nøkkel for `/v1/models` og blokker spesifikke leverandører fra oppføringen -- **Auth Guard + CSRF Protection** — Alle dashbordruter beskyttet med `withAuth` mellomvare + CSRF-tokens -- **Rate Limiter** — Per-IP ratebegrensning med konfigurerbare vinduer -- **IP-filtrering** — Tillatelsesliste/blokkeringsliste for tilgangskontroll -- **Prompt Injection Guard** — Sanitisering mot ondsinnede spørsmålsmønstre -- **AES-256-GCM-kryptering** — Legitimasjon kryptert i hvile - -</details> - -<details> -<summary><b>🛑 6. "Tilbyderen min gikk ned og jeg mistet kodeflyten min"</b></summary> - -AI-leverandører kan bli ustabile, returnere 5xx-feil eller nå midlertidige hastighetsgrenser. Hvis en utvikler er avhengig av en enkelt leverandør, blir de avbrutt. Uten strømbrytere kan gjentatte forsøk krasje applikasjonen. - -**Hvordan OmniRoute løser det:** - -- **Circuit Breaker per modell** — Automatisk åpning/lukking med konfigurerbare terskler og nedkjøling (Lukket/Åpen/Halv-Åpen), omfang per modell for å unngå kaskadeblokker -- **Eksponentiell backoff** — Progressive forsinkelser på nytt forsøk -- **Anti-tordenflokk** — Mutex + semaforbeskyttelse mot samtidige stormer på nytt forsøk -- **Combo Fallback Chains** — Hvis primærleverandøren mislykkes, faller den automatisk gjennom kjeden uten inngrep -- **Combo Circuit Breaker** - Deaktiverer sviktende leverandører automatisk i en kombinasjonskjede -- **Helsedashbord** — Oppetidsovervåking, strømbrytertilstander, sperringer, cachestatistikk, p50/p95/p99 latency - -</details> - -<details> -<summary><b>🔧 7. "Å konfigurere hvert AI-verktøy er kjedelig og repeterende"</b></summary> - -Utviklere bruker Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code... Hvert verktøy trenger en annen konfigurasjon (API-endepunkt, nøkkel, modell). Å konfigurere på nytt når du bytter leverandør eller modell er bortkastet tid. - -**Hvordan OmniRoute løser det:** - -- **CLI Tools Dashboard** — Dedikert side med ett-klikksoppsett for Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline -- **GitHub Copilot Config Generator** — Genererer `chatLanguageModels.json` for VS-kode med bulkmodellvalg -- **Onboarding Wizard** — Veiledet 4-trinns oppsett for førstegangsbrukere -- **Ett endepunkt, alle modeller** — Konfigurer `http://localhost:20128/v1` én gang, få tilgang til 67+ leverandører - -</details> - -<details> -<summary><b>🔑 8. "Å administrere OAuth-tokens fra flere leverandører er et helvete"</b></summary> - -Claude Code, Codex, Gemini CLI, Copilot – alle bruker OAuth 2.0 med tokens som utløper. Utviklere må re-autentisere hele tiden, håndtere `client_secret is missing`, `redirect_uri_mismatch` og feil på eksterne servere. OAuth på LAN/VPS er spesielt problematisk. - -**Hvordan OmniRoute løser det:** - -- **Automatisk oppdatering av token** — OAuth-tokener oppdateres i bakgrunnen før utløp -- **OAuth 2.0 (PKCE) innebygd** — Automatisk flyt for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder -- **Multi-Account OAuth** - Flere kontoer per leverandør via JWT/ID-tokenutvinning -- **OAuth LAN/Remote Fix** — Privat IP-deteksjon for `redirect_uri` + manuell URL-modus for eksterne servere -- **OAuth Behind Nginx** — Bruker `window.location.origin` for omvendt proxy-kompatibilitet -- **Remote OAuth Guide** — Trinn-for-trinn-veiledning for Google Cloud-legitimasjon på VPS/Docker - -</details> - -<details> -<summary><b>📊 9. "Jeg vet ikke hvor mye jeg bruker eller hvor"</b></summary> - -Utviklere bruker flere betalte leverandører, men har ikke noe enhetlig syn på utgifter. Hver leverandør har sitt eget faktureringsdashbord, men det er ingen konsolidert visning. Uventede kostnader kan hope seg opp. - -**Hvordan OmniRoute løser det:** - -- **Dashboard for kostnadsanalyse** — Kostnadssporing per token og budsjettadministrasjon per leverandør - – **Budsjettgrenser per nivå** – Utgiftstak per nivå som utløser automatisk fallback -- **Priskonfigurasjon per modell** — Konfigurerbare priser per modell -- **Bruksstatistikk per API-nøkkel** — Antall forespørsler og sist brukte tidsstempel per nøkkel -- **Analytics Dashboard** — Statistiske kort, modellbruksdiagram, leverandørtabell med suksessrater og latens - -</details> - -<details> -<summary><b>🐛 10. "Jeg kan ikke diagnostisere feil og problemer i AI-anrop"</b></summary> - -Når et anrop mislykkes, vet ikke utvikleren om det var en takstgrense, utløpt token, feil format eller leverandørfeil. Fragmenterte logger på tvers av forskjellige terminaler. Uten observerbarhet er feilsøking prøving og feiling. - -**Hvordan OmniRoute løser det:** - -- **Unified Logs Dashboard** — 4 faner: Forespørselslogger, proxy-logger, revisjonslogger, konsoll -- **Console Log Viewer** — Viser i sanntid i terminalstil med fargekodede nivåer, automatisk rulling, søk, filter -- **SQLite Proxy Logger** — Vedvarende logger som overlever serverstarter -- **Translator Playground** — 4 feilsøkingsmoduser: Playground (formatoversettelse), Chat Tester (tur-retur), Test Bench (batch), Live Monitor (sanntid) -- **Request Telemetri** — p50/p95/p99 latens + X-Request-Id-sporing -- **Filbasert logging med rotasjon** — Konsollinterceptor fanger opp alt til JSON-logg med størrelsesbasert rotasjon -- **Systeminforapport** — `npm run system-info` genererer `system-info.txt` med hele miljøet ditt (nodeversjon, OmniRoute-versjon, OS, CLI-verktøy, Docker/PM2-status). Legg den ved når du rapporterer problemer for umiddelbar triage. - -</details> - -<details> -<summary><b>🏗️ 11. "Deployering og vedlikehold av gatewayen er kompleks"</b></summary> - -Installering, konfigurering og vedlikehold av en AI-proxy på tvers av forskjellige miljøer (lokalt, VPS, Docker, sky) er arbeidskrevende. Problemer som hardkodede baner, `EACCES` på kataloger, portkonflikter og kryssplattformbygg gir friksjon. - -**Hvordan OmniRoute løser det:** - -- **npm global installasjon** — `npm install -g omniroute && omniroute` — ferdig -- **Docker Multi-Platform** — AMD64 + ARM64 native (Apple Silicon, AWS Graviton, Raspberry Pi) -- **Docker Compose-profiler** — `base` (ingen CLI-verktøy) og `cli` (med Claude Code, Codex, OpenClaw) -- **Electron Desktop App** — Innebygd app for Windows/macOS/Linux med systemstatusfelt, automatisk start, offline-modus -- **Split-Port Mode** — API og Dashboard på separate porter for avanserte scenarier (omvendt proxy, containernettverk) -- **Cloud Sync** — Konfigurer synkronisering på tvers av enheter via Cloudflare Workers -- **DB-sikkerhetskopier** — Automatisk sikkerhetskopiering, gjenoppretting, eksport og import av alle innstillinger - -</details> - -<details> -<summary><b>🌍 12. "Grensesnittet er kun engelsk og teamet mitt snakker ikke engelsk"</b></summary> - -Lag i ikke-engelsktalende land, spesielt i Latin-Amerika, Asia og Europa, sliter med grensesnitt som kun er på engelsk. Språkbarrierer reduserer bruken og øker konfigurasjonsfeil. - -**Hvordan OmniRoute løser det:** - -- **Dashboard i18n — 30 språk** — Alle 500+ nøkler oversatt, inkludert arabisk, bulgarsk, dansk, tysk, spansk, finsk, fransk, hebraisk, hindi, ungarsk, indonesisk, italiensk, japansk, koreansk, malaysisk, nederlandsk, norsk, polsk, portugisisk (PT/BR), rumensk, russisk, ukrainsk, ukrainsk, kinesisk, engelsk, kinesisk, ukrainsk, kinesisk, ukrainsk, kinesisk, ukrainsk, kinesisk, ukrainsk, kinesisk -- **RTL-støtte** — Høyre-til-venstre-støtte for arabisk og hebraisk -- **Multi-Language READMEs** - 30 komplette dokumentasjonsoversettelser -- **Språkvelger** — Globusikon i overskriften for sanntidsbytte - -</details> - -<details> -<summary><b>🔄 13. "Jeg trenger mer enn chat — jeg trenger innbygginger, bilder, lyd"</b></summary> - -AI er ikke bare fullføring av chat. Utviklere må generere bilder, transkribere lyd, lage innbygginger for RAG, omrangere dokumenter og moderere innhold. Hver API har et annet endepunkt og format. - -**Hvordan OmniRoute løser det:** - -- **Innbygging** — `/v1/embeddings` med 6 leverandører og 9+ modeller -- **Bildegenerering** — `/v1/images/generations` med 10 leverandører og 20+ modeller (OpenAI, xAI, Together, Fireworks, Nebius, Hyperbolic, NanoBanana, Antigravity, SD WebUI, ComfyUI) -- **Tekst-til-video** — `/v1/videos/generations` — ComfyUI (AnimateDiff, SVD) og SD WebUI -- **Tekst-til-musikk** — `/v1/music/generations` — ComfyUI (Stable Audio Open, MusicGen) -- **Lydtranskripsjon** — `/v1/audio/transcriptions` — Whisper + Nvidia NIM, HuggingFace, Qwen3 -- **Tekst-til-tale** — `/v1/audio/speech` — ElevenLabs, Nvidia NIM, HuggingFace, Coqui, Tortoise, Qwen3, **Inworld**, **Cartesia**, **PlayHT**, + eksisterende leverandører -- **Moderasjoner** — `/v1/moderations` — Innholdssikkerhetssjekker -- **Rerangering** — `/v1/rerank` — Rerangering av dokumentrelevans -- **Responses API** — Full `/v1/responses`-støtte for Codex - -</details> - -<details> -<summary><b>🧪 14. "Jeg har ingen måte å teste og sammenligne kvalitet på tvers av modeller"</b></summary> - -Utviklere ønsker å vite hvilken modell som er best for deres brukssituasjon – kode, oversettelse, resonnement – men det går tregt å sammenligne manuelt. Det finnes ingen integrerte evalueringsverktøy. - -**Hvordan OmniRoute løser det:** - -- **LLM-evalueringer** - Gyldent sett-testing med 10 forhåndsinnlastede tilfeller som dekker hilsener, matematikk, geografi, kodegenerering, JSON-overholdelse, oversettelse, nedskrivning, sikkerhetsavslag -- **4 kampstrategier** — `exact`, `contains`, `regex`, `custom` (JS-funksjon) -- **Translator Playground Test Bench** — Batchtesting med flere innganger og forventede utganger, sammenligning på tvers av leverandører -- **Chattetester** — Full rundtur med visuell responsgjengivelse -- **Live Monitor** — Sanntidsstrøm av alle forespørsler som strømmer gjennom proxyen - -</details> - -<details> -<summary><b>📈 15. "Jeg trenger å skalere uten å miste ytelsen"</b></summary> - -Når forespørselsvolumet vokser, genererer de samme spørsmålene dupliserte kostnader uten å bufre. Uten idempotens, dupliserte forespørsler om avfallsbehandling. Satsgrenser per leverandør må respekteres. - -**Hvordan OmniRoute løser det:** - -- **Semantisk hurtigbuffer** — To-lags cache (signatur + semantisk) reduserer kostnader og ventetid -- **Request Idempotency** — 5s dedupliseringsvindu for identiske forespørsler -- **Deteksjon av hastighetsgrense** - RPM per leverandør, minimum gap og maksimal samtidig sporing -- **Redigerbare frekvensgrenser** — Konfigurerbare standardinnstillinger i Innstillinger → Motstandsdyktighet med utholdenhet -- **API Key Validation Cache** — 3-lags cache for produksjonsytelse -- **Helsedashbord med telemetri** — p50/p95/p99-forsinkelse, hurtigbufferstatistikk, oppetid - -</details> - -<details> -<summary><b>🤖 16. "Jeg vil kontrollere modellatferd globalt"</b></summary> - -Utviklere som vil ha alle svar på et spesifikt språk, med en bestemt tone, eller som ønsker å begrense resonnement-tokens. Å konfigurere dette i hvert verktøy/hver forespørsel er upraktisk. - -**Hvordan OmniRoute løser det:** - -- **System Prompt Injection** — Global forespørsel brukt på alle forespørsler -- **Thinking Budget Validation** — Reasoning token allocation control per request (passthrough, auto, custom, adaptive) -- **6 rutingstrategier** — Globale strategier som bestemmer hvordan forespørsler distribueres -- **Wildcard-ruter** — `provider/*`-mønstre rutes dynamisk til enhver leverandør -- **Kombo aktiver/deaktiver veksle** — Veksle kombinasjoner direkte fra dashbordet -- **Tilkobling av leverandør** — Aktiver/deaktiver alle tilkoblinger for en leverandør med ett klikk -- **Blokkerte leverandører** — Ekskluder spesifikke leverandører fra `/v1/models`-oppføringen - -</details> - -<details> -<summary><b>🧰 17. "Jeg trenger MCP-verktøy som førsteklasses produktegenskaper"</b></summary> - -Mange AI-gatewayer avslører MCP bare som en skjult implementeringsdetalj. Team trenger et synlig, håndterbart driftslag. - -**Hvordan OmniRoute løser det:** - -- MCP vises i dashbordnavigasjons- og endepunktprotokollfanen -- Dedikert MCP-administrasjonsside med prosess, verktøy, omfang og revisjon -- Innebygd hurtigstart for `omniroute --mcp` og klient onboarding - -</details> - -<details> -<summary><b>🧠 18. "Jeg trenger A2A-orkestrering med synkronisering + strømoppgavestier"</b></summary> - -Agentarbeidsflyter trenger både direkte svar og langvarig strømmet utførelse med livssykluskontroll. - -**Hvordan OmniRoute løser det:** - -- A2A JSON-RPC-endepunkt (`POST /a2a`) med `message/send` og `message/stream` -- SSE-streaming med forplantning av terminaltilstand -- Oppgavelivssyklus-API-er for `tasks/get` og `tasks/cancel` - -</details> - -<details> -<summary><b>🛰️ 19. "Jeg trenger ekte MCP-prosesshelse, ikke gjettet status"</b></summary> - -Operasjonelle team må vite om MCP faktisk er i live, ikke bare om en API er tilgjengelig. - -**Hvordan OmniRoute løser det:** - -- Runtime hjerteslag-fil med PID, tidsstempler, transport, verktøytelling og omfangsmodus -- MCP status API som kombinerer hjerteslag + nylig aktivitet -- UI-statuskort for prosess/oppetid/hjerteslag - -</details> - -<details> -<summary><b>📋 20. "I need auditable MCP toolexecution"</b></summary> - -Når verktøy muterer konfigurasjon eller utløser operasjonshandlinger, trenger teamene rettsmedisinsk sporbarhet. - -**Hvordan OmniRoute løser det:** - -- SQLite-støttet revisjonslogging for MCP-verktøykall -- Filtrerer etter verktøy, suksess/fiasko, API-nøkkel og paginering -- Dashboard revisjonstabell + statistikkendepunkter for automatisering - -</details> - -<details> -<summary><b>🔐 21. "Jeg trenger scoped MCP-tillatelser per integrasjon"</b></summary> - -Ulike klienter bør ha minst privilegert tilgang til verktøykategorier. - -**Hvordan OmniRoute løser det:** - -- 9 granulære MCP-skoper for kontrollert verktøytilgang -- Håndhevelse av omfang og synlighet i MCP-administrasjonsgrensesnittet -- Sikker standardstilling for operativt verktøy - -</details> - -<details> -<summary><b>⚙️ 22. "Jeg trenger operasjonelle kontroller uten å omdistribuere"</b></summary> - -Lag trenger raske endringer i kjøretiden under hendelser eller kostnadshendelser. - -**Hvordan OmniRoute løser det:** - -- Bytt kombinasjonsaktivering direkte fra MCP-dashbordet -- Bruk robusthetsprofiler fra forhåndsdefinerte policypakker -- Tilbakestill strømbryterens tilstand fra samme driftspanel - -</details> - -<details> -<summary><b>🔄 23. "I need live A2A task lifecycle synibility and cancellation"</b></summary> - -Uten livssyklussynlighet blir oppgavehendelser vanskelig å triage. - -**Hvordan OmniRoute løser det:** - -- Oppgaveliste/filtrering etter tilstand/ferdighet med paginering -- Drill-down på oppgavemetadata, hendelser og artefakter -- Sluttpunkt for kansellering av oppgave og UI-handling med bekreftelse - -</details> - -<details> -<summary><b>🌊 24. "Jeg trenger aktive strømmemålinger for A2A-last"</b></summary> - -Strømmearbeidsflyter krever operasjonell innsikt i samtidighet og direkteforbindelser. - -**Hvordan OmniRoute løser det:** - -- Aktive strømtellere integrert i A2A-status -- Tidsstempel for siste oppgave og antall per stat -- A2A dashbordkort for operasjonsovervåking i sanntid - -</details> - -<details> -<summary><b>🪪 25. "Jeg trenger standard agentoppdagelse for klienter"</b></summary> - -Eksterne klienter og orkestratorer trenger maskinlesbare metadata for onboarding. - -**Hvordan OmniRoute løser det:** - -- Agentkort avslørt på `/.well-known/agent.json` -- Evner og ferdigheter vist i ledelsens brukergrensesnitt -- A2A status API inkluderer oppdagelsesmetadata for automatisering - -</details> - -<details> -<summary><b>🧭 26. "Jeg trenger protokolloppdagbarhet i produktets UX"</b></summary> - -Hvis brukere ikke kan oppdage protokolloverflater, faller kvaliteten på adopsjon og støtte. - -**Hvordan OmniRoute løser det:** - -- Konsolidert **Endepunkter**-side med faner for proxy-, MCP-, A2A- og API-endepunkter -- Inline tjenestestatus veksler (Online/Offline) for MCP og A2A -- Lenker fra oversikt til dedikerte administrasjonsfaner - -</details> - -<details> -<summary><b>🧪 27. "Jeg trenger ende-til-ende protokollvalidering med ekte klienter"</b></summary> - -Mock-tester er ikke nok til å validere protokollkompatibilitet før utgivelse. - -**Hvordan OmniRoute løser det:** - -- E2E-suite som starter opp app og bruker ekte MCP SDK-klienttransport -- A2A-klient tester for å oppdage, sende, streame, hente og kansellere flyter -- Krysssjekk påstander mot MCP-revisjon og A2A-oppgave-APIer - -</details> - -<details> -<summary><b>📡 28. "Jeg trenger enhetlig observerbarhet på tvers av alle grensesnitt"</b></summary> - -Å dele observerbarhet etter protokoll skaper blinde flekker og lengre MTTR. - -**Hvordan OmniRoute løser det:** - -- Samlede dashboards/logger/analyse i ett produkt -- Helse + revisjon + forespørsel om telemetri på tvers av OpenAI-, MCP- og A2A-lag -- Operasjonelle APIer for status og automatisering - -</details> - -<details> -<summary><b>💼 29. "Jeg trenger én kjøretid for proxy + verktøy + agentorkestrering"</b></summary> - -Å kjøre mange separate tjenester øker driftskostnadene og feilmodusene. - -**Hvordan OmniRoute løser det:** - -- OpenAI-kompatibel proxy, MCP-server og A2A-server i én stabel -- Delt autentisering, robusthet, datalagring og observerbarhet -- Konsekvent policymodell på tvers av alle interaksjonsflater - -</details> - -<details> -<summary><b>🚀 30. "I need to ship agentic workflows without glue-code sprawl"</b></summary> - -Lag mister hastighet når de setter sammen flere ad-hoc-tjenester og skript. - -**Hvordan OmniRoute løser det:** - -- Enhetlig endepunktstrategi for kunder og agenter -- Innebygde brukergrensesnitt for protokolladministrasjon og røykvalideringsveier -- Produksjonsklare fundamenter (sikkerhet, logging, robusthet, backup) - -</details> - -### Eksempel på Playbooks (integrerte brukstilfeller) - -**Playbook A: Maksimer betalt abonnement + billig backup** - -```txt -Combo: "maximize-claude" - 1. cc/claude-opus-4-6 - 2. glm/glm-4.7 - 3. if/kimi-k2-thinking - -Monthly cost: $20 + small backup spend -Outcome: higher quality, near-zero interruption -``` - -**Playbook B: Nullkostnadskodestabel** - -```txt -Combo: "free-forever" - 1. gc/gemini-3-flash - 2. if/kimi-k2-thinking - 3. qw/qwen3-coder-plus - -Monthly cost: $0 -Outcome: stable free coding workflow -``` - -**Playbook C: 24/7 alltid aktiv reservekjede** - -```txt -Combo: "always-on" - 1. cc/claude-opus-4-6 - 2. cx/gpt-5.2-codex - 3. glm/glm-4.7 - 4. minimax/MiniMax-M2.1 - 5. if/kimi-k2-thinking - -Outcome: deep fallback depth for deadline-critical workloads -``` - -**Playbook D: Agentoperasjoner med MCP + A2A** - -```txt -1) Start MCP transport (`omniroute --mcp`) for tool-driven operations -2) Run A2A tasks via `message/send` and `message/stream` -3) Observe via /dashboard/endpoint (MCP and A2A tabs) -4) Toggle services via inline status controls -``` - ---- - -## 🆓 Start gratis — Null konfigurasjonskostnad - -> Konfigurer AI-koding på minutter til **$0/måned**. Koble til disse gratis kontoene og bruk den innebygde **Free Stack**-kombinasjonen. - -| Trinn | Handling | Leverandører ulåst | -| ----- | ------------------------------------------------ | ------------------------------------------------------------------- | -| 1 | Koble til **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — **ubegrenset** | -| 2 | Koble til **Qoder** (Google OAuth) | kimi-k2-tenkning, qwen3-coder-plus, deepseek-r1... — **ubegrenset** | -| 3 | Koble til **Qwen** (enhetskode) | qwen3-coder-pluss, qwen3-coder-flash... — **ubegrenset** | -| 4 | Koble til **Gemini CLI** (Google OAuth) | gemini-3-flash, gemini-2.5-pro — **180K/mnd gratis** | -| 5 | `/dashboard/combos` → **Gratis stabel ($0)** mal | Round-robin alle gratisleverandører automatisk | - -**Pekt en hvilken som helst IDE/CLI til:** `http://localhost:20128/v1` · API-nøkkel: `any-string` · Ferdig. - -> **Valgfri ekstra dekning (også gratis):** Groq API-nøkkel (30 RPM gratis), NVIDIA NIM (40 RPM gratis, 70+ modeller), Cerebras (1M tok/dag), LongCat API-nøkkel (50M tokens/dag!), Cloudflare Workers AI (10K Neurons/day, 50+ modeller). - -## ⚡ Hurtigstart - -### 1) Installer og kjør - -```bash -npm install -g omniroute -omniroute -``` - -> **pnpm-brukere:** Kjør `pnpm approve-builds -g` etter installasjon for å aktivere native build-skript som kreves av `better-sqlite3` og `@swc/core`: -> -> ```bash -> pnpm install -g omniroute -> pnpm approve-builds -g # Select all packages → approve -> omniroute -> ``` - -Dashboard åpnes på `http://localhost:20128` og API-base-URL er `http://localhost:20128/v1`. - -| Kommando | Beskrivelse | -| ----------------------- | ---------------------------------------------------------- | -| `omniroute` | Start server (`PORT=20128`, API og dashbord på samme port) | -| `omniroute --port 3000` | Sett kanonisk/API-port til 3000 | -| `omniroute --mcp` | Start MCP-server (stdio-transport) | -| `omniroute --no-open` | Ikke åpne nettleseren automatisk | -| `omniroute --help` | Vis hjelp | - -Valgfri delt port-modus: - -```bash -PORT=20128 DASHBOARD_PORT=20129 omniroute -# API: http://localhost:20128/v1 -# Dashboard: http://localhost:20129 -``` - -### 2) Koble til leverandører og lag API-nøkkelen din - -1. Åpne Dashboard → `Providers` og koble til minst én leverandør (OAuth- eller API-nøkkel). -2. Åpne Dashboard → `Endpoints` og lag en API-nøkkel. -3. (Valgfritt) Åpne Dashboard → `Combos` og sett reservekjeden. - -### 3) Pek kodeverktøyet til OmniRoute - -```txt -Base URL: http://localhost:20128/v1 -API Key: [copy from Endpoint page] -Model: if/kimi-k2-thinking (or any provider/model prefix) -``` - -Fungerer med Claude Code, Codex CLI, Gemini CLI, Cursor, Cline, OpenClaw, OpenCode og OpenAI-kompatible SDK-er. - -### 4) Aktiver og valider protokoller (v2.0) - -**MCP (for verktøydrevne operasjoner):** - -```bash -omniroute --mcp -``` - -Koble deretter til MCP-klienten din over `stdio` og test verktøy som: - -- `omniroute_get_health` -- `omniroute_list_combos` - -**A2A (for agent-til-agent arbeidsflyter):** - -```bash -curl http://localhost:20128/.well-known/agent.json -``` - -```bash -curl -X POST http://localhost:20128/a2a \ - -H 'content-type: application/json' \ - -d '{"jsonrpc":"2.0","id":"quickstart","method":"message/send","params":{"skill":"quota-management","messages":[{"role":"user","content":"Give me a short quota summary."}]}}' -``` - -### 5) Valider alt ende-til-ende (anbefalt) - -```bash -npm run test:protocols:e2e -``` - -Denne suiten validerer ekte MCP- og A2A-klientflyter mot en kjørende app. - -### Alternativ: kjør fra kilden - -```bash -cp .env.example .env -npm install -PORT=20128 DASHBOARD_PORT=20129 NEXT_PUBLIC_BASE_URL=http://localhost:20129 npm run dev -``` - ---- - -## 🐳 Docker - -OmniRoute er tilgjengelig som et offentlig Docker-bilde på [Docker Hub](https://hub.docker.com/r/diegosouzapw/omniroute). - -**Rask løp:** - -```bash -docker run -d \ - --name omniroute \ - --restart unless-stopped \ - -p 20128:20128 \ - -v omniroute-data:/app/data \ - diegosouzapw/omniroute:latest -``` - -**Med miljøfil:** - -```bash -# Copy and edit .env first -cp .env.example .env - -docker run -d \ - --name omniroute \ - --restart unless-stopped \ - --env-file .env \ - -p 20128:20128 \ - -v omniroute-data:/app/data \ - diegosouzapw/omniroute:latest -``` - -**Bruke Docker Compose:** - -```bash -# Base profile (no CLI tools) -docker compose --profile base up -d - -# CLI profile (Claude Code, Codex, OpenClaw built-in) -docker compose --profile cli up -d -``` - -| Bilde | Tag | Størrelse | Beskrivelse | -| ------------------------ | -------- | --------- | ----------------------- | -| `diegosouzapw/omniroute` | `latest` | ~250MB | Siste stabile utgivelse | -| `diegosouzapw/omniroute` | `1.0.3` | ~250MB | Gjeldende versjon | - ---- - -## 🖥️ Desktop-app — Frakoblet og alltid på - -> 🆕 **NYHET!** OmniRoute er nå tilgjengelig som en **native desktop-applikasjon** for Windows, macOS og Linux. - -Kjør OmniRoute som en frittstående skrivebordsapp – ingen terminal, ingen nettleser, ingen internett nødvendig for lokale modeller. Den elektronbaserte appen inkluderer: - -- 🖥️ **Native Window** — Dedikert appvindu med systemstatusfeltintegrasjon -- 🔄 **Autostart** — Start OmniRoute ved systempålogging -- 🔔 **Native notifications** — Få varsler for kvotebruk eller leverandørproblemer -- ⚡ **One-Click Install** — NSIS (Windows), DMG (macOS), AppImage (Linux) -- 🌐 **Frakoblet modus** — Fungerer helt offline med medfølgende server - -### Hurtigstart - -```bash -# Development mode -npm run electron:dev - -# Build for your platform -npm run electron:build # Current platform -npm run electron:build:win # Windows (.exe) -npm run electron:build:mac # macOS (.dmg) — x64 & arm64 -npm run electron:build:linux # Linux (.AppImage) -``` - -### Systemstatusfelt - -Når den er minimert, lever OmniRoute i systemstatusfeltet med raske handlinger: - -- Åpne dashbordet -- Endre serverport -- Avslutt programmet - -📖 Full dokumentasjon: [**OMNI_TOKEN_153**](electron/README.md) - ---- - -## 💰 Priser på et øyeblikk - -| Nivå | Leverandør | Kostnad | Kvote Tilbakestill | Best for | -| ----------------- | --------------------------- | ---------------------------------- | ------------------ | --------------------------------- | -| **💳 ABONNEMENT** | Claude Code (Pro) | $20/md | 5t + ukentlig | Allerede abonnert | -| | Codex (Pluss/Pro) | $20-200/md | 5t + ukentlig | OpenAI-brukere | -| | Gemini CLI | **GRATIS** | 180K/mnd + 1K/dag | Alle sammen! | -| | GitHub Copilot | $10-19/md | Månedlig | GitHub-brukere | -| **🔑 API NØKKEL** | NVIDIA NIM | **GRATIS** (utvikler for alltid) | ~40 RPM | 70+ åpne modeller | -| | Cerebras | **GRATIS** (1M tok/dag) | 60K TPM / 30 RPM | Verdens raskeste | -| | Groq | **GRATIS** (30 RPM) | 14,4K RPD | Ultrarask Llama/Gemma | -| | DeepSeek V3.2 | $0,27/$1,10 per 1M | Ingen | Beste pris/kvalitet resonnement | -| | xAI Grok-4 Fast | **$0,20/$0,50 per 1M** 🆕 | Ingen | Raskeste + verktøykall, ultralavt | -| | xAI Grok-4 (standard) | $0,20/$1,50 per 1M 🆕 | Ingen | Resonneringsflaggskip fra xAI | -| | Mistral | Gratis prøveversjon + betalt | Begrenset pris | Europeisk AI | -| | OpenRouter | Betal per bruk | Ingen | 100+ modeller aggr. | -| **💰 BILLIG** | GLM-5 (via Z.AI) 🆕 | $0,5/1M | Daglig 10:00 | 128K utgang, nyeste flaggskip | -| | GLM-4.7 | $0,6/1M | Daglig 10:00 | Budsjett backup | -| | MiniMax M2.5 🆕 | $0,3/1 million input | 5-timers rullende | Resonnement + agentoppgaver | -| | MiniMax M2.1 | $0,2/1M | 5-timers rullende | Billigste alternativ | -| | Kimi K2.5 (Moonshot API) 🆕 | Betal per bruk | Ingen | Direkte Moonshot API-tilgang | -| | Kimi K2 | $9/md leilighet | 10M tokens/md | Forutsigbar kostnad | -| **🆓 GRATIS** | Qoder | **$0** | Ubegrenset | 5 modeller ubegrenset | -| | Qwen | **$0** | Ubegrenset | 4 modeller ubegrenset | -| | Kiro | **$0** | Ubegrenset | Claude Sonnet/Haiku (AWS-bygger) | -| | LongCat Flash-Lite 🆕 | **$0** (50 millioner tok/dag 🔥) | 1 RPS | Største gratis kvote på jorden | -| | Pollinasjoner AI 🆕 | **$0** (ingen nøkkel nødvendig) | 1 krav/15s | GPT-5, Claude, DeepSeek, Llama 4 | -| | Cloudflare Workers AI 🆕 | **$0** (10K nevroner/dag) | ~150 resp/dag | 50+ modeller, global kant | -| | Scaleway AI 🆕 | **$0** (1 millioner tokens totalt) | Begrenset pris | EU/GDPR, Qwen3 235B, Lama 70B | - -> 🆕 **Nye modeller lagt til (mars 2026):** Grok-4 Fast-familie til $0,20/$0,50/M (benchmarked ved 1143ms — 30 % raskere enn Gemini 2.5 Flash), GLM-5 via Z.AI med 128K-utgang, MiniMax M2.5-resonnement, KimSeidek pr V3.2-oppdatering, KimSeidek pr. direkte API. - -**💡 $0 Combo Stack — Det komplette gratis oppsettet:** - -``` -# 🆓 Ultimate Free Stack 2026 — 11 Providers, $0 Forever -Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED -LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 -Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed -Qwen (qw/) → qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next UNLIMITED -Gemini (gemini/) → Gemini 2.5 Flash — 1,500 req/day free API key -Cloudflare AI (cf/) → Llama 70B, Gemma 3, Mistral — 10K Neurons/day -Scaleway (scw/) → Qwen3 235B, Llama 70B — 1M free tokens (EU) -Groq (groq/) → Llama/Gemma ultra-fast — 14.4K req/day -NVIDIA NIM (nvidia/) → 70+ open models — 40 RPM forever -Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day -``` - -**Null kostnad. Slutter aldri å kode.** Konfigurer dette som én OmniRoute-kombinasjon og alle fallbacks skjer automatisk – ingen manuell veksling noensinne. - ---- - ---- - -## 🆓 Gratis modeller — hva du faktisk får - -> Alle modellene nedenfor er **100 % gratis uten behov for kredittkort**. OmniRoute ruter automatisk mellom dem når én kvote går tom – kombiner dem alle for en ubrytelig kombinasjon av $0. - -### 🔵 CLAUDE MODELLS (via Kiro — AWS Builder ID) - -| Modell | Prefiks | Grens | Satsgrense | -| ------------------- | ------- | -------------- | --------------------------- | -| `claude-sonnet-4.5` | `kr/` | **Ubegrenset** | Ingen rapportert daglig tak | -| `claude-haiku-4.5` | `kr/` | **Ubegrenset** | Ingen rapportert daglig tak | -| `claude-opus-4.6` | `kr/` | **Ubegrenset** | Siste Opus via Kiro | - -### QODER-MODELLER (gratis OAuth – uten kredittkort) - -| Modell | Prefiks | Grens | Satsgrense | -| ------------------ | ------- | -------------- | -------------------- | -| `kimi-k2-thinking` | `if/` | **Ubegrenset** | Ingen rapportert cap | -| `qwen3-coder-plus` | `if/` | **Ubegrenset** | Ingen rapportert cap | -| `deepseek-r1` | `if/` | **Ubegrenset** | Ingen rapportert cap | -| `minimax-m2.1` | `if/` | **Ubegrenset** | Ingen rapportert cap | -| `kimi-k2` | `if/` | **Ubegrenset** | Ingen rapportert cap | - -### 🟡 QWEN-MODELLER (Auth-enhetskode) - -| Modell | Prefiks | Grens | Satsgrense | -| ------------------- | ------- | -------------- | -------------------- | -| `qwen3-coder-plus` | `qw/` | **Ubegrenset** | Ingen rapportert cap | -| `qwen3-coder-flash` | `qw/` | **Ubegrenset** | Ingen rapportert cap | -| `qwen3-coder-next` | `qw/` | **Ubegrenset** | Ingen rapportert cap | -| `vision-model` | `qw/` | **Ubegrenset** | Multimodal (bilder) | - -### 🟣 GEMINI CLI (Google OAuth) - -| Modell | Prefiks | Begrensning | Satsgrense | -| ------------------------ | ------- | --------------------------- | ------------------------ | -| `gemini-3-flash-preview` | `gc/` | **180K tok/måned** + 1K/dag | Månedlig tilbakestilling | -| `gemini-2.5-pro` | `gc/` | 180K/måned (delt basseng) | Høy kvalitet | - -### ⚫ NVIDIA NIM (gratis API-nøkkel — build.nvidia.com) - -| Nivå | Daglig grense | Satsgrense | Merknader | -| ------------ | --------------- | ----------- | ------------------------------------------------------- | -| Gratis (Dev) | Ingen token cap | **~40 RPM** | 70+ modeller; overgang til rene takstgrenser medio 2025 | - -Populære gratismodeller: `moonshotai/kimi-k2.5` (Kimi K2.5), `z-ai/glm4.7` (GLM 4.7), `deepseek-ai/deepseek-v3.2` (DeepSeek V3.2), `nvidia/llama-3.3-70b-instruct`, `deepseek/deepseek-r1` - -### ⚪ CEREBRAS (gratis API-nøkkel — inference.cerebras.ai) - -| Nivå | Daglig grense | Satsgrense | Merknader | -| ------ | -------------------------- | ---------------- | ---------------------------------------------------- | -| Gratis | **1 millioner tokens/dag** | 60K TPM / 30 RPM | Verdens raskeste LLM-slutning; tilbakestilles daglig | - -Gratis tilgjengelig: `llama-3.3-70b`, `llama-3.1-8b`, `deepseek-r1-distill-llama-70b` - -### 🔴 GROQ (gratis API-nøkkel — console.groq.com) - -| Nivå | Daglig grense | Satsgrense | Merknader | -| ------ | ------------- | ----------------- | ----------------------------------------------- | -| Gratis | **14,4K RPD** | 30 RPM per modell | Ingen kredittkort; 429 på grense, ikke belastet | - -Tilgjengelig gratis: `llama-3.3-70b-versatile`, `gemma2-9b-it`, `mixtral-8x7b`, `whisper-large-v3` - -### 🔴 LONGCAT AI (gratis API-nøkkel — longcat.chat) 🆕 - -| Modell | Prefiks | Daglig gratis kvote | Merknader | -| ----------------------------- | ------- | -------------------------- | ------------------------------ | -| `LongCat-Flash-Lite` | `lc/` | **50 millioner tokens** 💥 | Største gratis kvote noensinne | -| `LongCat-Flash-Chat` | `lc/` | 500K tokens | Multi-turn chat | -| `LongCat-Flash-Thinking` | `lc/` | 500K tokens | Begrunnelse / CoT | -| `LongCat-Flash-Thinking-2601` | `lc/` | 500K tokens | Jan 2026 versjon | -| `LongCat-Flash-Omni-2603` | `lc/` | 500K tokens | Multimodal | - -> 100 % gratis mens du er i offentlig beta. Registrer deg på [longcat.chat](https://longcat.chat) med e-post eller telefon. Tilbakestilles daglig 00:00 UTC. - -### 🟢 POLLINATIONS AI (ingen API-nøkkel kreves) 🆕 - -| Modell | Prefiks | Satsgrense | Leverandør bak | -| ---------- | ------- | ---------- | -------------------- | -| `openai` | `pol/` | 1 krav/15s | GPT-5 | -| `claude` | `pol/` | 1 krav/15s | Antropiske Claude | -| `gemini` | `pol/` | 1 krav/15s | Google Gemini | -| `deepseek` | `pol/` | 1 krav/15s | DeepSeek V3 | -| `llama` | `pol/` | 1 krav/15s | Meta Llama 4 speider | -| `mistral` | `pol/` | 1 krav/15s | Mistral AI | - -> ✨ **Null friksjon:** Ingen registrering, ingen API-nøkkel. Legg til pollineringsleverandøren med et tomt nøkkelfelt, og det fungerer umiddelbart. - -### 🟠 CLOUDFLARE WORKERS AI (gratis API-nøkkel — cloudflare.com) 🆕 - -| Nivå | Daglige nevroner | Tilsvarende bruk | Merknader | -| ------ | ---------------- | ------------------------------------------ | ------------------------- | -| Gratis | **10 000** | ~150 LLM resp / 500s lyd / 15K innebygging | Global edge, 50+ modeller | - -Populære gratismodeller: `@cf/meta/llama-3.3-70b-instruct`, `@cf/google/gemma-3-12b-it`, `@cf/openai/whisper-large-v3-turbo` (gratis lyd!), `@cf/qwen/qwen2.5-coder-15b-instruct` - -> Krever API-token + konto-ID fra [dash.cloudflare.com](https://dash.cloudflare.com). Lagre konto-ID i leverandørinnstillingene. - -### 🟣 SCALEWAY AI (1M gratis tokens — scaleway.com) 🆕 - -| Nivå | Gratis kvote | Plassering | Merknader | -| ------ | ---------------------- | ------------ | --------------------------------------------- | -| Gratis | **1 millioner tokens** | 🇫🇷 Paris, EU | Ingen kredittkort nødvendig innenfor grensene | - -Gratis tilgjengelig: `qwen3-235b-a22b-instruct-2507` (Qwen3 235B!), `llama-3.1-70b-instruct`, `mistral-small-3.2-24b-instruct-2506`, `deepseek-v3-0324` - -> EU/GDPR-kompatibel. Få API-nøkkel på [console.scaleway.com](https://console.scaleway.com). - -> **💡 Den ultimate gratisstakken (11 leverandører, $0 for alltid):** -> -> ``` -> Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -> Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED -> LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 -> Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed -> Qwen (qw/) → qwen3-coder models UNLIMITED -> Gemini (gemini/) → Gemini 2.5 Flash — 1,500 req/day free -> Cloudflare AI (cf/) → 50+ models — 10K Neurons/day -> Scaleway (scw/) → Qwen3 235B, Llama 70B — 1M free tokens (EU) -> Groq (groq/) → Llama/Gemma — 14.4K req/day ultra-fast -> NVIDIA NIM (nvidia/) → 70+ open models — 40 RPM forever -> Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day -> ``` - -## 🎙️ Gratis transkripsjonskombinasjon - -> Transkriber hvilken som helst lyd/video for **$0** — Deepgram-emner med $200 gratis, AssemblyAI $50 reserve, Groq Whisper som ubegrenset nødbackup. - -| Leverandør | Gratis kreditter | Beste modell | Satsgrense | -| ----------------- | --------------------------- | ------------------------------------------- | ------------------------------------ | -| **Deepgram** | **$200 gratis** (påmelding) | `nova-3` — beste nøyaktighet, 30+ språk | Ingen RPM-grense på gratis kreditter | -| 🔵 **AssemblyAI** | **$50 gratis** (påmelding) | `universal-3-pro` — kapitler, følelser, PII | Ingen RPM-grense på gratis kreditter | -| 🔴 **Groq** | **Gratis for alltid** | `whisper-large-v3` — OpenAI Whisper | 30 RPM (hastighetsbegrenset) | - -**Foreslått kombinasjon i `/dashboard/combos`:** - -``` -Name: free-transcription -Strategy: Priority -Nodes: - [1] deepgram/nova-3 → uses $200 free first - [2] assemblyai/universal-3-pro → fallback when Deepgram credits run out - [3] groq/whisper-large-v3 → free forever, emergency fallback -``` - -Deretter i `/dashboard/media` → **Transkripsjon**-fanen: last opp hvilken som helst lyd- eller videofil → velg det kombinasjonsendepunktet → få transkripsjon i støttede formater. - -## 💡 Nøkkelfunksjoner - -OmniRoute v2.0 er bygget som en operativ plattform, ikke bare en reléproxy. - -### 🆕 Nytt — ClawRouter-inspirerte forbedringer (mars 2026) - -| Funksjon | Hva det gjør | -| ---------------------------------------- | ------------------------------------------------------------------------------------------------------- | -| ⚡ **Grok-4 Fast Family** | xAI-modeller til $0,20/$0,50/M — benchmarked 1143ms (30 % raskere enn Gemini 2.5 Flash) | -| 🧠 **GLM-5 via Z.AI** | 128K utdatakontekst, $0,5/1M — nyeste flaggskip fra GLM-familien | -| 🔮 **MiniMax M2.5** | Resonnering + agentoppgaver til $0,30/1M — betydelig oppgradering fra M2.1 | -| 🎯 **verktøy Calling Flag per modell** | Per modell `toolCalling: true/false` i registeret — AutoCombo hopper over modeller som ikke kan verktøy | -| 🌍 **Flerspråklig hensiktsgjenkjenning** | PT/ZH/ES/AR nøkkelord i AutoCombo scoring — bedre modellvalg for ikke-engelsk innhold | -| 📊 **Referansedrevne fallbacks** | Ekte p95-forsinkelse fra live-forespørsler feeds combo scoring — AutoCombo lærer av faktiske data | -| 🔁 **Be om deduplisering** | Innhold-hash-basert dedup-vindu – multi-agent trygt, forhindrer dupliserte belastninger | -| 🔌 **Plugbar ruterstrategi** | Utvidbart `RouterStrategy`-grensesnitt — legg til tilpasset rutinglogikk som plugins | - -### 🚀 Forrige v2.0.9+ — Lekeplass, CLI-fingeravtrykk og ACP - -| Funksjon | Hva det gjør | -| --------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 🎮 **Modell lekeplass** | Dashboard-side for å teste hvilken som helst modell direkte — leverandør/modell/endepunktvelgere, Monaco Editor, streaming, avbryt, timing | -| 🔏 **CLI Fingerprint Matching** | Bestilling av topptekst/kropp per leverandør for å matche native CLI-signaturer – bytt per leverandør i Innstillinger > Sikkerhet. **Din proxy-IP er bevart** | -| 🤝 **ACP Support (Agent Client Protocol)** | CLI-agentoppdagelse (Codex, Claude, Goose, Gemini CLI, OpenClaw + 9 til), prosessoppstarter, `/api/acp/agents` endepunkt | -| 🤖 **ACP Agents Dashboard** | Feilsøking › Agenter-side — rutenett med 14 agenter med installasjonsstatus, versjon, tilpasset agentskjema for et hvilket som helst CLI-verktøy. **OpenCode**-brukere får en "Last ned opencode.json"-knapp som automatisk genererer en klar-til-bruk konfig med alle tilgjengelige modeller. | -| 🔧 **Egendefinert modell `apiFormat` Ruting** | Egendefinerte modeller med `apiFormat: "responses"` rutes nå riktig til Responses API-oversetteren | -| 🏢 **Codex Workspace Isolering** | Flere Codex-arbeidsområder per e-post — OAuth skiller tilkoblinger riktig etter arbeidsområde-ID | -| 🔄 **Automatisk oppdatering av elektroner** | Desktop-app ser etter oppdateringer + automatisk installering ved omstart | - -### 🤖 Agent- og protokolloperasjoner (v2.0) - -| Funksjon | Hva det gjør | -| ---------------------------------------- | ----------------------------------------------------------------------------------------------------- | -| 🔧 **MCP-server (16 verktøy)** | IDE/agent-verktøy via 3 transporter: stdio, SSE (`/api/mcp/sse`), Streamable HTTP (`/api/mcp/stream`) | -| 🤝 **A2A-server (JSON-RPC + SSE)** | Agent-til-agent oppgavekjøring med synkronisering og strømmeflyter | -| 🧭 **Side for konsoliderte endepunkter** | Fanebasert administrasjonsside med Endpoint Proxy, MCP, A2A og API Endpoints faner | -| 🎚️ **Tjenesteaktiver/deaktiver brytere** | PÅ/AV-brytere for MCP og A2A med innstillingsfasthet (standard: AV) | -| 🛰️ **MCP Runtime Heartbeat** | Reell prosessstatus (pid, oppetid, hjerteslagsalder, transport, omfangsmodus) | -| 📋 **MCP Audit Trail** | Filtrerbare revisjonslogger med suksess/fiasko og nøkkelattribusjon | -| 🔐 **MCP Scope Enforcement** | 9 granulære omfangstillatelser for kontrollert verktøytilgang | -| 📡 **A2A Task Lifecycle Management** | List/filtrer oppgaver, inspiser hendelser/artefakter, avbryt kjørende oppgaver | -| 📋 **Agent Card Discovery** | `/.well-known/agent.json` for automatisk oppdagelse av klient | -| 🧪 **Protocol E2E Test Sele** | Ekte MCP SDK + A2A klient flyter i `test:protocols:e2e` | -| ⚙️ **Operasjonskontroller** | Bytt kombinasjon, påfør elastisitetsprofiler, tilbakestill brytere fra én kontrollflate | - -### 🧠 Ruting og intelligens - -| Funksjon | Hva det gjør | -| ----------------------------------- | --------------------------------------------------------------------------- | -| 🎯 **Smart 4-lags fallback** | Automatisk rute: Abonnement → API-nøkkel → Billig → Gratis | -| 📊 **Sanntidskvotesporing** | Live tokenantall + tilbakestilt nedtelling per leverandør | -| 🔄 **Formatoversettelse** | OpenAI ↔ Claude ↔ Gemini ↔ Svar med skjemasikre konverteringer | -| 👥 **Støtte for flere kontoer** | Flere kontoer per leverandør med intelligent utvalg | -| 🔄 **Auto Token Refresh** | OAuth-tokens oppdateres automatisk med prøv på nytt | -| 🎨 **Egendefinerte kombinasjoner** | 6 balansestrategier + reservekjedekontroll | -| 🌐 **Wildcard-ruter** | `provider/*` dynamisk ruting | -| 🧠 **Tenker budsjettkontroller** | Begrensninger for gjennomgang, automatisk, tilpasset og adaptiv resonnement | -| 🔀 **Modellaliaser** | Innebygd + tilpasset modellaliasing og migrasjonssikkerhet | -| ⚡ **Bakgrunnsforringelse** | Rut lavprioriterte bakgrunnsoppgaver til billigere modeller | -| 🧪 **Task-Aware Smart Ruting** | Auto-velg modell etter innholdstype (koding/visjon/analyse/oppsummering) | -| 💬 **Systemprompt-injeksjon** | Globale atferdskontroller brukes konsekvent | -| 📄 **Responses API-kompatibilitet** | Full `/v1/responses` støtte for Codex og avanserte agentarbeidsflyter | - -### 🎵 Multi-Modal APIer - -| Funksjon | Hva det gjør | -| ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| 🖼️ **Bildegenerering** | `/v1/images/generations` med sky og lokale backends | -| 📐 **Innbygging** | `/v1/embeddings` for søk og RAG-rørledninger | -| 🎤 **Lydtranskripsjon** | `/v1/audio/transcriptions` — 7 leverandører (Deepgram Nova 3, AssemblyAI, Groq Whisper, HuggingFace, ElevenLabs, OpenAI, Azure), automatisk språkdeteksjon, MP4/MP3/WAV-støtte | -| 🔊 **Tekst-til-tale** | `/v1/audio/speech` — 10 leverandører (ElevenLabs, OpenAI, Deepgram, Cartesia, PlayHT, HuggingFace, Nvidia NIM, Inworld, Coqui, Tortoise) med riktige feilmeldinger | -| 🎬 **Videogenerering** | `/v1/videos/generations` (ComfyUI + SD WebUI arbeidsflyter) | -| 🎵 **Musikkgenerasjon** | `/v1/music/generations` (ComfyUI-arbeidsflyter) | -| 🛡️ **Moderasjoner** | `/v1/moderations` sikkerhetssjekker | -| 🔀 **Omrangering** | `/v1/rerank` for relevansscoring | -| 🔍 **Nettsøk** 🆕 | `/v1/search` — 5 leverandører (Serper, Brave, Perplexity, Exa, Tavily), 6500+ gratis/måned, auto-failover, cache | - -### 🛡️ Resiliens, sikkerhet og styring - -| Funksjon | Hva det gjør | -| ----------------------------------- | --------------------------------------------------------------------------------------------------- | -| 🔌 **Maksimalbrytere** | Per modell tur/gjenoppretting med terskelkontroller | -| 🎯 **Endepunktbevisste modeller** | Egendefinerte modeller erklærer støttede endepunkter + API-format | -| 🛡️ **Anti-tordenflokk** | Mutex + semaforbeskyttelse ved forsøk på nytt/rate hendelser | -| 🧠 **Semantisk + signaturbuffer** | Kostnads-/forsinkelsesreduksjon med to hurtigbufferlag | -| ⚡ **Be om idempotens** | Duplisert beskyttelsesvindu | -| 🔒 **TLS-fingeravtrykkspoofing** | Nettleserlignende TLS-fingeravtrykk — **reduserer botdeteksjon og kontoflagging** | -| 🔏 **CLI Fingerprint Matching** | Matcher native CLI-forespørselssignaturer — **reduserer utestengelsesrisiko mens proxy-IP bevares** | -| 🌐 **IP-filtrering** | Tillatelsesliste/blokkeringslistekontroll for eksponerte distribusjoner | -| 📊 **Redigerbare satsgrenser** | Konfigurerbare grenser på globalt nivå/leverandørnivå med utholdenhet | -| 🔑 **API Key Management + Scoping** | Sikker nøkkelutstedelse/rotasjon og modell/leverandørkontroller | -| 👁️ **Scoped API Key Reveal** 🆕 | Opt-in recovery of API keys via `ALLOW_API_KEY_REVEAL` | -| 🛡️ **Beskyttet `/models`** | Valgfri godkjenning og leverandørskjul for modellkatalog | - -### 📊 Observerbarhet og analyse - -| Funksjon | Hva det gjør | -| ---------------------------------- | ---------------------------------------------------------------- | -| 📝 **Forespørsel + proxy-logging** | Full forespørsel/svar og proxy-logging | -| 📉 **Streamed Detailed Logs** 🆕 | Reconstructs SSE payload streams cleanly into the UI | -| 📋 **Unified Logs Dashboard** | Forespørsels-, proxy-, revisjons- og konsollvisninger på én side | -| 🔍 **Be om telemetri** | p50/p95/p99 ventetid og forespørselssporing | -| 🏥 **Helse Dashboard** | Oppetid, breaker-tilstander, lockouts, cachestatistikk | -| 💰 **Kostnadssporing** | Budsjettkontroller og prissetting per modell | -| 📈 **Analytics-visualiseringer** | Modell-/leverandørbruksinnsikt og trendvisninger | -| 🧪 **Evalueringsramme** | Gylden sett-testing med konfigurerbare kampstrategier | - -### ☁️ Utrulling og plattform - -| Funksjon | Hva det gjør | -| ----------------------------------------- | ----------------------------------------------------------------- | -| 🌐 **Distribuer hvor som helst** | Localhost, VPS, Docker, Cloud-miljøer | -| 💾 **Cloud Sync** | Konfigurasjonssynkronisering via skyarbeider | -| 🔄 **Sikkerhetskopiering/gjenoppretting** | Eksport/import og gjenopprettingsflyter | -| 🧙 **Onboarding Wizard** | Førstegangs veiledet oppsett | -| 🔧 **CLI Tools Dashboard** | Ett-klikks oppsett for populære kodeverktøy | -| 🎮 **Modell lekeplass** | Test hvilken som helst leverandør/modell/endepunkt fra dashbordet | -| 🔏 **CLI Fingerprint Toggle** | Fingeravtrykksmatching per leverandør i Innstillinger > Sikkerhet | -| 🌐 **i18n (30 språk)** | Fullt dashbord + støtte for dokumentspråk med RTL-dekning | -| 🧹 **Slett alle modeller** | Sletting av modellliste med ett klikk i leverandørdetaljer | -| 👁️ **Sidebar Controls** 🆕 | Hide components and integrations from Appearance Settings | -| 📋 **Utgavemaler** | Standardiserte GitHub-maler for feil og funksjoner | -| 📂 **Tilpasset datakatalog** | `DATA_DIR` overstyring for lagringssted | - -### Feature Deep Dive - -#### Smart fallback med praktisk kostnadskontroll - -```txt -Combo: "my-coding-stack" - 1. cc/claude-opus-4-6 - 2. nvidia/llama-3.3-70b - 3. glm/glm-4.7 - 4. if/kimi-k2-thinking -``` - -Når kvote, sats eller helse svikter, flytter OmniRoute automatisk til neste kandidat uten manuelt bytte. - -#### Protokolladministrasjon som er synlig og operativ - -- MCP + A2A kan oppdages i brukergrensesnitt og dokumenter (ikke skjult) -- Protokollstatus-APIer avslører live driftsdata (`/api/mcp/*`, `/api/a2a/*`) -- Dashboards inkluderer handlinger for dag-2 operasjoner (kombinasjonsveksler, tilbakestilling av brytere, kansellering av oppgaver) - -#### Oversetter + valideringsarbeidsflyt - -Oversetterområdet inkluderer: - -- **Lekeplass**: be om transformasjonssjekker -- **Chattetester**: full forespørsel/svar tur/retur -- **Testbenk**: flere kofferter i en kjøring -- **Live Monitor**: trafikkvisning i sanntid - -Pluss protokollvalidering med ekte klienter via `npm run test:protocols:e2e`. - -> 📖 **[MCP Server README](open-sse/mcp-server/README.md)** — Verktøyreferanse, IDE-konfigurasjoner og klienteksempler -> -> 📖 **[A2A Server README](src/lib/a2a/README.md)** — Ferdigheter, JSON-RPC-metoder, strømming og oppgavelivssyklus - -## 🧪 Evalueringer (evalueringer) - -OmniRoute inkluderer et innebygd evalueringsrammeverk for å teste LLM-responskvaliteten mot et gyldent sett. Få tilgang til den via **Analytics → Evals** i dashbordet. - -### Innebygd gyldent sett - -Det forhåndsinnlastede "OmniRoute Golden Set" inneholder testtilfeller for: - -- Hilsen, matematikk, geografi, kodegenerering -- Samsvar med JSON-format, oversettelse, generering av markdown -- Sikkerhetsavslag (skadelig innhold), telling, boolsk logikk - -### Evalueringsstrategier - -| Strategi | Beskrivelse | Eksempel | -| ---------- | --------------------------------------------------------------------- | -------------------------------- | -| `exact` | Utdata må samsvare nøyaktig med | `"4"` | -| `contains` | Utdata må inneholde understreng (uavhengig av store og små bokstaver) | `"Paris"` | -| `regex` | Utdata må samsvare med regulært uttrykksmønster | `"1.*2.*3"` | -| `custom` | Egendefinert JS-funksjon returnerer true/false | `(output) => output.length > 10` | - ---- - -## 📖 Oppsettveiledning - -### Protokolloppsett (MCP + A2A) - -<details> -<summary><b>🧩 MCP-oppsett (Model Context Protocol)</b></summary> - -Start MCP-transport i stdio-modus: - -```bash -omniroute --mcp -``` - -Anbefalt valideringsflyt: - -1. Koble til MCP-klienten over stdio. -2. Kjør `omniroute_get_health`. -3. Kjør `omniroute_list_combos`. -4. Åpne `/dashboard/mcp` for å bekrefte hjerteslag, aktivitet og revisjon. - -Nyttige APIer for automatisering: - -- `GET /api/mcp/status` -- `GET /api/mcp/tools` -- `GET /api/mcp/audit` -- `GET /api/mcp/audit/stats` - -</details> - -<details> -<summary><b>🤝 A2A-oppsett (Agent2Agent)</b></summary> - -Oppdag agenten: - -```bash -curl http://localhost:20128/.well-known/agent.json -``` - -Send en oppgave: - -```bash -curl -X POST http://localhost:20128/a2a \ - -H 'content-type: application/json' \ - -d '{"jsonrpc":"2.0","id":"setup-a2a","method":"message/send","params":{"skill":"quota-management","messages":[{"role":"user","content":"Summarize quota status."}]}}' -``` - -Administrer livssyklus: - -- `GET /api/a2a/status` -- `GET /api/a2a/tasks` -- `GET /api/a2a/tasks/:id` -- `POST /api/a2a/tasks/:id/cancel` - -Driftsgrensesnitt: - -- `/dashboard/a2a` for observerbarhet for oppgave/tilstand/strøm og røykhandlinger - -</details> - -<details> -<summary><b>🧪 End-to-end protokollvalidering</b></summary> - -Valider begge protokollene med ekte klienter: - -```bash -npm run test:protocols:e2e -``` - -Dette bekrefter: - -- MCP SDK-klient koble/liste/ringe -- A2A oppdagelse/send/stream/hent/avbryt -- Krysssjekk data i MCP-revisjon og A2A-oppgavestyrings-APIer - -</details> - -<details> -<summary><b>💳 Abonnementsleverandører</b></summary> - -### Claude Code (Pro/Max) - -```bash -Dashboard → Providers → Connect Claude Code -→ OAuth login → Auto token refresh -→ 5-hour + weekly quota tracking - -Models: - cc/claude-opus-4-6 - cc/claude-sonnet-4-5-20250929 - cc/claude-haiku-4-5-20251001 -``` - -**Profftips:** Bruk Opus for komplekse oppgaver, Sonnet for hastighet. OmniRoute sporer kvote per modell! - -### OpenAI Codex (Plus/Pro) - -```bash -Dashboard → Providers → Connect Codex -→ OAuth login (port 1455) -→ 5-hour + weekly reset - -Models: - cx/gpt-5.2-codex - cx/gpt-5.1-codex-max -``` - -#### Codex Account Limit Management (5 timer + ukentlig) - -Hver Codex-konto har nå policy-vekslinger i `Dashboard -> Providers`: - -- `5h` (PÅ/AV): håndhev terskelpolicyen for 5-timers vindu. -- `Weekly` (PÅ/AV): håndhev terskelpolicyen for ukentlige vindu. -- Terskeladferd: når et aktivert vindu når >=90 % bruk, hoppes den kontoen over. -- Rotasjonsatferd: OmniRoute ruter automatisk til neste kvalifiserte Codex-konto. -- Tilbakestill atferd: når leverandørens `resetAt` tid går, blir kontoen automatisk kvalifisert igjen. - -Scenarier: - -- `5h ON` + `Weekly ON`: kontoen hoppes over når et av vinduene når terskelen. -- `5h OFF` + `Weekly ON`: bare ukentlig bruk kan blokkere kontoen. -- `5h ON` + `Weekly OFF`: bare 5-timers bruk kan blokkere kontoen. -- `resetAt` bestått: kontoen går automatisk inn i rotasjon på nytt (ingen manuell reaktivering). - -### Gemini CLI (GRATIS 180K/måned!) - -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Mest verdi:** Enormt gratis nivå! Bruk dette før betalte nivåer. - -### GitHub Copilot - -```bash -Dashboard → Providers → Connect GitHub -→ OAuth via GitHub -→ Monthly reset (1st of month) - -Models: - gh/gpt-5 - gh/claude-4.5-sonnet - gh/gemini-3-pro -``` - -</details> - -<details> -<summary><b>🔑 API nøkkelleverandører</b></summary> - -### NVIDIA NIM (GRATIS utviklertilgang — 70+ modeller) - -1. Registrer deg: [build.nvidia.com](https://build.nvidia.com) -2. Få gratis API-nøkkel (1000 slutningspoeng inkludert) -3. Dashboard → Legg til leverandør → NVIDIA NIM: - - API-nøkkel: `nvapi-your-key` - -**Modeller:** `nvidia/llama-3.3-70b-instruct`, `nvidia/mistral-7b-instruct` og 50+ til - -**Profftips:** OpenAI-kompatibel API — fungerer sømløst med OmniRoutes formatoversettelse! - -### DeepSeek - -1. Registrer deg: [platform.deepseek.com](https://platform.deepseek.com) -2. Få API-nøkkel -3. Dashboard → Legg til leverandør → DeepSeek - -**Modeller:** `deepseek/deepseek-chat`, `deepseek/deepseek-coder` - -### Groq (gratis nivå tilgjengelig!) - -1. Registrer deg: [console.groq.com](https://console.groq.com) -2. Få API-nøkkel (gratis nivå inkludert) -3. Dashboard → Legg til leverandør → Groq - -**Modeller:** `groq/llama-3.3-70b`, `groq/mixtral-8x7b` - -**Profftips:** Ultrarask slutning — best for sanntidskoding! - -### OpenRouter (100+ modeller) - -1. Registrer deg: [openrouter.ai](https://openrouter.ai) -2. Få API-nøkkel -3. Dashboard → Legg til leverandør → OpenRouter - -**Modeller:** Få tilgang til 100+ modeller fra alle store leverandører gjennom én enkelt API-nøkkel. - -</details> - -<details> -<summary><b>💰 Billige leverandører (backup)</b></summary> - -### GLM-4.7 (Daglig tilbakestilling, $0,6/1M) - -1. Registrer deg: [Zhipu AI](https://open.bigmodel.cn/) -2. Få API-nøkkel fra Coding Plan -3. Dashboard → Legg til API-nøkkel: - - Leverandør: `glm` - - API-nøkkel: `your-key` - -**Bruk:** `glm/glm-4.7` - -**Profftips:** Coding Plan tilbyr 3× kvote til 1/7 kostnad! Tilbakestill daglig 10:00. - -### MiniMax M2.1 (5t tilbakestilling, $0,20/1M) - -1. Registrer deg: [MiniMax](https://www.minimax.io/) -2. Få API-nøkkel -3. Dashboard → Legg til API-nøkkel - -**Bruk:** `minimax/MiniMax-M2.1` - -**Profftips:** Billigste alternativet for lang kontekst (1M tokens)! - -### Kimi K2 ($9/mnd leilighet) - -1. Abonner: [Moonshot AI](https://platform.moonshot.ai/) -2. Få API-nøkkel -3. Dashboard → Legg til API-nøkkel - -**Bruk:** `kimi/kimi-latest` - -**Profftips:** Fast $9/måned for 10M tokens = $0,90/1M effektiv kostnad! - -</details> - -<details> -<summary><b>🆓 GRATIS Leverandører (Emergency Backup)</b></summary> - -### Qoder (5 GRATIS modeller via OAuth) - -```bash -Dashboard → Connect Qoder -→ Qoder OAuth login -→ Unlimited usage - -Models: - if/kimi-k2-thinking - if/qwen3-coder-plus - if/glm-4.7 - if/minimax-m2 - if/deepseek-r1 -``` - -### Qwen (4 GRATIS modeller via enhetskode) - -```bash -Dashboard → Connect Qwen -→ Device code authorization -→ Unlimited usage - -Models: - qw/qwen3-coder-plus - qw/qwen3-coder-flash -``` - -### Kiro (Claude FREE) - -```bash -Dashboard → Connect Kiro -→ AWS Builder ID or Google/GitHub -→ Unlimited usage - -Models: - kr/claude-sonnet-4.5 - kr/claude-haiku-4.5 -``` - -</details> - -<details> -<summary><b>🎨 Lag kombinasjoner</b></summary> - -### Eksempel 1: Maksimer abonnement → Billig sikkerhetskopi - -``` -Dashboard → Combos → Create New - -Name: premium-coding -Models: - 1. cc/claude-opus-4-6 (Subscription primary) - 2. glm/glm-4.7 (Cheap backup, $0.6/1M) - 3. minimax/MiniMax-M2.1 (Cheapest fallback, $0.20/1M) - -Use in CLI: premium-coding -``` - -### Eksempel 2: Kun gratis (nullkostnad) - -``` -Name: free-combo -Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) - -Cost: $0 forever! -``` - -</details> - -<details> -<summary><b>🔧 CLI-integrasjon</b></summary> - -### Markør IDE - -``` -Settings → Models → Advanced: - OpenAI API Base URL: http://localhost:20128/v1 - OpenAI API Key: [from OmniRoute dashboard] - Model: cc/claude-opus-4-6 -``` - -### Claude Code - -Bruk **CLI Tools**-siden i dashbordet for ett-klikks konfigurasjon, eller rediger `~/.claude/settings.json` manuelt. - -### Codex CLI - -```bash -export OPENAI_BASE_URL="http://localhost:20128" -export OPENAI_API_KEY="your-omniroute-api-key" - -codex "your prompt" -``` - -### OpenClaw - -**Alternativ 1 – Dashboard (anbefalt):** - -``` -Dashboard → CLI Tools → OpenClaw → Select Model → Apply -``` - -**Alternativ 2 — Manuell:** Rediger `~/.openclaw/openclaw.json`: - -```json -{ - "models": { - "providers": { - "omniroute": { - "baseUrl": "http://127.0.0.1:20128/v1", - "apiKey": "sk_omniroute", - "api": "openai-completions" - } - } - } -} -``` - -> **Merk:** OpenClaw fungerer bare med lokale OmniRoute. Bruk `127.0.0.1` i stedet for `localhost` for å unngå problemer med IPv6-oppløsning. - -### Cline / Fortsett / RooCode - -``` -Settings → API Configuration: - Provider: OpenAI Compatible - Base URL: http://localhost:20128/v1 - API Key: [from OmniRoute dashboard] - Model: if/kimi-k2-thinking -``` - -### OpenCode - -**Trinn 1:** Legg til OmniRoute som en tilpasset leverandør: - -```bash -opencode -/connect -# Select "Other" → Enter ID: "omniroute" → Enter your OmniRoute API key -``` - -**Trinn 2:** Opprett/rediger `opencode.json` i prosjektroten din: - -```json -{ - "$schema": "https://opencode.ai/config.json", - "provider": { - "omniroute": { - "npm": "@ai-sdk/openai-compatible", - "name": "OmniRoute", - "options": { - "baseURL": "http://localhost:20128/v1" - }, - "models": { - "cc/claude-sonnet-4-20250514": { "name": "Claude Sonnet 4" }, - "gg/gemini-2.5-pro": { "name": "Gemini 2.5 Pro" }, - "if/kimi-k2-thinking": { "name": "Kimi K2 (Free)" } - } - } - } -} -``` - -**Trinn 3:** Velg modellen i OpenCode: - -```bash -/models -# Select any OmniRoute model from the list -``` - -> **Tips:** Legg til hvilken som helst modell som er tilgjengelig i OmniRoute `/v1/models`-endepunktet til `models`-delen. Bruk formatet `provider/model-id` fra OmniRoute-dashbordet. - -</details> - ---- - -## 🐛 Feilsøking - -<details> -<summary><b>Klikk for å utvide feilsøkingsveiledningen</b></summary> - -**«Språkmodellen ga ikke meldinger»** - -- Leverandørkvoten er oppbrukt → Sjekk dashboardkvotesporing -- Løsning: Bruk kombinasjonsalternativ eller bytt til et billigere nivå - -**Satsbegrensning** - -- Abonnementskvote ut → Fallback til GLM/MiniMax -- Legg til kombinasjon: `cc/claude-opus-4-6 → glm/glm-4.7 → if/kimi-k2-thinking` - -**OAuth-token er utløpt** - -- Automatisk oppdatering av OmniRoute -- Hvis problemene vedvarer: Dashboard → Leverandør → Koble til på nytt - -**Høye kostnader** - -- Sjekk bruksstatistikk i Dashboard → Kostnader -- Bytt primærmodell til GLM/MiniMax -- Bruk gratis nivå (Gemini CLI, Qoder) for ikke-kritiske oppgaver - -**Dashboard/API-porter er feil** - -- `PORT` er den kanoniske basisporten (og API-porten som standard) -- `API_PORT` overstyrer kun OpenAI-kompatibel API-lytter -- `DASHBOARD_PORT` overstyrer kun dashboard/Next.js-lytter -- Angi `NEXT_PUBLIC_BASE_URL` til dashbordet/den offentlige nettadressen din (for OAuth-tilbakeringing) - -**Skysynkroniseringsfeil** - -- Bekreft at `BASE_URL` peker på løpeforekomsten din -- Bekreft `CLOUD_URL` poeng til det forventede skyendepunktet -- Hold `NEXT_PUBLIC_*` verdier på linje med verdiene på tjenersiden - -**Første pålogging fungerer ikke** - -- Sjekk `INITIAL_PASSWORD` i `.env` -- Hvis det ikke er angitt, er reservepassordet `123456` - -**Ingen forespørselslogger** - -- Sett `ENABLE_REQUEST_LOGS=true` i `.env` - -**Test viser «Ugyldig» for OpenAI-kompatible leverandører** - -- Mange leverandører avslører ikke et `/models`-endepunkt -- OmniRoute v1.0.6+ inkluderer reservevalidering via chatfullføringer -- Sørg for at basis-URL inkluderer suffikset `/v1` - -### 🔐 OAuth på en ekstern server - -<a name="oauth-on-a-remote-server"></a> -<a name="oauth-em-servidor-remoto"></a> - -> **⚠️ Viktig for brukere som kjører OmniRoute på en VPS, Docker eller hvilken som helst ekstern server** - -#### Hvorfor mislykkes Antigravity / Gemini CLI OAuth på eksterne servere? - -**Antigravity** og **Gemini CLI**-leverandørene bruker **Google OAuth 2.0**. Google krever at `redirect_uri` i OAuth-flyten nøyaktig samsvarer med en av de forhåndsregistrerte URIene i appens Google Cloud Console. - -OAuth-legitimasjonen som er samlet i OmniRoute er registrert **kun for `localhost`**. Når du får tilgang til OmniRoute på en ekstern server (f.eks. `https://omniroute.myserver.com`), avviser Google autentiseringen med: - -``` -Error 400: redirect_uri_mismatch -``` - -#### Løsning: Konfigurer din egen OAuth-legitimasjon - -Du må opprette en **OAuth 2.0 Client ID** i Google Cloud Console med serverens URI. - -#### Trinn-for-trinn - -**1. Åpne Google Cloud Console** - -Gå til: [https://console.cloud.google.com/apis/credentials](https://console.cloud.google.com/apis/credentials) - -**2. Opprett en ny OAuth 2.0-klient-ID** - -- Klikk **"+ Opprett legitimasjon"** → **"OAuth-klient-ID"** -- Søknadstype: **"Nettapplikasjon"** -- Navn: alt du liker (f.eks. `OmniRoute Remote`) - -**3. Legg til autoriserte omdirigerings-URIer** - -I feltet **«Authorized redirect URIs»** legger du til: - -``` -https://your-server.com/callback -``` - -> Erstatt `your-server.com` med serverens domene eller IP (inkluder porten om nødvendig, f.eks. `http://45.33.32.156:20128/callback`). - -**4. Lagre og kopier legitimasjonen** - -Etter oppretting vil Google vise **klient-ID** og **klienthemmelighet**. - -**5. Angi miljøvariabler** - -I `.env` (eller Docker-miljøvariabler): - -```bash -# For Antigravity: -ANTIGRAVITY_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com -ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-your-secret - -# For Gemini CLI: -GEMINI_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com -GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -``` - -**6. Start OmniRoute** på nytt - -```bash -# npm: -npm run dev - -# Docker: -docker restart omniroute -``` - -**7. Prøv å koble til på nytt** - -Dashboard → Leverandører → Antigravity (eller Gemini CLI) → OAuth - -Google vil nå omdirigere riktig til `https://your-server.com/callback`. - ---- - -#### Midlertidig løsning (uten egendefinert legitimasjon) - -Hvis du ikke vil sette opp din egen legitimasjon akkurat nå, kan du fortsatt bruke den **manuelle URL-flyten**: - -1. OmniRoute åpner Googles autorisasjons-URL -2. Etter godkjenning prøver Google å omdirigere til `localhost` (som mislykkes på den eksterne serveren) -3. **Kopiér hele nettadressen** fra nettleserens adressefelt (selv om siden ikke lastes inn) -4. Lim inn den URL-en i feltet vist i OmniRoute-tilkoblingsmodalen -5. Klikk på **"Koble til"** - -> Dette fungerer fordi autorisasjonskoden i URL-en er gyldig uavhengig av om omdirigeringssiden er lastet. - ---- - -<details> -<summary><b>🇧🇷 Versão em Português</b></summary> - -#### Hva med OAuth gjør Antigravity / Gemini CLI falha em servidores remotos? - -Os testedores **Antigravity** og **Gemini CLI** usam **Google OAuth 2.0** for autenticação. O Google exige que a `redirect_uri` usada no fluxo OAuth seja **exatamente** uma das URIs pré-cadastradas no Google Cloud Console do aplicativo. - -Som credenciais OAuth embutidas no OmniRoute estão cadastradas **apenas para `localhost`**. Quando você acessa o OmniRoute em um servidor remoto (eks: `https://omniroute.meuservidor.com`), o Google avviser autenticação com: - -``` -Error 400: redirect_uri_mismatch -``` - -#### Løsning: Konfigurer OAuth-tilbehør - -Você precisa criar um **OAuth 2.0 Client ID** no Google Cloud Console com en URI for seu service. - -#### Passo a passo - -**1. Tilgang til Google Cloud Console** - -Abra: [https://console.cloud.google.com/apis/credentials](https://console.cloud.google.com/apis/credentials) - -**2. Crie um novo OAuth 2.0 Client ID** - -- Klikk dem **"+ Opprett legitimasjon"** → **"OAuth-klient-ID"** -- Tipo de aplicativo: **"Nettapplikasjon"** -- Navn: escolha qualquer nome (eks.: `OmniRoute Remote`) - -**3. Adicione som autorisert omdirigerings-URI** - -Ingen campo **"Authorized redirect URIs"**, adicione: - -``` -https://seu-servidor.com/callback -``` - -> Substitua `seu-servidor.com` pelo domínio ou IP do seu servidor (inclua a porta se necessário, ex: `http://45.33.32.156:20128/callback`). - -**4. Salve e copy as credenciais** - -Após criar, o Google mostrará o **Client ID** e o **Client Secret**. - -**5. Konfigurer som variáveis de ambiente** - -No seu `.env` (ou nas variáveis de ambiente do Docker): - -```bash -# Para Antigravity: -ANTIGRAVITY_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com -ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret - -# Para Gemini CLI: -GEMINI_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com -GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -``` - -**6. Reinicie o OmniRoute** - -```bash -# Se usando npm: -npm run dev - -# Se usando Docker: -docker restart omniroute -``` - -**7. Tente conectar novamente** - -Dashboard → Leverandører → Antigravity (ou Gemini CLI) → OAuth - -Agora o Google redirecionará corretamente para `https://seu-servidor.com/callback` e a autenticação funcionará. - ---- - -#### Midlertidig midlertidig løsning (som konfigurasjon av credenciais próprias) - -Se não quiser criar credenciais próprias agora, ainda é possível usar o fluxo **manual de URL**: - -1. O OmniRoute abrirá en URL fra autorização til Google -2. Após você autorizar, o Google tentará redirecionar for `localhost` (que falha no servidor remoto) -3. **Kopier en URL fullført** da barra de endereço do seu nettleseren (mesmo que a página não carregue) -4. Cole essa URL no campo que aparece no modal de conexão do OmniRoute -5. Klikk dem **"Koble til"** - -> Este workaround funciona porque or código de autorização na URL é válido independente do redirect ter carregado or não. - -</details> - ---- - -</details> - -## 🛠️ Tech Stack - -<details> -<summary><b>Klikk for å utvide tekniske stackdetaljer</b></summary> - -- **Kjøretid**: Node.js 18–22 LTS (⚠️ Node.js 24+ støttes **ikke** — `better-sqlite3` native binærfiler er inkompatible) -- **Språk**: TypeScript 5.9 — **100 % TypeScript** på tvers av `src/` og `open-sse/` (null `any` i kjernemoduler siden v2.0) -- **Rammeverk**: Next.js 16 + React 19 + Tailwind CSS 4 -- **Database**: LowDB (JSON) + SQLite (domenetilstand + proxy-logger + MCP-revisjon + rutingbeslutninger) -- **Skjemaer**: Zod (MCP-verktøy I/O-validering, API-kontrakter) -- **Protokoller**: MCP (stdio/HTTP) + A2A v0.3 (JSON-RPC 2.0 + SSE) -- **Strøming**: Server-sendte hendelser (SSE) -- **Auth**: OAuth 2.0 (PKCE) + JWT + API-nøkler + MCP-omfanget autorisasjon -- **Test**: Node.js testløper + Vitest (900+ tester inkludert enhet, integrasjon, E2E) -- **CI/CD**: GitHub-handlinger (automatisk npm-publisering + Docker Hub ved utgivelse) -- **Nettsted**: [omniroute.online](https://omniroute.online) -- **Pakke**: [npmjs.com/package/omniroute](https://www.npmjs.com/package/omniroute) -- **Docker**: [hub.docker.com/r/diegosouzapw/omniroute](https://hub.docker.com/r/diegosouzapw/omniroute) -- **Resiliens**: Strømbryter, eksponentiell backoff, anti-trdnende flokk, TLS-spoofing, auto-combo selvhelbredelse - -</details> - ---- - -## 📖 Dokumentasjon - -| Dokument | Beskrivelse | -| ---------------------------------------------- | ----------------------------------------------------------------- | -| [User Guide](docs/USER_GUIDE.md) | Leverandører, kombinasjoner, CLI-integrasjon, distribusjon | -| [API Reference](docs/API_REFERENCE.md) | Alle endepunkter med eksempler | -| [MCP Server](open-sse/mcp-server/README.md) | 16 MCP-verktøy, IDE-konfigurasjoner, Python/TS/Go-klienter | -| [A2A Server](src/lib/a2a/README.md) | JSON-RPC 2.0-protokoll, ferdigheter, streaming, oppgavehåndtering | -| [Auto-Combo Engine](docs/auto-combo.md) | 6-faktor scoring, moduspakker, selvhelbredende | -| [Troubleshooting](docs/TROUBLESHOOTING.md) | Vanlige problemer og løsninger | -| [Architecture](docs/ARCHITECTURE.md) | Systemarkitektur og innvendig | -| [Contributing](CONTRIBUTING.md) | Utviklingsoppsett og retningslinjer | -| [OpenAPI Spec](docs/openapi.yaml) | OpenAPI 3.0-spesifikasjon | -| [Security Policy](SECURITY.md) | Sårbarhetsrapportering og sikkerhetspraksis | -| [VM Deployment](docs/VM_DEPLOYMENT_GUIDE.md) | Komplett guide: VM + nginx + Cloudflare-oppsett | -| [Features Gallery](docs/FEATURES.md) | Visuell dashbordomvisning med skjermbilder | -| [Release Checklist](docs/RELEASE_CHECKLIST.md) | Valideringstrinn før utgivelse | - ---- - -## 🗺️ Veikart - -OmniRoute har **210+ funksjoner planlagt** på tvers av flere utviklingsfaser. Her er nøkkelområdene: - -| Kategori | Planlagte funksjoner | Høydepunkter | -| -------------------------------- | -------------------- | ---------------------------------------------------------------------------------------------- | -| 🧠 **Routing og intelligens** | 25+ | Ruting med lavest ventetid, tag-basert ruting, forhåndskontroll av kvoter, valg av P2C-konto | -| 🔒 **Sikkerhet og overholdelse** | 20+ | SSRF-herding, tilsløring av legitimasjon, hastighetsgrense per endepunkt, styringsnøkkelomfang | -| 📊 **Observerbarhet** | 15+ | OpenTelemetry-integrasjon, kvoteovervåking i sanntid, kostnadssporing per modell | -| 🔄 **Tilbyderintegrasjoner** | 20+ | Dynamisk modellregister, leverandørnedkjøling, multi-konto Codex, Copilot-kvoteparsing | -| ⚡ **Ytelse** | 15+ | Dobbelt hurtigbufferlag, promptbuffer, svarbuffer, streaming keepalive, batch API | -| 🌐 **Økosystem** | 10+ | WebSocket API, config hot-reload, distribuert config store, kommersiell modus | - -### 🔜 Kommer snart - -- 🔗 **OpenCode Integration** — Innebygd leverandørstøtte for OpenCode AI-kodings-IDE -- 🔗 **TRAE-integrasjon** — Full støtte for utviklingsrammeverket for TRAE AI -- 📦 **Batch API** — Asynkron batchbehandling for bulkforespørsler -- 🎯 **Tag-basert ruting** — Ruteforespørsler basert på tilpassede tagger og metadata -- 💰 **Laveste kostnadsstrategi** — Velg automatisk den billigste tilgjengelige leverandøren - -> 📝 Full funksjonsspesifikasjoner tilgjengelig i [**OMNI_TOKEN_342**](docs/new-features/) (217 detaljerte spesifikasjoner) - ---- - -## 👥 Bidragsytere - -[![Contributors](https://contrib.rocks/image?repo=diegosouzapw/OmniRoute&max=100&columns=20&anon=1)](https://github.com/diegosouzapw/OmniRoute/graphs/contributors) - -### Hvordan bidra - -1. Fordel depotet -2. Lag din funksjonsgren (`git checkout -b feature/amazing-feature`) -3. Bekreft endringene dine (`git commit -m 'Add amazing feature'`) -4. Skyv til grenen (`git push origin feature/amazing-feature`) -5. Åpne en pull-forespørsel - -Se [CONTRIBUTING.md](CONTRIBUTING.md) for detaljerte retningslinjer. - -### Slipper en ny versjon - -```bash -# Create a release — npm publish happens automatically -gh release create v2.0.0 --title "v2.0.0" --generate-notes -``` - ---- - -## 📊 Stjernehistorie - -## Stjernekikkere over tid - -## [![Stargazers over time](https://starchart.cc/diegosouzapw/OmniRoute.svg?variant=adaptive)](https://starchart.cc/diegosouzapw/OmniRoute) - -## 🙏 Anerkjennelser - -Spesiell takk til **[9router](https://github.com/decolua/9router)** av **[decolua](https://github.com/decolua)** — det originale prosjektet som inspirerte denne gaffelen. OmniRoute bygger på det utrolige grunnlaget med tilleggsfunksjoner, multimodale APIer og en full TypeScript-omskriving. - -Spesiell takk til **[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)** — den originale Go-implementeringen som inspirerte denne JavaScript-porten. - ---- - -## 📄 Lisens - -MIT-lisens - se [LICENSE](LICENSE) for detaljer. - ---- - -<div align="center"> - <sub>Bygget med ❤️ for utviklere som koder 24/7</sub> - <br/> - <sub><a href="https://omniroute.online">omniroute.online</a></sub> -</div> -<!-- GitHub-diskusjoner aktivert for spørsmål og svar fra fellesskapet --> +👉 **[Read the Documentation here](docs/i18n/no/README.md)** diff --git a/README.phi.md b/README.phi.md index c64012d3d3..57baa57a4f 100644 --- a/README.phi.md +++ b/README.phi.md @@ -1,2077 +1,5 @@ -# 🚀 OmniRoute — Ang Libreng AI Gateway +# 🌐 OmniRoute (phi) -### Huwag kailanman ihinto ang coding. Smart routing sa **LIBRE at murang mga modelo ng AI** na may awtomatikong fallback. +The documentation has been formalized and moved to our centralized i18n structure. -_Ang iyong universal API proxy — isang endpoint, 67+ provider, zero downtime. Ngayon ay may **MCP at A2A** na orkestrasyon ng ahente._ - -**Mga Pagkumpleto sa Chat • Mga Pag-embed • Pagbuo ng Imahe • Video • Musika • Audio • Pag-rerank • **Paghahanap sa Web** • MCP Server • A2A Protocol • 100% TypeScript** - ---- - -<div align="center"> - -[![npm version](https://img.shields.io/npm/v/omniroute?color=cb3837&logo=npm)](https://www.npmjs.com/package/omniroute) -[![npm downloads](https://img.shields.io/npm/dm/omniroute?color=cb3837&logo=npm&label=npm%20downloads)](https://www.npmjs.com/package/omniroute) -[![Docker Hub](https://img.shields.io/docker/v/diegosouzapw/omniroute?label=Docker%20Hub&logo=docker&color=2496ED)](https://hub.docker.com/r/diegosouzapw/omniroute) -[![Docker Pulls](https://img.shields.io/docker/pulls/diegosouzapw/omniroute?logo=docker&color=2496ED&label=docker%20pulls)](https://hub.docker.com/r/diegosouzapw/omniroute) -[![License](https://img.shields.io/github/license/diegosouzapw/OmniRoute)](https://github.com/diegosouzapw/OmniRoute/blob/main/LICENSE) -[![Website](https://img.shields.io/badge/Website-omniroute.online-blue?logo=google-chrome&logoColor=white)](https://omniroute.online) -[![WhatsApp](https://img.shields.io/badge/WhatsApp-Community-25D366?logo=whatsapp&logoColor=white)](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) - -[🌐 Website](https://omniroute.online) • [🚀 Quick Start](#-quick-start) • [💡 Features](#-key-features) • [📖 Docs](#-documentation) • [💰 Pricing](#-pricing-at-a-glance) • [💬 WhatsApp](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) - -</div> - -🌐 **Available sa:** 🇺🇸 [English](README.md) | 🇧🇷 [Português (Brasil)](docs/i18n/pt-BR/README.md) | 🇪🇸 [Español](docs/i18n/es/README.md) | 🇫🇷 [Français](docs/i18n/fr/README.md) | 🇮🇹 [Italiano](docs/i18n/it/README.md) | 🇷🇺 [Русский](docs/i18n/ru/README.md) | 🇨🇳 [中文 (简体)](docs/i18n/zh-CN/README.md) | 🇩🇪 [Deutsch](docs/i18n/de/README.md) | 🇮🇳 [हिन्दी](docs/i18n/in/README.md) | 🇹🇭 [ไทย](docs/i18n/th/README.md) | 🇺🇦 [Українська](docs/i18n/uk-UA/README.md) | 🇸🇦 [العربية](docs/i18n/ar/README.md) | 🇯🇵 [日本語](docs/i18n/ja/README.md) | 🇻🇳 [Tiếng Việt](docs/i18n/vi/README.md) | 🇧🇬 [Български](docs/i18n/bg/README.md) | 🇩🇰 [Dansk](docs/i18n/da/README.md) | 🇫🇮 [Suomi](docs/i18n/fi/README.md) | 🇮🇱 [עברית](docs/i18n/he/README.md) | 🇭🇺 [Magyar](docs/i18n/hu/README.md) | 🇮🇩 [Bahasa Indonesia](docs/i18n/id/README.md) | 🇰🇷 [한국어](docs/i18n/ko/README.md) | 🇲🇾 [Bahasa Melayu](docs/i18n/ms/README.md) | 🇳🇱 [Nederlands](docs/i18n/nl/README.md) | 🇳🇴 [Norsk](docs/i18n/no/README.md) | 🇵🇹 [Português (Portugal)](docs/i18n/pt/README.md) | 🇷🇴 [Română](docs/i18n/ro/README.md) | 🇵🇱 [Polski](docs/i18n/pl/README.md) | 🇸🇰 [Slovenčina](docs/i18n/sk/README.md) | 🇸🇪 [Svenska](docs/i18n/sv/README.md) | 🇵🇭 [Filipino](docs/i18n/phi/README.md) | 🇨🇿 [Čeština](docs/i18n/cs/README.md) - ---- - -## 🆕 Ano ang Bago sa v3.0.0 - -> **Pag-upgrade mula sa v2.9.5?** — Tingnan ang [full CHANGELOG](CHANGELOG.md#300--2026-03-22-release-candidate--not-yet-merged-to-main) para sa lahat ng pagbabago. - -| Lugar | Baguhin | -| ----------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| 🔒 **Seguridad ng CodeQL** | Inayos ang 10+ na alerto sa CodeQL: polynomial-redos, insecure-randomness, shell-injection remediation | -| ✅ **Pagpapatunay ng Ruta** | Lahat ng 176 na ruta ng API ay napatunayan na ngayon gamit ang mga Zod schema + `validateBody()` — CI `check:route-validation:t06` pass | -| 🐛 **omniModel Tag Leak** | Ang mga panloob na tag na `<omniModel>` ay hindi na tumutulo sa mga kliyente sa mga tugon sa streaming ng SSE (#585) | -| 🔑 **Registered Keys API** | Auto-provision API keys sa pamamagitan ng `POST /api/v1/registered-keys` na may per-provider/account quota enforcement, idempotency, SHA-256 storage, at opsyonal na pag-uulat ng isyu sa GitHub | -| 🎨 **Mga Icon ng Provider** | 130+ provider logo sa pamamagitan ng `@lobehub/icons` (SVG) na may PNG → generic fallback chain | -| 🔄 **Modelo Auto-Sync** | 24h scheduler at manu-manong UI toggle para i-sync ang mga listahan ng modelo para sa built-in at custom na OpenAI-compatible na provider | -| 🌐 **OpenCode Zen/Go** | Dalawang bagong provider mula sa @kang-heewon sa pamamagitan ng PR #530: libreng tier + subscription tier sa pamamagitan ng `OpencodeExecutor` | -| 🐛 **Gemini CLI OAuth** | Naisasagawang error kapag nawawala ang `GEMINI_OAUTH_CLIENT_SECRET` sa Docker (ay misteryosong error sa Google) | -| 🐛 **OpenCode config** | `saveOpenCodeConfig()` ngayon ay tama ang pagsulat ng TOML sa `XDG_CONFIG_HOME` | -| 🐛 **Na-override ang naka-pin na modelo** | `body.model` wastong itinakda sa `pinnedModel` sa proteksyon ng context-cache | -| 🐛 **Codex/Claude loop** | `tool_result` na mga bloke ay na-convert na ngayon sa teksto upang ihinto ang walang katapusang mga loop | -| 🐛 **Login redirect** | Hindi na nag-freeze ang pag-login pagkatapos laktawan ang pag-setup ng password | -| 🐛 **Mga Windows path** | Ang mga path ng MSYS2/Git-Bash (`/c/...`) ay awtomatikong na-normalize sa `C:\...` | - ---- - -## 🖼️ Pangunahing Dashboard - -<div align="center"> - <img src="./docs/screenshots/MainOmniRoute.png" alt="OmniRoute Dashboard" width="800"/> -</div> - ---- - -## 📸 Preview ng Dashboard - -<details> -<summary><b>Mag-click upang makita ang mga screenshot ng dashboard</b></summary> - -| Pahina | Screenshot | -| ----------------------- | ------------------------------------------------- | -| **Mga Provider** | ![Providers](docs/screenshots/01-providers.png) | -| **Combos** | ![Combos](docs/screenshots/02-combos.png) | -| **Analytics** | ![Analytics](docs/screenshots/03-analytics.png) | -| **Kalusugan** | ![Health](docs/screenshots/04-health.png) | -| **Tagasalin** | ![Translator](docs/screenshots/05-translator.png) | -| **Mga Setting** | ![Settings](docs/screenshots/06-settings.png) | -| **Mga CLI Tools** | ![CLI Tools](docs/screenshots/07-cli-tools.png) | -| **Mga Log ng Paggamit** | ![Usage](docs/screenshots/08-usage.png) | -| **Mga Endpoint** | ![Endpoints](docs/screenshots/09-endpoint.png) | - -</details> - ---- - -### 🤖 Libreng AI Provider para sa iyong mga paboritong coding agent - -_Ikonekta ang anumang AI-powered IDE o CLI tool sa pamamagitan ng OmniRoute — libreng API gateway para sa walang limitasyong coding._ - - <table> - <tr> - <td align="center" width="110"> - <a href="https://github.com/openclaw/openclaw"> - <img src="./public/providers/openclaw.png" alt="OpenClaw" width="48"/><br/> - <b>OpenClaw</b> - </a><br/> - <sub>⭐ 205K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/HKUDS/nanobot"> - <img src="./public/providers/nanobot.png" alt="NanoBot" width="48"/><br/> - <b>NanoBot</b> - </a><br/> - <sub>⭐ 20.9K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/sipeed/picoclaw"> - <img src="./public/providers/picoclaw.jpg" alt="PicoClaw" width="48"/><br/> - <b>PicoClaw</b> - </a><br/> - <sub>⭐ 14.6K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/zeroclaw-labs/zeroclaw"> - <img src="./public/providers/zeroclaw.png" alt="ZeroClaw" width="48"/><br/> - <b>ZeroClaw</b> - </a><br/> - <sub>⭐ 9.9K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/nearai/ironclaw"> - <img src="./public/providers/ironclaw.png" alt="IronClaw" width="48"/><br/> - <b>IronClaw</b> - </a><br/> - <sub>⭐ 2.1K</sub> - </td> - </tr> - <tr> - <td align="center" width="110"> - <a href="https://github.com/anomalyco/opencode"> - <img src="./public/providers/opencode.svg" alt="OpenCode" width="48"/><br/> - <b>OpenCode</b> - </a><br/> - <sub>⭐ 106K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/openai/codex"> - <img src="./public/providers/codex.png" alt="Codex CLI" width="48"/><br/> - <b>Codex CLI</b> - </a><br/> - <sub>⭐ 60.8K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/anthropics/claude-code"> - <img src="./public/providers/claude.png" alt="Claude Code" width="48"/><br/> - <b>Claude Code</b> - </a><br/> - <sub>⭐ 67.3K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/google-gemini/gemini-cli"> - <img src="./public/providers/gemini-cli.png" alt="Gemini CLI" width="48"/><br/> - <b>Gemini CLI</b> - </a><br/> - <sub>⭐ 94.7K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/Kilo-Org/kilocode"> - <img src="./public/providers/kilocode.png" alt="Kilo Code" width="48"/><br/> - <b>Kilo Code</b> - </a><br/> - <sub>⭐ 15.5K</sub> - </td> - </tr> - </table> - -<sub>📡 Kumonekta ang lahat ng ahente sa pamamagitan ng <code>http://localhost:20128/v1</code> o <code>http://cloud.omniroute.online/v1</code> o <code>http://cloud.omniroute.online/v1__OMNI_TOKEN —i4 na modelo at \_\_i config. quota</sub> - ---- - -## 🤔 Bakit OmniRoute? - -**Itigil ang pag-aaksaya ng pera at pag-abot sa mga limitasyon:** - -- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Mag-e-expire ang quota ng subscription na hindi nagamit bawat buwan -- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Pinipigilan ka ng mga limitasyon sa rate sa mid-coding -- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Mga Mamahaling API ($20-50/buwan bawat provider) -- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Manu-manong paglipat sa pagitan ng mga provider - -**Sumalutas ito ng OmniRoute:** - -- ✅ **I-maximize ang mga subscription** - Subaybayan ang quota, gamitin ang bawat bit bago i-reset -- ✅ **Auto fallback** - Subscription → API Key → Mura → Libre, zero downtime -- ✅ **Multi-account** - Round-robin sa pagitan ng mga account sa bawat provider -- ✅ **Universal** - Gumagana sa Claude Code, Codex, Gemini CLI, Cursor, Cline, OpenClaw, anumang CLI tool - ---- - -## 📧 Suporta - -> 💬 **Sumali sa aming komunidad!** [WhatsApp Group](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) — Humingi ng tulong, magbahagi ng mga tip, at manatiling updated. - -- **Website**: [omniroute.online](https://omniroute.online) -- **GitHub**: [github.com/diegosouzapw/OmniRoute](https://github.com/diegosouzapw/OmniRoute) -- **Mga Isyu**: [github.com/diegosouzapw/OmniRoute/issues](https://github.com/diegosouzapw/OmniRoute/issues) -- **WhatsApp**: [Community Group](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) -- **Nag-aambag**: Tingnan ang [CONTRIBUTING.md](CONTRIBUTING.md), magbukas ng PR, o pumili ng `good first issue` -- **Orihinal na Proyekto**: [9router by decolua](https://github.com/decolua/9router) - -### 🐛 Nag-uulat ng Bug? - -Kapag nagbubukas ng isyu, mangyaring patakbuhin ang system-info command at ilakip ang nabuong file: - -```bash -npm run system-info -``` - -Bumubuo ito ng `system-info.txt` gamit ang iyong bersyon ng Node.js, bersyon ng OmniRoute, mga detalye ng OS, mga naka-install na tool sa CLI (qoder, gemini, claude, codex, antigravity, droid, atbp.), status ng Docker/PM2, at mga system package — lahat ng kailangan namin para mabilis na ma-reproduce ang iyong isyu. Direktang ilakip ang file sa iyong isyu sa GitHub. - ---- - -## 🔄 Paano Ito Gumagana - -``` -┌─────────────┐ -│ Your CLI │ (Claude Code, Codex, Gemini CLI, OpenClaw, Cursor, Cline...) -│ Tool │ -└──────┬──────┘ - │ http://localhost:20128/v1 - ↓ -┌─────────────────────────────────────────┐ -│ OmniRoute (Smart Router) │ -│ • Format translation (OpenAI ↔ Claude) │ -│ • Quota tracking + Embeddings + Images │ -│ • Auto token refresh │ -└──────┬──────────────────────────────────┘ - │ - ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex, Gemini CLI - │ ↓ quota exhausted - ├─→ [Tier 2: API KEY] DeepSeek, Groq, xAI, Mistral, NVIDIA NIM, etc. - │ ↓ budget limit - ├─→ [Tier 3: CHEAP] GLM ($0.6/1M), MiniMax ($0.2/1M) - │ ↓ budget limit - └─→ [Tier 4: FREE] Qoder, Qwen, Kiro (unlimited) - -Result: Never stop coding, minimal cost -``` - ---- - -## 🎯 Ano ang Lutasin ng OmniRoute — 30 Tunay na Pain Points at Mga Kaso ng Paggamit - -> **Ang bawat developer na gumagamit ng mga tool ng AI ay nahaharap sa mga problemang ito araw-araw.** Binuo ang OmniRoute para lutasin ang lahat ng ito — mula sa mga pag-overrun sa gastos hanggang sa mga panrehiyong bloke, mula sa mga sirang daloy ng OAuth hanggang sa mga pagpapatakbo ng protocol at pagmamasid sa enterprise. - -<details> -<summary><b>💸 1. "Nagbabayad ako para sa isang mamahaling subscription ngunit naaantala pa rin ng mga limitasyon"</b></summary> - -Nagbabayad ang mga developer ng $20–200/buwan para sa Claude Pro, Codex Pro, o GitHub Copilot. Kahit na nagbabayad, may kisame ang quota — 5h ng paggamit, lingguhang limitasyon, o bawat minutong limitasyon sa rate. Sesyon sa kalagitnaan ng coding, hihinto sa pagtugon ang provider at nawawalan ng daloy at pagiging produktibo ang developer. - -**Paano ito niresolba ng OmniRoute:** - -- **Smart 4-Tier Fallback** — Kung maubusan ang quota ng subscription, awtomatikong magre-redirect sa API Key → Murang → Libre nang walang manu-manong interbensyon -- **Real-Time Quota Tracking** — Ipinapakita ang pagkonsumo ng token sa real-time na may reset countdown (5h, araw-araw, lingguhan) -- **Multi-Account Support** — Maramihang account sa bawat provider na may auto round-robin — kapag naubos ang isa, lilipat sa susunod -- **Custom Combos** — Nako-customize na fallback chain na may 6 na diskarte sa pagbabalanse (fill-first, round-robin, P2C, random, hindi gaanong ginagamit, cost-optimized) -- **Codex Business Quotas** — Direktang pagsubaybay sa quota ng workspace ng Negosyo/Team sa dashboard - -</details> - -<details> -<summary><b>🔌 2. "Kailangan kong gumamit ng maramihang provider ngunit may iba't ibang API ang bawat isa"</b></summary> - -Gumagamit ang OpenAI ng isang format, gumagamit si Claude (Anthropic) ng isa pa, isa pa ang Gemini. Kung gusto ng isang dev na subukan ang mga modelo mula sa iba't ibang provider o fallback sa pagitan nila, kailangan nilang i-configure muli ang mga SDK, baguhin ang mga endpoint, harapin ang mga hindi tugmang format. Ang mga custom na provider (FriendLI, NIM) ay may hindi karaniwang mga endpoint ng modelo. - -**Paano ito niresolba ng OmniRoute:** - -- **Pinag-isang Endpoint** — Isang solong `http://localhost:20128/v1` ang nagsisilbing proxy para sa lahat ng 67+ provider -- **Format Translation** — Awtomatiko at transparent: OpenAI ↔ Claude ↔ Gemini ↔ Responses API -- **Response Sanitization** — Tinatanggal ang mga hindi karaniwang field (`x_groq`, `usage_breakdown`, `service_tier`) na sumisira sa OpenAI SDK v1.83+ -- **Role Normalization** — Kino-convert ang `developer` → `system` para sa mga provider na hindi OpenAI; `system` → `user` para sa GLM/ERNIE -- **Think Tag Extraction** — Kinukuha ang `<think>` block mula sa mga modelo tulad ng DeepSeek R1 sa standardized na `reasoning_content` -- **Structured Output para sa Gemini** — `json_schema` → `responseMimeType`/`responseSchema` awtomatikong conversion -- **`stream` default sa `false`** — Naka-align sa OpenAI spec, iniiwasan ang hindi inaasahang SSE sa Python/Rust/Go SDKs - -</details> - -<details> -<summary><b>🌐 3. "Bina-block ng aking AI provider ang aking rehiyon/bansa"</b></summary> - -Hinaharang ng mga provider tulad ng OpenAI/Codex ang pag-access mula sa ilang partikular na heyograpikong rehiyon. Nakakakuha ang mga user ng mga error tulad ng `unsupported_country_region_territory` sa panahon ng mga koneksyon sa OAuth at API. Ito ay lalo na nakakabigo para sa mga developer mula sa pagbuo ng mga bansa. - -**Paano ito niresolba ng OmniRoute:** - -- **3-Level Proxy Config** — Nako-configure na proxy sa 3 antas: global (lahat ng trapiko), bawat provider (isang provider lang), at bawat koneksyon/key -- **Color-Coded Proxy Badges** — Visual indicator: 🟢 global proxy, 🟡 provider proxy, 🔵 connection proxy, palaging ipinapakita ang IP -- **OAuth Token Exchange Through Proxy** — Dumadaan din sa proxy ang daloy ng OAuth, na nilulutas ang `unsupported_country_region_territory` -- **Mga Pagsusuri sa Koneksyon sa pamamagitan ng Proxy** — Ginagamit ng mga pagsubok sa koneksyon ang naka-configure na proxy (wala nang direktang bypass) -- **SOCKS5 Support** — Buong SOCKS5 proxy support para sa papalabas na pagruruta -- **TLS Fingerprint Spoofing** — Parang browser ng TLS na fingerprint sa pamamagitan ng `wreq-js` para i-bypass ang pag-detect ng bot -- **🔏 CLI Fingerprint Matching** — Muling inaayos ang mga header at body field upang tumugma sa mga native na CLI binary signature, na lubhang binabawasan ang panganib sa pag-flag ng account. Ang proxy IP ay napanatili — nakakakuha ka ng parehong stealth **at** IP masking nang sabay - -</details> - -<details> -<summary><b>🆓 4. "Gusto kong gumamit ng AI para sa coding ngunit wala akong pera"</b></summary> - -Hindi lahat ay maaaring magbayad ng $20–200/buwan para sa mga subscription sa AI. Ang mga mag-aaral, mga dev mula sa mga umuusbong na bansa, mga hobbyist, at mga freelancer ay nangangailangan ng access sa mga de-kalidad na modelo sa zero cost. - -**Paano ito niresolba ng OmniRoute:** - -- **Libreng Tier Provider Built-in** — Native na suporta para sa 100% libreng provider: Qoder (5 unlimited na mga modelo sa pamamagitan ng OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwender3-wenlash3-coplus qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID nang libre), Gemini CLI (180K token/buwan libre) -- **Ollama Cloud** — Cloud-hosted Ollama models sa `api.ollama.com` na may libreng "Light usage" tier; gumamit ng `ollamacloud/<model>` prefix -- **Free-Only Combos** — Chain `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/buwan na walang downtime -- **NVIDIA NIM Free Access** — ~40 RPM dev-forever na libreng access sa 70+ na modelo sa build.nvidia.com (paglilipat mula sa mga credit patungo sa mga purong limitasyon sa rate) -- **Cost Optimized Strategy** — Istratehiya sa pagruruta na awtomatikong pinipili ang pinakamurang available na provider - -</details> - -<details> -<summary><b>🔒 5. "Kailangan kong protektahan ang aking AI gateway mula sa hindi awtorisadong pag-access"</b></summary> - -Kapag inilantad ang isang gateway ng AI sa network (LAN, VPS, Docker), maaaring kumonsumo ng mga token/quota ng developer ang sinumang may address. Kung walang proteksyon, ang mga API ay mahina sa maling paggamit, agarang pag-iniksyon, at pang-aabuso. - -**Paano ito niresolba ng OmniRoute:** - -- **API Key Management** — Pagbuo, pag-ikot, at saklaw ng bawat provider na may nakalaang `/dashboard/api-manager` na pahina -- **Mga Pahintulot sa Antas ng Modelo** — Paghigpitan ang mga API key sa mga partikular na modelo (`openai/*`, mga pattern ng wildcard), gamit ang Allow All/Restrict toggle -- **API Endpoint Protection** — Mangangailangan ng key para sa `/v1/models` at i-block ang mga partikular na provider mula sa listahan -- **Auth Guard + CSRF Protection** — Lahat ng mga ruta ng dashboard ay protektado ng `withAuth` middleware + CSRF token -- **Rate Limiter** — Per-IP rate na naglilimita sa mga na-configure na window -- **IP Filtering** — Allowlist/blocklist para sa access control -- **Prompt Injection Guard** — Sanitization laban sa malisyosong prompt pattern -- **AES-256-GCM Encryption** — Ang mga kredensyal ay naka-encrypt sa pahinga - -</details> - -<details> -<summary><b>🛑 6. "Bumaba ang provider ko at nawala ang coding flow ko"</b></summary> - -Ang mga tagapagbigay ng AI ay maaaring maging hindi matatag, magbalik ng 5xx na mga error, o maabot ang mga pansamantalang limitasyon sa rate. Kung ang isang dev ay nakadepende sa isang provider, maaantala sila. Kung walang mga circuit breaker, ang mga paulit-ulit na pagsubok ay maaaring mag-crash sa application. - -**Paano ito niresolba ng OmniRoute:** - -- **Circuit Breaker per-model** — Auto-open/close na may mga na-configure na threshold at cooldown (Closed/Open/Half-Open), scoped per-model para maiwasan ang mga cascading block -- **Exponential Backoff** — Progressive retry delays -- **Anti-Thundering Herd** — Mutex + semaphore na proteksyon laban sa kasabay na muling pagsubok na mga bagyo -- **Combo Fallback Chains** — Kung nabigo ang pangunahing provider, awtomatikong mahuhulog sa chain nang walang interbensyon -- **Combo Circuit Breaker** — Awtomatikong idi-disable ang mga nabigong provider sa loob ng combo chain -- **Health Dashboard** — Uptime monitoring, circuit breaker states, lockouts, cache stats, p50/p95/p99 latency - -</details> - -<details> -<summary><b>🔧 7. "Ang pag-configure ng bawat AI tool ay nakakapagod at paulit-ulit"</b></summary> - -Gumagamit ang mga developer ng Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code... Ang bawat tool ay nangangailangan ng ibang config (API endpoint, key, model). Ang muling pag-configure kapag lumipat ng mga provider o modelo ay isang pag-aaksaya ng oras. - -**Paano ito niresolba ng OmniRoute:** - -- **CLI Tools Dashboard** — Nakatuon na page na may isang-click na setup para sa Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline -- **GitHub Copilot Config Generator** — Bumubuo ng `chatLanguageModels.json` para sa VS Code na may maramihang pagpili ng modelo -- **Onboarding Wizard** — May gabay na 4-step na pag-setup para sa mga unang beses na user -- **Isang endpoint, lahat ng modelo** — I-configure ang `http://localhost:20128/v1` isang beses, i-access ang 67+ provider - -</details> - -<details> -<summary><b>🔑 8. "Impiyerno ang pamamahala sa mga token ng OAuth mula sa maraming provider"</b></summary> - -Claude Code, Codex, Gemini CLI, Copilot — lahat ay gumagamit ng OAuth 2.0 na may mga mag-e-expire na token. Kailangang muling magpatotoo ang mga developer, harapin ang `client_secret is missing`, `redirect_uri_mismatch`, at mga pagkabigo sa mga malalayong server. Ang OAuth sa LAN/VPS ay partikular na may problema. - -**Paano ito niresolba ng OmniRoute:** - -- **Auto Token Refresh** — Ang mga token ng OAuth ay nagre-refresh sa background bago mag-expire -- **OAuth 2.0 (PKCE) Built-in** — Awtomatikong daloy para sa Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder -- **Multi-Account OAuth** — Maramihang account bawat provider sa pamamagitan ng pagkuha ng token ng JWT/ID -- **OAuth LAN/Remote Fix** — Pribadong IP detection para sa `redirect_uri` + manu-manong URL mode para sa mga malalayong server -- **OAuth Behind Nginx** — Gumagamit ng `window.location.origin` para sa reverse proxy compatibility -- **Remote OAuth Guide** — Step-by-step na gabay para sa mga kredensyal ng Google Cloud sa VPS/Docker - -</details> - -<details> -<summary><b>📊 9. "Hindi ko alam kung magkano ang ginagastos ko o kung saan"</b></summary> - -Gumagamit ang mga developer ng maraming bayad na provider ngunit walang pinag-isang pagtingin sa paggastos. Ang bawat provider ay may sariling dashboard ng pagsingil, ngunit walang pinagsama-samang view. Ang mga hindi inaasahang gastos ay maaaring magtambak. - -**Paano ito niresolba ng OmniRoute:** - -- **Cost Analytics Dashboard** — Per-token cost tracking at pamamahala ng badyet bawat provider -- **Mga Limitasyon sa Badyet bawat Tier** — Paggastos ng kisame sa bawat tier na nagti-trigger ng awtomatikong fallback -- **Per-Model Pricing Configuration** — Nako-configure na mga presyo bawat modelo -- **Mga Istatistika ng Paggamit Bawat API Key** — Bilang ng kahilingan at timestamp na huling ginamit bawat key -- **Analytics Dashboard** — Mga stat card, chart ng paggamit ng modelo, talahanayan ng provider na may mga rate ng tagumpay at latency - -</details> - -<details> -<summary><b>🐛 10. "Hindi ko matukoy ang mga error at problema sa mga tawag sa AI"</b></summary> - -Kapag nabigo ang isang tawag, hindi alam ng dev kung ito ay isang limitasyon sa rate, nag-expire na token, maling format, o error sa provider. Mga pira-pirasong log sa iba't ibang terminal. Kung walang pagmamasid, ang pag-debug ay trial-and-error. - -**Paano ito niresolba ng OmniRoute:** - -- **Unified Logs Dashboard** — 4 na tab: Request Logs, Proxy Logs, Audit Logs, Console -- **Console Log Viewer** — Real-time na terminal-style viewer na may color-coded level, auto-scroll, paghahanap, filter -- **SQLite Proxy Logs** — Mga paulit-ulit na log na nakaligtas sa pag-restart ng server -- **Translator Playground** — 4 na mode ng pag-debug: Playground (pagsasalin ng format), Chat Tester (round-trip), Test Bench (batch), Live Monitor (real-time) -- **Request Telemetry** — p50/p95/p99 latency + X-Request-Id tracing -- **Pag-log na Nakabatay sa File na may Pag-ikot** — Kinukuha ng Console interceptor ang lahat sa log ng JSON na may pag-ikot batay sa laki -- **Ulat sa Impormasyon ng System** — Ang `npm run system-info` ay bumubuo ng `system-info.txt` kasama ang iyong buong kapaligiran (bersyon ng Node, bersyon ng OmniRoute, OS, mga tool sa CLI, katayuan ng Docker/PM2). Ilakip ito kapag nag-uulat ng mga isyu para sa instant triage. - -</details> - -<details> -<summary><b>🏗️ 11. "Ang pag-deploy at pagpapanatili ng gateway ay kumplikado"</b></summary> - -Ang pag-install, pag-configure, at pagpapanatili ng AI proxy sa iba't ibang kapaligiran (lokal, VPS, Docker, cloud) ay labor-intensive. Nagdaragdag ng friction ang mga problema tulad ng mga hardcoded path, `EACCES` sa mga direktoryo, port conflict, at cross-platform build. - -**Paano ito niresolba ng OmniRoute:** - -- **npm global install** — `npm install -g omniroute && omniroute` — tapos na -- **Docker Multi-Platform** — AMD64 + ARM64 native (Apple Silicon, AWS Graviton, Raspberry Pi) -- **Docker Compose Profile** — `base` (walang CLI tool) at `cli` (na may Claude Code, Codex, OpenClaw) -- **Electron Desktop App** — Native app para sa Windows/macOS/Linux na may system tray, auto-start, offline mode -- **Split-Port Mode** — API at Dashboard sa magkahiwalay na port para sa mga advanced na sitwasyon (reverse proxy, container networking) -- **Cloud Sync** — I-configure ang pag-synchronize sa mga device sa pamamagitan ng Cloudflare Workers -- **DB Backup** — Awtomatikong pag-backup, pagpapanumbalik, pag-export at pag-import ng lahat ng mga setting - -</details> - -<details> -<summary><b>🌍 12. "Ang interface ay English-only at ang aking team ay hindi nagsasalita ng English"</b></summary> - -Ang mga koponan sa mga bansang hindi nagsasalita ng Ingles, lalo na sa Latin America, Asia, at Europe, ay nakikipagpunyagi sa mga interface na Ingles lamang. Binabawasan ng mga hadlang sa wika ang pag-aampon at pinapataas ang mga error sa pagsasaayos. - -**Paano ito niresolba ng OmniRoute:** - -- **Dashboard i18n — 30 Wika** — Lahat ng 500+ key na isinalin kabilang ang Arabic, Bulgarian, Danish, German, Spanish, Finnish, French, Hebrew, Hindi, Hungarian, Indonesian, Italian, Japanese, Korean, Malay, Dutch, Norwegian, Polish, Portuguese (PT/BR), Romanian, Russian, Slovak, Swedish, Thai, Ukrainian, Vietnamese, -- **RTL Support** — Kanan-pakaliwa na suporta para sa Arabic at Hebrew -- **Multi-Language READMEs** — 30 kumpletong pagsasalin ng dokumentasyon -- **Language Selector** — Globe icon sa header para sa real-time na paglipat - -</details> - -<details> -<summary><b>🔄 13. "Kailangan ko ng higit pa sa chat — kailangan ko ng mga pag-embed, larawan, audio"</b></summary> - -Ang AI ay hindi lamang pagkumpleto ng chat. Kailangan ng mga dev na bumuo ng mga larawan, mag-transcribe ng audio, gumawa ng mga pag-embed para sa RAG, mag-rerank ng mga dokumento, at katamtamang nilalaman. Ang bawat API ay may iba't ibang endpoint at format. - -**Paano ito niresolba ng OmniRoute:** - -- **Mga Pag-embed** — `/v1/embeddings` na may 6 na provider at 9+ na modelo -- **Pagbuo ng Larawan** — `/v1/images/generations` na may 10 provider at 20+ modelo (OpenAI, xAI, Together, Fireworks, Nebius, Hyperbolic, NanoBanana, Antigravity, SD WebUI, ComfyUI) -- **Text-to-Video** — `/v1/videos/generations` — ComfyUI (AnimateDiff, SVD) at SD WebUI -- **Text-to-Music** — `/v1/music/generations` — ComfyUI (Stable Audio Open, MusicGen) -- **Audio Transcription** — `/v1/audio/transcriptions` — Whisper + Nvidia NIM, HuggingFace, Qwen3 -- **Text-to-Speech** — `/v1/audio/speech` — ElevenLabs, Nvidia NIM, HuggingFace, Coqui, Tortoise, Qwen3, **Inworld**, **Cartesia**, **PlayHT**, + mga kasalukuyang provider -- **Moderations** — `/v1/moderations` — Mga pagsusuri sa kaligtasan ng content -- **Muling pagraranggo** — `/v1/rerank` — Muling pagraranggo ng kaugnayan ng dokumento -- **Responses API** — Buong `/v1/responses` na suporta para sa Codex - -</details> - -<details> -<summary><b>🧪 14. "Wala akong paraan para subukan at ihambing ang kalidad sa lahat ng modelo"</b></summary> - -Gustong malaman ng mga developer kung aling modelo ang pinakamainam para sa kanilang kaso ng paggamit — code, pagsasalin, pangangatwiran — ngunit mabagal ang paghahambing nang manu-mano. Walang pinagsamang mga tool sa eval ang umiiral. - -**Paano ito niresolba ng OmniRoute:** - -- **LLM Evaluations** — Golden set testing na may 10 pre-loaded case na sumasaklaw sa mga pagbati, matematika, heograpiya, pagbuo ng code, pagsunod sa JSON, pagsasalin, markdown, pagtanggi sa kaligtasan -- **4 na Istratehiya sa Pagtutugma** — `exact`, `contains`, `regex`, `custom` (JS function) -- **Translator Playground Test Bench** — Batch testing na may maraming input at inaasahang output, cross-provider na paghahambing -- **Chat Tester** — Buong round-trip na may visual response rendering -- **Live Monitor** — Real-time na stream ng lahat ng kahilingang dumadaloy sa proxy - -</details> - -<details> -<summary><b>📈 15. "Kailangan kong mag-scale nang hindi nawawala ang performance"</b></summary> - -Habang lumalaki ang dami ng kahilingan, nang walang pag-cache sa parehong mga tanong ay bumubuo ng mga dobleng gastos. Nang walang idempotency, humihiling ang duplicate sa pagpoproseso ng basura. Dapat igalang ang mga limitasyon sa rate ng bawat provider. - -**Paano ito niresolba ng OmniRoute:** - -- **Semantic Cache** — Ang two-tier na cache (pirma + semantiko) ay binabawasan ang gastos at latency -- **Request Idempotency** — 5s deduplication window para sa magkaparehong mga kahilingan -- **Pagtukoy sa Limitasyon ng Rate** — RPM ng bawat provider, min na gap, at max na kasabay na pagsubaybay -- **Editable Rate Limits** — Configurable defaults in Settings → Resilience with persistence -- **API Key Validation Cache** — 3-tier na cache para sa performance ng produksyon -- **Health Dashboard na may Telemetry** — p50/p95/p99 latency, cache stats, uptime - -</details> - -<details> -<summary><b>🤖 16. "Gusto kong kontrolin ang gawi ng modelo sa buong mundo"</b></summary> - -Mga developer na gusto ang lahat ng tugon sa isang partikular na wika, na may partikular na tono, o gustong limitahan ang mga token ng pangangatwiran. Ang pag-configure nito sa bawat tool/kahilingan ay hindi praktikal. - -**Paano ito niresolba ng OmniRoute:** - -- **System Prompt Injection** — Inilapat ang pandaigdigang prompt sa lahat ng kahilingan -- **Thinking Budget Validation** — Reasoning token allocation control bawat kahilingan (passthrough, auto, custom, adaptive) -- **6 Mga Istratehiya sa Pagruruta** — Mga pandaigdigang diskarte na tumutukoy kung paano ipinamamahagi ang mga kahilingan -- **Wildcard Router** — `provider/*` pattern na dynamic na ruta sa anumang provider -- **Combo Enable/Disable Toggle** — I-toggle ang mga combo nang direkta mula sa dashboard -- **Toggle ng Provider** — I-enable/i-disable ang lahat ng koneksyon para sa isang provider sa isang click -- **Mga Naka-block na Provider** — Ibukod ang mga partikular na provider mula sa listahan ng `/v1/models` - -</details> - -<details> -<summary><b>🧰 17. "Kailangan ko ng mga tool sa MCP bilang mga first-class na kakayahan ng produkto"</b></summary> - -Maraming AI gateway ang naglalantad sa MCP bilang isang nakatagong detalye ng pagpapatupad. Ang mga koponan ay nangangailangan ng isang nakikita, napapamahalaang layer ng operasyon. - -**Paano ito niresolba ng OmniRoute:** - -- Lumilitaw ang MCP sa dashboard navigation at tab ng endpoint protocol -- Nakatuon na pahina ng pamamahala ng MCP na may proseso, mga tool, saklaw, at pag-audit -- Built-in na quick-start para sa `omniroute --mcp` at onboarding ng kliyente - -</details> - -<details> -<summary><b>🧠 18. "Kailangan ko ng A2A orchestration na may sync + stream task paths"</b></summary> - -Ang mga daloy ng trabaho ng ahente ay nangangailangan ng parehong direktang tugon at matagal na naka-stream na pagpapatupad na may kontrol sa lifecycle. - -**Paano ito niresolba ng OmniRoute:** - -- A2A JSON-RPC endpoint (`POST /a2a`) na may `message/send` at `message/stream` -- SSE streaming na may terminal state propagation -- Mga task lifecycle API para sa `tasks/get` at `tasks/cancel` - -</details> - -<details> -<summary><b>🛰️ 19. "Kailangan ko ng totoong kalusugan ng proseso ng MCP, hindi nahulaan ang status"</b></summary> - -Kailangang malaman ng mga operational team kung talagang buhay ang MCP, hindi lang kung maaabot ang isang API. - -**Paano ito niresolba ng OmniRoute:** - -- Runtime heartbeat file na may PID, timestamp, transport, bilang ng tool, at mode ng saklaw -- MCP status API na pinagsasama ang tibok ng puso + kamakailang aktibidad -- Mga UI status card para sa pagiging bago ng proseso/uptime/heartbeat - -</details> - -<details> -<summary><b>📋 20. "Kailangan ko ng auditable MCP tool execution"</b></summary> - -Kapag ang mga tool ay nag-mutate ng config o nag-trigger ng mga pagkilos ng ops, ang mga team ay nangangailangan ng forensic traceability. - -**Paano ito niresolba ng OmniRoute:** - -- SQLite-backed audit logging para sa mga tawag sa tool ng MCP -- Mga filter ayon sa tool, tagumpay/kabiguan, API key, at pagination -- Dashboard audit table + stats endpoints para sa automation - -</details> - -<details> -<summary><b>🔐 21. "Kailangan ko ng saklaw na mga pahintulot ng MCP sa bawat pagsasama"</b></summary> - -Ang iba't ibang mga kliyente ay dapat magkaroon ng hindi gaanong pribilehiyong pag-access sa mga kategorya ng tool. - -**Paano ito niresolba ng OmniRoute:** - -- 9 na butil na saklaw ng MCP para sa kontroladong pag-access ng tool -- Pagpapatupad ng saklaw at kakayahang makita sa UI ng pamamahala ng MCP -- Ligtas na default na postura para sa operational tooling - -</details> - -<details> -<summary><b>⚙️ 22. "Kailangan ko ng mga kontrol sa pagpapatakbo nang hindi nagre-redeploy"</b></summary> - -Ang mga koponan ay nangangailangan ng mabilis na mga pagbabago sa runtime sa panahon ng mga insidente o mga kaganapan sa gastos. - -**Paano ito niresolba ng OmniRoute:** - -- Lumipat ng combo activation nang direkta mula sa MCP dashboard -- Ilapat ang mga profile ng katatagan mula sa paunang natukoy na mga pack ng patakaran -- I-reset ang estado ng circuit breaker mula sa parehong panel ng mga operasyon - -</details> - -<details> -<summary><b>🔄 23. "Kailangan ko ng live A2A task lifecycle visibility at pagkansela"</b></summary> - -Kung walang lifecycle visibility, ang mga insidente ng gawain ay nagiging mahirap subukan. - -**Paano ito niresolba ng OmniRoute:** - -- Listahan ng gawain/pag-filter ayon sa estado/kasanayan sa pagination -- Mag-drill-down sa metadata ng gawain, mga kaganapan, at mga artifact -- Endpoint ng pagkansela ng gawain at pagkilos ng UI na may kumpirmasyon - -</details> - -<details> -<summary><b>🌊 24. "Kailangan ko ng aktibong stream metrics para sa A2A load"</b></summary> - -Ang mga stream ng workflow ay nangangailangan ng operational insight sa concurrency at live na koneksyon. - -**Paano ito niresolba ng OmniRoute:** - -- Mga aktibong stream counter na isinama sa A2A status -- Mga huling timestamp ng gawain at mga bilang ng bawat estado -- A2A dashboard card para sa real-time na pagsubaybay sa ops - -</details> - -<details> -<summary><b>🪪 25. "Kailangan ko ng karaniwang pagtuklas ng ahente para sa mga kliyente"</b></summary> - -Ang mga panlabas na kliyente at orkestra ay nangangailangan ng metadata na nababasa ng makina para sa onboarding. - -**Paano ito niresolba ng OmniRoute:** - -- Nalantad ang Agent Card sa `/.well-known/agent.json` -- Mga kakayahan at kasanayan na ipinapakita sa management UI -- Kasama sa A2A status API ang metadata ng pagtuklas para sa automation - -</details> - -<details> -<summary><b>🧭 26. "Kailangan ko ang pagtuklas ng protocol sa UX ng produkto"</b></summary> - -Kung hindi matuklasan ng mga user ang mga surface ng protocol, bumababa ang kalidad ng pag-aampon at suporta. - -**Paano ito niresolba ng OmniRoute:** - -- Pinagsama-samang **Mga Endpoint** na pahina na may mga tab para sa Proxy, MCP, A2A, at API Endpoints -- Mga toggle ng katayuan ng inline na serbisyo (Online/Offline) para sa MCP at A2A -- Mga link mula sa pangkalahatang-ideya hanggang sa nakalaang mga tab ng pamamahala - -</details> - -<details> -<summary><b>🧪 27. "Kailangan ko ng end-to-end protocol validation sa mga totoong kliyente"</b></summary> - -Ang mga kunwaring pagsubok ay hindi sapat upang patunayan ang pagiging tugma ng protocol bago ilabas. - -**Paano ito niresolba ng OmniRoute:** - -- E2E suite na nagbo-boot ng app at gumagamit ng totoong MCP SDK client transport -- Mga pagsubok sa A2A client para sa pagtuklas, pagpapadala, pag-stream, pagkuha, at pagkansela ng mga daloy -- Cross-check assertion laban sa MCP audit at A2A tasks API - -</details> - -<details> -<summary><b>📡 28. "Kailangan ko ng pinag-isang observability sa lahat ng interface"</b></summary> - -Ang paghahati ng observability sa pamamagitan ng protocol ay lumilikha ng mga blind spot at mas mahabang MTTR. - -**Paano ito niresolba ng OmniRoute:** - -- Pinag-isang mga dashboard/log/analytics sa isang produkto -- Health + audit + humiling ng telemetry sa mga layer ng OpenAI, MCP, at A2A -- Mga Operational API para sa status at automation - -</details> - -<details> -<summary><b>💼 29. "Kailangan ko ng isang runtime para sa proxy + tool + orkestrasyon ng ahente"</b></summary> - -Ang pagpapatakbo ng maraming magkakahiwalay na serbisyo ay nagpapataas ng gastos sa pagpapatakbo at mga mode ng pagkabigo. - -**Paano ito niresolba ng OmniRoute:** - -- OpenAI-compatible na proxy, MCP server, at A2A server sa isang stack -- Nakabahaging auth, resilience, data store, at observability -- Pare-parehong modelo ng patakaran sa lahat ng surface ng pakikipag-ugnayan - -</details> - -<details> -<summary><b>🚀 30. "Kailangan kong magpadala ng mga ahenteng daloy ng trabaho nang walang glue-code sprawl"</b></summary> - -Nawawalan ng bilis ang mga koponan kapag nagtatahi ng maraming ad-hoc na serbisyo at script. - -**Paano ito niresolba ng OmniRoute:** - -- Pinag-isang endpoint na diskarte para sa mga kliyente at ahente -- Mga built-in na UI sa pamamahala ng protocol at mga daanan sa pagpapatunay ng usok -- Mga pundasyong handa sa produksyon (seguridad, pag-log, katatagan, backup) - -</details> - -### Mga Halimbawang Playbook (Integrated Use Cases) - -**Playbook A: I-maximize ang bayad na subscription + murang backup** - -```txt -Combo: "maximize-claude" - 1. cc/claude-opus-4-6 - 2. glm/glm-4.7 - 3. if/kimi-k2-thinking - -Monthly cost: $20 + small backup spend -Outcome: higher quality, near-zero interruption -``` - -**Playbook B: Zero-cost coding stack** - -```txt -Combo: "free-forever" - 1. gc/gemini-3-flash - 2. if/kimi-k2-thinking - 3. qw/qwen3-coder-plus - -Monthly cost: $0 -Outcome: stable free coding workflow -``` - -**Playbook C: 24/7 always-on fallback chain** - -```txt -Combo: "always-on" - 1. cc/claude-opus-4-6 - 2. cx/gpt-5.2-codex - 3. glm/glm-4.7 - 4. minimax/MiniMax-M2.1 - 5. if/kimi-k2-thinking - -Outcome: deep fallback depth for deadline-critical workloads -``` - -**Playbook D: Ahente ops sa MCP + A2A** - -```txt -1) Start MCP transport (`omniroute --mcp`) for tool-driven operations -2) Run A2A tasks via `message/send` and `message/stream` -3) Observe via /dashboard/endpoint (MCP and A2A tabs) -4) Toggle services via inline status controls -``` - ---- - -## 🆓 Magsimula nang Libre — Zero Configuration Cost - -> I-setup ang AI coding sa ilang minuto sa **$0/buwan**. Ikonekta ang mga libreng account na ito at gamitin ang built-in na **Free Stack** combo. - -| Hakbang | Aksyon | Na-unlock ang Mga Provider | -| ------- | ----------------------------------------------------- | ------------------------------------------------------------------ | -| 1 | Ikonekta ang **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — **walang limitasyon** | -| 2 | Ikonekta ang **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **unlimited** | -| 3 | Ikonekta ang **Qwen** (Device Code) | qwen3-coder-plus, qwen3-coder-flash... — **walang limitasyon** | -| 4 | Ikonekta ang **Gemini CLI** (Google OAuth) | gemini-3-flash, gemini-2.5-pro — **180K/mo libre** | -| 5 | `/dashboard/combos` → **Libreng Stack ($0)** template | Awtomatikong round-robin lahat ng libreng provider | - -**Ituro ang anumang IDE/CLI sa:** `http://localhost:20128/v1` · API Key: `any-string` · Tapos na. - -> **Opsyonal na karagdagang coverage (libre din):** Groq API key (30 RPM libre), NVIDIA NIM (40 RPM libre, 70+ modelo), Cerebras (1M tok/araw), LongCat API key (50M token/araw!), Cloudflare Workers AI (10K Neurons/araw, 50+ modelo). - -## ⚡ Mabilis na Pagsisimula - -### 1) I-install at patakbuhin - -```bash -npm install -g omniroute -omniroute -``` - -> **pnpm user:** Patakbuhin ang `pnpm approve-builds -g` pagkatapos i-install upang paganahin ang mga native na build script na kinakailangan ng `better-sqlite3` at `@swc/core`: -> -> ```bash -> pnpm install -g omniroute -> pnpm approve-builds -g # Select all packages → approve -> omniroute -> ``` - -Magbubukas ang dashboard sa `http://localhost:20128` at ang API base URL ay `http://localhost:20128/v1`. - -| Utos | Paglalarawan | -| ----------------------- | -------------------------------------------------------------------- | -| `omniroute` | Simulan ang server (`PORT=20128`, API at dashboard sa parehong port) | -| `omniroute --port 3000` | Itakda ang canonical/API port sa 3000 | -| `omniroute --mcp` | Simulan ang MCP server (stdio transport) | -| `omniroute --no-open` | Huwag awtomatikong buksan ang browser | -| `omniroute --help` | Ipakita ang tulong | - -Opsyonal na split-port mode: - -```bash -PORT=20128 DASHBOARD_PORT=20129 omniroute -# API: http://localhost:20128/v1 -# Dashboard: http://localhost:20129 -``` - -### 2) Ikonekta ang mga provider at gawin ang iyong API key - -1. Buksan ang Dashboard → `Providers` at ikonekta ang hindi bababa sa isang provider (OAuth o API key). -2. Buksan ang Dashboard → `Endpoints` at gumawa ng API key. -3. (Opsyonal) Buksan ang Dashboard → `Combos` at itakda ang iyong fallback chain. - -### 3) Ituro ang iyong coding tool sa OmniRoute - -```txt -Base URL: http://localhost:20128/v1 -API Key: [copy from Endpoint page] -Model: if/kimi-k2-thinking (or any provider/model prefix) -``` - -Gumagana sa Claude Code, Codex CLI, Gemini CLI, Cursor, Cline, OpenClaw, OpenCode, at OpenAI-compatible SDK. - -### 4) Paganahin at patunayan ang mga protocol (v2.0) - -**MCP (para sa mga pagpapatakbong hinihimok ng tool):** - -```bash -omniroute --mcp -``` - -Pagkatapos ay ikonekta ang iyong MCP client sa `stdio` at mga tool sa pagsubok tulad ng: - -- `omniroute_get_health` -- `omniroute_list_combos` - -**A2A (para sa mga daloy ng trabaho ng ahente-sa-agent):** - -```bash -curl http://localhost:20128/.well-known/agent.json -``` - -```bash -curl -X POST http://localhost:20128/a2a \ - -H 'content-type: application/json' \ - -d '{"jsonrpc":"2.0","id":"quickstart","method":"message/send","params":{"skill":"quota-management","messages":[{"role":"user","content":"Give me a short quota summary."}]}}' -``` - -### 5) I-validate ang lahat ng end-to-end (inirerekomenda) - -```bash -npm run test:protocols:e2e -``` - -Ang suite na ito ay nagpapatunay ng totoong MCP at A2A na mga daloy ng kliyente laban sa isang tumatakbong app. - -### Alternatibo: tumakbo mula sa pinagmulan - -```bash -cp .env.example .env -npm install -PORT=20128 DASHBOARD_PORT=20129 NEXT_PUBLIC_BASE_URL=http://localhost:20129 npm run dev -``` - ---- - -## 🐳 Docker - -Ang OmniRoute ay available bilang pampublikong Docker na imahe sa [Docker Hub](https://hub.docker.com/r/diegosouzapw/omniroute). - -**Mabilis na pagtakbo:** - -```bash -docker run -d \ - --name omniroute \ - --restart unless-stopped \ - -p 20128:20128 \ - -v omniroute-data:/app/data \ - diegosouzapw/omniroute:latest -``` - -**Na may environment file:** - -```bash -# Copy and edit .env first -cp .env.example .env - -docker run -d \ - --name omniroute \ - --restart unless-stopped \ - --env-file .env \ - -p 20128:20128 \ - -v omniroute-data:/app/data \ - diegosouzapw/omniroute:latest -``` - -**Gumagamit ng Docker Compose:** - -```bash -# Base profile (no CLI tools) -docker compose --profile base up -d - -# CLI profile (Claude Code, Codex, OpenClaw built-in) -docker compose --profile cli up -d -``` - -| Larawan | Tag | Sukat | Paglalarawan | -| ------------------------ | -------- | ------ | ------------------------------ | -| `diegosouzapw/omniroute` | `latest` | ~250MB | Pinakabagong stable na release | -| `diegosouzapw/omniroute` | `1.0.3` | ~250MB | Kasalukuyang bersyon | - ---- - -## 🖥️ Desktop App — Offline at Palaging Naka-on - -> 🆕 **BAGO!** Available na ngayon ang OmniRoute bilang **katutubong desktop application** para sa Windows, macOS, at Linux. - -Patakbuhin ang OmniRoute bilang isang standalone na desktop app — walang terminal, walang browser, walang internet na kailangan para sa mga lokal na modelo. Kasama sa Electron-based na app ang: - -- 🖥️ **Native Window** — Nakatuon na window ng app na may integration ng system tray -- 🔄 **Auto-Start** — Ilunsad ang OmniRoute sa system login -- 🔔 **Mga Katutubong Notification** — Makakuha ng mga alerto para sa pagkaubos ng quota o mga isyu sa provider -- ⚡ **One-Click Install** — NSIS (Windows), DMG (macOS), AppImage (Linux) -- 🌐 **Offline Mode** — Gumagana nang ganap offline sa naka-bundle na server - -### Mabilis na Pagsisimula - -```bash -# Development mode -npm run electron:dev - -# Build for your platform -npm run electron:build # Current platform -npm run electron:build:win # Windows (.exe) -npm run electron:build:mac # macOS (.dmg) — x64 & arm64 -npm run electron:build:linux # Linux (.AppImage) -``` - -### System Tray - -Kapag pinaliit, nakatira ang OmniRoute sa iyong system tray na may mabilis na pagkilos: - -- Buksan ang dashboard -- Baguhin ang port ng server -- Ihinto ang aplikasyon - -📖 Buong dokumentasyon: [**OMNI_TOKEN_153**](electron/README.md) - ---- - -## 💰 Pagpepresyo sa isang Sulyap - -| Tier | Provider | Gastos | I-reset ang Quota | Pinakamahusay Para sa | -| ------------------- | --------------------------------- | -------------------------------- | -------------------- | ------------------------------------------------- | -| **💳 SUBSCRIPTION** | Claude Code (Pro) | $20/buwan | 5h + lingguhan | Naka-subscribe na | -| | Codex (Plus/Pro) | $20-200/buwan | 5h + lingguhan | Mga user ng OpenAI | -| | Gemini CLI | **LIBRE** | 180K/buwan + 1K/araw | Lahat! | -| | GitHub Copilot | $10-19/buwan | Buwanang | Mga user ng GitHub | -| **🔑 API KEY** | NVIDIA NIM | **LIBRE** (dev forever) | ~40 RPM | 70+ bukas na mga modelo | -| | Cerebras | **LIBRE** (1M tok/araw) | 60K TPM / 30 RPM | Pinakamabilis sa mundo | -| | Groq | **LIBRE** (30 RPM) | 14.4K RPD | Napakabilis na Llama/Gemma | -| | DeepSeek V3.2 | $0.27/$1.10 bawat 1M | Wala | Pinakamahusay na presyo/kalidad na pangangatwiran | -| | xAI Grok-4 Mabilis | **$0.20/$0.50 bawat 1M** 🆕 | Wala | Pinakamabilis + tool na pagtawag, ultralow | -| | xAI Grok-4 (standard) | $0.20/$1.50 bawat 1M 🆕 | Wala | Nangangatuwirang punong barko mula sa xAI | -| | Mistral | Libreng pagsubok + bayad | Limitado ang rate | European AI | -| | OpenRouter | Pay-per-use | Wala | 100+ modelo aggr. | -| **💰 MURA** | GLM-5 (sa pamamagitan ng Z.AI) 🆕 | $0.5/1M | Araw-araw 10AM | 128K output, pinakabagong flagship | -| | GLM-4.7 | $0.6/1M | Araw-araw 10AM | Backup ng badyet | -| | MiniMax M2.5 🆕 | $0.3/1M input | 5 oras na rolling | Pangangatwiran + mga ahenteng gawain | -| | MiniMax M2.1 | $0.2/1M | 5 oras na rolling | Pinaka murang opsyon | -| | Kimi K2.5 (Moonshot API) 🆕 | Pay-per-use | Wala | Direktang Moonshot API access | -| | Kimi K2 | $9/buwan flat | 10M token/buwan | Nahuhulaang gastos | -| **🆓 LIBRE** | Qoder | **$0** | Walang limitasyong | 5 mga modelong walang limitasyon | -| | Qwen | **$0** | Walang limitasyong | 4 na modelong walang limitasyon | -| | Kiro | **$0** | Walang limitasyong | Claude Sonnet/Haiku (AWS Builder) | -| | LongCat Flash-Lite 🆕 | **$0** (50M tok/araw 🔥) | 1 RPS | Pinakamalaking libreng quota sa Earth | -| | Mga polinasyon AI 🆕 | **$0** (walang key na kailangan) | 1 req/15s | GPT-5, Claude, DeepSeek, Llama 4 | -| | Cloudflare Workers AI 🆕 | **$0** (10K Neuron/araw) | ~150 resp/araw | 50+ modelo, pandaigdigang gilid | -| | Scaleway AI 🆕 | **$0** (1M token sa kabuuan) | Limitado ang rate | EU/GDPR, Qwen3 235B, Llama 70B | - -> 🆕 **Nagdagdag ng mga bagong modelo (Mar 2026):** Grok-4 Fast family sa $0.20/$0.50/M (na-benchmark sa 1143ms — 30% na mas mabilis kaysa Gemini 2.5 Flash), GLM-5 sa pamamagitan ng Z.AI na may 128K na output, MiniMax M2.5 na pangangatwiran. Kimi2 na direktang pagpepresyo sa pamamagitan ng V3 na pagpepresyo sa Mooni, na-update ng KIM2 na DeepSeek V3 - -**💡 $0 Combo Stack — Ang Kumpletong Libreng Setup:** - -``` -# 🆓 Ultimate Free Stack 2026 — 11 Providers, $0 Forever -Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED -LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 -Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed -Qwen (qw/) → qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next UNLIMITED -Gemini (gemini/) → Gemini 2.5 Flash — 1,500 req/day free API key -Cloudflare AI (cf/) → Llama 70B, Gemma 3, Mistral — 10K Neurons/day -Scaleway (scw/) → Qwen3 235B, Llama 70B — 1M free tokens (EU) -Groq (groq/) → Llama/Gemma ultra-fast — 14.4K req/day -NVIDIA NIM (nvidia/) → 70+ open models — 40 RPM forever -Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day -``` - -**Walang halaga. Hindi kailanman tumitigil sa pag-coding.** I-configure ito bilang isang combo ng OmniRoute at lahat ng fallback ay awtomatikong nangyayari — walang manu-manong paglipat kailanman. - ---- - ---- - -## 🆓 Mga Libreng Modelo — Ang Talagang Nakukuha Mo - -> Lahat ng mga modelo sa ibaba ay **100% libre na walang kinakailangang credit card**. Ang mga awtomatikong ruta ng OmniRoute sa pagitan ng mga ito kapag naubos ang isang quota — pagsamahin silang lahat para sa hindi nababasag na $0 combo. - -### 🔵 CLAUDE MODELS (sa pamamagitan ng Kiro — AWS Builder ID) - -| Modelo | Prefix | Limitahan | Hangganan ng Rate | -| ------------------- | ------ | --------------------- | ---------------------------------------- | -| `claude-sonnet-4.5` | `kr/` | **Walang limitasyon** | Walang iniulat na pang-araw-araw na cap | -| `claude-haiku-4.5` | `kr/` | **Walang limitasyon** | Walang iniulat na pang-araw-araw na cap | -| `claude-opus-4.6` | `kr/` | **Walang limitasyon** | Pinakabagong Opus sa pamamagitan ng Kiro | - -### 🟢 MGA MODELONG QODER (Libreng OAuth — Walang Credit Card) - -| Modelo | Prefix | Limitahan | Hangganan ng Rate | -| ------------------ | ------ | --------------------- | --------------------- | -| `kimi-k2-thinking` | `if/` | **Walang limitasyon** | Walang naiulat na cap | -| `qwen3-coder-plus` | `if/` | **Walang limitasyon** | Walang naiulat na cap | -| `deepseek-r1` | `if/` | **Walang limitasyon** | Walang naiulat na cap | -| `minimax-m2.1` | `if/` | **Walang limitasyon** | Walang naiulat na cap | -| `kimi-k2` | `if/` | **Walang limitasyon** | Walang naiulat na cap | - -### 🟡 QWEN MODELS (Device Code Auth) - -| Modelo | Prefix | Limitahan | Hangganan ng Rate | -| ------------------- | ------ | --------------------- | ------------------------ | -| `qwen3-coder-plus` | `qw/` | **Walang limitasyon** | Walang naiulat na cap | -| `qwen3-coder-flash` | `qw/` | **Walang limitasyon** | Walang naiulat na cap | -| `qwen3-coder-next` | `qw/` | **Walang limitasyon** | Walang naiulat na cap | -| `vision-model` | `qw/` | **Walang limitasyon** | Multimodal (mga larawan) | - -### 🟣 GEMINI CLI (Google OAuth) - -| Modelo | Prefix | Limitahan | Hangganan ng Rate | -| ------------------------ | ------ | ------------------------------ | ------------------ | -| `gemini-3-flash-preview` | `gc/` | **180K tok/buwan** + 1K/araw | Buwanang pag-reset | -| `gemini-2.5-pro` | `gc/` | 180K/buwan (nakabahaging pool) | Mataas na kalidad | - -### ⚫ NVIDIA NIM (Libreng API Key — build.nvidia.com) - -| Tier | Pang-araw-araw na Limitasyon | Hangganan ng Rate | Mga Tala | -| ----------- | ---------------------------- | ----------------- | ---------------------------------------------------------------------------- | -| Libre (Dev) | Walang token cap | **~40 RPM** | 70+ modelo; paglipat sa purong mga limitasyon sa rate sa kalagitnaan ng 2025 | - -Mga sikat na libreng modelo: `moonshotai/kimi-k2.5` (Kimi K2.5), `z-ai/glm4.7` (GLM 4.7), `deepseek-ai/deepseek-v3.2` (DeepSeek V3.2), `nvidia/llama-3.3-70b-instruct`, `deepseek/deepseek-r1` - -### ⚪ CEREBRAS (Libreng API Key — inference.cerebras.ai) - -| Tier | Pang-araw-araw na Limitasyon | Hangganan ng Rate | Mga Tala | -| ----- | ---------------------------- | ----------------- | ------------------------------------------------------------- | -| Libre | **1M token/araw** | 60K TPM / 30 RPM | Pinakamabilis na LLM inference sa mundo; nire-reset araw-araw | - -Available nang libre: `llama-3.3-70b`, `llama-3.1-8b`, `deepseek-r1-distill-llama-70b` - -### 🔴 GROQ (Libreng API Key — console.groq.com) - -| Tier | Pang-araw-araw na Limitasyon | Hangganan ng Rate | Mga Tala | -| ----- | ---------------------------- | ------------------- | ------------------------------------------------------- | -| Libre | **14.4K RPD** | 30 RPM bawat modelo | Walang credit card; 429 sa limitasyon, hindi sinisingil | - -Available nang libre: `llama-3.3-70b-versatile`, `gemma2-9b-it`, `mixtral-8x7b`, `whisper-large-v3` - -### 🔴 LONGCAT AI (Libreng API Key — longcat.chat) 🆕 - -| Modelo | Prefix | Araw-araw na Libreng Quota | Mga Tala | -| ----------------------------- | ------ | -------------------------- | -------------------------------------- | -| `LongCat-Flash-Lite` | `lc/` | **50M token** 💥 | Pinakamalaking libreng quota kailanman | -| `LongCat-Flash-Chat` | `lc/` | 500K token | Multi-turn chat | -| `LongCat-Flash-Thinking` | `lc/` | 500K token | Pangangatwiran / CoT | -| `LongCat-Flash-Thinking-2601` | `lc/` | 500K token | Ene 2026 na bersyon | -| `LongCat-Flash-Omni-2603` | `lc/` | 500K token | Multimodal | - -> 100% libre habang nasa pampublikong beta. Mag-sign up sa [longcat.chat](https://longcat.chat) gamit ang email o telepono. Nire-reset araw-araw 00:00 UTC. - -### 🟢 POLINATIONS AI (Walang API Key na Kinakailangan) 🆕 - -| Modelo | Prefix | Hangganan ng Rate | Provider sa Likod | -| ---------- | ------ | ----------------- | ------------------ | -| `openai` | `pol/` | 1 req/15s | GPT-5 | -| `claude` | `pol/` | 1 req/15s | Anthropic Claude | -| `gemini` | `pol/` | 1 req/15s | Google Gemini | -| `deepseek` | `pol/` | 1 req/15s | DeepSeek V3 | -| `llama` | `pol/` | 1 req/15s | Meta Llama 4 Scout | -| `mistral` | `pol/` | 1 req/15s | Mistral AI | - -> ✨ **Zero friction:** Walang pag-signup, walang API key. Idagdag ang Polinations provider na may walang laman na key field at agad itong gagana. - -### 🟠 CLOUDFLARE WORKERS AI (Libreng API Key — cloudflare.com) 🆕 - -| Tier | Pang-araw-araw na Neuron | Katumbas na Paggamit | Mga Tala | -| ----- | ------------------------ | --------------------------------------------- | -------------------------- | -| Libre | **10,000** | ~150 LLM resp / 500s audio / 15K na pag-embed | Global edge, 50+ na modelo | - -Mga sikat na libreng modelo: `@cf/meta/llama-3.3-70b-instruct`, `@cf/google/gemma-3-12b-it`, `@cf/openai/whisper-large-v3-turbo` (libreng audio!), `@cf/qwen/qwen2.5-coder-15b-instruct` - -> Nangangailangan ng API Token + Account ID mula sa [dash.cloudflare.com](https://dash.cloudflare.com). Store Account ID sa mga setting ng provider. - -### 🟣 SCALEWAY AI (1M Libreng Token — scaleway.com) 🆕 - -| Tier | Libreng Quota | Lokasyon | Mga Tala | -| ----- | ------------- | ------------ | ----------------------------------------------------------- | -| Libre | **1M token** | 🇫🇷 Paris, EU | Walang kinakailangang credit card sa loob ng mga limitasyon | - -Available nang libre: `qwen3-235b-a22b-instruct-2507` (Qwen3 235B!), `llama-3.1-70b-instruct`, `mistral-small-3.2-24b-instruct-2506`, `deepseek-v3-0324` - -> Sumusunod sa EU/GDPR. Kunin ang API key sa [console.scaleway.com](https://console.scaleway.com). - -> **💡 Ang Ultimate Free Stack (11 Provider, $0 Forever):** -> -> ``` -> Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -> Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED -> LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 -> Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed -> Qwen (qw/) → qwen3-coder models UNLIMITED -> Gemini (gemini/) → Gemini 2.5 Flash — 1,500 req/day free -> Cloudflare AI (cf/) → 50+ models — 10K Neurons/day -> Scaleway (scw/) → Qwen3 235B, Llama 70B — 1M free tokens (EU) -> Groq (groq/) → Llama/Gemma — 14.4K req/day ultra-fast -> NVIDIA NIM (nvidia/) → 70+ open models — 40 RPM forever -> Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day -> ``` - -## 🎙️ Libreng Transcription Combo - -> I-transcribe ang anumang audio/video para sa **$0** — Nangunguna ang Deepgram na may libreng $200, AssemblyAI $50 fallback, Groq Whisper bilang walang limitasyong backup na pang-emergency. - -| Provider | Libreng Credits | Pinakamahusay na Modelo | Hangganan ng Rate | -| ----------------- | --------------------------- | ------------------------------------------------ | ----------------------------------------------- | -| 🟢 **Deepgram** | **$200 libre** (pag-signup) | `nova-3` — pinakamahusay na katumpakan, 30+ wika | Walang limitasyon sa RPM sa mga libreng kredito | -| 🔵 **AssemblyAI** | **$50 libre** (pag-signup) | `universal-3-pro` — mga kabanata, damdamin, PII | Walang limitasyon sa RPM sa mga libreng kredito | -| 🔴 **Groq** | **Libre magpakailanman** | `whisper-large-v3` — OpenAI Whisper | 30 RPM (limitado ang rate) | - -**Iminungkahing combo sa `/dashboard/combos`:** - -``` -Name: free-transcription -Strategy: Priority -Nodes: - [1] deepgram/nova-3 → uses $200 free first - [2] assemblyai/universal-3-pro → fallback when Deepgram credits run out - [3] groq/whisper-large-v3 → free forever, emergency fallback -``` - -Pagkatapos sa `/dashboard/media` → **Transcription** tab: mag-upload ng anumang audio o video file → piliin ang iyong combo endpoint → kumuha ng transkripsyon sa mga sinusuportahang format. - -## 💡 Mga Pangunahing Tampok - -Ang OmniRoute v2.0 ay binuo bilang isang operating platform, hindi lamang isang relay proxy. - -### 🆕 Bago — ClawRouter-Inspired Improvements (Mar 2026) - -| Tampok | Ano ang Ginagawa Nito | -| ----------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | -| ⚡ **Grok-4 Mabilis na Pamilya** | mga modelo ng xAI sa $0.20/$0.50/M — na-benchmark na 1143ms (30% mas mabilis kaysa sa Gemini 2.5 Flash) | -| 🧠 **GLM-5 sa pamamagitan ng Z.AI** | 128K na konteksto ng output, $0.5/1M — pinakabagong flagship mula sa pamilyang GLM | -| 🔮 **MiniMax M2.5** | Pangangatwiran + mga ahenteng gawain sa $0.30/1M — makabuluhang pag-upgrade mula sa M2.1 | -| 🎯 **toolCalling Flag bawat Model** | Bawat-modelo `toolCalling: true/false` sa registry — Nilaktawan ng AutoCombo ang mga modelong hindi may kakayahan sa tool | -| 🌍 **Multilingual Intent Detection** | Mga keyword ng PT/ZH/ES/AR sa AutoCombo scoring — mas mahusay na pagpili ng modelo para sa nilalamang hindi Ingles | -| 📊 **Mga Fallback na Dahil sa Benchmark** | Real p95 latency mula sa mga live na kahilingan feed combo scoring — natututo ang AutoCombo mula sa aktwal na data | -| 🔁 **Humiling ng Deduplication** | Content-hash based na dedup window — multi-agent safe, pinipigilan ang mga duplicate na singil | -| 🔌 **Pluggable RouterStrategy** | Extensible `RouterStrategy` interface — magdagdag ng custom na routing logic bilang mga plugin | - -### 🚀 Nakaraang v2.0.9+ — Palaruan, CLI Fingerprints at ACP - -| Tampok | Ano ang Ginagawa Nito | -| --------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 🎮 **Modelo Playground** | Dashboard page upang direktang subukan ang anumang modelo — provider/modelo/endpoint selector, Monaco Editor, streaming, abort, timing | -| 🔏 **CLI Fingerprint Matching** | Pag-order ng header/katawan ng bawat provider upang tumugma sa mga native na lagda ng CLI — i-toggle ang bawat provider sa Mga Setting > Seguridad. **Napanatili ang iyong proxy IP** | -| 🤝 **Suporta sa ACP (Agent Client Protocol)** | Pagtuklas ng ahente ng CLI (Codex, Claude, Goose, Gemini CLI, OpenClaw + 9 pa), process spawner, `/api/acp/agents` endpoint | -| 🤖 **Dashboard ng Mga Ahente ng ACP** | Debug › Pahina ng mga ahente — grid ng 14 na ahente na may status ng pag-install, bersyon, custom na form ng ahente para sa anumang CLI tool. Ang **OpenCode** na mga user ay nakakakuha ng button na "I-download ang opencode.json" na awtomatikong bumubuo ng isang ready-to-use na config kasama ang lahat ng available na modelo. | -| 🔧 **Custom na Modelo `apiFormat` Routing** | Ang mga custom na modelo na may `apiFormat: "responses"` ay tama na ang ruta sa tagasalin ng Responses API | -| 🏢 **Paghihiwalay ng Codex Workspace** | Maramihang mga workspace ng Codex bawat email — Tamang pinaghihiwalay ng OAuth ang mga koneksyon ayon sa workspace ID | -| 🔄 **Electron Auto-Update** | Sinusuri ng desktop app ang mga update + auto-install sa pag-restart | - -### 🤖 Mga Operasyon ng Ahente at Protocol (v2.0) - -| Tampok | Ano ang Ginagawa Nito | -| ------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | -| 🔧 **MCP Server (16 na tool)** | Mga tool ng IDE/agent sa pamamagitan ng 3 transport: stdio, SSE (`/api/mcp/sse`), Streamable HTTP (`/api/mcp/stream`) | -| 🤝 **A2A Server (JSON-RPC + SSE)** | Pagpapatupad ng gawain ng ahente-sa-agent na may pag-sync at mga daloy ng streaming | -| 🧭 **Consolidated Endpoints Page** | Naka-tab na pahina ng pamamahala na may mga tab na Endpoint Proxy, MCP, A2A, at API Endpoints | -| 🎚️ **Service Enable/Disable Toggles** | ON/OFF switch para sa MCP at A2A na may mga setting ng persistence (default: OFF) | -| 🛰️ **MCP Runtime Heartbeat** | Katayuan ng totoong proseso (pid, uptime, edad ng tibok ng puso, transportasyon, mode ng saklaw) | -| 📋 **MCP Audit Trail** | Na-filter na mga log ng pag-audit na may tagumpay/kabiguan at pangunahing pagpapatungkol | -| 🔐 **Pagpapatupad ng Saklaw ng MCP** | 9 butil na saklaw na pahintulot para sa kontroladong pag-access ng tool | -| 📡 **A2A Task Lifecycle Management** | Ilista/i-filter ang mga gawain, siyasatin ang mga kaganapan/artifact, kanselahin ang pagpapatakbo ng mga gawain | -| 📋 **Pagtuklas ng Ahente Card** | `/.well-known/agent.json` para sa awtomatikong pagtuklas ng kliyente | -| 🧪 **Protocol E2E Test Harness** | Ang totoong MCP SDK + A2A client ay dumadaloy sa `test:protocols:e2e` | -| ⚙️ **Mga Operational Control** | Lumipat ng combo, ilapat ang mga profile ng resilience, i-reset ang mga breaker mula sa isang control surface | - -### 🧠 Routing at Intelligence - -| Tampok | Ano ang Ginagawa Nito | -| ----------------------------------------- | ---------------------------------------------------------------------------------------------- | -| 🎯 **Smart 4-Tier Fallback** | Auto-ruta: Subscription → API Key → Mura → Libre | -| 📊 **Real-Time Quota Tracking** | Live na bilang ng token + reset countdown bawat provider | -| 🔄 **Format Translation** | OpenAI ↔ Claude ↔ Gemini ↔ Mga tugon na may mga conversion na ligtas sa schema | -| 👥 **Suporta sa Multi-Account** | Maramihang account sa bawat provider na may matalinong pagpili | -| 🔄 **Auto Token Refresh** | Awtomatikong nagre-refresh ang mga token ng OAuth sa muling pagsubok | -| 🎨 **Mga Custom na Combos** | 6 na diskarte sa pagbabalanse + fallback chain control | -| 🌐 **Wildcard Router** | `provider/*` dynamic na pagruruta | -| 🧠 **Mga Kontrol sa Badyet sa Pag-iisip** | Passthrough, auto, custom, at adaptive na mga limitasyon sa pangangatwiran | -| 🔀 **Mga Alyas ng Modelo** | Built-in + custom na model aliasing at kaligtasan sa paglilipat | -| ⚡ **Pagbaba ng Background** | Iruta ang mga gawain sa background na mababa ang priyoridad sa mas murang mga modelo | -| 🧪 **Task-Aware Smart Routing** | Awtomatikong piliin ang modelo ayon sa uri ng nilalaman (coding/vision/analysis/summarization) | -| 💬 **System Prompt Injection** | Patuloy na inilalapat ang mga pandaigdigang kontrol sa gawi | -| 📄 **Pagkatugma sa API ng Mga Tugon** | Buong `/v1/responses` na suporta para sa Codex at mga advanced na ahenteng daloy ng trabaho | - -### 🎵 Mga Multi-Modal na API - -| Tampok | Ano ang Ginagawa Nito | -| --------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 🖼️ **Pagbuo ng Larawan** | `/v1/images/generations` na may cloud at mga lokal na backend | -| 📐 **Mga Pag-embed** | `/v1/embeddings` para sa paghahanap at mga pipeline ng RAG | -| 🎤 **Audio Transcription** | `/v1/audio/transcriptions` — 7 provider (Deepgram Nova 3, AssemblyAI, Groq Whisper, HuggingFace, ElevenLabs, OpenAI, Azure), auto-language detection, suporta sa MP4/MP3/WAV | -| 🔊 **Text-to-Speech** | `/v1/audio/speech` — 10 provider (ElevenLabs, OpenAI, Deepgram, Cartesia, PlayHT, HuggingFace, Nvidia NIM, Inworld, Coqui, Tortoise) na may mga tamang mensahe ng error | -| 🎬 **Pagbuo ng Video** | `/v1/videos/generations` (ComfyUI + SD WebUI workflows) | -| 🎵 **Pagbuo ng Musika** | `/v1/music/generations` (ComfyUI workflows) | -| 🛡️ **Mga Pag-moderate** | `/v1/moderations` mga pagsusuri sa kaligtasan | -| 🔀 **Reranking** | `/v1/rerank` para sa pagmamarka ng kaugnayan | -| 🔍 **Paghahanap sa Web** 🆕 | `/v1/search` — 5 provider (Serper, Brave, Perplexity, Exa, Tavily), 6,500+ libre/buwan, auto-failover, cache | - -### 🛡️ Katatagan, Seguridad at Pamamahala - -| Tampok | Ano ang Ginagawa Nito | -| ----------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | -| 🔌 **Mga Circuit Breaker** | Bawat modelong biyahe/pagbawi na may mga kontrol sa threshold | -| 🎯 **Mga Modelo ng Endpoint-Aware** | Idineklara ng mga custom na modelo ang mga sinusuportahang endpoint + format ng API | -| 🛡️ **Anti-Thundering Herd** | Mga proteksyon ng Mutex + semaphore sa muling pagsubok/pag-rate ng mga kaganapan | -| 🧠 **Semantic + Signature Cache** | Pagbabawas ng gastos/latency na may dalawang layer ng cache | -| ⚡ **Humiling ng Idempotency** | Duplicate na window ng proteksyon | -| 🔒 **TLS Fingerprint Spoofing** | TLS fingerprint na parang browser — **binabawasan ang pag-detect ng bot at pag-flag ng account** | -| 🔏 **CLI Fingerprint Matching** | Tumutugma sa mga native na lagda ng kahilingan sa CLI — **binabawasan ang panganib sa pagbabawal habang pinapanatili ang proxy IP** | -| 🌐 **Pag-filter ng IP** | Allowlist/blocklist control para sa mga nakalantad na deployment | -| 📊 **Mga Nae-edit na Limitasyon sa Rate** | Nako-configure ang mga limitasyon sa antas ng global/provider na may pagtitiyaga | -| 🔑 **API Key Management + Scoping** | Secure na pagpapalabas/pag-ikot ng susi at mga kontrol ng modelo/tagapagbigay | -| 👁️ **Scoped API Key Reveal** 🆕 | Opt-in recovery of API keys via `ALLOW_API_KEY_REVEAL` | -| 🛡️ **Protektado `/models`** | Opsyonal na auth gating at pagtatago ng provider para sa catalog ng modelo | - -### 📊 Pagmamasid at Analytics - -| Tampok | Ano ang Ginagawa Nito | -| ------------------------------------- | -------------------------------------------------------------------- | -| 📝 **Kahilingan + Proxy Logging** | Buong kahilingan/tugon at proxy logging | -| 📉 **Streamed Detailed Logs** 🆕 | Reconstructs SSE payload streams cleanly into the UI | -| 📋 **Unified Logs Dashboard** | Kahilingan, proxy, audit, at console view sa isang page | -| 🔍 **Humiling ng Telemetry** | p50/p95/p99 latency at kahilingan sa pagsubaybay | -| 🏥 **Dashboard ng Kalusugan** | Uptime, breaker states, lockouts, cache stats | -| 💰 **Pagsubaybay sa Gastos** | Mga kontrol sa badyet at visibility ng pagpepresyo sa bawat modelo | -| 📈 **Mga Visualization ng Analytics** | Mga insight sa paggamit ng modelo/provider at mga view ng trend | -| 🧪 **Brangkas ng Pagsusuri** | Golden set testing na may mga configurable na diskarte sa pagtutugma | - -### ☁️ Deployment at Platform - -| Tampok | Ano ang Ginagawa Nito | -| ----------------------------------- | ------------------------------------------------------------------------- | -| 🌐 **I-deploy Kahit Saan** | Localhost, VPS, Docker, Cloud environment | -| 💾 **Cloud Sync** | Pag-sync ng configuration sa pamamagitan ng cloud worker | -| 🔄 **Backup/Restore** | Mga daloy ng pag-export/pag-import at pagbawi ng kalamidad | -| 🧙 **Onboarding Wizard** | First-run guided setup | -| 🔧 **CLI Tools Dashboard** | Isang-click na setup para sa mga sikat na coding tool | -| 🎮 **Modelo Playground** | Subukan ang anumang provider/modelo/endpoint mula sa dashboard | -| 🔏 **CLI Fingerprint Toggle** | Pagtutugma ng fingerprint ng bawat provider sa Mga Setting > Seguridad | -| 🌐 **i18n (30 wika)** | Buong dashboard + suporta sa wika ng mga doc na may saklaw ng RTL | -| 🧹 **I-clear ang Lahat ng Modelo** | Isang-click na pag-clear ng listahan ng modelo sa mga detalye ng provider | -| 👁️ **Sidebar Controls** 🆕 | Hide components and integrations from Appearance Settings | -| 📋 **Mga Template ng Isyu** | Standardized GitHub template para sa mga bug at feature | -| 📂 **Custom na Direktoryo ng Data** | `DATA_DIR` override para sa lokasyon ng storage | - -### Tampok ang Deep Dive - -#### Smart fallback na may praktikal na kontrol sa gastos - -```txt -Combo: "my-coding-stack" - 1. cc/claude-opus-4-6 - 2. nvidia/llama-3.3-70b - 3. glm/glm-4.7 - 4. if/kimi-k2-thinking -``` - -Kapag nabigo ang quota, rate, o kalusugan, awtomatikong lilipat ang OmniRoute sa susunod na kandidato nang walang manu-manong paglipat. - -#### Protocol management na nakikita at nagagamit - -- Ang MCP + A2A ay natutuklasan sa UI at mga doc (hindi nakatago) -- Inilalantad ng mga Protocol status API ang live na data ng pagpapatakbo (`/api/mcp/*`, `/api/a2a/*`) -- Kasama sa mga dashboard ang mga aksyon para sa day-2 ops (combo toggle, breaker reset, pagkansela ng gawain) - -#### Translator + validation workflow - -Kasama sa lugar ng Tagasalin ang: - -- **Playground**: humiling ng mga pagsusuri sa pagbabago -- **Chat Tester**: buong kahilingan/tugon round-trip -- **Test Bench**: maraming kaso sa isang pagtakbo -- **Live Monitor**: real-time na view ng trapiko - -Dagdag pa ang pagpapatunay ng protocol sa mga tunay na kliyente sa pamamagitan ng `npm run test:protocols:e2e`. - -> 📖 **[MCP Server README](open-sse/mcp-server/README.md)** — Sanggunian ng tool, IDE config, at mga halimbawa ng kliyente -> -> 📖 **[A2A Server README](src/lib/a2a/README.md)** — Mga Kasanayan, JSON-RPC na pamamaraan, streaming, at lifecycle ng gawain - -## 🧪 Mga Pagsusuri (Evals) - -Ang OmniRoute ay may kasamang built-in na balangkas ng pagsusuri upang subukan ang kalidad ng pagtugon ng LLM laban sa isang ginintuang hanay. I-access ito sa pamamagitan ng **Analytics → Evals** sa dashboard. - -### Built-in na Golden Set - -Ang pre-loaded na "OmniRoute Golden Set" ay naglalaman ng mga test case para sa: - -- Pagbati, matematika, heograpiya, pagbuo ng code -- Pagsunod sa format ng JSON, pagsasalin, pagbuo ng markdown -- Pagtanggi sa kaligtasan (nakapipinsalang nilalaman), pagbibilang, lohika ng boolean - -### Estratehiya sa Pagsusuri - -| Diskarte | Paglalarawan | Halimbawa | -| ---------- | ------------------------------------------------------------ | -------------------------------- | -| `exact` | Dapat na eksaktong tumugma ang output | `"4"` | -| `contains` | Ang output ay dapat maglaman ng substring (case-insensitive) | `"Paris"` | -| `regex` | Ang output ay dapat tumugma sa regex pattern | `"1.*2.*3"` | -| `custom` | Ang custom na JS function ay nagbabalik ng true/false | `(output) => output.length > 10` | - ---- - -## 📖 Gabay sa Pag-setup - -### Protocol Setup (MCP + A2A) - -<details> -<summary><b>🧩 MCP Setup (Model Context Protocol)</b></summary> - -Simulan ang MCP transport sa stdio mode: - -```bash -omniroute --mcp -``` - -Inirerekomendang daloy ng pagpapatunay: - -1. Ikonekta ang iyong MCP client sa stdio. -2. Patakbuhin ang `omniroute_get_health`. -3. Patakbuhin ang `omniroute_list_combos`. -4. Buksan ang `/dashboard/mcp` para kumpirmahin ang tibok ng puso, aktibidad, at pag-audit. - -Mga kapaki-pakinabang na API para sa automation: - -- `GET /api/mcp/status` -- `GET /api/mcp/tools` -- `GET /api/mcp/audit` -- `GET /api/mcp/audit/stats` - -</details> - -<details> -<summary><b>🤝 A2A Setup (Agent2Agent)</b></summary> - -Tuklasin ang ahente: - -```bash -curl http://localhost:20128/.well-known/agent.json -``` - -Magpadala ng gawain: - -```bash -curl -X POST http://localhost:20128/a2a \ - -H 'content-type: application/json' \ - -d '{"jsonrpc":"2.0","id":"setup-a2a","method":"message/send","params":{"skill":"quota-management","messages":[{"role":"user","content":"Summarize quota status."}]}}' -``` - -Pamahalaan ang lifecycle: - -- `GET /api/a2a/status` -- `GET /api/a2a/tasks` -- `GET /api/a2a/tasks/:id` -- `POST /api/a2a/tasks/:id/cancel` - -Operational UI: - -- `/dashboard/a2a` para sa gawain/estado/pagmamasid sa stream at mga pagkilos sa usok - -</details> - -<details> -<summary><b>🧪 End-to-end protocol validation</b></summary> - -I-validate ang parehong protocol sa mga totoong kliyente: - -```bash -npm run test:protocols:e2e -``` - -Ito ay nagpapatunay: - -- MCP SDK client kumonekta/listahan/tawag -- A2A discovery/send/stream/get/cancel -- Cross-check ang data sa MCP audit at A2A task management API - -</details> - -<details> -<summary><b>💳 Mga Tagabigay ng Subscription</b></summary> - -### Claude Code (Pro/Max) - -```bash -Dashboard → Providers → Connect Claude Code -→ OAuth login → Auto token refresh -→ 5-hour + weekly quota tracking - -Models: - cc/claude-opus-4-6 - cc/claude-sonnet-4-5-20250929 - cc/claude-haiku-4-5-20251001 -``` - -**Pro Tip:** Gamitin ang Opus para sa mga kumplikadong gawain, Soneto para sa bilis. Sinusubaybayan ng OmniRoute ang quota sa bawat modelo! - -### OpenAI Codex (Plus/Pro) - -```bash -Dashboard → Providers → Connect Codex -→ OAuth login (port 1455) -→ 5-hour + weekly reset - -Models: - cx/gpt-5.2-codex - cx/gpt-5.1-codex-max -``` - -#### Pamamahala sa Limitasyon ng Codex Account (5h + Lingguhan) - -Ang bawat Codex account ay mayroon na ngayong mga toggle ng patakaran sa `Dashboard -> Providers`: - -- `5h` (ON/OFF): ipatupad ang 5-hour window threshold policy. -- `Weekly` (ON/OFF): ipatupad ang lingguhang patakaran sa threshold ng window. -- Threshold na gawi: kapag ang isang naka-enable na window ay umabot sa >=90% na paggamit, ang account na iyon ay nilalaktawan. -- Pag-uugali ng pag-ikot: Awtomatikong mga ruta ang OmniRoute patungo sa susunod na karapat-dapat na Codex account. -- I-reset ang gawi: kapag lumipas ang oras ng provider `resetAt`, awtomatikong magiging kwalipikadong muli ang account. - -Mga sitwasyon: - -- `5h ON` + `Weekly ON`: nilalaktawan ang account kapag naabot ng alinmang window ang threshold. -- `5h OFF` + `Weekly ON`: lingguhang paggamit lang ang makakapag-block sa account. -- `5h ON` + `Weekly OFF`: 5 oras na paggamit lang ang makakapag-block sa account. -- `resetAt` ang naipasa: ang account ay awtomatikong pumapasok sa pag-ikot (walang manu-manong muling paganahin). - -### Gemini CLI (LIBRE 180K/buwan!) - -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Pinakamahusay na Halaga:** Malaking libreng tier! Gamitin ito bago ang mga bayad na tier. - -### GitHub Copilot - -```bash -Dashboard → Providers → Connect GitHub -→ OAuth via GitHub -→ Monthly reset (1st of month) - -Models: - gh/gpt-5 - gh/claude-4.5-sonnet - gh/gemini-3-pro -``` - -</details> - -<details> -<summary><b>🔑 API Key Provider</b></summary> - -### NVIDIA NIM (LIBRENG access ng developer — 70+ modelo) - -1. Mag-sign up: [build.nvidia.com](https://build.nvidia.com) -2. Kumuha ng libreng API key (1000 inference credits kasama) -3. Dashboard → Magdagdag ng Provider → NVIDIA NIM: - - API Key: `nvapi-your-key` - -**Mga Modelo:** `nvidia/llama-3.3-70b-instruct`, `nvidia/mistral-7b-instruct`, at 50+ pa - -**Pro Tip:** OpenAI-compatible na API — gumagana nang walang putol sa pagsasalin ng format ng OmniRoute! - -### DeepSeek - -1. Mag-sign up: [platform.deepseek.com](https://platform.deepseek.com) -2. Kunin ang API key -3. Dashboard → Magdagdag ng Provider → DeepSeek - -**Mga Modelo:** `deepseek/deepseek-chat`, `deepseek/deepseek-coder` - -### Groq (Magagamit ang Libreng Tier!) - -1. Mag-sign up: [console.groq.com](https://console.groq.com) -2. Kunin ang API key (kasama ang libreng tier) -3. Dashboard → Magdagdag ng Provider → Groq - -**Mga Modelo:** `groq/llama-3.3-70b`, `groq/mixtral-8x7b` - -**Pro Tip:** Napakabilis na inference — pinakamahusay para sa real-time na coding! - -### OpenRouter (100+ Modelo) - -1. Mag-sign up: [openrouter.ai](https://openrouter.ai) -2. Kunin ang API key -3. Dashboard → Magdagdag ng Provider → OpenRouter - -**Mga Modelo:** I-access ang 100+ na modelo mula sa lahat ng pangunahing provider sa pamamagitan ng iisang API key. - -</details> - -<details> -<summary><b>💰 Mga Murang Provider (Backup)</b></summary> - -### GLM-4.7 (Araw-araw na pag-reset, $0.6/1M) - -1. Mag-sign up: [Zhipu AI](https://open.bigmodel.cn/) -2. Kumuha ng API key mula sa Coding Plan -3. Dashboard → Magdagdag ng API Key: - - Provider: `glm` - - API Key: `your-key` - -**Gamitin:** `glm/glm-4.7` - -**Pro Tip:** Nag-aalok ang Coding Plan ng 3× na quota sa 1/7 na halaga! I-reset araw-araw 10:00 AM. - -### MiniMax M2.1 (5h reset, $0.20/1M) - -1. Mag-sign up: [MiniMax](https://www.minimax.io/) -2. Kunin ang API key -3. Dashboard → Magdagdag ng API Key - -**Gamitin:** `minimax/MiniMax-M2.1` - -**Pro Tip:** Ang pinakamurang opsyon para sa mahabang konteksto (1M token)! - -### Kimi K2 ($9/month flat) - -1. Mag-subscribe: [Moonshot AI](https://platform.moonshot.ai/) -2. Kunin ang API key -3. Dashboard → Magdagdag ng API Key - -**Gamitin:** `kimi/kimi-latest` - -**Pro Tip:** Nakapirming $9/buwan para sa 10M token = $0.90/1M epektibong gastos! - -</details> - -<details> -<summary><b>🆓 LIBRENG Provider (Emergency Backup)</b></summary> - -### Qoder (5 LIBRENG modelo sa pamamagitan ng OAuth) - -```bash -Dashboard → Connect Qoder -→ Qoder OAuth login -→ Unlimited usage - -Models: - if/kimi-k2-thinking - if/qwen3-coder-plus - if/glm-4.7 - if/minimax-m2 - if/deepseek-r1 -``` - -### Qwen (4 na LIBRENG modelo sa pamamagitan ng Device Code) - -```bash -Dashboard → Connect Qwen -→ Device code authorization -→ Unlimited usage - -Models: - qw/qwen3-coder-plus - qw/qwen3-coder-flash -``` - -### Kiro (Claude LIBRE) - -```bash -Dashboard → Connect Kiro -→ AWS Builder ID or Google/GitHub -→ Unlimited usage - -Models: - kr/claude-sonnet-4.5 - kr/claude-haiku-4.5 -``` - -</details> - -<details> -<summary><b>🎨 Lumikha ng mga Combo</b></summary> - -### Halimbawa 1: I-maximize ang Subscription → Murang Backup - -``` -Dashboard → Combos → Create New - -Name: premium-coding -Models: - 1. cc/claude-opus-4-6 (Subscription primary) - 2. glm/glm-4.7 (Cheap backup, $0.6/1M) - 3. minimax/MiniMax-M2.1 (Cheapest fallback, $0.20/1M) - -Use in CLI: premium-coding -``` - -### Halimbawa 2: Libre-Lamang (Zero na Gastos) - -``` -Name: free-combo -Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) - -Cost: $0 forever! -``` - -</details> - -<details> -<summary><b>🔧 CLI Integration</b></summary> - -### Cursor IDE - -``` -Settings → Models → Advanced: - OpenAI API Base URL: http://localhost:20128/v1 - OpenAI API Key: [from OmniRoute dashboard] - Model: cc/claude-opus-4-6 -``` - -### Claude Code - -Gamitin ang pahina ng **CLI Tools** sa dashboard para sa isang pag-click na configuration, o manu-manong i-edit ang `~/.claude/settings.json`. - -### Codex CLI - -```bash -export OPENAI_BASE_URL="http://localhost:20128" -export OPENAI_API_KEY="your-omniroute-api-key" - -codex "your prompt" -``` - -### OpenClaw - -**Pagpipilian 1 — Dashboard (inirerekomenda):** - -``` -Dashboard → CLI Tools → OpenClaw → Select Model → Apply -``` - -**Pagpipilian 2 — Manwal:** I-edit ang `~/.openclaw/openclaw.json`: - -```json -{ - "models": { - "providers": { - "omniroute": { - "baseUrl": "http://127.0.0.1:20128/v1", - "apiKey": "sk_omniroute", - "api": "openai-completions" - } - } - } -} -``` - -> **Tandaan:** Ang OpenClaw ay gumagana lamang sa lokal na OmniRoute. Gamitin ang `127.0.0.1` sa halip na `localhost` upang maiwasan ang mga isyu sa paglutas ng IPv6. - -### Cline / Magpatuloy / RooCode - -``` -Settings → API Configuration: - Provider: OpenAI Compatible - Base URL: http://localhost:20128/v1 - API Key: [from OmniRoute dashboard] - Model: if/kimi-k2-thinking -``` - -### OpenCode - -**Hakbang 1:** Idagdag ang OmniRoute bilang custom na provider: - -```bash -opencode -/connect -# Select "Other" → Enter ID: "omniroute" → Enter your OmniRoute API key -``` - -**Hakbang 2:** Lumikha/mag-edit ng `opencode.json` sa ugat ng iyong proyekto: - -```json -{ - "$schema": "https://opencode.ai/config.json", - "provider": { - "omniroute": { - "npm": "@ai-sdk/openai-compatible", - "name": "OmniRoute", - "options": { - "baseURL": "http://localhost:20128/v1" - }, - "models": { - "cc/claude-sonnet-4-20250514": { "name": "Claude Sonnet 4" }, - "gg/gemini-2.5-pro": { "name": "Gemini 2.5 Pro" }, - "if/kimi-k2-thinking": { "name": "Kimi K2 (Free)" } - } - } - } -} -``` - -**Hakbang 3:** Piliin ang modelo sa OpenCode: - -```bash -/models -# Select any OmniRoute model from the list -``` - -> **Tip:** Magdagdag ng anumang modelong available sa iyong OmniRoute `/v1/models` endpoint sa seksyong `models`. Gamitin ang format na `provider/model-id` mula sa iyong OmniRoute dashboard. - -</details> - ---- - -## 🐛 Pag-troubleshoot - -<details> -<summary><b>Mag-click upang palawakin ang gabay sa pag-troubleshoot</b></summary> - -**"Ang modelo ng wika ay hindi nagbigay ng mga mensahe"** - -- Naubos na ang quota ng provider → Suriin ang tracker ng quota ng dashboard -- Solusyon: Gumamit ng combo fallback o lumipat sa mas murang tier - -**Paglilimita sa rate** - -- Out na ang quota ng subscription → Fallback sa GLM/MiniMax -- Magdagdag ng combo: `cc/claude-opus-4-6 → glm/glm-4.7 → if/kimi-k2-thinking` - -**Nag-expire ang token ng OAuth** - -- Auto-refresh ng OmniRoute -- Kung magpapatuloy ang mga isyu: Dashboard → Provider → Muling kumonekta - -**Mataas na gastos** - -- Suriin ang mga istatistika ng paggamit sa Dashboard → Mga Gastos -- Ilipat ang pangunahing modelo sa GLM/MiniMax -- Gumamit ng libreng tier (Gemini CLI, Qoder) para sa mga hindi kritikal na gawain - -**Mali ang mga dashboard/API port** - -- `PORT` ay ang canonical base port (at API port bilang default) -- Ang `API_PORT` ay nag-o-override lamang sa OpenAI-compatible na API listener -- `DASHBOARD_PORT` override lang ang dashboard/Next.js listener -- Itakda ang `NEXT_PUBLIC_BASE_URL` sa iyong dashboard/pampublikong URL (para sa mga OAuth callback) - -**Mga error sa cloud sync** - -- I-verify ang `BASE_URL` na mga puntos sa iyong running instance -- I-verify ang `CLOUD_URL` na mga puntos sa iyong inaasahang cloud endpoint -- Panatilihing nakahanay ang mga value ng `NEXT_PUBLIC_*` sa mga value sa gilid ng server - -**Hindi gumagana ang unang pag-login** - -- Tingnan ang `INITIAL_PASSWORD` sa `.env` -- Kung hindi nakatakda, ang fallback na password ay `123456` - -**Walang mga log ng kahilingan** - -- Itakda ang `ENABLE_REQUEST_LOGS=true` sa `.env` - -**Ang pagsubok sa koneksyon ay nagpapakita ng "Di-wasto" para sa mga provider na katugma sa OpenAI** - -- Maraming provider ang hindi naglalantad ng `/models` endpoint -- Kasama sa OmniRoute v1.0.6+ ang fallback validation sa pamamagitan ng mga pagkumpleto ng chat -- Tiyaking may kasamang `/v1` suffix ang base URL - -### 🔐 OAuth sa isang Remote Server - -<a name="oauth-on-a-remote-server"></a> -<a name="oauth-em-servidor-remoto"></a> - -> **⚠️ Mahalaga para sa mga user na nagpapatakbo ng OmniRoute sa isang VPS, Docker, o anumang malayuang server** - -#### Bakit nabigo ang Antigravity / Gemini CLI OAuth sa mga malalayong server? - -Ang **Antigravity** at **Gemini CLI** provider ay gumagamit ng **Google OAuth 2.0**. Kinakailangan ng Google ang `redirect_uri` sa daloy ng OAuth upang eksaktong tumugma sa isa sa mga pre-registered na URI sa Google Cloud Console ng app. - -Ang mga kredensyal ng OAuth na naka-bundle sa OmniRoute ay nakarehistro **para sa `localhost` lamang**. Kapag na-access mo ang OmniRoute sa isang malayuang server (hal. `https://omniroute.myserver.com`), tinatanggihan ng Google ang pagpapatotoo gamit ang: - -``` -Error 400: redirect_uri_mismatch -``` - -#### Solusyon: I-configure ang sarili mong mga kredensyal sa OAuth - -Kailangan mong gumawa ng **OAuth 2.0 Client ID** sa Google Cloud Console gamit ang URI ng iyong server. - -#### Hakbang-hakbang - -**1. Buksan ang Google Cloud Console** - -Pumunta sa: [https://console.cloud.google.com/apis/credentials](https://console.cloud.google.com/apis/credentials) - -**2. Gumawa ng bagong OAuth 2.0 Client ID** - -- I-click ang **"+ Lumikha ng Mga Kredensyal"** → **"OAuth client ID"** -- Uri ng application: **"Web application"** -- Pangalan: kahit anong gusto mo (hal. `OmniRoute Remote`) - -**3. Magdagdag ng mga Awtorisadong Redirect URI** - -Sa field na **"Authorized redirect URIs"**, idagdag ang: - -``` -https://your-server.com/callback -``` - -> Palitan ang `your-server.com` ng domain o IP ng iyong server (isama ang port kung kinakailangan, hal. `http://45.33.32.156:20128/callback`). - -**4. I-save at kopyahin ang mga kredensyal** - -Pagkatapos gumawa, ipapakita ng Google ang **Client ID** at **Client Secret**. - -**5. Magtakda ng mga variable ng kapaligiran** - -Sa iyong `.env` (o mga variable ng kapaligiran ng Docker): - -```bash -# For Antigravity: -ANTIGRAVITY_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com -ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-your-secret - -# For Gemini CLI: -GEMINI_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com -GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -``` - -**6. I-restart ang OmniRoute** - -```bash -# npm: -npm run dev - -# Docker: -docker restart omniroute -``` - -**7. Subukang kumonekta muli** - -Dashboard → Mga Provider → Antigravity (o Gemini CLI) → OAuth - -Magre-redirect na ngayon ang Google nang tama sa `https://your-server.com/callback`. - ---- - -#### Pansamantalang solusyon (nang walang mga custom na kredensyal) - -Kung hindi mo gustong mag-set up ng sarili mong mga kredensyal sa ngayon, maaari mo pa ring gamitin ang **manual na daloy ng URL**: - -1. Binubuksan ng OmniRoute ang URL ng awtorisasyon ng Google -2. Pagkatapos magpahintulot, sinusubukan ng Google na mag-redirect sa `localhost` (na nabigo sa remote server) -3. **Kopyahin ang buong URL** mula sa address bar ng iyong browser (kahit na hindi naglo-load ang page) -4. I-paste ang URL na iyon sa field na ipinapakita sa OmniRoute connection modal -5. I-click ang **"Kumonekta"** - -> Gumagana ito dahil valid ang authorization code sa URL kahit na-load man ang redirect page. - ---- - -<details> -<summary><b>🇧🇷 Versão em Português</b></summary> - -#### Para sa que o OAuth do Antigravity / Gemini CLI falha em servidores remotos? - -Os provedores **Antigravity** at **Gemini CLI** gamit ang **Google OAuth 2.0** para sa autenticação. O Google exige que a `redirect_uri` use no fluxo OAuth seja **exatamente** uma das URIs pré-cadastradas no Google Cloud Console do aplicativo. - -Bilang credenciais OAuth embutidas no OmniRoute estão cadastradas **apenas para sa `localhost`**. Quando você acessa o OmniRoute em um servidor remoto (hal: `https://omniroute.meuservidor.com`), o Google rejeita a autenticação com: - -``` -Error 400: redirect_uri_mismatch -``` - -#### Solução: I-configure ang suas próprias credenciais OAuth - -Você precisa criar um **OAuth 2.0 Client ID** walang Google Cloud Console com a URI do seu servidor. - -#### Passo a passo - -**1. Mag-access sa Google Cloud Console** - -Abra: [https://console.cloud.google.com/apis/credentials](https://console.cloud.google.com/apis/credentials) - -**2. Crie um novo OAuth 2.0 Client ID** - -- Clique em **"+ Lumikha ng Mga Kredensyal"** → **"OAuth client ID"** -- Tipo de aplicativo: **"Web application"** -- Pangalan: escolha qualquer nome (hal: `OmniRoute Remote`) - -**3. Idagdag bilang Mga Awtorisadong URI sa Pag-redirect** - -Walang campo **"Mga Awtorisadong URI sa pag-redirect"**, idagdag: - -``` -https://seu-servidor.com/callback -``` - -> Substitua `seu-servidor.com` pelo domínio ou IP do seu servidor (kasama ang porta se necessário, hal: `http://45.33.32.156:20128/callback`). - -**4. I-save at kopyahin bilang kredensyal** - -Após criar, o Google mostrará o **Client ID** at ** Client Secret**. - -**5. I-configure bilang variáveis de ambiente** - -No seu `.env` (ou nas variáveis de ambiente do Docker): - -```bash -# Para Antigravity: -ANTIGRAVITY_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com -ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret - -# Para Gemini CLI: -GEMINI_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com -GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -``` - -**6. Reinicie o OmniRoute** - -```bash -# Se usando npm: -npm run dev - -# Se usando Docker: -docker restart omniroute -``` - -**7. Tente conectar novamente** - -Dashboard → Mga Provider → Antigravity (ou Gemini CLI) → OAuth - -Agora o Google redirectionará corretamente para sa `https://seu-servidor.com/callback` at a autenticação funcionará. - ---- - -#### Workaround temporário (sem configurar credenciais próprias) - -Se não quiser criar credenciais próprias agora, may posibilidad na magamit o fluxo **manual de URL**: - -1. OmniRoute abrirá a URL de authorização do Google -2. Após você authorizar, o Google tentará redirectionar para sa `localhost` (que falha no servidor remoto) -3. **Kopyahin ang isang URL completa** sa barra de endereço do seu browser (mesmo que a página não carregue) -4. Cole essa URL no campo que aparece no modal de conexão do OmniRoute -5. Clique em **"Kumonekta"** - -> Ang workaround na ito ay gumagana sa pamamagitan ng código de authorização na URL ay maaaring mag-redirect sa iyong carregado ou não. - -</details> - ---- - -</details> - -## 🛠️ Tech Stack - -<details> -<summary><b>Mag-click upang palawakin ang mga detalye ng tech stack</b></summary> - -- **Runtime**: Node.js 18–22 LTS (⚠️ Node.js 24+ ay **hindi suportado** — `better-sqlite3` native binary ay hindi tugma) -- **Language**: TypeScript 5.9 — **100% TypeScript** sa `src/` at `open-sse/` (zero `any` sa mga core module mula noong v2.0) -- **Framework**: Next.js 16 + React 19 + Tailwind CSS 4 -- **Database**: LowDB (JSON) + SQLite (domain state + proxy logs + MCP audit + routing decisions) -- **Schemas**: Zod (MCP tool I/O validation, mga kontrata ng API) -- **Mga Protocol**: MCP (stdio/HTTP) + A2A v0.3 (JSON-RPC 2.0 + SSE) -- **Streaming**: Mga Kaganapang Ipinadala ng Server (SSE) -- **Auth**: OAuth 2.0 (PKCE) + JWT + API Keys + MCP Scoped Authorization -- **Pagsubok**: Node.js test runner + Vitest (900+ test kasama ang unit, integration, E2E) -- **CI/CD**: GitHub Actions (auto npm publish + Docker Hub on release) -- **Website**: [omniroute.online](https://omniroute.online) -- **Package**: [npmjs.com/package/omniroute](https://www.npmjs.com/package/omniroute) -- **Docker**: [hub.docker.com/r/diegosouzapw/omniroute](https://hub.docker.com/r/diegosouzapw/omniroute) -- **Resilience**: Circuit breaker, exponential backoff, anti-thundering herd, TLS spoofing, auto-combo self-healing - -</details> - ---- - -## 📖 Dokumentasyon - -| Dokumento | Paglalarawan | -| ---------------------------------------------- | -------------------------------------------------------- | -| [User Guide](docs/USER_GUIDE.md) | Mga provider, combo, CLI integration, deployment | -| [API Reference](docs/API_REFERENCE.md) | Lahat ng mga endpoint na may mga halimbawa | -| [MCP Server](open-sse/mcp-server/README.md) | 16 MCP tool, IDE configs, Python/TS/Go client | -| [A2A Server](src/lib/a2a/README.md) | JSON-RPC 2.0 protocol, kasanayan, streaming, gawain mgmt | -| [Auto-Combo Engine](docs/auto-combo.md) | 6-factor scoring, mode pack, self-healing | -| [Troubleshooting](docs/TROUBLESHOOTING.md) | Mga karaniwang problema at solusyon | -| [Architecture](docs/ARCHITECTURE.md) | Arkitektura ng system at mga panloob | -| [Contributing](CONTRIBUTING.md) | Pag-setup at mga alituntunin ng pag-unlad | -| [OpenAPI Spec](docs/openapi.yaml) | OpenAPI 3.0 na detalye | -| [Security Policy](SECURITY.md) | Pag-uulat ng kahinaan at mga kasanayan sa seguridad | -| [VM Deployment](docs/VM_DEPLOYMENT_GUIDE.md) | Kumpletong gabay: VM + nginx + Cloudflare setup | -| [Features Gallery](docs/FEATURES.md) | Visual dashboard tour na may mga screenshot | -| [Release Checklist](docs/RELEASE_CHECKLIST.md) | Mga hakbang sa pagpapatunay bago ang paglabas | - ---- - -## 🗺️ Roadmap - -Ang OmniRoute ay may **210+ feature na binalak** sa maraming yugto ng pag-unlad. Narito ang mga pangunahing lugar: - -| Kategorya | Mga Nakaplanong Tampok | Mga Highlight | -| -------------------------------- | ---------------------- | ------------------------------------------------------------------------------------------------- | -| 🧠 **Routing at Intelligence** | 25+ | Lowest-latency routing, tag-based na routing, quota preflight, P2C account selection | -| 🔒 **Seguridad at Pagsunod** | 20+ | SSRF hardening, credential cloaking, rate-limit sa bawat endpoint, management key scoping | -| 📊 **Pagmamasid** | 15+ | Pagsasama ng OpenTelemetry, real-time na pagsubaybay sa quota, pagsubaybay sa gastos bawat modelo | -| 🔄 **Mga Pagsasama ng Provider** | 20+ | Dynamic na model registry, provider cooldowns, multi-account Codex, Copilot quota parsing | -| ⚡ **Pagganap** | 15+ | Dual cache layer, prompt cache, response cache, streaming keepalive, batch API | -| 🌐 **Ecosystem** | 10+ | WebSocket API, config hot-reload, distributed config store, commercial mode | - -### 🔜 Malapit na - -- 🔗 **OpenCode Integration** — Suporta ng katutubong provider para sa OpenCode AI coding IDE -- 🔗 **TRAE Integration** — Buong suporta para sa balangkas ng pag-develop ng TRAE AI -- 📦 **Batch API** — Asynchronous na pagproseso ng batch para sa maramihang kahilingan -- 🎯 **Tag-Based Routing** — Mga kahilingan sa ruta batay sa mga custom na tag at metadata -- 💰 **Diskarte sa Pinakamababang Gastos** — Awtomatikong piliin ang pinakamurang available na provider - -> 📝 Available ang buong mga detalye ng feature sa [**OMNI_TOKEN_342**](docs/new-features/) (217 detalyadong spec) - ---- - -## 👥 Mga nag-aambag - -[![Contributors](https://contrib.rocks/image?repo=diegosouzapw/OmniRoute&max=100&columns=20&anon=1)](https://github.com/diegosouzapw/OmniRoute/graphs/contributors) - -### Paano Mag-ambag - -1. I-fork ang repositoryo -2. Lumikha ng iyong sangay ng tampok (`git checkout -b feature/amazing-feature`) -3. Ibigay ang iyong mga pagbabago (`git commit -m 'Add amazing feature'`) -4. Itulak sa sangay (`git push origin feature/amazing-feature`) -5. Magbukas ng Pull Request - -Tingnan ang [CONTRIBUTING.md](CONTRIBUTING.md) para sa mga detalyadong alituntunin. - -### Naglalabas ng Bagong Bersyon - -```bash -# Create a release — npm publish happens automatically -gh release create v2.0.0 --title "v2.0.0" --generate-notes -``` - ---- - -## 📊 Kasaysayan ng Bituin - -## Stargazers sa paglipas ng panahon - -## [![Stargazers over time](https://starchart.cc/diegosouzapw/OmniRoute.svg?variant=adaptive)](https://starchart.cc/diegosouzapw/OmniRoute) - -## 🙏 Pasasalamat - -Espesyal na pasasalamat kay **[9router](https://github.com/decolua/9router)** ni **[decolua](https://github.com/decolua)** — ang orihinal na proyektong nagbigay inspirasyon sa tinidor na ito. Bumubuo ang OmniRoute sa hindi kapani-paniwalang pundasyong iyon na may mga karagdagang feature, multi-modal na API, at buong TypeScript na muling pagsulat. - -Espesyal na salamat sa **[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)** — ang orihinal na pagpapatupad ng Go na nagbigay inspirasyon sa JavaScript port na ito. - ---- - -## 📄 Lisensya - -Lisensya ng MIT - tingnan ang [LICENSE](LICENSE) para sa mga detalye. - ---- - -<div align="center"> - <sub>Built with ❤️ para sa mga developer na nagko-code 24/7</sub> - <br/> - <sub><a href="https://omniroute.online">omniroute.online</a></sub> -</div> -<!-- Pinagana ang Mga Talakayan sa GitHub para sa Q&A ng komunidad --> +👉 **[Read the Documentation here](docs/i18n/phi/README.md)** diff --git a/README.pl.md b/README.pl.md index 272673a1e2..7a2f9c9c70 100644 --- a/README.pl.md +++ b/README.pl.md @@ -1,2077 +1,5 @@ -# 🚀 OmniRoute — darmowa bramka AI +# 🌐 OmniRoute (pl) -### Nigdy nie przestawaj kodować. Inteligentne przekierowywanie do **BEZPŁATNYCH i tanich modeli AI** z automatycznym powrotem. +The documentation has been formalized and moved to our centralized i18n structure. -_Twój uniwersalny serwer proxy API — jeden punkt końcowy, ponad 67 dostawców, zero przestojów. Teraz z orkiestracją agentów **MCP i A2A**._ - -**Ukończenie czatu • Osadzanie • Generowanie obrazu • Wideo • Muzyka • Dźwięk • Zmiana rankingu • **Wyszukiwanie w Internecie** • Serwer MCP • Protokół A2A • 100% TypeScript** - ---- - -<div align="center"> - -[![npm version](https://img.shields.io/npm/v/omniroute?color=cb3837&logo=npm)](https://www.npmjs.com/package/omniroute) -[![npm downloads](https://img.shields.io/npm/dm/omniroute?color=cb3837&logo=npm&label=npm%20downloads)](https://www.npmjs.com/package/omniroute) -[![Docker Hub](https://img.shields.io/docker/v/diegosouzapw/omniroute?label=Docker%20Hub&logo=docker&color=2496ED)](https://hub.docker.com/r/diegosouzapw/omniroute) -[![Docker Pulls](https://img.shields.io/docker/pulls/diegosouzapw/omniroute?logo=docker&color=2496ED&label=docker%20pulls)](https://hub.docker.com/r/diegosouzapw/omniroute) -[![License](https://img.shields.io/github/license/diegosouzapw/OmniRoute)](https://github.com/diegosouzapw/OmniRoute/blob/main/LICENSE) -[![Website](https://img.shields.io/badge/Website-omniroute.online-blue?logo=google-chrome&logoColor=white)](https://omniroute.online) -[![WhatsApp](https://img.shields.io/badge/WhatsApp-Community-25D366?logo=whatsapp&logoColor=white)](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) - -[🌐 Website](https://omniroute.online) • [🚀 Quick Start](#-quick-start) • [💡 Features](#-key-features) • [📖 Docs](#-documentation) • [💰 Pricing](#-pricing-at-a-glance) • [💬 WhatsApp](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) - -</div> - -🌐 **Dostępne w:** 🇺🇸 [English](README.md) | 🇧🇷 [Português (Brasil)](docs/i18n/pt-BR/README.md) | 🇪🇸 [Español](docs/i18n/es/README.md) | 🇫🇷 [Français](docs/i18n/fr/README.md) | 🇮🇹 [Italiano](docs/i18n/it/README.md) | 🇷🇺 [Русский](docs/i18n/ru/README.md) | 🇨🇳 [中文 (简体)](docs/i18n/zh-CN/README.md) | 🇩🇪 [Deutsch](docs/i18n/de/README.md) | 🇮🇳 [हिन्दी](docs/i18n/in/README.md) | 🇹🇭 [ไทย](docs/i18n/th/README.md) | 🇺🇦 [Українська](docs/i18n/uk-UA/README.md) | 🇸🇦 [العربية](docs/i18n/ar/README.md) | 🇯🇵 [日本語](docs/i18n/ja/README.md) | 🇻🇳 [Tiếng Việt](docs/i18n/vi/README.md) | 🇧🇬 [Български](docs/i18n/bg/README.md) | 🇩🇰 [Dansk](docs/i18n/da/README.md) | 🇫🇮 [Suomi](docs/i18n/fi/README.md) | 🇮🇱 [עברית](docs/i18n/he/README.md) | 🇭🇺 [Magyar](docs/i18n/hu/README.md) | 🇮🇩 [Bahasa Indonesia](docs/i18n/id/README.md) | 🇰🇷 [한국어](docs/i18n/ko/README.md) | 🇲🇾 [Bahasa Melayu](docs/i18n/ms/README.md) | 🇳🇱 [Nederlands](docs/i18n/nl/README.md) | 🇳🇴 [Norsk](docs/i18n/no/README.md) | 🇵🇹 [Português (Portugal)](docs/i18n/pt/README.md) | 🇷🇴 [Română](docs/i18n/ro/README.md) | 🇵🇱 [Polski](docs/i18n/pl/README.md) | 🇸🇰 [Slovenčina](docs/i18n/sk/README.md) | 🇸🇪 [Svenska](docs/i18n/sv/README.md) | 🇵🇭 [Filipino](docs/i18n/phi/README.md) | 🇨🇿 [Čeština](docs/i18n/cs/README.md) - ---- - -## 🆕 Co nowego w wersji 3.0.0 - -> **Aktualizacja z wersji 2.9.5?** — Wszystkie zmiany znajdziesz w [full CHANGELOG](CHANGELOG.md#300--2026-03-22-release-candidate--not-yet-merged-to-main). - -| Powierzchnia | Zmień | -| ----------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| 🔒 **Bezpieczeństwo CodeQL** | Naprawiono ponad 10 alertów CodeQL: ponowne wykonanie wielomianu, niepewna losowość, naprawa poprzez wstrzykiwanie powłoki | -| ✅ **Weryfikacja trasy** | Wszystkie 176 tras API zostało teraz zweryfikowanych przy użyciu schematów Zoda + `validateBody()` — CI `check:route-validation:t06` karnety | -| 🐛 **Wyciek tagu omniModel** | Wewnętrzne tagi `<omniModel>` nie wyciekają już do klientów w odpowiedziach strumieniowych SSE (#585) | -| 🔑 **API kluczy zarejestrowanych** | Automatyczne udostępnianie kluczy API za pośrednictwem `POST /api/v1/registered-keys` z egzekwowaniem limitów dla dostawcy/konta, idempotencją, pamięcią SHA-256 i opcjonalnym raportowaniem problemów w serwisie GitHub | -| 👁️ **Scoped API Key Reveal** 🆕 | Opt-in recovery of API keys via `ALLOW_API_KEY_REVEAL` | -| 🎨 **Ikony dostawców** | Ponad 130 logo dostawców za pośrednictwem `@lobehub/icons` (SVG) w formacie PNG → ogólny łańcuch awaryjny | -| 🔄 **Automatyczna synchronizacja modelu** | 24-godzinny harmonogram i ręczny przełącznik interfejsu użytkownika do synchronizacji list modeli dla wbudowanych i niestandardowych dostawców kompatybilnych z OpenAI | -| 🌐 **OpenCode Zen/Go** | Dwóch nowych dostawców od @kang-heewon poprzez PR #530: poziom bezpłatny + poziom subskrypcji przez `OpencodeExecutor` | -| 🐛 **Gemini CLI OAuth** | Błąd, który można podjąć, gdy w Dockerze brakuje `GEMINI_OAUTH_CLIENT_SECRET` (był to tajemniczy błąd Google) | -| 🐛 **Konfiguracja OpenCode** | `saveOpenCodeConfig()` teraz poprawnie zapisuje TOML do `XDG_CONFIG_HOME` | -| 🐛 **Nadpisanie przypiętego modelu** | `body.model` poprawnie ustawiony na `pinnedModel` w przypadku ochrony pamięci podręcznej kontekstu | -| 🐛 **Kodeks/pętla Claude** | `tool_result` bloki są teraz konwertowane na tekst, aby zatrzymać nieskończone pętle | -| 🐛 **Przekierowanie logowania** | Logowanie nie zawiesza się już po pominięciu konfiguracji hasła | -| 🐛 **Ścieżki systemu Windows** | Ścieżki MSYS2/Git-Bash (`/c/...`) automatycznie znormalizowane do `C:\...` | - ---- - -## 🖼️ Panel główny - -<div align="center"> - <img src="./docs/screenshots/MainOmniRoute.png" alt="OmniRoute Dashboard" width="800"/> -</div> - ---- - -## 📸 Podgląd panelu - -<details> -<summary><b>Kliknij, aby zobaczyć zrzuty ekranu panelu kontrolnego</b></summary> - -| Strona | Zrzut ekranu | -| ------------------------- | ------------------------------------------------- | -| **Dostawcy** | ![Providers](docs/screenshots/01-providers.png) | -| **Kombinacje** | ![Combos](docs/screenshots/02-combos.png) | -| **Analiza** | ![Analytics](docs/screenshots/03-analytics.png) | -| **Zdrowie** | ![Health](docs/screenshots/04-health.png) | -| **Tłumacz** | ![Translator](docs/screenshots/05-translator.png) | -| **Ustawienia** | ![Settings](docs/screenshots/06-settings.png) | -| **Narzędzia CLI** | ![CLI Tools](docs/screenshots/07-cli-tools.png) | -| **Dzienniki użytkowania** | ![Usage](docs/screenshots/08-usage.png) | -| **Punkty końcowe** | ![Endpoints](docs/screenshots/09-endpoint.png) | - -</details> - ---- - -### 🤖 Bezpłatny dostawca AI dla Twoich ulubionych agentów kodujących - -_Połącz dowolne narzędzie IDE lub CLI oparte na sztucznej inteligencji poprzez OmniRoute — bezpłatną bramę API dla nieograniczonego kodowania._ - - <table> - <tr> - <td align="center" width="110"> - <a href="https://github.com/openclaw/openclaw"> - <img src="./public/providers/openclaw.png" alt="OpenClaw" width="48"/><br/> - <b>OpenClaw</b> - </a><br/> - <sub>⭐ 205K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/HKUDS/nanobot"> - <img src="./public/providers/nanobot.png" alt="NanoBot" width="48"/><br/> - <b>NanoBot</b> - </a><br/> - <sub>⭐ 20.9K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/sipeed/picoclaw"> - <img src="./public/providers/picoclaw.jpg" alt="PicoClaw" width="48"/><br/> - <b>PicoClaw</b> - </a><br/> - <sub>⭐ 14.6K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/zeroclaw-labs/zeroclaw"> - <img src="./public/providers/zeroclaw.png" alt="ZeroClaw" width="48"/><br/> - <b>ZeroClaw</b> - </a><br/> - <sub>⭐ 9.9K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/nearai/ironclaw"> - <img src="./public/providers/ironclaw.png" alt="IronClaw" width="48"/><br/> - <b>IronClaw</b> - </a><br/> - <sub>⭐ 2.1K</sub> - </td> - </tr> - <tr> - <td align="center" width="110"> - <a href="https://github.com/anomalyco/opencode"> - <img src="./public/providers/opencode.svg" alt="OpenCode" width="48"/><br/> - <b>OpenCode</b> - </a><br/> - <sub>⭐ 106K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/openai/codex"> - <img src="./public/providers/codex.png" alt="Codex CLI" width="48"/><br/> - <b>Codex CLI</b> - </a><br/> - <sub>⭐ 60.8K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/anthropics/claude-code"> - <img src="./public/providers/claude.png" alt="Claude Code" width="48"/><br/> - <b>Claude Code</b> - </a><br/> - <sub>⭐ 67.3K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/google-gemini/gemini-cli"> - <img src="./public/providers/gemini-cli.png" alt="Gemini CLI" width="48"/><br/> - <b>Gemini CLI</b> - </a><br/> - <sub>⭐ 94.7K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/Kilo-Org/kilocode"> - <img src="./public/providers/kilocode.png" alt="Kilo Code" width="48"/><br/> - <b>Kilo Code</b> - </a><br/> - <sub>⭐ 15.5K</sub> - </td> - </tr> - </table> - -<sub>📡 Wszyscy agenci łączą się przez <code>http://localhost:20128/v1</code> lub <code>http://cloud.omniroute.online/v1</code> — jedna konfiguracja, nieograniczona liczba modeli i limit</sub> - ---- - -## 🤔 Dlaczego OmniRoute? - -**Przestań marnować pieniądze i przekraczać limity:** - -- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Limit subskrypcji wygasa niewykorzystany co miesiąc -- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Limity szybkości zatrzymują Cię w połowie kodowania -- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Drogie interfejsy API (20-50 USD miesięcznie na dostawcę) -- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Ręczne przełączanie pomiędzy dostawcami - -**OmniRoute rozwiązuje ten problem:** - -- ✅ **Maksymalizuj liczbę subskrypcji** - Śledź limit, wykorzystaj każdy bit przed zresetowaniem -- ✅ **Automatyczny powrót** - Subskrypcja → Klucz API → Tani → Bezpłatny, zero przestojów -- ✅ **Wiele kont** - Praca okrężna pomiędzy kontami każdego dostawcy -- ✅ **Uniwersalny** - Działa z Claude Code, Codex, Gemini CLI, Cursor, Cline, OpenClaw i dowolnym narzędziem CLI - ---- - -## 📧 Wsparcie - -> 💬 **Dołącz do naszej społeczności!** [WhatsApp Group](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) — Uzyskaj pomoc, dziel się wskazówkami i bądź na bieżąco. - -- **Strona internetowa**: [omniroute.online](https://omniroute.online) -- **GitHub**: [github.com/diegosouzapw/OmniRoute](https://github.com/diegosouzapw/OmniRoute) -- **Problemy**: [github.com/diegosouzapw/OmniRoute/issues](https://github.com/diegosouzapw/OmniRoute/issues) -- **WhatsApp**: [Community Group](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) -- **Wspieranie**: zobacz [CONTRIBUTING.md](CONTRIBUTING.md), otwórz PR lub wybierz `good first issue` -- **Oryginalny projekt**: [9router by decolua](https://github.com/decolua/9router) - -### 🐛 Zgłaszasz błąd? - -Otwierając zgłoszenie, uruchom komendę system-info i załącz wygenerowany plik: - -```bash -npm run system-info -``` - -Spowoduje to wygenerowanie pliku `system-info.txt` z wersją Node.js, wersją OmniRoute, szczegółami systemu operacyjnego, zainstalowanymi narzędziami CLI (qoder, gemini, claude, codex, antygrawitacja, droid itp.), statusem Docker/PM2 i pakietami systemowymi — wszystko, czego potrzebujemy, aby szybko odtworzyć problem. Dołącz plik bezpośrednio do swojego zgłoszenia w GitHubie. - ---- - -## 🔄 Jak to działa - -``` -┌─────────────┐ -│ Your CLI │ (Claude Code, Codex, Gemini CLI, OpenClaw, Cursor, Cline...) -│ Tool │ -└──────┬──────┘ - │ http://localhost:20128/v1 - ↓ -┌─────────────────────────────────────────┐ -│ OmniRoute (Smart Router) │ -│ • Format translation (OpenAI ↔ Claude) │ -│ • Quota tracking + Embeddings + Images │ -│ • Auto token refresh │ -└──────┬──────────────────────────────────┘ - │ - ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex, Gemini CLI - │ ↓ quota exhausted - ├─→ [Tier 2: API KEY] DeepSeek, Groq, xAI, Mistral, NVIDIA NIM, etc. - │ ↓ budget limit - ├─→ [Tier 3: CHEAP] GLM ($0.6/1M), MiniMax ($0.2/1M) - │ ↓ budget limit - └─→ [Tier 4: FREE] Qoder, Qwen, Kiro (unlimited) - -Result: Never stop coding, minimal cost -``` - ---- - -## 🎯 Co rozwiązuje OmniRoute — 30 rzeczywistych problemów i przypadków użycia - -> **Każdy programista korzystający z narzędzi AI codziennie spotyka się z tymi problemami.** OmniRoute został stworzony, aby rozwiązać je wszystkie — od przekroczeń kosztów po blokady regionalne, od zepsutych przepływów OAuth po operacje protokołów i obserwowalność przedsiębiorstwa. - -<details> -<summary><b>💸 1. „Płacę za kosztowną subskrypcję, ale nadal przeszkadzają mi limity”</b></summary> - -Programiści płacą 20–200 USD miesięcznie za Claude Pro, Codex Pro lub GitHub Copilot. Nawet płacąc, limit ma pułap – 5 godzin użytkowania, limity tygodniowe lub limity stawek za minutę. W połowie sesji kodowania dostawca przestaje odpowiadać, a programista traci płynność i produktywność. - -**Jak rozwiązuje to OmniRoute:** - -- **Inteligentny 4-poziomowy powrót** — Jeśli limit subskrypcji się wyczerpie, automatycznie przekierowuje do klucza API → Tani → Bezpłatny bez ręcznej interwencji -- **Śledzenie limitów w czasie rzeczywistym** — Pokazuje zużycie tokenów w czasie rzeczywistym z resetowanym odliczaniem (5 godzin, codziennie, co tydzień) -- **Obsługa wielu kont** — Wiele kont na dostawcę z funkcją automatycznego przełączania między kontami — gdy skończy się jedno, następuje przejście do następnego -- **Niestandardowe kombinacje** — Konfigurowalne łańcuchy rezerwowe z 6 strategiami równoważenia (pierwsze wypełnienie, działanie okrężne, P2C, losowe, najrzadziej używane, zoptymalizowane pod względem kosztów) -- **Przydziały biznesowe Kodeksu** — monitorowanie przydziałów przestrzeni roboczej firmy/zespołu bezpośrednio na pulpicie nawigacyjnym - -</details> - -<details> -<summary><b>🔌 2. „Muszę korzystać z wielu dostawców, ale każdy ma inny interfejs API”</b></summary> - -OpenAI używa jednego formatu, Claude (Anthropic) używa innego, Gemini jeszcze innego. Jeśli programista chce przetestować modele od różnych dostawców lub korzystać z nich w trybie awaryjnym, musi ponownie skonfigurować pakiety SDK, zmienić punkty końcowe i poradzić sobie z niekompatybilnymi formatami. Dostawcy niestandardowi (FriendLI, NIM) mają niestandardowe punkty końcowe modelu. - -**Jak rozwiązuje to OmniRoute:** - -- **Ujednolicony punkt końcowy** — pojedynczy `http://localhost:20128/v1` służy jako serwer proxy dla wszystkich ponad 67 dostawców -- **Tłumaczenie formatu** — Automatyczne i przejrzyste: OpenAI ↔ Claude ↔ Gemini ↔ API odpowiedzi -- **Oczyszczanie odpowiedzi** — usuwa niestandardowe pola (`x_groq`, `usage_breakdown`, `service_tier`), które psują OpenAI SDK v1.83+ -- **Normalizacja ról** — Konwertuje `developer` → `system` dla dostawców innych niż OpenAI; `system` → `user` dla GLM/ERNIE -- **Pomyśl o ekstrakcji tagów** — wyodrębnia bloki `<think>` z modeli takich jak DeepSeek R1 do standaryzowanego `reasoning_content` -- **Strukturalne dane wyjściowe dla Gemini** — `json_schema` → `responseMimeType`/`responseSchema` automatyczna konwersja -- **`stream` domyślnie to `false`** — Zgodność ze specyfikacją OpenAI, unikanie nieoczekiwanego SSE w pakietach SDK Python/Rust/Go - -</details> - -<details> -<summary><b>🌐 3. „Mój dostawca AI blokuje mój region/kraj”</b></summary> - -Dostawcy tacy jak OpenAI/Codex blokują dostęp z określonych regionów geograficznych. Podczas połączeń OAuth i API użytkownicy otrzymują błędy takie jak `unsupported_country_region_territory`. Jest to szczególnie frustrujące dla programistów z krajów rozwijających się. - -**Jak rozwiązuje to OmniRoute:** - -- **3-poziomowa konfiguracja serwera proxy** — Konfigurowalny serwer proxy na 3 poziomach: globalny (cały ruch), na dostawcę (tylko jeden dostawca) i na połączenie/klucz -- **Oznaczone kolorami identyfikatory proxy** — Wskaźniki wizualne: 🟢 globalny serwer proxy, 🟡 serwer proxy dostawcy, 🔵 serwer proxy połączenia, zawsze pokazujący adres IP -- **Wymiana tokenów OAuth przez serwer proxy** — Przepływ OAuth przechodzi również przez serwer proxy, rozwiązując problem `unsupported_country_region_territory` -- **Test połączenia przez serwer proxy** — Testy połączenia wykorzystują skonfigurowany serwer proxy (koniec z bezpośrednim obejściem) -- **Obsługa SOCKS5** — Pełna obsługa proxy SOCKS5 dla routingu wychodzącego -- **Podrabianie odcisków palców TLS** — Odcisk palca TLS podobny do przeglądarki za pośrednictwem `wreq-js` w celu ominięcia wykrywania botów -- **🔏 Dopasowanie odcisków palców CLI** — zmienia kolejność nagłówków i pól treści, aby dopasować je do natywnych podpisów binarnych CLI, drastycznie zmniejszając ryzyko oznaczania konta. Adres IP serwera proxy zostaje zachowany — jednocześnie uzyskujesz maskowanie IP ** i** IP - -</details> - -<details> -<summary><b>🆓 4. „Chcę używać AI do kodowania, ale nie mam pieniędzy”</b></summary> - -Nie każdy może zapłacić 20–200 USD miesięcznie za subskrypcje AI. Studenci, programiści z krajów wschodzących, hobbyści i freelancerzy potrzebują dostępu do wysokiej jakości modeli po zerowych kosztach. - -**Jak rozwiązuje to OmniRoute:** - -- **Wbudowani dostawcy Free Tier** — Natywne wsparcie dla w 100% darmowych dostawców: Qoder (5 nieograniczonych modeli przez OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 nieograniczone modele: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, Vision-model), Kiro (Claude + AWS Builder ID za darmo), Gemini CLI (180 tys. tokenów miesięcznie za darmo) -- **Ollama Cloud** — modele Ollama hostowane w chmurze pod adresem `api.ollama.com` z bezpłatnym poziomem „Lekkie użycie”; użyj przedrostka `ollamacloud/<model>` -- **Kombinacje dostępne wyłącznie bezpłatnie** — Łańcuch `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = 0 USD/miesiąc z zerowymi przestojami -- **Bezpłatny dostęp do NVIDIA NIM** — bezpłatny dostęp dla deweloperów przy ~40 obr./min na zawsze do ponad 70 modeli na stronie build.nvidia.com (przejście z kredytów na same limity szybkości) -- **Strategia zoptymalizowana pod względem kosztów** — Strategia routingu, która automatycznie wybiera najtańszego dostępnego dostawcę - -</details> - -<details> -<summary><b>🔒 5. „Muszę chronić moją bramę AI przed nieautoryzowanym dostępem”</b></summary> - -Podczas udostępniania bramy AI w sieci (LAN, VPS, Docker) każda osoba posiadająca adres może wykorzystać tokeny/przydział programisty. Bez ochrony interfejsy API są podatne na niewłaściwe użycie, natychmiastowe wstrzyknięcie i nadużycia. - -**Jak rozwiązuje to OmniRoute:** - -- **Zarządzanie kluczami API** — generowanie, rotacja i ustalanie zakresu dla każdego dostawcy z dedykowaną stroną `/dashboard/api-manager` -- **Uprawnienia na poziomie modelu** — Ogranicz klucze API do określonych modeli (`openai/*`, wzorce symboli wieloznacznych), za pomocą przełącznika Zezwalaj na wszystko/Ogranicz -- **API Endpoint Protection** — Wymagaj klucza dla `/v1/models` i blokuj określonych dostawców na liście -- **Auth Guard + ochrona CSRF** — Wszystkie trasy pulpitu nawigacyjnego chronione za pomocą oprogramowania pośredniego `withAuth` + tokenów CSRF -- **Rate Limiter** — Ograniczanie szybkości na IP z konfigurowalnymi oknami -- **Filtrowanie IP** — Lista dozwolonych/blokowanych do kontroli dostępu -- **Szybka ochrona przed wstrzyknięciem** — Oczyszczanie przed złośliwymi wzorcami podpowiedzi -- **Szyfrowanie AES-256-GCM** — Poświadczenia szyfrowane w stanie spoczynku - -</details> - -<details> -<summary><b>🛑 6. „Mój dostawca przestał działać i straciłem płynność kodowania”</b></summary> - -Dostawcy sztucznej inteligencji mogą stać się niestabilni, zwracać błędy 5xx lub przekraczać tymczasowe limity szybkości. Jeśli programista jest zależny od jednego dostawcy, jego praca jest przerywana. Bez wyłączników automatycznych wielokrotne próby mogą spowodować awarię aplikacji. - -**Jak rozwiązuje to OmniRoute:** - -- **Wyłącznik w zależności od modelu** — Automatyczne otwieranie/zamykanie z konfigurowalnymi progami i czasem schładzania (zamknięty/otwarty/półotwarty), zakres zależny od modelu, aby uniknąć blokad kaskadowych -- **Wykładniczy wycofywanie** — Stopniowe opóźnienia ponownych prób -- **Anti-Thundering Herd** — Mutex + ochrona semaforów przed równoczesnymi burzami ponownych prób -- **Łańcuchy awaryjne typu Combo** — jeśli główny dostawca zawiedzie, automatycznie przejdzie przez łańcuch bez interwencji -- **Wyłącznik automatyczny** — automatycznie wyłącza niesprawnych dostawców w łańcuchu combo -- **Panel stanu** — Monitorowanie czasu pracy, stany wyłączników, blokady, statystyki pamięci podręcznej, opóźnienia p50/p95/p99 - -</details> - -<details> -<summary><b>🔧 7. „Konfigurowanie każdego narzędzia AI jest żmudne i powtarzalne”</b></summary> - -Programiści używają Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code... Każde narzędzie wymaga innej konfiguracji (punkt końcowy API, klucz, model). Ponowna konfiguracja w przypadku zmiany dostawcy lub modelu jest stratą czasu. - -**Jak rozwiązuje to OmniRoute:** - -- ** Panel narzędzi CLI** — Dedykowana strona z konfiguracją jednym kliknięciem dla Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline -- **Generator konfiguracji GitHub Copilot** — Generuje `chatLanguageModels.json` dla kodu VS z zbiorczym wyborem modelu -- **Kreator wprowadzenia** — konfiguracja w 4 krokach dla początkujących użytkowników -- **Jeden punkt końcowy, wszystkie modele** — Skonfiguruj `http://localhost:20128/v1` raz, uzyskaj dostęp do ponad 67 dostawców - -</details> - -<details> -<summary><b>🔑 8. „Zarządzanie tokenami OAuth od wielu dostawców to piekło”</b></summary> - -Claude Code, Codex, Gemini CLI, Copilot — wszystkie korzystają z OAuth 2.0 z wygasającymi tokenami. Programiści muszą stale przeprowadzać ponowne uwierzytelnianie, radzić sobie z `client_secret is missing`, `redirect_uri_mismatch` i awariami na zdalnych serwerach. Szczególnie problematyczny jest protokół OAuth w sieci LAN/VPS. - -**Jak rozwiązuje to OmniRoute:** - -- **Automatyczne odświeżanie tokenu** — tokeny OAuth odświeżają się w tle przed wygaśnięciem -- **Wbudowany OAuth 2.0 (PKCE)** — Automatyczny przepływ dla Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder -- **Wielokontowy OAuth** — wiele kont na dostawcę poprzez ekstrakcję tokenów JWT/ID -- **OAuth LAN/Remote Fix** — Wykrywanie prywatnego adresu IP dla `redirect_uri` + ręczny tryb adresu URL dla serwerów zdalnych -- **OAuth Behind Nginx** — Używa `window.location.origin` w celu zapewnienia zgodności z odwrotnym proxy -- **Przewodnik po zdalnym OAuth** — szczegółowy przewodnik dotyczący danych uwierzytelniających Google Cloud na platformie VPS/Docker - -</details> - -<details> -<summary><b>📊 9. „Nie wiem, ile i gdzie wydaję”</b></summary> - -Programiści korzystają z wielu płatnych dostawców, ale nie mają jednolitego widoku wydatków. Każdy dostawca ma własny pulpit rozliczeniowy, ale nie ma widoku skonsolidowanego. Nieoczekiwane koszty mogą się kumulować. - -**Jak rozwiązuje to OmniRoute:** - -- **Panel analizy kosztów** — śledzenie kosztów według tokenu i zarządzanie budżetem dla każdego dostawcy -- **Limity budżetowe na poziom** — Pułap wydatków na poziom, który uruchamia automatyczne wycofanie -- **Konfiguracja cen dla poszczególnych modeli** — Ceny dla poszczególnych modeli można konfigurować -- **Statystyki użytkowania na klucz API** — Liczba żądań i znacznik czasu ostatniego użycia na klucz -- **Panel analityczny** — karty statystyk, wykres wykorzystania modelu, tabela dostawców ze wskaźnikami powodzenia i opóźnieniami - -</details> - -<details> -<summary><b>🐛 10. „Nie mogę diagnozować błędów i problemów w wywołaniach AI”</b></summary> - -Gdy połączenie nie powiedzie się, programista nie wie, czy był to limit szybkości, wygasły token, nieprawidłowy format czy błąd dostawcy. Fragmentaryczne dzienniki na różnych terminalach. Bez obserwowalności debugowanie odbywa się metodą prób i błędów. - -**Jak rozwiązuje to OmniRoute:** - -- **Ujednolicony pulpit nawigacyjny** — 4 karty: Dzienniki żądań, Dzienniki proxy, Dzienniki audytu, Konsola -- **Przeglądarka logów w konsoli** — Przeglądarka działająca w stylu terminala w czasie rzeczywistym z poziomami oznaczonymi kolorami, automatycznym przewijaniem, wyszukiwaniem i filtrowaniem -- **Dzienniki proxy SQLite** — trwałe dzienniki, które przetrwają ponowne uruchomienie serwera -- **Plac zabaw dla tłumaczy** — 4 tryby debugowania: Plac zabaw (tłumaczenie formatu), Tester czatu (w obie strony), Stanowisko testowe (wsadowe), Monitor na żywo (w czasie rzeczywistym) -- **Żądanie telemetrii** — opóźnienie p50/p95/p99 + śledzenie identyfikatora X-Request-Id -- **Logowanie oparte na plikach z rotacją** — Przechwytywacz konsoli przechwytuje wszystko do dziennika JSON z rotacją na podstawie rozmiaru -- **Raport informacji o systemie** — `npm run system-info` generuje `system-info.txt` z pełnym środowiskiem (wersja węzła, wersja OmniRoute, system operacyjny, narzędzia CLI, stan Docker/PM2). Dołącz go podczas zgłaszania problemów w celu natychmiastowej selekcji. - -</details> - -<details> -<summary><b>🏗️ 11. „Wdrażanie i konserwacja bramy jest skomplikowane”</b></summary> - -Instalacja, konfiguracja i utrzymanie serwera proxy AI w różnych środowiskach (lokalnym, VPS, Docker, chmura) jest pracochłonne. Problemy takie jak zakodowane na stałe ścieżki, `EACCES` w katalogach, konflikty portów i kompilacje międzyplatformowe zwiększają tarcia. - -**Jak rozwiązuje to OmniRoute:** - -- **npm globalna instalacja** — `npm install -g omniroute && omniroute` — gotowe -- **Docker Multi-platform** — natywny AMD64 + ARM64 (Apple Silicon, AWS Graviton, Raspberry Pi) -- **Profile Docker Compose** — `base` (bez narzędzi CLI) i `cli` (z Claude Code, Codex, OpenClaw) -- **Electron Desktop App** — Natywna aplikacja dla systemów Windows/macOS/Linux z zasobnikiem systemowym, automatycznym uruchamianiem i trybem offline -- **Tryb Split-Port** — API i pulpit nawigacyjny na oddzielnych portach dla zaawansowanych scenariuszy (odwrotne proxy, sieć kontenerowa) -- **Cloud Sync** — skonfiguruj synchronizację między urządzeniami za pośrednictwem Cloudflare Workers -- **Kopie zapasowe DB** — Automatyczne tworzenie kopii zapasowych, przywracanie, eksportowanie i importowanie wszystkich ustawień - -</details> - -<details> -<summary><b>🌍 12. „Interfejs jest wyłącznie w języku angielskim, a mój zespół nie mówi po angielsku”</b></summary> - -Zespoły w krajach nieanglojęzycznych, szczególnie w Ameryce Łacińskiej, Azji i Europie, mają trudności z interfejsami dostępnymi wyłącznie w języku angielskim. Bariery językowe ograniczają wdrażanie i zwiększają liczbę błędów konfiguracyjnych. - -**Jak rozwiązuje to OmniRoute:** - -- ** Panel i18n — 30 języków** — Przetłumaczono ponad 500 klawiszy, w tym arabski, bułgarski, duński, niemiecki, hiszpański, fiński, francuski, hebrajski, hindi, węgierski, indonezyjski, włoski, japoński, koreański, malajski, holenderski, norweski, polski, portugalski (PT/BR), rumuński, rosyjski, słowacki, szwedzki, tajski, ukraiński, wietnamski, chiński, filipiński, angielski -- **Obsługa RTL** — obsługa tekstu od prawej do lewej w języku arabskim i hebrajskim -- **Wielojęzyczne pliki README** — 30 kompletnych tłumaczeń dokumentacji -- **Wybór języka** — Ikona kuli ziemskiej w nagłówku umożliwiająca przełączanie w czasie rzeczywistym - -</details> - -<details> -<summary><b>🔄 13. „Potrzebuję czegoś więcej niż tylko czatu — potrzebuję osadzania, obrazów i dźwięku”</b></summary> - -Sztuczna inteligencja to nie tylko ukończenie czatu. Twórcy muszą generować obrazy, transkrybować dźwięk, tworzyć osadzania dla RAG, zmieniać rangę dokumentów i moderować treści. Każdy interfejs API ma inny punkt końcowy i format. - -**Jak rozwiązuje to OmniRoute:** - -- **Osadzanie** — `/v1/embeddings` z 6 dostawcami i ponad 9 modelami -- **Generowanie obrazu** — `/v1/images/generations` z 10 dostawcami i ponad 20 modelami (OpenAI, xAI, Together, Fireworks, Nebius, Hyperbolic, NanoBanana, Antigravity, SD WebUI, ComfyUI) -- **Tekst na wideo** — `/v1/videos/generations` — ComfyUI (AnimateDiff, SVD) i SD WebUI -- **Tekst na muzykę** — `/v1/music/generations` — ComfyUI (Stable Audio Open, MusicGen) -- **Transkrypcja audio** — `/v1/audio/transcriptions` — Whisper + Nvidia NIM, HuggingFace, Qwen3 -- **Zamiana tekstu na mowę** — `/v1/audio/speech` — ElevenLabs, Nvidia NIM, HuggingFace, Coqui, Tortoise, Qwen3, **Inworld**, **Cartesia**, **PlayHT**, + obecni dostawcy -- **Moderacje** — `/v1/moderations` — Sprawdzanie bezpieczeństwa treści -- **Reranking** — `/v1/rerank` — Zmiana rankingu trafności dokumentu -- **Responses API** — Pełna obsługa `/v1/responses` dla Codexu - -</details> - -<details> -<summary><b>🧪 14. „Nie mam możliwości przetestowania i porównania jakości różnych modeli”</b></summary> - -Programiści chcą wiedzieć, który model jest najlepszy dla ich przypadku użycia — kodu, tłumaczenia, rozumowania — ale ręczne porównywanie jest powolne. Nie istnieją żadne zintegrowane narzędzia eval. - -**Jak rozwiązuje to OmniRoute:** - -- **Oceny LLM** — Testowanie złotego zestawu z 10 fabrycznie załadowanymi skrzynkami obejmującymi pozdrowienia, matematykę, geografię, generowanie kodu, zgodność z JSON, tłumaczenie, przeceny, odmowy ze względów bezpieczeństwa -- **4 Strategie dopasowywania** — `exact`, `contains`, `regex`, `custom` (funkcja JS) -- **Stolik testowy dla tłumaczy** — Testowanie wsadowe z wieloma danymi wejściowymi i oczekiwanymi wynikami, porównanie różnych dostawców -- **Tester czatu** — Pełna podróż w obie strony z renderowaniem odpowiedzi wizualnych -- **Live Monitor** — Strumień w czasie rzeczywistym wszystkich żądań przepływających przez serwer proxy - -</details> - -<details> -<summary><b>📈 15. „Muszę skalować bez utraty wydajności”</b></summary> - -W miarę wzrostu liczby żądań bez buforowania tych samych pytań generowane są podwójne koszty. Bez idempotencji zduplikowane żądania przetwarzania odpadów. Należy przestrzegać limitów stawek dla poszczególnych dostawców. - -**Jak rozwiązuje to OmniRoute:** - -- **Semantyczna pamięć podręczna** — Dwuwarstwowa pamięć podręczna (podpis + semantyka) zmniejsza koszty i opóźnienia -- **Request Idempotency** — okno deduplikacji 5 s dla identycznych żądań -- **Wykrywanie limitów szybkości** — RPM na dostawcę, minimalna przerwa i maksymalne jednoczesne śledzenie -- **Edytowalne limity szybkości** — Konfigurowalne ustawienia domyślne w Ustawieniach → Odporność z trwałością -- **API Key Validation Cache** — 3-warstwowa pamięć podręczna zapewniająca wydajność produkcyjną -- **Panel kontrolny stanu z telemetrią** — opóźnienia p50/p95/p99, statystyki pamięci podręcznej, czas pracy - -</details> - -<details> -<summary><b>🤖 16. „Chcę kontrolować zachowanie modelu globalnie”</b></summary> - -Deweloperzy, którzy chcą wszystkich odpowiedzi w określonym języku, w określonym tonie lub chcą ograniczyć tokeny rozumowania. Konfigurowanie tego w każdym narzędziu/żądaniu jest niepraktyczne. - -**Jak rozwiązuje to OmniRoute:** - -- **Wstrzykiwanie monitu systemowego** — monit globalny stosowany do wszystkich żądań -- **Przemyślana walidacja budżetu** — Kontrola alokacji tokenów rozumowania na każde żądanie (przejściowe, automatyczne, niestandardowe, adaptacyjne) -- **6 Strategii routingu** — Globalne strategie określające sposób dystrybucji żądań -- **Wildcard Router** — `provider/*` wzorce przesyłają dynamicznie do dowolnego dostawcy -- **Przełączanie kombinacji włącz/wyłącz** — przełączaj kombinacje bezpośrednio z pulpitu nawigacyjnego -- **Przełączanie dostawcy** — Włącz/wyłącz wszystkie połączenia dla dostawcy jednym kliknięciem -- **Zablokowani dostawcy** — wyklucz określonych dostawców z listy `/v1/models` - -</details> - -<details> -<summary><b>🧰 17. „Potrzebuję narzędzi MCP jako produktów najwyższej klasy”</b></summary> - -Wiele bram AI ujawnia MCP jedynie jako ukryty szczegół implementacji. Zespoły potrzebują widocznej, zarządzalnej warstwy operacyjnej. - -**Jak rozwiązuje to OmniRoute:** - -- MCP pojawia się w panelu nawigacji na desce rozdzielczej i w zakładce protokołu punktu końcowego -- Dedykowana strona zarządzania MCP z procesem, narzędziami, zakresami i audytem -- Wbudowany szybki start dla `omniroute --mcp` i dołączania klientów - -</details> - -<details> -<summary><b>🧠 18. „Potrzebuję orkiestracji A2A ze ścieżkami zadań synchronizacji i strumienia”</b></summary> - -Przepływy pracy agentów wymagają zarówno bezpośrednich odpowiedzi, jak i długotrwałego wykonywania strumieniowego z kontrolą cyklu życia. - -**Jak rozwiązuje to OmniRoute:** - -- Punkt końcowy A2A JSON-RPC (`POST /a2a`) z `message/send` i `message/stream` -- Przesyłanie strumieniowe SSE z propagacją stanu terminala -- Interfejsy API cyklu życia zadań dla `tasks/get` i `tasks/cancel` - -</details> - -<details> -<summary><b>🛰️ 19. „Potrzebuję prawdziwego stanu procesu MCP, a nie zgadywanego statusu”</b></summary> - -Zespoły operacyjne muszą wiedzieć, czy MCP rzeczywiście żyje, a nie tylko, czy można uzyskać dostęp do interfejsu API. - -**Jak rozwiązuje to OmniRoute:** - -- Plik pulsu środowiska wykonawczego z PID, znacznikami czasu, transportem, liczbą narzędzi i trybem zakresu -- API statusu MCP łączące puls + ostatnią aktywność -- Karty stanu interfejsu użytkownika dotyczące świeżości procesów/czasu pracy/bicia serca - -</details> - -<details> -<summary><b>📋 20. „Potrzebuję wykonania narzędzia MCP z możliwością audytu”</b></summary> - -Gdy narzędzia modyfikują konfigurację lub uruchamiają działania operacyjne, zespoły potrzebują identyfikowalności kryminalistycznej. - -**Jak rozwiązuje to OmniRoute:** - -- Rejestrowanie audytu wspierane przez SQLite dla wywołań narzędzi MCP -- Filtruje według narzędzia, sukcesu/porażki, klucza API i paginacji -- Tabela audytu pulpitu nawigacyjnego + punkty końcowe statystyk dla automatyzacji - -</details> - -<details> -<summary><b>🔐 21. „Potrzebuję uprawnień MCP o określonym zakresie na integrację”</b></summary> - -Różni klienci powinni mieć najniższy dostęp do kategorii narzędzi. - -**Jak rozwiązuje to OmniRoute:** - -- 9 szczegółowych zakresów MCP zapewniających kontrolowany dostęp do narzędzi -- Egzekwowanie zakresu i widoczność w interfejsie zarządzania MCP -- Bezpieczna domyślna pozycja dla narzędzi operacyjnych - -</details> - -<details> -<summary><b>⚙️ 22. „Potrzebuję kontroli operacyjnej bez ponownego wdrażania”</b></summary> - -Zespoły potrzebują szybkich zmian w czasie działania podczas incydentów lub zdarzeń kosztowych. - -**Jak rozwiązuje to OmniRoute:** - -- Aktywacja kombinacji przełączników bezpośrednio z pulpitu nawigacyjnego MCP -- Zastosuj profile odporności ze wstępnie zdefiniowanych pakietów zasad -- Zresetuj stan wyłącznika automatycznego z tego samego panelu operacyjnego - -</details> - -<details> -<summary><b>🔄 23. „Potrzebuję widoczności i anulowania cyklu życia zadania A2A na żywo”</b></summary> - -Bez widoczności cyklu życia zdarzenia związane z zadaniami stają się trudne do segregacji. - -**Jak rozwiązuje to OmniRoute:** - -- Lista zadań/filtrowanie według stanu/umiejętności z paginacją -- Szczegółowa analiza metadanych zadań, zdarzeń i artefaktów -- Punkt końcowy anulowania zadania i akcja interfejsu użytkownika z potwierdzeniem - -</details> - -<details> -<summary><b>🌊 24. „Potrzebuję metryk aktywnego strumienia dla obciążenia A2A”</b></summary> - -Przepływy pracy związane z przesyłaniem strumieniowym wymagają operacyjnego wglądu w współbieżność i połączenia na żywo. - -**Jak rozwiązuje to OmniRoute:** - -- Aktywne liczniki strumieni zintegrowane ze statusem A2A -- Znacznik czasu ostatniego zadania i liczba stanów -- Karty pulpitu A2A do monitorowania operacji w czasie rzeczywistym - -</details> - -<details> -<summary><b>🪪 25. „Potrzebuję standardowego wyszukiwania agentów dla klientów”</b></summary> - -Zewnętrzni klienci i koordynatorzy potrzebują metadanych do odczytu maszynowego na potrzeby wdrożenia. - -**Jak rozwiązuje to OmniRoute:** - -- Karta Agenta ujawniona w `/.well-known/agent.json` -- Możliwości i umiejętności pokazane w interfejsie zarządzania -- Interfejs API stanu A2A zawiera metadane wykrywania do automatyzacji - -</details> - -<details> -<summary><b>🧭 26. „Potrzebuję wykrywalności protokołu w UX produktu”</b></summary> - -Jeśli użytkownicy nie mogą odkryć powierzchni protokołu, spada jakość przyjęcia i wsparcia. - -**Jak rozwiązuje to OmniRoute:** - -- Skonsolidowana strona **Punkty końcowe** z zakładkami dla punktów końcowych proxy, MCP, A2A i API -- Przełączniki stanu usługi Inline (Online/Offline) dla MCP i A2A -- Linki z przeglądu do dedykowanych zakładek zarządzania - -</details> - -<details> -<summary><b>🧪 27. „Potrzebuję kompleksowej weryfikacji protokołu z prawdziwymi klientami”</b></summary> - -Testy próbne nie wystarczą do sprawdzenia zgodności protokołu przed wydaniem. - -**Jak rozwiązuje to OmniRoute:** - -- Pakiet E2E, który uruchamia aplikację i wykorzystuje prawdziwy transport klienta MCP SDK -- Testy klienta A2A pod kątem wykrywania, wysyłania, przesyłania strumieniowego, pobierania i anulowania przepływów -- Sprawdzaj twierdzenia względem interfejsów API audytu MCP i zadań A2A - -</details> - -<details> -<summary><b>📡 28. „Potrzebuję ujednoliconej obserwowalności we wszystkich interfejsach”</b></summary> - -Podział obserwowalności według protokołu tworzy martwe punkty i wydłuża MTTR. - -**Jak rozwiązuje to OmniRoute:** - -- Ujednolicone dashboardy/dzienniki/analizy w jednym produkcie -- Stan + audyt + telemetria żądań w warstwach OpenAI, MCP i A2A -- Operacyjne interfejsy API dla statusu i automatyzacji - -</details> - -<details> -<summary><b>💼 29. „Potrzebuję jednego środowiska wykonawczego dla serwera proxy + narzędzi + orkiestracji agenta”</b></summary> - -Uruchamianie wielu oddzielnych usług zwiększa koszty operacyjne i tryby awarii. - -**Jak rozwiązuje to OmniRoute:** - -- Serwer proxy zgodny z OpenAI, serwer MCP i serwer A2A w jednym stosie -- Wspólne uwierzytelnianie, odporność, magazyn danych i obserwowalność -- Spójny model polityki na wszystkich płaszczyznach interakcji - -</details> - -<details> -<summary><b>🚀 30. „Muszę dostarczać przepływy pracy agenta bez niepotrzebnego tworzenia kodu klejącego”</b></summary> - -Zespoły tracą prędkość podczas łączenia wielu usług i skryptów ad hoc. - -**Jak rozwiązuje to OmniRoute:** - -- Ujednolicona strategia dotycząca punktów końcowych dla klientów i agentów -- Wbudowane interfejsy zarządzania protokołami i ścieżki sprawdzania dymu -- Podstawy gotowe do produkcji (bezpieczeństwo, logowanie, odporność, kopie zapasowe) - -</details> - -### Przykładowe podręczniki (zintegrowane przypadki użycia) - -**Poradnik A: maksymalizuj płatną subskrypcję + tanią kopię zapasową** - -```txt -Combo: "maximize-claude" - 1. cc/claude-opus-4-6 - 2. glm/glm-4.7 - 3. if/kimi-k2-thinking - -Monthly cost: $20 + small backup spend -Outcome: higher quality, near-zero interruption -``` - -**Poradnik B: stos kodowania o zerowym koszcie** - -```txt -Combo: "free-forever" - 1. gc/gemini-3-flash - 2. if/kimi-k2-thinking - 3. qw/qwen3-coder-plus - -Monthly cost: $0 -Outcome: stable free coding workflow -``` - -**Poradnik C: łańcuch awaryjny działający 24 godziny na dobę, 7 dni w tygodniu** - -```txt -Combo: "always-on" - 1. cc/claude-opus-4-6 - 2. cx/gpt-5.2-codex - 3. glm/glm-4.7 - 4. minimax/MiniMax-M2.1 - 5. if/kimi-k2-thinking - -Outcome: deep fallback depth for deadline-critical workloads -``` - -**Poradnik D: Operacje agenta z MCP + A2A** - -```txt -1) Start MCP transport (`omniroute --mcp`) for tool-driven operations -2) Run A2A tasks via `message/send` and `message/stream` -3) Observe via /dashboard/endpoint (MCP and A2A tabs) -4) Toggle services via inline status controls -``` - ---- - -## 🆓 Zacznij bezpłatnie — zerowy koszt konfiguracji - -> Skonfiguruj kodowanie AI w ciągu kilku minut w cenie **0 USD/miesiąc**. Połącz te bezpłatne konta i korzystaj z wbudowanej kombinacji **Free Stack**. - -| Krok | Akcja | Dostawcy odblokowani | -| ---- | --------------------------------------------------------- | ----------------------------------------------------------------------- | -| 1 | Połącz **Kiro** (identyfikator AWS Builder OAuth) | Claude Sonnet 4.5, Haiku 4.5 — **bez ograniczeń** | -| 2 | Połącz **Qoder** (Google OAuth) | myślenie kimi-k2, qwen3-coder-plus, deepseek-r1... — **bez ograniczeń** | -| 3 | Połącz **Qwen** (kod urządzenia) | qwen3-coder-plus, qwen3-coder-flash... — **bez ograniczeń** | -| 4 | Połącz **Gemini CLI** (Google OAuth) | gemini-3-flash, gemini-2.5-pro — **180 tys./mc za darmo** | -| 5 | `/dashboard/combos` → **Szablon darmowego stosu (0 USD)** | Automatycznie okrężnie wszystkich bezpłatnych dostawców | - -**Wskaż dowolne IDE/CLI na:** `http://localhost:20128/v1` · Klucz API: `any-string` · Gotowe. - -> **Opcjonalna dodatkowa ochrona (również bezpłatna):** Klucz API Groq (30 obr./min za darmo), NVIDIA NIM (40 obr./min za darmo, ponad 70 modeli), Cerebras (1 mln tok/dzień), Klucz API LongCat (50 mln tokenów dziennie!), Cloudflare Workers AI (10 tys. neuronów/dzień, ponad 50 modeli). - -## ⚡ Szybki start - -### 1) Zainstaluj i uruchom - -```bash -npm install -g omniroute -omniroute -``` - -> **Użytkownicy pnpm:** Uruchom `pnpm approve-builds -g` po instalacji, aby włączyć natywne skrypty kompilacji wymagane przez `better-sqlite3` i `@swc/core`: -> -> ```bash -> pnpm install -g omniroute -> pnpm approve-builds -g # Select all packages → approve -> omniroute -> ``` - -Panel otwiera się pod adresem `http://localhost:20128`, a podstawowy adres URL interfejsu API to `http://localhost:20128/v1`. - -| Polecenie | Opis | -| ----------------------- | --------------------------------------------------------------------------- | -| `omniroute` | Uruchom serwer (`PORT=20128`, API i pulpit nawigacyjny na tym samym porcie) | -| `omniroute --port 3000` | Ustaw port kanoniczny/API na 3000 | -| `omniroute --mcp` | Uruchom serwer MCP (transport stdio) | -| `omniroute --no-open` | Nie otwieraj automatycznie przeglądarki | -| `omniroute --help` | Pokaż pomoc | - -Opcjonalny tryb podzielonego portu: - -```bash -PORT=20128 DASHBOARD_PORT=20129 omniroute -# API: http://localhost:20128/v1 -# Dashboard: http://localhost:20129 -``` - -### 2) Połącz dostawców i utwórz swój klucz API - -1. Otwórz Panel → `Providers` i podłącz co najmniej jednego dostawcę (klucz OAuth lub API). -2. Otwórz Panel → `Endpoints` i utwórz klucz API. -3. (Opcjonalnie) Otwórz Panel → `Combos` i ustaw łańcuch awaryjny. - -### 3) Skieruj swoje narzędzie do kodowania na OmniRoute - -```txt -Base URL: http://localhost:20128/v1 -API Key: [copy from Endpoint page] -Model: if/kimi-k2-thinking (or any provider/model prefix) -``` - -Współpracuje z Claude Code, Codex CLI, Gemini CLI, Cursor, Cline, OpenClaw, OpenCode i pakietami SDK kompatybilnymi z OpenAI. - -### 4) Włącz i sprawdź protokoły (v2.0) - -**MCP (dla operacji opartych na narzędziach):** - -```bash -omniroute --mcp -``` - -Następnie podłącz swojego klienta MCP przez `stdio` i przetestuj narzędzia takie jak: - -- `omniroute_get_health` -- `omniroute_list_combos` - -**A2A (dla przepływów pracy między agentami):** - -```bash -curl http://localhost:20128/.well-known/agent.json -``` - -```bash -curl -X POST http://localhost:20128/a2a \ - -H 'content-type: application/json' \ - -d '{"jsonrpc":"2.0","id":"quickstart","method":"message/send","params":{"skill":"quota-management","messages":[{"role":"user","content":"Give me a short quota summary."}]}}' -``` - -### 5) Sprawdź wszystko od początku do końca (zalecane) - -```bash -npm run test:protocols:e2e -``` - -Ten pakiet sprawdza rzeczywiste przepływy klientów MCP i A2A w porównaniu z działającą aplikacją. - -### Alternatywa: uruchamianie ze źródła - -```bash -cp .env.example .env -npm install -PORT=20128 DASHBOARD_PORT=20129 NEXT_PUBLIC_BASE_URL=http://localhost:20129 npm run dev -``` - ---- - -## 🐳 Doker - -OmniRoute jest dostępny jako publiczny obraz Dockera na [Docker Hub](https://hub.docker.com/r/diegosouzapw/omniroute). - -**Szybki bieg:** - -```bash -docker run -d \ - --name omniroute \ - --restart unless-stopped \ - -p 20128:20128 \ - -v omniroute-data:/app/data \ - diegosouzapw/omniroute:latest -``` - -**Z plikiem środowiska:** - -```bash -# Copy and edit .env first -cp .env.example .env - -docker run -d \ - --name omniroute \ - --restart unless-stopped \ - --env-file .env \ - -p 20128:20128 \ - -v omniroute-data:/app/data \ - diegosouzapw/omniroute:latest -``` - -**Korzystanie z Docker Compose:** - -```bash -# Base profile (no CLI tools) -docker compose --profile base up -d - -# CLI profile (Claude Code, Codex, OpenClaw built-in) -docker compose --profile cli up -d -``` - -| Obraz | Oznacz | Rozmiar | Opis | -| ------------------------ | -------- | ------- | ------------------------- | -| `diegosouzapw/omniroute` | `latest` | ~250 MB | Najnowsza stabilna wersja | -| `diegosouzapw/omniroute` | `1.0.3` | ~250 MB | Aktualna wersja | - ---- - -## 🖥️ Aplikacja komputerowa — offline i zawsze włączona - -> 🆕 **NOWOŚĆ!** OmniRoute jest teraz dostępny jako **natywna aplikacja komputerowa** dla systemów Windows, macOS i Linux. - -Uruchom OmniRoute jako samodzielną aplikację komputerową — bez terminala, bez przeglądarki i bez Internetu w przypadku modeli lokalnych. Aplikacja oparta na elektronach obejmuje: - -- 🖥️ **Okno natywne** — dedykowane okno aplikacji z integracją z zasobnikiem systemowym -- 🔄 **Auto-Start** — Uruchom OmniRoute po zalogowaniu się do systemu -- 🔔 **Powiadomienia natywne** — otrzymuj powiadomienia o wyczerpaniu limitu lub problemach z dostawcami -- ⚡ **Instalacja jednym kliknięciem** — NSIS (Windows), DMG (macOS), AppImage (Linux) -- 🌐 **Tryb offline** — Działa całkowicie offline z dołączonym serwerem - -### Szybki start - -```bash -# Development mode -npm run electron:dev - -# Build for your platform -npm run electron:build # Current platform -npm run electron:build:win # Windows (.exe) -npm run electron:build:mac # macOS (.dmg) — x64 & arm64 -npm run electron:build:linux # Linux (.AppImage) -``` - -### Taca systemowa - -Po zminimalizowaniu OmniRoute znajduje się w zasobniku systemowym i oferuje szybkie akcje: - -- Otwórz pulpit nawigacyjny -- Zmień port serwera -- Zamknij aplikację - -📖 Pełna dokumentacja: [**OMNI_TOKEN_153**](electron/README.md) - ---- - -## 💰 Ceny w skrócie - -| Poziom | Dostawca | Koszt | Reset przydziału | Najlepsze dla | -| ------------------ | ---------------------------- | ------------------------------------ | ----------------------------- | ---------------------------------------------- | -| **💳 SUBSKRYPCJA** | Claude Code (Pro) | 20 USD/mies. | 5h + tygodniowo | Już subskrybujesz | -| | Kodeks (Plus/Pro) | 20-200 $/mies. | 5h + tygodniowo | Użytkownicy OpenAI | -| | Bliźnięta CLI | **BEZPŁATNE** | 180 tys./mies. + 1 tys./dzień | Wszyscy! | -| | Drugi pilot GitHuba | 10–19 USD/mies. | Miesięczne | Użytkownicy GitHuba | -| **🔑 KLUCZ API** | NVIDIA NIM | **BEZPŁATNE** (na zawsze) | ~40 obr/min | Ponad 70 otwartych modeli | -| | Cerebra | **BEZPŁATNE** (1 mln tok/dzień) | 60 tys. TPM / 30 obr./min | Najszybszy na świecie | -| | Groq | **BEZPŁATNE** (30 obr./min) | 14,4 tys. RPD | Ultraszybka Lama/Gemma | -| | DeepSeek V3.2 | 0,27 USD/1,10 USD za 1 mln | Brak | Najlepsze uzasadnienie ceny/jakości | -| | xAI Grok-4 Szybki | **0,20 USD/0,50 USD za 1 milion** 🆕 | Brak | Najszybsze + wywoływanie narzędzi, ultraniskie | -| | xAI Grok-4 (standard) | 0,20 USD/1,50 USD za 1 milion 🆕 | Brak | Rozsądny flagowiec od xAI | -| | Mistral | Bezpłatny okres próbny + płatny | Stawka ograniczona | Europejska sztuczna inteligencja | -| | OtwórzRouter | Płatność za użycie | Brak | Łącznie ponad 100 modeli | -| **💰 TANIO** | GLM-5 (przez Z.AI) 🆕 | 0,5 USD/1 mln | Codziennie 10:00 | Wyjście 128K, najnowszy flagowiec | -| | GLM-4.7 | 0,6 USD/1 mln | Codziennie 10:00 | Kopia zapasowa budżetu | -| | MiniMax M2.5 🆕 | Wejście 0,3 USD/1 mln | 5-godzinne toczenie | Rozumowanie + zadania agentyczne | -| | MiniMax M2.1 | 0,2 USD/1 mln | 5-godzinne toczenie | Najtańsza opcja | -| | Kimi K2.5 (Moonshot API) 🆕 | Płatność za użycie | Brak | Bezpośredni dostęp do API Moonshot | -| | Kimi K2 | 9 USD miesięcznie | 10 mln tokenów/mies. | Przewidywalny koszt | -| **🆓 DARMOWE** | Qoder | **$0** | Nieograniczony | 5 modeli bez ograniczeń | -| | Qwen | **$0** | Nieograniczony | 4 modele bez ograniczeń | -| | Kiro | **$0** | Nieograniczony | Claude Sonnet/Haiku (konstruktor AWS) | -| | LongCat Flash-Lite 🆕 | **0 $** (50 mln tok/dzień 🔥) | 1 RPS | Największy darmowy limit na Ziemi | -| | Zapylanie AI 🆕 | **$0** (nie jest potrzebny klucz) | 1 zapotrzebowanie/15 s | GPT-5, Claude, DeepSeek, Lama 4 | -| | AI pracowników Cloudflare 🆕 | **0 $** (10 tys. neuronów/dzień) | ~150 odp/dzień | Ponad 50 modeli, globalna przewaga | -| | Scaleway AI 🆕 | **$0** (łącznie 1 milion tokenów) | Stawka ograniczona | UE/RODO, Qwen3 235B, Lama 70B | - -> 🆕 **Dodano nowe modele (marzec 2026 r.):** Rodzina Grok-4 Fast w cenie 0,20 USD/0,50 USD/M (w porównaniu z czasem 1143 ms — 30% szybciej niż Gemini 2.5 Flash), GLM-5 przez Z.AI z mocą wyjściową 128 tys., rozumowanie MiniMax M2.5, zaktualizowana cena DeepSeek V3.2, Kimi K2.5 poprzez bezpośrednie API Moonshot. - -**💡 Stos kombinacji 0 $ — kompletna bezpłatna konfiguracja:** - -``` -# 🆓 Ultimate Free Stack 2026 — 11 Providers, $0 Forever -Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED -LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 -Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed -Qwen (qw/) → qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next UNLIMITED -Gemini (gemini/) → Gemini 2.5 Flash — 1,500 req/day free API key -Cloudflare AI (cf/) → Llama 70B, Gemma 3, Mistral — 10K Neurons/day -Scaleway (scw/) → Qwen3 235B, Llama 70B — 1M free tokens (EU) -Groq (groq/) → Llama/Gemma ultra-fast — 14.4K req/day -NVIDIA NIM (nvidia/) → 70+ open models — 40 RPM forever -Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day -``` - -**Zerowy koszt. Kodowanie nigdy się nie kończy.** Skonfiguruj to jako jedną kombinację OmniRoute, a wszystkie zmiany awaryjne będą odbywać się automatycznie — bez konieczności ręcznego przełączania. - ---- - ---- - -## 🆓 Darmowe modele — co tak naprawdę otrzymujesz - -> Wszystkie poniższe modele są **100% bezpłatne i nie wymagają żadnej karty kredytowej**. OmniRoute automatycznie wyznacza trasy między nimi, gdy skończy się jeden limit — połącz je wszystkie, aby uzyskać niezniszczalną kombinację za 0 USD. - -### 🔵 MODELE CLAUDE (przez Kiro — identyfikator AWS Builder) - -| Modelka | Przedrostek | Limit | Limit stawki | -| ------------------- | ----------- | ------------------ | ----------------------------- | -| `claude-sonnet-4.5` | `kr/` | **Nieograniczony** | Brak raportu dziennego limitu | -| `claude-haiku-4.5` | `kr/` | **Nieograniczony** | Brak raportu dziennego limitu | -| `claude-opus-4.6` | `kr/` | **Nieograniczony** | Najnowsze Opus przez Kiro | - -### 🟢 MODELE QODER (bezpłatny OAuth — bez karty kredytowej) - -| Modelka | Przedrostek | Limit | Limit stawki | -| ------------------ | ----------- | ------------------ | ----------------------- | -| `kimi-k2-thinking` | `if/` | **Nieograniczony** | Brak zgłoszonego limitu | -| `qwen3-coder-plus` | `if/` | **Nieograniczony** | Brak zgłoszonego limitu | -| `deepseek-r1` | `if/` | **Nieograniczony** | Brak zgłoszonego limitu | -| `minimax-m2.1` | `if/` | **Nieograniczony** | Brak zgłoszonego limitu | -| `kimi-k2` | `if/` | **Nieograniczony** | Brak zgłoszonego limitu | - -### 🟡 MODELE QWEN (autoryzacja kodu urządzenia) - -| Modelka | Przedrostek | Limit | Limit stawki | -| ------------------- | ----------- | ------------------ | ----------------------- | -| `qwen3-coder-plus` | `qw/` | **Nieograniczony** | Brak zgłoszonego limitu | -| `qwen3-coder-flash` | `qw/` | **Nieograniczony** | Brak zgłoszonego limitu | -| `qwen3-coder-next` | `qw/` | **Nieograniczony** | Brak zgłoszonego limitu | -| `vision-model` | `qw/` | **Nieograniczony** | Multimodalny (zdjęcia) | - -### 🟣 GEMINI CLI (Google OAuth) - -| Modelka | Przedrostek | Limit | Limit stawki | -| ------------------------ | ----------- | --------------------------------------- | ---------------- | -| `gemini-3-flash-preview` | `gc/` | **180 tys. tok/miesiąc** + 1 tys./dzień | Reset miesięczny | -| `gemini-2.5-pro` | `gc/` | 180 tys./miesiąc (wspólna pula) | Wysoka jakość | - -### ⚫ NVIDIA NIM (bezpłatny klucz API — build.nvidia.com) - -| Poziom | Limit dzienny | Limit stawki | Notatki | -| ------------------------------- | ------------------- | --------------- | -------------------------------------------------------------------- | -| Bezpłatny (wersja deweloperska) | Brak limitu tokenów | **~40 obr/min** | Ponad 70 modeli; przejście na czyste limity stawek w połowie 2025 r. | - -Popularne darmowe modele: `moonshotai/kimi-k2.5` (Kimi K2.5), `z-ai/glm4.7` (GLM 4.7), `deepseek-ai/deepseek-v3.2` (DeepSeek V3.2), `nvidia/llama-3.3-70b-instruct`, `deepseek/deepseek-r1` - -### ⚪ CEREBRAS (bezpłatny klucz API — inference.cerebras.ai) - -| Poziom | Limit dzienny | Limit stawki | Notatki | -| --------- | -------------------------- | ------------------------- | --------------------------------------------------------------- | -| Bezpłatne | **1 mln tokenów dziennie** | 60 tys. TPM / 30 obr./min | Najszybsze na świecie wnioskowanie LLM; resetuje się codziennie | - -Dostępne bezpłatnie: `llama-3.3-70b`, `llama-3.1-8b`, `deepseek-r1-distill-llama-70b` - -### 🔴 GROQ (bezpłatny klucz API — console.groq.com) - -| Poziom | Limit dzienny | Limit stawki | Notatki | -| --------- | ----------------- | -------------------- | ----------------------------------------------- | -| Bezpłatne | **14,4 tys. RPD** | 30 obr./min na model | Brak karty kredytowej; 429 w limicie, bez opłat | - -Dostępne bezpłatnie: `llama-3.3-70b-versatile`, `gemma2-9b-it`, `mixtral-8x7b`, `whisper-large-v3` - -### 🔴 LONGCAT AI (bezpłatny klucz API — longcat.chat) 🆕 - -| Modelka | Przedrostek | Dzienny bezpłatny limit | Notatki | -| ----------------------------- | ----------- | -------------------------- | ----------------------------------- | -| `LongCat-Flash-Lite` | `lc/` | **50 milionów tokenów** 💥 | Największy darmowy limit w historii | -| `LongCat-Flash-Chat` | `lc/` | 500 tys. tokenów | Czat wieloobrotowy | -| `LongCat-Flash-Thinking` | `lc/` | 500 tys. tokenów | Rozumowanie / CoT | -| `LongCat-Flash-Thinking-2601` | `lc/` | 500 tys. tokenów | Wersja ze stycznia 2026 r. | -| `LongCat-Flash-Omni-2603` | `lc/` | 500 tys. tokenów | Multimodalny | - -> 100% za darmo w publicznej wersji beta. Zarejestruj się na [longcat.chat](https://longcat.chat) za pomocą e-maila lub telefonu. Resetuje się codziennie o godzinie 00:00 UTC. - -### 🟢Zapylanie AI (nie jest wymagany klucz API) 🆕 - -| Modelka | Przedrostek | Limit stawki | Dostawca za | -| ---------- | ----------- | ---------------------- | --------------------- | -| `openai` | `pol/` | 1 zapotrzebowanie/15 s | GPT-5 | -| `claude` | `pol/` | 1 zapotrzebowanie/15 s | Antropiczny Claude | -| `gemini` | `pol/` | 1 zapotrzebowanie/15 s | Google Bliźnięta | -| `deepseek` | `pol/` | 1 zapotrzebowanie/15 s | DeepSeek V3 | -| `llama` | `pol/` | 1 zapotrzebowanie/15 s | Meta Lama 4 Zwiadowca | -| `mistral` | `pol/` | 1 zapotrzebowanie/15 s | AI Mistrala | - -> ✨ **Zero tarcia:** Bez rejestracji, bez klucza API. Dodaj dostawcę Pollinations z pustym polem klucza i zacznie działać natychmiast. - -### 🟠 CLOUDFLARE WORKERS AI (bezpłatny klucz API — cloudflare.com) 🆕 - -| Poziom | Codzienne neurony | Równoważne użycie | Notatki | -| --------- | ----------------- | ------------------------------------------------------ | ---------------------------------- | -| Bezpłatne | **10 000** | ~150 LLM odpowiednio / 500 s audio / 15 000 osadzonych | Globalna przewaga, ponad 50 modeli | - -Popularne bezpłatne modele: `@cf/meta/llama-3.3-70b-instruct`, `@cf/google/gemma-3-12b-it`, `@cf/openai/whisper-large-v3-turbo` (darmowy dźwięk!), `@cf/qwen/qwen2.5-coder-15b-instruct` - -> Wymaga tokenu API + identyfikatora konta od [dash.cloudflare.com](https://dash.cloudflare.com). Zapisz identyfikator konta w ustawieniach dostawcy. - -### 🟣 SCALEWAY AI (1 milion darmowych tokenów — Scaleway.com) 🆕 - -| Poziom | Bezpłatny limit | Lokalizacja | Notatki | -| --------- | --------------- | ------------ | -------------------------------------------------- | -| Bezpłatne | **1M tokenów** | 🇫🇷 Paryż, UE | W ramach limitów nie jest wymagana karta kredytowa | - -Dostępne bezpłatnie: `qwen3-235b-a22b-instruct-2507` (Qwen3 235B!), `llama-3.1-70b-instruct`, `mistral-small-3.2-24b-instruct-2506`, `deepseek-v3-0324` - -> Zgodny z UE/RODO. Uzyskaj klucz API pod adresem [console.scaleway.com](https://console.scaleway.com). - -> **💡 Najlepszy darmowy stos (11 dostawców, 0 $ na zawsze):** -> -> ``` -> Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -> Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED -> LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 -> Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed -> Qwen (qw/) → qwen3-coder models UNLIMITED -> Gemini (gemini/) → Gemini 2.5 Flash — 1,500 req/day free -> Cloudflare AI (cf/) → 50+ models — 10K Neurons/day -> Scaleway (scw/) → Qwen3 235B, Llama 70B — 1M free tokens (EU) -> Groq (groq/) → Llama/Gemma — 14.4K req/day ultra-fast -> NVIDIA NIM (nvidia/) → 70+ open models — 40 RPM forever -> Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day -> ``` - -## 🎙️ Zestaw bezpłatnej transkrypcji - -> Transkrypcja dowolnego audio/wideo za **0 USD** — Deepgram prowadzi z 200 USD za darmo, awaryjnie AssemblyAI 50 USD, Groq Whisper jako nieograniczona kopia zapasowa w sytuacjach awaryjnych. - -| Dostawca | Darmowe kredyty | Najlepszy Model | Limit stawki | -| ----------------- | -------------------------------- | ------------------------------------------------- | -------------------------------------- | -| 🟢 **Deepgram** | **200 $ za darmo** (rejestracja) | `nova-3` — najwyższa dokładność, ponad 30 języków | Brak limitu obrotów na darmowe kredyty | -| 🔵 **AssemblyAI** | **50 $ za darmo** (rejestracja) | `universal-3-pro` — rozdziały, sentyment, PII | Brak limitu obrotów na darmowe kredyty | -| 🔴 **Grok** | **Za darmo na zawsze** | `whisper-large-v3` — Szept OpenAI | 30 obr./min (ograniczona prędkość) | - -**Sugerowana kombinacja w `/dashboard/combos`:** - -``` -Name: free-transcription -Strategy: Priority -Nodes: - [1] deepgram/nova-3 → uses $200 free first - [2] assemblyai/universal-3-pro → fallback when Deepgram credits run out - [3] groq/whisper-large-v3 → free forever, emergency fallback -``` - -Następnie w `/dashboard/media` → zakładka **Transkrypcja**: prześlij dowolny plik audio lub wideo → wybierz punkt końcowy combo → uzyskaj transkrypcję w obsługiwanych formatach. - -## 💡 Kluczowe funkcje - -OmniRoute v2.0 został zbudowany jako platforma operacyjna, a nie tylko pośrednik przekazujący. - -### 🆕 Nowość — ulepszenia inspirowane ClawRouterem (marzec 2026) - -| Funkcja | Co to robi | -| ---------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | -| ⚡ **Grok-4 Szybka Rodzina** | Modele xAI w cenie 0,20 USD/0,50 USD/M — w teście porównawczym 1143 ms (30% szybsze niż Gemini 2.5 Flash) | -| 🧠 **GLM-5 przez Z.AI** | Kontekst wyjściowy 128 tys., 0,5/1 mln USD — najnowszy flagowiec z rodziny GLM | -| 🔮 **MiniMax M2.5** | Rozumowanie + zadania agenta za 0,30 USD/1 milion — znacząca aktualizacja z M2.1 | -| 🎯 **ToolCalling Flag na model** | Dla każdego modelu `toolCalling: true/false` w rejestrze — AutoCombo pomija modele, które nie obsługują narzędzia | -| 🌍 **Wielojęzyczne wykrywanie intencji** | Słowa kluczowe PT/ZH/ES/AR w punktacji AutoCombo — lepszy wybór modelu dla treści innych niż angielski | -| 📊 **Rezerwacje oparte na testach** | Rzeczywiste opóźnienie p95 na podstawie punktacji kombinacji kanałów żądań na żywo — AutoCombo uczy się na podstawie rzeczywistych danych | -| 🔁 **Poproś o deduplikację** | Okno deduplikacji oparte na skrótach treści — bezpieczne dla wielu agentów, zapobiega duplikacjom opłat | -| 🔌 **Strategia routera z wtyczką** | Rozszerzalny interfejs `RouterStrategy` — dodaj niestandardową logikę routingu jako wtyczki | - -### 🚀 Poprzednia wersja 2.0.9+ — Plac zabaw, odciski palców CLI i ACP - -| Funkcja | Co to robi | -| -------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 🎮 **Modelowy plac zabaw** | Strona panelu kontrolnego do bezpośredniego testowania dowolnego modelu — selektory dostawcy/modelu/punktu końcowego, edytor Monako, przesyłanie strumieniowe, przerywanie, synchronizacja | -| 🔏 **Dopasowanie odcisków palców CLI** | Kolejność nagłówków/treści poszczególnych dostawców zgodna z natywnymi podpisami CLI — przełącz dla każdego dostawcy w Ustawieniach > Zabezpieczenia. **Twój adres IP proxy zostanie zachowany** | -| 🤝 **Wsparcie ACP (protokół klienta agenta)** | Wykrywanie agenta CLI (Codex, Claude, Goose, Gemini CLI, OpenClaw + 9 innych), generator procesów, punkt końcowy `/api/acp/agents` | -| 🤖 **Panel agentów AKP** | Debugowanie › Strona Agenty — siatka 14 agentów ze statusem instalacji, wersją i niestandardowym formularzem agenta dla dowolnego narzędzia CLI. **Użytkownicy OpenCode** otrzymują przycisk „Pobierz opencode.json”, który automatycznie generuje gotową do użycia konfigurację ze wszystkimi dostępnymi modelami. | -| 🔧 **Model niestandardowy `apiFormat` Trasowanie** | Modele niestandardowe z `apiFormat: "responses"` teraz prawidłowo kierują do tłumacza interfejsu API odpowiedzi | -| 🏢 **Izolacja przestrzeni roboczej w Kodeksie** | Wiele obszarów roboczych Codex na e-mail — OAuth poprawnie rozdziela połączenia według identyfikatora obszaru roboczego | -| 🔄 **Automatyczna aktualizacja elektronów** | Aplikacja komputerowa sprawdza dostępność aktualizacji + automatyczna instalacja przy ponownym uruchomieniu | - -### 🤖 Operacje agentowe i protokołowe (wersja 2.0) - -| Funkcja | Co to robi | -| ------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------- | -| 🔧 **Serwer MCP (16 narzędzi)** | Narzędzia IDE/agent za pośrednictwem 3 transportów: stdio, SSE (`/api/mcp/sse`), strumieniowy HTTP (`/api/mcp/stream`) | -| 🤝 **Serwer A2A (JSON-RPC + SSE)** | Wykonywanie zadań między agentami z przepływami synchronizacji i przesyłania strumieniowego | -| 🧭 **Strona skonsolidowanych punktów końcowych** | Strona zarządzania z zakładkami z zakładkami Endpoint Proxy, MCP, A2A i API Endpoints | -| 🎚️ **Przełącza włączanie/wyłączanie usługi** | Przełączniki ON/OFF dla MCP i A2A z trwałością ustawień (domyślnie: OFF) | -| 🛰️ **Bicie serca środowiska wykonawczego MCP** | Rzeczywisty status procesu (pid, czas pracy, wiek pulsu, transport, tryb zakresu) | -| 📋 **Ścieżka audytu MCP** | Filtrowane dzienniki audytu z informacją o powodzeniu/porażce i przypisaniu klucza | -| 🔐 **Egzekwowanie zakresu MCP** | 9 szczegółowych uprawnień zakresu dla kontrolowanego dostępu do narzędzi | -| 📡 **Zarządzanie cyklem życia zadań A2A** | Wyświetlaj/filtruj zadania, sprawdzaj zdarzenia/artefakty, anuluj uruchomione zadania | -| 📋 **Odkrycie karty agenta** | `/.well-known/agent.json` do automatycznego wykrywania klienta | -| 🧪 **Uprząż testowa protokołu E2E** | Prawdziwy klient MCP SDK + A2A przepływa w `test:protocols:e2e` | -| ⚙️ **Kontrola operacyjna** | Kombinacja przełączników, zastosuj profile odporności, zresetuj wyłączniki z jednej powierzchni sterującej | - -### 🧠 Trasowanie i inteligencja - -| Funkcja | Co to robi | -| -------------------------------------------------- | -------------------------------------------------------------------------------------- | -| 🎯 **Inteligentny 4-poziomowy powrót** | Auto-trasa: Subskrypcja → Klucz API → Tanie → Bezpłatne | -| 📊 **Śledzenie limitów w czasie rzeczywistym** | Liczba tokenów na żywo + odliczanie resetowania dla każdego dostawcy | -| 🔄 **Tłumaczenie formatu** | OpenAI ↔ Claude ↔ Gemini ↔ Odpowiedzi z konwersjami bezpiecznymi dla schematu | -| 👥 **Obsługa wielu kont** | Wiele kont na dostawcę z inteligentnym wyborem | -| 🔄 **Automatyczne odświeżanie tokena** | Tokeny OAuth odświeżają się automatycznie przy ponownej próbie | -| 🎨 **Niestandardowe kombinacje** | 6 strategii równoważenia + kontrola łańcucha awaryjnego | -| 🌐 **Router z dziką kartą** | `provider/*` routing dynamiczny | -| 🧠 **Myślenie o kontroli budżetu** | Limity rozumowania passthrough, automatycznego, niestandardowego i adaptacyjnego | -| 🔀 **Aliasy modeli** | Wbudowane + niestandardowe aliasing modelu i bezpieczeństwo migracji | -| ⚡ **Degradacja tła** | Kieruj zadania w tle o niskim priorytecie do tańszych modeli | -| 🧪 **Inteligentny routing uwzględniający zadania** | Automatyczny wybór modelu według rodzaju treści (kodowanie/wizja/analiza/podsumowanie) | -| 💬 **Wstrzyknięcie monitu systemowego** | Globalna kontrola zachowania stosowana konsekwentnie | -| 📄 **Zgodność API odpowiedzi** | Pełna obsługa `/v1/responses` Codexu i zaawansowanych przepływów pracy agentów | - -### 🎵 Wielomodalne interfejsy API - -| Funkcja | Co to robi | -| ---------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 🖼️ **Generowanie obrazu** | `/v1/images/generations` z backendem w chmurze i lokalnym | -| 📐 **Osadzenia** | `/v1/embeddings` dla rurociągów wyszukiwania i RAG | -| 🎤 **Transkrypcja audio** | `/v1/audio/transcriptions` — 7 dostawców (Deepgram Nova 3, AssemblyAI, Groq Whisper, HuggingFace, ElevenLabs, OpenAI, Azure), automatyczne wykrywanie języka, obsługa MP4/MP3/WAV | -| 🔊 **Zamiana tekstu na mowę** | `/v1/audio/speech` — 10 dostawców (ElevenLabs, OpenAI, Deepgram, Cartesia, PlayHT, HuggingFace, Nvidia NIM, Inworld, Coqui, Tortoise) z poprawnymi komunikatami o błędach | -| 🎬 **Generowanie wideo** | `/v1/videos/generations` (przepływy pracy ComfyUI + SD WebUI) | -| 🎵 **Pokolenie muzyki** | `/v1/music/generations` (Przepływy pracy w ComfyUI) | -| 🛡️ **Moderacje** | `/v1/moderations` kontrole bezpieczeństwa | -| 🔀 **Ponowna pozycja** | `/v1/rerank` dla punktacji trafności | -| 🔍 **Wyszukiwarka internetowa** 🆕 | `/v1/search` — 5 dostawców (Serper, Brave, Perplexity, Exa, Tavily), ponad 6500 bezpłatnych miesięcznie, automatyczne przełączanie awaryjne, pamięć podręczna | - -### 🛡️ Odporność, bezpieczeństwo i zarządzanie - -| Funkcja | Co to robi | -| ---------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | -| 🔌 **Wyłączniki** | Wyłączenie/odzyskiwanie dla każdego modelu z kontrolą progów | -| 🎯 **Modele obsługujące punkt końcowy** | Modele niestandardowe deklarują obsługiwane punkty końcowe + format API | -| 🛡️ **Stado Przeciw Gromom** | Mutex + zabezpieczenia semaforów przy zdarzeniach ponawiania/oceniania | -| 🧠 **Semantyczna + pamięć podręczna podpisów** | Redukcja kosztów/opóźnień dzięki dwóm warstwom pamięci podręcznej | -| ⚡ **Poproś o idempotencję** | Zduplikowane okno ochrony | -| 🔒 **Podrabianie odcisków palców TLS** | Odcisk palca TLS podobny do przeglądarki — **ogranicza wykrywanie botów i oznaczanie kont** | -| 🔏 **Dopasowanie odcisków palców CLI** | Pasuje do natywnych sygnatur żądań CLI — **zmniejsza ryzyko bana, zachowując jednocześnie adres IP proxy** | -| 🌐 **Filtrowanie IP** | Kontrola listy dozwolonych/blokowanych w przypadku ujawnionych wdrożeń | -| 📊 **Edytowalne limity stawek** | Konfigurowalne limity na poziomie globalnym/dostawcy z trwałością | -| 🔑 **Zarządzanie kluczami API + zakres** | Bezpieczne wydawanie/rotacja kluczy oraz kontrola modelu/dostawcy | -| 🛡️ **Chronione `/models`** | Opcjonalne bramkowanie uwierzytelniania i ukrywanie dostawcy dla katalogu modeli | - -### 📊 Obserwacja i analityka - -| Funkcja | Co to robi | -| ------------------------------------ | --------------------------------------------------------------------- | -| 📝 **Żądanie + rejestrowanie proxy** | Pełne rejestrowanie żądań/odpowiedzi i proxy | -| 📉 **Streamed Detailed Logs** 🆕 | Reconstructs SSE payload streams cleanly into the UI | -| 📋 **Ujednolicony panel dzienników** | Widoki żądań, proxy, audytu i konsoli na jednej stronie | -| 🔍 **Poproś o telemetrię** | Opóźnienie p50/p95/p99 i śledzenie żądań | -| 🏥 **Panel zdrowia** | Czas pracy, stany wyłączników, blokady, statystyki pamięci podręcznej | -| 💰 **Śledzenie kosztów** | Kontrola budżetu i widoczność cen dla poszczególnych modeli | -| 📈 **Wizualizacje analityczne** | Informacje o użyciu modelu/dostawcy i widoki trendów | -| 🧪 **Ramy oceny** | Testowanie złotego zestawu z konfigurowalnymi strategiami dopasowania | - -### ☁️ Wdrożenie i platforma - -| Funkcja | Co to robi | -| ----------------------------------------- | -------------------------------------------------------------------------------------- | -| 🌐 **Wdrażaj gdziekolwiek** | Localhost, VPS, Docker, środowiska chmurowe | -| 💾 **Synchronizacja z chmurą** | Synchronizacja konfiguracji za pośrednictwem pracownika w chmurze | -| 🔄 **Kopia zapasowa/Przywracanie** | Przepływy eksportu/importu i odzyskiwania po awarii | -| 🧙 **Kreator wdrażania** | Konfiguracja z przewodnikiem po pierwszym uruchomieniu | -| 🔧 **Panel narzędzi CLI** | Konfiguracja popularnych narzędzi do kodowania jednym kliknięciem | -| 🎮 **Modelowy plac zabaw** | Przetestuj dowolnego dostawcę/model/punkt końcowy z poziomu pulpitu nawigacyjnego | -| 🔏 **Przełączanie linii papilarnych CLI** | Dopasowywanie odcisków palców poszczególnych dostawców w Ustawieniach > Bezpieczeństwo | -| 🌐 **i18n (30 języków)** | Pełny pulpit nawigacyjny + obsługa języków dokumentów z pokryciem RTL | -| 🧹 **Wyczyść wszystkie modele** | Czyszczenie listy modeli jednym kliknięciem w szczegółach dostawcy | -| 👁️ **Sidebar Controls** 🆕 | Hide components and integrations from Appearance Settings | -| 📋 **Szablony wydania** | Standaryzowane szablony GitHub dla błędów i funkcji | -| 📂 **Niestandardowy katalog danych** | `DATA_DIR` zastąpienie lokalizacji przechowywania | - -### Funkcja Głębokie nurkowanie - -#### Inteligentne rozwiązanie awaryjne z praktyczną kontrolą kosztów - -```txt -Combo: "my-coding-stack" - 1. cc/claude-opus-4-6 - 2. nvidia/llama-3.3-70b - 3. glm/glm-4.7 - 4. if/kimi-k2-thinking -``` - -W przypadku spadku limitu, szybkości lub kondycji OmniRoute automatycznie przechodzi do następnego kandydata bez konieczności ręcznego przełączania. - -#### Zarządzanie protokołami, które jest widoczne i obsługiwane - -- MCP + A2A można znaleźć w interfejsie użytkownika i dokumentach (nie są ukryte) -- Interfejsy API stanu protokołu udostępniają aktualne dane operacyjne (`/api/mcp/*`, `/api/a2a/*`) -- Pulpity nawigacyjne zawierają działania dla operacji dnia 2 (przełączniki kombinacji, resetowanie wyłączników, anulowanie zadań) - -#### Tłumacz + przepływ pracy z walidacją - -Obszar Tłumacza obejmuje: - -- **Plac zabaw**: poproś o sprawdzenie transformacji -- **Tester czatu**: pełne żądanie/odpowiedź w obie strony -- **Stanowisko testowe**: wiele przypadków w jednym przebiegu -- **Monitor na żywo**: podgląd ruchu drogowego w czasie rzeczywistym - -Plus weryfikacja protokołu z prawdziwymi klientami za pośrednictwem `npm run test:protocols:e2e`. - -> 📖 **[MCP Server README](open-sse/mcp-server/README.md)** — Informacje o narzędziach, konfiguracje IDE i przykłady klientów -> -> 📖 **[A2A Server README](src/lib/a2a/README.md)** — Umiejętności, metody JSON-RPC, przesyłanie strumieniowe i cykl życia zadań - -## 🧪 Oceny (Ewaluacje) - -OmniRoute zawiera wbudowaną platformę ewaluacyjną do testowania jakości odpowiedzi LLM na podstawie złotego zestawu. Uzyskaj do niego dostęp poprzez **Analytics → Evals** na pulpicie nawigacyjnym. - -### Wbudowany złoty zestaw - -Fabrycznie załadowany „Złoty zestaw OmniRoute” zawiera przypadki testowe dla: - -- Pozdrowienia, matematyka, geografia, generowanie kodu -- Zgodność z formatem JSON, tłumaczenie, generowanie przecen -- Odmowa bezpieczeństwa (szkodliwa treść), liczenie, logika boolowska - -### Strategie oceny - -| Strategia | Opis | Przykład | -| ---------- | ----------------------------------------------------------------------- | -------------------------------- | -| `exact` | Dane wyjściowe muszą dokładnie odpowiadać | `"4"` | -| `contains` | Dane wyjściowe muszą zawierać podciąg (wielkość liter nie ma znaczenia) | `"Paris"` | -| `regex` | Dane wyjściowe muszą pasować do wzorca wyrażenia regularnego | `"1.*2.*3"` | -| `custom` | Niestandardowa funkcja JS zwraca wartość prawda/fałsz | `(output) => output.length > 10` | - ---- - -## 📖 Przewodnik konfiguracji - -### Konfiguracja protokołu (MCP + A2A) - -<details> -<summary><b>🧩 Konfiguracja MCP (protokół kontekstu modelu)</b></summary> - -Uruchom transport MCP w trybie stdio: - -```bash -omniroute --mcp -``` - -Zalecany przebieg walidacji: - -1. Podłącz klienta MCP przez stdio. -2. Uruchom `omniroute_get_health`. -3. Uruchom `omniroute_list_combos`. -4. Otwórz `/dashboard/mcp`, aby potwierdzić puls, aktywność i audyt. - -Przydatne API do automatyzacji: - -- `GET /api/mcp/status` -- `GET /api/mcp/tools` -- `GET /api/mcp/audit` -- `GET /api/mcp/audit/stats` - -</details> - -<details> -<summary><b>🤝 Konfiguracja A2A (Agent2Agent)</b></summary> - -Odkryj agenta: - -```bash -curl http://localhost:20128/.well-known/agent.json -``` - -Wyślij zadanie: - -```bash -curl -X POST http://localhost:20128/a2a \ - -H 'content-type: application/json' \ - -d '{"jsonrpc":"2.0","id":"setup-a2a","method":"message/send","params":{"skill":"quota-management","messages":[{"role":"user","content":"Summarize quota status."}]}}' -``` - -Zarządzaj cyklem życia: - -- `GET /api/a2a/status` -- `GET /api/a2a/tasks` -- `GET /api/a2a/tasks/:id` -- `POST /api/a2a/tasks/:id/cancel` - -Interfejs operacyjny: - -- `/dashboard/a2a` dla obserwowalności zadania/stanu/strumienia i działań dymnych - -</details> - -<details> -<summary><b>🧪 Kompleksowa walidacja protokołu</b></summary> - -Sprawdź oba protokoły u prawdziwych klientów: - -```bash -npm run test:protocols:e2e -``` - -To weryfikuje: - -- Klient MCP SDK łączy/listuje/wywołuje -- Wykrywanie/wysyłanie/przesyłanie strumieniowe/pobieranie/anulowanie A2A -- Sprawdzaj dane w interfejsach API audytu MCP i zarządzania zadaniami A2A - -</details> - -<details> -<summary><b>💳 Dostawcy subskrypcji</b></summary> - -### Kod Claude’a (Pro/Max) - -```bash -Dashboard → Providers → Connect Claude Code -→ OAuth login → Auto token refresh -→ 5-hour + weekly quota tracking - -Models: - cc/claude-opus-4-6 - cc/claude-sonnet-4-5-20250929 - cc/claude-haiku-4-5-20251001 -``` - -**Wskazówka dla profesjonalistów:** używaj Opus do skomplikowanych zadań, a Sonnet do szybkości. OmniRoute śledzi limit na model! - -### Kodeks OpenAI (Plus/Pro) - -```bash -Dashboard → Providers → Connect Codex -→ OAuth login (port 1455) -→ 5-hour + weekly reset - -Models: - cx/gpt-5.2-codex - cx/gpt-5.1-codex-max -``` - -#### Zarządzanie limitami konta Codex (5h + tygodniowo) - -Każde konto Codexu ma teraz przełączniki zasad w `Dashboard -> Providers`: - -- `5h` (ON/OFF): wymusza politykę 5-godzinnego progu okna. -- `Weekly` (WŁ./WYŁ.): wymuszanie polityki cotygodniowego progu okna. -- Zachowanie progowe: gdy włączone okno osiągnie >=90% wykorzystania, to konto zostanie pominięte. -- Zachowanie rotacyjne: OmniRoute automatycznie kieruje do następnego kwalifikującego się konta Codex. -- Resetowanie zachowania: kiedy dostawca `resetAt` upłynie czas, konto automatycznie stanie się ponownie kwalifikowalne. - -Scenariusze: - -- `5h ON` + `Weekly ON`: konto jest pomijane, gdy którekolwiek okno osiągnie próg. -- `5h OFF` + `Weekly ON`: tylko użycie tygodniowe może zablokować konto. -- `5h ON` + `Weekly OFF`: tylko 5-godzinne użytkowanie może zablokować konto. -- `resetAt` zaliczony: konto automatycznie ponownie wchodzi do rotacji (nie można go ponownie włączyć ręcznie). - -### Gemini CLI (DARMOWE 180 tys./miesiąc!) - -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Najlepsza wartość:** Ogromny darmowy poziom! Użyj tego przed płatnymi poziomami. - -### Drugi pilot GitHuba - -```bash -Dashboard → Providers → Connect GitHub -→ OAuth via GitHub -→ Monthly reset (1st of month) - -Models: - gh/gpt-5 - gh/claude-4.5-sonnet - gh/gemini-3-pro -``` - -</details> - -<details> -<summary><b>🔑 Dostawcy kluczy API</b></summary> - -### NVIDIA NIM (DARMOWY dostęp dla programistów — ponad 70 modeli) - -1. Zarejestruj się: [build.nvidia.com](https://build.nvidia.com) -2. Uzyskaj bezpłatny klucz API (w cenie 1000 kredytów) -3. Panel kontrolny → Dodaj dostawcę → NVIDIA NIM: - - Klucz API: `nvapi-your-key` - -**Modele:** `nvidia/llama-3.3-70b-instruct`, `nvidia/mistral-7b-instruct` i ponad 50 innych - -**Wskazówka dla profesjonalistów:** API zgodne z OpenAI — działa bezproblemowo z tłumaczeniem formatu OmniRoute! - -### DeepSeek - -1. Zarejestruj się: [platform.deepseek.com](https://platform.deepseek.com) -2. Zdobądź klucz API -3. Panel kontrolny → Dodaj dostawcę → DeepSeek - -**Modele:** `deepseek/deepseek-chat`, `deepseek/deepseek-coder` - -### Groq (dostępny bezpłatny poziom!) - -1. Zarejestruj się: [console.groq.com](https://console.groq.com) -2. Uzyskaj klucz API (w cenie bezpłatna warstwa) -3. Panel kontrolny → Dodaj dostawcę → Groq - -**Modele:** `groq/llama-3.3-70b`, `groq/mixtral-8x7b` - -**Wskazówka dla profesjonalistów:** Ultraszybkie wnioskowanie — najlepsze do kodowania w czasie rzeczywistym! - -### OpenRouter (ponad 100 modeli) - -1. Zarejestruj się: [openrouter.ai](https://openrouter.ai) -2. Zdobądź klucz API -3. Panel kontrolny → Dodaj dostawcę → OpenRouter - -**Modele:** Uzyskaj dostęp do ponad 100 modeli wszystkich głównych dostawców za pomocą jednego klucza API. - -</details> - -<details> -<summary><b>💰 Tani dostawcy (kopia zapasowa)</b></summary> - -### GLM-4.7 (reset dzienny, 0,6 USD/1 mln) - -1. Zarejestruj się: [Zhipu AI](https://open.bigmodel.cn/) -2. Uzyskaj klucz API z planu kodowania -3. Panel → Dodaj klucz API: - - Dostawca: `glm` - - Klucz API: `your-key` - -**Użyj:** `glm/glm-4.7` - -**Wskazówka dla profesjonalistów:** Plan kodowania oferuje 3× limit przy cenie 1/7! Resetuj codziennie o 10:00. - -### MiniMax M2.1 (reset 5 godz., 0,20 USD/1 mln) - -1. Zarejestruj się: [MiniMax](https://www.minimax.io/) -2. Zdobądź klucz API -3. Panel → Dodaj klucz API - -**Użyj:** `minimax/MiniMax-M2.1` - -**Wskazówka dla profesjonalistów:** Najtańsza opcja dla długiego kontekstu (1 milion tokenów)! - -### Kimi K2 (9 USD miesięcznie) - -1. Subskrybuj: [Moonshot AI](https://platform.moonshot.ai/) -2. Zdobądź klucz API -3. Panel → Dodaj klucz API - -**Użyj:** `kimi/kimi-latest` - -**Wskazówka dla profesjonalistów:** Naprawiono 9 USD miesięcznie za 10 mln tokenów = efektywny koszt 0,90 USD/1 mln! - -</details> - -<details> -<summary><b>🆓 BEZPŁATNI dostawcy (awaryjna kopia zapasowa)</b></summary> - -### Qoder (5 DARMOWYCH modeli przez OAuth) - -```bash -Dashboard → Connect Qoder -→ Qoder OAuth login -→ Unlimited usage - -Models: - if/kimi-k2-thinking - if/qwen3-coder-plus - if/glm-4.7 - if/minimax-m2 - if/deepseek-r1 -``` - -### Qwen (4 DARMOWE modele poprzez kod urządzenia) - -```bash -Dashboard → Connect Qwen -→ Device code authorization -→ Unlimited usage - -Models: - qw/qwen3-coder-plus - qw/qwen3-coder-flash -``` - -### Kiro (Claude ZA DARMO) - -```bash -Dashboard → Connect Kiro -→ AWS Builder ID or Google/GitHub -→ Unlimited usage - -Models: - kr/claude-sonnet-4.5 - kr/claude-haiku-4.5 -``` - -</details> - -<details> -<summary><b>🎨 Twórz kombinacje</b></summary> - -### Przykład 1: Maksymalizuj subskrypcję → Tania kopia zapasowa - -``` -Dashboard → Combos → Create New - -Name: premium-coding -Models: - 1. cc/claude-opus-4-6 (Subscription primary) - 2. glm/glm-4.7 (Cheap backup, $0.6/1M) - 3. minimax/MiniMax-M2.1 (Cheapest fallback, $0.20/1M) - -Use in CLI: premium-coding -``` - -### Przykład 2: Tylko bezpłatny (zero kosztów) - -``` -Name: free-combo -Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) - -Cost: $0 forever! -``` - -</details> - -<details> -<summary><b>🔧 Integracja z CLI</b></summary> - -### IDE kursora - -``` -Settings → Models → Advanced: - OpenAI API Base URL: http://localhost:20128/v1 - OpenAI API Key: [from OmniRoute dashboard] - Model: cc/claude-opus-4-6 -``` - -### Kod Claude’a - -Użyj strony **Narzędzia CLI** w panelu kontrolnym, aby dokonać konfiguracji jednym kliknięciem, lub edytuj ręcznie `~/.claude/settings.json`. - -### Interfejs wiersza polecenia Kodeksu - -```bash -export OPENAI_BASE_URL="http://localhost:20128" -export OPENAI_API_KEY="your-omniroute-api-key" - -codex "your prompt" -``` - -### OpenClaw - -**Opcja 1 — Panel kontrolny (zalecany):** - -``` -Dashboard → CLI Tools → OpenClaw → Select Model → Apply -``` - -**Opcja 2 — Ręcznie:** Edytuj `~/.openclaw/openclaw.json`: - -```json -{ - "models": { - "providers": { - "omniroute": { - "baseUrl": "http://127.0.0.1:20128/v1", - "apiKey": "sk_omniroute", - "api": "openai-completions" - } - } - } -} -``` - -> **Uwaga:** OpenClaw działa tylko z lokalnym OmniRoute. Użyj `127.0.0.1` zamiast `localhost`, aby uniknąć problemów z rozdzielczością IPv6. - -### Kliknij / Kontynuuj / RooCode - -``` -Settings → API Configuration: - Provider: OpenAI Compatible - Base URL: http://localhost:20128/v1 - API Key: [from OmniRoute dashboard] - Model: if/kimi-k2-thinking -``` - -### Otwarty kod - -**Krok 1:** Dodaj OmniRoute jako niestandardowego dostawcę: - -```bash -opencode -/connect -# Select "Other" → Enter ID: "omniroute" → Enter your OmniRoute API key -``` - -**Krok 2:** Utwórz/edytuj `opencode.json` w katalogu głównym projektu: - -```json -{ - "$schema": "https://opencode.ai/config.json", - "provider": { - "omniroute": { - "npm": "@ai-sdk/openai-compatible", - "name": "OmniRoute", - "options": { - "baseURL": "http://localhost:20128/v1" - }, - "models": { - "cc/claude-sonnet-4-20250514": { "name": "Claude Sonnet 4" }, - "gg/gemini-2.5-pro": { "name": "Gemini 2.5 Pro" }, - "if/kimi-k2-thinking": { "name": "Kimi K2 (Free)" } - } - } - } -} -``` - -**Krok 3:** Wybierz model w OpenCode: - -```bash -/models -# Select any OmniRoute model from the list -``` - -> **Wskazówka:** dodaj dowolny model dostępny w punkcie końcowym OmniRoute `/v1/models` do sekcji `models`. Użyj formatu `provider/model-id` w panelu kontrolnym OmniRoute. - -</details> - ---- - -## 🐛 Rozwiązywanie problemów - -<details> -<summary><b>Kliknij, aby rozwinąć przewodnik rozwiązywania problemów</b></summary> - -**„Model językowy nie dostarczał komunikatów”** - -- Wyczerpany limit dostawcy → Sprawdź moduł śledzenia limitów na pulpicie nawigacyjnym -- Rozwiązanie: użyj kombinacji zastępczej lub przejdź na tańszy poziom - -**Ograniczenie szybkości** - -- Limit subskrypcji wyczerpany → Powrót do GLM/MiniMax -- Dodaj kombinację: `cc/claude-opus-4-6 → glm/glm-4.7 → if/kimi-k2-thinking` - -**Token OAuth wygasł** - -- Automatyczne odświeżanie przez OmniRoute -- Jeśli problemy nadal występują: Panel kontrolny → Dostawca → Połącz ponownie - -**Wysokie koszty** - -- Sprawdź statystyki użytkowania w Panelu → Koszty -- Zmień model podstawowy na GLM/MiniMax -- Korzystaj z bezpłatnej warstwy (Gemini CLI, Qoder) do zadań niekrytycznych - -**Porty pulpitu nawigacyjnego/API są nieprawidłowe** - -- `PORT` to kanoniczny port bazowy (i domyślnie port API) -- `API_PORT` zastępuje tylko odbiornik API zgodny z OpenAI -- `DASHBOARD_PORT` zastępuje tylko pulpit nawigacyjny/nasłuchiwanie Next.js -- Ustaw `NEXT_PUBLIC_BASE_URL` na swój pulpit nawigacyjny/publiczny adres URL (w przypadku wywołań zwrotnych OAuth) - -**Błędy synchronizacji z chmurą** - -- Sprawdź, czy `BASE_URL` wskazuje na działającą instancję -- Sprawdź, czy `CLOUD_URL` wskazuje na oczekiwany punkt końcowy w chmurze -- Zachowaj wyrównanie wartości `NEXT_PUBLIC_*` z wartościami po stronie serwera - -**Pierwsze logowanie nie działa** - -- Sprawdź `INITIAL_PASSWORD` w `.env` -- Jeśli nieustawione, hasło zastępcze to `123456` - -**Brak dzienników żądań** - -- Ustaw `ENABLE_REQUEST_LOGS=true` w `.env` - -**Test połączenia pokazuje „Nieprawidłowy” dla dostawców kompatybilnych z OpenAI** - -- Wielu dostawców nie udostępnia punktu końcowego `/models` -- OmniRoute v1.0.6+ zawiera weryfikację awaryjną poprzez uzupełnianie czatu -- Upewnij się, że podstawowy adres URL zawiera przyrostek `/v1` - -### 🔐 OAuth na zdalnym serwerze - -<a name="oauth-on-a-remote-server"></a> -<a name="oauth-em-servidor-remoto"></a> - -> **⚠️ Ważne dla użytkowników korzystających z OmniRoute na VPS, Dockerze lub dowolnym serwerze zdalnym** - -#### Dlaczego Antigravity / Gemini CLI OAuth nie działa na zdalnych serwerach? - -Dostawcy **Antigravity** i **Gemini CLI** korzystają z **Google OAuth 2.0**. Google wymaga, aby wartość `redirect_uri` w przepływie OAuth dokładnie odpowiadała jednemu z wcześniej zarejestrowanych identyfikatorów URI w Google Cloud Console aplikacji. - -Poświadczenia OAuth zawarte w OmniRoute są zarejestrowane **tylko dla `localhost`**. Gdy uzyskujesz dostęp do OmniRoute na zdalnym serwerze (np. `https://omniroute.myserver.com`), Google odrzuca uwierzytelnienie za pomocą: - -``` -Error 400: redirect_uri_mismatch -``` - -#### Rozwiązanie: skonfiguruj własne dane uwierzytelniające OAuth - -Musisz utworzyć **Identyfikator klienta OAuth 2.0** w Google Cloud Console przy użyciu identyfikatora URI swojego serwera. - -#### Krok po kroku - -**1. Otwórz konsolę Google Cloud** - -Przejdź do: [https://console.cloud.google.com/apis/credentials](https://console.cloud.google.com/apis/credentials) - -**2. Utwórz nowy identyfikator klienta OAuth 2.0** - -- Kliknij **"+ Utwórz dane uwierzytelniające"** → **"Identyfikator klienta OAuth"** -- Typ aplikacji: **"Aplikacja internetowa"** -- Imię: dowolne (np. `OmniRoute Remote`) - -**3. Dodaj autoryzowane identyfikatory URI przekierowań** - -W polu **„Autoryzowane identyfikatory URI przekierowań”** dodaj: - -``` -https://your-server.com/callback -``` - -> Zamień `your-server.com` na domenę lub adres IP swojego serwera (w razie potrzeby podaj port, np. `http://45.33.32.156:20128/callback`). - -**4. Zapisz i skopiuj dane uwierzytelniające** - -Po utworzeniu Google wyświetli **Identyfikator klienta** i **Tajemnica klienta**. - -**5. Ustaw zmienne środowiskowe** - -W `.env` (lub zmiennych środowiskowych Dockera): - -```bash -# For Antigravity: -ANTIGRAVITY_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com -ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-your-secret - -# For Gemini CLI: -GEMINI_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com -GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -``` - -**6. Uruchom ponownie OmniRoute** - -```bash -# npm: -npm run dev - -# Docker: -docker restart omniroute -``` - -**7. Spróbuj połączyć się ponownie** - -Panel kontrolny → Dostawcy → Antygrawitacja (lub Gemini CLI) → OAuth - -Google będzie teraz poprawnie przekierowywać do `https://your-server.com/callback`. - ---- - -#### Tymczasowe obejście (bez niestandardowych poświadczeń) - -Jeśli nie chcesz teraz konfigurować własnych danych uwierzytelniających, nadal możesz skorzystać z **ręcznego przepływu adresów URL**: - -1. OmniRoute otwiera adres URL autoryzacji Google -2. Po autoryzacji Google próbuje przekierować do `localhost` (co kończy się niepowodzeniem na serwerze zdalnym) -3. **Skopiuj pełny adres URL** z paska adresu przeglądarki (nawet jeśli strona się nie ładuje) -4. Wklej ten adres URL w polu pokazanym w trybie połączenia OmniRoute -5. Kliknij **„Połącz”** - -> Działa to, ponieważ kod autoryzacyjny w adresie URL jest ważny niezależnie od tego, czy załadowana została strona przekierowująca. - ---- - -<details> -<summary><b>🇧🇷 Wersja w języku portugalskim</b></summary> - -#### Por que o OAuth do Antigravity / Gemini CLI falha na zdalnych serwerach? - -Sprawdzone **Antigravity** i **Gemini CLI** używane **Google OAuth 2.0** dla autentyczności. O Google, możesz to zrobić `redirect_uri` bez zmiany OAuth seja **exatamente** uma das URI pre-cadastradas no Google Cloud Console do aplikacji. - -Jako uwierzytelnienie OAuth zostało wydane przez OmniRoute w cadastradas **apenas dla `localhost`**. Możesz uzyskać dostęp do OmniRoute na serwerze zdalnym (np.: `https://omniroute.meuservidor.com`), lub Google rejeita a autenticação com: - -``` -Error 400: redirect_uri_mismatch -``` - -#### Rozwiązanie: Skonfiguruj suas próprias credenciais OAuth - -Precyzyjne żądanie **Identyfikator klienta OAuth 2.0** nie Google Cloud Console poprzez URI do tego serwera. - -#### Passo za passo - -**1. Dostęp do konsoli Google Cloud** - -Abra: [https://console.cloud.google.com/apis/credentials](https://console.cloud.google.com/apis/credentials) - -**2. Wezwij nowy identyfikator klienta OAuth 2.0** - -- Kliknij **"+ Utwórz dane uwierzytelniające"** → **"Identyfikator klienta OAuth"** -- Typ aplikacji: **"Aplikacja internetowa"** -- Nazwa: escolha qualquer nom (np.: `OmniRoute Remote`) - -**3. Adicione jako autoryzowane identyfikatory URI przekierowań** - -Bez komentarza **„Autoryzowane identyfikatory URI przekierowań”**, rada: - -``` -https://seu-servidor.com/callback -``` - -> Substitua `seu-servidor.com` pelo domínio lub IP do seu servidor (w tym porta se necessário, np.: `http://45.33.32.156:20128/callback`). - -**4. Zapisz i skopiuj jako poświadczenie** - -Após criar, o Google mostrará o **Identyfikator klienta** i o **Tajemnica klienta**. - -**5. Skonfiguruj jako variáveis de ambiente** - -Nie seu `.env` (lub nas variáveis de ambiente do Docker): - -```bash -# Para Antigravity: -ANTIGRAVITY_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com -ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret - -# Para Gemini CLI: -GEMINI_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com -GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -``` - -**6. Reinicie lub OmniRoute** - -```bash -# Se usando npm: -npm run dev - -# Se usando Docker: -docker restart omniroute -``` - -**7. Tente conectar novamente** - -Panel kontrolny → Dostawcy → Antygrawitacja (lub Gemini CLI) → OAuth - -Agora o Google redirecionará corretamente dla `https://seu-servidor.com/callback` i autentyczna funkcja. - ---- - -#### Obejście tymczasowe (sem configurar credenciais prróprias) - -Jeśli chcesz uzyskać dostęp do **podręcznika URL**: - -1. OmniRoute abrirá adres URL autoryzacji w Google -2. Após você autorizar, o Google tentará redirecionar para `localhost` (que falha no servidor remoto) -3. **Skopiuj kompletny adres URL** da barra de endereço do seu przeglądarki (wiadomość que a página não carregue) -4. Cole essa URL no campo que aparece no modal de conexão do OmniRoute -5. Kliknij je **„Połącz”** - -> To obejście funkcji porque o kodigo de autorização na URL é válido niezależny do przekierowania ter carregado ou não. - -</details> - ---- - -</details> - -## 🛠️ Stos technologii - -<details> -<summary><b>Kliknij, aby rozwinąć szczegóły stosu technologii</b></summary> - -- **Środowisko wykonawcze**: Node.js 18–22 LTS (⚠️ Node.js 24+ jest **nieobsługiwany** — `better-sqlite3` natywne pliki binarne są niekompatybilne) -- **Język**: TypeScript 5.9 — **100% TypeScript** w `src/` i `open-sse/` (zero `any` w modułach podstawowych od wersji 2.0) -- **Framework**: Next.js 16 + React 19 + Tailwind CSS 4 -- **Baza danych**: LowDB (JSON) + SQLite (stan domeny + logi proxy + audyt MCP + decyzje dotyczące routingu) -- **Schematy**: Zod (walidacja we/wy narzędzia MCP, kontrakty API) -- **Protokoły**: MCP (stdio/HTTP) + A2A v0.3 (JSON-RPC 2.0 + SSE) -- **Streaming**: zdarzenia wysyłane przez serwer (SSE) -- **Auth**: OAuth 2.0 (PKCE) + JWT + klucze API + autoryzacja w zakresie MCP -- **Testowanie**: Uruchomienie testów Node.js + Vitest (ponad 900 testów, w tym testy jednostkowe, integracyjne, E2E) -- **CI/CD**: Akcje GitHub (automatyczne publikowanie npm + Docker Hub w momencie wydania) -- **Strona internetowa**: [omniroute.online](https://omniroute.online) -- **Pakiet**: [npmjs.com/package/omniroute](https://www.npmjs.com/package/omniroute) -- **Doker**: [hub.docker.com/r/diegosouzapw/omniroute](https://hub.docker.com/r/diegosouzapw/omniroute) -- **Odporność**: wyłącznik automatyczny, wykładnicze wycofywanie, stado przeciwgrzmotowe, fałszowanie TLS, samonaprawianie automatycznej kombinacji - -</details> - ---- - -## 📖 Dokumentacja - -| Dokument | Opis | -| ---------------------------------------------- | --------------------------------------------------------------------- | -| [User Guide](docs/USER_GUIDE.md) | Dostawcy, kombinacje, integracja CLI, wdrożenie | -| [API Reference](docs/API_REFERENCE.md) | Wszystkie punkty końcowe z przykładami | -| [MCP Server](open-sse/mcp-server/README.md) | 16 narzędzi MCP, konfiguracje IDE, klienci Python/TS/Go | -| [A2A Server](src/lib/a2a/README.md) | Protokół JSON-RPC 2.0, umiejętności, streaming, zarządzanie zadaniami | -| [Auto-Combo Engine](docs/auto-combo.md) | Punktacja 6-czynnikowa, pakiety trybów, samoleczenie | -| [Troubleshooting](docs/TROUBLESHOOTING.md) | Typowe problemy i rozwiązania | -| [Architecture](docs/ARCHITECTURE.md) | Architektura systemu i elementy wewnętrzne | -| [Contributing](CONTRIBUTING.md) | Konfiguracja i wytyczne dotyczące programowania | -| [OpenAPI Spec](docs/openapi.yaml) | Specyfikacja OpenAPI 3.0 | -| [Security Policy](SECURITY.md) | Zgłaszanie luk w zabezpieczeniach i praktyki bezpieczeństwa | -| [VM Deployment](docs/VM_DEPLOYMENT_GUIDE.md) | Kompletny przewodnik: konfiguracja VM + nginx + Cloudflare | -| [Features Gallery](docs/FEATURES.md) | Wizualna wycieczka po panelu ze zrzutami ekranu | -| [Release Checklist](docs/RELEASE_CHECKLIST.md) | Etapy sprawdzania poprawności przed wydaniem | - ---- - -## 🗺️ Plan działania - -OmniRoute ma **ponad 210 funkcji zaplanowanych** w wielu fazach rozwoju. Oto kluczowe obszary: - -| Kategoria | Planowane funkcje | Najważniejsze | -| -------------------------------- | ----------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | -| 🧠 **Routing i inteligencja** | 25+ | Routing z najmniejszym opóźnieniem, routing oparty na tagach, wstępna inspekcja przydziału, wybór konta P2C | -| 🔒 **Bezpieczeństwo i zgodność** | 20+ | Wzmocnienie SSRF, maskowanie poświadczeń, limit szybkości na punkt końcowy, zakres kluczy zarządzania | -| 📊 **Obserwowalność** | 15+ | Integracja OpenTelemetry, monitorowanie kwot w czasie rzeczywistym, śledzenie kosztów według modelu | -| 🔄 **Integracja dostawców** | 20+ | Rejestr modeli dynamicznych, czasy odnowienia dostawcy, Kodeks dla wielu kont, analiza przydziału Copilot | -| ⚡ **Wydajność** | 15+ | Podwójna warstwa pamięci podręcznej, pamięć podręczna podpowiedzi, pamięć podręczna odpowiedzi, utrzymywanie transmisji strumieniowej, wsadowe API | -| 🌐 **Ekosystem** | 10+ | WebSocket API, ładowanie konfiguracji na gorąco, rozproszony magazyn konfiguracji, tryb komercyjny | - -### 🔜 Już wkrótce - -- 🔗 **Integracja OpenCode** — natywna obsługa dostawców dla IDE kodowania OpenCode AI -- 🔗 **Integracja z TRAE** — Pełne wsparcie dla platformy rozwojowej TRAE AI -- 📦 **Batch API** — Asynchroniczne przetwarzanie wsadowe dla żądań masowych -- 🎯 **Routing oparty na tagach** — Kieruj żądania na podstawie niestandardowych tagów i metadanych -- 💰 **Strategia najniższych kosztów** — Automatycznie wybierz najtańszego dostępnego dostawcę - -> 📝 Pełna specyfikacja funkcji dostępna w [**OMNI_TOKEN_342**](docs/new-features/) (217 szczegółowych specyfikacji) - ---- - -## 👥 Współtwórcy - -[![Contributors](https://contrib.rocks/image?repo=diegosouzapw/OmniRoute&max=100&columns=20&anon=1)](https://github.com/diegosouzapw/OmniRoute/graphs/contributors) - -### Jak wnieść swój wkład - -1. Forkuj repozytorium -2. Utwórz gałąź funkcji (`git checkout -b feature/amazing-feature`) -3. Zatwierdź zmiany (`git commit -m 'Add amazing feature'`) -4. Wciśnij do oddziału (`git push origin feature/amazing-feature`) -5. Otwórz żądanie ściągnięcia - -Szczegółowe wytyczne można znaleźć w [CONTRIBUTING.md](CONTRIBUTING.md). - -### Wydanie nowej wersji - -```bash -# Create a release — npm publish happens automatically -gh release create v2.0.0 --title "v2.0.0" --generate-notes -``` - ---- - -## 📊 Historia gwiazd - -## Obserwatorzy gwiazd w miarę upływu czasu - -## [![Stargazers over time](https://starchart.cc/diegosouzapw/OmniRoute.svg?variant=adaptive)](https://starchart.cc/diegosouzapw/OmniRoute) - -## 🙏 Podziękowania - -Specjalne podziękowania dla **[9router](https://github.com/decolua/9router)** autorstwa **[decolua](https://github.com/decolua)** — oryginalnego projektu, który zainspirował ten widelec. OmniRoute opiera się na tym niesamowitym fundamencie dzięki dodatkowym funkcjom, wielomodalnym interfejsom API i pełnemu przepisaniu TypeScriptu. - -Specjalne podziękowania dla **[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)** — oryginalnej implementacji Go, która zainspirowała ten port JavaScript. - ---- - -## 📄 Licencja - -Licencja MIT — szczegółowe informacje można znaleźć w [LICENSE](LICENSE). - ---- - -<div align="center"> - <sub>Zbudowany z ❤️ dla programistów, którzy kodują 24 godziny na dobę, 7 dni w tygodniu</sub> - <br/> - <sub><a href="https://omniroute.online">omniroute.online</a></sub> -</div> -<!-- Włączono dyskusje w GitHub dla pytań i odpowiedzi społeczności --> +👉 **[Read the Documentation here](docs/i18n/pl/README.md)** diff --git a/README.ro.md b/README.ro.md index 6ef551b8e9..01ff4f4db8 100644 --- a/README.ro.md +++ b/README.ro.md @@ -1,2077 +1,5 @@ -# 🚀 OmniRoute — Gateway-ul gratuit AI +# 🌐 OmniRoute (ro) -### Nu opriți niciodată codificarea. Dirijare inteligentă către **modele AI GRATUITE și cu costuri reduse** cu rezervă automată. +The documentation has been formalized and moved to our centralized i18n structure. -_Proxy-ul dvs. universal API — un punct final, peste 67 de furnizori, zero timpi de nefuncționare. Acum, cu orchestrarea agentului **MCP și A2A**._ - -**Finalizări de chat • Încorporare • Generare de imagini • Video • Muzică • Audio • Reclasificare • **Căutare Web** • Server MCP • Protocol A2A • 100% TypeScript** - ---- - -<div align="center"> - -[![npm version](https://img.shields.io/npm/v/omniroute?color=cb3837&logo=npm)](https://www.npmjs.com/package/omniroute) -[![npm downloads](https://img.shields.io/npm/dm/omniroute?color=cb3837&logo=npm&label=npm%20downloads)](https://www.npmjs.com/package/omniroute) -[![Docker Hub](https://img.shields.io/docker/v/diegosouzapw/omniroute?label=Docker%20Hub&logo=docker&color=2496ED)](https://hub.docker.com/r/diegosouzapw/omniroute) -[![Docker Pulls](https://img.shields.io/docker/pulls/diegosouzapw/omniroute?logo=docker&color=2496ED&label=docker%20pulls)](https://hub.docker.com/r/diegosouzapw/omniroute) -[![License](https://img.shields.io/github/license/diegosouzapw/OmniRoute)](https://github.com/diegosouzapw/OmniRoute/blob/main/LICENSE) -[![Website](https://img.shields.io/badge/Website-omniroute.online-blue?logo=google-chrome&logoColor=white)](https://omniroute.online) -[![WhatsApp](https://img.shields.io/badge/WhatsApp-Community-25D366?logo=whatsapp&logoColor=white)](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) - -[🌐 Website](https://omniroute.online) • [🚀 Quick Start](#-quick-start) • [💡 Features](#-key-features) • [📖 Docs](#-documentation) • [💰 Pricing](#-pricing-at-a-glance) • [💬 WhatsApp](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) - -</div> - -🌐 **Disponibil în:** 🇺🇸 [English](README.md) | 🇧🇷 [Português (Brasil)](docs/i18n/pt-BR/README.md) | 🇪🇸 [Español](docs/i18n/es/README.md) | 🇫🇷 [Français](docs/i18n/fr/README.md) | 🇮🇹 [Italiano](docs/i18n/it/README.md) | 🇷🇺 [Русский](docs/i18n/ru/README.md) | 🇨🇳 [中文 (简体)](docs/i18n/zh-CN/README.md) | 🇩🇪 [Deutsch](docs/i18n/de/README.md) | 🇮🇳 [हिन्दी](docs/i18n/in/README.md) | 🇹🇭 [ไทย](docs/i18n/th/README.md) | 🇺🇦 [Українська](docs/i18n/uk-UA/README.md) | 🇸🇦 [العربية](docs/i18n/ar/README.md) | 🇯🇵 [日本語](docs/i18n/ja/README.md) | 🇻🇳 [Tiếng Việt](docs/i18n/vi/README.md) | 🇧🇬 [Български](docs/i18n/bg/README.md) | 🇩🇰 [Dansk](docs/i18n/da/README.md) | 🇫🇮 [Suomi](docs/i18n/fi/README.md) | 🇮🇱 [עברית](docs/i18n/he/README.md) | 🇭🇺 [Magyar](docs/i18n/hu/README.md) | 🇮🇩 [Bahasa Indonesia](docs/i18n/id/README.md) | 🇰🇷 [한국어](docs/i18n/ko/README.md) | 🇲🇾 [Bahasa Melayu](docs/i18n/ms/README.md) | 🇳🇱 [Nederlands](docs/i18n/nl/README.md) | 🇳🇴 [Norsk](docs/i18n/no/README.md) | 🇵🇹 [Português (Portugal)](docs/i18n/pt/README.md) | 🇷🇴 [Română](docs/i18n/ro/README.md) | 🇵🇱 [Polski](docs/i18n/pl/README.md) | 🇸🇰 [Slovenčina](docs/i18n/sk/README.md) | 🇸🇪 [Svenska](docs/i18n/sv/README.md) | 🇵🇭 [Filipino](docs/i18n/phi/README.md) | 🇨🇿 [Čeština](docs/i18n/cs/README.md) - ---- - -## 🆕 Ce este nou în v3.0.0 - -> **Faceți upgrade de la v2.9.5?** — Consultați [full CHANGELOG](CHANGELOG.md#300--2026-03-22-release-candidate--not-yet-merged-to-main) pentru toate modificările. - -| Zona | Schimbare | -| ---------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 🔒 **CodeQL Security** | S-au remediat peste 10 alerte CodeQL: polinom-redouri, nesigure-aleatorie, remediere prin injecție shell | -| ✅ **Validare traseu** | Toate cele 176 de rute API validate acum cu scheme Zod + treceri `validateBody()` — CI `check:route-validation:t06` | -| 🐛 **OmniModel Tag Leak** | Etichetele interne `<omniModel>` nu mai curg către clienți în răspunsurile în flux SSE (#585) | -| 🔑 **Registered Keys API** | Furnizarea automată a cheilor API prin `POST /api/v1/registered-keys` cu aplicarea cotei pentru fiecare furnizor/cont, idempotity, stocare SHA-256 și raportare opțională a problemelor GitHub | -| 👁️ **Scoped API Key Reveal** 🆕 | Opt-in recovery of API keys via `ALLOW_API_KEY_REVEAL` | -| 🎨 **Icoane furnizor** | Peste 130 de sigle ale furnizorului prin `@lobehub/icons` (SVG) cu PNG → lanț de rezervă generic | -| 🔄 **Sincronizare automată a modelului** | Programator 24 de ore și comutare manuală a interfeței de utilizare pentru a sincroniza listele de modele pentru furnizorii încorporați și personalizați compatibili cu OpenAI | -| 🌐 **OpenCode Zen/Go** | Doi furnizori noi de la @kang-heewon prin PR #530: nivel gratuit + nivel de abonament prin `OpencodeExecutor` | -| 🐛 **Gemini CLI OAuth** | Eroare acționabilă când `GEMINI_OAUTH_CLIENT_SECRET` lipsește în Docker (era o eroare Google criptică) | -| 🐛 **Configurare OpenCode** | `saveOpenCodeConfig()` acum scrie corect TOML în `XDG_CONFIG_HOME` | -| 🐛 **Anulare model fixat** | `body.model` setat corect la `pinnedModel` pentru protecția context-cache | -| 🐛 **Bucla Codex/Claude** | `tool_result` blocuri convertite acum în text pentru a opri buclele infinite | -| 🐛 **Redirecționare autentificare** | Conectarea nu se mai blochează după ce ați sărit peste configurarea parolei | -| 🐛 **Căi Windows** | Căile MSYS2/Git-Bash (`/c/...`) normalizate la `C:\...` automat | - ---- - -## 🖼️ Tabloul de bord principal - -<div align="center"> - <img src="./docs/screenshots/MainOmniRoute.png" alt="OmniRoute Dashboard" width="800"/> -</div> - ---- - -## 📸 Previzualizarea tabloului de bord - -<details> -<summary><b>Faceți clic pentru a vedea capturile de ecran de pe tabloul de bord</b></summary> - -| Pagina | Captură de ecran | -| ------------------------ | ------------------------------------------------- | -| **Furnizori** | ![Providers](docs/screenshots/01-providers.png) | -| **Combo** | ![Combos](docs/screenshots/02-combos.png) | -| **Analitice** | ![Analytics](docs/screenshots/03-analytics.png) | -| **Sănătate** | ![Health](docs/screenshots/04-health.png) | -| **Translator** | ![Translator](docs/screenshots/05-translator.png) | -| **Setări** | ![Settings](docs/screenshots/06-settings.png) | -| **Instrumente CLI** | ![CLI Tools](docs/screenshots/07-cli-tools.png) | -| **Jurnale de utilizare** | ![Usage](docs/screenshots/08-usage.png) | -| **Punctele finale** | ![Endpoints](docs/screenshots/09-endpoint.png) | - -</details> - ---- - -### 🤖 Furnizor AI gratuit pentru agenții tăi preferați de codare - -_Conectați orice instrument IDE sau CLI alimentat de AI prin OmniRoute — gateway API gratuit pentru codare nelimitată._ - - <table> - <tr> - <td align="center" width="110"> - <a href="https://github.com/openclaw/openclaw"> - <img src="./public/providers/openclaw.png" alt="OpenClaw" width="48"/><br/> - <b>OpenClaw</b> - </a><br/> - <sub>⭐ 205K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/HKUDS/nanobot"> - <img src="./public/providers/nanobot.png" alt="NanoBot" width="48"/><br/> - <b>NanoBot</b> - </a><br/> - <sub>⭐ 20.9K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/sipeed/picoclaw"> - <img src="./public/providers/picoclaw.jpg" alt="PicoClaw" width="48"/><br/> - <b>PicoClaw</b> - </a><br/> - <sub>⭐ 14.6K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/zeroclaw-labs/zeroclaw"> - <img src="./public/providers/zeroclaw.png" alt="ZeroClaw" width="48"/><br/> - <b>ZeroClaw</b> - </a><br/> - <sub>⭐ 9.9K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/nearai/ironclaw"> - <img src="./public/providers/ironclaw.png" alt="IronClaw" width="48"/><br/> - <b>IronClaw</b> - </a><br/> - <sub>⭐ 2.1K</sub> - </td> - </tr> - <tr> - <td align="center" width="110"> - <a href="https://github.com/anomalyco/opencode"> - <img src="./public/providers/opencode.svg" alt="OpenCode" width="48"/><br/> - <b>OpenCode</b> - </a><br/> - <sub>⭐ 106K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/openai/codex"> - <img src="./public/providers/codex.png" alt="Codex CLI" width="48"/><br/> - <b>Codex CLI</b> - </a><br/> - <sub>⭐ 60.8K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/anthropics/claude-code"> - <img src="./public/providers/claude.png" alt="Claude Code" width="48"/><br/> - <b>Claude Code</b> - </a><br/> - <sub>⭐ 67.3K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/google-gemini/gemini-cli"> - <img src="./public/providers/gemini-cli.png" alt="Gemini CLI" width="48"/><br/> - <b>Gemini CLI</b> - </a><br/> - <sub>⭐ 94.7K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/Kilo-Org/kilocode"> - <img src="./public/providers/kilocode.png" alt="Kilo Code" width="48"/><br/> - <b>Kilo Code</b> - </a><br/> - <sub>⭐ 15.5K</sub> - </td> - </tr> - </table> - -<sub>📡 Toți agenții se conectează prin <code>http://localhost:20128/v1</code> sau <code>http://cloud.omniroute.online.online/v1__OMNI6_TOKEN__EN modele și cotă nelimitate</sub> - ---- - -## 🤔 De ce OmniRoute? - -**Nu mai risipi banii și nu mai atingeți limitele:** - -- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Cota de abonament expiră neutilizată în fiecare lună -- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Limitele ratelor te opresc la mijloc de codare -- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> API-uri scumpe (20-50 USD/lună per furnizor) -- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Comutare manuală între furnizori - -**OmniRoute rezolvă asta:** - -- ✅ **Maximizați abonamentele** - Urmăriți cota, utilizați fiecare bit înainte de resetare -- ✅ **Auto de rezervă** - Abonament → Cheie API → Ieftin → Gratuit, timp de nefuncționare zero -- ✅ **Multi-cont** - Round-robin între conturi pentru fiecare furnizor -- ✅ **Universal** - Funcționează cu Claude Code, Codex, Gemini CLI, Cursor, Cline, OpenClaw, orice instrument CLI - ---- - -## 📧 Suport - -> 💬 **Alăturați-vă comunității noastre!** [WhatsApp Group](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) — Obțineți ajutor, împărtășiți sfaturi și fiți la curent. - -- **Site web**: [omniroute.online](https://omniroute.online) -- **GitHub**: [github.com/diegosouzapw/OmniRoute](https://github.com/diegosouzapw/OmniRoute) -- **Probleme**: [github.com/diegosouzapw/OmniRoute/issues](https://github.com/diegosouzapw/OmniRoute/issues) -- **WhatsApp**: [Community Group](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) -- **Contribuie**: vezi [CONTRIBUTING.md](CONTRIBUTING.md), deschide un PR sau alege un `good first issue` -- **Proiect original**: [9router by decolua](https://github.com/decolua/9router) - -### 🐛 Raportați o eroare? - -Când deschideți o problemă, rulați comanda system-info și atașați fișierul generat: - -```bash -npm run system-info -``` - -Aceasta generează un `system-info.txt` cu versiunea dvs. Node.js, versiunea OmniRoute, detaliile sistemului de operare, instrumentele CLI instalate (qoder, gemini, claude, codex, antigravity, droid etc.), starea Docker/PM2 și pachetele de sistem - tot ce avem nevoie pentru a reproduce problema rapid. Atașați fișierul direct la problema dvs. GitHub. - ---- - -## 🔄 Cum funcționează - -``` -┌─────────────┐ -│ Your CLI │ (Claude Code, Codex, Gemini CLI, OpenClaw, Cursor, Cline...) -│ Tool │ -└──────┬──────┘ - │ http://localhost:20128/v1 - ↓ -┌─────────────────────────────────────────┐ -│ OmniRoute (Smart Router) │ -│ • Format translation (OpenAI ↔ Claude) │ -│ • Quota tracking + Embeddings + Images │ -│ • Auto token refresh │ -└──────┬──────────────────────────────────┘ - │ - ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex, Gemini CLI - │ ↓ quota exhausted - ├─→ [Tier 2: API KEY] DeepSeek, Groq, xAI, Mistral, NVIDIA NIM, etc. - │ ↓ budget limit - ├─→ [Tier 3: CHEAP] GLM ($0.6/1M), MiniMax ($0.2/1M) - │ ↓ budget limit - └─→ [Tier 4: FREE] Qoder, Qwen, Kiro (unlimited) - -Result: Never stop coding, minimal cost -``` - ---- - -## 🎯 Ce rezolvă OmniRoute — 30 de puncte reale de durere și cazuri de utilizare - -> **Fiecare dezvoltator care folosește instrumente AI se confruntă zilnic cu aceste probleme.** OmniRoute a fost creat pentru a le rezolva pe toate - de la depășiri de costuri la blocaje regionale, de la fluxuri OAuth întrerupte la operațiuni de protocol și observabilitate a întreprinderii. - -<details> -<summary><b>💸 1. „Plătesc pentru un abonament scump, dar tot sunt întrerupt de limite”</b></summary> - -Dezvoltatorii plătesc 20–200 USD/lună pentru Claude Pro, Codex Pro sau GitHub Copilot. Chiar și plătind, cota are un plafon - 5 ore de utilizare, limite săptămânale sau limite de tarif pe minut. La mijlocul sesiunii de codare, furnizorul nu mai răspunde și dezvoltatorul își pierde fluxul și productivitatea. - -**Cum o rezolvă OmniRoute:** - -- **Smart 4-Tier Fallback** — Dacă cota de abonament se epuizează, redirecționează automat la cheia API → Ieftin → Gratuit fără intervenție manuală -- **Urmărirea cotelor în timp real** — Afișează consumul de simboluri în timp real cu numărătoarea inversă de resetare (5 ore, zilnic, săptămânal) -- **Asistență pentru mai multe conturi** — Conturi multiple per furnizor cu turneu automat automat — când unul se epuizează, trece la următorul -- **Combinații personalizate** — Lanțuri de rezervă personalizabile cu 6 strategii de echilibrare (fill-first, round-robin, P2C, aleatoriu, cel mai puțin utilizat, optimizat din punct de vedere al costurilor) -- **Cote de afaceri Codex** — Monitorizarea cotelor de spațiu de lucru pentru afaceri/echipe direct în tabloul de bord - -</details> - -<details> -<summary><b>🔌 2. „Trebuie să folosesc mai mulți furnizori, dar fiecare are un API diferit”</b></summary> - -OpenAI folosește un format, Claude (Anthropic) folosește altul, Gemini încă altul. Dacă un dezvoltator dorește să testeze modele de la diferiți furnizori sau să se retragă între aceștia, trebuie să reconfigureze SDK-urile, să schimbe punctele finale, să se ocupe de formate incompatibile. Furnizorii personalizați (FriendLI, NIM) au puncte finale de model non-standard. - -**Cum o rezolvă OmniRoute:** - -- **Unified Endpoint** — Un singur `http://localhost:20128/v1` servește ca proxy pentru toți cei 67 de furnizori și peste -- **Traducerea formatului** — Automată și transparentă: OpenAI ↔ Claude ↔ Gemeni ↔ Responses API -- **Response Sanitization** — Elimina câmpurile nestandard (`x_groq`, `usage_breakdown`, `service_tier`) care încalcă OpenAI SDK v1.83+ -- **Normalizarea rolurilor** — Convertește `developer` → `system` pentru furnizorii non-OpenAI; `system` → `user` pentru GLM/ERNIE -- **Think Tag Extraction** — Extrage blocurile `<think>` din modele precum DeepSeek R1 în `reasoning_content` standardizate -- **Ieșire structurată pentru Gemini** — `json_schema` → `responseMimeType`/`responseSchema` conversie automată -- **`stream` este implicit `false`** — Se aliniază cu specificațiile OpenAI, evitând SSE neașteptat în SDK-urile Python/Rust/Go - -</details> - -<details> -<summary><b>🌐 3. „Furnizorul meu de AI îmi blochează regiunea/țara”</b></summary> - -Furnizori precum OpenAI/Codex blochează accesul din anumite regiuni geografice. Utilizatorii primesc erori precum `unsupported_country_region_territory` în timpul conexiunilor OAuth și API. Acest lucru este frustrant în special pentru dezvoltatorii din țările în curs de dezvoltare. - -**Cum o rezolvă OmniRoute:** - -- **3-Level Proxy Config** — Proxy configurabil la 3 niveluri: global (tot traficul), per furnizor (doar un singur furnizor) și per conexiune/cheie -- **Insigne de proxy cu coduri de culoare** — Indicatori vizuali: 🟢 proxy global, 🟡 proxy furnizor, 🔵 proxy de conexiune, indicând întotdeauna IP-ul -- **Schimb de jetoane OAuth prin proxy** — fluxul OAuth trece și prin proxy, rezolvând `unsupported_country_region_territory` -- **Teste de conexiune prin proxy** — Testele de conexiune folosesc proxy-ul configurat (nu mai este ocolire directă) -- **Support SOCKS5** — Suport complet SOCKS5 proxy pentru rutarea de ieșire -- **TLS Fingerprint Spoofing** — Amprenta TLS asemănătoare unui browser prin `wreq-js` pentru a ocoli detectarea botului -- **🔏 CLI Fingerprint Matching** — Reordonează anteturile și câmpurile de corp pentru a se potrivi cu semnăturile binare CLI native, reducând drastic riscul de semnalare a contului. IP-ul proxy este păstrat - obțineți simultan mascarea IP stealth ** și** - -</details> - -<details> -<summary><b>🆓 4. „Vreau să folosesc AI pentru codare, dar nu am bani”</b></summary> - -Nu toată lumea poate plăti 20–200 USD/lună pentru abonamentele AI. Studenții, dezvoltatorii din țările emergente, pasionații și freelancerii au nevoie de acces la modele de calitate la cost zero. - -**Cum o rezolvă OmniRoute:** - -- **Free Tier Providers Built-in** — Suport nativ pentru furnizori 100% gratuiti: Qoder (5 modele nelimitate prin OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 modele nelimitate: q-coder-3-fwen: qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID gratuit), Gemini CLI (180.000 de jetoane/lună gratuit) -- **Ollama Cloud** — Modele Ollama găzduite în cloud la `api.ollama.com` cu nivelul gratuit „Utilizare ușoară”; utilizați prefixul `ollamacloud/<model>` -- **Combo-uri numai gratuite** — Lanț `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = 0 USD/lună fără timp de nefuncționare -- **NVIDIA NIM Free Access** — ~40 RPM dev-forever acces gratuit la peste 70 de modele la build.nvidia.com (tranziție de la credite la limitele de rate pur) -- **Cost Optimized Strategy** — Strategie de rutare care alege automat cel mai ieftin furnizor disponibil - -</details> - -<details> -<summary><b>🔒 5. „Trebuie să-mi protejez poarta AI de accesul neautorizat”</b></summary> - -Când expuneți un gateway AI în rețea (LAN, VPS, Docker), oricine are adresa poate consuma jetoanele/cota dezvoltatorului. Fără protecție, API-urile sunt vulnerabile la utilizare greșită, injectare promptă și abuz. - -**Cum o rezolvă OmniRoute:** - -- **Gestionarea cheilor API** — Generare, rotație și stabilire a domeniului pentru fiecare furnizor cu o pagină dedicată `/dashboard/api-manager` -- **Permisiuni la nivel de model** — Restricționați cheile API la anumite modele (`openai/*`, modele cu caractere metalice), cu comutarea Permite tot/Restricționați -- **API Endpoint Protection** — Solicitați o cheie pentru `/v1/models` și blocați anumiți furnizori din listă -- **Auth Guard + CSRF Protection** — Toate rutele tabloului de bord sunt protejate cu middleware `withAuth` + jetoane CSRF -- **Rate Limiter** — Limitarea ratei per-IP cu ferestre configurabile -- **Filtrare IP** — Lista permisă/lista blocată pentru controlul accesului -- **Prompt Injection Guard** — Igienizare împotriva tiparelor de prompte rău intenționate -- **Criptare AES-256-GCM** — Acreditări criptate în repaus - -</details> - -<details> -<summary><b>🛑 6. „Furnizorul meu a căzut și mi-am pierdut fluxul de codare”</b></summary> - -Furnizorii de AI pot deveni instabili, pot returna erori 5xx sau pot atinge limitele temporare ale ratei. Dacă un dezvoltator depinde de un singur furnizor, acesta este întrerupt. Fără întreruptoare, reîncercări repetate pot bloca aplicația. - -**Cum o rezolvă OmniRoute:** - -- **Circuit Breaker per-model** - Deschidere/închidere automată cu praguri configurabile și răcire (Închis/Deschis/Pe jumătate deschis), pentru fiecare model pentru a evita blocurile în cascadă -- **Backoff exponențial** — Întârzieri progresive ale reîncercării -- **Anti-Thundering Herd** — Mutex + protecție semafor împotriva furtunilor concurente de reîncercare -- **Combo Fallback Chains** — Dacă furnizorul principal eșuează, trece automat prin lanț fără nicio intervenție -- **Combo Circuit Breaker** — Dezactivează automat furnizorii care eșuează dintr-un lanț combinat -- **Tabloul de bord pentru sănătate** — Monitorizare timp de funcționare, stări întrerupătoare de circuit, blocări, statistici cache, latență p50/p95/p99 - -</details> - -<details> -<summary><b>🔧 7. „Configurarea fiecărui instrument AI este plictisitoare și repetitivă”</b></summary> - -Dezvoltatorii folosesc Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code... Fiecare instrument are nevoie de o configurație diferită (punct final API, cheie, model). Reconfigurarea la schimbarea de furnizor sau de model este o pierdere de timp. - -**Cum o rezolvă OmniRoute:** - -- **CLI Tools Dashboard** — pagină dedicată cu setare cu un singur clic pentru Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline -- **GitHub Copilot Config Generator** — generează `chatLanguageModels.json` pentru VS Code cu selecția în bloc a modelului -- **Onboarding Wizard** — Configurare ghidată în 4 pași pentru utilizatorii debutanți -- **Un punct final, toate modelele** — Configurați `http://localhost:20128/v1` o dată, accesați peste 67 de furnizori - -</details> - -<details> -<summary><b>🔑 8. „Gestionarea jetoanelor OAuth de la mai mulți furnizori este un iad”</b></summary> - -Claude Code, Codex, Gemini CLI, Copilot - toate folosesc OAuth 2.0 cu token-uri care expiră. Dezvoltatorii trebuie să se reautentifice în mod constant, să se ocupe de `client_secret is missing`, `redirect_uri_mismatch` și defecțiunile de pe serverele de la distanță. OAuth pe LAN/VPS este deosebit de problematică. - -**Cum o rezolvă OmniRoute:** - -- **Reîmprospătare automată a simbolurilor** — jetoanele OAuth se reîmprospătează în fundal înainte de expirare -- **OAuth 2.0 (PKCE) încorporat** — Flux automat pentru Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder -- **OAuth cu mai multe conturi** — Conturi multiple per furnizor prin extragerea jetonului JWT/ID -- **OAuth LAN/Remediere la distanță** — Detectare IP privată pentru `redirect_uri` + modul URL manual pentru servere la distanță -- **OAuth în spatele Nginx** — Utilizează `window.location.origin` pentru compatibilitatea cu proxy invers -- **Ghid OAuth la distanță** — Ghid pas cu pas pentru acreditările Google Cloud pe VPS/Docker - -</details> - -<details> -<summary><b>📊 9. „Nu știu cât cheltuiesc sau unde”</b></summary> - -Dezvoltatorii folosesc mai mulți furnizori plătiți, dar nu au o viziune unificată asupra cheltuielilor. Fiecare furnizor are propriul tablou de bord de facturare, dar nu există o vizualizare consolidată. Costurile neașteptate se pot acumula. - -**Cum o rezolvă OmniRoute:** - -- **Tabloul de bord pentru analiza costurilor** — Urmărirea costurilor pe token și gestionarea bugetului per furnizor -- **Limite bugetare pe nivel** — Plafonul de cheltuieli pe nivel care declanșează o rezervă automată -- **Configurație de preț pe model** — Prețuri configurabile pe model -- **Statistici de utilizare per cheie API** — Numărul de solicitări și marcajul temporal al ultimei utilizări per cheie -- **Tabloul de bord de analiză** — Carduri cu statistici, diagramă de utilizare a modelului, tabel cu furnizori cu rate de succes și latență - -</details> - -<details> -<summary><b>🐛 10. „Nu pot diagnostica erorile și problemele în apelurile AI”</b></summary> - -Când un apel eșuează, dezvoltatorul nu știe dacă a fost o limită de rată, un simbol expirat, un format greșit sau o eroare a furnizorului. Jurnalele fragmentate pe diferite terminale. Fără observabilitate, depanarea este o încercare și eroare. - -**Cum o rezolvă OmniRoute:** - -- **Tabloul de bord pentru jurnalele unificate** — 4 file: jurnalele de solicitare, jurnalele proxy, jurnalele de audit, consolă -- **Console Log Viewer** — Vizualizator în timp real în stil terminal cu niveluri codificate în culori, defilare automată, căutare, filtru -- **SQLite Proxy Logs** — Jurnale persistente care supraviețuiesc repornirilor serverului -- **Translator Playground** — 4 moduri de depanare: Playground (traducere format), Chat Tester (dus-întors), Test Bench (lot), Live Monitor (în timp real) -- **Solicitare telemetrie** — latență p50/p95/p99 + urmărire X-Request-Id -- **Înregistrare bazată pe fișiere cu rotație** — Interceptor de consolă captează totul în jurnalul JSON cu rotație bazată pe dimensiune -- **System Info Report** — `npm run system-info` generează `system-info.txt` cu mediul dumneavoastră complet (versiunea Node, versiunea OmniRoute, OS, instrumente CLI, starea Docker/PM2). Atașați-l când raportați probleme pentru triaj instantaneu. - -</details> - -<details> -<summary><b>🏗️ 11. „Implementarea și întreținerea gateway-ului este complexă”</b></summary> - -Instalarea, configurarea și menținerea unui proxy AI în diferite medii (local, VPS, Docker, cloud) necesită multă muncă. Probleme precum căile codificate, `EACCES` pe directoare, conflictele de porturi și versiunile multiplatforme adaugă fricțiuni. - -**Cum o rezolvă OmniRoute:** - -- **npm global install** — `npm install -g omniroute && omniroute` — gata -- **Docker Multi-Platform** - AMD64 + ARM64 nativ (Apple Silicon, AWS Graviton, Raspberry Pi) -- **Docker Compose Profiles** — `base` (fără instrumente CLI) și `cli` (cu Claude Code, Codex, OpenClaw) -- **Electron Desktop App** — aplicație nativă pentru Windows/macOS/Linux cu bară de sistem, pornire automată, mod offline -- **Split-Port Mode** — API și tablou de bord pe porturi separate pentru scenarii avansate (reverse proxy, rețea container) -- **Cloud Sync** — Configurați sincronizarea între dispozitive prin Cloudflare Workers -- **Backups DB** — Backup automat, restaurare, export și import al tuturor setărilor - -</details> - -<details> -<summary><b>🌍 12. „Interfața este doar în limba engleză și echipa mea nu vorbește engleză”</b></summary> - -Echipele din țările care nu vorbesc engleza, în special din America Latină, Asia și Europa, se luptă cu interfețele doar în limba engleză. Barierele lingvistice reduc adoptarea și cresc erorile de configurare. - -**Cum o rezolvă OmniRoute:** - -- **Tabloul de bord i18n — 30 de limbi** — Toate cele peste 500 de taste traduse, inclusiv arabă, bulgară, daneză, germană, spaniolă, finlandeză, franceză, ebraică, hindi, maghiară, indoneziană, italiană, japoneză, coreeană, malay, olandeză, norvegiană, poloneză, portugheză (PT/BR), română, rusă, slovacă, suedeză, thailandeză, ucraineană, filipineză, engleză, chineză, vietnameză, -- ** Suport RTL** — Suport de la dreapta la stânga pentru arabă și ebraică -- **ReadME-uri în mai multe limbi** — 30 de traduceri complete de documentație -- **Selector de limbă** — Pictograma glob în antet pentru comutare în timp real - -</details> - -<details> -<summary><b>🔄 13. „Am nevoie de mai mult decât de chat — am nevoie de încorporare, imagini, audio”</b></summary> - -AI nu este doar finalizarea chatului. Dezvoltatorii trebuie să genereze imagini, să transcrie sunetul, să creeze înglobări pentru RAG, să reclasifice documentele și să modereze conținutul. Fiecare API are un punct final și un format diferit. - -**Cum o rezolvă OmniRoute:** - -- **Embeddings** — `/v1/embeddings` cu 6 furnizori și peste 9 modele -- **Image Generation** — `/v1/images/generations` cu 10 furnizori și peste 20 de modele (OpenAI, xAI, Together, Fireworks, Nebius, Hyperbolic, NanoBanana, Antigravity, SD WebUI, ComfyUI) -- **Text-to-Video** — `/v1/videos/generations` — ComfyUI (AnimateDiff, SVD) și SD WebUI -- **Text-to-Music** — `/v1/music/generations` — ComfyUI (Stable Audio Open, MusicGen) -- **Transcriere audio** — `/v1/audio/transcriptions` — Whisper + Nvidia NIM, HuggingFace, Qwen3 -- **Text-to-Speech** — `/v1/audio/speech` — ElevenLabs, Nvidia NIM, HuggingFace, Coqui, Tortoise, Qwen3, **Inworld**, **Cartesia**, **PlayHT**, + furnizori existenți -- **Moderări** — `/v1/moderations` — Verificări privind siguranța conținutului -- **Reclasificare** — `/v1/rerank` — Reclasificarea relevanței documentului -- **Responses API** — Suport complet `/v1/responses` pentru Codex - -</details> - -<details> -<summary><b>🧪 14. „Nu am cum să testez și să compar calitatea între modele”</b></summary> - -Dezvoltatorii vor să știe care model este cel mai bun pentru cazul lor de utilizare - cod, traducere, raționament - dar compararea manuală este lentă. Nu există instrumente de evaluare integrate. - -**Cum o rezolvă OmniRoute:** - -- **Evaluări LLM** — Testarea setului de aur cu 10 cazuri preîncărcate care acoperă salutări, matematică, geografie, generare de cod, conformitate cu JSON, traducere, reducere, refuz de siguranță -- **4 strategii de potrivire** — `exact`, `contains`, `regex`, `custom` (funcția JS) -- **Translator Playground Test Bench** — Testare în loturi cu mai multe intrări și rezultate așteptate, comparație între furnizori -- **Tester de chat** — Tur complet dus-întors cu randare vizuală a răspunsului -- **Live Monitor** — Flux în timp real al tuturor solicitărilor care circulă prin proxy - -</details> - -<details> -<summary><b>📈 15. „Trebuie să mă extind fără a pierde performanța”</b></summary> - -Pe măsură ce volumul cererilor crește, fără memorarea în cache aceleași întrebări generează costuri duplicate. Fara idempotenta, cererile duplicate procesarea deseurilor. Limitele de tarife pentru fiecare furnizor trebuie respectate. - -**Cum o rezolvă OmniRoute:** - -- **Cache semantic** — Cache-ul pe două niveluri (semnătură + semantică) reduce costurile și latența -- **Request Idempotency** — fereastră de deduplicare 5s pentru cereri identice -- **Rate Limit Detection** — RPM per furnizor, interval minim și urmărire simultană maximă -- **Limite de rată editabile** — Valori implicite configurabile în Setări → Reziliență cu persistență -- **API Key Validation Cache** — cache pe 3 niveluri pentru performanța producției -- **Tabloul de bord pentru sănătate cu telemetrie** — latență p50/p95/p99, statistici cache, timp de funcționare - -</details> - -<details> -<summary><b>🤖 16. „Vreau să controlez comportamentul modelului la nivel global”</b></summary> - -Dezvoltatori care doresc toate răspunsurile într-o anumită limbă, cu un anumit ton sau care doresc să limiteze simbolurile de raționament. Configurarea acestui lucru în fiecare instrument/cerere nu este practică. - -**Cum o rezolvă OmniRoute:** - -- **System Prompt Injection** — Prompt global aplicat tuturor solicitărilor -- **Thinking Budget Validation** — Controlul raționării alocării token-ului per cerere (transmis, automat, personalizat, adaptiv) -- **6 Strategii de rutare** — Strategii globale care determină modul în care sunt distribuite cererile -- **Wildcard Router** — modelele `provider/*` sunt direcționate dinamic către orice furnizor -- **Combo Activare/Dezactivare Comutare** — Comută combo direct din tabloul de bord -- **Comutare furnizor** — Activați/dezactivați toate conexiunile pentru un furnizor cu un singur clic -- **Furnizori blocați** — Excludeți anumiți furnizori din lista `/v1/models` - -</details> - -<details> -<summary><b>🧰 17. „Am nevoie de instrumente MCP ca capabilități de produs de primă clasă”</b></summary> - -Multe gateway-uri AI expun MCP doar ca un detaliu ascuns de implementare. Echipele au nevoie de un nivel de operare vizibil și ușor de gestionat. - -**Cum o rezolvă OmniRoute:** - -- MCP apare în panoul de bord de navigare și fila de protocol final -- Pagina de management MCP dedicată cu proces, instrumente, domenii și audit -- Pornire rapidă încorporată pentru `omniroute --mcp` și integrarea clientului - -</details> - -<details> -<summary><b>🧠 18. „Am nevoie de orchestrare A2A cu sincronizare + căi de activități de flux”</b></summary> - -Fluxurile de lucru ale agenților necesită atât răspunsuri directe, cât și execuție în flux de lungă durată, cu control ciclului de viață. - -**Cum o rezolvă OmniRoute:** - -- Punct final JSON-RPC A2A (`POST /a2a`) cu `message/send` și `message/stream` -- Streaming SSE cu propagare a stării terminale -- API-uri pentru ciclul de viață al sarcinilor pentru `tasks/get` și `tasks/cancel` - -</details> - -<details> -<summary><b>🛰️ 19. „Am nevoie de sănătate reală a procesului MCP, nu de stare ghicită”</b></summary> - -Echipele operaționale trebuie să știe dacă MCP este de fapt în viață, nu doar dacă un API este accesibil. - -**Cum o rezolvă OmniRoute:** - -- Fișier runtime heartbeat cu PID, marcaje de timp, transport, număr de instrumente și modul de aplicare -- API de stare MCP care combină bătăile inimii + activitatea recentă -- Carduri de stare a interfeței de utilizare pentru prospețimea procesului/uptime/inima - -</details> - -<details> -<summary><b>📋 20. „Am nevoie de execuție auditabilă a instrumentului MCP”</b></summary> - -Când instrumentele modifică configurația sau declanșează acțiuni operaționale, echipele au nevoie de trasabilitate criminalistică. - -**Cum o rezolvă OmniRoute:** - -- Înregistrare de audit susținută de SQLite pentru apelurile instrumentelor MCP -- Filtrează după instrument, succes/eșec, cheie API și paginare -- Tabelul de audit al tabloului de bord + punctele finale de statistici pentru automatizare - -</details> - -<details> -<summary><b>🔐 21. „Am nevoie de permisiuni MCP pentru fiecare integrare”</b></summary> - -Clienții diferiți ar trebui să aibă cel mai mic privilegiu de acces la categoriile de instrumente. - -**Cum o rezolvă OmniRoute:** - -- 9 lunete MCP granulare pentru acces controlat la instrumente -- Aplicarea domeniului de aplicare și vizibilitatea în interfața de utilizare a managementului MCP -- Poziție implicită sigură pentru instrumentele operaționale - -</details> - -<details> -<summary><b>⚙️ 22. „Am nevoie de controale operaționale fără redistribuire”</b></summary> - -Echipele au nevoie de modificări rapide ale timpului de rulare în timpul incidentelor sau evenimentelor de cost. - -**Cum o rezolvă OmniRoute:** - -- Comutați activarea comboi direct din tabloul de bord MCP -- Aplicați profiluri de rezistență din pachetele de politici predefinite -- Resetați starea întreruptorului de la același panou de operare - -</details> - -<details> -<summary><b>🔄 23. „Am nevoie de vizibilitate și anulare live a ciclului de viață al sarcinii A2A”</b></summary> - -Fără vizibilitatea ciclului de viață, incidentele sarcinilor devin greu de triat. - -**Cum o rezolvă OmniRoute:** - -- Listarea sarcinilor/filtrarea după stare/abilitate cu paginare -- Detaliați metadatele sarcinii, evenimentele și artefactele -- Punct final de anulare a sarcinii și acțiune UI cu confirmare - -</details> - -<details> -<summary><b>🌊 24. „Am nevoie de valori active de flux pentru încărcarea A2A”</b></summary> - -Fluxurile de lucru în flux necesită o perspectivă operațională privind concurența și conexiunile live. - -**Cum o rezolvă OmniRoute:** - -- Contoare active de flux integrate în starea A2A -- Marcaj de timp pentru ultima sarcină și numărătoare pentru fiecare stat -- Carduri de bord A2A pentru monitorizarea operațiunilor în timp real - -</details> - -<details> -<summary><b>🪪 25. „Am nevoie de descoperire de agent standard pentru clienți”</b></summary> - -Clienții externi și orchestratorii au nevoie de metadate care pot fi citite de mașină pentru integrare. - -**Cum o rezolvă OmniRoute:** - -- Card de agent expus la `/.well-known/agent.json` -- Capabilități și abilități afișate în UI de management -- API-ul de stare A2A include metadate de descoperire pentru automatizare - -</details> - -<details> -<summary><b>🧭 26. „Am nevoie de descoperirea protocolului în UX-ul produsului”</b></summary> - -Dacă utilizatorii nu pot descoperi suprafețele de protocol, calitatea adoptării și a suportului scade. - -**Cum o rezolvă OmniRoute:** - -- Pagina consolidată **Puncte finale** cu file pentru punctele finale Proxy, MCP, A2A și API -- Comută starea serviciului în linie (Online/Offline) pentru MCP și A2A -- Link-uri de la prezentare generală la file dedicate de gestionare - -</details> - -<details> -<summary><b>🧪 27. „Am nevoie de validarea protocolului end-to-end cu clienți reali”</b></summary> - -Testele simulate nu sunt suficiente pentru a valida compatibilitatea protocolului înainte de lansare. - -**Cum o rezolvă OmniRoute:** - -- Suita E2E care pornește aplicația și utilizează transportul clientului MCP SDK real -- Testele client A2A pentru descoperirea, trimiterea, transmiterea în flux, obținerea și anularea fluxurilor -- Verificați încrucișați afirmațiile cu auditul MCP și API-urile pentru sarcini A2A - -</details> - -<details> -<summary><b>📡 28. „Am nevoie de observabilitate unificată pe toate interfețele”</b></summary> - -Împărțirea observabilității în funcție de protocol creează puncte oarbe și MTTR mai lung. - -**Cum o rezolvă OmniRoute:** - -- Tablouri de bord/jurnale/analitice unificate într-un singur produs -- Sănătate + audit + solicitare de telemetrie în straturi OpenAI, MCP și A2A -- API-uri operaționale pentru stare și automatizare - -</details> - -<details> -<summary><b>💼 29. „Am nevoie de un timp de rulare pentru proxy + instrumente + orchestrare agent”</b></summary> - -Rularea multor servicii separate crește costurile operaționale și modurile de eșec. - -**Cum o rezolvă OmniRoute:** - -- Proxy compatibil OpenAI, server MCP și server A2A într-o singură stivă -- Autentificare partajată, rezistență, stocare de date și observabilitate -- Model de politică consistent pe toate suprafețele de interacțiune - -</details> - -<details> -<summary><b>🚀 30. „Trebuie să trimit fluxuri de lucru agentice fără extinderea codului lipici”</b></summary> - -Echipele își pierd din viteza atunci când realizează mai multe servicii și scripturi ad-hoc. - -**Cum o rezolvă OmniRoute:** - -- Strategie unificată pentru clienți și agenți -- Interfețe de utilizare a protocolului încorporate și căi de validare a fumului -- Baze pregătite pentru producție (securitate, logare, rezistență, backup) - -</details> - -### Exemple de manuale (cazuri de utilizare integrate) - -**Playbook A: Maximizați abonamentul plătit + backup ieftin** - -```txt -Combo: "maximize-claude" - 1. cc/claude-opus-4-6 - 2. glm/glm-4.7 - 3. if/kimi-k2-thinking - -Monthly cost: $20 + small backup spend -Outcome: higher quality, near-zero interruption -``` - -**Playbook B: teanc de codare cu costuri zero** - -```txt -Combo: "free-forever" - 1. gc/gemini-3-flash - 2. if/kimi-k2-thinking - 3. qw/qwen3-coder-plus - -Monthly cost: $0 -Outcome: stable free coding workflow -``` - -**Playbook C: lanț alternativ permanent activ 24/7** - -```txt -Combo: "always-on" - 1. cc/claude-opus-4-6 - 2. cx/gpt-5.2-codex - 3. glm/glm-4.7 - 4. minimax/MiniMax-M2.1 - 5. if/kimi-k2-thinking - -Outcome: deep fallback depth for deadline-critical workloads -``` - -**Playbook D: Agentul operează cu MCP + A2A** - -```txt -1) Start MCP transport (`omniroute --mcp`) for tool-driven operations -2) Run A2A tasks via `message/send` and `message/stream` -3) Observe via /dashboard/endpoint (MCP and A2A tabs) -4) Toggle services via inline status controls -``` - ---- - -## 🆓 Începe gratuit — Cost de configurare zero - -> Configurați codarea AI în minute la **$0/lună**. Conectați aceste conturi gratuite și utilizați combinația încorporată **Free Stack**. - -| Pasul | Acțiune | Furnizori deblocați | -| ----- | ---------------------------------------------------- | ------------------------------------------------------------------ | -| 1 | Conectați **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — **nelimitat** | -| 2 | Conectați **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **nelimitat** | -| 3 | Conectați **Qwen** (Codul dispozitivului) | qwen3-coder-plus, qwen3-coder-flash... — **nelimitat** | -| 4 | Conectați **Gemini CLI** (Google OAuth) | gemini-3-flash, gemini-2.5-pro — **180K/lună gratuit** | -| 5 | `/dashboard/combos` → șablon **Stiva gratuită ($0)** | Round-robin toți furnizorii gratuiti în mod automat | - -** Indicați orice IDE/CLI către:** `http://localhost:20128/v1` · Cheie API: `any-string` · Terminat. - -> **Acoperire suplimentară opțională (de asemenea gratuită):** Cheie Groq API (30 RPM gratuit), NVIDIA NIM (40 RPM fără, peste 70 de modele), Cerebras (1M tok/zi), LongCat API key (50M tokens/zi!), Cloudflare Workers AI (10K Neurons/zi, 50+ modele). - -## ⚡ Pornire rapidă - -### 1) Instalați și rulați - -```bash -npm install -g omniroute -omniroute -``` - -> **Utilizatori pnpm:** Rulați `pnpm approve-builds -g` după instalare pentru a activa scripturile de compilare native cerute de `better-sqlite3` și `@swc/core`: -> -> ```bash -> pnpm install -g omniroute -> pnpm approve-builds -g # Select all packages → approve -> omniroute -> ``` - -Tabloul de bord se deschide la `http://localhost:20128` și adresa URL de bază a API este `http://localhost:20128/v1`. - -| Comanda | Descriere | -| ----------------------- | ----------------------------------------------------------------------- | -| `omniroute` | Porniți serverul (`PORT=20128`, API și tabloul de bord pe același port) | -| `omniroute --port 3000` | Setați portul canonic/API la 3000 | -| `omniroute --mcp` | Porniți serverul MCP (transport stdio) | -| `omniroute --no-open` | Nu deschideți automat browserul | -| `omniroute --help` | Arată ajutor | - -Opțional modul split-port: - -```bash -PORT=20128 DASHBOARD_PORT=20129 omniroute -# API: http://localhost:20128/v1 -# Dashboard: http://localhost:20129 -``` - -### 2) Conectați furnizorii și creați-vă cheia API - -1. Deschideți Dashboard → `Providers` și conectați cel puțin un furnizor (OAuth sau cheie API). -2. Deschideți Dashboard → `Endpoints` și creați o cheie API. -3. (Opțional) Deschideți Dashboard → `Combos` și setați lanțul de rezervă. - -### 3) Îndreptați instrumentul de codare către OmniRoute - -```txt -Base URL: http://localhost:20128/v1 -API Key: [copy from Endpoint page] -Model: if/kimi-k2-thinking (or any provider/model prefix) -``` - -Funcționează cu Claude Code, Codex CLI, Gemini CLI, Cursor, Cline, OpenClaw, OpenCode și SDK-uri compatibile cu OpenAI. - -### 4) Activați și validați protocoalele (v2.0) - -**MCP (pentru operațiuni cu scule):** - -```bash -omniroute --mcp -``` - -Apoi conectați-vă clientul MCP prin `stdio` și testați instrumente precum: - -- `omniroute_get_health` -- `omniroute_list_combos` - -**A2A (pentru fluxuri de lucru de la agent la agent):** - -```bash -curl http://localhost:20128/.well-known/agent.json -``` - -```bash -curl -X POST http://localhost:20128/a2a \ - -H 'content-type: application/json' \ - -d '{"jsonrpc":"2.0","id":"quickstart","method":"message/send","params":{"skill":"quota-management","messages":[{"role":"user","content":"Give me a short quota summary."}]}}' -``` - -### 5) Validați totul de la capăt la capăt (recomandat) - -```bash -npm run test:protocols:e2e -``` - -Această suită validează fluxurile reale de clienți MCP și A2A împotriva unei aplicații care rulează. - -### Alternativă: rulează de la sursă - -```bash -cp .env.example .env -npm install -PORT=20128 DASHBOARD_PORT=20129 NEXT_PUBLIC_BASE_URL=http://localhost:20129 npm run dev -``` - ---- - -## 🐳 Docker - -OmniRoute este disponibil ca imagine publică Docker pe [Docker Hub](https://hub.docker.com/r/diegosouzapw/omniroute). - -**Alergare rapidă:** - -```bash -docker run -d \ - --name omniroute \ - --restart unless-stopped \ - -p 20128:20128 \ - -v omniroute-data:/app/data \ - diegosouzapw/omniroute:latest -``` - -**Cu fișier de mediu:** - -```bash -# Copy and edit .env first -cp .env.example .env - -docker run -d \ - --name omniroute \ - --restart unless-stopped \ - --env-file .env \ - -p 20128:20128 \ - -v omniroute-data:/app/data \ - diegosouzapw/omniroute:latest -``` - -**Utilizarea Docker Compose:** - -```bash -# Base profile (no CLI tools) -docker compose --profile base up -d - -# CLI profile (Claude Code, Codex, OpenClaw built-in) -docker compose --profile cli up -d -``` - -| Imagine | Etichetă | Dimensiune | Descriere | -| ------------------------ | -------- | ---------- | ----------------------- | -| `diegosouzapw/omniroute` | `latest` | ~250MB | Ultima versiune stabilă | -| `diegosouzapw/omniroute` | `1.0.3` | ~250MB | Versiunea curentă | - ---- - -## 🖥️ Aplicație desktop — Offline și mereu activată - -> 🆕 **NOU!** OmniRoute este acum disponibil ca **aplicație desktop nativă** pentru Windows, macOS și Linux. - -Rulați OmniRoute ca o aplicație desktop autonomă - fără terminal, fără browser, fără internet necesar pentru modelele locale. Aplicația bazată pe electroni include: - -- 🖥️ **Fereastra nativă** — Fereastra aplicației dedicată cu integrare în tava de sistem -- 🔄 **Auto-Start** — Lansați OmniRoute la autentificarea sistemului -- 🔔 **Notificări native** — Primiți alerte pentru epuizarea cotelor sau probleme legate de furnizor -- ⚡ **Instalare cu un singur clic** — NSIS (Windows), DMG (macOS), AppImage (Linux) -- 🌐 **Mod offline** — Funcționează complet offline cu serverul inclus - -### Pornire rapidă - -```bash -# Development mode -npm run electron:dev - -# Build for your platform -npm run electron:build # Current platform -npm run electron:build:win # Windows (.exe) -npm run electron:build:mac # macOS (.dmg) — x64 & arm64 -npm run electron:build:linux # Linux (.AppImage) -``` - -### Tava de sistem - -Când este minimizat, OmniRoute se află în bara de sistem cu acțiuni rapide: - -- Deschide tabloul de bord -- Schimbați portul serverului -- Închideți aplicația - -📖 Documentație completă: [**OMNI_TOKEN_153**](electron/README.md) - ---- - -## 💰 Prețurile dintr-o privire - -| Nivelul | Furnizor | Cost | Resetare cotă | Cel mai bun pentru | -| ---------------- | --------------------------- | ------------------------------------- | --------------------------- | --------------------------------------------- | -| **💳 ABONAMENT** | Claude Code (Pro) | 20 USD/lună | 5h + săptămânal | Deja abonat | -| | Codex (Plus/Pro) | 20-200 USD/lună | 5h + săptămânal | Utilizatori OpenAI | -| | Gemeni CLI | **GRATIS** | 180K/lună + 1K/zi | Toată lumea! | -| | GitHub Copilot | 10-19 USD/lună | Lunar | utilizatorii GitHub | -| **🔑 CHEIA API** | NVIDIA NIM | **GRATIS** (dev forever) | ~40 RPM | 70+ modele deschise | -| | Cerebre | **GRATIS** (1M tok/zi) | 60K TPM / 30 RPM | Cel mai rapid din lume | -| | Groq | **GRATIS** (30 RPM) | 14,4K RPD | Llama/Gemma ultra-rapidă | -| | DeepSeek V3.2 | 0,27 USD/1,10 USD per 1 milion | Niciuna | Cel mai bun raționament preț/calitate | -| | xAI Grok-4 Fast | **0,20 USD/0,50 USD pe 1M** 🆕 | Niciuna | Cea mai rapidă + apelare instrument, ultralow | -| | xAI Grok-4 (standard) | 0,20 USD/1,50 USD per 1 milion 🆕 | Niciuna | Raționamentul emblematic de la xAI | -| | Mistral | Probă gratuită + plătit | Tarif limitat | IA europeană | -| | OpenRouter | Plată-pe-utilizare | Niciuna | 100+ modele agr. | -| **💰 IEFTIN** | GLM-5 (prin Z.AI) 🆕 | 0,5 USD/1 milion | Zilnic 10:00 | Ieșire 128K, cel mai nou flagship | -| | GLM-4.7 | 0,6 USD/1 milion | Zilnic 10:00 | Backup buget | -| | MiniMax M2.5 🆕 | Intrare de 0,3 USD/1 milion | rulare de 5 ore | Raționament + sarcini agentice | -| | MiniMax M2.1 | 0,2 USD/1 milion | rulare de 5 ore | Cea mai ieftină opțiune | -| | Kimi K2.5 (API Moonshot) 🆕 | Plată-pe-utilizare | Niciuna | Acces direct API Moonshot | -| | Kimi K2 | 9 USD/lună plat | 10 milioane de jetoane/lună | Cost previzibil | -| **🆓 GRATUIT** | Qoder | **$0** | Nelimitat | 5 modele nelimitat | -| | Qwen | **$0** | Nelimitat | 4 modele nelimitat | -| | Kiro | **$0** | Nelimitat | Claude Sonnet/Haiku (AWS Builder) | -| | LongCat Flash-Lite 🆕 | **$0** (50 M tok/zi 🔥) | 1 RPS | Cea mai mare cotă gratuită de pe Pământ | -| | Polenizări AI 🆕 | **$0** (nu este nevoie de cheie) | 1 solicitat/15s | GPT-5, Claude, DeepSeek, Llama 4 | -| | Cloudflare Workers AI 🆕 | **$0** (10K Neuroni/zi) | ~150 resp/zi | 50+ modele, avantaj global | -| | Scaleway AI 🆕 | **$0** (1 milion de jetoane în total) | Tarif limitat | UE/GDPR, Qwen3 235B, Llama 70B | - -> 🆕 **Modele noi adăugate (mar 2026):** Familia Grok-4 Fast la 0,20 USD/0,50 USD/M (evaluat la 1143 ms — cu 30% mai rapid decât Gemini 2.5 Flash), GLM-5 prin Z.AI cu ieșire de 128K, Raționament MiniMax M2.5, Raționamentul KimiSeek 5, actualizare Deep2.5. API direct Moonshot. - -**💡 Stivă combinată de 0 USD — Configurare completă gratuită:** - -``` -# 🆓 Ultimate Free Stack 2026 — 11 Providers, $0 Forever -Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED -LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 -Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed -Qwen (qw/) → qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next UNLIMITED -Gemini (gemini/) → Gemini 2.5 Flash — 1,500 req/day free API key -Cloudflare AI (cf/) → Llama 70B, Gemma 3, Mistral — 10K Neurons/day -Scaleway (scw/) → Qwen3 235B, Llama 70B — 1M free tokens (EU) -Groq (groq/) → Llama/Gemma ultra-fast — 14.4K req/day -NVIDIA NIM (nvidia/) → 70+ open models — 40 RPM forever -Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day -``` - -** Cost zero. Nu se oprește niciodată codificarea.** Configurați acest lucru ca un combo OmniRoute și toate alternativele au loc automat - fără comutare manuală vreodată. - ---- - ---- - -## 🆓 Modele gratuite — Ce obțineți de fapt - -> Toate modelele de mai jos sunt **100% gratuite, fără card de credit necesar**. OmniRoute face trasee automate între ele când se epuizează o cotă - combină-le pe toate pentru o combinație de 0 USD de neîntrerupt. - -### 🔵 MODELE CLAUDE (prin Kiro — AWS Builder ID) - -| Model | Prefix | Limită | Limită de rată | -| ------------------- | ------ | ------------- | ----------------------------- | -| `claude-sonnet-4.5` | `kr/` | **Nelimitat** | Niciun plafon zilnic raportat | -| `claude-haiku-4.5` | `kr/` | **Nelimitat** | Niciun plafon zilnic raportat | -| `claude-opus-4.6` | `kr/` | **Nelimitat** | Ultimul Opus prin Kiro | - -### 🟢 MODELE QODER (OAuth gratuit — fără card de credit) - -| Model | Prefix | Limită | Limită de rată | -| ------------------ | ------ | ------------- | ---------------------- | -| `kimi-k2-thinking` | `if/` | **Nelimitat** | Nicio limită raportată | -| `qwen3-coder-plus` | `if/` | **Nelimitat** | Nicio limită raportată | -| `deepseek-r1` | `if/` | **Nelimitat** | Nicio limită raportată | -| `minimax-m2.1` | `if/` | **Nelimitat** | Nicio limită raportată | -| `kimi-k2` | `if/` | **Nelimitat** | Nicio limită raportată | - -### 🟡 MODELE QWEN (Autentificare cod dispozitiv) - -| Model | Prefix | Limită | Limită de rată | -| ------------------- | ------ | ------------- | ---------------------- | -| `qwen3-coder-plus` | `qw/` | **Nelimitat** | Nicio limită raportată | -| `qwen3-coder-flash` | `qw/` | **Nelimitat** | Nicio limită raportată | -| `qwen3-coder-next` | `qw/` | **Nelimitat** | Nicio limită raportată | -| `vision-model` | `qw/` | **Nelimitat** | Multimodal (imagini) | - -### 🟣 GEMINI CLI (Google OAuth) - -| Model | Prefix | Limită | Limită de rată | -| ------------------------ | ------ | -------------------------- | --------------- | -| `gemini-3-flash-preview` | `gc/` | **180K tok/lună** + 1K/zi | Resetare lunară | -| `gemini-2.5-pro` | `gc/` | 180K/lună (piscina comună) | Calitate înaltă | - -### ⚫ NVIDIA NIM (Cheie API gratuită — build.nvidia.com) - -| Nivelul | Limită zilnică | Limită de rată | Note | -| ------------- | -------------------- | -------------- | ------------------------------------------------------------------- | -| Gratuit (Dev) | Fără capac de simbol | **~40 RPM** | 70+ modele; trecerea la limitele ratei pure la mijlocul anului 2025 | - -Modele gratuite populare: `moonshotai/kimi-k2.5` (Kimi K2.5), `z-ai/glm4.7` (GLM 4.7), `deepseek-ai/deepseek-v3.2` (DeepSeek V3.2), `nvidia/llama-3.3-70b-instruct`, **OMNI18**EN - -### ⚪ CEREBRAS (Cheie API gratuită — inference.cerebras.ai) - -| Nivelul | Limită zilnică | Limită de rată | Note | -| ------- | -------------------------- | ---------------- | ------------------------------------------------------- | -| Gratuit | **1 milion de jetoane/zi** | 60K TPM / 30 RPM | Cea mai rapidă inferență LLM din lume; resetează zilnic | - -Disponibil gratuit: `llama-3.3-70b`, `llama-3.1-8b`, `deepseek-r1-distill-llama-70b` - -### 🔴 GROQ (Cheie API gratuită — console.groq.com) - -| Nivelul | Limită zilnică | Limită de rată | Note | -| ------- | -------------- | ---------------- | ------------------------------------------- | -| Gratuit | **14,4K RPD** | 30 RPM per model | Fără card de credit; 429 în limită, netaxat | - -Disponibil gratuit: `llama-3.3-70b-versatile`, `gemma2-9b-it`, `mixtral-8x7b`, `whisper-large-v3` - -### 🔴 LONGCAT AI (Cheie API gratuită — longcat.chat) 🆕 - -| Model | Prefix | Cotă zilnică gratuită | Note | -| ----------------------------- | ------ | --------------------- | ----------------------------------- | -| `LongCat-Flash-Lite` | `lc/` | **50M de jetoane** 💥 | Cea mai mare cotă gratuită vreodată | -| `LongCat-Flash-Chat` | `lc/` | 500K jetoane | Chat în mai multe rânduri | -| `LongCat-Flash-Thinking` | `lc/` | 500K jetoane | Raționament / CoT | -| `LongCat-Flash-Thinking-2601` | `lc/` | 500K jetoane | Versiunea ianuarie 2026 | -| `LongCat-Flash-Omni-2603` | `lc/` | 500K jetoane | Multimodal | - -> 100% gratuit în timpul beta public. Înscrieți-vă la [longcat.chat](https://longcat.chat) cu e-mail sau telefon. Se resetează zilnic la 00:00 UTC. - -### 🟢 POLLINATIONS AI (Nu este necesară nicio cheie API) 🆕 - -| Model | Prefix | Limită de rată | Furnizor în spatele | -| ---------- | ------ | --------------- | ------------------- | -| `openai` | `pol/` | 1 solicitat/15s | GPT-5 | -| `claude` | `pol/` | 1 solicitat/15s | Claude antropic | -| `gemini` | `pol/` | 1 solicitat/15s | Google Gemeni | -| `deepseek` | `pol/` | 1 solicitat/15s | DeepSeek V3 | -| `llama` | `pol/` | 1 solicitat/15s | Meta Llama 4 Scout | -| `mistral` | `pol/` | 1 solicitat/15s | Mistral AI | - -> ✨ **Zero frecare:** Fără înscriere, fără cheie API. Adăugați furnizorul de polenizări cu un câmp cheie gol și funcționează imediat. - -### 🟠 CLOUDFLARE WORKERS AI (Cheie API gratuită — cloudflare.com) 🆕 - -| Nivelul | Neuroni zilnici | Utilizare echivalentă | Note | -| ------- | --------------- | -------------------------------------------- | ---------------------------------- | -| Gratuit | **10.000** | ~150 LLM resp / 500s audio / 15K încorporare | Avantaj global, peste 50 de modele | - -Modele gratuite populare: `@cf/meta/llama-3.3-70b-instruct`, `@cf/google/gemma-3-12b-it`, `@cf/openai/whisper-large-v3-turbo` (audio gratuit!), `@cf/qwen/qwen2.5-coder-15b-instruct` - -> Necesită API Token + ID cont de la [dash.cloudflare.com](https://dash.cloudflare.com). Stocați ID-ul contului în setările furnizorului. - -### 🟣 SCALEWAY AI (1 milion de jetoane gratuite — scaleway.com) 🆕 - -| Nivelul | Cotă gratuită | Localizare | Note | -| ------- | ----------------------- | ------------ | ------------------------------------------ | -| Gratuit | **1 milion de jetoane** | 🇫🇷 Paris, UE | Nu este nevoie de card de credit în limite | - -Disponibil gratuit: `qwen3-235b-a22b-instruct-2507` (Qwen3 235B!), `llama-3.1-70b-instruct`, `mistral-small-3.2-24b-instruct-2506`, `deepseek-v3-0324` - -> Conform UE/GDPR. Obțineți cheia API la [console.scaleway.com](https://console.scaleway.com). - -> **💡 Ultima stivă gratuită (11 furnizori, 0 USD pentru totdeauna):** -> -> ``` -> Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -> Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED -> LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 -> Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed -> Qwen (qw/) → qwen3-coder models UNLIMITED -> Gemini (gemini/) → Gemini 2.5 Flash — 1,500 req/day free -> Cloudflare AI (cf/) → 50+ models — 10K Neurons/day -> Scaleway (scw/) → Qwen3 235B, Llama 70B — 1M free tokens (EU) -> Groq (groq/) → Llama/Gemma — 14.4K req/day ultra-fast -> NVIDIA NIM (nvidia/) → 70+ open models — 40 RPM forever -> Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day -> ``` - -## 🎙️ Combo de transcriere gratuită - -> Transcrie orice audio/video pentru **$0** — Deepgram conduce cu 200 USD gratuit, AssemblyAI 50 USD alternativ, Groq Whisper ca rezervă nelimitată de urgență. - -| Furnizor | Credite gratuite | Cel mai bun model | Limită de rată | -| ------------------ | ------------------------------- | ---------------------------------------------------- | ----------------------------------------- | -| 🟢 **Deepgram** | **200 USD gratuit** (înscriere) | `nova-3` — cea mai bună acuratețe, peste 30 de limbi | Fără limită RPM pentru creditele gratuite | -| 🔵 **AsamblareAI** | **50 USD gratuit** (înscriere) | `universal-3-pro` — capitole, sentiment, PII | Fără limită RPM pentru creditele gratuite | -| 🔴 **Groq** | **Gratuit pentru totdeauna** | `whisper-large-v3` — OpenAI Whisper | 30 RPM (rată limitată) | - -**Combinație sugerată în `/dashboard/combos`:** - -``` -Name: free-transcription -Strategy: Priority -Nodes: - [1] deepgram/nova-3 → uses $200 free first - [2] assemblyai/universal-3-pro → fallback when Deepgram credits run out - [3] groq/whisper-large-v3 → free forever, emergency fallback -``` - -Apoi, în `/dashboard/media` → fila **Transcriere**: încărcați orice fișier audio sau video → selectați punctul final combo → obțineți transcrierea în formatele acceptate. - -## 💡 Caracteristici cheie - -OmniRoute v2.0 este construit ca o platformă operațională, nu doar un proxy-releu. - -### 🆕 Nou — Îmbunătățiri inspirate de ClawRouter (martie 2026) - -| Caracteristica | Ce face | -| --------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | -| ⚡ **Grok-4 Fast Family** | Modele xAI la 0,20 USD/0,50 USD/M — etalon de 1143 ms (30% mai rapid decât Gemini 2.5 Flash) | -| 🧠 **GLM-5 prin Z.AI** | Context de ieșire de 128.000, 0,5 USD/1 milion — cel mai nou flagship din familia GLM | -| 🔮 **MiniMax M2.5** | Raționament + sarcini agentice la 0,30 USD/1 milion – upgrade semnificativ de la M2.1 | -| 🎯 **toolCalling Flag per model** | Per-model `toolCalling: true/false` în registru — AutoCombo omite modelele care nu sunt compatibile cu instrumente | -| 🌍 **Detecția intenției multilingve** | Cuvinte cheie PT/ZH/ES/AR în scorul AutoCombo — o selecție mai bună a modelului pentru conținut care nu este în limba engleză | -| 📊 **Backmark-uri bazate pe benchmark** | Latența reală p95 de la solicitările live alimentează scorul combinat — AutoCombo învață din datele reale | -| 🔁 **Solicitare deduplicare** | Fereastra de deduplicare bazată pe hash de conținut — sigură pentru mai mulți agenți, previne taxele duplicate | -| 🔌 **Pluggable RouterStrategy** | Interfață extensibilă `RouterStrategy` — adăugați logica de rutare personalizată ca pluginuri | - -### 🚀 V2.0.9+ anterioară — Playground, CLI Fingerprints și ACP - -| Caracteristica | Ce face | -| -------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 🎮 **Teren de joacă model** | Pagina tabloului de bord pentru a testa orice model direct — selectoare furnizor/model/punct final, Editor Monaco, streaming, anulare, sincronizare | -| 🔏 **Potrivirea amprentei CLI** | Ordinea antetului/corpului pentru fiecare furnizor pentru a se potrivi cu semnăturile CLI native - comutați pentru fiecare furnizor în Setări > Securitate. **IP-ul dvs. proxy este păstrat** | -| 🤝 **Suport ACP (Agent Client Protocol)** | Descoperirea agentului CLI (Codex, Claude, Goose, Gemini CLI, OpenClaw + încă 9), generator de proces, punct final `/api/acp/agents` | -| 🤖 **Tabloul de bord pentru agenții ACP** | Depanare › Pagina Agenți — grilă de 14 agenți cu starea instalării, versiunea, formularul de agent personalizat pentru orice instrument CLI. Utilizatorii **OpenCode** primesc un buton „Descărcați opencode.json” care generează automat o configurație gata de utilizare cu toate modelele disponibile. | -| 🔧 **Model personalizat `apiFormat` Rutare** | Modelele personalizate cu `apiFormat: "responses"` sunt acum direcționate corect către traducătorul API de răspunsuri | -| 🏢 **Izolarea spațiului de lucru Codex** | Spații de lucru Codex multiple per e-mail — OAuth separă corect conexiunile după ID-ul spațiului de lucru | -| 🔄 **Actualizare automată Electron** | Aplicația desktop verifică actualizările + instalare automată la repornire | - -### 🤖 Operații cu agenți și protocol (v2.0) - -| Caracteristica | Ce face | -| --------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | -| 🔧 **Server MCP (16 instrumente)** | Instrumente IDE/agent prin 3 transporturi: stdio, SSE (`/api/mcp/sse`), HTTP Streamable (`/api/mcp/stream`) | -| 🤝 **Server A2A (JSON-RPC + SSE)** | Execuția sarcinilor de la agent la agent cu fluxuri de sincronizare și streaming | -| 🧭 **Pagină de puncte finale consolidate** | Pagina de gestionare cu file cu file Endpoint Proxy, MCP, A2A și API Endpoints | -| 🎚️ **Servicii Activare/Dezactivare Comutări** | Comutatoare ON/OFF pentru MCP și A2A cu persistența setărilor (implicit: OFF) | -| 🛰️ **MCP Runtime Heartbeat** | Starea reală a procesului (pid, uptime, vârsta bătăilor inimii, transport, mod scope) | -| 📋 **MCP Audit Trail** | Jurnale de audit filtrabile cu succes/eșec și atribuire cheie | -| 🔐 **MCP Scope Enforcement** | 9 permisiuni granulare pentru acces controlat la instrumente | -| 📡 **A2A Task Lifecycle Management** | Listați/filtrați sarcinile, inspectați evenimentele/artefactele, anulați activitățile care rulează | -| 📋 **Descoperire card de agent** | `/.well-known/agent.json` pentru descoperirea automată a clientului | -| 🧪 **Protocol E2E Test Harness** | Real MCP SDK + A2A client flux în `test:protocols:e2e` | -| ⚙️ **Controale operaționale** | Combo de comutare, aplicați profile de rezistență, resetați întrerupătoarele de pe o suprafață de control | - -### 🧠 Rutare și inteligență - -| Caracteristica | Ce face | -| ----------------------------------------------- | ----------------------------------------------------------------------------------------- | -| 🎯 **Backback inteligent pe 4 niveluri** | Rută automată: Abonament → Cheie API → Ieftin → Gratuit | -| 📊 **Urmărirea cotelor în timp real** | Numărătoare de jetoane live + numărătoare inversă de resetare per furnizor | -| 🔄 **Traducerea formatului** | OpenAI ↔ Claude ↔ Gemeni ↔ Răspunsuri cu conversii sigure pentru schema | -| 👥 **Asistență pentru mai multe conturi** | Conturi multiple per furnizor cu selecție inteligentă | -| 🔄 **Reîmprospătare automată a simbolului** | Tokenurile OAuth se reîmprospătează automat cu reîncercarea | -| 🎨 **Combinații personalizate** | 6 strategii de echilibrare + controlul lanțului de rezervă | -| 🌐 **Wildcard Router** | `provider/*` rutare dinamică | -| 🧠 **Gândirea controalelor bugetare** | Limite de raționament de trecere, automate, personalizate și adaptive | -| 🔀 ** Aliasuri de model ** | Aliasarea modelului încorporat + personalizat și siguranța migrării | -| ⚡ **Degradarea fundalului** | Direcționați sarcinile de fundal cu prioritate redusă către modele mai ieftine | -| 🧪 **Rutare inteligentă în funcție de sarcini** | Se selectează automat modelul după tipul de conținut (codificare/viziune/analiza/rezumat) | -| 💬 **System Prompt Injection** | Controalele globale ale comportamentului aplicate în mod consecvent | -| 📄 **Responses API Compatibility** | Suport complet `/v1/responses` pentru Codex și fluxuri de lucru agentice avansate | - -### 🎵 API-uri multimodale - -| Caracteristica | Ce face | -| ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| 🖼️ **Generarea imaginii** | `/v1/images/generations` cu cloud și backend locale | -| 📐 **Inglobări** | `/v1/embeddings` pentru conducte de căutare și RAG | -| 🎤 **Transcriere audio** | `/v1/audio/transcriptions` — 7 furnizori (Deepgram Nova 3, AssemblyAI, Groq Whisper, HuggingFace, ElevenLabs, OpenAI, Azure), detectarea automată a limbii, suport MP4/MP3/WAV | -| 🔊 **Text-to-speech** | `/v1/audio/speech` — 10 furnizori (ElevenLabs, OpenAI, Deepgram, Cartesia, PlayHT, HuggingFace, Nvidia NIM, Inworld, Coqui, Tortoise) cu mesaje de eroare corecte | -| 🎬 **Generație video** | `/v1/videos/generations` (fluxuri de lucru ComfyUI + SD WebUI) | -| 🎵 **Generație muzicală** | `/v1/music/generations` (fluxuri de lucru ComfyUI) | -| 🛡️ **Moderații** | `/v1/moderations` verificări de siguranță | -| 🔀 **Reclasificare** | `/v1/rerank` pentru notarea relevanței | -| 🔍 **Căutare pe web** 🆕 | `/v1/search` — 5 furnizori (Serper, Brave, Perplexity, Exa, Tavily), peste 6.500 gratuit/lună, auto-failover, cache | - -### 🛡️ Reziliență, securitate și guvernanță - -| Caracteristica | Ce face | -| -------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | -| 🔌 **Întrerupătoare** | Deplasare/recuperare per model cu controale de prag | -| 🎯 **Modele compatibile cu punctele finale** | Modelele personalizate declară puncte finale acceptate + format API | -| 🛡️ **Turmă Anti-Tunete** | Protecții Mutex + semafor la evenimentele de reîncercare/evaluare | -| 🧠 **Semantică + Cache de semnătură** | Reducerea costului/latenței cu două straturi de cache | -| ⚡ **Solicita Idempotenta** | Fereastra de protecție duplicată | -| 🔒 **TLS Fingerprint Spoofing** | Amprenta digitală TLS asemănătoare unui browser — **reduce detectarea botului și semnalizarea contului** | -| 🔏 **Potrivirea amprentei CLI** | Se potrivește cu semnăturile cererilor CLI native — **reduce riscul de interzicere, păstrând IP-ul proxy** | -| 🌐 **Filtrare IP** | Controlul listei de permise/liste de blocare pentru implementările expuse | -| 📊 **Limite de rată editabile** | Limite configurabile globale/la nivel de furnizor cu persistență | -| 🔑 **Administrarea cheilor API + Scoping** | Emiterea/rotarea cheilor securizate și controale model/furnizor | -| 🛡️ **Protejat `/models`** | Autentificare opțională și ascunderea furnizorului pentru catalogul de modele | - -### 📊 Observabilitate și analiză - -| Caracteristica | Ce face | -| ------------------------------------------------- | ---------------------------------------------------------------------------------- | -| 📝 **Solicitare + Înregistrare proxy** | Cerere/răspuns complet și înregistrare proxy | -| 📉 **Streamed Detailed Logs** 🆕 | Reconstructs SSE payload streams cleanly into the UI | -| 📋 **Tabloul de bord pentru jurnalele unificate** | Vizualizări de solicitare, proxy, audit și consolă într-o singură pagină | -| 🔍 **Solicitare telemetrie** | latența p50/p95/p99 și urmărirea solicitărilor | -| 🏥 **Tabloul de bord pentru sănătate** | Uptime, stări de întrerupere, blocări, statistici cache | -| 💰 **Urmărirea costurilor** | Controalele bugetare și vizibilitatea prețurilor pe model | -| 📈 **Vizualizări de analiză** | Informații despre utilizarea modelului/furnizorului și vizualizări ale tendințelor | -| 🧪 **Cadru de evaluare** | Testarea setului de aur cu strategii de meci configurabile | - -### ☁️ Implementare și platformă - -| Caracteristica | Ce face | -| ------------------------------------- | ------------------------------------------------------------------------------ | -| 🌐 **Implementează oriunde** | Localhost, VPS, Docker, medii cloud | -| 💾 **Cloud Sync** | Sincronizarea configurației prin cloud worker | -| 🔄 **Backup/Restaurare** | Export/import și fluxuri de recuperare în caz de dezastru | -| 🧙 **Onboarding Wizard** | Configurare ghidată pentru prima rulare | -| 🔧 **Tabloul de bord CLI Tools** | Configurare cu un singur clic pentru instrumentele populare de codare | -| 🎮 **Teren de joacă model** | Testați orice furnizor/model/punct final din tabloul de bord | -| 🔏 **CLI Fingerprint Toggle** | Potrivirea amprentelor pentru fiecare furnizor în Setări > Securitate | -| 🌐 **i18n (30 de limbi)** | Tabloul de bord complet + suport pentru limbajul documentelor cu acoperire RTL | -| 🧹 **Șterge toate modelele** | Ștergerea listei de modele cu un singur clic în detaliile furnizorului | -| 👁️ **Sidebar Controls** 🆕 | Hide components and integrations from Appearance Settings | -| 📋 **Șabloane de probleme** | Șabloane GitHub standardizate pentru erori și caracteristici | -| 📂 **Director de date personalizate** | `DATA_DIR` anulează pentru locația de stocare | - -### Caracteristică Deep Dive - -#### Alternativ inteligent cu control practic al costurilor - -```txt -Combo: "my-coding-stack" - 1. cc/claude-opus-4-6 - 2. nvidia/llama-3.3-70b - 3. glm/glm-4.7 - 4. if/kimi-k2-thinking -``` - -Când cota, rata sau starea de sănătate eșuează, OmniRoute trece automat la următorul candidat fără comutare manuală. - -#### Managementul protocolului care este vizibil și operabil - -- MCP + A2A pot fi descoperite în UI și în documente (nu sunt ascunse) -- API-urile privind starea protocolului expun date operaționale live (`/api/mcp/*`, `/api/a2a/*`) -- Tablourile de bord includ acțiuni pentru operațiunile din a doua zi (comutații combo, resetări întrerupătoare, anularea sarcinilor) - -#### Traducător + flux de lucru de validare - -Zona Translator include: - -- **Teren de joacă**: solicitați verificări de transformare -- **Tester de chat**: cerere/răspuns complet dus-întors -- **Bancul de testare**: mai multe cazuri într-o singură cursă -- **Live Monitor**: vizualizare în timp real a traficului - -Plus validarea protocolului cu clienți reali prin `npm run test:protocols:e2e`. - -> 📖 **[MCP Server README](open-sse/mcp-server/README.md)** — Referință pentru instrumente, configurații IDE și exemple de clienți -> -> 📖 **[A2A Server README](src/lib/a2a/README.md)** — Abilități, metode JSON-RPC, streaming și ciclul de viață al sarcinilor - -## 🧪 Evaluări (Evaluări) - -OmniRoute include un cadru de evaluare încorporat pentru a testa calitatea răspunsului LLM față de un set de aur. Accesați-l prin **Analitice → Evaluări** în tabloul de bord. - -### Set de aur încorporat - -„Setul de aur OmniRoute” preîncărcat conține cazuri de testare pentru: - -- Salutări, matematică, geografie, generare de cod -- Conformitatea formatului JSON, traducere, generare de reduceri -- Refuz de siguranță (conținut nociv), numărare, logică booleană - -### Strategii de evaluare - -| Strategie | Descriere | Exemplu | -| ---------- | ------------------------------------------------------------------------- | -------------------------------- | -| `exact` | Ieșirea trebuie să se potrivească exact cu | `"4"` | -| `contains` | Ieșirea trebuie să conțină subșir (indiferență de majuscule și minuscule) | `"Paris"` | -| `regex` | Ieșirea trebuie să se potrivească cu modelul regex | `"1.*2.*3"` | -| `custom` | Funcția JS personalizată returnează adevărat/fals | `(output) => output.length > 10` | - ---- - -## 📖 Ghid de configurare - -### Configurare protocol (MCP + A2A) - -<details> -<summary><b>🧩 Configurare MCP (Model Context Protocol)</b></summary> - -Porniți transportul MCP în modul stdio: - -```bash -omniroute --mcp -``` - -Flux de validare recomandat: - -1. Conectați clientul MCP prin stdio. -2. Rulați `omniroute_get_health`. -3. Rulați `omniroute_list_combos`. -4. Deschideți `/dashboard/mcp` pentru a confirma bătăile inimii, activitatea și auditul. - -API-uri utile pentru automatizare: - -- `GET /api/mcp/status` -- `GET /api/mcp/tools` -- `GET /api/mcp/audit` -- `GET /api/mcp/audit/stats` - -</details> - -<details> -<summary><b>🤝 Configurare A2A (Agent2Agent)</b></summary> - -Descoperiți agentul: - -```bash -curl http://localhost:20128/.well-known/agent.json -``` - -Trimiteți o sarcină: - -```bash -curl -X POST http://localhost:20128/a2a \ - -H 'content-type: application/json' \ - -d '{"jsonrpc":"2.0","id":"setup-a2a","method":"message/send","params":{"skill":"quota-management","messages":[{"role":"user","content":"Summarize quota status."}]}}' -``` - -Gestionați ciclul de viață: - -- `GET /api/a2a/status` -- `GET /api/a2a/tasks` -- `GET /api/a2a/tasks/:id` -- `POST /api/a2a/tasks/:id/cancel` - -Interfața de utilizare operațională: - -- `/dashboard/a2a` pentru observabilitate sarcini/stare/flux și acțiuni de fum - -</details> - -<details> -<summary><b>🧪 Validarea protocolului end-to-end</b></summary> - -Validați ambele protocoale cu clienți reali: - -```bash -npm run test:protocols:e2e -``` - -Aceasta verifică: - -- Conectare/lista/apelare client MCP SDK -- A2A descoperire/trimitere/stream/obține/anulează -- Verificați încrucișați datele în auditul MCP și API-urile de gestionare a sarcinilor A2A - -</details> - -<details> -<summary><b>💳 Furnizori de abonament</b></summary> - -### Cod Claude (Pro/Max) - -```bash -Dashboard → Providers → Connect Claude Code -→ OAuth login → Auto token refresh -→ 5-hour + weekly quota tracking - -Models: - cc/claude-opus-4-6 - cc/claude-sonnet-4-5-20250929 - cc/claude-haiku-4-5-20251001 -``` - -**Sfat profesionist:** Folosiți Opus pentru sarcini complexe, Sonnet pentru viteză. OmniRoute urmărește cota per model! - -### OpenAI Codex (Plus/Pro) - -```bash -Dashboard → Providers → Connect Codex -→ OAuth login (port 1455) -→ 5-hour + weekly reset - -Models: - cx/gpt-5.2-codex - cx/gpt-5.1-codex-max -``` - -#### Managementul limitelor contului Codex (5 ore + săptămânal) - -Fiecare cont Codex are acum comutări de politică în `Dashboard -> Providers`: - -- `5h` (ON/OFF): aplicați politica privind pragul ferestrei de 5 ore. -- `Weekly` (ON/OFF): aplicați politica săptămânală privind pragul ferestrei. -- Comportamentul de prag: când o fereastră activată atinge >=90% utilizare, acel cont este omis. -- Comportament de rotație: OmniRoute direcționează automat către următorul cont Codex eligibil. -- Resetare comportament: când furnizorul `resetAt` trece timpul, contul devine din nou eligibil automat. - -Scenarii: - -- `5h ON` + `Weekly ON`: contul este omis atunci când oricare dintre ferestre atinge pragul. -- `5h OFF` + `Weekly ON`: numai utilizarea săptămânală poate bloca contul. -- `5h ON` + `Weekly OFF`: doar utilizarea de 5 ore poate bloca contul. -- `resetAt` trecut: contul reintră automat în rotație (fără reactivare manuală). - -### Gemini CLI (GRATIS 180K/lună!) - -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Cea mai bună valoare:** Nivel gratuit imens! Folosiți-l înainte de nivelurile plătite. - -### GitHub Copilot - -```bash -Dashboard → Providers → Connect GitHub -→ OAuth via GitHub -→ Monthly reset (1st of month) - -Models: - gh/gpt-5 - gh/claude-4.5-sonnet - gh/gemini-3-pro -``` - -</details> - -<details> -<summary><b>🔑 Furnizori de chei API</b></summary> - -### NVIDIA NIM (acces GRATUIT pentru dezvoltatori — peste 70 de modele) - -1. Înscrieți-vă: [build.nvidia.com](https://build.nvidia.com) -2. Obțineți cheia API gratuită (1000 de credite de inferență incluse) -3. Tabloul de bord → Adăugați furnizor → NVIDIA NIM: - - Cheie API: `nvapi-your-key` - -**Modele:** `nvidia/llama-3.3-70b-instruct`, `nvidia/mistral-7b-instruct` și peste 50 de altele - -**Sfat profesional:** API compatibil cu OpenAI - funcționează perfect cu traducerea formatului OmniRoute! - -### DeepSeek - -1. Înscrieți-vă: [platform.deepseek.com](https://platform.deepseek.com) -2. Obțineți cheia API -3. Tabloul de bord → Adăugați furnizor → DeepSeek - -**Modele:** `deepseek/deepseek-chat`, `deepseek/deepseek-coder` - -### Groq (nivel gratuit disponibil!) - -1. Înscrieți-vă: [console.groq.com](https://console.groq.com) -2. Obțineți cheia API (nivel gratuit inclus) -3. Tabloul de bord → Adăugați furnizor → Groq - -**Modele:** `groq/llama-3.3-70b`, `groq/mixtral-8x7b` - -**Sfat profesionist:** Inferență ultra-rapidă - cel mai bun pentru codare în timp real! - -### OpenRouter (100+ modele) - -1. Înscrieți-vă: [openrouter.ai](https://openrouter.ai) -2. Obțineți cheia API -3. Tabloul de bord → Adăugare furnizor → OpenRouter - -**Modele:** Accesați peste 100 de modele de la toți furnizorii importanți printr-o singură cheie API. - -</details> - -<details> -<summary><b>💰 Furnizori ieftini (backup)</b></summary> - -### GLM-4.7 (Resetare zilnică, 0,6 USD/1 milion) - -1. Înscrieți-vă: [Zhipu AI](https://open.bigmodel.cn/) -2. Obțineți cheia API din Coding Plan -3. Tabloul de bord → Adăugați cheia API: - - Furnizor: `glm` - - Cheie API: `your-key` - -**Utilizați:** `glm/glm-4.7` - -**Sfat profesionist:** Planul de codare oferă cotă de 3 ori la 1/7 cost! Resetați zilnic la 10:00. - -### MiniMax M2.1 (resetare în 5 ore, 0,20 USD/1 milion) - -1. Înscrieți-vă: [MiniMax](https://www.minimax.io/) -2. Obțineți cheia API -3. Tabloul de bord → Adăugați cheia API - -**Utilizați:** `minimax/MiniMax-M2.1` - -**Sfat pro:** Cea mai ieftină opțiune pentru context lung (1 milion de jetoane)! - -### Kimi K2 (9 USD/lună fix) - -1. Abonați-vă: [Moonshot AI](https://platform.moonshot.ai/) -2. Obțineți cheia API -3. Tabloul de bord → Adăugați cheia API - -**Utilizați:** `kimi/kimi-latest` - -**Sfat profesionist:** Fix 9 USD/lună pentru 10 milioane de jetoane = 0,90 USD/cost efectiv de 1 milion! - -</details> - -<details> -<summary><b>🆓 Furnizori GRATUITI (Backup de urgență)</b></summary> - -### Qoder (5 modele GRATUITE prin OAuth) - -```bash -Dashboard → Connect Qoder -→ Qoder OAuth login -→ Unlimited usage - -Models: - if/kimi-k2-thinking - if/qwen3-coder-plus - if/glm-4.7 - if/minimax-m2 - if/deepseek-r1 -``` - -### Qwen (4 modele GRATUITE prin codul dispozitivului) - -```bash -Dashboard → Connect Qwen -→ Device code authorization -→ Unlimited usage - -Models: - qw/qwen3-coder-plus - qw/qwen3-coder-flash -``` - -### Kiro (Claude GRATUIT) - -```bash -Dashboard → Connect Kiro -→ AWS Builder ID or Google/GitHub -→ Unlimited usage - -Models: - kr/claude-sonnet-4.5 - kr/claude-haiku-4.5 -``` - -</details> - -<details> -<summary><b>🎨 Creați combinații</b></summary> - -### Exemplul 1: Maximizați abonamentul → Backup ieftin - -``` -Dashboard → Combos → Create New - -Name: premium-coding -Models: - 1. cc/claude-opus-4-6 (Subscription primary) - 2. glm/glm-4.7 (Cheap backup, $0.6/1M) - 3. minimax/MiniMax-M2.1 (Cheapest fallback, $0.20/1M) - -Use in CLI: premium-coding -``` - -### Exemplul 2: Numai gratuit (cost zero) - -``` -Name: free-combo -Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) - -Cost: $0 forever! -``` - -</details> - -<details> -<summary><b>🔧 Integrare CLI</b></summary> - -### Cursor IDE - -``` -Settings → Models → Advanced: - OpenAI API Base URL: http://localhost:20128/v1 - OpenAI API Key: [from OmniRoute dashboard] - Model: cc/claude-opus-4-6 -``` - -### Claude Cod - -Utilizați pagina **Instrumente CLI** din tabloul de bord pentru configurarea cu un singur clic sau editați manual `~/.claude/settings.json`. - -### Codex CLI - -```bash -export OPENAI_BASE_URL="http://localhost:20128" -export OPENAI_API_KEY="your-omniroute-api-key" - -codex "your prompt" -``` - -### OpenClaw - -**Opțiunea 1 — Tabloul de bord (recomandat):** - -``` -Dashboard → CLI Tools → OpenClaw → Select Model → Apply -``` - -**Opțiunea 2 — Manual:** Editați `~/.openclaw/openclaw.json`: - -```json -{ - "models": { - "providers": { - "omniroute": { - "baseUrl": "http://127.0.0.1:20128/v1", - "apiKey": "sk_omniroute", - "api": "openai-completions" - } - } - } -} -``` - -> **Notă:** OpenClaw funcționează numai cu OmniRoute local. Utilizați `127.0.0.1` în loc de `localhost` pentru a evita problemele de rezoluție IPv6. - -### Cline / Continuare / RooCode - -``` -Settings → API Configuration: - Provider: OpenAI Compatible - Base URL: http://localhost:20128/v1 - API Key: [from OmniRoute dashboard] - Model: if/kimi-k2-thinking -``` - -### OpenCode - -**Pasul 1:** Adăugați OmniRoute ca furnizor personalizat: - -```bash -opencode -/connect -# Select "Other" → Enter ID: "omniroute" → Enter your OmniRoute API key -``` - -**Pasul 2:** Creați/editați `opencode.json` în rădăcina proiectului dvs.: - -```json -{ - "$schema": "https://opencode.ai/config.json", - "provider": { - "omniroute": { - "npm": "@ai-sdk/openai-compatible", - "name": "OmniRoute", - "options": { - "baseURL": "http://localhost:20128/v1" - }, - "models": { - "cc/claude-sonnet-4-20250514": { "name": "Claude Sonnet 4" }, - "gg/gemini-2.5-pro": { "name": "Gemini 2.5 Pro" }, - "if/kimi-k2-thinking": { "name": "Kimi K2 (Free)" } - } - } - } -} -``` - -**Pasul 3:** Selectați modelul în OpenCode: - -```bash -/models -# Select any OmniRoute model from the list -``` - -> **Sfat:** Adăugați orice model disponibil în punctul final OmniRoute `/v1/models` la secțiunea `models`. Utilizați formatul `provider/model-id` din tabloul de bord OmniRoute. - -</details> - ---- - -## 🐛 Depanare - -<details> -<summary><b>Faceți clic pentru a extinde ghidul de depanare</b></summary> - -**„Modelul de limbă nu a furnizat mesaje”** - -- Cota de furnizor epuizată → Verificați instrumentul de urmărire a cotei din tabloul de bord -- Soluție: utilizați alternativă combinată sau treceți la un nivel mai ieftin - -**Limitarea ratei** - -- Scăderea cotei de abonament → Fallback la GLM/MiniMax -- Adăugați combo: `cc/claude-opus-4-6 → glm/glm-4.7 → if/kimi-k2-thinking` - -**Tokenul OAuth a expirat** - -- Reîmprospătat automat de OmniRoute -- Dacă problemele persistă: Dashboard → Provider → Reconnect - -**Costuri mari** - -- Verificați statisticile de utilizare în Tabloul de bord → Costuri -- Comutați modelul principal la GLM/MiniMax -- Utilizați nivelul gratuit (Gemini CLI, Qoder) pentru sarcini necritice - -**Tabloul de bord/porturile API sunt greșite** - -- `PORT` este portul de bază canonic (și portul API în mod implicit) -- `API_PORT` suprascrie numai ascultatorul API compatibil cu OpenAI -- `DASHBOARD_PORT` anulează numai tabloul de bord/ascultătorul Next.js -- Setați `NEXT_PUBLIC_BASE_URL` la tabloul de bord/adresa URL publică (pentru apelurile inverse OAuth) - -**Erori de sincronizare în cloud** - -- Verificați `BASE_URL` puncte către instanța dvs. care rulează -- Verificați `CLOUD_URL` puncte către punctul final din cloud așteptat -- Păstrați valorile `NEXT_PUBLIC_*` aliniate cu valorile de pe server - -**Prima conectare nu funcționează** - -- Verificați `INITIAL_PASSWORD` în `.env` -- Dacă nu este setată, parola de rezervă este `123456` - -**Fără jurnal de solicitare** - -- Setați `ENABLE_REQUEST_LOGS=true` în `.env` - -**Testul de conectare arată „Invalid” pentru furnizorii compatibili cu OpenAI** - -- Mulți furnizori nu expun un punct final `/models` -- OmniRoute v1.0.6+ include validarea de rezervă prin finalizarea chatului -- Asigurați-vă că adresa URL de bază include sufixul `/v1` - -### 🔐 OAuth pe un server la distanță - -<a name="oauth-on-a-remote-server"></a> -<a name="oauth-em-servidor-remoto"></a> - -> **⚠️ Important pentru utilizatorii care rulează OmniRoute pe un VPS, Docker sau orice server la distanță** - -#### De ce eșuează Antigravity / Gemini CLI OAuth pe serverele de la distanță? - -Furnizorii de **Antigravity** și **Gemini CLI** folosesc **Google OAuth 2.0**. Google necesită `redirect_uri` din fluxul OAuth pentru a se potrivi exact cu unul dintre URI-urile preînregistrate în Google Cloud Console a aplicației. - -Acreditările OAuth incluse în OmniRoute sunt înregistrate **doar pentru `localhost`**. Când accesați OmniRoute pe un server la distanță (de exemplu, `https://omniroute.myserver.com`), Google respinge autentificarea cu: - -``` -Error 400: redirect_uri_mismatch -``` - -#### Soluție: Configurați propriile acreditări OAuth - -Trebuie să creați un **OAuth 2.0 Client ID** în Google Cloud Console cu URI-ul serverului dvs. - -#### Pas cu pas - -**1. Deschide Google Cloud Console** - -Accesați: [https://console.cloud.google.com/apis/credentials](https://console.cloud.google.com/apis/credentials) - -**2. Creați un nou ID de client OAuth 2.0** - -- Faceți clic pe **"+ Creați acreditări"** → **"ID client OAuth"** -- Tip aplicație: **"Aplicație web"** -- Nume: orice vă place (de exemplu, `OmniRoute Remote`) - -**3. Adăugați URI de redirecționare autorizate** - -În câmpul **„URI-uri de redirecționare autorizate”**, adăugați: - -``` -https://your-server.com/callback -``` - -> Înlocuiți `your-server.com` cu domeniul sau IP-ul serverului dvs. (includeți portul dacă este necesar, de exemplu, `http://45.33.32.156:20128/callback`). - -**4. Salvați și copiați acreditările** - -După creare, Google va afișa **Client ID** și **Client Secret**. - -**5. Setați variabile de mediu** - -În `.env` (sau variabilele de mediu Docker): - -```bash -# For Antigravity: -ANTIGRAVITY_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com -ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-your-secret - -# For Gemini CLI: -GEMINI_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com -GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -``` - -**6. Reporniți OmniRoute** - -```bash -# npm: -npm run dev - -# Docker: -docker restart omniroute -``` - -**7. Încercați să vă conectați din nou** - -Tabloul de bord → Furnizori → Antigravity (sau Gemini CLI) → OAuth - -Google va redirecționa acum corect către `https://your-server.com/callback`. - ---- - -#### Soluție temporară (fără acreditări personalizate) - -Dacă nu doriți să vă configurați propriile acreditări chiar acum, puteți utiliza în continuare **fluxul manual de adrese URL**: - -1. OmniRoute deschide adresa URL de autorizare Google -2. După autorizare, Google încearcă să redirecționeze către `localhost` (care nu reușește pe serverul de la distanță) -3. **Copiați adresa URL completă** din bara de adrese a browserului dvs. (chiar dacă pagina nu se încarcă) -4. Lipiți acea adresă URL în câmpul afișat în modalul de conexiune OmniRoute -5. Faceți clic pe **"Conectați"** - -> Acest lucru funcționează deoarece codul de autorizare din URL este valid, indiferent dacă pagina de redirecționare a fost încărcată. - ---- - -<details> -<summary><b>🇧🇷 Versão em Português</b></summary> - -#### Por que o OAuth do Antigravity / Gemini CLI falha em serveres remotes? - -Pentru autentificare, **Antigravity** și **Gemini CLI** folosesc **Google OAuth 2.0**. O Google exige que a `redirect_uri` utilizat nu fluxo OAuth seja **exatamente** uma das URIs pre-cadastradas no Google Cloud Console do aplicative. - -As credenciais OAuth embutidas no OmniRoute esteão cadastradas **apenas for `localhost`**. Când accesați OmniRoute într-un server la distanță (ex: `https://omniroute.meuservidor.com`), sau Google respinge autentificarea com: - -``` -Error 400: redirect_uri_mismatch -``` - -#### Soluție: Configurați propriile acreditări OAuth - -Você necesita criar um **OAuth 2.0 Client ID** nu Google Cloud Console ca URI pentru server. - -#### Passo a passo - -**1. Acces sau Google Cloud Console** - -Abra: [https://console.cloud.google.com/apis/credentials](https://console.cloud.google.com/apis/credentials) - -**2. Plângeți nou OAuth 2.0 Client ID** - -- Faceți clic pe **"+ Create Credentials"** → **"OAuth client ID"** -- Tip de aplicație: **"Aplicație web"** -- Nume: scolha qualquer nome (ex: `OmniRoute Remote`) - -**3. Adăugați ca URI de redirecționare autorizate** - -No campo **„URI-uri de redirecționare autorizate”**, adiție: - -``` -https://seu-servidor.com/callback -``` - -> Substitue `seu-servidor.com` pelo domínio sau IP do seu server (inclua a porta se necessário, ex: `http://45.33.32.156:20128/callback`). - -**4. Salve și copie ca credenciais** - -Após criar, o Google afișează o **Client ID** e o **Client Secret**. - -**5. Configurați ca variabile de mediu** - -Nu ai `.env` (ai variat de ambient do Docker): - -```bash -# Para Antigravity: -ANTIGRAVITY_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com -ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret - -# Para Gemini CLI: -GEMINI_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com -GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -``` - -**6. Reinicie o OmniRoute** - -```bash -# Se usando npm: -npm run dev - -# Se usando Docker: -docker restart omniroute -``` - -**7. Tente connect novamente** - -Tabloul de bord → Furnizori → Antigravity (sau Gemini CLI) → OAuth - -Agora sau Google redirecționează corect pentru `https://seu-servidor.com/callback` și funcționează autenticação. - ---- - -#### Soluție temporară (sem configura credenciais proprias) - -Nu vă rugăm să vă convingeți acum, dar este posibil să utilizați sau să fluxați **manual de URL**: - -1. OmniRoute deschide o adresă URL de autorizare Google -2. Após você autorizar, o Google tentará redirecionar para `localhost` (que falha no server remote) -3. **Copiați o adresă URL completă** da bara de accesare a browserului (mesmo que a page não carregue) -4. Cole essa URL nu există câmpuri care nu apar modal de conexão pentru OmniRoute -5. Faceți clic pe **„Conectați-vă”** - -> Această soluție de soluționare funcționează deoarece codul de autorizare a URL-ului este valabil independent de redirecționare pentru a încărca sau nu. - -</details> - ---- - -</details> - -## 🛠️ Tech Stack - -<details> -<summary><b>Faceți clic pentru a extinde detaliile tehnologice</b></summary> - -- **Runtime**: Node.js 18–22 LTS (⚠️ Node.js 24+ este **nu este acceptat** - `better-sqlite3` binarele native sunt incompatibile) -- **Limba**: TypeScript 5.9 — **100% TypeScript** în `src/` și `open-sse/` (zero `any` în modulele de bază începând cu v2.0) -- **Cadru**: Next.js 16 + React 19 + Tailwind CSS 4 -- **Bază de date**: LowDB (JSON) + SQLite (starea domeniului + jurnalele proxy + audit MCP + decizii de rutare) -- **Scheme**: Zod (validare I/O instrument MCP, contracte API) -- **Protocoale**: MCP (stdio/HTTP) + A2A v0.3 (JSON-RPC 2.0 + SSE) -- **Streaming**: evenimente trimise de server (SSE) -- **Auth**: OAuth 2.0 (PKCE) + JWT + Chei API + Autorizare MCP -- **Testare**: Runner de testare Node.js + Vitest (900+ teste inclusiv unitate, integrare, E2E) -- **CI/CD**: GitHub Actions (publicare automată npm + Docker Hub la lansare) -- **Site web**: [omniroute.online](https://omniroute.online) -- **Pachet**: [npmjs.com/package/omniroute](https://www.npmjs.com/package/omniroute) -- **Docker**: [hub.docker.com/r/diegosouzapw/omniroute](https://hub.docker.com/r/diegosouzapw/omniroute) -- **Reziliență**: întrerupător de circuit, backoff exponențial, turmă anti-tunet, falsificare TLS, auto-vindecare combo - -</details> - ---- - -## 📖 Documentație - -| Document | Descriere | -| ---------------------------------------------- | ------------------------------------------------------------------- | -| [User Guide](docs/USER_GUIDE.md) | Furnizori, combo-uri, integrare CLI, implementare | -| [API Reference](docs/API_REFERENCE.md) | Toate punctele finale cu exemple | -| [MCP Server](open-sse/mcp-server/README.md) | 16 instrumente MCP, configurații IDE, clienți Python/TS/Go | -| [A2A Server](src/lib/a2a/README.md) | Protocol JSON-RPC 2.0, abilități, streaming, gestionarea sarcinilor | -| [Auto-Combo Engine](docs/auto-combo.md) | Scor în 6 factori, pachete de moduri, auto-vindecare | -| [Troubleshooting](docs/TROUBLESHOOTING.md) | Probleme și soluții comune | -| [Architecture](docs/ARCHITECTURE.md) | Arhitectura sistemului și elementele interne | -| [Contributing](CONTRIBUTING.md) | Configurare și linii directoare de dezvoltare | -| [OpenAPI Spec](docs/openapi.yaml) | Specificație OpenAPI 3.0 | -| [Security Policy](SECURITY.md) | Raportarea vulnerabilităților și practicile de securitate | -| [VM Deployment](docs/VM_DEPLOYMENT_GUIDE.md) | Ghid complet: VM + nginx + configurare Cloudflare | -| [Features Gallery](docs/FEATURES.md) | Tur vizual al tabloului de bord cu capturi de ecran | -| [Release Checklist](docs/RELEASE_CHECKLIST.md) | Pașii de validare înainte de lansare | - ---- - -## 🗺️ Foaia de parcurs - -OmniRoute are **210+ funcții planificate** în mai multe faze de dezvoltare. Iată domeniile cheie: - -| Categoria | Caracteristici planificate | Repere | -| --------------------------------- | -------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | -| 🧠 **Routing & Intelligence** | 25+ | Rutare cu cea mai mică latență, rutare bazată pe etichete, verificare preliminară a cotei, selecție contului P2C | -| 🔒 **Securitate și conformitate** | 20+ | Întărirea SSRF, acoperirea acreditărilor, limita de rată per punct final, domeniul de aplicare al cheii de management | -| 📊 **Observabilitate** | 15+ | Integrarea OpenTelemetry, monitorizarea cotelor în timp real, urmărirea costurilor per model | -| 🔄 **Integrări furnizori** | 20+ | Registrul modelului dinamic, perioadele de încărcare ale furnizorului, Codexul cu mai multe conturi, analiza cotelor Copilot | -| ⚡ **Performanță** | 15+ | Strat cache dublu, cache prompt, cache de răspuns, streaming keepalive, API batch | -| 🌐 **Ecosistem** | 10+ | WebSocket API, config hot-reload, magazin de configurare distribuit, mod comercial | - -### 🔜 În curând - -- 🔗 **Integrare OpenCode** — Suport furnizor nativ pentru IDE-ul de codare OpenCode AI -- 🔗 **Integrare TRAE** — Suport complet pentru cadrul de dezvoltare TRAE AI -- 📦 **Batch API** — Procesare asincronă în lot pentru solicitări în bloc -- 🎯 **Rutare bazată pe etichete** — Solicitări de rutare bazate pe etichete și metadate personalizate -- 💰 **Strategia cu cel mai mic cost** — Selectați automat cel mai ieftin furnizor disponibil - -> 📝 Specificații complete ale caracteristicilor disponibile în [**OMNI_TOKEN_342**](docs/new-features/) (217 specificații detaliate) - ---- - -## 👥 Colaboratori - -[![Contributors](https://contrib.rocks/image?repo=diegosouzapw/OmniRoute&max=100&columns=20&anon=1)](https://github.com/diegosouzapw/OmniRoute/graphs/contributors) - -### Cum să contribui - -1. Bifurcați depozitul -2. Creați-vă ramura caracteristică (`git checkout -b feature/amazing-feature`) -3. Afișează modificările (`git commit -m 'Add amazing feature'`) -4. Apăsați la ramură (`git push origin feature/amazing-feature`) -5. Deschideți o cerere de tragere - -Consultați [CONTRIBUTING.md](CONTRIBUTING.md) pentru instrucțiuni detaliate. - -### Lansarea unei noi versiuni - -```bash -# Create a release — npm publish happens automatically -gh release create v2.0.0 --title "v2.0.0" --generate-notes -``` - ---- - -## 📊 Istoria stelelor - -## Observatorii stelelor de-a lungul timpului - -## [![Stargazers over time](https://starchart.cc/diegosouzapw/OmniRoute.svg?variant=adaptive)](https://starchart.cc/diegosouzapw/OmniRoute) - -## 🙏 Mulțumiri - -Mulțumiri speciale pentru **[9router](https://github.com/decolua/9router)** de **[decolua](https://github.com/decolua)** — proiectul original care a inspirat această furcă. OmniRoute se bazează pe această bază incredibilă cu funcții suplimentare, API-uri multimodale și o rescrie completă TypeScript. - -Mulțumiri speciale pentru **[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)** — implementarea Go originală care a inspirat acest port JavaScript. - ---- - -## 📄 Licență - -Licență MIT - consultați [LICENSE](LICENSE) pentru detalii. - ---- - -<div align="center"> - <sub>Construit cu ❤️ pentru dezvoltatorii care codifică 24/7</sub> - <br/> - <sub><a href="https://omniroute.online">omniroute.online</a></sub> -</div> -<!-- Discuții GitHub activate pentru întrebări și răspunsuri ale comunității --> +👉 **[Read the Documentation here](docs/i18n/ro/README.md)** diff --git a/README.sk.md b/README.sk.md index 143efd7ba2..9345729ed7 100644 --- a/README.sk.md +++ b/README.sk.md @@ -1,2083 +1,5 @@ -# 🚀 OmniRoute — bezplatná brána AI +# 🌐 OmniRoute (sk) -### Nikdy neprestávajte kódovať. Inteligentné smerovanie na **BEZPLATNÉ a nízkonákladové modely AI** s automatickým vrátením. +The documentation has been formalized and moved to our centralized i18n structure. -_Váš univerzálny proxy server API – jeden koncový bod, 67+ poskytovateľov, nulové prestoje. Teraz s orchestráciou agentov **MCP & A2A**._ - -**Dokončenia chatu • Vloženie • Generovanie obrázkov • Video • Hudba • Zvuk • Zmena poradia • **Vyhľadávanie na webe** • Server MCP • Protokol A2A • 100 % TypeScript** - ---- - -<div align="center"> - -[![npm version](https://img.shields.io/npm/v/omniroute?color=cb3837&logo=npm)](https://www.npmjs.com/package/omniroute) -[![npm downloads](https://img.shields.io/npm/dm/omniroute?color=cb3837&logo=npm&label=npm%20downloads)](https://www.npmjs.com/package/omniroute) -[![Docker Hub](https://img.shields.io/docker/v/diegosouzapw/omniroute?label=Docker%20Hub&logo=docker&color=2496ED)](https://hub.docker.com/r/diegosouzapw/omniroute) -[![Docker Pulls](https://img.shields.io/docker/pulls/diegosouzapw/omniroute?logo=docker&color=2496ED&label=docker%20pulls)](https://hub.docker.com/r/diegosouzapw/omniroute) -[![License](https://img.shields.io/github/license/diegosouzapw/OmniRoute)](https://github.com/diegosouzapw/OmniRoute/blob/main/LICENSE) -[![Website](https://img.shields.io/badge/Website-omniroute.online-blue?logo=google-chrome&logoColor=white)](https://omniroute.online) -[![WhatsApp](https://img.shields.io/badge/WhatsApp-Community-25D366?logo=whatsapp&logoColor=white)](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) - -[🌐 Website](https://omniroute.online) • [🚀 Quick Start](#-quick-start) • [💡 Features](#-key-features) • [📖 Docs](#-documentation) • [💰 Pricing](#-pricing-at-a-glance) • [💬 WhatsApp](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) - -</div> - -🌐 **Dostupné v:** 🇺🇸 [English](README.md) | 🇧🇷 [Português (Brasil)](docs/i18n/pt-BR/README.md) | 🇪🇸 [Español](docs/i18n/es/README.md) | 🇫🇷 [Français](docs/i18n/fr/README.md) | 🇮🇹 [Italiano](docs/i18n/it/README.md) | 🇷🇺 [Русский](docs/i18n/ru/README.md) | 🇨🇳 [中文 (简体)](docs/i18n/zh-CN/README.md) | 🇩🇪 [Deutsch](docs/i18n/de/README.md) | 🇮🇳 [हिन्दी](docs/i18n/in/README.md) | 🇹🇭 [ไทย](docs/i18n/th/README.md) | 🇺🇦 [Українська](docs/i18n/uk-UA/README.md) | 🇸🇦 [العربية](docs/i18n/ar/README.md) | 🇯🇵 [日本語](docs/i18n/ja/README.md) | 🇻🇳 [Tiếng Việt](docs/i18n/vi/README.md) | 🇧🇬 [Български](docs/i18n/bg/README.md) | 🇩🇰 [Dansk](docs/i18n/da/README.md) | 🇫🇮 [Suomi](docs/i18n/fi/README.md) | 🇮🇱 [עברית](docs/i18n/he/README.md) | 🇭🇺 [Magyar](docs/i18n/hu/README.md) | 🇮🇩 [Bahasa Indonesia](docs/i18n/id/README.md) | 🇰🇷 [한국어](docs/i18n/ko/README.md) | 🇲🇾 [Bahasa Melayu](docs/i18n/ms/README.md) | 🇳🇱 [Nederlands](docs/i18n/nl/README.md) | 🇳🇴 [Norsk](docs/i18n/no/README.md) | 🇵🇹 [Português (Portugal)](docs/i18n/pt/README.md) | 🇷🇴 [Română](docs/i18n/ro/README.md) | 🇵🇱 [Polski](docs/i18n/pl/README.md) | 🇸🇰 [Slovenčina](docs/i18n/sk/README.md) | 🇸🇪 [Svenska](docs/i18n/sv/README.md) | 🇵🇭 [Filipino](docs/i18n/phi/README.md) | 🇨🇿 [Čeština](docs/i18n/cs/README.md) - ---- - -## 🆕 Čo je nové vo verzii 3.0.0 - -> **Inovácia z verzie 2.9.5?** — Všetky zmeny nájdete v [full CHANGELOG](CHANGELOG.md#300--2026-03-22-release-candidate--not-yet-merged-to-main). - -| Oblasť | Zmeniť | -| ---------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 🔒 **Bezpečnosť CodeQL** | Opravených 10+ upozornení CodeQL: polynomial-redos, neistá-náhodnosť, shell-injection náprava | -| ✅ **Overenie trasy** | Všetkých 176 trás API je teraz overených pomocou schém Zod + `validateBody()` – preukazy CI `check:route-validation:t06` | -| 🐛 **Únik značky omniModel** | Interné značky `<omniModel>` už neunikajú klientom v odpovediach na streamovanie SSE (#585) | -| 🔑 **Registrované kľúče API** | Kľúče API automatického poskytovania prostredníctvom `POST /api/v1/registered-keys` s presadzovaním kvót pre jednotlivých poskytovateľov/účet, idempotenciou, úložiskom SHA-256 a voliteľným hlásením problémov GitHub | -| 👁️ **Scoped API Key Reveal** 🆕 | Opt-in recovery of API keys via `ALLOW_API_KEY_REVEAL` | -| 🎨 **Ikony poskytovateľa** | Viac ako 130 log poskytovateľov prostredníctvom `@lobehub/icons` (SVG) s PNG → všeobecný záložný reťazec | -| 🔄 **Automatická synchronizácia modelu** | 24-hodinový plánovač a manuálne prepínanie používateľského rozhrania na synchronizáciu zoznamov modelov pre vstavaných a vlastných poskytovateľov kompatibilných s OpenAI | -| 🌐 **OpenCode Zen/Go** | Dvaja noví poskytovatelia od @kang-heewon cez PR #530: bezplatná úroveň + úroveň predplatného cez `OpencodeExecutor` | -| 🐛 **Gemini CLI OAuth** | Vykonateľná chyba, keď v Dockeri chýba `GEMINI_OAUTH_CLIENT_SECRET` (bola to záhadná chyba Google) | -| 🐛 **Konfigurácia OpenCode** | `saveOpenCodeConfig()` teraz správne zapisuje TOML do `XDG_CONFIG_HOME` | -| 🐛 **Prepísanie pripnutého modelu** | `body.model` správne nastavené na `pinnedModel` pri ochrane kontextovej vyrovnávacej pamäte | -| 🐛 **Codex/Claude loop** | `tool_result` bloky teraz skonvertované na text na zastavenie nekonečných slučiek | -| 🐛 **Presmerovanie prihlásenia** | Prihlásenie už nezamrzne po preskočení nastavenia hesla | -| 🐛 **Cesty systému Windows** | Cesty MSYS2/Git-Bash (`/c/...`) sa automaticky normalizujú na `C:\...` | - ---- - -## 🖼️ Hlavný panel - -<div align="center"> - <img src="./docs/screenshots/MainOmniRoute.png" alt="OmniRoute Dashboard" width="800"/> -</div> - ---- - -## 📸 Ukážka hlavného panela - -<details> -<summary><b>Kliknutím zobrazíte snímky obrazovky hlavného panela</b></summary> - -| Strana | Snímka obrazovky | -| ---------------------- | ------------------------------------------------- | -| **Poskytovatelia** | ![Providers](docs/screenshots/01-providers.png) | -| **Kombá** | ![Combos](docs/screenshots/02-combos.png) | -| **Analytika** | ![Analytics](docs/screenshots/03-analytics.png) | -| **Zdravie** | ![Health](docs/screenshots/04-health.png) | -| **Prekladateľ** | ![Translator](docs/screenshots/05-translator.png) | -| **Nastavenia** | ![Settings](docs/screenshots/06-settings.png) | -| **Nástroje CLI** | ![CLI Tools](docs/screenshots/07-cli-tools.png) | -| **Denníky používania** | ![Usage](docs/screenshots/08-usage.png) | -| **Koncové body** | ![Endpoints](docs/screenshots/09-endpoint.png) | - -</details> - ---- - -### 🤖 Bezplatný poskytovateľ AI pre vašich obľúbených kódovacích agentov - -_Pripojte akýkoľvek nástroj IDE alebo CLI poháňaný AI cez OmniRoute – bezplatnú bránu API pre neobmedzené kódovanie._ - - <table> - <tr> - <td align="center" width="110"> - <a href="https://github.com/openclaw/openclaw"> - <img src="./public/providers/openclaw.png" alt="OpenClaw" width="48"/><br/> - <b>OpenClaw</b> - </a><br/> - <sub>⭐ 205K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/HKUDS/nanobot"> - <img src="./public/providers/nanobot.png" alt="NanoBot" width="48"/><br/> - <b>NanoBot</b> - </a><br/> - <sub>⭐ 20.9K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/sipeed/picoclaw"> - <img src="./public/providers/picoclaw.jpg" alt="PicoClaw" width="48"/><br/> - <b>PicoClaw</b> - </a><br/> - <sub>⭐ 14.6K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/zeroclaw-labs/zeroclaw"> - <img src="./public/providers/zeroclaw.png" alt="ZeroClaw" width="48"/><br/> - <b>ZeroClaw</b> - </a><br/> - <sub>⭐ 9.9K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/nearai/ironclaw"> - <img src="./public/providers/ironclaw.png" alt="IronClaw" width="48"/><br/> - <b>IronClaw</b> - </a><br/> - <sub>⭐ 2.1K</sub> - </td> - </tr> - <tr> - <td align="center" width="110"> - <a href="https://github.com/anomalyco/opencode"> - <img src="./public/providers/opencode.svg" alt="OpenCode" width="48"/><br/> - <b>OpenCode</b> - </a><br/> - <sub>⭐ 106K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/openai/codex"> - <img src="./public/providers/codex.png" alt="Codex CLI" width="48"/><br/> - <b>Codex CLI</b> - </a><br/> - <sub>⭐ 60.8K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/anthropics/claude-code"> - <img src="./public/providers/claude.png" alt="Claude Code" width="48"/><br/> - <b>Claude Code</b> - </a><br/> - <sub>⭐ 67.3K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/google-gemini/gemini-cli"> - <img src="./public/providers/gemini-cli.png" alt="Gemini CLI" width="48"/><br/> - <b>Gemini CLI</b> - </a><br/> - <sub>⭐ 94.7K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/Kilo-Org/kilocode"> - <img src="./public/providers/kilocode.png" alt="Kilo Code" width="48"/><br/> - <b>Kilo Code</b> - </a><br/> - <sub>⭐ 15.5K</sub> - </td> - </tr> - </table> - -<sub>📡 Všetci agenti sa pripájajú cez <code>http://localhost:20128/v1</code> alebo <code>http://cloud.omniroute_ONline_SKNI_TOK one/v6 modely a kvóta</sub> - ---- - -## 🤔 Prečo OmniRoute? - -**Prestaňte plytvať peniazmi a dosahovať limity:** - -- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Kvóta odberu vyprší nevyužitá každý mesiac -- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Obmedzenia sadzieb vás zastavia uprostred kódovania -- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> drahé rozhrania API (20 – 50 USD mesačne na poskytovateľa) -- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Manuálne prepínanie medzi poskytovateľmi - -**OmniRoute to rieši:** - -- ✅ **Maximalizujte odbery** - Sledujte kvótu, pred resetovaním použite každý bit -- ✅ **Automatická záloha** - Predplatné → Kľúč API → Lacné → Bezplatne, nulové prestoje -- ✅ **Viacnásobný účet** - Obojstranne medzi účtami na poskytovateľa -- ✅ **Universal** - Funguje s Claude Code, Codex, Gemini CLI, Cursor, Cline, OpenClaw, akýmkoľvek nástrojom CLI - ---- - -## 📧 Podpora - -> 💬 **Pripojte sa k našej komunite!** [WhatsApp Group](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) — Získajte pomoc, zdieľajte tipy a buďte informovaní. - -- **Web**: [omniroute.online](https://omniroute.online) -- **GitHub**: [github.com/diegosouzapw/OmniRoute](https://github.com/diegosouzapw/OmniRoute) -- **Problémy**: [github.com/diegosouzapw/OmniRoute/issues](https://github.com/diegosouzapw/OmniRoute/issues) -- **WhatsApp**: [Community Group](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) -- **Prispievanie**: Pozrite si [CONTRIBUTING.md](CONTRIBUTING.md), otvorte PR alebo si vyberte `good first issue` -- **Pôvodný projekt**: [9router by decolua](https://github.com/decolua/9router) - -### 🐛 Nahlasujete chybu? - -Pri otváraní problému spustite príkaz system-info a pripojte vygenerovaný súbor: - -```bash -npm run system-info -``` - -Toto vygeneruje `system-info.txt` s vašou verziou Node.js, verziou OmniRoute, podrobnosťami o OS, nainštalovanými nástrojmi CLI (qoder, gemini, claude, codex, antigravity, droid atď.), stavom Docker/PM2 a systémovými balíkmi – všetko, čo potrebujeme na rýchlu reprodukciu vášho problému. Pripojte súbor priamo k vášmu problému na GitHub. - ---- - -## 🔄 Ako to funguje - -``` -┌─────────────┐ -│ Your CLI │ (Claude Code, Codex, Gemini CLI, OpenClaw, Cursor, Cline...) -│ Tool │ -└──────┬──────┘ - │ http://localhost:20128/v1 - ↓ -┌─────────────────────────────────────────┐ -│ OmniRoute (Smart Router) │ -│ • Format translation (OpenAI ↔ Claude) │ -│ • Quota tracking + Embeddings + Images │ -│ • Auto token refresh │ -└──────┬──────────────────────────────────┘ - │ - ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex, Gemini CLI - │ ↓ quota exhausted - ├─→ [Tier 2: API KEY] DeepSeek, Groq, xAI, Mistral, NVIDIA NIM, etc. - │ ↓ budget limit - ├─→ [Tier 3: CHEAP] GLM ($0.6/1M), MiniMax ($0.2/1M) - │ ↓ budget limit - └─→ [Tier 4: FREE] Qoder, Qwen, Kiro (unlimited) - -Result: Never stop coding, minimal cost -``` - ---- - -## 🎯 Čo OmniRoute rieši — 30 bodov skutočnej bolesti a prípadov použitia - -> **Každý vývojár, ktorý používa nástroje AI, čelí týmto problémom denne.** OmniRoute bol vytvorený tak, aby ich všetky vyriešil – od prekročenia nákladov po regionálne bloky, od prerušených tokov OAuth po operácie protokolov a pozorovateľnosť podniku. - -<details> -<summary><b>💸 1. „Platím za drahé predplatné, ale stále ma prerušujú limity“</b></summary> - -Vývojári platia za Claude Pro, Codex Pro alebo GitHub Copilot 20 – 200 dolárov mesačne. Aj pri platení má kvóta strop – 5 hodín používania, týždenné limity alebo limity za minútu. Počas relácie kódovania poskytovateľ prestane reagovať a vývojár stráca tok a produktivitu. - -**Ako to rieši OmniRoute:** - -- **Inteligentný 4-úrovňový záložný systém** – Ak sa vyčerpá kvóta predplatného, automaticky sa presmeruje na kľúč API → Lacné → Zadarmo s nulovým manuálnym zásahom -- **Sledovanie kvóty v reálnom čase** – Zobrazuje spotrebu tokenov v reálnom čase s resetovaným odpočítavaním (5 hodín, denne, týždenne) - – **Podpora viacerých účtov** – Viacero účtov na poskytovateľa s automatickým opakovaním – keď sa jeden minie, prepne sa na ďalší - – **Vlastné kombá** – Prispôsobiteľné záložné reťazce so 6 stratégiami vyvažovania (najskôr vyplniť, opakovane, P2C, náhodné, najmenej používané, nákladovo optimalizované) -- **Codex Business Quotas** — Monitorovanie kvót pracovného priestoru pre firmy/tím priamo na paneli - -</details> - -<details> -<summary><b>🔌 2. "Potrebujem použiť viacerých poskytovateľov, ale každý má iné API"</b></summary> - -OpenAI používa jeden formát, Claude (Anthropic) iný a Gemini ďalší. Ak chce vývojár testovať modely od rôznych poskytovateľov alebo medzi nimi záložné riešenie, musí prekonfigurovať súpravy SDK, zmeniť koncové body, vysporiadať sa s nekompatibilnými formátmi. Vlastní poskytovatelia (FriendLI, NIM) majú neštandardné modelové koncové body. - -**Ako to rieši OmniRoute:** - -- **Unified Endpoint** – Jediný `http://localhost:20128/v1` slúži ako proxy pre všetkých 67+ poskytovateľov -- **Formátový preklad** — Automatický a transparentný: OpenAI ↔ Claude ↔ Gemini ↔ Responses API - – **Dezinfekcia odozvy** – Odstráni neštandardné polia (`x_groq`, `usage_breakdown`, `service_tier`), ktoré porušujú OpenAI SDK v1.83+ -- **Normalizácia rolí** – Konvertuje `developer` → `system` pre poskytovateľov, ktorí nie sú OpenAI; `system` → `user` pre GLM/ERNIE - – **Think Tag Extraction** – Extrahuje `<think>` bloky z modelov ako DeepSeek R1 do štandardizovaných `reasoning_content` -- **Štruktúrovaný výstup pre Gemini** — `json_schema` → `responseMimeType`/`responseSchema` automatická konverzia - – **`stream` predvolená hodnota je `false`** – Zosúladí sa so špecifikáciou OpenAI, čím sa zabráni neočakávanému SSE v súpravách Python/Rust/Go SDK - -</details> - -<details> -<summary><b>🌐 3. „Môj poskytovateľ AI blokuje môj región/krajinu“</b></summary> - -Poskytovatelia ako OpenAI/Codex blokujú prístup z určitých geografických oblastí. Používatelia dostanú chyby ako `unsupported_country_region_territory` počas pripojení OAuth a API. To je frustrujúce najmä pre vývojárov z rozvojových krajín. - -**Ako to rieši OmniRoute:** - -- **Konfigurácia proxy servera na troch úrovniach** – Konfigurovateľný server proxy na 3 úrovniach: globálny (celá prevádzka), podľa jednotlivých poskytovateľov (iba jeden poskytovateľ) a podľa pripojenia/kľúča -- **Farebné odznaky proxy** — Vizuálne indikátory: 🢢 globálny proxy, 🟡 proxy poskytovateľa, 🔵 proxy pripojenia, vždy zobrazuje IP - – **Výmena tokenov OAuth cez proxy** – tok OAuth prechádza aj cez proxy, čím sa rieši `unsupported_country_region_territory` -- **Testy pripojenia cez proxy** – Testy pripojenia používajú nakonfigurovaný proxy (už žiadne priame obchádzanie) -- **Podpora SOCKS5** — Úplná podpora proxy SOCKS5 pre odchádzajúce smerovanie -- **TLS Fingerprint Spoofing** – Odtlačok prsta TLS podobný prehliadaču cez `wreq-js` na obídenie detekcie robotov -- **🔏 CLI Fingerprint Matching** – Zmení poradie hlavičiek a polí tela tak, aby zodpovedali natívnym binárnym podpisom CLI, čím sa výrazne zníži riziko označovania účtu. IP proxy servera je zachovaná – získate súčasne utajené ** aj** maskovanie IP - -</details> - -<details> -<summary><b>🆓 4. „Chcem používať AI na kódovanie, ale nemám peniaze“</b></summary> - -Nie každý môže platiť 20 – 200 $ mesačne za predplatné AI. Študenti, vývojári z rozvíjajúcich sa krajín, fanúšikovia a nezávislí pracovníci potrebujú prístup ku kvalitným modelom za nulové náklady. - -**Ako to rieši OmniRoute:** - -- **Zabudovaní poskytovatelia bezplatnej úrovne** — Natívna podpora pre 100 % bezplatných poskytovateľov: Qoder (5 neobmedzených modelov cez OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 neobmedzené modely: qco,3-qwender-lash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID zadarmo), Gemini CLI (180 000 tokenov mesačne zadarmo) -- **Ollama Cloud** – modely Ollama hostené v cloude na `api.ollama.com` s bezplatnou úrovňou „Light use“; použite predponu `ollamacloud/<model>` - – **len bezplatné kombá** – reťazec `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = 0 USD mesačne s nulovými prestojmi -- **Voľný prístup NVIDIA NIM** — ~40 RPM pre vývojárov - navždy bezplatný prístup k viac ako 70 modelom na stránke build.nvidia.com (prechod z kreditov na limity čistej sadzby) -- **Cost Optimized Strategy** – Stratégia smerovania, ktorá automaticky vyberie najlacnejšieho dostupného poskytovateľa - -</details> - -<details> -<summary><b>🔒 5. „Potrebujem chrániť svoju bránu AI pred neoprávneným prístupom“</b></summary> - -Pri vystavení brány AI do siete (LAN, VPS, Docker) môže ktokoľvek s adresou spotrebovať tokeny/kvótu vývojára. Bez ochrany sú rozhrania API náchylné na nesprávne použitie, rýchle vloženie a zneužitie. - -**Ako to rieši OmniRoute:** - -– **Správa kľúčov API** – Generovanie, rotácia a rozsah podľa poskytovateľa s vyhradenou stránkou `/dashboard/api-manager` -– **Povolenia na úrovni modelu** – Obmedzte kľúče API na konkrétne modely (`openai/*`, vzory zástupných znakov) pomocou prepínača Povoliť všetko/Obmedziť -– **API Endpoint Protection** – Vyžadovať kľúč pre `/v1/models` a blokovať konkrétnych poskytovateľov v zozname - -- **Ochrana autentifikácie + ochrana CSRF** – Všetky trasy na dashboarde sú chránené `withAuth` middleware + tokenmi CSRF -- **Rate Limiter** — Obmedzenie rýchlosti na IP pomocou konfigurovateľných okien -- **IP Filtering** — Zoznam povolených/blokovaných pre riadenie prístupu -- **Prompt Injection Guard** – Dezinfekcia proti škodlivým vzorom výzvy -- **Šifrovanie AES-256-GCM** — Prihlasovacie údaje sú v pokoji zašifrované - -</details> - -<details> -<summary><b>🛑 6. „Môj poskytovateľ zlyhal a stratil som tok kódovania“</b></summary> - -Poskytovatelia AI sa môžu stať nestabilnými, vrátiť chyby 5xx alebo dosiahnuť dočasné limity sadzieb. Ak vývojár závisí od jedného poskytovateľa, bude prerušený. Bez ističov môžu opakované pokusy zlyhať aplikáciu. - -**Ako to rieši OmniRoute:** - -- **Istič pre každý model** - Automatické otváranie/zatváranie s konfigurovateľnými prahmi a ochladzovaním (zatvorené/otvorené/polootvorené), s rozsahom pre každý model, aby sa predišlo kaskádovým blokom -- **Exponenciálne stiahnutie** — Postupné oneskorenie opakovania -- **Anti-Thundering Herd** - ochrana Mutex + semafor proti súbežným opakovaným búrkam -- **Combo Fallback Chains** – Ak primárny poskytovateľ zlyhá, automaticky prepadne reťazcom bez akéhokoľvek zásahu -- **Combo Circuit Breaker** – Automaticky deaktivuje zlyhávajúcich poskytovateľov v rámci kombinovaného reťazca - – **Health Dashboard** – Monitorovanie dostupnosti, stavy ističov, blokovania, štatistiky vyrovnávacej pamäte, latencia p50/p95/p99 - -</details> - -<details> -<summary><b>🔧 7. „Konfigurácia každého nástroja AI je únavná a opakovaná“</b></summary> - -Vývojári používajú Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code... Každý nástroj potrebuje inú konfiguráciu (API endpoint, kľúč, model). Prekonfigurovanie pri zmene poskytovateľa alebo modelu je strata času. - -**Ako to rieši OmniRoute:** - -- **CLI Tools Dashboard** – Vyhradená stránka s nastavením jedným kliknutím pre Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline - – **GitHub Copilot Config Generator** – Generuje `chatLanguageModels.json` pre kód VS s hromadným výberom modelu -- **Sprievodca registráciou** – Sprievodca nastavením v 4 krokoch pre začínajúcich používateľov - – **Jeden koncový bod, všetky modely** – Nakonfigurujte `http://localhost:20128/v1` raz a získajte prístup k viac ako 67 poskytovateľom - -</details> - -<details> -<summary><b>🔑 8. „Správa tokenov OAuth od viacerých poskytovateľov je peklo“</b></summary> - -Claude Code, Codex, Gemini CLI, Copilot – všetky používajú OAuth 2.0 s tokenmi, ktorých platnosť sa končí. Vývojári sa musia neustále znovu overovať, riešiť problémy `client_secret is missing`, `redirect_uri_mismatch` a zlyhania na vzdialených serveroch. Obzvlášť problematické je OAuth na LAN/VPS. - -**Ako to rieši OmniRoute:** - -- **Automatická obnova tokenov** – Tokeny OAuth sa pred vypršaním platnosti obnovujú na pozadí -- **Vstavaný OAuth 2.0 (PKCE)** – Automatický tok pre Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder - – **Multi-Auth OAuth** – Viaceré účty na poskytovateľa prostredníctvom extrakcie tokenov JWT/ID -- **OAuth LAN/Remote Fix** — Detekcia súkromnej adresy IP pre `redirect_uri` + manuálny režim adresy URL pre vzdialené servery - – **OAuth Behind Nginx** – Používa `window.location.origin` na reverznú kompatibilitu proxy - – **Príručka vzdialeného OAuth** – Podrobný sprievodca povereniami Google Cloud na VPS/Docker - -</details> - -<details> -<summary><b>📊 9. "Neviem, koľko míňam alebo kde"</b></summary> - -Vývojári využívajú viacerých platených poskytovateľov, ale nemajú jednotný pohľad na výdavky. Každý poskytovateľ má svoj vlastný informačný panel fakturácie, ale neexistuje žiadne konsolidované zobrazenie. Neočakávané náklady sa môžu nahromadiť. - -**Ako to rieši OmniRoute:** - -– **Informačný panel analýzy nákladov** – sledovanie nákladov na token a správa rozpočtu podľa poskytovateľa - -- **Obmedzenia rozpočtu na úroveň** – Strop výdavkov na úroveň, ktorý spúšťa automatické záložné právo -- **Konfigurácia cien za model** – Konfigurovateľné ceny za model -- **Štatistiky používania na kľúč API** – Počet žiadostí a časová pečiatka posledného použitia na kľúč - – **Panel Analytics** – štatistické karty, graf používania modelu, tabuľka poskytovateľov s mierami úspešnosti a latenciou - -</details> - -<details> -<summary><b>🐛 10. „Nedokážem diagnostikovať chyby a problémy vo volaniach AI“</b></summary> - -Keď hovor zlyhá, vývojár nevie, či to bol limit sadzby, vypršaný token, nesprávny formát alebo chyba poskytovateľa. Fragmentované protokoly cez rôzne terminály. Bez pozorovateľnosti je ladenie metódou pokus-omyl. - -**Ako to rieši OmniRoute:** - -– **Panel jednotných protokolov** – 4 karty: Protokoly žiadostí, Protokoly proxy, Protokoly auditu, Konzola - -- **Console Log Viewer** — Prehliadač v štýle terminálu v reálnom čase s farebne odlíšenými úrovňami, automatickým posúvaním, vyhľadávaním a filtrovaním -- **Proxy protokoly SQLite** — Trvalé protokoly, ktoré prežijú reštart servera -- **Translator Playground** – 4 režimy ladenia: Playground (preklad formátu), Chat Tester (spiatočný), Test Bench (dávka), Live Monitor (v reálnom čase) - – **Požiadať o telemetriu** – latencia p50/p95/p99 + sledovanie X-request-Id - – **Protokolovanie založené na súboroch s rotáciou** – Konzolový zachytávač zachytáva všetko do protokolu JSON s rotáciou na základe veľkosti -- **Správa systémových informácií** – `npm run system-info` vygeneruje `system-info.txt` s vaším úplným prostredím (verzia uzla, verzia OmniRoute, OS, nástroje CLI, stav Docker/PM2). Pripojte ho pri nahlasovaní problémov na okamžité triedenie. - -</details> - -<details> -<summary><b>🏗️ 11. „Nasadenie a údržba brány je zložitá“</b></summary> - -Inštalácia, konfigurácia a údržba AI proxy v rôznych prostrediach (lokálne, VPS, Docker, cloud) je náročná na prácu. Problémy ako pevne zakódované cesty, `EACCES` v adresároch, konflikty portov a zostavy naprieč platformami zvyšujú trenie. - -**Ako to rieši OmniRoute:** - -- **Globálna inštalácia npm** — `npm install -g omniroute && omniroute` – hotovo -- **Docker Multi-Platform** – natívne AMD64 + ARM64 (Apple Silicon, AWS Graviton, Raspberry Pi) -- **Profily Docker Compose** — `base` (bez nástrojov CLI) a `cli` (s Claude Code, Codex, OpenClaw) -- **Electron Desktop App** – natívna aplikácia pre Windows/macOS/Linux so systémovou lištou, automatickým spustením, offline režimom -- **Split-Port Mode** – API a Dashboard na samostatných portoch pre pokročilé scenáre (reverzný proxy, kontajnerová sieť) -- **Cloud Sync** — Synchronizácia konfigurácie medzi zariadeniami cez Cloudflare Workers -- **DB Backups** — Automatické zálohovanie, obnovenie, export a import všetkých nastavení - -</details> - -<details> -<summary><b>🌍 12. „Rozhranie je len v angličtine a môj tím nehovorí po anglicky“</b></summary> - -Tímy v neanglicky hovoriacich krajinách, najmä v Latinskej Amerike, Ázii a Európe, zápasia s rozhraním iba v angličtine. Jazykové bariéry znižujú prijatie a zvyšujú chyby v konfigurácii. - -**Ako to rieši OmniRoute:** - -- **Dashboard i18n — 30 jazykov** — Všetkých viac ako 500 kláves preložených vrátane arabčiny, bulharčiny, dánčiny, nemčiny, španielčiny, fínčiny, francúzštiny, hebrejčiny, hindčiny, maďarčiny, indonézštiny, taliančiny, japončiny, kórejčiny, malajčiny, holandčiny, nórčiny, poľštiny, portugalčiny (PT/BR), rumunčiny, ruštiny, slovenčiny, švédčiny, thajčiny, ukrajinčiny, vietnamčiny, angličtiny -- **Podpora RTL** — Podpora sprava doľava pre arabčinu a hebrejčinu -- **Viacjazyčné README** — 30 kompletných prekladov dokumentácie -- **Language Selector** – ikona zemegule v hlavičke pre prepínanie v reálnom čase - -</details> - -<details> -<summary><b>🔄 13. „Potrebujem viac ako chat – potrebujem vloženie, obrázky, zvuk“</b></summary> - -AI nie je len dokončenie chatu. Vývojári potrebujú generovať obrázky, prepisovať zvuk, vytvárať vloženia pre RAG, meniť hodnotenie dokumentov a moderovať obsah. Každé API má iný koncový bod a formát. - -**Ako to rieši OmniRoute:** - -– **Vložené** – `/v1/embeddings` so 6 poskytovateľmi a 9+ modelmi - -- **Generácia obrázkov** — `/v1/images/generations` s 10 poskytovateľmi a 20+ modelmi (OpenAI, xAI, Together, Fireworks, Nebius, Hyperbolic, NanoBanana, Antigravity, SD WebUI, ComfyUI) -- **Text-to-Video** — `/v1/videos/generations` — ComfyUI (AnimateDiff, SVD) a SD WebUI -- **Text-to-Music** — `/v1/music/generations` — ComfyUI (Stable Audio Open, MusicGen) -- **Prepis zvuku** — `/v1/audio/transcriptions` — Whisper + Nvidia NIM, HuggingFace, Qwen3 -- **Text-to-Speech** — `/v1/audio/speech` — ElevenLabs, Nvidia NIM, HuggingFace, Coqui, Tortoise, Qwen3, **Inworld**, **Cartesia**, **PlayHT**, + existujúci poskytovatelia -- **Moderácie** — `/v1/moderations` — Kontroly bezpečnosti obsahu -- **Zmena poradia** — `/v1/rerank` — Zmena poradia podľa relevantnosti dokumentu - – **Responses API** – plná podpora `/v1/responses` pre kódex - -</details> - -<details> -<summary><b>🧪 14. „Nemám spôsob, ako testovať a porovnávať kvalitu medzi modelmi“</b></summary> - -Vývojári chcú vedieť, ktorý model je pre ich prípad použitia najlepší – kód, preklad, zdôvodnenie – ale manuálne porovnávanie je pomalé. Neexistujú žiadne integrované nástroje hodnotenia. - -**Ako to rieši OmniRoute:** - -- **Hodnotenia LLM** – Zlaté testovanie s 10 vopred nahratými prípadmi zahŕňajúcimi pozdravy, matematiku, geografiu, generovanie kódu, súlad s JSON, preklad, zníženie, odmietnutie bezpečnosti - – **4 stratégie zhody** – `exact`, `contains`, `regex`, `custom` (funkcia JS) -- **Testovacia lavica pre prekladateľské ihrisko** – dávkové testovanie s viacerými vstupmi a očakávanými výstupmi, porovnanie medzi poskytovateľmi -- **Chat Tester** – celý spiatočný výlet s vykresľovaním vizuálnej odozvy -- **Live Monitor** – tok všetkých požiadaviek prechádzajúcich cez server proxy v reálnom čase - -</details> - -<details> -<summary><b>📈 15. „Potrebujem škálovať bez straty výkonu“</b></summary> - -Keďže objem žiadostí rastie, bez ukladania rovnakých otázok do vyrovnávacej pamäte vznikajú duplicitné náklady. Bez idempotencie duplikát požaduje spracovanie odpadu. Musia sa dodržiavať limity sadzieb na poskytovateľa. - -**Ako to rieši OmniRoute:** - -- **Sémantická vyrovnávacia pamäť** – Dvojvrstvová vyrovnávacia pamäť (podpis + sémantická) znižuje náklady a latenciu -- **Idempotencia požiadavky** – 5-sekundové deduplikačné okno pre identické požiadavky - – **Detekcia limitu rýchlosti** – RPM, minimálna medzera a maximálne súbežné sledovanie jednotlivých poskytovateľov -- **Upraviteľné limity frekvencie** – Konfigurovateľné predvolené hodnoty v Nastaveniach → Odolnosť s perzistenciou -- **Cache na overenie kľúča API** — 3-vrstvová vyrovnávacia pamäť pre produkčný výkon - – **Panel zdravia s telemetriou** – latencia p50/p95/p99, štatistiky vyrovnávacej pamäte, doba prevádzky - -</details> - -<details> -<summary><b>🤖 16. „Chcem globálne ovládať správanie modelu“</b></summary> - -Vývojári, ktorí chcú všetky odpovede v konkrétnom jazyku, so špecifickým tónom alebo chcú obmedziť tokeny uvažovania. Konfigurovať to v každom nástroji/požiadavke je nepraktické. - -**Ako to rieši OmniRoute:** - -- **System Prompt Injection** – Globálna výzva aplikovaná na všetky požiadavky - – **Thinking Budget Validation** – Zdôvodnenie riadenia prideľovania tokenov na žiadosť (priechodné, automatické, vlastné, adaptívne) -- **6 stratégií smerovania** — Globálne stratégie, ktoré určujú spôsob distribúcie požiadaviek - – **Wildcard Router** – `provider/*` vzory smerujú dynamicky k akémukoľvek poskytovateľovi -- **Prepínač povoliť/zakázať kombo** — Prepínajte kombinácie priamo z ovládacieho panela -- **Provider Toggle** — Povolenie/zakázanie všetkých pripojení pre poskytovateľa jedným kliknutím - – **Blokovaní poskytovatelia** – vylúčte konkrétnych poskytovateľov zo zoznamu `/v1/models` - -</details> - -<details> -<summary><b>🧰 17. „Potrebujem nástroje MCP ako prvotriedne možnosti produktu“</b></summary> - -Mnohé brány AI odhaľujú MCP iba ako skrytý detail implementácie. Tímy potrebujú viditeľnú a spravovateľnú operačnú vrstvu. - -**Ako to rieši OmniRoute:** - -- MCP sa zobrazí na navigačnom paneli a na karte protokolu koncového bodu -- Vyhradená stránka správy MCP s procesmi, nástrojmi, rozsahmi a auditom -- Vstavaný rýchly štart pre `omniroute --mcp` a registráciu klienta - -</details> - -<details> -<summary><b>🧠 18. „Potrebujem orchestráciu A2A s cestami synchronizácie + streamovania“</b></summary> - -Pracovné postupy agentov vyžadujú priame odpovede a dlhotrvajúce streamované vykonávanie s kontrolou životného cyklu. - -**Ako to rieši OmniRoute:** - -– Koncový bod A2A JSON-RPC (`POST /a2a`) s `message/send` a `message/stream` - -- SSE streaming so šírením koncového stavu -- Rozhrania API životného cyklu úloh pre `tasks/get` a `tasks/cancel` - -</details> - -<details> -<summary><b>🛰️ 19. „Potrebujem skutočné zdravie procesu MCP, nie uhádnutý stav“</b></summary> - -Operačné tímy potrebujú vedieť, či je MCP skutočne nažive, nielen to, či je dostupné API. - -**Ako to rieši OmniRoute:** - -- Súbor srdcového tepu za behu s PID, časovými pečiatkami, transportom, počtom nástrojov a režimom rozsahu -- Stavové rozhranie MCP API, ktoré kombinuje srdcový tep + nedávnu aktivitu -- Stavové karty používateľského rozhrania pre sviežosť procesu / dostupnosti / tepu - -</details> - -<details> -<summary><b>📋 20. „Potrebujem auditovateľné spustenie nástroja MCP“</b></summary> - -Keď nástroje mutujú konfiguráciu alebo spúšťajú akcie operácií, tímy potrebujú forenznú sledovateľnosť. - -**Ako to rieši OmniRoute:** - -- Záznamy auditu podporované SQLite pre volania nástrojov MCP -- Filtre podľa nástroja, úspechu/neúspechu, kľúča API a stránkovania -- Tabuľka auditu palubnej dosky + štatistické koncové body pre automatizáciu - -</details> - -<details> -<summary><b>🔐 21. „Potrebujem obmedzené povolenia MCP na integráciu“</b></summary> - -Rôzni klienti by mali mať najmenej privilegovaný prístup ku kategóriám nástrojov. - -**Ako to rieši OmniRoute:** - -- 9 zrnitých rozsahov MCP pre kontrolovaný prístup k nástrojom -- Presadzovanie rozsahu a viditeľnosť v používateľskom rozhraní správy MCP -- Bezpečná predvolená poloha pre prevádzkové nástroje - -</details> - -<details> -<summary><b>⚙️ 22. „Potrebujem prevádzkové kontroly bez premiestňovania“</b></summary> - -Tímy potrebujú rýchle zmeny runtime počas incidentov alebo nákladových udalostí. - -**Ako to rieši OmniRoute:** - -- Aktivácia komba prepínača priamo z ovládacieho panela MCP -- Použite profily odolnosti z preddefinovaných balíkov politík -- Resetujte stav ističa z rovnakého ovládacieho panela - -</details> - -<details> -<summary><b>🔄 23. „Potrebujem viditeľnosť životného cyklu úlohy A2A a zrušenie“</b></summary> - -Bez viditeľnosti životného cyklu sa incidenty úloh ťažko triedia. - -**Ako to rieši OmniRoute:** - -- Zoznam úloh / filtrovanie podľa stavu / zručnosti so stránkovaním -- Rozbalenie metadát úloh, udalostí a artefaktov -- Koncový bod zrušenia úlohy a akcia používateľského rozhrania s potvrdením - -</details> - -<details> -<summary><b>🌊 24. „Potrebujem aktívne metriky streamu pre načítanie A2A“</b></summary> - -Streamovanie pracovných tokov vyžaduje operačný prehľad o súbežnosti a živých pripojeniach. - -**Ako to rieši OmniRoute:** - -- Aktívne počítadlá toku integrované do stavu A2A -- Časová pečiatka poslednej úlohy a počet jednotlivých štátov -- Karty palubnej dosky A2A na monitorovanie operácií v reálnom čase - -</details> - -<details> -<summary><b>🪪 25. „Potrebujem štandardné vyhľadávanie agentov pre klientov“</b></summary> - -Externí klienti a orchestrátori potrebujú strojovo čitateľné metadáta na integráciu. - -**Ako to rieši OmniRoute:** - -– Karta agenta vystavená na `/.well-known/agent.json` - -- Schopnosti a zručnosti zobrazené v používateľskom rozhraní správy -- API stavu A2A obsahuje metaúdaje zisťovania pre automatizáciu - -</details> - -<details> -<summary><b>🧭 26. "Potrebujem zistiteľnosť protokolu v UX produktu"</b></summary> - -Ak používatelia nemôžu objaviť povrchy protokolov, kvalita prijatia a podpory klesá. - -**Ako to rieši OmniRoute:** - -- Konsolidovaná stránka **Koncové body** s kartami pre proxy, MCP, A2A a koncové body API -- Inline prepínače stavu služby (Online/Offline) pre MCP a A2A -- Odkazy z prehľadu na špeciálne karty správy - -</details> - -<details> -<summary><b>🧪 27. "Potrebujem komplexné overenie protokolu so skutočnými klientmi"</b></summary> - -Falošné testy nestačia na overenie kompatibility protokolu pred vydaním. - -**Ako to rieši OmniRoute:** - -- E2E balík, ktorý spúšťa aplikáciu a využíva skutočný prenos klienta MCP SDK -- Klient A2A testuje toky zisťovania, odosielania, streamovania, získavania a rušenia -- Krížová kontrola tvrdení proti auditu MCP a API úloh A2A - -</details> - -<details> -<summary><b>📡 28. „Potrebujem jednotnú pozorovateľnosť naprieč všetkými rozhraniami“</b></summary> - -Rozdelenie pozorovateľnosti podľa protokolu vytvára slepé miesta a dlhšie MTTR. - -**Ako to rieši OmniRoute:** - -- Zjednotené informačné panely / protokoly / analýzy v jednom produkte -- Zdravie + audit + telemetria požiadaviek cez vrstvy OpenAI, MCP a A2A -- Operačné API pre stav a automatizáciu - -</details> - -<details> -<summary><b>💼 29. "Potrebujem jeden runtime pre proxy + nástroje + orchestráciu agenta"</b></summary> - -Prevádzka mnohých samostatných služieb zvyšuje prevádzkové náklady a spôsoby zlyhania. - -**Ako to rieši OmniRoute:** - -- Proxy, server MCP a server A2A kompatibilný s OpenAI v jednom zásobníku -- Zdieľaná autentifikácia, odolnosť, ukladanie údajov a pozorovateľnosť -- Konzistentný model politiky na všetkých interakčných plochách - -</details> - -<details> -<summary><b>🚀 30. „Potrebujem odoslať agentské pracovné postupy bez roztiahnutia kódu lepidla“</b></summary> - -Tímy strácajú rýchlosť pri spájaní viacerých ad-hoc služieb a skriptov. - -**Ako to rieši OmniRoute:** - -- Jednotná stratégia koncových bodov pre klientov a agentov -- Vstavané používateľské rozhrania na správu protokolov a cesty overovania dymu -- Základy pripravené na výrobu (zabezpečenie, protokolovanie, odolnosť, zálohovanie) - -</details> - -### Príklady príručiek (integrované prípady použitia) - -**Príručka A: Maximalizujte platené predplatné + lacné zálohovanie** - -```txt -Combo: "maximize-claude" - 1. cc/claude-opus-4-6 - 2. glm/glm-4.7 - 3. if/kimi-k2-thinking - -Monthly cost: $20 + small backup spend -Outcome: higher quality, near-zero interruption -``` - -**Príručka B: Balík kódovania s nulovými nákladmi** - -```txt -Combo: "free-forever" - 1. gc/gemini-3-flash - 2. if/kimi-k2-thinking - 3. qw/qwen3-coder-plus - -Monthly cost: $0 -Outcome: stable free coding workflow -``` - -**Príručka C: 24/7 vždy zapnutý záložný reťazec** - -```txt -Combo: "always-on" - 1. cc/claude-opus-4-6 - 2. cx/gpt-5.2-codex - 3. glm/glm-4.7 - 4. minimax/MiniMax-M2.1 - 5. if/kimi-k2-thinking - -Outcome: deep fallback depth for deadline-critical workloads -``` - -**Príručka D: Operačný program agenta s MCP + A2A** - -```txt -1) Start MCP transport (`omniroute --mcp`) for tool-driven operations -2) Run A2A tasks via `message/send` and `message/stream` -3) Observe via /dashboard/endpoint (MCP and A2A tabs) -4) Toggle services via inline status controls -``` - ---- - -## 🆓 Začnite zadarmo — nulové náklady na konfiguráciu - -> Nastavte kódovanie AI za pár minút za **$0/mesiac**. Pripojte tieto bezplatné účty a použite vstavanú kombináciu **Free Stack**. - -| Krok | Akcia | Poskytovatelia odblokovaní | -| ---- | --------------------------------------------------------- | -------------------------------------------------------------------- | -| 1 | Pripojiť **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — **neobmedzene** | -| 2 | Pripojte **Qoder** (Google OAuth) | kimi-k2-myslenie, qwen3-coder-plus, deepseek-r1... — **neobmedzené** | -| 3 | Pripojte **Qwen** (kód zariadenia) | qwen3-coder-plus, qwen3-coder-flash... — **neobmedzene** | -| 4 | Pripojte **Gemini CLI** (Google OAuth) | gemini-3-flash, gemini-2.5-pro — **180 000/mesiac zadarmo** | -| 5 | `/dashboard/combos` → Šablóna **Bezplatný balík (0 USD)** | Round-robin všetkých bezplatných poskytovateľov automaticky | - -**Nasmerujte ľubovoľné IDE/CLI na:** `http://localhost:20128/v1` · Kľúč API: `any-string` · Hotovo. - -> **Voliteľné extra pokrytie (tiež zadarmo):** Groq API kľúč (30 RPM zadarmo), NVIDIA NIM (40 RPM zadarmo, 70+ modelov), Cerebras (1 milión tokenov/deň), LongCat API kľúč (50 miliónov tokenov/deň!), Cloudflare Workers AI (10 000 neurónov/deň, 50+ modelov). - -## ⚡ Rýchly štart - -### 1) Nainštalujte a spustite - -```bash -npm install -g omniroute -omniroute -``` - -> **používatelia pnpm:** Po inštalácii spustite `pnpm approve-builds -g`, aby ste povolili natívne skripty zostavovania vyžadované `better-sqlite3` a `@swc/core`: -> -> ```bash -> pnpm install -g omniroute -> pnpm approve-builds -g # Select all packages → approve -> omniroute -> ``` - -Informačný panel sa otvára na `http://localhost:20128` a základná adresa URL rozhrania API je `http://localhost:20128/v1`. - -| Príkaz | Popis | -| ----------------------- | ---------------------------------------------------------------- | -| `omniroute` | Spustiť server (`PORT=20128`, API a dashboard na rovnakom porte) | -| `omniroute --port 3000` | Nastavte kanonický/API port na 3000 | -| `omniroute --mcp` | Spustiť MCP server (stdio transport) | -| `omniroute --no-open` | Neotvárať automaticky prehliadač | -| `omniroute --help` | Zobraziť pomoc | - -Voliteľný režim s rozdeleným portom: - -```bash -PORT=20128 DASHBOARD_PORT=20129 omniroute -# API: http://localhost:20128/v1 -# Dashboard: http://localhost:20129 -``` - -### 2) Pripojte poskytovateľov a vytvorte si kľúč API - -1. Otvorte Dashboard → `Providers` a pripojte aspoň jedného poskytovateľa (OAuth alebo API kľúč). -2. Otvorte Dashboard → `Endpoints` a vytvorte kľúč API. -3. (Voliteľné) Otvorte informačný panel → `Combos` a nastavte svoj záložný reťazec. - -### 3) Nasmerujte svoj kódovací nástroj na OmniRoute - -```txt -Base URL: http://localhost:20128/v1 -API Key: [copy from Endpoint page] -Model: if/kimi-k2-thinking (or any provider/model prefix) -``` - -Funguje s Claude Code, Codex CLI, Gemini CLI, Cursor, Cline, OpenClaw, OpenCode a SDK kompatibilné s OpenAI. - -### 4) Povolenie a overenie protokolov (v2.0) - -**MCP (pre operácie poháňané nástrojmi):** - -```bash -omniroute --mcp -``` - -Potom pripojte svojho klienta MCP cez `stdio` a testujte nástroje ako: - -- `omniroute_get_health` -- `omniroute_list_combos` - -**A2A (pre pracovné postupy agent-agent):** - -```bash -curl http://localhost:20128/.well-known/agent.json -``` - -```bash -curl -X POST http://localhost:20128/a2a \ - -H 'content-type: application/json' \ - -d '{"jsonrpc":"2.0","id":"quickstart","method":"message/send","params":{"skill":"quota-management","messages":[{"role":"user","content":"Give me a short quota summary."}]}}' -``` - -### 5) Overte všetko od konca do konca (odporúča sa) - -```bash -npm run test:protocols:e2e -``` - -Tento balík overuje skutočné toky klientov MCP a A2A oproti spustenej aplikácii. - -### Alternatíva: spustiť zo zdroja - -```bash -cp .env.example .env -npm install -PORT=20128 DASHBOARD_PORT=20129 NEXT_PUBLIC_BASE_URL=http://localhost:20129 npm run dev -``` - ---- - -## 🐳 Docker - -OmniRoute je k dispozícii ako verejný obrázok Docker na [Docker Hub](https://hub.docker.com/r/diegosouzapw/omniroute). - -**Rýchly beh:** - -```bash -docker run -d \ - --name omniroute \ - --restart unless-stopped \ - -p 20128:20128 \ - -v omniroute-data:/app/data \ - diegosouzapw/omniroute:latest -``` - -**So súborom prostredia:** - -```bash -# Copy and edit .env first -cp .env.example .env - -docker run -d \ - --name omniroute \ - --restart unless-stopped \ - --env-file .env \ - -p 20128:20128 \ - -v omniroute-data:/app/data \ - diegosouzapw/omniroute:latest -``` - -**Pomocou Docker Compose:** - -```bash -# Base profile (no CLI tools) -docker compose --profile base up -d - -# CLI profile (Claude Code, Codex, OpenClaw built-in) -docker compose --profile cli up -d -``` - -| Obrázok | Tag | Veľkosť | Popis | -| ------------------------ | -------- | ------- | -------------------------- | -| `diegosouzapw/omniroute` | `latest` | ~250 MB | Najnovšie stabilné vydanie | -| `diegosouzapw/omniroute` | `1.0.3` | ~250 MB | Aktuálna verzia | - ---- - -## 🖥️ Desktopová aplikácia – offline a vždy zapnutá - -> 🆕 **NOVINKA!** OmniRoute je teraz k dispozícii ako **natívna desktopová aplikácia** pre Windows, macOS a Linux. - -Spustite OmniRoute ako samostatnú počítačovú aplikáciu – pre miestne modely nie je potrebný žiadny terminál, žiadny prehliadač ani internet. Aplikácia založená na elektróne obsahuje: - -- 🖥️ **Natívne okno** — Vyhradené okno aplikácie s integráciou do systémovej lišty -- 🔄 **Auto-Start** – Spustite OmniRoute pri prihlásení do systému -- 🔔 **Natívne upozornenia** – Získajte upozornenia na vyčerpanie kvóty alebo problémy s poskytovateľom -- ⚡ **Inštalácia jedným kliknutím** — NSIS (Windows), DMG (macOS), AppImage (Linux) -- 🌐 **Režim offline** – Funguje plne offline s pribaleným serverom - -### Rýchly štart - -```bash -# Development mode -npm run electron:dev - -# Build for your platform -npm run electron:build # Current platform -npm run electron:build:win # Windows (.exe) -npm run electron:build:mac # macOS (.dmg) — x64 & arm64 -npm run electron:build:linux # Linux (.AppImage) -``` - -### Systémová lišta - -Keď je minimalizovaný, OmniRoute žije vo vašej systémovej lište s rýchlymi akciami: - -- Otvorte prístrojovú dosku -- Zmeňte port servera -- Ukončite aplikáciu - -📖 Úplná dokumentácia: [**OMNI_TOKEN_153**](electron/README.md) - ---- - -## 💰 Prehľad cien - -| Úroveň | Poskytovateľ | Náklady | Obnovenie kvóty | Najlepšie pre | -| ----------------- | --------------------------- | ------------------------------------ | ---------------------------- | -------------------------------------------- | -| **💳 PREDPLATNÉ** | Claude Code (Pro) | 20 USD/mesiac | 5h + týždenne | Už prihlásené | -| | Codex (Plus/Pro) | 20 – 200 USD/mesiac | 5h + týždenne | Používatelia OpenAI | -| | Gemini CLI | **ZADARMO** | 180 tis./mesiac + 1 tis./deň | Všetci! | -| | GitHub Copilot | 10 – 19 USD/mes. | Mesačne | Používatelia GitHubu | -| **🔑 API KEY** | NVIDIA NIM | **ZADARMO** (dev forever) | ~40 RPM | 70+ otvorených modelov | -| | Cerebras | **ZADARMO** (1 milión toku/deň) | 60 000 TPM / 30 RPM | Najrýchlejší na svete | -| | Groq | **ZADARMO** (30 RPM) | 14,4K RPD | Ultra rýchla lama/gemma | -| | DeepSeek V3.2 | 0,27 USD/1,10 USD za 1 milión | Žiadne | Najlepšie zdôvodnenie cena/kvalita | -| | xAI Grok-4 Fast | **0,20 USD/0,50 USD za 1M** 🆕 | Žiadne | Najrýchlejšie + volanie nástroja, ultranízke | -| | xAI Grok-4 (štandard) | 0,20 USD/1,50 USD za 1 milión 🆕 | Žiadne | Rozumná vlajková loď od xAI | -| | Mistral | Bezplatná skúšobná verzia + platené | Obmedzená sadzba | Európska AI | -| | OpenRouter | Platba za použitie | Žiadne | 100+ modelov agr. | -| **💰 LACNO** | GLM-5 (cez Z.AI) 🆕 | 0,5 USD/1 milión | Denne 10:00 | 128K výstup, najnovšia vlajková loď | -| | GLM-4,7 | 0,6 USD/1 milión | Denne 10:00 | Záloha rozpočtu | -| | MiniMax M2,5 🆕 | Vstup 0,3 $/1 milión | 5-hodinové valcovanie | Úvahy + agentské úlohy | -| | MiniMax M2.1 | 0,2 USD/1 milión | 5-hodinové valcovanie | Najlacnejšia možnosť | -| | Kimi K2.5 (Moonshot API) 🆕 | Platba za použitie | Žiadne | Priamy prístup Moonshot API | -| | Kimi K2 | 9 USD/mesiac byt | 10 miliónov tokenov/mesiac | Predvídateľné náklady | -| **🆓 ZDARMA** | Qoder | **$0** | Neobmedzené | 5 modelov neobmedzene | -| | Qwen | **$0** | Neobmedzené | 4 modely neobmedzene | -| | Kiro | **$0** | Neobmedzené | Claude Sonnet/Haiku (staviteľ AWS) | -| | LongCat Flash-Lite 🆕 | **$0** (50 miliónov tok/deň 🔥) | 1 RPS | Najväčšia bezplatná kvóta na Zemi | -| | Opeľovanie AI 🆕 | **$0** (nie je potrebný žiadny kľúč) | 1 požiadavka/15s | GPT-5, Claude, DeepSeek, Llama 4 | -| | Cloudflare Workers AI 🆕 | **$0** (10 000 neurónov/deň) | ~150 resp./deň | 50+ modelov, globálny náskok | -| | Scaleway AI 🆕 | **$0** (celkom 1 milión tokenov) | Obmedzená sadzba | EU/GDPR, Qwen3 235B, Lama 70B | - -> 🆕 **Pridané nové modely (marec 2026):** Rodina Grok-4 Fast za 0,20 $/0,50 $/M (porovnávacia rýchlosť 1143 ms – o 30 % rýchlejšia ako Gemini 2.5 Flash), GLM-5 cez Z.AI s výstupom 128 kB, aktualizovaná cena MiniMax M2.5 V5, Kimi K2.2 Direct API. - -**💡 Combo Stack 0 $ — Kompletné bezplatné nastavenie:** - -``` -# 🆓 Ultimate Free Stack 2026 — 11 Providers, $0 Forever -Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED -LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 -Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed -Qwen (qw/) → qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next UNLIMITED -Gemini (gemini/) → Gemini 2.5 Flash — 1,500 req/day free API key -Cloudflare AI (cf/) → Llama 70B, Gemma 3, Mistral — 10K Neurons/day -Scaleway (scw/) → Qwen3 235B, Llama 70B — 1M free tokens (EU) -Groq (groq/) → Llama/Gemma ultra-fast — 14.4K req/day -NVIDIA NIM (nvidia/) → 70+ open models — 40 RPM forever -Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day -``` - -**Nulové náklady. Nikdy neprestáva kódovať.** Nakonfigurujte si to ako jednu kombináciu OmniRoute a všetky núdzové situácie sa stanú automaticky – žiadne manuálne prepínanie. - ---- - ---- - -## 🆓 Bezplatné modely — to, čo skutočne získate - -> Všetky modely uvedené nižšie sú **100 % zadarmo, bez potreby kreditnej karty**. OmniRoute medzi nimi automaticky prechádza, keď sa minie jedna kvóta – skombinujte ich všetky a získate nerozbitnú kombináciu 0 $. - -### 🔵 CLAUDE MODELS (cez Kiro — AWS Builder ID) - -| Model | Predpona | Limit | Limit sadzby | -| ------------------- | -------- | --------------- | -------------------------- | -| `claude-sonnet-4.5` | `kr/` | **Neobmedzené** | Žiadny hlásený denný limit | -| `claude-haiku-4.5` | `kr/` | **Neobmedzené** | Žiadny hlásený denný limit | -| `claude-opus-4.6` | `kr/` | **Neobmedzené** | Najnovší Opus cez Kiro | - -### 🢢 MODELY QODER (bezplatný protokol OAuth – žiadna kreditná karta) - -| Model | Predpona | Limit | Limit sadzby | -| ------------------ | -------- | --------------- | ---------------------- | -| `kimi-k2-thinking` | `if/` | **Neobmedzené** | Žiadny nahlásený strop | -| `qwen3-coder-plus` | `if/` | **Neobmedzené** | Žiadny nahlásený strop | -| `deepseek-r1` | `if/` | **Neobmedzené** | Žiadny nahlásený strop | -| `minimax-m2.1` | `if/` | **Neobmedzené** | Žiadny nahlásený strop | -| `kimi-k2` | `if/` | **Neobmedzené** | Žiadny nahlásený strop | - -### 🟡 MODELY QWEN (autorizácia kódu zariadenia) - -| Model | Predpona | Limit | Limit sadzby | -| ------------------- | -------- | --------------- | ---------------------- | -| `qwen3-coder-plus` | `qw/` | **Neobmedzené** | Žiadny nahlásený strop | -| `qwen3-coder-flash` | `qw/` | **Neobmedzené** | Žiadny nahlásený strop | -| `qwen3-coder-next` | `qw/` | **Neobmedzené** | Žiadny nahlásený strop | -| `vision-model` | `qw/` | **Neobmedzené** | Multimodálne (obrázky) | - -### 🟣 GEMINI CLI (Google OAuth) - -| Model | Predpona | Limit | Limit sadzby | -| ------------------------ | -------- | ------------------------------------ | -------------- | -| `gemini-3-flash-preview` | `gc/` | **180 tis. tok/mesiac** + 1 tis./deň | Mesačný reset | -| `gemini-2.5-pro` | `gc/` | 180 tis./mesiac (zdieľaný bazén) | Vysoká kvalita | - -### ⚫ NVIDIA NIM (bezplatný kľúč API — build.nvidia.com) - -| Úroveň | Denný limit | Limit sadzby | Poznámky | -| ------------- | ---------------- | ------------ | ----------------------------------------------------------------- | -| Zadarmo (Dev) | Žiadny token cap | **~40 RPM** | 70+ modelov; prechod na limity čistej sadzby v polovici roku 2025 | - -Populárne bezplatné modely: `moonshotai/kimi-k2.5` (Kimi K2.5), `z-ai/glm4.7` (GLM 4.7), `deepseek-ai/deepseek-v3.2` (DeepSeek V3.2), `nvidia/llama-3.3-70b-instruct`\_, \_6_EN_OMNI - -### ⚪ CEREBRAS (bezplatný kľúč API — inference.cerebras.ai) - -| Úroveň | Denný limit | Limit sadzby | Poznámky | -| ------- | ------------------------ | ------------------- | ------------------------------------------------------ | -| Zadarmo | **1 milión tokenov/deň** | 60 000 TPM / 30 RPM | Svetovo najrýchlejšie odvodenie LLM; resetuje sa denne | - -Dostupné zadarmo: `llama-3.3-70b`, `llama-3.1-8b`, `deepseek-r1-distill-llama-70b` - -### 🔴 GROQ (bezplatný kľúč API — console.groq.com) - -| Úroveň | Denný limit | Limit sadzby | Poznámky | -| ------- | ------------- | ---------------------------- | ------------------------------------------------ | -| Zadarmo | **14,4K RPD** | 30 otáčok za minútu na model | Žiadna kreditná karta; 429 na limit, neúčtuje sa | - -Dostupné zadarmo: `llama-3.3-70b-versatile`, `gemma2-9b-it`, `mixtral-8x7b`, `whisper-large-v3` - -### 🔴 LONGCAT AI (bezplatný kľúč API — longcat.chat) 🆕 - -| Model | Predpona | Denná bezplatná kvóta | Poznámky | -| ----------------------------- | -------- | -------------------------- | ------------------------------- | -| `LongCat-Flash-Lite` | `lc/` | **50 miliónov žetónov** 💥 | Najväčšia bezplatná kvóta vôbec | -| `LongCat-Flash-Chat` | `lc/` | 500 000 žetónov | Viacotáčkový chat | -| `LongCat-Flash-Thinking` | `lc/` | 500 000 žetónov | Zdôvodnenie / CoT | -| `LongCat-Flash-Thinking-2601` | `lc/` | 500 000 žetónov | Verzia z januára 2026 | -| `LongCat-Flash-Omni-2603` | `lc/` | 500 000 žetónov | Multimodálne | - -> 100 % zadarmo vo verejnej beta verzii. Zaregistrujte sa na [longcat.chat](https://longcat.chat) pomocou e-mailu alebo telefónu. Resetuje sa denne o 00:00 UTC. - -### 🢢 POLLINATIONS AI (nevyžaduje sa žiadny kľúč API) 🆕 - -| Model | Predpona | Limit sadzby | Poskytovateľ za | -| ---------- | -------- | ---------------- | ------------------ | -| `openai` | `pol/` | 1 požiadavka/15s | GPT-5 | -| `claude` | `pol/` | 1 požiadavka/15s | Antropický Claude | -| `gemini` | `pol/` | 1 požiadavka/15s | Google Gemini | -| `deepseek` | `pol/` | 1 požiadavka/15s | DeepSeek V3 | -| `llama` | `pol/` | 1 požiadavka/15s | Meta Llama 4 Scout | -| `mistral` | `pol/` | 1 požiadavka/15s | Mistral AI | - -> ✨ **Nulové trenie:** Bez registrácie, bez kľúča API. Pridajte poskytovateľa opeľovania s prázdnym kľúčovým poľom a funguje to okamžite. - -### 🟠 CLOUDFLARE WORKERS AI (bezplatný kľúč API — cloudflare.com) 🆕 - -| Úroveň | Denné neuróny | Ekvivalentné použitie | Poznámky | -| ------- | ------------- | -------------------------------------------- | ------------------------ | -| Zadarmo | **10 000** | ~150 LLM resp / 500 s audio / 15 000 vložení | Global edge, 50+ modelov | - -Populárne bezplatné modely: `@cf/meta/llama-3.3-70b-instruct`, `@cf/google/gemma-3-12b-it`, `@cf/openai/whisper-large-v3-turbo` (bezplatný zvuk!), `@cf/qwen/qwen2.5-coder-15b-instruct` - -> Vyžaduje token API + ID účtu z [dash.cloudflare.com](https://dash.cloudflare.com). Uložte ID účtu v nastaveniach poskytovateľa. - -### 🟣 SCALEWAY AI (1 milión bezplatných tokenov — scaleway.com) 🆕 - -| Úroveň | Voľná ​​kvóta | Miesto | Poznámky | -| ------- | -------------------- | ------------ | ----------------------------------------------------- | -| Zadarmo | **1 milión tokenov** | 🇫🇷 Paríž, EÚ | V rámci limitov nie je potrebná žiadna kreditná karta | - -Dostupné zadarmo: `qwen3-235b-a22b-instruct-2507` (Qwen3 235B!), `llama-3.1-70b-instruct`, `mistral-small-3.2-24b-instruct-2506`, `deepseek-v3-0324` - -> V súlade s EÚ/GDPR. Získajte kľúč API na [console.scaleway.com](https://console.scaleway.com). - -> **💡 Konečný bezplatný balík (11 poskytovateľov, 0 $ navždy):** -> -> ``` -> Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -> Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED -> LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 -> Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed -> Qwen (qw/) → qwen3-coder models UNLIMITED -> Gemini (gemini/) → Gemini 2.5 Flash — 1,500 req/day free -> Cloudflare AI (cf/) → 50+ models — 10K Neurons/day -> Scaleway (scw/) → Qwen3 235B, Llama 70B — 1M free tokens (EU) -> Groq (groq/) → Llama/Gemma — 14.4K req/day ultra-fast -> NVIDIA NIM (nvidia/) → 70+ open models — 40 RPM forever -> Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day -> ``` - -## 🎙️ Kombinácia bezplatného prepisu - -> Prepíšte akýkoľvek zvuk/video za **$0** – Deepgram vedie s 200 $ zadarmo, AssemblyAI 50 $ záložný, Groq Whisper ako neobmedzená núdzová záloha. - -| Poskytovateľ | Bezplatné kredity | Najlepší model | Limit sadzby | -| --------------- | ------------------------------- | -------------------------------------------------- | ------------------------------------- | -| 🢢 **Deepgram** | **200 $ zadarmo** (registrácia) | `nova-3` — najlepšia presnosť, viac ako 30 jazykov | Žiadny limit RPM na bezplatné kredity | -| 🔵 **MontážAI** | **50 $ zadarmo** (registrácia) | `universal-3-pro` – kapitoly, sentiment, PII | Žiadny limit RPM na bezplatné kredity | -| 🔴 **Groq** | **Navždy zadarmo** | `whisper-large-v3` — OpenAI Whisper | 30 RPM (obmedzená rýchlosť) | - -**Navrhovaná kombinácia v `/dashboard/combos`:** - -``` -Name: free-transcription -Strategy: Priority -Nodes: - [1] deepgram/nova-3 → uses $200 free first - [2] assemblyai/universal-3-pro → fallback when Deepgram credits run out - [3] groq/whisper-large-v3 → free forever, emergency fallback -``` - -Potom na karte `/dashboard/media` → **Prepis**: nahrajte akýkoľvek zvukový alebo video súbor → vyberte svoj kombinovaný koncový bod → získajte prepis v podporovaných formátoch. - -## 💡 Kľúčové vlastnosti - -OmniRoute v2.0 je postavený ako operačná platforma, nie len ako relé proxy. - -### 🆕 Novinka — Vylepšenia inšpirované ClawRouterom (marec 2026) - -| Funkcia | Čo to robí | -| ----------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ | -| ⚡ **Grok-4 Fast Family** | Modely xAI za 0,20 USD/0,50 USD/M – porovnávacia rýchlosť 1143 ms (o 30 % rýchlejšie ako Gemini 2.5 Flash) | -| 🧠 **GLM-5 cez Z.AI** | 128 000 výstupný kontext, 0,5 $/1 milión – najnovšia vlajková loď z rodiny GLM | -| 🔮 **MiniMax M2,5** | Úvahy + agentské úlohy za 0,30 $/1 milión – významný upgrade z M2,1 | -| 🎯 **toolCalling Flag na model** | Podľa modelu `toolCalling: true/false` v registri – AutoCombo preskakuje modely bez nástrojov | -| 🌍 **Multilingual Intent Detection** | Kľúčové slová PT/ZH/ES/AR v hodnotení AutoCombo – lepší výber modelu pre neanglický obsah | -| 📊 **Návraty založené na benchmarkoch** | Skutočná latencia p95 z kombinovaného hodnotenia informačných kanálov živých žiadostí – AutoCombo sa učí zo skutočných údajov | -| 🔁 **Požiadať o deduplikáciu** | Okno odstraňovania duplicitných údajov založené na hašovaní obsahu – bezpečné pre viacerých agentov, zabraňuje duplicitným poplatkom | -| 🔌 **Stratégia pripojiteľného smerovača** | Rozšíriteľné rozhranie `RouterStrategy` – pridanie vlastnej logiky smerovania ako zásuvných modulov | - -### 🚀 Predchádzajúca v2.0.9+ – Ihrisko, odtlačky prstov CLI a AKT - -| Funkcia | Čo to robí | -| -------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| 🎮 **Modelové ihrisko** | Stránka hlavného panela na priame otestovanie akéhokoľvek modelu – selektory poskytovateľa/modelu/koncového bodu, editor Monaco, streamovanie, prerušenie, načasovanie | -| 🔏 **CLI Fingerprint Matching** | Usporiadanie hlavičky/tela podľa poskytovateľa tak, aby sa zhodovalo s natívnymi podpismi CLI – prepínajte podľa poskytovateľa v Nastavenia > Zabezpečenie. **Vaša proxy IP je zachovaná** | -| 🤝 **Podpora ACP (Protokol agenta klienta)** | Objavovanie agentov CLI (Codex, Claude, Goose, Gemini CLI, OpenClaw + 9 ďalších), spúšťač procesov, koncový bod `/api/acp/agents` | -| 🤖 **Hlavný panel agentov AKT** | Debug › Stránka Agenti — mriežka 14 agentov so stavom inštalácie, verziou, vlastným formulárom agenta pre ľubovoľný nástroj CLI. Používatelia **OpenCode** dostanú tlačidlo „Stiahnuť opencode.json“, ktoré automaticky vygeneruje konfiguráciu pripravenú na použitie so všetkými dostupnými modelmi. | -| 🔧 **Vlastný model `apiFormat` Smerovanie** | Vlastné modely s `apiFormat: "responses"` teraz správne smerujú do prekladača Responses API | -| 🏢 **Izolácia pracovného priestoru Codex** | Viaceré pracovné priestory Codex na e-mail – OAuth správne oddeľuje pripojenia podľa ID pracovného priestoru | -| 🔄 **Elektrónová automatická aktualizácia** | Desktopová aplikácia kontroluje aktualizácie + automatická inštalácia pri reštarte | - -### 🤖 Agent & Protocol Operations (v2.0) - -| Funkcia | Čo to robí | -| ---------------------------------------------- | --------------------------------------------------------------------------------------------------------- | -| 🔧 **MCP Server (16 nástrojov)** | Nástroje IDE/agenta cez 3 prenosy: stdio, SSE (`/api/mcp/sse`), Streamovateľný HTTP (`/api/mcp/stream`) | -| 🤝 **Server A2A (JSON-RPC + SSE)** | Vykonávanie úloh agent-agent so synchronizáciou a streamovaním | -| 🧭 **Stránka konsolidovaných koncových bodov** | Stránka správy s kartami s kartami Endpoint Proxy, MCP, A2A a API Endpoints | -| 🎚️ **Prepínače aktivácie/deaktivácie služby** | Vypínače ON/OFF pre MCP a A2A s trvalým nastavením (predvolené: OFF) | -| 🛰️ **MCP Runtime Heartbeat** | Skutočný stav procesu (pid, uptime, srdcový tep, transport, režim rozsahu) | -| 📋 **MCP Audit Trail** | Filtrovateľné protokoly auditu s úspechom/neúspechom a kľúčovým priradením | -| 🔐 **Presadzovanie rozsahu MCP** | 9 podrobných oprávnení rozsahu pre riadený prístup k nástroju | -| 📡 **Správa životného cyklu úloh A2A** | Zoznam/filtrovanie úloh, kontrola udalostí/artefaktov, zrušenie spustených úloh | -| 📋 **Zistenie karty agenta** | `/.well-known/agent.json` pre automatické zisťovanie klientov | -| 🧪 **Protokol E2E Test Harness** | Skutočné toky klienta MCP SDK + A2A v `test:protocols:e2e` | -| ⚙️ **Ovládacie prvky** | Kombinované prepínanie, aplikovanie profilov odolnosti, resetovanie ističov z jedného ovládacieho povrchu | - -### 🧠 Smerovanie a inteligencia - -| Funkcia | Čo to robí | -| --------------------------------------------- | -------------------------------------------------------------------------------- | -| 🎯 **Inteligentná 4-úrovňová núdzová záloha** | Automatická trasa: Predplatné → Kľúč API → Lacné → Zadarmo | -| 📊 **Sledovanie kvóty v reálnom čase** | Živý počet tokenov + reset odpočítavania na poskytovateľa | -| 🔄 **Formátový preklad** | OpenAI ↔ Claude ↔ Gemini ↔ Odpovede s konverziami bezpečnými pre schému | -| 👥 **Podpora viacerých účtov** | Viac účtov na poskytovateľa s inteligentným výberom | -| 🔄 **Automatická obnova tokenov** | Tokeny OAuth sa automaticky obnovia s opätovným pokusom | -| 🎨 **Vlastné kombá** | 6 vyvažovacích stratégií + núdzové riadenie reťazca | -| 🌐 **Wildcard Router** | `provider/*` dynamické smerovanie | -| 🧠 **Premýšľajte o kontrolách rozpočtu** | Limity priechodného, ​​automatického, vlastného a adaptívneho uvažovania | -| 🔀 **Aliasy modelov** | Vstavaný + vlastný model aliasing a bezpečnosť migrácie | -| ⚡ **Degradácia pozadia** | Smerujte úlohy s nízkou prioritou na pozadí na lacnejšie modely | -| 🧪 **Inteligentné smerovanie podľa úloh** | Automatický výber modelu podľa typu obsahu (kódovanie/vízia/analýza/sumarizácia) | -| 💬 **Promptné vstrekovanie systému** | Dôsledne uplatňované globálne kontroly správania | -| 📄 **Kompatibilita rozhrania Responses API** | Plná podpora `/v1/responses` pre kódex a pokročilé pracovné postupy agentov | - -### 🎵 Multimodálne API - -| Funkcia | Čo to robí | -| ------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 🖼️ **Generovanie obrázkov** | `/v1/images/generations` s cloudom a lokálnymi backendmi | -| 📐 **Vloženie** | `/v1/embeddings` pre vyhľadávacie a RAG potrubia | -| 🎤 **Prepis zvuku** | `/v1/audio/transcriptions` — 7 poskytovateľov (Deepgram Nova 3, AssemblyAI, Groq Whisper, HuggingFace, ElevenLabs, OpenAI, Azure), automatická detekcia jazyka, podpora MP4/MP3/WAV | -| 🔊 **Prevod textu na reč** | `/v1/audio/speech` — 10 poskytovateľov (ElevenLabs, OpenAI, Deepgram, Cartesia, PlayHT, HuggingFace, Nvidia NIM, Inworld, Coqui, Tortoise) so správnymi chybovými hláseniami | -| 🎬 **Generácia videa** | `/v1/videos/generations` (pracovné postupy ComfyUI + SD WebUI) | -| 🎵 **Hudobná generácia** | `/v1/music/generations` (pracovné postupy ComfyUI) | -| 🛡️ **Moderovania** | `/v1/moderations` bezpečnostné kontroly | -| 🔀 **Reranking** | `/v1/rerank` na hodnotenie relevantnosti | -| 🔍 **Vyhľadávanie na webe** 🆕 | `/v1/search` — 5 poskytovateľov (Serper, Brave, Perplexity, Exa, Tavily), 6 500+ zadarmo/mesiac, automatické zlyhanie, vyrovnávacia pamäť | - -### 🛡️ Odolnosť, bezpečnosť a riadenie - -| Funkcia | Čo to robí | -| ------------------------------------------------ | ---------------------------------------------------------------------------------------------- | -| 🔌 **Ističe** | Vypnutie/obnovenie pre každý model s prahovými ovládačmi | -| 🎯 ** Modely s vedomím koncového bodu** | Vlastné modely deklarujú podporované koncové body + formát API | -| 🛡️ **Anti-hromové stádo** | Mutex + semaforové ochrany pri opakovaných udalostiach/postupoch | -| 🧠 **Sémantická + podpisová vyrovnávacia pamäť** | Zníženie nákladov/latencie pomocou dvoch vrstiev vyrovnávacej pamäte | -| ⚡ **Požiadajte o idempotenciu** | Duplicitné ochranné okno | -| 🔒 ** Spoofing odtlačkov prstov TLS** | Odtlačok TLS podobný prehliadaču – **obmedzuje detekciu robotov a označovanie účtu** | -| 🔏 **CLI Fingerprint Matching** | Zodpovedá natívnym podpisom požiadaviek CLI – **znižuje riziko zákazu pri zachovaní proxy IP** | -| 🌐 **Filtrovanie IP** | Kontrola zoznamu povolených/blokovaných nasadení pre vystavené nasadenia | -| 📊 **Upraviteľné limity sadzieb** | Konfigurovateľné globálne limity/limity na úrovni poskytovateľa s perzistenciou | -| 🔑 **Správa kľúčov API + rozsah** | Bezpečné vydávanie/otočenie kľúčov a ovládanie modelu/poskytovateľa | -| 🛡️ **Chránené `/models`** | Voliteľné overenie a skrytie poskytovateľa pre katalóg modelov | - -### 📊 Pozorovateľnosť a analytika - -| Funkcia | Čo to robí | -| ------------------------------------- | ---------------------------------------------------------------------------------------- | -| 📝 **Žiadosť + protokolovanie proxy** | Úplná žiadosť/odpoveď a protokolovanie proxy | -| 📉 **Streamed Detailed Logs** 🆕 | Reconstructs SSE payload streams cleanly into the UI | -| 📋 **Unified Logs Dashboard** | Požiadavka, proxy, audit a zobrazenie konzoly na jednej stránke | -| 🔍 **Požiadať o telemetriu** | p50/p95/p99 latencia a sledovanie požiadaviek | -| 🏥 **Panel zdravia** | Doba prevádzkyschopnosti, stavy prerušovačov, uzamknutia, štatistiky vyrovnávacej pamäte | -| 💰 **Sledovanie nákladov** | Kontroly rozpočtu a viditeľnosť cien podľa modelu | -| 📈 **Analytické vizualizácie** | Štatistiky používania modelu/poskytovateľa a zobrazenia trendov | -| 🧪 **Rámec hodnotenia** | Testovanie zlatej sady s konfigurovateľnými stratégiami zhody | - -### ☁️ Nasadenie a platforma - -| Funkcia | Čo to robí | -| ------------------------------ | ------------------------------------------------------------------------------------ | -| 🌐 **Nasadenie kdekoľvek** | Localhost, VPS, Docker, Cloud prostredia | -| 💾 **Cloud Sync** | Synchronizácia konfigurácie cez cloud worker | -| 🔄 **Zálohovanie/Obnova** | Export/import a toky obnovy po havárii | -| 🧙 **Sprievodca onboardingom** | Sprievodca nastavením pri prvom spustení | -| 🔧 **CLI Tools Dashboard** | Nastavenie jedným kliknutím pre obľúbené nástroje kódovania | -| 🎮 **Modelové ihrisko** | Otestujte akéhokoľvek poskytovateľa/model/koncový bod z ovládacieho panela | -| 🔏 **CLI Fingerprint Toggle** | Zhoda odtlačkov prstov jednotlivých poskytovateľov v časti Nastavenia > Zabezpečenie | -| 🌐 **i18n (30 jazykov)** | Úplná podpora dashboardu + dokumentov s podporou RTL | -| 🧹 **Vymazať všetky modely** | Vymazanie zoznamu modelov jedným kliknutím v detailoch poskytovateľa | -| 👁️ **Sidebar Controls** 🆕 | Hide components and integrations from Appearance Settings | -| 📋 **Šablóny vydaní** | Štandardizované šablóny GitHub pre chyby a funkcie | -| 📂 **Custom Data Directory** | `DATA_DIR` prepísanie miesta uloženia | - -### Funkcia Deep Dive - -#### Inteligentné núdzové riešenie s praktickou kontrolou nákladov - -```txt -Combo: "my-coding-stack" - 1. cc/claude-opus-4-6 - 2. nvidia/llama-3.3-70b - 3. glm/glm-4.7 - 4. if/kimi-k2-thinking -``` - -Keď kvóta, sadzba alebo stav zlyhajú, OmniRoute automaticky prejde na ďalšieho kandidáta bez manuálneho prepínania. - -#### Správa protokolov, ktorá je viditeľná a ovládateľná - -- MCP + A2A sú viditeľné v používateľskom rozhraní a dokumentoch (nie sú skryté) - – Rozhrania API stavu protokolu odhaľujú aktuálne prevádzkové údaje (`/api/mcp/*`, `/api/a2a/*`) -- Panely obsahujú akcie pre 2. deň (prepínanie komb, resetovanie prerušovača, zrušenie úlohy) - -#### Pracovný postup prekladateľa + overenia - -Oblasť prekladateľov zahŕňa: - -- **Ihrisko**: vyžiadajte si kontroly transformácie -- **Chat Tester**: úplná spiatočná cesta so žiadosťou a odpoveďou -- **Testovacia lavica**: viacero prípadov v jednom behu -- **Live Monitor**: zobrazenie premávky v reálnom čase - -Plus overenie protokolu so skutočnými klientmi cez `npm run test:protocols:e2e`. - -> 📖 **[MCP Server README](open-sse/mcp-server/README.md)** — Referencie k nástroju, konfigurácie IDE a príklady klientov -> -> 📖 **[A2A Server README](src/lib/a2a/README.md)** — Zručnosti, metódy JSON-RPC, streamovanie a životný cyklus úloh - -## 🧪 Hodnotenia (Evals) - -OmniRoute obsahuje vstavaný hodnotiaci rámec na testovanie kvality odozvy LLM oproti zlatému súboru. Prístup k nej získate cez **Analytics → Evals** na hlavnom paneli. - -### Vstavaná zlatá súprava - -Predinštalovaná sada „OmniRoute Golden Set“ obsahuje testovacie prípady pre: - -- Pozdravy, matematika, geografia, generovanie kódu -- Súlad s formátom JSON, preklad, generovanie markdownov -- Bezpečnostné odmietnutie (škodlivý obsah), počítanie, booleovská logika - -### Stratégie hodnotenia - -| Stratégia | Popis | Príklad | -| ---------- | ---------------------------------------------------------------------- | -------------------------------- | -| `exact` | Výstup sa musí presne zhodovať | `"4"` | -| `contains` | Výstup musí obsahovať podreťazec (nerozlišujú sa malé a veľké písmená) | `"Paris"` | -| `regex` | Výstup musí zodpovedať vzoru regulárneho výrazu | `"1.*2.*3"` | -| `custom` | Vlastná funkcia JS vracia true/false | `(output) => output.length > 10` | - ---- - -## 📖 Sprievodca nastavením - -### Nastavenie protokolu (MCP + A2A) - -<details> -<summary><b>🧩 Nastavenie MCP (Model Context Protocol)</b></summary> - -Spustite prenos MCP v režime stdio: - -```bash -omniroute --mcp -``` - -Odporúčaný postup overenia: - -1. Pripojte svojho MCP klienta cez stdio. -2. Spustite `omniroute_get_health`. -3. Spustite `omniroute_list_combos`. -4. Otvorte `/dashboard/mcp` na potvrdenie srdcového tepu, aktivity a auditu. - -Užitočné API pre automatizáciu: - -- `GET /api/mcp/status` -- `GET /api/mcp/tools` -- `GET /api/mcp/audit` -- `GET /api/mcp/audit/stats` - -</details> - -<details> -<summary><b>🤝 Nastavenie A2A (Agent2Agent)</b></summary> - -Objavte agenta: - -```bash -curl http://localhost:20128/.well-known/agent.json -``` - -Pošlite úlohu: - -```bash -curl -X POST http://localhost:20128/a2a \ - -H 'content-type: application/json' \ - -d '{"jsonrpc":"2.0","id":"setup-a2a","method":"message/send","params":{"skill":"quota-management","messages":[{"role":"user","content":"Summarize quota status."}]}}' -``` - -Správa životného cyklu: - -- `GET /api/a2a/status` -- `GET /api/a2a/tasks` -- `GET /api/a2a/tasks/:id` -- `POST /api/a2a/tasks/:id/cancel` - -Operačné používateľské rozhranie: - -- `/dashboard/a2a` pre pozorovateľnosť úlohy/stavu/streamu a akcie dymu - -</details> - -<details> -<summary><b>🧪 Kompletné overenie protokolu</b></summary> - -Overte oba protokoly so skutočnými klientmi: - -```bash -npm run test:protocols:e2e -``` - -Týmto sa overí: - -- Pripojenie/zoznam/zavolanie klienta MCP SDK -- A2A objav/odoslanie/streamovanie/získanie/zrušenie -- Krížová kontrola údajov v MCP audit a A2A task management API - -</details> - -<details> -<summary><b>💳 Poskytovatelia predplatného</b></summary> - -### Claude Code (Pro/Max) - -```bash -Dashboard → Providers → Connect Claude Code -→ OAuth login → Auto token refresh -→ 5-hour + weekly quota tracking - -Models: - cc/claude-opus-4-6 - cc/claude-sonnet-4-5-20250929 - cc/claude-haiku-4-5-20251001 -``` - -**Tip pre profesionálov:** Používajte Opus na zložité úlohy, Sonnet na rýchlosť. OmniRoute sleduje kvótu na model! - -### OpenAI Codex (Plus/Pro) - -```bash -Dashboard → Providers → Connect Codex -→ OAuth login (port 1455) -→ 5-hour + weekly reset - -Models: - cx/gpt-5.2-codex - cx/gpt-5.1-codex-max -``` - -#### Správa limitu účtu Codex (5 hodín + týždenne) - -Každý účet Codex má teraz prepínače pravidiel v `Dashboard -> Providers`: - -- `5h` (ZAP./VYP.): presadzovať zásadu prahu 5-hodinového okna. -- `Weekly` (ZAP./VYP.): presadzovanie zásady týždenného limitu okna. -- Prahové správanie: keď povolené okno dosiahne využitie >=90 %, daný účet sa preskočí. -- Rotačné správanie: OmniRoute automaticky smeruje k ďalšiemu oprávnenému účtu Codex. -- Resetovať správanie: keď poskytovateľ `resetAt` uplynie čas, účet sa automaticky znova stane spôsobilým. - -Scenáre: - -- `5h ON` + `Weekly ON`: účet sa preskočí, keď ktorékoľvek okno dosiahne prah. -- `5h OFF` + `Weekly ON`: účet môže zablokovať iba týždenné používanie. -- `5h ON` + `Weekly OFF`: iba 5-hodinové používanie môže zablokovať účet. -- `resetAt` úspešne prebehlo: účet sa automaticky znova zaradí do rotácie (bez manuálneho opätovného povolenia). - -### Gemini CLI (ZADARMO 180 000/mesiac!) - -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Najlepšia hodnota:** Obrovská bezplatná úroveň! Použite to pred platenými úrovňami. - -### GitHub Copilot - -```bash -Dashboard → Providers → Connect GitHub -→ OAuth via GitHub -→ Monthly reset (1st of month) - -Models: - gh/gpt-5 - gh/claude-4.5-sonnet - gh/gemini-3-pro -``` - -</details> - -<details> -<summary><b>🔑 Kľúčoví poskytovatelia API</b></summary> - -### NVIDIA NIM (BEZPLATNÝ prístup pre vývojárov — 70+ modelov) - -1. Zaregistrujte sa: [build.nvidia.com](https://build.nvidia.com) -2. Získajte bezplatný kľúč API (vrátane 1 000 kreditov na odvodenie) -3. Ovládací panel → Pridať poskytovateľa → NVIDIA NIM: - - Kľúč API: `nvapi-your-key` - -**Modely:** `nvidia/llama-3.3-70b-instruct`, `nvidia/mistral-7b-instruct` a 50+ ďalších - -**Tip pre profesionálov:** API kompatibilné s OpenAI – bezproblémovo funguje s prekladom formátu OmniRoute! - -### DeepSeek - -1. Zaregistrujte sa: [platform.deepseek.com](https://platform.deepseek.com) -2. Získajte kľúč API -3. Dashboard → Pridať poskytovateľa → DeepSeek - -**Modely:** `deepseek/deepseek-chat`, `deepseek/deepseek-coder` - -### Groq (dostupná bezplatná úroveň!) - -1. Zaregistrujte sa: [console.groq.com](https://console.groq.com) -2. Získajte kľúč API (vrátane bezplatnej úrovne) -3. Dashboard → Pridať poskytovateľa → Groq - -**Modely:** `groq/llama-3.3-70b`, `groq/mixtral-8x7b` - -**Tip pre profesionálov:** Ultra rýchle odvodenie – najlepšie pre kódovanie v reálnom čase! - -### OpenRouter (100+ modelov) - -1. Zaregistrujte sa: [openrouter.ai](https://openrouter.ai) -2. Získajte kľúč API -3. Dashboard → Pridať poskytovateľa → OpenRouter - -**Modely:** Získajte prístup k viac ako 100 modelom od všetkých hlavných poskytovateľov prostredníctvom jediného kľúča API. - -</details> - -<details> -<summary><b>💰 Lacní poskytovatelia (záložné)</b></summary> - -### GLM-4,7 (denný reset, 0,6 $/1 milión) - -1. Zaregistrujte sa: [Zhipu AI](https://open.bigmodel.cn/) -2. Získajte kľúč API z plánu kódovania -3. Panel → Pridať kľúč API: - – Poskytovateľ: `glm` - - Kľúč API: `your-key` - -**Použitie:** `glm/glm-4.7` - -**Tip pre profesionálov:** Kódovací plán ponúka 3× kvótu za 1/7 cenu! Resetovať denne o 10:00. - -### MiniMax M2.1 (5h reset, $0.20/1M) - -1. Zaregistrujte sa: [MiniMax](https://www.minimax.io/) -2. Získajte kľúč API -3. Panel → Pridať kľúč API - -**Použitie:** `minimax/MiniMax-M2.1` - -**Tip pre profesionálov:** Najlacnejšia možnosť pre dlhý kontext (1 milión tokenov)! - -### Kimi K2 (9 USD/mesiac) - -1. Prihlásiť sa na odber: [Moonshot AI](https://platform.moonshot.ai/) -2. Získajte kľúč API -3. Panel → Pridať kľúč API - -**Použitie:** `kimi/kimi-latest` - -**Tip pre profesionálov:** Pevné 9 $/mesiac za 10 miliónov tokenov = 0,90 $/1 milión efektívnych nákladov! - -</details> - -<details> -<summary><b>🆓 BEZPLATNÍ poskytovatelia (núdzové zálohovanie)</b></summary> - -### Qoder (5 BEZPLATNÝCH modelov cez OAuth) - -```bash -Dashboard → Connect Qoder -→ Qoder OAuth login -→ Unlimited usage - -Models: - if/kimi-k2-thinking - if/qwen3-coder-plus - if/glm-4.7 - if/minimax-m2 - if/deepseek-r1 -``` - -### Qwen (4 ZDARMA modely prostredníctvom kódu zariadenia) - -```bash -Dashboard → Connect Qwen -→ Device code authorization -→ Unlimited usage - -Models: - qw/qwen3-coder-plus - qw/qwen3-coder-flash -``` - -### Kiro (Claude FREE) - -```bash -Dashboard → Connect Kiro -→ AWS Builder ID or Google/GitHub -→ Unlimited usage - -Models: - kr/claude-sonnet-4.5 - kr/claude-haiku-4.5 -``` - -</details> - -<details> -<summary><b>🎨 Vytvoriť kombá</b></summary> - -### Príklad 1: Maximalizujte predplatné → Lacné zálohovanie - -``` -Dashboard → Combos → Create New - -Name: premium-coding -Models: - 1. cc/claude-opus-4-6 (Subscription primary) - 2. glm/glm-4.7 (Cheap backup, $0.6/1M) - 3. minimax/MiniMax-M2.1 (Cheapest fallback, $0.20/1M) - -Use in CLI: premium-coding -``` - -### Príklad 2: Iba zadarmo (nulové náklady) - -``` -Name: free-combo -Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) - -Cost: $0 forever! -``` - -</details> - -<details> -<summary><b>🔧 CLI Integration</b></summary> - -### IDE kurzora - -``` -Settings → Models → Advanced: - OpenAI API Base URL: http://localhost:20128/v1 - OpenAI API Key: [from OmniRoute dashboard] - Model: cc/claude-opus-4-6 -``` - -### Claude Code - -Na konfiguráciu jedným kliknutím použite stránku **CLI Tools** na informačnom paneli alebo upravte `~/.claude/settings.json` manuálne. - -### Kódex CLI - -```bash -export OPENAI_BASE_URL="http://localhost:20128" -export OPENAI_API_KEY="your-omniroute-api-key" - -codex "your prompt" -``` - -### OpenClaw - -**Možnosť 1 – Dashboard (odporúčané):** - -``` -Dashboard → CLI Tools → OpenClaw → Select Model → Apply -``` - -**Možnosť 2 – Manuálne:** Upraviť `~/.openclaw/openclaw.json`: - -```json -{ - "models": { - "providers": { - "omniroute": { - "baseUrl": "http://127.0.0.1:20128/v1", - "apiKey": "sk_omniroute", - "api": "openai-completions" - } - } - } -} -``` - -> **Poznámka:** OpenClaw funguje iba s lokálnou OmniRoute. Použite `127.0.0.1` namiesto `localhost`, aby ste sa vyhli problémom s rozlíšením IPv6. - -### Cline / Pokračovať / RooCode - -``` -Settings → API Configuration: - Provider: OpenAI Compatible - Base URL: http://localhost:20128/v1 - API Key: [from OmniRoute dashboard] - Model: if/kimi-k2-thinking -``` - -### OpenCode - -**Krok 1:** Pridajte OmniRoute ako vlastného poskytovateľa: - -```bash -opencode -/connect -# Select "Other" → Enter ID: "omniroute" → Enter your OmniRoute API key -``` - -**Krok 2:** Vytvorte/upravte `opencode.json` v koreňovom adresári projektu: - -```json -{ - "$schema": "https://opencode.ai/config.json", - "provider": { - "omniroute": { - "npm": "@ai-sdk/openai-compatible", - "name": "OmniRoute", - "options": { - "baseURL": "http://localhost:20128/v1" - }, - "models": { - "cc/claude-sonnet-4-20250514": { "name": "Claude Sonnet 4" }, - "gg/gemini-2.5-pro": { "name": "Gemini 2.5 Pro" }, - "if/kimi-k2-thinking": { "name": "Kimi K2 (Free)" } - } - } - } -} -``` - -**Krok 3:** Vyberte model v OpenCode: - -```bash -/models -# Select any OmniRoute model from the list -``` - -> **Tip:** Pridajte akýkoľvek model dostupný vo vašom koncovom bode OmniRoute `/v1/models` do sekcie `models`. Použite formát `provider/model-id` z hlavného panela OmniRoute. - -</details> - ---- - -## 🐛 Riešenie problémov - -<details> -<summary><b>Kliknutím rozbalíte sprievodcu riešením problémov</b></summary> - -**„Jazykový model neposkytol správy“** - -- Kvóta poskytovateľa je vyčerpaná → Skontrolujte sledovanie kvót na paneli -- Riešenie: Použite záložnú kombináciu alebo prejdite na lacnejšiu úroveň - -**Obmedzenie sadzby** - -- Vyčerpaná kvóta predplatného → Návrat na GLM/MiniMax -- Pridať kombináciu: `cc/claude-opus-4-6 → glm/glm-4.7 → if/kimi-k2-thinking` - -**Platnosť tokenu OAuth vypršala** - -- Automaticky obnovuje OmniRoute -- Ak problémy pretrvávajú: Dashboard → Provider → Reconnect - -**Vysoké náklady** - -- Skontrolujte štatistiky používania v hlavnom paneli → Náklady -- Prepnite primárny model na GLM/MiniMax -- Používajte bezplatnú vrstvu (Gemini CLI, Qoder) pre nekritické úlohy - -**Porty palubnej dosky/API sú nesprávne** - -- `PORT` je kanonický základný port (predvolene a port API) -- `API_PORT` prepíše iba poslucháč API kompatibilný s OpenAI -- `DASHBOARD_PORT` prepíše iba informačný panel/prijímač Next.js - – Nastavte `NEXT_PUBLIC_BASE_URL` na svoj informačný panel/verejnú adresu URL (pre spätné volania OAuth) - -**Chyby synchronizácie v cloude** - -- Overte, že `BASE_URL` odkazuje na vašu spustenú inštanciu - – Overte `CLOUD_URL` body k očakávanému koncovému bodu cloudu -- Udržujte hodnoty `NEXT_PUBLIC_*` zarovnané s hodnotami na strane servera - -**Prvé prihlásenie nefunguje** - -- Skontrolujte `INITIAL_PASSWORD` v `.env` - – Ak nie je nastavené, záložné heslo je `123456` - -**Žiadne záznamy žiadostí** - -- Nastaviť `ENABLE_REQUEST_LOGS=true` v `.env` - -**Test pripojenia ukazuje „Neplatné“ pre poskytovateľov kompatibilných s OpenAI** - -- Mnohí poskytovatelia nevystavujú koncový bod `/models` -- OmniRoute v1.0.6+ zahŕňa záložné overenie prostredníctvom dokončenia chatu -- Uistite sa, že základná adresa URL obsahuje príponu `/v1` - -### 🔐 OAuth na vzdialenom serveri - -<a name="oauth-on-a-remote-server"></a> -<a name="oauth-em-servidor-remoto"></a> - -> **⚠️ Dôležité pre používateľov, ktorí používajú OmniRoute na VPS, Docker alebo akomkoľvek vzdialenom serveri** - -#### Prečo Antigravity / Gemini CLI OAuth zlyhá na vzdialených serveroch? - -Poskytovatelia **Antigravity** a **Gemini CLI** používajú **Google OAuth 2.0**. Google vyžaduje, aby sa `redirect_uri` v toku OAuth presne zhodovalo s jedným z vopred zaregistrovaných identifikátorov URI v konzole Google Cloud Console aplikácie. - -Prihlasovacie údaje OAuth v balíku v OmniRoute sú registrované **len pre `localhost`**. Keď pristupujete k OmniRoute na vzdialenom serveri (napr. `https://omniroute.myserver.com`), Google odmietne overenie pomocou: - -``` -Error 400: redirect_uri_mismatch -``` - -#### Riešenie: Nakonfigurujte si vlastné poverenia OAuth - -V konzole Google Cloud Console musíte vytvoriť **OAuth 2.0 Client ID** s identifikátorom URI vášho servera. - -#### Krok za krokom - -**1. Otvoriť Google Cloud Console** - -Prejsť na: [https://console.cloud.google.com/apis/credentials](https://console.cloud.google.com/apis/credentials) - -**2. Vytvorte nové ID klienta OAuth 2.0** - -- Kliknite na **"+ Vytvoriť poverenia"** → **"ID klienta OAuth"** -- Typ aplikácie: **"Webová aplikácia"** -- Názov: čokoľvek, čo sa vám páči (napr. `OmniRoute Remote`) - -**3. Pridať identifikátory URI autorizovaného presmerovania** - -Do poľa **"URI autorizovaného presmerovania"** pridajte: - -``` -https://your-server.com/callback -``` - -> Nahraďte `your-server.com` doménou alebo IP svojho servera (v prípade potreby uveďte port, napr. `http://45.33.32.156:20128/callback`). - -**4. Uložte a skopírujte poverenia** - -Po vytvorení Google zobrazí **Client ID** a **Client Secret**. - -**5. Nastaviť premenné prostredia** - -Vo vašom `.env` (alebo premenných prostredia Docker): - -```bash -# For Antigravity: -ANTIGRAVITY_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com -ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-your-secret - -# For Gemini CLI: -GEMINI_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com -GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -``` - -**6. Reštartujte OmniRoute** - -```bash -# npm: -npm run dev - -# Docker: -docker restart omniroute -``` - -**7. Skúste sa pripojiť znova** - -Dashboard → Poskytovatelia → Antigravitácia (alebo Gemini CLI) → OAuth - -Google teraz správne presmeruje na `https://your-server.com/callback`. - ---- - -#### Dočasné riešenie (bez vlastných poverení) - -Ak si práve teraz nechcete nastaviť svoje vlastné poverenia, stále môžete použiť **manuálny postup webovej adresy**: - -1. OmniRoute otvorí autorizačnú URL Google -2. Po autorizácii sa Google pokúsi presmerovať na `localhost` (čo zlyhá na vzdialenom serveri) -3. **Skopírujte celú adresu URL** z panela s adresou prehliadača (aj keď sa stránka nenačíta) -4. Prilepte túto adresu URL do poľa zobrazeného v režime pripojenia OmniRoute -5. Kliknite na **"Pripojiť"** - -> Funguje to, pretože autorizačný kód v adrese URL je platný bez ohľadu na to, či sa stránka s presmerovaním načítala. - ---- - -<details> -<summary><b>🇧🇷 Versão em Português</b></summary> - -#### Ako je OAuth do Antigravity / Gemini CLI falha em servidores remotos? - -Osvedčuje **Antigravity** a **Gemini CLI** používame **Google OAuth 2.0** ako autentifikáciu. O Google exige que a `redirect_uri` usada no fluxo OAuth saja **exatamente** uma das URI pre-kadastradas no Google Cloud Console to use. - -Ako credenciais OAuth embutidas no OmniRoute estão cadastradas **apenas para `localhost`**. K dispozícii máte prístup k OmniRoute k vzdialenému servisu (napr.: `https://omniroute.meuservidor.com`), alebo k autenticite spoločnosti Google: - -``` -Error 400: redirect_uri_mismatch -``` - -#### Riešenie: Konfigurácia proprias poverenia OAuth - -Presný kód je **OAuth 2.0 Client ID** bez služby Google Cloud Console s identifikátorom URI. - -#### Passo a passo - -**1. Prístup k službe Google Cloud Console** - -Abra: [https://console.cloud.google.com/apis/credentials](https://console.cloud.google.com/apis/credentials) - -**2. Crie um novo OAuth 2.0 Client ID** - -- Kliknite na **"+ Vytvoriť poverenia"** → **"ID klienta OAuth"** -- Tipo de aplicativo: **"Webová aplikácia"** - – Nome: escolha qualquer nome (napr.: `OmniRoute Remote`) - -**3. Adicione ako Authorized Redirect URI** - -Žiadne pole **"URI autorizovaného presmerovania"**, adicione: - -``` -https://seu-servidor.com/callback -``` - -> Substitua `seu-servidor.com` pelo domínio ou IP do seu servidor (inclua a porta se necessário, napr.: `http://45.33.32.156:20128/callback`). - -**4. Uložiť a kópiu ako poverenie** - -Após criar, o Google mostrará o **Client ID** e o **Client Secret**. - -**5. Konfigurovať ako variáveis de ambiente** - -No seu `.env` (ou nas variáveis de ambiente do Docker): - -```bash -# Para Antigravity: -ANTIGRAVITY_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com -ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret - -# Para Gemini CLI: -GEMINI_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com -GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -``` - -**6. Reinicie alebo OmniRoute** - -```bash -# Se usando npm: -npm run dev - -# Se usando Docker: -docker restart omniroute -``` - -**7. Tente conectar novamente** - -Dashboard → Poskytovatelia → Antigravitácia (alebo Gemini CLI) → OAuth - -Agora alebo Google redirecionará corretamente para `https://seu-servidor.com/callback` a autenticação funcionará. - ---- - -#### Alternatívne dočasné riešenie (sem configurar credenciais próprias) - -Ak chcete získať prístup k dôvere, môžete použiť **príručku URL**: - -1. O OmniRoute abrirá a URL autorização Google -2. Após você autorizar, o Google tentará redirecionar para `localhost` (que falha no servidor remoto) -3. **Skopírujte úplnú webovú adresu** da barra de endereço do seu browser (mesmo que a pagina não carregue) -4. Cole essa URL no campo que aparece no modal de conexão do OmniRoute -5. Kliknite na **"Pripojiť"** - -> Toto riešenie funguje pomocou autorizačného kódu na adrese URL a nezávislého presmerovania. - -</details> - ---- - -</details> - -## 🛠️ Tech Stack - -<details> -<summary><b>Kliknutím rozbalíte podrobnosti o technickom zásobníku</b></summary> - -- **Runtime**: Node.js 18–22 LTS (⚠️ Node.js 24+ nie je **podporovaný** — `better-sqlite3` natívne binárne súbory sú nekompatibilné) -- **Jazyk**: TypeScript 5.9 — **100 % TypeScript** naprieč `src/` a `open-sse/` (nula `any` v základných moduloch od verzie 2.0) - – **Framework**: Next.js 16 + React 19 + Tailwind CSS 4 -- **Databáza**: LowDB (JSON) + SQLite (stav domény + protokoly proxy + audit MCP + rozhodnutia o smerovaní) -- **Schémy**: Zod (overenie I/O nástroja MCP, zmluvy API) -- **Protokoly**: MCP (stdio/HTTP) + A2A v0.3 (JSON-RPC 2.0 + SSE) -- **Streamovanie**: Server-Sent Events (SSE) -- **Auth**: OAuth 2.0 (PKCE) + JWT + kľúče API + autorizácia v rozsahu MCP -- **Testovanie**: Testovací program Node.js + Vitest (900+ testov vrátane jednotky, integrácie, E2E) -- **CI/CD**: Akcie GitHub (automatické zverejňovanie npm + Docker Hub pri vydaní) -- **Web**: [omniroute.online](https://omniroute.online) -- **Balík**: [npmjs.com/package/omniroute](https://www.npmjs.com/package/omniroute) -- **Docker**: [hub.docker.com/r/diegosouzapw/omniroute](https://hub.docker.com/r/diegosouzapw/omniroute) -- **Odolnosť**: Istič, exponenciálne ustupovanie, stádo proti hromu, spoofing TLS, auto-kombinované samoliečenie - -</details> - ---- - -## 📖 Dokumentácia - -| Dokument | Popis | -| ---------------------------------------------- | -------------------------------------------------------------- | -| [User Guide](docs/USER_GUIDE.md) | Poskytovatelia, kombá, integrácia CLI, nasadenie | -| [API Reference](docs/API_REFERENCE.md) | Všetky koncové body s príkladmi | -| [MCP Server](open-sse/mcp-server/README.md) | 16 nástrojov MCP, konfigurácií IDE, klientov Python/TS/Go | -| [A2A Server](src/lib/a2a/README.md) | Protokol JSON-RPC 2.0, zručnosti, streamovanie, správa úloh | -| [Auto-Combo Engine](docs/auto-combo.md) | 6-faktorové bodovanie, balíčky režimov, samoliečba | -| [Troubleshooting](docs/TROUBLESHOOTING.md) | Bežné problémy a riešenia | -| [Architecture](docs/ARCHITECTURE.md) | Architektúra systému a vnútorné vybavenie | -| [Contributing](CONTRIBUTING.md) | Nastavenie vývoja a usmernenia | -| [OpenAPI Spec](docs/openapi.yaml) | Špecifikácia OpenAPI 3.0 | -| [Security Policy](SECURITY.md) | Nahlasovanie zraniteľnosti a bezpečnostné postupy | -| [VM Deployment](docs/VM_DEPLOYMENT_GUIDE.md) | Kompletný sprievodca: nastavenie VM + nginx + Cloudflare | -| [Features Gallery](docs/FEATURES.md) | Vizuálna prehliadka prístrojového panela so snímkami obrazovky | -| [Release Checklist](docs/RELEASE_CHECKLIST.md) | Kroky overenia pred vydaním | - ---- - -## 🗺️ Cestovná mapa - -OmniRoute má naplánovaných **210+ funkcií** vo viacerých fázach vývoja. Tu sú kľúčové oblasti: - -| Kategória | Plánované funkcie | Najdôležitejšie | -| ------------------------------------------ | ----------------- | ------------------------------------------------------------------------------------------------------------------- | -| 🧠 **Smerovanie a inteligencia** | 25+ | Smerovanie s najnižšou latenciou, smerovanie založené na značkách, predbežná kontrola kvóty, výber účtu P2C | -| 🔒 **Bezpečnosť a dodržiavanie predpisov** | 20+ | Spevnenie SSRF, maskovanie poverení, limit rýchlosti na koncový bod, rozsah kľúča riadenia | -| 📊 **Pozorovateľnosť** | 15+ | Integrácia OpenTelemetry, monitorovanie kvót v reálnom čase, sledovanie nákladov na model | -| 🔄 **Integrácie poskytovateľov** | 20+ | Register dynamických modelov, cooldowny poskytovateľov, kódex pre viacero účtov, analýza kvót Copilota | -| ⚡ **Výkon** | 15+ | Dual cache layer, prompt cache, response cache, streaming keepalive, batch API | -| 🌐 **Ekosystém** | 10+ | WebSocket API, rýchle opätovné načítanie konfigurácie, distribuovaný ukladací priestor konfigurácií, komerčný režim | - -### 🔜 Už čoskoro - -- 🔗 **Integrácia OpenCode** – podpora natívneho poskytovateľa pre IDE kódovania OpenCode AI -- 🔗 **Integrácia TRAE** – Úplná podpora vývojového rámca TRAE AI -- 📦 **Batch API** – Asynchrónne dávkové spracovanie pre hromadné požiadavky -- 🎯 ** Smerovanie založené na značkách** – Smerujte požiadavky na základe vlastných značiek a metadát -- 💰 **Stratégia najnižšej ceny** — Automaticky vyberte najlacnejšieho dostupného poskytovateľa - -> 📝 Úplné špecifikácie funkcií sú k dispozícii v [**OMNI_TOKEN_342**](docs/new-features/) (217 podrobných špecifikácií) - ---- - -## 👥 Prispievatelia - -[![Contributors](https://contrib.rocks/image?repo=diegosouzapw/OmniRoute&max=100&columns=20&anon=1)](https://github.com/diegosouzapw/OmniRoute/graphs/contributors) - -### Ako prispieť - -1. Fork úložisko -2. Vytvorte si pobočku funkcií (`git checkout -b feature/amazing-feature`) -3. Potvrďte zmeny (`git commit -m 'Add amazing feature'`) -4. Zatlačte do pobočky (`git push origin feature/amazing-feature`) -5. Otvorte požiadavku na stiahnutie - -Podrobné pokyny nájdete v [CONTRIBUTING.md](CONTRIBUTING.md). - -### Vydanie novej verzie - -```bash -# Create a release — npm publish happens automatically -gh release create v2.0.0 --title "v2.0.0" --generate-notes -``` - ---- - -## 📊 História hviezd - -## Pozorovatelia hviezd v priebehu času - -## [![Stargazers over time](https://starchart.cc/diegosouzapw/OmniRoute.svg?variant=adaptive)](https://starchart.cc/diegosouzapw/OmniRoute) - -## 🙏 Poďakovanie - -Špeciálne poďakovanie patrí **[9router](https://github.com/decolua/9router)** od **[decolua](https://github.com/decolua)** – pôvodnému projektu, ktorý inšpiroval túto vidličku. OmniRoute stavia na tomto neuveriteľnom základe s ďalšími funkciami, multimodálnymi API a úplným prepísaním TypeScript. - -Špeciálne poďakovanie patrí **[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)** – pôvodnej implementácii Go, ktorá inšpirovala tento port JavaScript. - ---- - -## 📄 Licencia - -Licencia MIT – podrobnosti nájdete na stránke [LICENSE](LICENSE). - ---- - -<div align="center"> - <sub>Vytvorené pomocou ❤️ pre vývojárov, ktorí kódujú 24/7</sub> - <br/> - <sub><a href="https://omniroute.online">omniroute.online</a></sub> -</div> -<!-- Diskusie GitHub sú povolené pre otázky a odpovede komunity --> +👉 **[Read the Documentation here](docs/i18n/sk/README.md)** diff --git a/README.sv.md b/README.sv.md index eff587ded3..2194e80227 100644 --- a/README.sv.md +++ b/README.sv.md @@ -1,2077 +1,5 @@ -# 🚀 OmniRoute — Den kostnadsfria AI-gatewayen +# 🌐 OmniRoute (sv) -### Sluta aldrig koda. Smart routing till **GRATIS & lågkostnads ​​AI-modeller** med automatisk reserv. +The documentation has been formalized and moved to our centralized i18n structure. -_Din universella API-proxy — en slutpunkt, 67+ leverantörer, noll driftstopp. Nu med **MCP & A2A** agentorkestrering._ - -**Slutförda chatt • Inbäddningar • Bildgenerering • Video • Musik • Ljud • Omrankning • **Webbsökning** • MCP-server • A2A-protokoll • 100 % TypeScript** - ---- - -<div align="center"> - -[![npm version](https://img.shields.io/npm/v/omniroute?color=cb3837&logo=npm)](https://www.npmjs.com/package/omniroute) -[![npm downloads](https://img.shields.io/npm/dm/omniroute?color=cb3837&logo=npm&label=npm%20downloads)](https://www.npmjs.com/package/omniroute) -[![Docker Hub](https://img.shields.io/docker/v/diegosouzapw/omniroute?label=Docker%20Hub&logo=docker&color=2496ED)](https://hub.docker.com/r/diegosouzapw/omniroute) -[![Docker Pulls](https://img.shields.io/docker/pulls/diegosouzapw/omniroute?logo=docker&color=2496ED&label=docker%20pulls)](https://hub.docker.com/r/diegosouzapw/omniroute) -[![License](https://img.shields.io/github/license/diegosouzapw/OmniRoute)](https://github.com/diegosouzapw/OmniRoute/blob/main/LICENSE) -[![Website](https://img.shields.io/badge/Website-omniroute.online-blue?logo=google-chrome&logoColor=white)](https://omniroute.online) -[![WhatsApp](https://img.shields.io/badge/WhatsApp-Community-25D366?logo=whatsapp&logoColor=white)](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) - -[🌐 Website](https://omniroute.online) • [🚀 Quick Start](#-quick-start) • [💡 Features](#-key-features) • [📖 Docs](#-documentation) • [💰 Pricing](#-pricing-at-a-glance) • [💬 WhatsApp](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) - -</div> - -🌐 **Tillgänglig i:** 🇺🇸 [English](README.md) | 🇧🇷 [Português (Brasil)](docs/i18n/pt-BR/README.md) | 🇪🇸 [Español](docs/i18n/es/README.md) | 🇫🇷 [Français](docs/i18n/fr/README.md) | 🇮🇹 [Italiano](docs/i18n/it/README.md) | 🇷🇺 [Русский](docs/i18n/ru/README.md) | 🇨🇳 [中文 (简体)](docs/i18n/zh-CN/README.md) | 🇩🇪 [Deutsch](docs/i18n/de/README.md) | 🇮🇳 [हिन्दी](docs/i18n/in/README.md) | 🇹🇭 [ไทย](docs/i18n/th/README.md) | 🇺🇦 [Українська](docs/i18n/uk-UA/README.md) | 🇸🇦 [العربية](docs/i18n/ar/README.md) | 🇯🇵 [日本語](docs/i18n/ja/README.md) | 🇻🇳 [Tiếng Việt](docs/i18n/vi/README.md) | 🇧🇬 [Български](docs/i18n/bg/README.md) | 🇩🇰 [Dansk](docs/i18n/da/README.md) | 🇫🇮 [Suomi](docs/i18n/fi/README.md) | 🇮🇱 [עברית](docs/i18n/he/README.md) | 🇭🇺 [Magyar](docs/i18n/hu/README.md) | 🇮🇩 [Bahasa Indonesia](docs/i18n/id/README.md) | 🇰🇷 [한국어](docs/i18n/ko/README.md) | 🇲🇾 [Bahasa Melayu](docs/i18n/ms/README.md) | 🇳🇱 [Nederlands](docs/i18n/nl/README.md) | 🇳🇴 [Norsk](docs/i18n/no/README.md) | 🇵🇹 [Português (Portugal)](docs/i18n/pt/README.md) | 🇷🇴 [Română](docs/i18n/ro/README.md) | 🇵🇱 [Polski](docs/i18n/pl/README.md) | 🇸🇰 [Slovenčina](docs/i18n/sk/README.md) | 🇸🇪 [Svenska](docs/i18n/sv/README.md) | 🇵🇭 [Filipino](docs/i18n/phi/README.md) | 🇨🇿 [Čeština](docs/i18n/cs/README.md) - ---- - -## 🆕 Vad är nytt i v3.0.0 - -> **Uppgraderar du från v2.9.5?** — Se [full CHANGELOG](CHANGELOG.md#300--2026-03-22-release-candidate--not-yet-merged-to-main) för alla ändringar. - -| Område | Ändra | -| ---------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 🔒 **CodeQL Security** | Fixade 10+ CodeQL-varningar: polynom-redos, insecure-randomness, shell-injection remediation | -| ✅ **Ruttvalidering** | Alla 176 API-rutter nu validerade med Zod-scheman + `validateBody()` — CI `check:route-validation:t06` pass | -| 🐛 **omniModel Tag Leak** | Interna `<omniModel>`-taggar läcker inte längre till klienter i SSE-strömningssvar (#585) | -| 🔑 **Registered Keys API** | Autoprovision API-nycklar via `POST /api/v1/registered-keys` med kvotupprätthållande per leverantör/konto, idempotens, SHA-256-lagring och valfri GitHub-problemrapportering | -| 🎨 **Providerikoner** | 130+ leverantörslogotyper via `@lobehub/icons` (SVG) med PNG → generisk reservkedja | -| 🔄 **Modell Auto-Sync** | 24-timmars schemaläggare och manuellt användargränssnitt för att synkronisera modelllistor för inbyggda och anpassade OpenAI-kompatibla leverantörer | -| 🌐 **OpenCode Zen/Go** | Två nya leverantörer från @kang-heewon via PR #530: gratis nivå + prenumerationsnivå via `OpencodeExecutor` | -| 🐛 **Gemini CLI OAuth** | Åtgärdsfel när `GEMINI_OAUTH_CLIENT_SECRET` saknas i Docker (var ett kryptiskt Google-fel) | -| 🐛 **OpenCode config** | `saveOpenCodeConfig()` skriver nu TOML korrekt till `XDG_CONFIG_HOME` | -| 🐛 **Åsidosatt modell av fästad modell** | `body.model` korrekt inställd på `pinnedModel` på skydd av kontextcache | -| 🐛 **Codex/Claude loop** | `tool_result` block nu konverterade till text för att stoppa oändliga loopar | -| 🐛 **Omdirigering av inloggning** | Inloggningen låser sig inte längre efter att ha hoppat över lösenordsinställningar | -| 🐛 **Fönstervägar** | MSYS2/Git-Bash-sökvägar (`/c/...`) normaliserade till `C:\...` automatiskt | - ---- - -## 🖼️ Huvudinstrumentpanel - -<div align="center"> - <img src="./docs/screenshots/MainOmniRoute.png" alt="OmniRoute Dashboard" width="800"/> -</div> - ---- - -## 📸 Förhandsgranskning av instrumentpanelen - -<details> -<summary><b>Klicka för att se skärmdumpar på instrumentpanelen</b></summary> - -| Sida | Skärmdump | -| --------------------- | ------------------------------------------------- | -| **Leverantörer** | ![Providers](docs/screenshots/01-providers.png) | -| **Kombos** | ![Combos](docs/screenshots/02-combos.png) | -| **Analytics** | ![Analytics](docs/screenshots/03-analytics.png) | -| **Hälsa** | ![Health](docs/screenshots/04-health.png) | -| **Översättare** | ![Translator](docs/screenshots/05-translator.png) | -| **Inställningar** | ![Settings](docs/screenshots/06-settings.png) | -| **CLI-verktyg** | ![CLI Tools](docs/screenshots/07-cli-tools.png) | -| **Användningsloggar** | ![Usage](docs/screenshots/08-usage.png) | -| **Slutpunkter** | ![Endpoints](docs/screenshots/09-endpoint.png) | - -</details> - ---- - -### 🤖 Gratis AI-leverantör för dina favoritkodningsagenter - -_Anslut alla AI-drivna IDE- eller CLI-verktyg via OmniRoute — gratis API-gateway för obegränsad kodning._ - - <table> - <tr> - <td align="center" width="110"> - <a href="https://github.com/openclaw/openclaw"> - <img src="./public/providers/openclaw.png" alt="OpenClaw" width="48"/><br/> - <b>OpenClaw</b> - </a><br/> - <sub>⭐ 205K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/HKUDS/nanobot"> - <img src="./public/providers/nanobot.png" alt="NanoBot" width="48"/><br/> - <b>NanoBot</b> - </a><br/> - <sub>⭐ 20.9K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/sipeed/picoclaw"> - <img src="./public/providers/picoclaw.jpg" alt="PicoClaw" width="48"/><br/> - <b>PicoClaw</b> - </a><br/> - <sub>⭐ 14.6K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/zeroclaw-labs/zeroclaw"> - <img src="./public/providers/zeroclaw.png" alt="ZeroClaw" width="48"/><br/> - <b>ZeroClaw</b> - </a><br/> - <sub>⭐ 9.9K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/nearai/ironclaw"> - <img src="./public/providers/ironclaw.png" alt="IronClaw" width="48"/><br/> - <b>IronClaw</b> - </a><br/> - <sub>⭐ 2.1K</sub> - </td> - </tr> - <tr> - <td align="center" width="110"> - <a href="https://github.com/anomalyco/opencode"> - <img src="./public/providers/opencode.svg" alt="OpenCode" width="48"/><br/> - <b>OpenCode</b> - </a><br/> - <sub>⭐ 106K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/openai/codex"> - <img src="./public/providers/codex.png" alt="Codex CLI" width="48"/><br/> - <b>Codex CLI</b> - </a><br/> - <sub>⭐ 60.8K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/anthropics/claude-code"> - <img src="./public/providers/claude.png" alt="Claude Code" width="48"/><br/> - <b>Claude Code</b> - </a><br/> - <sub>⭐ 67.3K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/google-gemini/gemini-cli"> - <img src="./public/providers/gemini-cli.png" alt="Gemini CLI" width="48"/><br/> - <b>Gemini CLI</b> - </a><br/> - <sub>⭐ 94.7K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/Kilo-Org/kilocode"> - <img src="./public/providers/kilocode.png" alt="Kilo Code" width="48"/><br/> - <b>Kilo Code</b> - </a><br/> - <sub>⭐ 15.5K</sub> - </td> - </tr> - </table> - -<sub>📡 Alla agenter ansluter via <code>http://localhost:20128/v1</code> eller <code>http://cloud.omniroute.online/v1__OMNI_TOKEN_466, — unlimited one config kvot</sub> - ---- - -## 🤔 Varför OmniRoute? - -**Sluta slösa pengar och nå gränser:** - -- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Prenumerationskvoten löper ut oanvänd varje månad -- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Prisgränser stoppar dig mellankodning -- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Dyra API:er ($20-50/månad per leverantör) -- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Manuellt byte mellan leverantörer - -**OmniRoute löser detta:** - -- ✅ **Maximera prenumerationer** - Spåra kvot, använd varje bit innan återställning -- ✅ **Automatisk reserv** - Prenumeration → API-nyckel → Billigt → Gratis, noll driftstopp -- ✅ **Multi-konto** - Round-robin mellan konton per leverantör -- ✅ **Universal** - Fungerar med Claude Code, Codex, Gemini CLI, Cursor, Cline, OpenClaw, vilket CLI-verktyg som helst - ---- - -## 📧 Support - -> 💬 **Gå med i vår community!** [WhatsApp Group](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) — Få hjälp, dela tips och håll dig uppdaterad. - -- **Webbplats**: [omniroute.online](https://omniroute.online) -- **GitHub**: [github.com/diegosouzapw/OmniRoute](https://github.com/diegosouzapw/OmniRoute) -- **Frågor**: [github.com/diegosouzapw/OmniRoute/issues](https://github.com/diegosouzapw/OmniRoute/issues) -- **WhatsApp**: [Community Group](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) -- **Bidrar**: Se [CONTRIBUTING.md](CONTRIBUTING.md), öppna en PR eller välj en `good first issue` -- **Originalprojekt**: [9router by decolua](https://github.com/decolua/9router) - -### 🐛 Rapportera en bugg? - -När du öppnar ett problem, kör kommandot system-info och bifoga den genererade filen: - -```bash -npm run system-info -``` - -Detta genererar en `system-info.txt` med din Node.js-version, OmniRoute-version, OS-detaljer, installerade CLI-verktyg (qoder, gemini, claude, codex, antigravity, droid, etc.), Docker/PM2-status och systempaket – allt vi behöver för att snabbt återskapa ditt problem. Bifoga filen direkt till ditt GitHub-problem. - ---- - -## 🔄 Hur det fungerar - -``` -┌─────────────┐ -│ Your CLI │ (Claude Code, Codex, Gemini CLI, OpenClaw, Cursor, Cline...) -│ Tool │ -└──────┬──────┘ - │ http://localhost:20128/v1 - ↓ -┌─────────────────────────────────────────┐ -│ OmniRoute (Smart Router) │ -│ • Format translation (OpenAI ↔ Claude) │ -│ • Quota tracking + Embeddings + Images │ -│ • Auto token refresh │ -└──────┬──────────────────────────────────┘ - │ - ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex, Gemini CLI - │ ↓ quota exhausted - ├─→ [Tier 2: API KEY] DeepSeek, Groq, xAI, Mistral, NVIDIA NIM, etc. - │ ↓ budget limit - ├─→ [Tier 3: CHEAP] GLM ($0.6/1M), MiniMax ($0.2/1M) - │ ↓ budget limit - └─→ [Tier 4: FREE] Qoder, Qwen, Kiro (unlimited) - -Result: Never stop coding, minimal cost -``` - ---- - -## 🎯 Vad OmniRoute löser — 30 verkliga smärtpunkter och användningsfall - -> **Varje utvecklare som använder AI-verktyg möter dessa problem dagligen.** OmniRoute byggdes för att lösa dem alla — från kostnadsöverskridanden till regionala block, från trasiga OAuth-flöden till protokolloperationer och observerbarhet i företag. - -<details> -<summary><b>💸 1. "Jag betalar för ett dyrt abonnemang men blir ändå avbruten av limits"</b></summary> - -Utvecklare betalar $20–200/månad för Claude Pro, Codex Pro eller GitHub Copilot. Även om du betalar har kvoten ett tak - 5 timmars användning, veckogränser eller gränser per minut. Mid-coding session, leverantören slutar svara och utvecklaren tappar flöde och produktivitet. - -**Hur OmniRoute löser det:** - -- **Smart 4-lagers fallback** — Om prenumerationskvoten tar slut, omdirigeras automatiskt till API-nyckel → Billigt → Gratis med noll manuellt ingrepp -- **Kvotspårning i realtid** — Visar tokenförbrukning i realtid med återställningsnedräkning (5 timmar, dagligen, veckovis) -- **Multi-Account Support** — Flera konton per leverantör med automatisk round-robin — när ett tar slut, byter du till nästa -- **Anpassade kombinationer** — Anpassningsbara reservkedjor med 6 balanseringsstrategier (fill-first, round-robin, P2C, slumpmässig, minst använda, kostnadsoptimerad) -- **Codex Business Quotas** — Övervakning av företags-/teamarbetsutrymmeskvoter direkt i instrumentpanelen - -</details> - -<details> -<summary><b>🔌 2. "Jag måste använda flera leverantörer men alla har olika API"</b></summary> - -OpenAI använder ett format, Claude (Anthropic) använder ett annat, Gemini ännu ett annat. Om en utvecklare vill testa modeller från olika leverantörer eller fallback mellan dem måste de konfigurera om SDK:er, ändra slutpunkter, hantera inkompatibla format. Anpassade leverantörer (FriendLI, NIM) har icke-standardiserade modellslutpunkter. - -**Hur OmniRoute löser det:** - -- **Unified Endpoint** — En enda `http://localhost:20128/v1` fungerar som proxy för alla 67+ leverantörer -- **Formatöversättning** — Automatisk och transparent: OpenAI ↔ Claude ↔ Gemini ↔ Responses API -- **Responssanering** — Tar bort icke-standardiserade fält (`x_groq`, `usage_breakdown`, `service_tier`) som bryter OpenAI SDK v1.83+ -- **Rollnormalisering** — Konverterar `developer` → `system` för icke-OpenAI-leverantörer; `system` → `user` för GLM/ERNIE -- **Think Tag Extraction** — Extraherar `<think>`-block från modeller som DeepSeek R1 till standardiserade `reasoning_content` -- **Structured Output for Gemini** — `json_schema` → `responseMimeType`/`responseSchema` automatisk konvertering -- **`stream` är standard till `false`** - Justerar med OpenAI-specifikationen, undviker oväntad SSE i Python/Rust/Go SDK:er - -</details> - -<details> -<summary><b>🌐 3. "Min AI-leverantör blockerar min region/land"</b></summary> - -Leverantörer som OpenAI/Codex blockerar åtkomst från vissa geografiska regioner. Användare får fel som `unsupported_country_region_territory` under OAuth- och API-anslutningar. Detta är särskilt frustrerande för utvecklare från utvecklingsländer. - -**Hur OmniRoute löser det:** - -- **3-Level Proxy Config** — Konfigurerbar proxy på 3 nivåer: global (all trafik), per leverantör (endast en leverantör) och per anslutning/nyckel -- **Färgkodade proxymärken** — Visuella indikatorer: 🟢 global proxy, 🟡 leverantörsproxy, 🔵 anslutningsproxy, visar alltid IP:n -- **OAuth Token Exchange Through Proxy** — OAuth-flödet går också genom proxyn och löser `unsupported_country_region_territory` -- **Anslutningstester via proxy** — Anslutningstester använder den konfigurerade proxyn (ingen mer direkt förbikoppling) -- **SOCKS5-stöd** — Fullständigt SOCKS5-proxystöd för utgående routing -- **TLS Fingerprint Spoofing** — Webbläsarliknande TLS-fingeravtryck via `wreq-js` för att kringgå botdetektering -- **🔏 CLI Fingerprint Matching** — Ordnar om rubriker och kroppsfält för att matcha inbyggda CLI-binära signaturer, vilket drastiskt minskar risken för kontoflaggning. Proxy-IP:n bevaras – du får både smyg **och** IP-maskering samtidigt - -</details> - -<details> -<summary><b>🆓 4. "Jag vill använda AI för kodning men jag har inga pengar"</b></summary> - -Alla kan inte betala $20–200/månad för AI-prenumerationer. Studenter, utvecklare från tillväxtländer, hobbyister och frilansare behöver tillgång till kvalitetsmodeller utan kostnad. - -**Hur OmniRoute löser det:** - -- **Gratis leverantörer inbyggda** — Inbyggt stöd för 100 % gratis leverantörer: Qoder (5 obegränsade modeller via OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen: 4 unlimited-modeller,-r qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID gratis), Gemini CLI (180K tokens/månad gratis) -- **Ollama Cloud** — Molnvärdade Ollama-modeller på `api.ollama.com` med gratis nivå "Lätt användning"; använd `ollamacloud/<model>` prefix -- **Free-Only Combos** — Chain `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/månad utan stilleståndstid -- **NVIDIA NIM fri tillgång** — ~40 RPM dev-för evigt fri tillgång till 70+ modeller på build.nvidia.com (övergång från krediter till rena hastighetsgränser) -- **Kostnadsoptimerad strategi** — Routingstrategi som automatiskt väljer den billigaste tillgängliga leverantören - -</details> - -<details> -<summary><b>🔒 5. "Jag behöver skydda min AI-gateway från obehörig åtkomst"</b></summary> - -När du exponerar en AI-gateway för nätverket (LAN, VPS, Docker) kan vem som helst med adressen konsumera utvecklarens tokens/kvot. Utan skydd är API:er sårbara för missbruk, snabb injektion och missbruk. - -**Hur OmniRoute löser det:** - -- **API Key Management** — Generering, rotation och omfattning per leverantör med en dedikerad `/dashboard/api-manager` sida -- **Behörigheter på modellnivå** — Begränsa API-nycklar till specifika modeller (`openai/*`, jokerteckenmönster), med växlingen Tillåt alla/Begränsa -- **API Endpoint Protection** — Kräv en nyckel för `/v1/models` och blockera specifika leverantörer från listan -- **Auth Guard + CSRF-skydd** — Alla instrumentpanelsrutter skyddade med `withAuth` middleware + CSRF-tokens -- **Rate Limiter** — Per-IP-hastighetsbegränsning med konfigurerbara fönster -- **IP-filtrering** — Tillåtelselista/blockeringslista för åtkomstkontroll -- **Prompt Injection Guard** — Sanering mot skadliga promptmönster -- **AES-256-GCM-kryptering** — Autentiseringsuppgifter krypterade i vila - -</details> - -<details> -<summary><b>🛑 6. "Min leverantör gick ner och jag tappade mitt kodningsflöde"</b></summary> - -AI-leverantörer kan bli instabila, returnera 5xx-fel eller nå tillfälliga hastighetsgränser. Om en utvecklare är beroende av en enskild leverantör avbryts de. Utan strömbrytare kan upprepade försök krascha programmet. - -**Hur OmniRoute löser det:** - -- **Circuit Breaker per modell** — Autoöppning/stängning med konfigurerbara trösklar och nedkylning (stängd/öppen/halvöppen), omfattning per modell för att undvika kaskadblock -- **Exponentiell backoff** — Progressiva fördröjningar igen -- **Anti-Thundering Herd** — Mutex + semaforskydd mot samtidiga stormar igen -- **Combo reservkedjor** — Om den primära leverantören misslyckas, faller den automatiskt genom kedjan utan ingrepp -- **Combo Circuit Breaker** - Inaktiverar automatiskt felande leverantörer inom en kombinationskedja -- **Health Dashboard** — Drifttidsövervakning, strömbrytartillstånd, låsningar, cachestatistik, p50/p95/p99 latens - -</details> - -<details> -<summary><b>🔧 7. "Att konfigurera varje AI-verktyg är tråkigt och repetitivt"</b></summary> - -Utvecklare använder Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code... Varje verktyg behöver en annan konfiguration (API-slutpunkt, nyckel, modell). Att konfigurera om när man byter leverantör eller modell är ett slöseri med tid. - -**Hur OmniRoute löser det:** - -- **CLI Tools Dashboard** — Dedikerad sida med ett-klicksinställningar för Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline -- **GitHub Copilot Config Generator** — Genererar `chatLanguageModels.json` för VS-kod med bulkmodellval -- **Onboarding Wizard** — Guidad 4-stegs installation för förstagångsanvändare -- **En slutpunkt, alla modeller** — Konfigurera `http://localhost:20128/v1` en gång, få tillgång till 67+ leverantörer - -</details> - -<details> -<summary><b>🔑 8. "Hantera OAuth-tokens från flera leverantörer är ett helvete"</b></summary> - -Claude Code, Codex, Gemini CLI, Copilot — alla använder OAuth 2.0 med utgående tokens. Utvecklare måste autentisera på nytt hela tiden, ta itu med `client_secret is missing`, `redirect_uri_mismatch` och fel på fjärrservrar. OAuth på LAN/VPS är särskilt problematiskt. - -**Hur OmniRoute löser det:** - -- **Automatisk uppdatering av token** — OAuth-tokens uppdateras i bakgrunden innan de löper ut -- **OAuth 2.0 (PKCE) Inbyggd** — Automatiskt flöde för Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder -- **Multi-Account OAuth** — Flera konton per leverantör via JWT/ID-tokenextraktion -- **OAuth LAN/Remote Fix** — Privat IP-detektering för `redirect_uri` + manuellt URL-läge för fjärrservrar -- **OAuth Behind Nginx** — Använder `window.location.origin` för omvänd proxykompatibilitet -- **Remote OAuth Guide** — Steg-för-steg-guide för Google Cloud-uppgifter på VPS/Docker - -</details> - -<details> -<summary><b>📊 9. "Jag vet inte hur mycket jag spenderar eller var"</b></summary> - -Utvecklare använder flera betalleverantörer men har ingen enhetlig syn på utgifter. Varje leverantör har sin egen faktureringspanel, men det finns ingen konsoliderad vy. Oväntade kostnader kan hopa sig. - -**Hur OmniRoute löser det:** - -- **Kostnadsanalysinstrumentpanel** — Kostnadsspårning per token och budgethantering per leverantör -- **Budgetgränser per nivå** — Utgiftstak per nivå som utlöser automatisk reserv -- **Priskonfiguration per modell** — Konfigurerbara priser per modell -- **Användningsstatistik per API-nyckel** — Antal förfrågningar och senast använda tidsstämpel per nyckel -- **Analytics Dashboard** — Statistikkort, modellanvändningsdiagram, leverantörstabell med framgångsfrekvens och latens - -</details> - -<details> -<summary><b>🐛 10. "Jag kan inte diagnostisera fel och problem i AI-samtal"</b></summary> - -När ett samtal misslyckas vet inte utvecklaren om det var en hastighetsgräns, utgången token, fel format eller leverantörsfel. Fragmenterade loggar över olika terminaler. Utan observerbarhet är felsökning att trial-and-error. - -**Hur OmniRoute löser det:** - -- **Unified Logs Dashboard** — 4 flikar: Request Logs, Proxy Logs, Audit Logs, Console -- **Console Log Viewer** — Viewer i realtid i terminalstil med färgkodade nivåer, automatisk rullning, sökning, filtrering -- **SQLite Proxy-loggar** — Beständiga loggar som överlever serverstarter -- **Translator Playground** — 4 felsökningslägen: Playground (formatöversättning), Chat Tester (tur och retur), Testbänk (batch), Live Monitor (realtid) -- **Request Telemetri** — p50/p95/p99 latens + X-Request-Id-spårning -- **Filbaserad loggning med rotation** — Konsolinterceptor fångar allt till JSON-logg med storleksbaserad rotation -- **Systeminforapport** — `npm run system-info` genererar `system-info.txt` med din fullständiga miljö (nodversion, OmniRoute-version, OS, CLI-verktyg, Docker/PM2-status). Bifoga den när du rapporterar problem för omedelbar triage. - -</details> - -<details> -<summary><b>🏗️ 11. "Det är komplext att distribuera och underhålla gatewayen"</b></summary> - -Att installera, konfigurera och underhålla en AI-proxy i olika miljöer (lokalt, VPS, Docker, moln) är arbetskrävande. Problem som hårdkodade sökvägar, `EACCES` på kataloger, portkonflikter och plattformsoberoende konstruktioner skapar friktion. - -**Hur OmniRoute löser det:** - -- **npm global installation** — `npm install -g omniroute && omniroute` — klar -- **Docker Multi-Platform** — AMD64 + ARM64 inbyggt (Apple Silicon, AWS Graviton, Raspberry Pi) -- **Docker Compose Profiles** — `base` (inga CLI-verktyg) och `cli` (med Claude Code, Codex, OpenClaw) -- **Electron Desktop App** — Inbyggd app för Windows/macOS/Linux med systemfältet, autostart, offlineläge -- **Split-Port Mode** — API och Dashboard på separata portar för avancerade scenarier (omvänd proxy, containernätverk) -- **Cloud Sync** — Konfigurera synkronisering mellan enheter via Cloudflare Workers -- **DB-säkerhetskopior** — Automatisk säkerhetskopiering, återställning, export och import av alla inställningar - -</details> - -<details> -<summary><b>🌍 12. "Gränssnittet är endast engelska och mitt team talar inte engelska"</b></summary> - -Lag i icke-engelsktalande länder, särskilt i Latinamerika, Asien och Europa, kämpar med enbart engelska gränssnitt. Språkbarriärer minskar användningen och ökar konfigurationsfelen. - -**Hur OmniRoute löser det:** - -- **Dashboard i18n — 30 språk** — Alla 500+ nycklar översatta inklusive arabiska, bulgariska, danska, tyska, spanska, finska, franska, hebreiska, hindi, ungerska, indonesiska, italienska, japanska, koreanska, malaysiska, holländska, norska, polska, portugisiska (PT/BR), rumänska, ryska, thailändska, ukrainska, ukrainska, kinesiska, engelska, ukrainska, vietnamesiska, kinesiska, ukrainska, vietnamesiska, ukrainska, svenska -- **RTL-stöd** — Höger-till-vänster-stöd för arabiska och hebreiska -- **Multi-Language READMEs** — 30 fullständiga dokumentationsöversättningar -- **Språkväljare** — Globikon i rubriken för växling i realtid - -</details> - -<details> -<summary><b>🔄 13. "Jag behöver mer än chatt — jag behöver inbäddningar, bilder, ljud"</b></summary> - -AI är inte bara att slutföra chatt. Utvecklare måste generera bilder, transkribera ljud, skapa inbäddningar för RAG, ranka om dokument och moderera innehåll. Varje API har olika slutpunkt och format. - -**Hur OmniRoute löser det:** - -- **Inbäddningar** — `/v1/embeddings` med 6 leverantörer och 9+ modeller -- **Bildgenerering** — `/v1/images/generations` med 10 leverantörer och 20+ modeller (OpenAI, xAI, Together, Fireworks, Nebius, Hyperbolic, NanoBanana, Antigravity, SD WebUI, ComfyUI) -- **Text-till-video** — `/v1/videos/generations` — ComfyUI (AnimateDiff, SVD) och SD WebUI -- **Text-till-musik** — `/v1/music/generations` — ComfyUI (Stable Audio Open, MusicGen) -- **Ljudtranskription** — `/v1/audio/transcriptions` — Whisper + Nvidia NIM, HuggingFace, Qwen3 -- **Text-till-tal** — `/v1/audio/speech` — ElevenLabs, Nvidia NIM, HuggingFace, Coqui, Tortoise, Qwen3, **Inworld**, **Cartesia**, **PlayHT**, + befintliga leverantörer -- **Moderationer** — `/v1/moderations` — Innehållssäkerhetskontroller -- **Omrankning** — `/v1/rerank` — Omrankning av dokumentrelevans -- **Responses API** — Fullständigt `/v1/responses`-stöd för Codex - -</details> - -<details> -<summary><b>🧪 14. "Jag har inget sätt att testa och jämföra kvalitet mellan olika modeller"</b></summary> - -Utvecklare vill veta vilken modell som är bäst för deras användningsfall - kod, översättning, resonemang - men det går långsamt att jämföra manuellt. Det finns inga integrerade utvärderingsverktyg. - -**Hur OmniRoute löser det:** - -- **LLM-utvärderingar** — Golden set-testning med 10 förinstallerade fall som täcker hälsningar, matematik, geografi, kodgenerering, JSON-efterlevnad, översättning, markdown, säkerhetsvägran -- **4 matchningsstrategier** — `exact`, `contains`, `regex`, `custom` (JS-funktion) -- **Translator Playground Test Bench** — Batchtestning med flera ingångar och förväntade utgångar, jämförelse mellan olika leverantörer -- **Chatttestare** — Fullständig tur och retur med visuell responsåtergivning -- **Live Monitor** — Realtidsström av alla förfrågningar som flödar genom proxyn - -</details> - -<details> -<summary><b>📈 15. "Jag behöver skala utan att förlora prestanda"</b></summary> - -När förfrågningsvolymen ökar, utan att cachelagra genererar samma frågor dubbla kostnader. Utan idempotens, dubbletter begär avfallshantering. Prisgränser per leverantör måste respekteras. - -**Hur OmniRoute löser det:** - -- **Semantisk cache** — Tvåskiktscache (signatur + semantisk) minskar kostnaden och fördröjningen -- **Request Idempotency** — 5s dedupliceringsfönster för identiska förfrågningar -- **Rate Limit Detection** — RPM per leverantör, min gap och max samtidig spårning -- **Redigerbara hastighetsgränser** — Konfigurerbara standardinställningar i Inställningar → Motståndskraft med uthållighet -- **API Key Validation Cache** — 3-lagers cache för produktionsprestanda -- **Hälsoinstrumentpanel med telemetri** — p50/p95/p99 latens, cachestatistik, drifttid - -</details> - -<details> -<summary><b>🤖 16. "Jag vill kontrollera modellbeteende globalt"</b></summary> - -Utvecklare som vill ha alla svar på ett specifikt språk, med en specifik ton, eller som vill begränsa resonemangstokens. Att konfigurera detta i varje verktyg/förfrågan är opraktiskt. - -**Hur OmniRoute löser det:** - -- **System Prompt Injection** — Global prompt tillämpas på alla förfrågningar -- **Thinking Budget Validation** — Reasoning token allocation control per request (passthrough, auto, custom, adaptive) -- **6 routingstrategier** — Globala strategier som avgör hur förfrågningar distribueras -- **Wildcard Router** — `provider/*` mönster dirigeras dynamiskt till vilken leverantör som helst -- **Kombo Aktivera/Inaktivera Växla** — Växla kombinationer direkt från instrumentpanelen -- **Visa leverantör** — Aktivera/inaktivera alla anslutningar för en leverantör med ett klick -- **Blockerade leverantörer** — Exkludera specifika leverantörer från `/v1/models`-listan - -</details> - -<details> -<summary><b>🧰 17. "Jag behöver MCP-verktyg som förstklassiga produktegenskaper"</b></summary> - -Många AI-gateways exponerar MCP endast som en dold implementeringsdetalj. Team behöver ett synligt, hanterbart driftlager. - -**Hur OmniRoute löser det:** - -- MCP visas på navigeringspanelen och fliken för slutpunktsprotokoll -- Dedikerad MCP-hanteringssida med process, verktyg, omfattningar och revision -- Inbyggd snabbstart för `omniroute --mcp` och klientintroduktion - -</details> - -<details> -<summary><b>🧠 18. "Jag behöver A2A-orkestrering med synkronisering + strömningssökvägar"</b></summary> - -Agentarbetsflöden kräver både direkta svar och långvarig streamad exekvering med livscykelkontroll. - -**Hur OmniRoute löser det:** - -- A2A JSON-RPC-slutpunkt (`POST /a2a`) med `message/send` och `message/stream` -- SSE-strömning med terminaltillståndspridning -- Task lifecycle API:er för `tasks/get` och `tasks/cancel` - -</details> - -<details> -<summary><b>🛰️ 19. "Jag behöver riktig MCP-processhälsa, inte gissad status"</b></summary> - -Operativa team måste veta om MCP faktiskt lever, inte bara om ett API är tillgängligt. - -**Hur OmniRoute löser det:** - -- Runtime heartbeat-fil med PID, tidsstämplar, transport, verktygsräkning och scope-läge -- MCP status API som kombinerar hjärtslag + senaste aktivitet -- UI-statuskort för process/upptid/hjärtslagsnyhet - -</details> - -<details> -<summary><b>📋 20. "Jag behöver revisionsbart MCP-verktygsexekvering"</b></summary> - -När verktyg muterar konfiguration eller utlöser operationsåtgärder behöver team rättsmedicinsk spårbarhet. - -**Hur OmniRoute löser det:** - -- SQLite-stödd revisionsloggning för MCP-verktygsanrop -- Filtrerar efter verktyg, framgång/misslyckande, API-nyckel och paginering -- Dashboard revisionstabell + statistikslutpunkter för automatisering - -</details> - -<details> -<summary><b>🔐 21. "Jag behöver scoped MCP-behörigheter per integration"</b></summary> - -Olika klienter bör ha minst privilegierad åtkomst till verktygskategorier. - -**Hur OmniRoute löser det:** - -- 9 granulära MCP-scopes för kontrollerad verktygsåtkomst -- Tillämpning av omfattning och synlighet i MCP-hanteringsgränssnitt -- Säker standardställning för operativa verktyg - -</details> - -<details> -<summary><b>⚙️ 22. "Jag behöver operativa kontroller utan att omdistribuera"</b></summary> - -Team behöver snabba körtidsförändringar under incidenter eller kostnadshändelser. - -**Hur OmniRoute löser det:** - -- Växla kombinationsaktivering direkt från MCP-instrumentpanelen -- Tillämpa motståndskraftsprofiler från fördefinierade policypaket -- Återställ strömbrytarens tillstånd från samma manöverpanel - -</details> - -<details> -<summary><b>🔄 23. "Jag behöver synlighet och annullering av livscykeln för A2A-uppgiften"</b></summary> - -Utan livscykelsynlighet blir uppgiftsincidenter svåra att triage. - -**Hur OmniRoute löser det:** - -- Uppgiftslista/filtrering efter stat/färdighet med sidnumrering -- Drill down på uppgiftens metadata, händelser och artefakter -- Slutpunkt för annullering av uppgifter och gränssnittsåtgärd med bekräftelse - -</details> - -<details> -<summary><b>🌊 24. "Jag behöver aktiv strömningsstatistik för A2A-laddning"</b></summary> - -Strömmande arbetsflöden kräver operativ insikt i samtidighet och direktanslutningar. - -**Hur OmniRoute löser det:** - -- Aktiva strömräknare integrerade i A2A-status -- Senaste uppgiftens tidsstämpel och antal per stat -- A2A instrumentpanelskort för operationsövervakning i realtid - -</details> - -<details> -<summary><b>🪪 25. "Jag behöver standardagentupptäckt för klienter"</b></summary> - -Externa klienter och orkestratorer behöver maskinläsbar metadata för onboarding. - -**Hur OmniRoute löser det:** - -- Agentkort exponerat på `/.well-known/agent.json` -- Förmåga och färdigheter som visas i management UI -- A2A status API inkluderar upptäcktsmetadata för automatisering - -</details> - -<details> -<summary><b>🧭 26. "Jag behöver protokollupptäckbarhet i produktens UX"</b></summary> - -Om användare inte kan upptäcka protokollytor, sjunker kvaliteten på adoption och support. - -**Hur OmniRoute löser det:** - -- Konsoliderad sida **Endpoints** med flikar för proxy-, MCP-, A2A- och API-slutpunkter -- Inline-tjänststatus växlar (Online/Offline) för MCP och A2A -- Länkar från översikt till dedikerade hanteringsflikar - -</details> - -<details> -<summary><b>🧪 27. "Jag behöver end-to-end protokollvalidering med riktiga klienter"</b></summary> - -Mock-tester räcker inte för att validera protokollkompatibilitet före release. - -**Hur OmniRoute löser det:** - -- E2E-svit som startar appen och använder riktig MCP SDK-klienttransport -- A2A-klient testar för upptäckt, skicka, streama, hämta och avbryta flöden -- Korskontrollera påståenden mot MCP-revision och A2A-uppgifter API:er - -</details> - -<details> -<summary><b>📡 28. "Jag behöver enhetlig observerbarhet över alla gränssnitt"</b></summary> - -Att dela upp observerbarheten enligt protokoll skapar blinda fläckar och längre MTTR. - -**Hur OmniRoute löser det:** - -- Enhetliga instrumentpaneler/loggar/analyser i en produkt -- Hälsa + revision + begäran om telemetri över OpenAI-, MCP- och A2A-lager -- Operativa API:er för status och automatisering - -</details> - -<details> -<summary><b>💼 29. "Jag behöver en körtid för proxy + verktyg + agentorkestrering"</b></summary> - -Att köra många separata tjänster ökar driftskostnaderna och fellägen. - -**Hur OmniRoute löser det:** - -- OpenAI-kompatibel proxy, MCP-server och A2A-server i en stack -- Delad autentisering, resiliens, datalagring och observerbarhet -- Konsekvent policymodell över alla interaktionsytor - -</details> - -<details> -<summary><b>🚀 30. "Jag behöver skicka agentiska arbetsflöden utan limkodsprawl"</b></summary> - -Lag tappar hastighet när de sammanfogar flera ad-hoc-tjänster och skript. - -**Hur OmniRoute löser det:** - -- Enhetlig slutpunktsstrategi för kunder och agenter -- Inbyggda gränssnitt för protokollhantering och rökvalideringsvägar -- Produktionsfärdiga grunder (säkerhet, loggning, resiliens, backup) - -</details> - -### Exempel Playbooks (integrerade användningsfall) - -**Playbook A: Maximera betald prenumeration + billig backup** - -```txt -Combo: "maximize-claude" - 1. cc/claude-opus-4-6 - 2. glm/glm-4.7 - 3. if/kimi-k2-thinking - -Monthly cost: $20 + small backup spend -Outcome: higher quality, near-zero interruption -``` - -**Playbook B: Noll-kostnad kodningsstack** - -```txt -Combo: "free-forever" - 1. gc/gemini-3-flash - 2. if/kimi-k2-thinking - 3. qw/qwen3-coder-plus - -Monthly cost: $0 -Outcome: stable free coding workflow -``` - -**Playbook C: 24/7 alltid på reservkedja** - -```txt -Combo: "always-on" - 1. cc/claude-opus-4-6 - 2. cx/gpt-5.2-codex - 3. glm/glm-4.7 - 4. minimax/MiniMax-M2.1 - 5. if/kimi-k2-thinking - -Outcome: deep fallback depth for deadline-critical workloads -``` - -**Playbook D: Agent ops med MCP + A2A** - -```txt -1) Start MCP transport (`omniroute --mcp`) for tool-driven operations -2) Run A2A tasks via `message/send` and `message/stream` -3) Observe via /dashboard/endpoint (MCP and A2A tabs) -4) Toggle services via inline status controls -``` - ---- - -## 🆓 Börja gratis — noll konfigurationskostnad - -> Ställ in AI-kodning på några minuter till **$0/månad**. Anslut dessa gratiskonton och använd den inbyggda **Free Stack**-kombinationen. - -| Steg | Åtgärd | Leverantörer olåsta | -| ---- | ------------------------------------------------ | ------------------------------------------------------------------- | -| 1 | Anslut **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — **obegränsad** | -| 2 | Anslut **Qoder** (Google OAuth) | kimi-k2-tänkande, qwen3-coder-plus, deepseek-r1... — **obegränsat** | -| 3 | Anslut **Qwen** (enhetskod) | qwen3-coder-plus, qwen3-coder-flash... — **obegränsat** | -| 4 | Anslut **Gemini CLI** (Google OAuth) | gemini-3-flash, gemini-2.5-pro — **180K/månad gratis** | -| 5 | `/dashboard/combos` → **Gratis stack ($0)** mall | Round-robin alla gratis leverantörer automatiskt | - -**Peka valfri IDE/CLI till:** `http://localhost:20128/v1` · API-nyckel: `any-string` · Klart. - -> **Valfri extra täckning (även gratis):** Groq API-nyckel (30 rpm gratis), NVIDIA NIM (40 rpm gratis, 70+ modeller), Cerebras (1M tok/dag), LongCat API-nyckel (50M tokens/dag!), Cloudflare Workers AI (10K Neurons/day, 50+ modeller). - -## ⚡ Snabbstart - -### 1) Installera och kör - -```bash -npm install -g omniroute -omniroute -``` - -> **pnpm-användare:** Kör `pnpm approve-builds -g` efter installationen för att aktivera inbyggda byggskript som krävs av `better-sqlite3` och `@swc/core`: -> -> ```bash -> pnpm install -g omniroute -> pnpm approve-builds -g # Select all packages → approve -> omniroute -> ``` - -Instrumentpanelen öppnas vid `http://localhost:20128` och API:s basadress är `http://localhost:20128/v1`. - -| Kommando | Beskrivning | -| ----------------------- | ------------------------------------------------------------------- | -| `omniroute` | Starta server (`PORT=20128`, API och instrumentpanel på samma port) | -| `omniroute --port 3000` | Ställ in kanonisk/API-port till 3000 | -| `omniroute --mcp` | Starta MCP-server (stdio-transport) | -| `omniroute --no-open` | Öppna inte webbläsaren automatiskt | -| `omniroute --help` | Visa hjälp | - -Valfritt läge med delad port: - -```bash -PORT=20128 DASHBOARD_PORT=20129 omniroute -# API: http://localhost:20128/v1 -# Dashboard: http://localhost:20129 -``` - -### 2) Anslut leverantörer och skapa din API-nyckel - -1. Öppna Dashboard → `Providers` och anslut minst en leverantör (OAuth- eller API-nyckel). -2. Öppna Dashboard → `Endpoints` och skapa en API-nyckel. -3. (Valfritt) Öppna Dashboard → `Combos` och ställ in din reservkedja. - -### 3) Rikta ditt kodningsverktyg till OmniRoute - -```txt -Base URL: http://localhost:20128/v1 -API Key: [copy from Endpoint page] -Model: if/kimi-k2-thinking (or any provider/model prefix) -``` - -Fungerar med Claude Code, Codex CLI, Gemini CLI, Cursor, Cline, OpenClaw, OpenCode och OpenAI-kompatibla SDK:er. - -### 4) Aktivera och validera protokoll (v2.0) - -**MCP (för verktygsdrivna operationer):** - -```bash -omniroute --mcp -``` - -Anslut sedan din MCP-klient över `stdio` och testa verktyg som: - -- `omniroute_get_health` -- `omniroute_list_combos` - -**A2A (för agent-till-agent-arbetsflöden):** - -```bash -curl http://localhost:20128/.well-known/agent.json -``` - -```bash -curl -X POST http://localhost:20128/a2a \ - -H 'content-type: application/json' \ - -d '{"jsonrpc":"2.0","id":"quickstart","method":"message/send","params":{"skill":"quota-management","messages":[{"role":"user","content":"Give me a short quota summary."}]}}' -``` - -### 5) Validera allt från början till slut (rekommenderas) - -```bash -npm run test:protocols:e2e -``` - -Denna svit validerar riktiga MCP- och A2A-klientflöden mot en app som körs. - -### Alternativ: kör från källan - -```bash -cp .env.example .env -npm install -PORT=20128 DASHBOARD_PORT=20129 NEXT_PUBLIC_BASE_URL=http://localhost:20129 npm run dev -``` - ---- - -## 🐳 Hamnarbetare - -OmniRoute är tillgänglig som en offentlig Docker-bild på [Docker Hub](https://hub.docker.com/r/diegosouzapw/omniroute). - -**Snabbkörning:** - -```bash -docker run -d \ - --name omniroute \ - --restart unless-stopped \ - -p 20128:20128 \ - -v omniroute-data:/app/data \ - diegosouzapw/omniroute:latest -``` - -**Med miljöfil:** - -```bash -# Copy and edit .env first -cp .env.example .env - -docker run -d \ - --name omniroute \ - --restart unless-stopped \ - --env-file .env \ - -p 20128:20128 \ - -v omniroute-data:/app/data \ - diegosouzapw/omniroute:latest -``` - -**Använda Docker Compose:** - -```bash -# Base profile (no CLI tools) -docker compose --profile base up -d - -# CLI profile (Claude Code, Codex, OpenClaw built-in) -docker compose --profile cli up -d -``` - -| Bild | Tagga | Storlek | Beskrivning | -| ------------------------ | -------- | ------- | ----------------------- | -| `diegosouzapw/omniroute` | `latest` | ~250MB | Senaste stabila utgåvan | -| `diegosouzapw/omniroute` | `1.0.3` | ~250MB | Aktuell version | - ---- - -## 🖥️ Desktop-app — offline och alltid på - -> 🆕 **NYTT!** OmniRoute är nu tillgängligt som ett **inbyggt skrivbordsprogram** för Windows, macOS och Linux. - -Kör OmniRoute som en fristående skrivbordsapp — ingen terminal, ingen webbläsare, inget internet krävs för lokala modeller. Den elektronbaserade appen innehåller: - -- 🖥️ **Native Window** — Dedikerat appfönster med systemfältsintegration -- 🔄 **Autostart** — Starta OmniRoute vid systeminloggning -- 🔔 **Native Notifications** — Få varningar om kvotutmattning eller leverantörsproblem -- ⚡ **One-Click Install** — NSIS (Windows), DMG (macOS), AppImage (Linux) -- 🌐 **Offlineläge** — Fungerar helt offline med medföljande server - -### Snabbstart - -```bash -# Development mode -npm run electron:dev - -# Build for your platform -npm run electron:build # Current platform -npm run electron:build:win # Windows (.exe) -npm run electron:build:mac # macOS (.dmg) — x64 & arm64 -npm run electron:build:linux # Linux (.AppImage) -``` - -### Systemfältet - -När den är minimerad, finns OmniRoute i systemfältet med snabba åtgärder: - -- Öppna instrumentpanelen -- Byt serverport -- Avsluta applikationen - -📖 Fullständig dokumentation: [**OMNI_TOKEN_153**](electron/README.md) - ---- - -## 💰 Prissättning i en överblick - -| Nivå | Leverantör | Kostnad | Kvotåterställning | Bäst för | -| -------------------- | --------------------------- | --------------------------------- | ---------------------- | ----------------------------------- | -| **💳 PRENUMERATION** | Claude Code (Pro) | 20 USD/månad | 5h + veckovis | Har redan prenumererat | -| | Codex (Plus/Pro) | 20-200 USD/månad | 5h + veckovis | OpenAI-användare | -| | Gemini CLI | **GRATIS** | 180K/månad + 1K/dag | Alla! | -| | GitHub Copilot | $10-19/månad | Månatlig | GitHub-användare | -| **🔑 API-NYCKEL** | NVIDIA NIM | **GRATIS** (dev forever) | ~40 RPM | 70+ öppna modeller | -| | Cerebras | **GRATIS** (1M tok/dag) | 60K TPM / 30 RPM | Världens snabbaste | -| | Groq | **GRATIS** (30 RPM) | 14,4K RPD | Ultrasnabba Lama/Gemma | -| | DeepSeek V3.2 | 0,27 USD/1,10 USD per 1M | Inga | Bästa pris/kvalitetsresonemang | -| | xAI Grok-4 Fast | **$0,20/$0,50 per 1M** 🆕 | Inga | Snabbast + verktygsanrop, ultralågt | -| | xAI Grok-4 (standard) | 0,20 USD/1,50 USD per 1M 🆕 | Inga | Resonerande flaggskepp från xAI | -| | Mistral | Gratis provperiod + betald | Begränsat pris | Europeisk AI | -| | OpenRouter | Betala per användning | Inga | 100+ modeller aggr. | -| **💰 BILLIGT** | GLM-5 (via Z.AI) 🆕 | $0,5/1M | Dagligen 10:00 | 128K-utgång, senaste flaggskeppet | -| | GLM-4.7 | $0,6/1M | Dagligen 10:00 | Budget backup | -| | MiniMax M2.5 🆕 | $0,3/1M ingång | 5-timmars rullande | Resonemang + agentuppgifter | -| | MiniMax M2.1 | $0,2/1M | 5-timmars rullande | Billigaste alternativet | -| | Kimi K2.5 (Moonshot API) 🆕 | Betala per användning | Inga | Direkt åtkomst till Moonshot API | -| | Kimi K2 | 9 USD/mån lägenhet | 10 miljoner tokens/mån | Förutsägbar kostnad | -| **🆓 GRATIS** | Qoder | **$0** | Obegränsad | 5 modeller obegränsat | -| | Qwen | **$0** | Obegränsad | 4 modeller obegränsat | -| | Kiro | **$0** | Obegränsad | Claude Sonnet/Haiku (AWS Builder) | -| | LongCat Flash-Lite 🆕 | **$0** (50 miljoner tok/dag 🔥) | 1 RPS | Största gratiskvoten på jorden | -| | Pollinationer AI 🆕 | **$0** (ingen nyckel behövs) | 1 req/15s | GPT-5, Claude, DeepSeek, Llama 4 | -| | Cloudflare Workers AI 🆕 | **$0** (10 000 neuroner/dag) | ~150 resp/dag | 50+ modeller, global edge | -| | Scaleway AI 🆕 | **$0** (1 miljoner tokens totalt) | Begränsat pris | EU/GDPR, Qwen3 235B, Lama 70B | - -> 🆕 **Nya modeller tillagda (mars 2026):** Grok-4 Fast-familjen till $0,20/$0,50/M (benchmarkerad till 1143ms — 30 % snabbare än Gemini 2.5 Flash), GLM-5 via Z.AI med 128K-utgång, MiniMax M2.5-resonemang, DeepSeek2.5-resonemang, KimSeek2.5 updates. direkt API. - -**💡 $0 Combo Stack — Den kompletta gratis installationen:** - -``` -# 🆓 Ultimate Free Stack 2026 — 11 Providers, $0 Forever -Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED -LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 -Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed -Qwen (qw/) → qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next UNLIMITED -Gemini (gemini/) → Gemini 2.5 Flash — 1,500 req/day free API key -Cloudflare AI (cf/) → Llama 70B, Gemma 3, Mistral — 10K Neurons/day -Scaleway (scw/) → Qwen3 235B, Llama 70B — 1M free tokens (EU) -Groq (groq/) → Llama/Gemma ultra-fast — 14.4K req/day -NVIDIA NIM (nvidia/) → 70+ open models — 40 RPM forever -Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day -``` - -**Noll kostnad. Slutar aldrig koda.** Konfigurera detta som en OmniRoute-kombination och alla fallbacks sker automatiskt – ingen manuell växling någonsin. - ---- - ---- - -## 🆓 Gratis modeller — vad du faktiskt får - -> Alla modeller nedan är **100 % gratis utan kreditkort krävs**. OmniRoute dirigerar automatiskt mellan dem när en kvot tar slut — kombinera dem alla för en okrossbar 0 $-kombination. - -### 🔵 CLAUDE MODELLS (via Kiro — AWS Builder ID) - -| Modell | Prefix | Begränsa | Prisgräns | -| ------------------- | ------ | -------------- | ----------------------------- | -| `claude-sonnet-4.5` | `kr/` | **Obegränsat** | Inget rapporterat dagligt tak | -| `claude-haiku-4.5` | `kr/` | **Obegränsat** | Inget rapporterat dagligt tak | -| `claude-opus-4.6` | `kr/` | **Obegränsat** | Senaste Opus via Kiro | - -### QODER-MODELLER (gratis OAuth – inget kreditkort) - -| Modell | Prefix | Begränsa | Prisgräns | -| ------------------ | ------ | -------------- | --------------------- | -| `kimi-k2-thinking` | `if/` | **Obegränsat** | Inget rapporterat tak | -| `qwen3-coder-plus` | `if/` | **Obegränsat** | Inget rapporterat tak | -| `deepseek-r1` | `if/` | **Obegränsat** | Inget rapporterat tak | -| `minimax-m2.1` | `if/` | **Obegränsat** | Inget rapporterat tak | -| `kimi-k2` | `if/` | **Obegränsat** | Inget rapporterat tak | - -### 🟡 QWEN-MODELLER (Auth. enhetskod) - -| Modell | Prefix | Begränsa | Prisgräns | -| ------------------- | ------ | -------------- | --------------------- | -| `qwen3-coder-plus` | `qw/` | **Obegränsat** | Inget rapporterat tak | -| `qwen3-coder-flash` | `qw/` | **Obegränsat** | Inget rapporterat tak | -| `qwen3-coder-next` | `qw/` | **Obegränsat** | Inget rapporterat tak | -| `vision-model` | `qw/` | **Obegränsat** | Multimodal (bilder) | - -### 🟣 GEMINI CLI (Google OAuth) - -| Modell | Prefix | Begränsa | Prisgräns | -| ------------------------ | ------ | --------------------------- | ---------------------- | -| `gemini-3-flash-preview` | `gc/` | **180K tok/månad** + 1K/dag | Månatlig återställning | -| `gemini-2.5-pro` | `gc/` | 180K/månad (delad pool) | Hög kvalitet | - -### ⚫ NVIDIA NIM (gratis API-nyckel — build.nvidia.com) - -| Nivå | Daglig gräns | Prisgräns | Anteckningar | -| ------------ | --------------- | ----------- | -------------------------------------------------------------- | -| Gratis (Dev) | Ingen token cap | **~40 RPM** | 70+ modeller; övergång till rena räntegränser i mitten av 2025 | - -Populära gratismodeller: `moonshotai/kimi-k2.5` (Kimi K2.5), `z-ai/glm4.7` (GLM 4.7), `deepseek-ai/deepseek-v3.2` (DeepSeek V3.2), `nvidia/llama-3.3-70b-instruct`, `deepseek/deepseek-r1` - -### ⚪ CEREBRAS (gratis API-nyckel — inference.cerebras.ai) - -| Nivå | Daglig gräns | Prisgräns | Anteckningar | -| ------ | ----------------- | ---------------- | ------------------------------------------------------- | -| Gratis | **1M tokens/dag** | 60K TPM / 30 RPM | Världens snabbaste LLM slutledning; återställs dagligen | - -Tillgänglig gratis: `llama-3.3-70b`, `llama-3.1-8b`, `deepseek-r1-distill-llama-70b` - -### 🔴 GROQ (gratis API-nyckel — console.groq.com) - -| Nivå | Daglig gräns | Prisgräns | Anteckningar | -| ------ | ------------- | ----------------- | ---------------------------------------------- | -| Gratis | **14,4K RPD** | 30 RPM per modell | Inget kreditkort; 429 på gräns, inte debiterad | - -Tillgänglig gratis: `llama-3.3-70b-versatile`, `gemma2-9b-it`, `mixtral-8x7b`, `whisper-large-v3` - -### 🔴 LONGCAT AI (gratis API-nyckel — longcat.chat) 🆕 - -| Modell | Prefix | Daglig gratiskvot | Anteckningar | -| ----------------------------- | ------ | ------------------------- | ----------------------------- | -| `LongCat-Flash-Lite` | `lc/` | **50 miljoner tokens** 💥 | Största gratiskvoten någonsin | -| `LongCat-Flash-Chat` | `lc/` | 500 000 tokens | Multi-turn chat | -| `LongCat-Flash-Thinking` | `lc/` | 500 000 tokens | Resonemang / CoT | -| `LongCat-Flash-Thinking-2601` | `lc/` | 500 000 tokens | Jan 2026 version | -| `LongCat-Flash-Omni-2603` | `lc/` | 500 000 tokens | Multimodal | - -> 100 % gratis medan den är i offentlig beta. Registrera dig på [longcat.chat](https://longcat.chat) med e-post eller telefon. Återställs dagligen 00:00 UTC. - -### 🟢 POLLINATIONS AI (ingen API-nyckel krävs) 🆕 - -| Modell | Prefix | Prisgräns | Provider bakom | -| ---------- | ------ | --------- | ------------------- | -| `openai` | `pol/` | 1 req/15s | GPT-5 | -| `claude` | `pol/` | 1 req/15s | Antropisk Claude | -| `gemini` | `pol/` | 1 req/15s | Google Tvillingarna | -| `deepseek` | `pol/` | 1 req/15s | DeepSeek V3 | -| `llama` | `pol/` | 1 req/15s | Meta Llama 4 Scout | -| `mistral` | `pol/` | 1 req/15s | Mistral AI | - -> ✨ **Noll friktion:** Ingen registrering, ingen API-nyckel. Lägg till pollineringsleverantören med ett tomt nyckelfält så fungerar det direkt. - -### 🟠 CLOUDFLARE WORKERS AI (gratis API-nyckel — cloudflare.com) 🆕 - -| Nivå | Dagliga neuroner | Likvärdig användning | Anteckningar | -| ------ | ---------------- | ------------------------------------------------ | ------------------------- | -| Gratis | **10 000** | ~150 LLM resp / 500-tals ljud / 15K inbäddningar | Global edge, 50+ modeller | - -Populära gratismodeller: `@cf/meta/llama-3.3-70b-instruct`, `@cf/google/gemma-3-12b-it`, `@cf/openai/whisper-large-v3-turbo` (gratis ljud!), `@cf/qwen/qwen2.5-coder-15b-instruct` - -> Kräver API-token + konto-ID från [dash.cloudflare.com](https://dash.cloudflare.com). Lagra konto-ID i leverantörsinställningar. - -### 🟣 SCALEWAY AI (1M gratis tokens — scaleway.com) 🆕 - -| Nivå | Gratis kvot | Plats | Anteckningar | -| ------ | ------------- | ------------ | -------------------------------------- | -| Gratis | **1M tokens** | 🇫🇷 Paris, EU | Inget kreditkort behövs inom gränserna | - -Tillgänglig gratis: `qwen3-235b-a22b-instruct-2507` (Qwen3 235B!), `llama-3.1-70b-instruct`, `mistral-small-3.2-24b-instruct-2506`, `deepseek-v3-0324` - -> EU/GDPR-kompatibel. Hämta API-nyckel på [console.scaleway.com](https://console.scaleway.com). - -> **💡 Den ultimata gratisstacken (11 leverantörer, $0 för alltid):** -> -> ``` -> Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -> Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED -> LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 -> Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed -> Qwen (qw/) → qwen3-coder models UNLIMITED -> Gemini (gemini/) → Gemini 2.5 Flash — 1,500 req/day free -> Cloudflare AI (cf/) → 50+ models — 10K Neurons/day -> Scaleway (scw/) → Qwen3 235B, Llama 70B — 1M free tokens (EU) -> Groq (groq/) → Llama/Gemma — 14.4K req/day ultra-fast -> NVIDIA NIM (nvidia/) → 70+ open models — 40 RPM forever -> Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day -> ``` - -## 🎙️ Gratis transkriptionskombination - -> Transkribera valfritt ljud/video för **$0** — Deepgram leads med $200 gratis, AssemblyAI $50 reserv, Groq Whisper som obegränsad nödbackup. - -| Leverantör | Gratis krediter | Bästa modellen | Prisgräns | -| ----------------- | ------------------------------ | ------------------------------------------- | ---------------------------------- | -| **Deepgram** | **$200 gratis** (registrering) | `nova-3` — bästa noggrannhet, 30+ språk | Ingen RPM-gräns på gratis krediter | -| 🔵 **AssemblyAI** | **$50 gratis** (registrering) | `universal-3-pro` — kapitel, sentiment, PII | Ingen RPM-gräns på gratis krediter | -| 🔴 **Groq** | **Fri för alltid** | `whisper-large-v3` — OpenAI Whisper | 30 RPM (hastighetsbegränsad) | - -**Föreslagen kombination i `/dashboard/combos`:** - -``` -Name: free-transcription -Strategy: Priority -Nodes: - [1] deepgram/nova-3 → uses $200 free first - [2] assemblyai/universal-3-pro → fallback when Deepgram credits run out - [3] groq/whisper-large-v3 → free forever, emergency fallback -``` - -Sedan i `/dashboard/media` → fliken **Transkription**: ladda upp valfri ljud- eller videofil → välj din kombinationsslutpunkt → hämta transkription i format som stöds. - -## 💡 Nyckelfunktioner - -OmniRoute v2.0 är byggd som en operativ plattform, inte bara en reläproxy. - -### 🆕 Nytt — ClawRouter-inspirerade förbättringar (mars 2026) - -| Funktion | Vad det gör | -| -------------------------------------- | ------------------------------------------------------------------------------------------------------ | -| ⚡ **Grok-4 Fast Family** | xAI-modeller för $0,20/$0,50/M — benchmarkerade 1143ms (30 % snabbare än Gemini 2.5 Flash) | -| 🧠 **GLM-5 via Z.AI** | 128K utdatakontext, $0,5/1M — senaste flaggskeppet från GLM-familjen | -| 🔮 **MiniMax M2.5** | Resonemang + agentuppgifter för $0,30/1M — betydande uppgradering från M2.1 | -| 🎯 **verktyg Calling Flag per modell** | Per modell `toolCalling: true/false` i registret — AutoCombo hoppar över modeller som inte kan verktyg | -| 🌍 **Flerspråkig avsiktsdetektering** | PT/ZH/ES/AR-nyckelord i AutoCombo-poängsättning — bättre modellval för icke-engelsk innehåll | -| 📊 **Benchmarkdrivna fallbacks** | Verklig p95 latens från liveförfrågningar feeds combo scoring — AutoCombo lär sig av faktiska data | -| 🔁 **Begär deduplicering** | Innehållshashbaserat dedup-fönster – säker för flera agenter, förhindrar dubbletter av avgifter | -| 🔌 **Strategi för pluggbar router** | Utökningsbart `RouterStrategy`-gränssnitt — lägg till anpassad routinglogik som plugins | - -### 🚀 Föregående v2.0.9+ — Playground, CLI Fingerprints & ACP - -| Funktion | Vad det gör | -| ------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 🎮 **Modell lekplats** | Dashboard-sida för att testa alla modeller direkt — leverantör/modell/slutpunktsväljare, Monaco Editor, streaming, avbryt, timing | -| 🔏 **CLI Fingerprint Matching** | Beställning av rubrik/kropp per leverantör för att matcha inbyggda CLI-signaturer – växla per leverantör i Inställningar > Säkerhet. **Din proxy-IP bevaras** | -| 🤝 **ACP Support (Agent Client Protocol)** | CLI-agentupptäckt (Codex, Claude, Goose, Gemini CLI, OpenClaw + 9 till), process spawner, `/api/acp/agents` slutpunkt | -| 🤖 **ACP Agents Dashboard** | Felsökning › Agentsida — rutnät med 14 agenter med installationsstatus, version, anpassat agentformulär för alla CLI-verktyg. **OpenCode**-användare får en "Ladda ner opencode.json"-knapp som automatiskt genererar en färdig att använda konfiguration med alla tillgängliga modeller. | -| 🔧 **Anpassad modell `apiFormat` Routing** | Anpassade modeller med `apiFormat: "responses"` dirigeras nu korrekt till Responses API-översättaren | -| 🏢 **Codex Workspace Isolation** | Flera Codex-arbetsytor per e-post — OAuth separerar anslutningar korrekt efter arbetsyte-ID | -| 🔄 **Automatisk uppdatering av elektroner** | Skrivbordsapp söker efter uppdateringar + automatisk installation vid omstart | - -### 🤖 Agent & Protocol Operations (v2.0) - -| Funktion | Vad det gör | -| ----------------------------------------- | ----------------------------------------------------------------------------------------------------- | -| 🔧 **MCP-server (16 verktyg)** | IDE/agent-verktyg via 3 transporter: stdio, SSE (`/api/mcp/sse`), Streamable HTTP (`/api/mcp/stream`) | -| 🤝 **A2A-server (JSON-RPC + SSE)** | Agent-till-agent-uppgiftskörning med synkroniserings- och streamingflöden | -| 🧭 **Konsoliderade slutpunkterssida** | Hanteringssida med flikar med flikarna Endpoint Proxy, MCP, A2A och API Endpoints | -| 🎚️ **Service aktivera/inaktivera växlar** | ON/OFF-omkopplare för MCP och A2A med inställningsbeständighet (standard: OFF) | -| 🛰️ **MCP Runtime Heartbeat** | Verklig processstatus (pid, drifttid, hjärtslagsålder, transport, omfångsläge) | -| 📋 **MCP Audit Trail** | Filtrerbara granskningsloggar med framgång/misslyckande och nyckeltillskrivning | -| 🔐 **MCP Scope Enforcement** | 9 granulära scope-behörigheter för kontrollerad verktygsåtkomst | -| 📡 **A2A Task Lifecycle Management** | Lista/filtrera uppgifter, inspektera händelser/artefakter, avbryt pågående uppgifter | -| 📋 **Agent Card Discovery** | `/.well-known/agent.json` för automatisk upptäckt av klient | -| 🧪 **Protokoll E2E testsele** | Verkliga MCP SDK + A2A-klientflöden i `test:protocols:e2e` | -| ⚙️ **Driftskontroller** | Switch combo, applicera elasticitetsprofiler, återställ brytare från en kontrollyta | - -### 🧠 Routing & Intelligence - -| Funktion | Vad det gör | -| ----------------------------------- | --------------------------------------------------------------------------------- | -| 🎯 **Smart 4-lagers reserv** | Automatisk rutt: Prenumeration → API-nyckel → Billigt → Gratis | -| 📊 **Kvotspårning i realtid** | Live token count + återställ nedräkning per leverantör | -| 🔄 **Formatöversättning** | OpenAI ↔ Claude ↔ Gemini ↔ Svar med schemasäkra konverteringar | -| 👥 **Multi-Account Support** | Flera konton per leverantör med intelligent urval | -| 🔄 **Auto Token Refresh** | OAuth-tokens uppdateras automatiskt med försök igen | -| 🎨 **Anpassade kombinationer** | 6 balanseringsstrategier + reservkedjekontroll | -| 🌐 **Wildcard-router** | `provider/*` dynamisk routing | -| 🧠 **Tänker på budgetkontroller** | Gränser för passthrough, auto, anpassade och adaptiva resonemang | -| 🔀 **Modellalias** | Inbyggd + anpassad modellaliasing och migreringssäkerhet | -| ⚡ **Bakgrundsförsämring** | Rikta lågprioriterade bakgrundsuppgifter till billigare modeller | -| 🧪 **Task-Aware Smart Routing** | Välj modell automatiskt efter innehållstyp (kodning/vision/analys/sammanfattning) | -| 💬 **System Prompt Injection** | Globala beteendekontroller tillämpas konsekvent | -| 📄 **Responses API-kompatibilitet** | Fullständigt `/v1/responses` stöd för Codex och avancerade agentarbetsflöden | - -### 🎵 Multimodala API:er - -| Funktion | Vad det gör | -| ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| 🖼️ **Bildgenerering** | `/v1/images/generations` med moln och lokala backends | -| 📐 **Inbäddningar** | `/v1/embeddings` för sök- och RAG-pipelines | -| 🎤 **Ljudtranskription** | `/v1/audio/transcriptions` — 7 leverantörer (Deepgram Nova 3, AssemblyAI, Groq Whisper, HuggingFace, ElevenLabs, OpenAI, Azure), automatisk språkdetektering, MP4/MP3/WAV-stöd | -| 🔊 **Text-till-tal** | `/v1/audio/speech` — 10 leverantörer (ElevenLabs, OpenAI, Deepgram, Cartesia, PlayHT, HuggingFace, Nvidia NIM, Inworld, Coqui, Tortoise) med korrekta felmeddelanden | -| 🎬 **Videogenerering** | `/v1/videos/generations` (ComfyUI + SD WebUI-arbetsflöden) | -| 🎵 **Music Generation** | `/v1/music/generations` (ComfyUI-arbetsflöden) | -| 🛡️ **Moderationer** | `/v1/moderations` säkerhetskontroller | -| 🔀 **Omrankning** | `/v1/rerank` för relevanspoäng | -| 🔍 **Webbsökning** 🆕 | `/v1/search` — 5 leverantörer (Serper, Brave, Perplexity, Exa, Tavily), 6 500+ gratis/månad, auto-failover, cache | - -### 🛡️ Motståndskraft, säkerhet och styrning - -| Funktion | Vad det gör | -| ------------------------------------ | ------------------------------------------------------------------------------------------------- | -| 🔌 **Cremsbrytare** | Per modell trip/återhämtning med tröskelkontroller | -| 🎯 **Endpoint-Aware Models** | Anpassade modeller deklarerar stödda slutpunkter + API-format | -| 🛡️ **Anti-ånflock** | Mutex + semaforskydd vid återförsök/hastighetshändelser | -| 🧠 **Semantisk + Signaturcache** | Kostnads-/latensminskning med två cachelager | -| ⚡ **Begär idempotens** | Dubblett skyddsfönster | -| 🔒 **TLS Fingerprint Spoofing** | Webbläsarliknande TLS-fingeravtryck — **minskar botdetektering och kontoflaggning** | -| 🔏 **CLI Fingerprint Matching** | Matchar inbyggda CLI-begäransignaturer — **minskar förbudsrisken samtidigt som proxy-IP bevaras** | -| 🌐 **IP-filtrering** | Kontroll av tillåtelse/blockeringslista för exponerade distributioner | -| 📊 **Redigerbara hastighetsgränser** | Konfigurerbara globala/leverantörsnivågränser med beständighet | -| 🔑 **API Key Management + Scoping** | Säker nyckelutgivning/rotation och modell/leverantörskontroller | -| 👁️ **Scoped API Key Reveal** 🆕 | Opt-in recovery of API keys via `ALLOW_API_KEY_REVEAL` | -| 🛡️ **Skyddad `/models`** | Valfri autentisering och leverantörsdöljning för modellkatalog | - -### 📊 Observerbarhet och analys - -| Funktion | Vad det gör | -| --------------------------------- | ------------------------------------------------------ | -| 📝 **Begäran + proxyloggning** | Fullständig begäran/svar och proxyloggning | -| 📉 **Streamed Detailed Logs** 🆕 | Reconstructs SSE payload streams cleanly into the UI | -| 📋 **Unified Logs Dashboard** | Begäran, proxy, revision och konsolvyer på en sida | -| 🔍 **Begär telemetri** | p50/p95/p99 latens och spårning av begäran | -| 🏥 **Hälsoinstrumentpanel** | Drifttid, brytartillstånd, lockouter, cachestatistik | -| 💰 **Kostnadsspårning** | Budgetkontroller och prissättning per modell | -| 📈 **Analytiska visualiseringar** | Modell-/leverantörsanvändningsinsikter och trendvyer | -| 🧪 **Utvärderingsram** | Golden set-testning med konfigurerbara matchstrategier | - -### ☁️ Implementering och plattform - -| Funktion | Vad det gör | -| --------------------------------------- | --------------------------------------------------------------------- | -| 🌐 **Distribuera var som helst** | Localhost, VPS, Docker, Molnmiljöer | -| 💾 **Cloud Sync** | Konfigurationssynkronisering via molnarbetare | -| 🔄 **Säkerhetskopiering/återställning** | Export/import och katastrofåterställningsflöden | -| 🧙 **Onboarding Wizard** | Första körningen guidad installation | -| 🔧 **CLI Tools Dashboard** | Inställning med ett klick för populära kodningsverktyg | -| 🎮 **Modell lekplats** | Testa valfri leverantör/modell/slutpunkt från instrumentpanelen | -| 🔏 **CLI Fingerprint Toggle** | Fingeravtrycksmatchning per leverantör i Inställningar > Säkerhet | -| 🌐 **i18n (30 språk)** | Fullständig instrumentpanel + stöd för dokumentspråk med RTL-täckning | -| 🧹 **Rensa alla modeller** | Rensa modelllistan med ett klick i leverantörsinformation | -| 👁️ **Sidebar Controls** 🆕 | Hide components and integrations from Appearance Settings | -| 📋 **Utgåvamallar** | Standardiserade GitHub-mallar för buggar och funktioner | -| 📂 **Anpassad datakatalog** | `DATA_DIR` åsidosättning för lagringsplats | - -### Feature Deep Dive - -#### Smart reserv med praktisk kostnadskontroll - -```txt -Combo: "my-coding-stack" - 1. cc/claude-opus-4-6 - 2. nvidia/llama-3.3-70b - 3. glm/glm-4.7 - 4. if/kimi-k2-thinking -``` - -När kvot, ränta eller hälsa misslyckas, flyttar OmniRoute automatiskt till nästa kandidat utan manuell växling. - -#### Protokollhantering som är synlig och funktionsduglig - -- MCP + A2A kan upptäckas i användargränssnitt och dokument (inte dolda) -- Protokollstatus-API:er exponerar driftdata (`/api/mcp/*`, `/api/a2a/*`) -- Dashboards inkluderar åtgärder för dag-2 operationer (kombinationsväxlingar, återställning av brytare, avbokning av uppgifter) - -#### Översättare + valideringsarbetsflöde - -Översättarområdet inkluderar: - -- **Lekplats**: begär omvandlingskontroller -- **Chatttestare**: fullständig begäran/svar tur och retur -- **Testbänk**: flera fall i en körning -- **Live Monitor**: trafikvy i realtid - -Plus protokollvalidering med riktiga klienter via `npm run test:protocols:e2e`. - -> 📖 **[MCP Server README](open-sse/mcp-server/README.md)** — Verktygsreferens, IDE-konfigurationer och klientexempel -> -> 📖 **[A2A Server README](src/lib/a2a/README.md)** — Färdigheter, JSON-RPC-metoder, streaming och uppgiftslivscykel - -## 🧪 Utvärderingar (Evals) - -OmniRoute inkluderar ett inbyggt utvärderingsramverk för att testa LLM-svarskvalitet mot en gyllene uppsättning. Få åtkomst till den via **Analytics → Evals** i instrumentpanelen. - -### Inbyggt gyllene set - -Det förinstallerade "OmniRoute Golden Set" innehåller testfall för: - -- Hälsningar, matematik, geografi, kodgenerering -- Överensstämmelse med JSON-format, översättning, generering av markdown -- Säkerhetsvägran (skadligt innehåll), räkning, boolesk logik - -### Utvärderingsstrategier - -| Strategi | Beskrivning | Exempel | -| ---------- | ---------------------------------------------------- | -------------------------------- | -| `exact` | Utdata måste matcha exakt | `"4"` | -| `contains` | Utdata måste innehålla delsträng (skiftlägeskänslig) | `"Paris"` | -| `regex` | Utdata måste matcha regexmönster | `"1.*2.*3"` | -| `custom` | Anpassad JS-funktion returnerar true/false | `(output) => output.length > 10` | - ---- - -## 📖 Installationsguide - -### Protokollinställningar (MCP + A2A) - -<details> -<summary><b>🧩 MCP-inställning (Model Context Protocol)</b></summary> - -Starta MCP-transport i stdio-läge: - -```bash -omniroute --mcp -``` - -Rekommenderat valideringsflöde: - -1. Anslut din MCP-klient via stdio. -2. Kör `omniroute_get_health`. -3. Kör `omniroute_list_combos`. -4. Öppna `/dashboard/mcp` för att bekräfta hjärtslag, aktivitet och revision. - -Användbara API:er för automatisering: - -- `GET /api/mcp/status` -- `GET /api/mcp/tools` -- `GET /api/mcp/audit` -- `GET /api/mcp/audit/stats` - -</details> - -<details> -<summary><b>🤝 A2A-inställning (Agent2Agent)</b></summary> - -Upptäck agenten: - -```bash -curl http://localhost:20128/.well-known/agent.json -``` - -Skicka en uppgift: - -```bash -curl -X POST http://localhost:20128/a2a \ - -H 'content-type: application/json' \ - -d '{"jsonrpc":"2.0","id":"setup-a2a","method":"message/send","params":{"skill":"quota-management","messages":[{"role":"user","content":"Summarize quota status."}]}}' -``` - -Hantera livscykel: - -- `GET /api/a2a/status` -- `GET /api/a2a/tasks` -- `GET /api/a2a/tasks/:id` -- `POST /api/a2a/tasks/:id/cancel` - -Operativt användargränssnitt: - -- `/dashboard/a2a` för observerbarhet för uppgift/tillstånd/ström och rökåtgärder - -</details> - -<details> -<summary><b>🧪 End-to-end-protokollvalidering</b></summary> - -Validera båda protokollen med riktiga klienter: - -```bash -npm run test:protocols:e2e -``` - -Detta verifierar: - -- MCP SDK-klientanslut/lista/samtal -- A2A upptäckt/skicka/strömma/få/avbryt -- Korskontrollera data i MCP-revision och A2A-uppgiftshanterings-API:er - -</details> - -<details> -<summary><b>💳 Prenumerationsleverantörer</b></summary> - -### Claude Code (Pro/Max) - -```bash -Dashboard → Providers → Connect Claude Code -→ OAuth login → Auto token refresh -→ 5-hour + weekly quota tracking - -Models: - cc/claude-opus-4-6 - cc/claude-sonnet-4-5-20250929 - cc/claude-haiku-4-5-20251001 -``` - -**Proffstips:** Använd Opus för komplexa uppgifter, Sonnet för snabbhet. OmniRoute spårar kvot per modell! - -### OpenAI Codex (Plus/Pro) - -```bash -Dashboard → Providers → Connect Codex -→ OAuth login (port 1455) -→ 5-hour + weekly reset - -Models: - cx/gpt-5.2-codex - cx/gpt-5.1-codex-max -``` - -#### Codex Account Limit Management (5 timmar + veckovis) - -Varje Codex-konto har nu policyväxlingar i `Dashboard -> Providers`: - -- `5h` (PÅ/AV): tillämpa 5-timmars fönstertröskelpolicyn. -- `Weekly` (PÅ/AV): tillämpa policyn för veckofönstertröskel. -- Tröskelbeteende: när ett aktiverat fönster når >=90 % användning hoppas kontot över. -- Rotationsbeteende: OmniRoute leder automatiskt till nästa kvalificerade Codex-konto. -- Återställ beteende: när leverantörens `resetAt` tid går, blir kontot kvalificerat igen automatiskt. - -Scenarier: - -- `5h ON` + `Weekly ON`: kontot hoppas över när något av fönstren når tröskeln. -- `5h OFF` + `Weekly ON`: endast veckovis användning kan blockera kontot. -- `5h ON` + `Weekly OFF`: endast 5 timmars användning kan blockera kontot. -- `resetAt` godkänd: kontot återgår till rotation automatiskt (ingen manuell återaktivering). - -### Gemini CLI (GRATIS 180K/månad!) - -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Bäst värde:** Enorma gratis nivå! Använd detta före betalda nivåer. - -### GitHub Copilot - -```bash -Dashboard → Providers → Connect GitHub -→ OAuth via GitHub -→ Monthly reset (1st of month) - -Models: - gh/gpt-5 - gh/claude-4.5-sonnet - gh/gemini-3-pro -``` - -</details> - -<details> -<summary><b>🔑 API-nyckelleverantörer</b></summary> - -### NVIDIA NIM (GRATIS utvecklaråtkomst — 70+ modeller) - -1. Registrera dig: [build.nvidia.com](https://build.nvidia.com) -2. Få gratis API-nyckel (1000 slutsatspoäng ingår) -3. Dashboard → Lägg till leverantör → NVIDIA NIM: - - API-nyckel: `nvapi-your-key` - -**Modeller:** `nvidia/llama-3.3-70b-instruct`, `nvidia/mistral-7b-instruct` och 50+ till - -**Proffstips:** OpenAI-kompatibelt API — fungerar sömlöst med OmniRoutes formatöversättning! - -### DeepSeek - -1. Registrera dig: [platform.deepseek.com](https://platform.deepseek.com) -2. Hämta API-nyckel -3. Dashboard → Lägg till leverantör → DeepSeek - -**Modeller:** `deepseek/deepseek-chat`, `deepseek/deepseek-coder` - -### Groq (gratis nivå tillgänglig!) - -1. Registrera dig: [console.groq.com](https://console.groq.com) -2. Skaffa API-nyckel (gratis nivå ingår) -3. Dashboard → Lägg till leverantör → Groq - -**Modeller:** `groq/llama-3.3-70b`, `groq/mixtral-8x7b` - -**Proffstips:** Ultrasnabb slutledning — bäst för realtidskodning! - -### OpenRouter (100+ modeller) - -1. Registrera dig: [openrouter.ai](https://openrouter.ai) -2. Hämta API-nyckel -3. Dashboard → Lägg till leverantör → OpenRouter - -**Modeller:** Få tillgång till 100+ modeller från alla större leverantörer genom en enda API-nyckel. - -</details> - -<details> -<summary><b>💰 Billiga leverantörer (backup)</b></summary> - -### GLM-4.7 (Daglig återställning, $0,6/1M) - -1. Registrera dig: [Zhipu AI](https://open.bigmodel.cn/) -2. Hämta API-nyckel från Coding Plan -3. Instrumentpanel → Lägg till API-nyckel: - - Leverantör: `glm` - - API-nyckel: `your-key` - -**Använd:** `glm/glm-4.7` - -**Proffstips:** Coding Plan erbjuder 3× kvot till 1/7 kostnad! Återställ dagligen 10:00. - -### MiniMax M2.1 (5 timmars återställning, $0,20/1M) - -1. Registrera dig: [MiniMax](https://www.minimax.io/) -2. Hämta API-nyckel -3. Instrumentpanel → Lägg till API-nyckel - -**Använd:** `minimax/MiniMax-M2.1` - -**Proffstips:** Billigaste alternativet för långa sammanhang (1M tokens)! - -### Kimi K2 ($9/månad lägenhet) - -1. Prenumerera: [Moonshot AI](https://platform.moonshot.ai/) -2. Hämta API-nyckel -3. Instrumentpanel → Lägg till API-nyckel - -**Använd:** `kimi/kimi-latest` - -**Proffstips:** Fast $9/månad för 10 miljoner tokens = $0,90/1 miljon effektiv kostnad! - -</details> - -<details> -<summary><b>🆓 GRATIS leverantörer (nödbackup)</b></summary> - -### Qoder (5 GRATIS modeller via OAuth) - -```bash -Dashboard → Connect Qoder -→ Qoder OAuth login -→ Unlimited usage - -Models: - if/kimi-k2-thinking - if/qwen3-coder-plus - if/glm-4.7 - if/minimax-m2 - if/deepseek-r1 -``` - -### Qwen (4 GRATIS modeller via enhetskod) - -```bash -Dashboard → Connect Qwen -→ Device code authorization -→ Unlimited usage - -Models: - qw/qwen3-coder-plus - qw/qwen3-coder-flash -``` - -### Kiro (Claude FREE) - -```bash -Dashboard → Connect Kiro -→ AWS Builder ID or Google/GitHub -→ Unlimited usage - -Models: - kr/claude-sonnet-4.5 - kr/claude-haiku-4.5 -``` - -</details> - -<details> -<summary><b>🎨 Skapa kombinationer</b></summary> - -### Exempel 1: Maximera prenumeration → Billig backup - -``` -Dashboard → Combos → Create New - -Name: premium-coding -Models: - 1. cc/claude-opus-4-6 (Subscription primary) - 2. glm/glm-4.7 (Cheap backup, $0.6/1M) - 3. minimax/MiniMax-M2.1 (Cheapest fallback, $0.20/1M) - -Use in CLI: premium-coding -``` - -### Exempel 2: Endast gratis (noll kostnad) - -``` -Name: free-combo -Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) - -Cost: $0 forever! -``` - -</details> - -<details> -<summary><b>🔧 CLI-integration</b></summary> - -### Markör IDE - -``` -Settings → Models → Advanced: - OpenAI API Base URL: http://localhost:20128/v1 - OpenAI API Key: [from OmniRoute dashboard] - Model: cc/claude-opus-4-6 -``` - -### Claude Code - -Använd sidan **CLI Tools** i instrumentpanelen för konfiguration med ett klick, eller redigera `~/.claude/settings.json` manuellt. - -### Codex CLI - -```bash -export OPENAI_BASE_URL="http://localhost:20128" -export OPENAI_API_KEY="your-omniroute-api-key" - -codex "your prompt" -``` - -### OpenClaw - -**Alternativ 1 — Instrumentpanel (rekommenderas):** - -``` -Dashboard → CLI Tools → OpenClaw → Select Model → Apply -``` - -**Alternativ 2 — Manuell:** Redigera `~/.openclaw/openclaw.json`: - -```json -{ - "models": { - "providers": { - "omniroute": { - "baseUrl": "http://127.0.0.1:20128/v1", - "apiKey": "sk_omniroute", - "api": "openai-completions" - } - } - } -} -``` - -> **Obs!** OpenClaw fungerar endast med lokal OmniRoute. Använd `127.0.0.1` istället för `localhost` för att undvika problem med IPv6-upplösning. - -### Cline / Fortsätt / RooCode - -``` -Settings → API Configuration: - Provider: OpenAI Compatible - Base URL: http://localhost:20128/v1 - API Key: [from OmniRoute dashboard] - Model: if/kimi-k2-thinking -``` - -### OpenCode - -**Steg 1:** Lägg till OmniRoute som en anpassad leverantör: - -```bash -opencode -/connect -# Select "Other" → Enter ID: "omniroute" → Enter your OmniRoute API key -``` - -**Steg 2:** Skapa/redigera `opencode.json` i din projektrot: - -```json -{ - "$schema": "https://opencode.ai/config.json", - "provider": { - "omniroute": { - "npm": "@ai-sdk/openai-compatible", - "name": "OmniRoute", - "options": { - "baseURL": "http://localhost:20128/v1" - }, - "models": { - "cc/claude-sonnet-4-20250514": { "name": "Claude Sonnet 4" }, - "gg/gemini-2.5-pro": { "name": "Gemini 2.5 Pro" }, - "if/kimi-k2-thinking": { "name": "Kimi K2 (Free)" } - } - } - } -} -``` - -**Steg 3:** Välj modell i OpenCode: - -```bash -/models -# Select any OmniRoute model from the list -``` - -> **Tips:** Lägg till valfri modell som är tillgänglig i din OmniRoute `/v1/models` slutpunkt till avsnittet `models`. Använd formatet `provider/model-id` från din OmniRoute-instrumentpanel. - -</details> - ---- - -## 🐛 Felsökning - -<details> -<summary><b>Klicka för att utöka felsökningsguide</b></summary> - -**"Språkmodellen gav inga meddelanden"** - -- Leverantörskvoten är slut → Kontrollera instrumentpanelens kvotföljare -- Lösning: Använd kombinationsalternativ eller byt till billigare nivå - -**Taxebegränsning** - -- Prenumerationskvot ute → Fallback till GLM/MiniMax -- Lägg till kombination: `cc/claude-opus-4-6 → glm/glm-4.7 → if/kimi-k2-thinking` - -**OAuth-token har löpt ut** - -- Automatisk uppdatering av OmniRoute -- Om problemen kvarstår: Dashboard → Leverantör → Återanslut - -**Höga kostnader** - -- Kontrollera användningsstatistik i Dashboard → Kostnader -- Byt primär modell till GLM/MiniMax -- Använd gratis nivå (Gemini CLI, Qoder) för icke-kritiska uppgifter - -**Dashboard/API-portar är fel** - -- `PORT` är den kanoniska basporten (och API-porten som standard) -- `API_PORT` åsidosätter endast OpenAI-kompatibel API-lyssnare -- `DASHBOARD_PORT` åsidosätter endast instrumentpanelen/Next.js-lyssnaren -- Ställ in `NEXT_PUBLIC_BASE_URL` till din instrumentpanel/offentliga URL (för OAuth-återuppringningar) - -**Molnsynkroniseringsfel** - -- Verifiera att `BASE_URL` pekar på din körinstans -- Verifiera `CLOUD_URL`-punkter till din förväntade molnändpunkt -- Håll `NEXT_PUBLIC_*` värden i linje med värden på serversidan - -**Första inloggningen fungerar inte** - -- Kontrollera `INITIAL_PASSWORD` i `.env` -- Om det inte är inställt är reservlösenordet `123456` - -**Inga förfrågningsloggar** - -- Ställ in `ENABLE_REQUEST_LOGS=true` i `.env` - -**Anslutningstest visar "Invalid" för OpenAI-kompatibla leverantörer** - -- Många leverantörer exponerar inte en `/models` slutpunkt -- OmniRoute v1.0.6+ inkluderar reservvalidering via chattslutföranden -- Se till att baswebbadressen innehåller suffixet `/v1` - -### 🔐 OAuth på en fjärrserver - -<a name="oauth-on-a-remote-server"></a> -<a name="oauth-em-servidor-remoto"></a> - -> **⚠️ Viktigt för användare som kör OmniRoute på en VPS, Docker eller vilken fjärrserver som helst** - -#### Varför misslyckas Antigravity / Gemini CLI OAuth på fjärrservrar? - -**Antigravity** och **Gemini CLI**-leverantörerna använder **Google OAuth 2.0**. Google kräver att `redirect_uri` i OAuth-flödet exakt matchar en av de förregistrerade URI:erna i appens Google Cloud Console. - -OAuth-uppgifterna som paketeras i OmniRoute är registrerade **endast för `localhost`**. När du får åtkomst till OmniRoute på en fjärrserver (t.ex. `https://omniroute.myserver.com`), avvisar Google autentiseringen med: - -``` -Error 400: redirect_uri_mismatch -``` - -#### Lösning: Konfigurera dina egna OAuth-uppgifter - -Du måste skapa ett **OAuth 2.0 Client ID** i Google Cloud Console med din servers URI. - -#### Steg-för-steg - -**1. Öppna Google Cloud Console** - -Gå till: [https://console.cloud.google.com/apis/credentials](https://console.cloud.google.com/apis/credentials) - -**2. Skapa ett nytt OAuth 2.0-klient-ID** - -- Klicka på **"+ Skapa inloggningsuppgifter"** → **"OAuth-klient-ID"** -- Applikationstyp: **"Webbapplikation"** -- Namn: allt du gillar (t.ex. `OmniRoute Remote`) - -**3. Lägg till auktoriserade omdirigerings-URI:er** - -I fältet **"Auktoriserade omdirigerings-URI:er"** lägger du till: - -``` -https://your-server.com/callback -``` - -> Ersätt `your-server.com` med din servers domän eller IP (inkludera porten om det behövs, t.ex. `http://45.33.32.156:20128/callback`). - -**4. Spara och kopiera inloggningsuppgifterna** - -När du har skapat kommer Google att visa **klient-ID** och **klienthemlighet**. - -**5. Ställ in miljövariabler** - -I din `.env` (eller Docker-miljövariabler): - -```bash -# For Antigravity: -ANTIGRAVITY_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com -ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-your-secret - -# For Gemini CLI: -GEMINI_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com -GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -``` - -**6. Starta om OmniRoute** - -```bash -# npm: -npm run dev - -# Docker: -docker restart omniroute -``` - -**7. Försök ansluta igen** - -Dashboard → Leverantörer → Antigravity (eller Gemini CLI) → OAuth - -Google kommer nu att omdirigera korrekt till `https://your-server.com/callback`. - ---- - -#### Tillfällig lösning (utan anpassade autentiseringsuppgifter) - -Om du inte vill ställa in dina egna autentiseringsuppgifter just nu kan du fortfarande använda det **manuella URL-flödet**: - -1. OmniRoute öppnar Googles auktoriserings-URL -2. Efter auktorisering försöker Google omdirigera till `localhost` (vilket misslyckas på fjärrservern) -3. **Kopiera hela webbadressen** från webbläsarens adressfält (även om sidan inte laddas) -4. Klistra in den URL:en i fältet som visas i OmniRoute-anslutningsmodalen -5. Klicka på **"Anslut"** - -> Detta fungerar eftersom auktoriseringskoden i URL:en är giltig oavsett om omdirigeringssidan har laddats. - ---- - -<details> -<summary><b>🇧🇷 Versão em Português</b></summary> - -#### Hur kan du göra Antigravity / Tvilling CLI på fjärrkontroller? - -Os provedores **Antigravity** och **Gemini CLI** usam **Google OAuth 2.0** för autenticação. O Google exige que a `redirect_uri` usada no fluxo OAuth seja **exatamente** uma das URIs pré-cadastradas no Google Cloud Console do aplicativo. - -Som credenciais OAuth embutidas no OmniRoute estão cadastradas **apenas para `localhost`**. Quando você acessa o OmniRoute em um servidor remoto (ex: `https://omniroute.meuservidor.com`), o Google rejeita a autenticação com: - -``` -Error 400: redirect_uri_mismatch -``` - -#### Lösning: Konfigurera självständigt OAuth - -Você precisa criar um **OAuth 2.0 Client ID** no Google Cloud Console com a URI do seu service. - -#### Passo a passo - -**1. Åtkomst till Google Cloud Console** - -Abra: [https://console.cloud.google.com/apis/credentials](https://console.cloud.google.com/apis/credentials) - -**2. Crie um novo OAuth 2.0 Client ID** - -- Klicka på dem **"+ Skapa inloggningsuppgifter"** → **"OAuth-klient-ID"** -- Typo de aplicativo: **"Webbapplikation"** -- Namn: escolha qualquer nome (ex: `OmniRoute Remote`) - -**3. Adicione som auktoriserade omdirigerings-URI** - -Ingen campo **"Auktoriserade omdirigerings-URIs"**, adicione: - -``` -https://seu-servidor.com/callback -``` - -> Substitua `seu-servidor.com` pelo domínio ou IP do seu servidor (inclua a porta se necessário, ex: `http://45.33.32.156:20128/callback`). - -**4. Spara e kopia som credenciais** - -Após criar, o Google mostrará o **Client ID** e o **Client Secret**. - -**5. Konfigurera som variáveis de ambiente** - -No seu `.env` (ou nas variáveis de ambiente do Docker): - -```bash -# Para Antigravity: -ANTIGRAVITY_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com -ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret - -# Para Gemini CLI: -GEMINI_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com -GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -``` - -**6. Reinicie o OmniRoute** - -```bash -# Se usando npm: -npm run dev - -# Se usando Docker: -docker restart omniroute -``` - -**7. Tente conectar novamente** - -Dashboard → Leverantörer → Antigravity (ou Gemini CLI) → OAuth - -Agora o Google redirecionará corretamente para `https://seu-servidor.com/callback` e a autenticação funcionará. - ---- - -#### Lösning temporário (som konfigurerad credenciais próprias) - -Se não quiser criar credenciais próprias agora, ainda é possível usar o fluxo **manual de URL**: - -1. O OmniRoute abrirá en URL de autorização till Google -2. Após você autorizar, o Google tentará redirecionar para `localhost` (que falha no servidor remoto) -3. **Kopiera en webbadress komplett** da barra de endereço do seu webbläsare (mesmo que a página não carregue) -4. Cole essa URL no campo que aparece no modal de conexão do OmniRoute -5. Klicka på **"Anslut"** - -> Este workaround funciona porque o código de autorização na URL é válido independente do redirect ter carregado ou não. - -</details> - ---- - -</details> - -## 🛠️ Tech Stack - -<details> -<summary><b>Klicka för att expandera teknisk stackdetaljer</b></summary> - -- **Körtid**: Node.js 18–22 LTS (⚠️ Node.js 24+ stöds **inte** — `better-sqlite3` inbyggda binärer är inkompatibla) -- **Språk**: TypeScript 5.9 — **100 % TypeScript** över `src/` och `open-sse/` (noll `any` i kärnmoduler sedan v2.0) -- **Framework**: Next.js 16 + React 19 + Tailwind CSS 4 -- **Databas**: LowDB (JSON) + SQLite (domäntillstånd + proxyloggar + MCP-granskning + routingbeslut) -- **Schema**: Zod (MCP-verktyg I/O-validering, API-kontrakt) -- **Protokoll**: MCP (stdio/HTTP) + A2A v0.3 (JSON-RPC 2.0 + SSE) -- **Streaming**: Serversända händelser (SSE) -- **Auth**: OAuth 2.0 (PKCE) + JWT + API-nycklar + MCP Scoped Authorization -- **Test**: Node.js testlöpare + Vitest (900+ tester inklusive enhet, integration, E2E) -- **CI/CD**: GitHub-åtgärder (automatisk npm-publicering + Docker Hub vid release) -- **Webbplats**: [omniroute.online](https://omniroute.online) -- **Paket**: [npmjs.com/package/omniroute](https://www.npmjs.com/package/omniroute) -- **Docker**: [hub.docker.com/r/diegosouzapw/omniroute](https://hub.docker.com/r/diegosouzapw/omniroute) -- **Resiliens**: Strömbrytare, exponentiell backoff, anti-dundrande flock, TLS-spoofing, auto-combo självläkning - -</details> - ---- - -## 📖 Dokumentation - -| Dokument | Beskrivning | -| ---------------------------------------------- | ----------------------------------------------------------------- | -| [User Guide](docs/USER_GUIDE.md) | Leverantörer, kombinationer, CLI-integration, distribution | -| [API Reference](docs/API_REFERENCE.md) | Alla slutpunkter med exempel | -| [MCP Server](open-sse/mcp-server/README.md) | 16 MCP-verktyg, IDE-konfigurationer, Python/TS/Go-klienter | -| [A2A Server](src/lib/a2a/README.md) | JSON-RPC 2.0-protokoll, färdigheter, streaming, uppgiftshantering | -| [Auto-Combo Engine](docs/auto-combo.md) | 6-faktor poäng, lägespaket, självläkande | -| [Troubleshooting](docs/TROUBLESHOOTING.md) | Vanliga problem och lösningar | -| [Architecture](docs/ARCHITECTURE.md) | Systemarkitektur och interna delar | -| [Contributing](CONTRIBUTING.md) | Utvecklingsupplägg och riktlinjer | -| [OpenAPI Spec](docs/openapi.yaml) | OpenAPI 3.0-specifikation | -| [Security Policy](SECURITY.md) | Sårbarhetsrapportering och säkerhetsrutiner | -| [VM Deployment](docs/VM_DEPLOYMENT_GUIDE.md) | Komplett guide: VM + nginx + Cloudflare-installation | -| [Features Gallery](docs/FEATURES.md) | Visuell visning av instrumentpanelen med skärmdumpar | -| [Release Checklist](docs/RELEASE_CHECKLIST.md) | Steg för validering av pre-release | - ---- - -## 🗺️ Färdkarta - -OmniRoute har **210+ funktioner planerade** över flera utvecklingsfaser. Här är nyckelområdena: - -| Kategori | Planerade funktioner | Höjdpunkter | -| ------------------------------- | -------------------- | ------------------------------------------------------------------------------------------------------------ | -| 🧠 **Routing & intelligens** | 25+ | Routning med lägsta latens, taggbaserad routing, kvotförhandskontroll, val av P2C-konto | -| 🔒 **Säkerhet och efterlevnad** | 20+ | SSRF-härdning, cloaking av autentiseringsuppgifter, hastighetsgräns per endpoint, hanteringsnyckelomfattning | -| 📊 **Observerbarhet** | 15+ | OpenTelemetry-integration, kvotövervakning i realtid, kostnadsspårning per modell | -| 🔄 **Providerintegrationer** | 20+ | Dynamiskt modellregister, nedkylning av leverantörer, Codex för flera konton, Copilot-kvotanalys | -| ⚡ **Prestanda** | 15+ | Dubbla cachelager, promptcache, svarscache, streaming keepalive, batch API | -| 🌐 **Ekosystem** | 10+ | WebSocket API, config hot-reload, distribuerad config store, kommersiellt läge | - -### 🔜 Kommer snart - -- 🔗 **OpenCode Integration** — Inbyggt leverantörsstöd för OpenCode AI-kodnings-IDE -- 🔗 **TRAE Integration** — Fullständigt stöd för TRAE AI-utvecklingsramverket -- 📦 **Batch API** — Asynkron batchbearbetning för bulkförfrågningar -- 🎯 **Taggbaserad routing** — Ruttbegäranden baserade på anpassade taggar och metadata -- 💰 **Lägsta kostnadsstrategi** — Välj automatiskt den billigaste tillgängliga leverantören - -> 📝 Fullständiga funktionsspecifikationer tillgängliga i [**OMNI_TOKEN_342**](docs/new-features/) (217 detaljerade specifikationer) - ---- - -## 👥 Bidragsgivare - -[![Contributors](https://contrib.rocks/image?repo=diegosouzapw/OmniRoute&max=100&columns=20&anon=1)](https://github.com/diegosouzapw/OmniRoute/graphs/contributors) - -### Hur man bidrar - -1. Dela förvaret -2. Skapa din funktionsgren (`git checkout -b feature/amazing-feature`) -3. Bekräfta dina ändringar (`git commit -m 'Add amazing feature'`) -4. Tryck till grenen (`git push origin feature/amazing-feature`) -5. Öppna en Pull Request - -Se [CONTRIBUTING.md](CONTRIBUTING.md) för detaljerade riktlinjer. - -### Släpper en ny version - -```bash -# Create a release — npm publish happens automatically -gh release create v2.0.0 --title "v2.0.0" --generate-notes -``` - ---- - -## 📊 Stjärnhistorik - -## Stjärnskådare över tid - -## [![Stargazers over time](https://starchart.cc/diegosouzapw/OmniRoute.svg?variant=adaptive)](https://starchart.cc/diegosouzapw/OmniRoute) - -## 🙏 Tack - -Särskilt tack till **[9router](https://github.com/decolua/9router)** av **[decolua](https://github.com/decolua)** — originalprojektet som inspirerade denna gaffel. OmniRoute bygger på den otroliga grunden med ytterligare funktioner, multimodala API:er och en fullständig TypeScript-omskrivning. - -Särskilt tack till **[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)** — den ursprungliga Go-implementeringen som inspirerade denna JavaScript-port. - ---- - -## 📄 Licens - -MIT-licens - se [LICENSE](LICENSE) för detaljer. - ---- - -<div align="center"> - <sub>Byggd med ❤️ för utvecklare som kodar 24/7</sub> - <br/> - <sub><a href="https://omniroute.online">omniroute.online</a></sub> -</div> -<!-- GitHub-diskussioner aktiverade för gemenskapsfrågor och svar --> +👉 **[Read the Documentation here](docs/i18n/sv/README.md)** diff --git a/README.th.md b/README.th.md index 7fb97b63aa..488ef8db4f 100644 --- a/README.th.md +++ b/README.th.md @@ -1,2077 +1,5 @@ -# 🚀 OmniRoute — เกตเวย์ AI ฟรี +# 🌐 OmniRoute (th) -### อย่าหยุดเขียนโค้ด การกำหนดเส้นทางอัจฉริยะไปยัง **โมเดล AI ฟรีและราคาประหยัด** พร้อมทางเลือกสำรองอัตโนมัติ +The documentation has been formalized and moved to our centralized i18n structure. -_พร็อกซี API สากลของคุณ — จุดสิ้นสุดเดียว ผู้ให้บริการมากกว่า 67 ราย เวลาหยุดทำงานเป็นศูนย์ ขณะนี้มีการจัดการตัวแทน **MCP และ A2A** แล้ว_ - -**การแชทเสร็จสิ้น • การฝัง • การสร้างภาพ • วิดีโอ • เพลง • เสียง • การจัดอันดับใหม่ • **การค้นหาเว็บ** • เซิร์ฟเวอร์ MCP • โปรโตคอล A2A • TypeScript 100%** - ---- - -<div align="center"> - -[![npm version](https://img.shields.io/npm/v/omniroute?color=cb3837&logo=npm)](https://www.npmjs.com/package/omniroute) -[![npm downloads](https://img.shields.io/npm/dm/omniroute?color=cb3837&logo=npm&label=npm%20downloads)](https://www.npmjs.com/package/omniroute) -[![Docker Hub](https://img.shields.io/docker/v/diegosouzapw/omniroute?label=Docker%20Hub&logo=docker&color=2496ED)](https://hub.docker.com/r/diegosouzapw/omniroute) -[![Docker Pulls](https://img.shields.io/docker/pulls/diegosouzapw/omniroute?logo=docker&color=2496ED&label=docker%20pulls)](https://hub.docker.com/r/diegosouzapw/omniroute) -[![License](https://img.shields.io/github/license/diegosouzapw/OmniRoute)](https://github.com/diegosouzapw/OmniRoute/blob/main/LICENSE) -[![Website](https://img.shields.io/badge/Website-omniroute.online-blue?logo=google-chrome&logoColor=white)](https://omniroute.online) -[![WhatsApp](https://img.shields.io/badge/WhatsApp-Community-25D366?logo=whatsapp&logoColor=white)](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) - -[🌐 Website](https://omniroute.online) • [🚀 Quick Start](#-quick-start) • [💡 Features](#-key-features) • [📖 Docs](#-documentation) • [💰 Pricing](#-pricing-at-a-glance) • [💬 WhatsApp](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) - -</div> - -🌐 **มีจำหน่ายใน:** USA [English](README.md) | 🇧🇷 [Português (Brasil)](docs/i18n/pt-BR/README.md) | 🇪🇷 [Español](docs/i18n/es/README.md) | 🇫🇷 [Français](docs/i18n/fr/README.md) | 🇮🇹 [Italiano](docs/i18n/it/README.md) | 🇷🇺 [Русский](docs/i18n/ru/README.md) | 🇮🇷 [中文 (简体)](docs/i18n/zh-CN/README.md) | 🇩🇪 [Deutsch](docs/i18n/de/README.md) | 🇮รี [हिन्दी](docs/i18n/in/README.md) | 🇹🇭 [ไทย](docs/i18n/th/README.md) | เชอรี่ [Українська](docs/i18n/uk-UA/README.md) | 🇮🇱 [العربية](docs/i18n/ar/README.md) | [日本語](docs/i18n/ja/README.md) | 🇻🇷 [Tiếng Việt](docs/i18n/vi/README.md) | 🇧🇧 [Български](docs/i18n/bg/README.md) | 🇩🇪 [Dansk](docs/i18n/da/README.md) | 🇫🇮 [Suomi](docs/i18n/fi/README.md) | 🇮🇱 [עברית](docs/i18n/he/README.md) | 🇮🇹 [Magyar](docs/i18n/hu/README.md) | 🇮🇩 [Bahasa Indonesia](docs/i18n/id/README.md) | 🇰🇷 [한국어](docs/i18n/ko/README.md) | 🇲🇾 [Bahasa Melayu](docs/i18n/ms/README.md) | 🇮🇱 [Nederlands](docs/i18n/nl/README.md) | 🇴 [Norsk](docs/i18n/no/README.md) | 🇮🇹 [Português (Portugal)](docs/i18n/pt/README.md) | 🇷🇴 [Română](docs/i18n/ro/README.md) | 🇮🇱 [Polski](docs/i18n/pl/README.md) | 🇮🇹 [Slovenčina](docs/i18n/sk/README.md) | 🇲🇪 [Svenska](docs/i18n/sv/README.md) | 🇮🇹 [Filipino](docs/i18n/phi/README.md) | 🇮🇿 [Čeština](docs/i18n/cs/README.md) - ---- - -## 🆕 มีอะไรใหม่ใน v3.0.0 - -> **กำลังอัปเกรดจากเวอร์ชัน 2.9.5?** — ดู [full CHANGELOG](CHANGELOG.md#300--2026-03-22-release-candidate--not-yet-merged-to-main) สำหรับการเปลี่ยนแปลงทั้งหมด - -| พื้นที่ | เปลี่ยน | -| ----------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------- | -| 🔒 **ความปลอดภัยของ CodeQL** | แก้ไขการแจ้งเตือน CodeQL มากกว่า 10 รายการ: การทำซ้ำพหุนาม, การสุ่มที่ไม่ปลอดภัย, การแก้ไขการฉีดเชลล์ | -| ✅ **การตรวจสอบเส้นทาง** | ขณะนี้เส้นทาง API ทั้ง 176 เส้นทางได้รับการตรวจสอบความถูกต้องด้วย Zod schema + `validateBody()` — CI `check:route-validation:t06` pass | -| 🐛 **แท็ก omniModel รั่ว** | แท็ก `<omniModel>` ภายในจะไม่รั่วไหลไปยังไคลเอนต์อีกต่อไปในการตอบกลับการสตรีม SSE (#585) | -| 🔑 **API คีย์ที่ลงทะเบียน** | คีย์ API การจัดสรรอัตโนมัติผ่าน `POST /api/v1/registered-keys` พร้อมการบังคับใช้โควต้าต่อผู้ให้บริการ/บัญชี ความสามารถในการระบุตำแหน่ง พื้นที่เก็บข้อมูล SHA-256 และการรายงานปัญหา GitHub ที่เป็นตัวเลือก | -| 👁️ **Scoped API Key Reveal** 🆕 | Opt-in recovery of API keys via `ALLOW_API_KEY_REVEAL` | -| 🎨 **ไอคอนผู้ให้บริการ** | โลโก้ผู้ให้บริการมากกว่า 130+ รายการผ่าน `@lobehub/icons` (SVG) พร้อม PNG → ห่วงโซ่ทางเลือกทั่วไป | -| 🔄 **โมเดลซิงค์อัตโนมัติ** | ตัวกำหนดเวลา 24 ชั่วโมงและสลับ UI แบบแมนนวลเพื่อซิงค์รายการโมเดลสำหรับผู้ให้บริการที่เข้ากันได้กับ OpenAI ในตัวและแบบกำหนดเอง | -| 🌐 **OpenCode Zen/Go** | ผู้ให้บริการใหม่สองรายจาก @kang-heewon ผ่าน PR #530: ระดับฟรี + ระดับการสมัครสมาชิกผ่าน `OpencodeExecutor` | -| 🐛 **ราศีเมถุน CLI OAuth** | ข้อผิดพลาดที่ดำเนินการได้เมื่อ `GEMINI_OAUTH_CLIENT_SECRET` หายไปใน Docker (เป็นข้อผิดพลาดของ Google ที่เป็นความลับ) | -| 🐛 **การกำหนดค่า OpenCode** | `saveOpenCodeConfig()` ตอนนี้เขียน TOML ไปยัง `XDG_CONFIG_HOME` | ได้อย่างถูกต้องแล้ว | -| 🐛 **ปักหมุดแทนที่โมเดล** | `body.model` ตั้งค่าอย่างถูกต้องเป็น `pinnedModel` บนการป้องกันแคชบริบท | -| 🐛 **ลูป Codex/Claude** | `tool_result` บล็อกตอนนี้แปลงเป็นข้อความเพื่อหยุดการวนซ้ำไม่สิ้นสุด | -| 🐛 **เปลี่ยนเส้นทางการเข้าสู่ระบบ** | การเข้าสู่ระบบจะไม่ค้างอีกต่อไปหลังจากข้ามการตั้งค่ารหัสผ่าน | -| 🐛 **เส้นทาง Windows** | เส้นทาง MSYS2/Git-Bash (`/c/...`) ทำให้เป็นมาตรฐาน `C:\...` โดยอัตโนมัติ | - ---- - -## 🖼️ แดชบอร์ดหลัก - -<div align="center"> - <img src="./docs/screenshots/MainOmniRoute.png" alt="OmniRoute Dashboard" width="800"/> -</div> - ---- - -## 📸 ดูตัวอย่างแดชบอร์ด - -<details> -<summary><b>คลิกเพื่อดูภาพหน้าจอแดชบอร์ด</b>OMNI_TOKEN_460__ - -| หน้า | ภาพหน้าจอ | -| ------------------- | ------------------------------------------------- | -| **ผู้ให้บริการ** | ![Providers](docs/screenshots/01-providers.png) | -| **คอมโบ** | ![Combos](docs/screenshots/02-combos.png) | -| **การวิเคราะห์** | ![Analytics](docs/screenshots/03-analytics.png) | -| **สุขภาพ** | ![Health](docs/screenshots/04-health.png) | -| **นักแปล** | ![Translator](docs/screenshots/05-translator.png) | -| **การตั้งค่า** | ![Settings](docs/screenshots/06-settings.png) | -| **เครื่องมือ CLI** | ![CLI Tools](docs/screenshots/07-cli-tools.png) | -| **บันทึกการใช้งาน** | ![Usage](docs/screenshots/08-usage.png) | -| **ปลายทาง** | ![Endpoints](docs/screenshots/09-endpoint.png) | - -</details> - ---- - -### 🤖 ผู้ให้บริการ AI ฟรีสำหรับตัวแทนการเขียนโค้ดที่คุณชื่นชอบ - -_เชื่อมต่อเครื่องมือ IDE หรือ CLI ที่ขับเคลื่อนด้วย AI ผ่าน OmniRoute — เกตเวย์ API ฟรีสำหรับการเข้ารหัสไม่จำกัด_ - - <table> - <tr> - <td align="center" width="110"> - <a href="https://github.com/openclaw/openclaw"> - <img src="./public/providers/openclaw.png" alt="OpenClaw" width="48"/><br/> - <b>OpenClaw</b> - </a><br/> - <sub>⭐ 205K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/HKUDS/nanobot"> - <img src="./public/providers/nanobot.png" alt="NanoBot" width="48"/><br/> - <b>NanoBot</b> - </a><br/> - <sub>⭐ 20.9K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/sipeed/picoclaw"> - <img src="./public/providers/picoclaw.jpg" alt="PicoClaw" width="48"/><br/> - <b>PicoClaw</b> - </a><br/> - <sub>⭐ 14.6K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/zeroclaw-labs/zeroclaw"> - <img src="./public/providers/zeroclaw.png" alt="ZeroClaw" width="48"/><br/> - <b>ZeroClaw</b> - </a><br/> - <sub>⭐ 9.9K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/nearai/ironclaw"> - <img src="./public/providers/ironclaw.png" alt="IronClaw" width="48"/><br/> - <b>IronClaw</b> - </a><br/> - <sub>⭐ 2.1K</sub> - </td> - </tr> - <tr> - <td align="center" width="110"> - <a href="https://github.com/anomalyco/opencode"> - <img src="./public/providers/opencode.svg" alt="OpenCode" width="48"/><br/> - <b>OpenCode</b> - </a><br/> - <sub>⭐ 106K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/openai/codex"> - <img src="./public/providers/codex.png" alt="Codex CLI" width="48"/><br/> - <b>Codex CLI</b> - </a><br/> - <sub>⭐ 60.8K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/anthropics/claude-code"> - <img src="./public/providers/claude.png" alt="Claude Code" width="48"/><br/> - <b>Claude Code</b> - </a><br/> - <sub>⭐ 67.3K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/google-gemini/gemini-cli"> - <img src="./public/providers/gemini-cli.png" alt="Gemini CLI" width="48"/><br/> - <b>Gemini CLI</b> - </a><br/> - <sub>⭐ 94.7K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/Kilo-Org/kilocode"> - <img src="./public/providers/kilocode.png" alt="Kilo Code" width="48"/><br/> - <b>Kilo Code</b> - </a><br/> - <sub>⭐ 15.5K</sub> - </td> - </tr> - </table> - -<sub>📡 ตัวแทนทั้งหมดเชื่อมต่อผ่าน <code>http://localhost:20128/v1</code> หรือ <code>http://cloud.omniroute.online/v1</code> — การกำหนดค่าเดียว โมเดลไม่จำกัด และ โควต้า</sub> - ---- - -## 🤔 ทำไมต้อง OmniRoute? - -**หยุดเสียเงินและจำกัดขีดจำกัด:** - -- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> โควต้าการสมัครจะหมดอายุโดยไม่ได้ใช้ทุกเดือน -- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> การจำกัดอัตราจะทำให้คุณไม่สามารถเขียนโค้ดกลางคันได้ -- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> API ราคาแพง ($20-50/เดือนต่อผู้ให้บริการ) -- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> การสลับระหว่างผู้ให้บริการด้วยตนเอง - -**OmniRoute แก้ปัญหานี้:** - -- ✅ **เพิ่มการสมัครรับข้อมูลสูงสุด** - ติดตามโควต้า ใช้ทุกบิตก่อนรีเซ็ต -- ✅ **ทางเลือกสำรองอัตโนมัติ** - การสมัครสมาชิก → คีย์ API → ราคาถูก → ฟรี ไม่มีการหยุดทำงาน -- ✅ **หลายบัญชี** - หมุนเวียนระหว่างบัญชีต่อผู้ให้บริการ -- ✅ **สากล** - ใช้งานได้กับ Claude Code, Codex, Gemini CLI, Cursor, Cline, OpenClaw และเครื่องมือ CLI ใดๆ - ---- - -## 📧 สนับสนุน - -> 💌 **เข้าร่วมชุมชนของเรา!** [WhatsApp Group](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) — รับความช่วยเหลือ แบ่งปันเคล็ดลับ และอัปเดตอยู่เสมอ - -- **เว็บไซต์**: [omniroute.online](https://omniroute.online) -- **GitHub**: [github.com/diegosouzapw/OmniRoute](https://github.com/diegosouzapw/OmniRoute) -- **ปัญหา**: [github.com/diegosouzapw/OmniRoute/issues](https://github.com/diegosouzapw/OmniRoute/issues) -- **WhatsApp**: [Community Group](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) -- **การมีส่วนร่วม**: ดู [CONTRIBUTING.md](CONTRIBUTING.md) เปิด PR หรือเลือก `good first issue` -- **โปรเจ็กต์ดั้งเดิม**: [9router by decolua](https://github.com/decolua/9router) - -### 🐛 กำลังรายงานข้อผิดพลาดใช่ไหม - -เมื่อเปิดปัญหา โปรดเรียกใช้คำสั่ง system-info และแนบไฟล์ที่สร้างขึ้น: - -```bash -npm run system-info -``` - -สิ่งนี้จะสร้าง `system-info.txt` ด้วยเวอร์ชัน Node.js ของคุณ เวอร์ชัน OmniRoute รายละเอียดระบบปฏิบัติการ เครื่องมือ CLI ที่ติดตั้ง (qoder, gemini, claude, codex, antigravity, droid ฯลฯ) สถานะ Docker/PM2 และแพ็คเกจระบบ ทุกสิ่งที่เราต้องการในการทำซ้ำปัญหาของคุณอย่างรวดเร็ว แนบไฟล์โดยตรงกับปัญหา GitHub ของคุณ - ---- - -## 🔄 มันทำงานอย่างไร - -``` -┌─────────────┐ -│ Your CLI │ (Claude Code, Codex, Gemini CLI, OpenClaw, Cursor, Cline...) -│ Tool │ -└──────┬──────┘ - │ http://localhost:20128/v1 - ↓ -┌─────────────────────────────────────────┐ -│ OmniRoute (Smart Router) │ -│ • Format translation (OpenAI ↔ Claude) │ -│ • Quota tracking + Embeddings + Images │ -│ • Auto token refresh │ -└──────┬──────────────────────────────────┘ - │ - ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex, Gemini CLI - │ ↓ quota exhausted - ├─→ [Tier 2: API KEY] DeepSeek, Groq, xAI, Mistral, NVIDIA NIM, etc. - │ ↓ budget limit - ├─→ [Tier 3: CHEAP] GLM ($0.6/1M), MiniMax ($0.2/1M) - │ ↓ budget limit - └─→ [Tier 4: FREE] Qoder, Qwen, Kiro (unlimited) - -Result: Never stop coding, minimal cost -``` - ---- - -## 🎯 สิ่งที่ OmniRoute แก้ปัญหาได้ — 30 คะแนนปัญหาและกรณีการใช้งานจริง - -> **นักพัฒนาทุกคนที่ใช้เครื่องมือ AI ต้องเผชิญกับปัญหาเหล่านี้ทุกวัน** OmniRoute ถูกสร้างขึ้นเพื่อแก้ไขปัญหาทั้งหมด ตั้งแต่ค่าใช้จ่ายที่มากเกินไปไปจนถึงการบล็อกระดับภูมิภาค จากโฟลว์ OAuth ที่เสียหาย ไปจนถึงการทำงานของโปรโตคอลและความสามารถในการสังเกตระดับองค์กร - -<details> -<summary><b>💸 1. "ฉันจ่ายค่าสมัครสมาชิกราคาแพงแต่ยังคงถูกขัดจังหวะด้วยขีดจำกัด"</b></summary> - -นักพัฒนาจ่ายเงิน $20–200/เดือนสำหรับ Claude Pro, Codex Pro หรือ GitHub Copilot แม้จะจ่ายเงิน โควต้าก็มีเพดาน — การใช้งาน 5 ชม. ขีดจำกัดรายสัปดาห์ หรือขีดจำกัดอัตราต่อนาที เซสชันการเข้ารหัสกลาง ผู้ให้บริการหยุดการตอบสนอง และนักพัฒนาสูญเสียความลื่นไหลและประสิทธิภาพการทำงาน - -**OmniRoute แก้ปัญหาอย่างไร:** - -- **ทางเลือกสำรองอัจฉริยะ 4 ระดับ** — หากโควต้าการสมัครสมาชิกหมด จะเปลี่ยนเส้นทางไปยังคีย์ API → ราคาถูก → ฟรีโดยไม่มีการแทรกแซงด้วยตนเอง -- **การติดตามโควต้าแบบเรียลไทม์** — แสดงการใช้โทเค็นแบบเรียลไทม์พร้อมการนับถอยหลังการรีเซ็ต (5 ชม. รายวัน รายสัปดาห์) -- **การสนับสนุนหลายบัญชี** — หลายบัญชีต่อผู้ให้บริการพร้อมการหมุนเวียนอัตโนมัติ — เมื่อบัญชีหนึ่งหมด ให้สลับไปยังบัญชีถัดไป -- **คอมโบแบบกำหนดเอง** — ห่วงโซ่ทางเลือกที่ปรับแต่งได้พร้อมกลยุทธ์การปรับสมดุล 6 แบบ (เติมก่อน, ปัดเศษ, P2C, สุ่ม, ใช้น้อยที่สุด, ปรับต้นทุนให้เหมาะสม) -- **โควต้าธุรกิจ Codex** — การตรวจสอบโควต้าพื้นที่ทำงานของธุรกิจ/ทีมโดยตรงในแดชบอร์ด - -</details> - -<details> -<summary><b>🔌 2. "ฉันจำเป็นต้องใช้ผู้ให้บริการหลายราย แต่แต่ละรายมี API ที่แตกต่างกัน"</b></summary> - -OpenAI ใช้รูปแบบหนึ่ง Claude (Anthropic) ใช้อีกรูปแบบหนึ่ง Gemini ยังใช้อีกรูปแบบหนึ่ง หากผู้พัฒนาต้องการทดสอบโมเดลจากผู้ให้บริการหลายรายหรือทางเลือกระหว่างผู้ให้บริการ พวกเขาจำเป็นต้องกำหนดค่า SDK ใหม่ เปลี่ยนตำแหน่งข้อมูล และจัดการกับรูปแบบที่เข้ากันไม่ได้ ผู้ให้บริการแบบกำหนดเอง (FriendLI, NIM) มีจุดสิ้นสุดโมเดลที่ไม่ได้มาตรฐาน - -**OmniRoute แก้ปัญหาอย่างไร:** - -- **Unified Endpoint** — `http://localhost:20128/v1` เดียวทำหน้าที่เป็นพร็อกซีสำหรับผู้ให้บริการมากกว่า 67 ราย -- **การแปลรูปแบบ** — อัตโนมัติและโปร่งใส: OpenAI ↔ Claude ↔ Gemini ↔ Responses API -- **การฆ่าเชื้อการตอบสนอง** — ตัดช่องที่ไม่ได้มาตรฐาน (`x_groq`, `usage_breakdown`, `service_tier`) ที่ทำลาย OpenAI SDK v1.83+ -- **การปรับบทบาทให้เป็นมาตรฐาน** — แปลง `developer` → `system` สำหรับผู้ให้บริการที่ไม่ใช่ OpenAI `system` → `user` สำหรับ GLM/ERNIE -- **ลองแยกแท็ก** — แยกบล็อก `<think>` จากโมเดลอย่าง DeepSeek R1 ให้เป็น `reasoning_content` ที่ได้มาตรฐาน -- **เอาต์พุตที่มีโครงสร้างสำหรับราศีเมถุน** — `json_schema` → `responseMimeType`/`responseSchema` การแปลงอัตโนมัติ -- **`stream` มีค่าเริ่มต้นเป็น `false`** — สอดคล้องกับข้อกำหนด OpenAI หลีกเลี่ยง SSE ที่ไม่คาดคิดใน Python/Rust/Go SDK - -</details> - -<details> -<summary><b>🌐 3. "ผู้ให้บริการ AI ของฉันบล็อกภูมิภาค/ประเทศของฉัน"</b></summary> - -ผู้ให้บริการเช่น OpenAI/Codex บล็อกการเข้าถึงจากภูมิภาคทางภูมิศาสตร์บางแห่ง ผู้ใช้ได้รับข้อผิดพลาดเช่น `unsupported_country_region_territory` ในระหว่างการเชื่อมต่อ OAuth และ API สิ่งนี้น่าหงุดหงิดเป็นพิเศษสำหรับนักพัฒนาจากประเทศกำลังพัฒนา - -**OmniRoute แก้ปัญหาอย่างไร:** - -- **การกำหนดค่าพร็อกซี 3 ระดับ** — พร็อกซีที่กำหนดค่าได้ 3 ระดับ: ทั่วโลก (การรับส่งข้อมูลทั้งหมด) ต่อผู้ให้บริการ (ผู้ให้บริการรายเดียวเท่านั้น) และต่อการเชื่อมต่อ/คีย์ -- **ป้ายพร็อกซีที่ใช้รหัสสี** — ตัวบ่งชี้ภาพ: 🟢 พร็อกซีส่วนกลาง, 🟡 พร็อกซีผู้ให้บริการ, 🔵 พร็อกซีการเชื่อมต่อ แสดง IP เสมอ -- **การแลกเปลี่ยนโทเค็น OAuth ผ่านพร็อกซี** — โฟลว์ OAuth ยังผ่านพร็อกซีด้วย การแก้ไข `unsupported_country_region_territory` -- **การทดสอบการเชื่อมต่อผ่านพร็อกซี** — การทดสอบการเชื่อมต่อใช้พร็อกซีที่กำหนดค่าไว้ (ไม่มีการบายพาสโดยตรงอีกต่อไป) -- **รองรับ SOCKS5** — รองรับพร็อกซี SOCKS5 เต็มรูปแบบสำหรับการกำหนดเส้นทางขาออก -- **การปลอมแปลงลายนิ้วมือ TLS** — ลายนิ้วมือ TLS เหมือนเบราว์เซอร์ผ่าน `wreq-js` เพื่อเลี่ยงการตรวจจับบอท -- **🔏 การจับคู่ลายนิ้วมือ CLI** — เรียงลำดับส่วนหัวและฟิลด์เนื้อหาใหม่เพื่อให้ตรงกับลายเซ็นไบนารีของ CLI ดั้งเดิม ซึ่งช่วยลดความเสี่ยงในการติดธงสถานะบัญชีได้อย่างมาก IP พร็อกซีจะถูกเก็บรักษาไว้ — คุณจะได้รับทั้งการซ่อนตัว **และ** การปกปิด IP พร้อมกัน - -</details> - -<details> -<summary><b>🆓 4. "ฉันต้องการใช้ AI ในการเขียนโค้ด แต่ไม่มีเงิน"</b></summary> - -ไม่ใช่ทุกคนที่สามารถจ่าย $20–200/เดือน สำหรับการสมัครสมาชิก AI นักศึกษา นักพัฒนาจากประเทศเกิดใหม่ ผู้ที่สมัครเล่น และฟรีแลนซ์ต้องการเข้าถึงโมเดลคุณภาพโดยไม่มีค่าใช้จ่าย - -**OmniRoute แก้ปัญหาอย่างไร:** - -- **Free Tier Providers ในตัว** — รองรับเนทิฟสำหรับผู้ให้บริการฟรี 100%: Qoder (5 โมเดลไม่จำกัดผ่าน OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 โมเดลไม่จำกัด: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model) Kiro (Claude + AWS Builder ID ฟรี), Gemini CLI (ฟรี 180,000 โทเค็น/เดือน) -- **Ollama Cloud** — โมเดล Ollama ที่โฮสต์บนคลาวด์ที่ `api.ollama.com` พร้อมระดับ "การใช้งานระดับเบา" ฟรี ใช้คำนำหน้า `ollamacloud/<model>` -- **คอมโบฟรีเท่านั้น** — Chain `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/เดือน โดยไม่มีการหยุดทำงาน -- **NVIDIA NIM Free Access** — ~40 RPM dev-เข้าถึงฟรีตลอดกาลสำหรับโมเดลกว่า 70 รุ่นที่ build.nvidia.com (เปลี่ยนจากเครดิตเป็นการจำกัดอัตราที่แท้จริง) -- **กลยุทธ์การปรับต้นทุนให้เหมาะสม** — กลยุทธ์การกำหนดเส้นทางที่จะเลือกผู้ให้บริการที่ถูกที่สุดที่มีอยู่โดยอัตโนมัติ - -</details> - -<details> -<summary><b>🔒 5. "ฉันต้องปกป้องเกตเวย์ AI ของฉันจากการเข้าถึงที่ไม่ได้รับอนุญาต"</b></summary> - -เมื่อเปิดเผยเกตเวย์ AI ไปยังเครือข่าย (LAN, VPS, Docker) ใครก็ตามที่มีที่อยู่จะสามารถใช้โทเค็น/โควต้าของนักพัฒนาได้ หากไม่มีการป้องกัน API ก็เสี่ยงต่อการถูกนำไปใช้ในทางที่ผิด การแทรกทันที และการละเมิด - -**OmniRoute แก้ปัญหาอย่างไร:** - -- **การจัดการคีย์ API** — การสร้าง การหมุนเวียน และการกำหนดขอบเขตต่อผู้ให้บริการด้วยเพจ `/dashboard/api-manager` เฉพาะ -- **การอนุญาตระดับโมเดล** — จำกัดคีย์ API ให้กับโมเดลเฉพาะ (`openai/*` รูปแบบไวด์การ์ด) พร้อมสลับอนุญาตทั้งหมด/จำกัด -- **การป้องกันปลายทาง API** — ต้องใช้รหัสสำหรับ `/v1/models` และบล็อกผู้ให้บริการบางรายจากรายการ -- **Auth Guard + การป้องกัน CSRF** — เส้นทางแดชบอร์ดทั้งหมดที่ได้รับการป้องกันด้วยมิดเดิลแวร์ `withAuth` + โทเค็น CSRF -- **ตัวจำกัดอัตรา** — การจำกัดอัตราต่อ IP ด้วยหน้าต่างที่กำหนดค่าได้ -- **การกรอง IP** — รายการที่อนุญาต/รายการบล็อกสำหรับการควบคุมการเข้าถึง -- **Prompt Injection Guard** — การฆ่าเชื้อจากรูปแบบการแจ้งเตือนที่เป็นอันตราย -- **การเข้ารหัส AES-256-GCM** — ข้อมูลประจำตัวได้รับการเข้ารหัสเมื่อไม่ได้ใช้งาน - -</details> - -<details> -<summary><b>🛑 6. "ผู้ให้บริการของฉันหยุดทำงานและฉันสูญเสียขั้นตอนการเขียนโค้ด"</b></summary> - -ผู้ให้บริการ AI อาจไม่เสถียร ส่งกลับข้อผิดพลาด 5xx หรือถึงขีดจำกัดอัตราชั่วคราว หากผู้พัฒนาขึ้นอยู่กับผู้ให้บริการรายเดียว ผู้ให้บริการเหล่านั้นจะถูกขัดจังหวะ หากไม่มีเซอร์กิตเบรกเกอร์ การลองซ้ำหลายครั้งอาจทำให้แอปพลิเคชันเสียหายได้ - -**OmniRoute แก้ปัญหาอย่างไร:** - -- **เซอร์กิตเบรกเกอร์ต่อรุ่น** — เปิด/ปิดอัตโนมัติด้วยเกณฑ์และคูลดาวน์ที่กำหนดค่าได้ (ปิด/เปิด/เปิดครึ่ง) กำหนดขอบเขตต่อรุ่นเพื่อหลีกเลี่ยงการบล็อกแบบเรียงซ้อน -- **Exponential Backoff** — ความล่าช้าในการลองใหม่อย่างต่อเนื่อง -- **Anti-Thundering Herd** — Mutex + การป้องกันเซมาฟอร์จากพายุที่ลองใหม่พร้อมกัน -- **Combo Fallback Chains** — หากผู้ให้บริการหลักล้มเหลว จะตกผ่านห่วงโซ่โดยอัตโนมัติโดยไม่มีการแทรกแซง -- **Combo Circuit Breaker** — ปิดการใช้งานผู้ให้บริการที่ล้มเหลวภายในคอมโบเชนโดยอัตโนมัติ -- **แดชบอร์ดสุขภาพ** — การตรวจสอบสถานะการออนไลน์ สถานะของเซอร์กิตเบรกเกอร์ การล็อก สถิติแคช เวลาแฝง p50/p95/p99 - -</details> - -<details> -<summary><b>ดำเนินการ 7. "การกำหนดค่าเครื่องมือ AI แต่ละรายการนั้นน่าเบื่อและซ้ำซาก"</b></summary> - -นักพัฒนาใช้ Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code... เครื่องมือแต่ละอันจำเป็นต้องมีการกำหนดค่าที่แตกต่างกัน (จุดสิ้นสุด API, คีย์, โมเดล) การกำหนดค่าใหม่เมื่อเปลี่ยนผู้ให้บริการหรือรุ่นเป็นการเสียเวลา - -**OmniRoute แก้ปัญหาอย่างไร:** - -- **แดชบอร์ดเครื่องมือ CLI** — หน้าเฉพาะพร้อมการตั้งค่าเพียงคลิกเดียวสำหรับ Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline -- **GitHub Copilot Config Generator** — สร้าง `chatLanguageModels.json` สำหรับ VS Code พร้อมการเลือกรุ่นจำนวนมาก -- **ตัวช่วยสร้างการเริ่มต้นใช้งาน** — คำแนะนำการตั้งค่า 4 ขั้นตอนสำหรับผู้ใช้ครั้งแรก -- **จุดสิ้นสุดเดียว ทุกรุ่น** — กำหนดค่า `http://localhost:20128/v1` หนึ่งครั้ง เข้าถึงผู้ให้บริการมากกว่า 67 ราย - -</details> - -<details> -<summary><b>🔑 8. "การจัดการโทเค็น OAuth จากผู้ให้บริการหลายรายนั้นช่างเลวร้าย"</b></summary> - -Claude Code, Codex, Gemini CLI, Copilot — ทั้งหมดใช้ OAuth 2.0 โดยมีโทเค็นที่กำลังจะหมดอายุ นักพัฒนาจำเป็นต้องตรวจสอบสิทธิ์ซ้ำอย่างต่อเนื่อง จัดการกับ `client_secret is missing`, `redirect_uri_mismatch` และความล้มเหลวบนเซิร์ฟเวอร์ระยะไกล OAuth บน LAN/VPS เป็นปัญหาอย่างยิ่ง - -**OmniRoute แก้ปัญหาอย่างไร:** - -- **รีเฟรชโทเค็นอัตโนมัติ** — โทเค็น OAuth รีเฟรชในพื้นหลังก่อนหมดอายุ -- **OAuth 2.0 (PKCE) ในตัว** — โฟลว์อัตโนมัติสำหรับ Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder -- **OAuth หลายบัญชี** — หลายบัญชีต่อผู้ให้บริการผ่านการดึงโทเค็น JWT/ID -- **OAuth LAN/Remote Fix** — การตรวจจับ IP ส่วนตัวสำหรับ `redirect_uri` + โหมด URL แบบกำหนดเองสำหรับเซิร์ฟเวอร์ระยะไกล -- **OAuth หลัง Nginx** — ใช้ `window.location.origin` สำหรับความเข้ากันได้ของพร็อกซีย้อนกลับ -- **คู่มือ OAuth ระยะไกล** — คำแนะนำทีละขั้นตอนสำหรับข้อมูลรับรอง Google Cloud บน VPS/Docker - -</details> - -<details> -<summary><b>📊 9. "ฉันไม่รู้ว่าตัวเองใช้เงินไปเท่าไหร่หรือที่ไหน"</b></summary> - -นักพัฒนาซอฟต์แวร์ใช้ผู้ให้บริการแบบชำระเงินหลายราย แต่ไม่มีมุมมองการใช้จ่ายแบบรวมศูนย์ ผู้ให้บริการแต่ละรายมีแดชบอร์ดการเรียกเก็บเงินของตัวเอง แต่ไม่มีข้อมูลรวม ค่าใช้จ่ายที่ไม่คาดคิดอาจกองพะเนิน - -**OmniRoute แก้ปัญหาอย่างไร:** - -- **แดชบอร์ดการวิเคราะห์ต้นทุน** — การติดตามต้นทุนต่อโทเค็นและการจัดการงบประมาณต่อผู้ให้บริการ -- **ขีดจำกัดงบประมาณต่อระดับ** — เพดานการใช้จ่ายต่อระดับที่ทำให้เกิดทางเลือกสำรองอัตโนมัติ -- **การกำหนดค่าราคาต่อรุ่น** — ราคาที่กำหนดค่าได้ต่อรุ่น -- **สถิติการใช้งานต่อคีย์ API** — จำนวนคำขอและการประทับเวลาที่ใช้ล่าสุดต่อคีย์ -- **แดชบอร์ดการวิเคราะห์** — การ์ดสถิติ แผนภูมิการใช้งานโมเดล ตารางผู้ให้บริการพร้อมอัตราความสำเร็จและเวลาแฝง - -</details> - -<details> -<summary><b>🐛 10. "ฉันไม่สามารถวินิจฉัยข้อผิดพลาดและปัญหาในการเรียก AI ได้"</b></summary> - -เมื่อการโทรล้มเหลว ผู้พัฒนาจะไม่ทราบว่าเป็นการจำกัดอัตรา โทเค็นหมดอายุ รูปแบบไม่ถูกต้อง หรือข้อผิดพลาดของผู้ให้บริการ บันทึกที่แยกส่วนในเทอร์มินัลต่างๆ หากไม่สามารถสังเกตได้ การดีบักถือเป็นการลองผิดลองถูก - -**OmniRoute แก้ปัญหาอย่างไร:** - -- **Unified Logs Dashboard** — 4 แท็บ: บันทึกคำขอ, บันทึกพร็อกซี, บันทึกการตรวจสอบ, คอนโซล -- **โปรแกรมดูบันทึกคอนโซล** — โปรแกรมดูสไตล์เทอร์มินัลแบบเรียลไทม์พร้อมระดับรหัสสี เลื่อนอัตโนมัติ ค้นหา ตัวกรอง -- **SQLite Proxy Logs** — บันทึกถาวรที่รอดจากการรีสตาร์ทเซิร์ฟเวอร์ -- **Translator Playground** — โหมดแก้ไขข้อบกพร่อง 4 โหมด: Playground (การแปลรูปแบบ), Chat Tester (ไป-กลับ), ม้านั่งทดสอบ (เป็นกลุ่ม), Live Monitor (เรียลไทม์) -- **ร้องขอการตรวจวัดทางไกล** — p50/p95/p99 latency + การติดตาม X-Request-Id -- **การบันทึกตามไฟล์พร้อมการหมุน** — ตัวสกัดกั้นคอนโซลจะบันทึกทุกอย่างไปยังบันทึก JSON ด้วยการหมุนตามขนาด -- **รายงานข้อมูลระบบ** — `npm run system-info` สร้าง `system-info.txt` ด้วยสภาพแวดล้อมแบบเต็มของคุณ (เวอร์ชันโหนด, เวอร์ชัน OmniRoute, OS, เครื่องมือ CLI, สถานะ Docker/PM2) แนบมาเมื่อรายงานปัญหาเพื่อการคัดแยกทันที - -</details> - -<details> -<summary><b>🏗️ 11. "การปรับใช้และการบำรุงรักษาเกตเวย์นั้นซับซ้อน"</b></summary> - -การติดตั้ง การกำหนดค่า และการบำรุงรักษาพร็อกซี AI ในสภาพแวดล้อมที่แตกต่างกัน (ภายในเครื่อง, VPS, Docker, คลาวด์) ต้องใช้แรงงานมาก ปัญหาเช่นเส้นทางฮาร์ดโค้ด `EACCES` บนไดเร็กทอรี ข้อขัดแย้งของพอร์ต และการสร้างข้ามแพลตฟอร์มเพิ่มแรงเสียดทาน - -**OmniRoute แก้ปัญหาอย่างไร:** - -- **การติดตั้งทั่วโลก npm** — `npm install -g omniroute && omniroute` — เสร็จแล้ว -- **นักเทียบท่าหลายแพลตฟอร์ม** — AMD64 + ARM64 ดั้งเดิม (Apple Silicon, AWS Graviton, Raspberry Pi) -- **โปรไฟล์นักเทียบท่าเขียน** — `base` (ไม่มีเครื่องมือ CLI) และ `cli` (พร้อม Claude Code, Codex, OpenClaw) -- **แอป Electron Desktop** — แอปเนทีฟสำหรับ Windows/macOS/Linux พร้อมถาดระบบ เริ่มอัตโนมัติ โหมดออฟไลน์ -- **โหมดแยกพอร์ต** — API และแดชบอร์ดบนพอร์ตแยกกันสำหรับสถานการณ์ขั้นสูง (พร็อกซีย้อนกลับ เครือข่ายคอนเทนเนอร์) -- **Cloud Sync** — กำหนดค่าการซิงโครไนซ์ระหว่างอุปกรณ์ผ่าน Cloudflare Workers -- **การสำรองข้อมูล DB** — การสำรองข้อมูล กู้คืน ส่งออก และนำเข้าการตั้งค่าทั้งหมดโดยอัตโนมัติ - -</details> - -<details> -<summary><b>🌍 12. "อินเทอร์เฟซเป็นภาษาอังกฤษเท่านั้น และทีมของฉันไม่พูดภาษาอังกฤษ"</b></summary> - -ทีมในประเทศที่ไม่ได้ใช้ภาษาอังกฤษ โดยเฉพาะในละตินอเมริกา เอเชีย และยุโรป ประสบปัญหากับอินเทอร์เฟซที่ใช้ภาษาอังกฤษเท่านั้น อุปสรรคทางภาษาลดการนำไปใช้และเพิ่มข้อผิดพลาดในการกำหนดค่า - -**OmniRoute แก้ปัญหาอย่างไร:** - -- **แดชบอร์ด i18n — 30 ภาษา** — ทั้งหมด 500+ คีย์ที่แปล รวมถึงอารบิก บัลแกเรีย เดนมาร์ก เยอรมัน สเปน ฟินแลนด์ ฝรั่งเศส ฮิบรู ฮินดี ฮังการี อินโดนีเซีย อิตาลี ญี่ปุ่น เกาหลี มาเลย์ ดัตช์ นอร์เวย์ โปแลนด์ โปรตุเกส (PT/BR) โรมาเนีย รัสเซีย สโลวาเกีย สวีเดน ไทย ยูเครน เวียดนาม จีน ฟิลิปปินส์ อังกฤษ -- **รองรับ RTL** — รองรับภาษาอาหรับและฮีบรูจากขวาไปซ้าย -- **README หลายภาษา** — การแปลเอกสารฉบับสมบูรณ์ 30 รายการ -- **ตัวเลือกภาษา** — ไอคอนลูกโลกในส่วนหัวสำหรับการสลับแบบเรียลไทม์ - -</details> - -<details> -<summary><b>🔄 13. "ฉันต้องการมากกว่าการแชท — ฉันต้องการการฝัง รูปภาพ เสียง"</b></summary> - -AI ไม่ใช่แค่การแชทให้เสร็จสิ้นเท่านั้น นักพัฒนาจำเป็นต้องสร้างภาพ ถอดเสียง สร้างการฝังสำหรับ RAG จัดอันดับเอกสารใหม่ และกลั่นกรองเนื้อหา API แต่ละรายการมีจุดสิ้นสุดและรูปแบบที่แตกต่างกัน - -**OmniRoute แก้ปัญหาอย่างไร:** - -- **การฝัง** — `/v1/embeddings` พร้อมผู้ให้บริการ 6 รายและโมเดลมากกว่า 9 รายการ -- **การสร้างภาพ** — `/v1/images/generations` พร้อมผู้ให้บริการ 10 รายและโมเดลมากกว่า 20 รุ่น (OpenAI, xAI, Together, ดอกไม้ไฟ, Nebius, ไฮเปอร์โบลิก, NanoBanana, ต้านแรงโน้มถ่วง, SD WebUI, ComfyUI) -- **ข้อความเป็นวิดีโอ** — `/v1/videos/generations` — ComfyUI (AnimateDiff, SVD) และ SD WebUI -- **ข้อความเป็นเพลง** — `/v1/music/generations` — ComfyUI (เปิดเสียงที่เสถียร, MusicGen) -- **การถอดเสียง** — `/v1/audio/transcriptions` — Whisper + Nvidia NIM, HuggingFace, Qwen3 -- **การอ่านออกเสียงข้อความ** — `/v1/audio/speech` — ElevenLabs, Nvidia NIM, HuggingFace, Coqui, Tortoise, Qwen3, **Inworld**, **Cartesia**, **PlayHT**, + ผู้ให้บริการที่มีอยู่ -- **การกลั่นกรอง** — `/v1/moderations` — การตรวจสอบความปลอดภัยของเนื้อหา -- **การจัดอันดับใหม่** — `/v1/rerank` — การจัดอันดับความเกี่ยวข้องของเอกสารใหม่ -- **Responses API** — รองรับ `/v1/responses` เต็มรูปแบบสำหรับ Codex - -</details> - -<details> -<summary><b>🧪 14. "ฉันไม่มีวิธีทดสอบและเปรียบเทียบคุณภาพระหว่างรุ่นต่างๆ"</b></summary> - -นักพัฒนาต้องการทราบว่าโมเดลใดดีที่สุดสำหรับกรณีการใช้งานของพวกเขา เช่น โค้ด การแปล การใช้เหตุผล แต่การเปรียบเทียบด้วยตนเองนั้นช้า ไม่มีเครื่องมือประเมินแบบรวมอยู่ - -**OmniRoute แก้ปัญหาอย่างไร:** - -- **การประเมิน LLM** — การทดสอบชุดทองพร้อมเคสที่โหลดไว้ล่วงหน้า 10 เคส ซึ่งครอบคลุมการทักทาย คณิตศาสตร์ ภูมิศาสตร์ การสร้างโค้ด การปฏิบัติตาม JSON การแปล การมาร์กดาวน์ การปฏิเสธด้านความปลอดภัย -- **4 กลยุทธ์การจับคู่** — `exact`, `contains`, `regex`, `custom` (ฟังก์ชัน JS) -- **ม้านั่งทดสอบสนามเด็กเล่นสำหรับนักแปล** — การทดสอบเป็นกลุ่มที่มีอินพุตหลายอินพุตและเอาต์พุตที่คาดหวัง การเปรียบเทียบข้ามผู้ให้บริการ -- **เครื่องมือทดสอบการแชท** — ไป-กลับเต็มรูปแบบพร้อมการเรนเดอร์การตอบสนองด้วยภาพ -- **Live Monitor** — สตรีมคำขอทั้งหมดที่ไหลผ่านพร็อกซีแบบเรียลไทม์ - -</details> - -<details> -<summary><b>📈 15. "ฉันต้องปรับขนาดโดยไม่สูญเสียประสิทธิภาพ"</b></summary> - -เมื่อปริมาณคำขอเพิ่มขึ้น หากไม่มีการแคช คำถามเดียวกันจะทำให้เกิดต้นทุนซ้ำซ้อน หากไม่มีการระบุตัวตน คำขอซ้ำจะสูญเปล่าในการประมวลผล ต้องเคารพขีดจำกัดอัตราต่อผู้ให้บริการ - -**OmniRoute แก้ปัญหาอย่างไร:** - -- **Semantic Cache** — แคชสองชั้น (ลายเซ็น + ความหมาย) ช่วยลดต้นทุนและเวลาแฝง -- **คำขอ Idempotency** — หน้าต่างการขจัดข้อมูลซ้ำซ้อน 5 วินาทีสำหรับคำขอที่เหมือนกัน -- **การตรวจจับขีดจำกัดอัตรา** — RPM ต่อผู้ให้บริการ ช่องว่างขั้นต่ำ และการติดตามพร้อมกันสูงสุด -- **ขีดจำกัดอัตราที่แก้ไขได้** — ค่าเริ่มต้นที่กำหนดค่าได้ในการตั้งค่า → ความยืดหยุ่นด้วยความคงอยู่ -- **แคชการตรวจสอบคีย์ API** — แคช 3 ระดับสำหรับประสิทธิภาพการผลิต -- **แดชบอร์ดสุขภาพพร้อมการวัดและส่งข้อมูลทางไกล** — เวลาแฝง p50/p95/p99 สถิติแคช เวลาทำงาน - -</details> - -<details> -<summary><b>🤖 16. "ฉันต้องการควบคุมพฤติกรรมของโมเดลทั่วโลก"</b></summary> - -นักพัฒนาที่ต้องการคำตอบทั้งหมดในภาษาใดภาษาหนึ่ง มีน้ำเสียงเฉพาะ หรือต้องการจำกัดโทเค็นการให้เหตุผล การกำหนดค่านี้ในทุกเครื่องมือ/คำขอไม่สามารถทำได้ - -**OmniRoute แก้ปัญหาอย่างไร:** - -- **การแจ้งพร้อมท์ของระบบ** — พร้อมท์ทั่วโลกนำไปใช้กับคำขอทั้งหมด -- **การตรวจสอบงบประมาณการคิด** — การควบคุมการจัดสรรโทเค็นการให้เหตุผลต่อคำขอ (การส่งผ่าน, อัตโนมัติ, กำหนดเอง, การปรับตัว) -- **6 กลยุทธ์การกำหนดเส้นทาง** — กลยุทธ์ระดับโลกที่กำหนดวิธีกระจายคำขอ -- **Wildcard Router** — รูปแบบ `provider/*` กำหนดเส้นทางแบบไดนามิกไปยังผู้ให้บริการใดๆ -- **Combo Enable/Disable Toggle** — สลับคอมโบได้โดยตรงจากแดชบอร์ด -- **สลับผู้ให้บริการ** — เปิด/ปิดการเชื่อมต่อทั้งหมดสำหรับผู้ให้บริการได้ด้วยคลิกเดียว -- **ผู้ให้บริการที่ถูกบล็อก** — ไม่รวมผู้ให้บริการเฉพาะจากรายการ `/v1/models` - -</details> - -<details> -<summary><b>🧰 17. "ฉันต้องการเครื่องมือ MCP เนื่องจากความสามารถของผลิตภัณฑ์ระดับเฟิร์สคลาส"</b></summary> - -เกตเวย์ AI จำนวนมากเปิดเผย MCP เป็นเพียงรายละเอียดการใช้งานที่ซ่อนอยู่เท่านั้น ทีมจำเป็นต้องมีชั้นการปฏิบัติงานที่มองเห็นได้และจัดการได้ - -**OmniRoute แก้ปัญหาอย่างไร:** - -- MCP ปรากฏในการนำทางแดชบอร์ดและแท็บโปรโตคอลปลายทาง -- หน้าการจัดการ MCP เฉพาะพร้อมกระบวนการ เครื่องมือ ขอบเขต และการตรวจสอบ -- การเริ่มต้นอย่างรวดเร็วในตัวสำหรับ `omniroute --mcp` และการเริ่มต้นใช้งานไคลเอ็นต์ - -</details> - -<details> -<summary><b>🧠 18. "ฉันต้องการการประสาน A2A พร้อมเส้นทางงานซิงค์ + สตรีม"</b></summary> - -เวิร์กโฟลว์ของตัวแทนต้องการทั้งการตอบกลับโดยตรงและการดำเนินการสตรีมที่ใช้เวลานานพร้อมการควบคุมวงจรชีวิต - -**OmniRoute แก้ปัญหาอย่างไร:** - -- จุดสิ้นสุด A2A JSON-RPC (`POST /a2a`) พร้อมด้วย `message/send` และ `message/stream` -- การสตรีม SSE พร้อมการเผยแพร่สถานะเทอร์มินัล -- API วงจรชีวิตของงานสำหรับ `tasks/get` และ `tasks/cancel` - -</details> - -<details> -<summary><b>🛰️ 19. "ฉันต้องการความสมบูรณ์ของกระบวนการ MCP ที่แท้จริง ไม่ใช่สถานะที่เดาได้"</b></summary> - -ทีมปฏิบัติการจำเป็นต้องทราบว่า MCP ยังคงอยู่จริงหรือไม่ ไม่ใช่แค่ว่า API สามารถเข้าถึงได้หรือไม่ - -**OmniRoute แก้ปัญหาอย่างไร:** - -- ไฟล์ฮาร์ทบีทรันไทม์พร้อม PID, การประทับเวลา, การขนส่ง, จำนวนเครื่องมือ และโหมดขอบเขต -- API สถานะ MCP รวมการเต้นของหัวใจ + กิจกรรมล่าสุด -- การ์ดสถานะ UI สำหรับความสดใหม่ของกระบวนการ/สถานะการออนไลน์/การเต้นของหัวใจ - -</details> - -<details> -<summary><b>📋 20. "ฉันต้องการการทำงานของเครื่องมือ MCP ที่ตรวจสอบได้"</b></summary> - -เมื่อเครื่องมือเปลี่ยนแปลงการกำหนดค่าหรือทริกเกอร์การดำเนินการ ทีมจำเป็นต้องมีการตรวจสอบย้อนกลับทางนิติวิทยาศาสตร์ - -**OmniRoute แก้ปัญหาอย่างไร:** - -- การบันทึกการตรวจสอบที่ได้รับการสนับสนุนจาก SQLite สำหรับการเรียกใช้เครื่องมือ MCP -- กรองตามเครื่องมือ ความสำเร็จ/ความล้มเหลว คีย์ API และการแบ่งหน้า -- ตารางการตรวจสอบแดชบอร์ด + จุดสิ้นสุดสถิติสำหรับระบบอัตโนมัติ - -</details> - -<details> -<summary><b>🔐 21. "ฉันต้องการสิทธิ์ MCP ที่มีการกำหนดขอบเขตต่อการบูรณาการ"</b></summary> - -ไคลเอนต์ที่แตกต่างกันควรมีสิทธิ์เข้าถึงหมวดหมู่เครื่องมือน้อยที่สุด - -**OmniRoute แก้ปัญหาอย่างไร:** - -- ขอบเขต MCP แบบละเอียด 9 แบบสำหรับการเข้าถึงเครื่องมือที่ควบคุม -- การบังคับใช้ขอบเขตและการมองเห็นใน UI การจัดการ MCP -- ท่าทางเริ่มต้นที่ปลอดภัยสำหรับเครื่องมือในการปฏิบัติงาน - -</details> - -<details> -<summary><b>⚙️ 22. "ฉันต้องการการควบคุมการปฏิบัติงานโดยไม่ต้องปรับใช้ใหม่"</b></summary> - -ทีมต้องการการเปลี่ยนแปลงรันไทม์อย่างรวดเร็วระหว่างเหตุการณ์หรือเหตุการณ์ต้นทุน - -**OmniRoute แก้ปัญหาอย่างไร:** - -- สลับการเปิดใช้งานคอมโบโดยตรงจากแดชบอร์ด MCP -- ใช้โปรไฟล์ความยืดหยุ่นจากชุดนโยบายที่กำหนดไว้ล่วงหน้า -- รีเซ็ตสถานะเซอร์กิตเบรกเกอร์จากแผงการทำงานเดียวกัน - -</details> - -<details> -<summary><b>🔄 23. "ฉันต้องการการมองเห็นและการยกเลิกวงจรการใช้งาน A2A แบบสด"</b></summary> - -หากไม่มีการมองเห็นวงจรการใช้งาน เหตุการณ์ของงานจะยากต่อการคัดแยก - -**OmniRoute แก้ปัญหาอย่างไร:** - -- รายการงาน/การกรองตามสถานะ/ทักษะพร้อมการแบ่งหน้า -- เจาะลึกข้อมูลเมตาของงาน เหตุการณ์ และสิ่งประดิษฐ์ -- จุดสิ้นสุดการยกเลิกงานและการดำเนินการ UI พร้อมการยืนยัน - -</details> - -<details> -<summary><b>🌊 24. "ฉันต้องการเมตริกสตรีมที่ใช้งานอยู่สำหรับโหลด A2A"</b></summary> - -เวิร์กโฟลว์การสตรีมจำเป็นต้องมีข้อมูลเชิงลึกในการดำเนินงานเกี่ยวกับการทำงานพร้อมกันและการเชื่อมต่อแบบสด - -**OmniRoute แก้ปัญหาอย่างไร:** - -- ตัวนับสตรีมที่ใช้งานรวมอยู่ในสถานะ A2A -- การประทับเวลางานล่าสุดและการนับต่อรัฐ -- การ์ดแดชบอร์ด A2A สำหรับการตรวจสอบการปฏิบัติงานแบบเรียลไทม์ - -</details> - -<details> -<summary><b>🪪 25. "ฉันต้องการการค้นพบเอเจนต์มาตรฐานสำหรับลูกค้า"</b></summary> - -ไคลเอนต์และผู้ควบคุมภายนอกต้องการเมตาดาต้าที่เครื่องอ่านได้เพื่อการเริ่มต้นใช้งาน - -**OmniRoute แก้ปัญหาอย่างไร:** - -- บัตรตัวแทนเปิดเผยที่ `/.well-known/agent.json` -- ความสามารถและทักษะที่แสดงใน UI การจัดการ -- API สถานะ A2A รวมถึงข้อมูลเมตาการค้นพบสำหรับระบบอัตโนมัติ - -</details> - -<details> -<summary><b>🧭 26. "ฉันต้องการการค้นพบโปรโตคอลใน UX ผลิตภัณฑ์"</b></summary> - -หากผู้ใช้ไม่พบพื้นผิวของโปรโตคอล การนำไปใช้และคุณภาพการสนับสนุนจะลดลง - -**OmniRoute แก้ปัญหาอย่างไร:** - -- หน้า **ปลายทาง** รวมพร้อมแท็บสำหรับตำแหน่งข้อมูลพร็อกซี, MCP, A2A และ API -- สลับสถานะบริการอินไลน์ (ออนไลน์/ออฟไลน์) สำหรับ MCP และ A2A -- ลิงก์จากภาพรวมไปยังแท็บการจัดการเฉพาะ - -</details> - -<details> -<summary><b>🧪 27. "ฉันต้องการการตรวจสอบโปรโตคอลแบบ end-to-end กับไคลเอนต์จริง"</b></summary> - -การทดสอบจำลองไม่เพียงพอที่จะตรวจสอบความเข้ากันได้ของโปรโตคอลก่อนเผยแพร่ - -**OmniRoute แก้ปัญหาอย่างไร:** - -- ชุด E2E ที่บูทแอปและใช้การขนส่งไคลเอนต์ MCP SDK จริง -- ไคลเอนต์ A2A ทดสอบการค้นหา ส่ง สตรีม รับ และยกเลิกโฟลว์ -- ยืนยันการตรวจสอบข้ามกับการตรวจสอบ MCP และ API งาน A2A - -</details> - -<details> -<summary><b>📡 28. "ฉันต้องการความสามารถในการสังเกตแบบรวมศูนย์ในทุกอินเทอร์เฟซ"</b></summary> - -การแยกความสามารถในการสังเกตตามโปรโตคอลทำให้เกิดจุดบอดและ MTTR ที่ยาวขึ้น - -**OmniRoute แก้ปัญหาอย่างไร:** - -- แดชบอร์ด/บันทึก/การวิเคราะห์แบบรวมในผลิตภัณฑ์เดียว -- สุขภาพ + การตรวจสอบ + ขอการตรวจวัดทางไกลผ่านเลเยอร์ OpenAI, MCP และ A2A -- API การดำเนินงานสำหรับสถานะและระบบอัตโนมัติ - -</details> - -<details> -<summary><b>💼 29. "ฉันต้องการรันไทม์หนึ่งรายการสำหรับพร็อกซี + เครื่องมือ + การจัดการเอเจนต์"</b></summary> - -การใช้บริการแยกกันจำนวนมากจะเพิ่มต้นทุนการดำเนินงานและโหมดความล้มเหลว - -**OmniRoute แก้ปัญหาอย่างไร:** - -- พร็อกซีที่เข้ากันได้กับ OpenAI, เซิร์ฟเวอร์ MCP และเซิร์ฟเวอร์ A2A ในสแต็กเดียว -- การรับรองความถูกต้องที่ใช้ร่วมกัน ความยืดหยุ่น การจัดเก็บข้อมูล และความสามารถในการสังเกต -- รูปแบบนโยบายที่สอดคล้องกันในทุกรูปแบบการโต้ตอบ - -</details> - -<details> -<summary><b>🚀 30. "ฉันต้องจัดส่งเวิร์กโฟลว์เอเจนต์โดยไม่ต้องใช้การแผ่ขยายโค้ดกาว"</b></summary> - -ทีมจะสูญเสียความเร็วเมื่อรวมบริการและสคริปต์เฉพาะกิจหลายรายการเข้าด้วยกัน - -**OmniRoute แก้ปัญหาอย่างไร:** - -- กลยุทธ์อุปกรณ์ปลายทางแบบครบวงจรสำหรับลูกค้าและตัวแทน -- UIs การจัดการโปรโตคอลในตัวและเส้นทางการตรวจสอบควัน -- รากฐานที่พร้อมสำหรับการผลิต (ความปลอดภัย การบันทึก ความยืดหยุ่น การสำรองข้อมูล) - -</details> - -### Playbook ตัวอย่าง (กรณีการใช้งานแบบรวม) - -**Playbook A: เพิ่มการสมัครสมาชิกแบบชำระเงินให้สูงสุด + การสำรองข้อมูลราคาถูก** - -```txt -Combo: "maximize-claude" - 1. cc/claude-opus-4-6 - 2. glm/glm-4.7 - 3. if/kimi-k2-thinking - -Monthly cost: $20 + small backup spend -Outcome: higher quality, near-zero interruption -``` - -**Playbook B: สแต็คการเขียนโค้ดแบบไม่มีค่าใช้จ่าย** - -```txt -Combo: "free-forever" - 1. gc/gemini-3-flash - 2. if/kimi-k2-thinking - 3. qw/qwen3-coder-plus - -Monthly cost: $0 -Outcome: stable free coding workflow -``` - -**Playbook C: ห่วงโซ่ทางเลือกที่เปิดตลอด 24 ชั่วโมงทุกวัน** - -```txt -Combo: "always-on" - 1. cc/claude-opus-4-6 - 2. cx/gpt-5.2-codex - 3. glm/glm-4.7 - 4. minimax/MiniMax-M2.1 - 5. if/kimi-k2-thinking - -Outcome: deep fallback depth for deadline-critical workloads -``` - -**Playbook D: ตัวแทนดำเนินการด้วย MCP + A2A** - -```txt -1) Start MCP transport (`omniroute --mcp`) for tool-driven operations -2) Run A2A tasks via `message/send` and `message/stream` -3) Observe via /dashboard/endpoint (MCP and A2A tabs) -4) Toggle services via inline status controls -``` - ---- - -## 🆓 เริ่มฟรี — ต้นทุนการกำหนดค่าเป็นศูนย์ - -> ตั้งค่าการเข้ารหัส AI ในไม่กี่นาทีที่ **$0/เดือน** เชื่อมต่อบัญชีฟรีเหล่านี้และใช้คอมโบ **Free Stack** ในตัว - -| ขั้นตอน | การกระทำ | ผู้ให้บริการปลดล็อคแล้ว | -| ------- | ----------------------------------------------- | ------------------------------------------------------------ | -| 1 | เชื่อมต่อ **Kiro** (AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 — **ไม่จำกัด** | -| 2 | เชื่อมต่อ **Qoder** (Google OAuth) | kimi-k2-คิด, qwen3-coder-plus, deepseek-r1... — **ไม่จำกัด** | -| 3 | เชื่อมต่อ **Qwen** (รหัสอุปกรณ์) | qwen3-coder-plus, qwen3-coder-flash... — **ไม่จำกัด** | -| 4 | เชื่อมต่อ **Gemini CLI** (Google OAuth) | gemini-3-flash, gemini-2.5-pro — **ฟรี 180K/เดือน** | -| 5 | `/dashboard/combos` → **สแต็คฟรี ($0)** เทมเพลต | Round-robin ผู้ให้บริการฟรีทั้งหมดโดยอัตโนมัติ | - -**ชี้ IDE/CLI ใดๆ ไปที่:** `http://localhost:20128/v1` · คีย์ API: `any-string` · เสร็จสิ้น - -> **ความคุ้มครองเพิ่มเติมเพิ่มเติม (ฟรี):** คีย์ Groq API (ฟรี 30 RPM), NVIDIA NIM (ฟรี 40 RPM, รุ่น 70+), Cerebras (1M tok/วัน), คีย์ LongCat API (โทเค็น 50M/วัน!), Cloudflare Workers AI (10K Neurons/วัน, รุ่น 50+) - -## ⚡ เริ่มต้นอย่างรวดเร็ว - -### 1) ติดตั้งและรัน - -```bash -npm install -g omniroute -omniroute -``` - -> **ผู้ใช้ pnpm:** รัน `pnpm approve-builds -g` หลังการติดตั้งเพื่อเปิดใช้งานสคริปต์เนทิฟบิลด์ที่ `better-sqlite3` และ `@swc/core` ต้องการ: -> -> ```bash -> pnpm install -g omniroute -> pnpm approve-builds -g # Select all packages → approve -> omniroute -> ``` - -แดชบอร์ดเปิดที่ `http://localhost:20128` และ URL ฐาน API คือ `http://localhost:20128/v1` - -| คำสั่ง | คำอธิบาย | -| ----------------------- | ------------------------------------------------------------------ | -| `omniroute` | เริ่มต้นเซิร์ฟเวอร์ (`PORT=20128`, API และแดชบอร์ดบนพอร์ตเดียวกัน) | -| `omniroute --port 3000` | ตั้งค่าพอร์ต Canonical/API เป็น 3000 | -| `omniroute --mcp` | เริ่มเซิร์ฟเวอร์ MCP (การขนส่ง stdio) | -| `omniroute --no-open` | อย่าเปิดเบราว์เซอร์อัตโนมัติ | -| `omniroute --help` | แสดงความช่วยเหลือ | - -โหมดแยกพอร์ตเสริม: - -```bash -PORT=20128 DASHBOARD_PORT=20129 omniroute -# API: http://localhost:20128/v1 -# Dashboard: http://localhost:20129 -``` - -### 2) เชื่อมต่อผู้ให้บริการและสร้างคีย์ API ของคุณ - -1. เปิดแดชบอร์ด → `Providers` และเชื่อมต่อผู้ให้บริการอย่างน้อยหนึ่งราย (คีย์ OAuth หรือ API) -2. เปิดแดชบอร์ด → `Endpoints` และสร้างคีย์ API -3. (ทางเลือก) เปิดแดชบอร์ด → `Combos` และตั้งค่าห่วงโซ่ทางเลือกของคุณ - -### 3) ชี้เครื่องมือเขียนโค้ดของคุณไปที่ OmniRoute - -```txt -Base URL: http://localhost:20128/v1 -API Key: [copy from Endpoint page] -Model: if/kimi-k2-thinking (or any provider/model prefix) -``` - -ทำงานร่วมกับ Claude Code, Codex CLI, Gemini CLI, Cursor, Cline, OpenClaw, OpenCode และ SDK ที่เข้ากันได้กับ OpenAI - -### 4) เปิดใช้งานและตรวจสอบโปรโตคอล (v2.0) - -**MCP (สำหรับการดำเนินการที่ขับเคลื่อนด้วยเครื่องมือ):** - -```bash -omniroute --mcp -``` - -จากนั้นเชื่อมต่อไคลเอนต์ MCP ของคุณผ่าน `stdio` และเครื่องมือทดสอบเช่น: - -- `omniroute_get_health` -- `omniroute_list_combos` - -**A2A (สำหรับเวิร์กโฟลว์ตัวแทนถึงตัวแทน):** - -```bash -curl http://localhost:20128/.well-known/agent.json -``` - -```bash -curl -X POST http://localhost:20128/a2a \ - -H 'content-type: application/json' \ - -d '{"jsonrpc":"2.0","id":"quickstart","method":"message/send","params":{"skill":"quota-management","messages":[{"role":"user","content":"Give me a short quota summary."}]}}' -``` - -### 5) ตรวจสอบทุกอย่างตั้งแต่ต้นจนจบ (แนะนำ) - -```bash -npm run test:protocols:e2e -``` - -ชุดนี้ตรวจสอบโฟลว์ MCP และไคลเอ็นต์ A2A จริงกับแอปที่รันอยู่ - -### ทางเลือก: เรียกใช้จากแหล่งที่มา - -```bash -cp .env.example .env -npm install -PORT=20128 DASHBOARD_PORT=20129 NEXT_PUBLIC_BASE_URL=http://localhost:20129 npm run dev -``` - ---- - -## 🐳 ด็อคเกอร์ - -OmniRoute มีให้เป็นอิมเมจ Docker สาธารณะบน [Docker Hub](https://hub.docker.com/r/diegosouzapw/omniroute) - -**วิ่งด่วน:** - -```bash -docker run -d \ - --name omniroute \ - --restart unless-stopped \ - -p 20128:20128 \ - -v omniroute-data:/app/data \ - diegosouzapw/omniroute:latest -``` - -**พร้อมไฟล์สภาพแวดล้อม:** - -```bash -# Copy and edit .env first -cp .env.example .env - -docker run -d \ - --name omniroute \ - --restart unless-stopped \ - --env-file .env \ - -p 20128:20128 \ - -v omniroute-data:/app/data \ - diegosouzapw/omniroute:latest -``` - -**การใช้นักเทียบท่าเขียน:** - -```bash -# Base profile (no CLI tools) -docker compose --profile base up -d - -# CLI profile (Claude Code, Codex, OpenClaw built-in) -docker compose --profile cli up -d -``` - -| รูปภาพ | แท็ก | ขนาด | คำอธิบาย | -| ------------------------ | -------- | ------ | ---------------- | -| `diegosouzapw/omniroute` | `latest` | ~250MB | รุ่นเสถียรล่าสุด | -| `diegosouzapw/omniroute` | `1.0.3` | ~250MB | เวอร์ชันปัจจุบัน | - ---- - -## 🖥️ แอปเดสก์ท็อป — ออฟไลน์และเปิดตลอดเวลา - -> 🆕 **ใหม่!** OmniRoute พร้อมใช้งานแล้วในรูปแบบ **แอปพลิเคชันเดสก์ท็อปดั้งเดิม** สำหรับ Windows, macOS และ Linux - -เรียกใช้ OmniRoute เป็นแอปเดสก์ท็อปแบบสแตนด์อโลน ไม่ต้องใช้เทอร์มินัล ไม่ต้องใช้เบราว์เซอร์ ไม่ต้องใช้อินเทอร์เน็ตสำหรับรุ่นท้องถิ่น แอพที่ใช้อิเล็กตรอนประกอบด้วย: - -- 🖥️ **หน้าต่างดั้งเดิม** — หน้าต่างแอปเฉพาะพร้อมการรวมถาดระบบ -- 🔄 **เริ่มอัตโนมัติ** — เปิด OmniRoute เมื่อเข้าสู่ระบบ -- 🔔 **การแจ้งเตือนแบบเนทีฟ** — รับการแจ้งเตือนเกี่ยวกับโควต้าหมดหรือปัญหาของผู้ให้บริการ -- ⚡ **ติดตั้งเพียงคลิกเดียว** — NSIS (Windows), DMG (macOS), AppImage (Linux) -- 🌐 **โหมดออฟไลน์** — ทำงานแบบออฟไลน์โดยสมบูรณ์กับเซิร์ฟเวอร์รวม - -### เริ่มต้นอย่างรวดเร็ว - -```bash -# Development mode -npm run electron:dev - -# Build for your platform -npm run electron:build # Current platform -npm run electron:build:win # Windows (.exe) -npm run electron:build:mac # macOS (.dmg) — x64 & arm64 -npm run electron:build:linux # Linux (.AppImage) -``` - -### ถาดระบบ - -เมื่อย่อเล็กสุด OmniRoute จะอยู่ในถาดระบบของคุณด้วยการดำเนินการด่วน: - -- เปิดแดชบอร์ด -- เปลี่ยนพอร์ตเซิร์ฟเวอร์ -- ออกจากแอปพลิเคชัน - -📖 เอกสารฉบับเต็ม: [**OMNI_TOKEN_153**](electron/README.md) - ---- - -## 💰 ราคาโดยสรุป - -| ชั้น | ผู้ให้บริการ | ราคา | รีเซ็ตโควต้า | ดีที่สุดสำหรับ | -| ------------------ | --------------------------------- | ------------------------------- | ------------------------------- | --------------------------------------- | -| **💳 สมัครสมาชิก** | รหัสคลอดด์ (Pro) | $20/เดือน | 5 ชม. + รายสัปดาห์ | สมัครสมาชิกแล้ว | -| | Codex (พลัส/โปร) | $20-200/เดือน | 5 ชม. + รายสัปดาห์ | ผู้ใช้ OpenAI | -| | ราศีเมถุน CLI | **ฟรี** | 180K/เดือน + 1K/วัน | ทุกคน! | -| | นักบิน GitHub | $10-19/เดือน | รายเดือน | ผู้ใช้ GitHub | -| **🔑 คีย์ API** | NVIDIA NIM | **ฟรี** (พัฒนาตลอดไป) | ~40 รอบต่อนาที | รุ่นเปิดมากกว่า 70 รุ่น | -| | สมอง | **ฟรี** (1M ต๊อก/วัน) | 60,000 ทีพีเอ็ม / 30 รอบต่อนาที | เร็วที่สุดในโลก | -| | กรอค | **ฟรี** (30 รอบต่อนาที) | 14.4K RPD | ลามะ/เจมม่าที่เร็วเป็นพิเศษ | -| | DeepSeek V3.2 | $0.27/$1.10 ต่อ 1M | ไม่มี | เหตุผลด้านราคา/คุณภาพที่ดีที่สุด | -| | xAI Grok-4 เร็ว | **$0.20/$0.50 ต่อ 1M** 🆕 | ไม่มี | เร็วที่สุด + การเรียกเครื่องมือ, ต่ำมาก | -| | xAI Grok-4 (มาตรฐาน) | $0.20/$1.50 ต่อ 1M 🆕 | ไม่มี | การใช้เหตุผลเป็นเรือธงจาก xAI | -| | มิสทรัล | ทดลองใช้ฟรี + จ่ายเงิน | อัตราจำกัด | AI ยุโรป | -| | OpenRouter | จ่ายตามการใช้งาน | ไม่มี | มีโมเดลมากกว่า 100 แบบ | -| **💰 ราคาถูก** | GLM-5 (ผ่าน Z.AI) 🆕 | $0.5/1M | ทุกวัน 10.00 น. | เอาต์พุต 128K เรือธงใหม่ล่าสุด | -| | GLM-4.7 | $0.6/1M | ทุกวัน 10.00 น. | สำรองงบประมาณ | -| | MiniMax M2.5 🆕 | $0.3/1M อินพุต | กลิ้ง 5 ชั่วโมง | การใช้เหตุผล + งานตัวแทน | -| | MiniMax M2.1 | $0.2/1M | กลิ้ง 5 ชั่วโมง | ตัวเลือกที่ถูกที่สุด | -| | Kimi K2.5 (Moonshot API) 🆕 | จ่ายตามการใช้งาน | ไม่มี | การเข้าถึง Moonshot API โดยตรง | -| | คิมิ K2 | $9/เดือน คงที่ | 10M โทเค็น/เดือน | ต้นทุนที่คาดการณ์ได้ | -| **🆓 ฟรี** | ไอโฟลว์ | **$0** | ไม่จำกัด | 5 รุ่นไม่จำกัด | -| | ควีน | **$0** | ไม่จำกัด | 4 รุ่นไม่จำกัด | -| | คิโระ | **$0** | ไม่จำกัด | Claude Sonnet/ไฮกุ (AWS Builder) | -| | LongCat Flash-Lite 🆕 | **$0** (50M ต็อก/วัน 🔥) | 1 รอบต่อนาที | โควต้าฟรีที่ใหญ่ที่สุดในโลก | -| | AI การผสมเกสร 🆕 | **$0** (ไม่ต้องใช้กุญแจ) | 1 คำขอ/15 วินาที | GPT-5, Claude, DeepSeek, ลามะ 4 | -| | AI ของผู้ปฏิบัติงาน Cloudflare 🆕 | **$0** (10,000 เซลล์ประสาท/วัน) | ~150 ครั้ง/วัน | โมเดลมากกว่า 50 แบบ ขอบระดับโลก | -| | สเกลเวย์ AI 🆕 | **$0** (รวมโทเค็น 1M) | อัตราจำกัด | EU/GDPR, Qwen3 235B, ลามะ 70B | - -> 🆕 **เพิ่มโมเดลใหม่ (มี.ค. 2026):** Grok-4 Fast family ที่ $0.20/$0.50/M (เปรียบเทียบที่ 1143ms — เร็วกว่า Gemini 2.5 Flash 30%), GLM-5 ผ่าน Z.AI พร้อมเอาต์พุต 128K, การใช้เหตุผล MiniMax M2.5, ราคาที่อัปเดต DeepSeek V3.2, Kimi K2.5 ผ่าน Moonshot direct API - -**💡 $0 Combo Stack — การตั้งค่าที่สมบูรณ์ฟรี:** - -``` -# 🆓 Ultimate Free Stack 2026 — 11 Providers, $0 Forever -Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED -LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 -Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed -Qwen (qw/) → qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next UNLIMITED -Gemini (gemini/) → Gemini 2.5 Flash — 1,500 req/day free API key -Cloudflare AI (cf/) → Llama 70B, Gemma 3, Mistral — 10K Neurons/day -Scaleway (scw/) → Qwen3 235B, Llama 70B — 1M free tokens (EU) -Groq (groq/) → Llama/Gemma ultra-fast — 14.4K req/day -NVIDIA NIM (nvidia/) → 70+ open models — 40 RPM forever -Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day -``` - -**ไม่มีค่าใช้จ่าย ไม่หยุดเขียนโค้ด** กำหนดค่านี้เป็น OmniRoute เดียวและทางเลือกทั้งหมดจะเกิดขึ้นโดยอัตโนมัติ ไม่มีการสลับด้วยตนเองเลย - ---- - ---- - -## 🆓 โมเดลฟรี — สิ่งที่คุณได้รับจริง - -> ทุกรุ่นด้านล่าง **ฟรี 100% โดยไม่ต้องใช้บัตรเครดิต** OmniRoute จะกำหนดเส้นทางอัตโนมัติระหว่างกันเมื่อโควต้าหนึ่งหมด — รวมเข้าด้วยกันเพื่อคอมโบ $0 ที่ไม่อาจแตกหักได้ - -### 🔵 โมเดล CLAUDE (ผ่าน Kiro — AWS Builder ID) - -| รุ่น | คำนำหน้า | ขีดจำกัด | ขีดจำกัดอัตรา | -| ------------------- | -------- | ------------ | ------------------------- | -| `claude-sonnet-4.5` | `kr/` | **ไม่จำกัด** | ไม่มีรายงานสูงสุดรายวัน | -| `claude-haiku-4.5` | `kr/` | **ไม่จำกัด** | ไม่มีรายงานสูงสุดรายวัน | -| `claude-opus-4.6` | `kr/` | **ไม่จำกัด** | บทประพันธ์ล่าสุดผ่าน Kiro | - -### 🟢 QODER MODELS (OAuth ฟรี — ไม่มีบัตรเครดิต) - -| รุ่น | คำนำหน้า | ขีดจำกัด | ขีดจำกัดอัตรา | -| ------------------ | -------- | ------------ | --------------- | -| `kimi-k2-thinking` | `if/` | **ไม่จำกัด** | ไม่มีรายงานหมวก | -| `qwen3-coder-plus` | `if/` | **ไม่จำกัด** | ไม่มีรายงานหมวก | -| `deepseek-r1` | `if/` | **ไม่จำกัด** | ไม่มีรายงานหมวก | -| `minimax-m2.1` | `if/` | **ไม่จำกัด** | ไม่มีรายงานหมวก | -| `kimi-k2` | `if/` | **ไม่จำกัด** | ไม่มีรายงานหมวก | - -### 🟡 รุ่น QWEN (การตรวจสอบรหัสอุปกรณ์) - -| รุ่น | คำนำหน้า | ขีดจำกัด | ขีดจำกัดอัตรา | -| ------------------- | -------- | ------------ | ------------------------- | -| `qwen3-coder-plus` | `qw/` | **ไม่จำกัด** | ไม่มีรายงานหมวก | -| `qwen3-coder-flash` | `qw/` | **ไม่จำกัด** | ไม่มีรายงานหมวก | -| `qwen3-coder-next` | `qw/` | **ไม่จำกัด** | ไม่มีรายงานหมวก | -| `vision-model` | `qw/` | **ไม่จำกัด** | ต่อเนื่องหลายรูปแบบ (ภาพ) | - -### 🟣 GEMINI CLI (Google OAuth) - -| รุ่น | คำนำหน้า | ขีดจำกัด | ขีดจำกัดอัตรา | -| ------------------------ | -------- | --------------------------- | -------------- | -| `gemini-3-flash-preview` | `gc/` | **180K tok/เดือน** + 1K/วัน | รีเซ็ตรายเดือน | -| `gemini-2.5-pro` | `gc/` | 180K/เดือน (พูลรวม) | คุณภาพสูง | - -### ⚫ NVIDIA NIM (คีย์ API ฟรี — build.nvidia.com) - -| ชั้น | ขีดจำกัดรายวัน | ขีดจำกัดอัตรา | หมายเหตุ | -| ----------- | ---------------- | ------------------ | --------------------------------------------------------------------- | -| ฟรี (พัฒนา) | ไม่มีฝาปิดโทเค็น | **~40 รอบต่อนาที** | มากกว่า 70 รุ่น; การเปลี่ยนไปใช้ขีดจำกัดอัตราเดียวในช่วงกลางปี ​​2025 | - -รุ่นฟรียอดนิยม: `moonshotai/kimi-k2.5` (Kimi K2.5), `z-ai/glm4.7` (GLM 4.7), `deepseek-ai/deepseek-v3.2` (DeepSeek V3.2), `nvidia/llama-3.3-70b-instruct`, `deepseek/deepseek-r1` - -### ⚪ CEREBRAS (คีย์ API ฟรี — inference.cerebras.ai) - -| ชั้น | ขีดจำกัดรายวัน | ขีดจำกัดอัตรา | หมายเหตุ | -| ---- | ----------------- | ------------------------------- | --------------------------------------------- | -| ฟรี | **1M โทเค็น/วัน** | 60,000 ทีพีเอ็ม / 30 รอบต่อนาที | การอนุมาน LLM ที่เร็วที่สุดในโลก รีเซ็ตทุกวัน | - -ใช้งานได้ฟรี: `llama-3.3-70b`, `llama-3.1-8b`, `deepseek-r1-distill-llama-70b` - -### 🔴 GROQ (คีย์ API ฟรี — console.groq.com) - -| ชั้น | ขีดจำกัดรายวัน | ขีดจำกัดอัตรา | หมายเหตุ | -| ---- | -------------- | -------------- | ---------------------------------------- | -| ฟรี | **14.4K RPD** | 30 RPM ต่อรุ่น | ไม่มีบัตรเครดิต 429 ตามวงเงิน ไม่คิดเงิน | - -ใช้งานได้ฟรี: `llama-3.3-70b-versatile`, `gemma2-9b-it`, `mixtral-8x7b`, `whisper-large-v3` - -### 🔴 LONGCAT AI (คีย์ API ฟรี — longcat.chat) 🆕 - -| รุ่น | คำนำหน้า | โควต้าฟรีรายวัน | หมายเหตุ | -| ----------------------------- | -------- | ----------------- | ------------------------------------ | -| `LongCat-Flash-Lite` | `lc/` | **โทเค็น 50M** 💥 | โควต้าฟรีที่ใหญ่ที่สุดเท่าที่เคยมีมา | -| `LongCat-Flash-Chat` | `lc/` | โทเค็น 500K | แชทหลายรอบ | -| `LongCat-Flash-Thinking` | `lc/` | โทเค็น 500K | การใช้เหตุผล / CoT | -| `LongCat-Flash-Thinking-2601` | `lc/` | โทเค็น 500K | เวอร์ชันม.ค. 2569 | -| `LongCat-Flash-Omni-2603` | `lc/` | โทเค็น 500K | ต่อเนื่องหลายรูปแบบ | - -> ฟรี 100% ขณะอยู่ในช่วงเบต้าสาธารณะ ลงทะเบียนที่ [longcat.chat](https://longcat.chat) ด้วยอีเมลหรือโทรศัพท์ รีเซ็ตทุกวัน 00:00 UTC - -### 🟢 POLLINATIONS AI (ไม่ต้องใช้คีย์ API) 🆕 - -| รุ่น | คำนำหน้า | ขีดจำกัดอัตรา | ผู้ให้บริการเบื้องหลัง | -| ---------- | -------- | ---------------- | ---------------------- | -| `openai` | `pol/` | 1 คำขอ/15 วินาที | GPT-5 | -| `claude` | `pol/` | 1 คำขอ/15 วินาที | มานุษยวิทยาคลอด | -| `gemini` | `pol/` | 1 คำขอ/15 วินาที | Google ราศีเมถุน | -| `deepseek` | `pol/` | 1 คำขอ/15 วินาที | DeepSeek V3 | -| `llama` | `pol/` | 1 คำขอ/15 วินาที | Meta Llama 4 ลูกเสือ | -| `mistral` | `pol/` | 1 คำขอ/15 วินาที | มิสทรัล AI | - -> ✨ **แรงเสียดทานเป็นศูนย์:** ไม่ต้องสมัคร ไม่มีคีย์ API เพิ่มผู้ให้บริการ Pollinations ด้วยฟิลด์คีย์ว่างและใช้งานได้ทันที - -### 🟠 AI คนงานบนคลาวด์ (คีย์ API ฟรี — cloudflare.com) 🆕 - -| ชั้น | เซลล์ประสาทรายวัน | การใช้งานที่เทียบเท่า | หมายเหตุ | -| ---- | ----------------- | --------------------------------------- | --------------- | -| ฟรี | **10,000** | ~150 LLM resp / เสียง 500s / การฝัง 15K | ขอบโลก รุ่น 50+ | - -รุ่นฟรียอดนิยม: `@cf/meta/llama-3.3-70b-instruct`, `@cf/google/gemma-3-12b-it`, `@cf/openai/whisper-large-v3-turbo` (เสียงฟรี!), `@cf/qwen/qwen2.5-coder-15b-instruct` - -> ต้องใช้โทเค็น API + รหัสบัญชีจาก [dash.cloudflare.com](https://dash.cloudflare.com) รหัสบัญชีร้านค้าในการตั้งค่าผู้ให้บริการ - -### 🟣 SCALEWAY AI (โทเค็นฟรี 1 ล้านโทเค็น — scaleway.com) 🆕 - -| ชั้น | โควต้าฟรี | ที่ตั้ง | หมายเหตุ | -| ---- | ----------------- | ------------------- | ------------------------------- | -| ฟรี | **โทเค็น 1 ล้าน** | 🇫🇷 ปารีส สหภาพยุโรป | ไม่ต้องใช้บัตรเครดิตภายในวงเงิน | - -มีให้บริการฟรี: `qwen3-235b-a22b-instruct-2507` (Qwen3 235B!), `llama-3.1-70b-instruct`, `mistral-small-3.2-24b-instruct-2506`, `deepseek-v3-0324` - -> สอดคล้องกับสหภาพยุโรป/GDPR รับคีย์ API ที่ [console.scaleway.com](https://console.scaleway.com) - -> **💡 สุดยอดสแต็คฟรี (ผู้ให้บริการ 11 ราย, $0 ตลอดไป):** -> -> ``` -> Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -> Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED -> LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 -> Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed -> Qwen (qw/) → qwen3-coder models UNLIMITED -> Gemini (gemini/) → Gemini 2.5 Flash — 1,500 req/day free -> Cloudflare AI (cf/) → 50+ models — 10K Neurons/day -> Scaleway (scw/) → Qwen3 235B, Llama 70B — 1M free tokens (EU) -> Groq (groq/) → Llama/Gemma — 14.4K req/day ultra-fast -> NVIDIA NIM (nvidia/) → 70+ open models — 40 RPM forever -> Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day -> ``` - -## 🎙️ คอมโบถอดความฟรี - -> ถอดเสียง/วิดีโอใดๆ ในราคา **$0** — Deepgram Leads พร้อมฟรี $200, AssemblyAI สำรอง $50, Groq Whisper เป็นการสำรองข้อมูลฉุกเฉินไม่จำกัด - -| ผู้ให้บริการ | เครดิตฟรี | โมเดลที่ดีที่สุด | ขีดจำกัดอัตรา | -| ----------------- | -------------------------- | --------------------------------------- | --------------------------------- | -| 🟢 **ดีปแกรม** | **ฟรี $200** (สมัครสมาชิก) | `nova-3` — แม่นยำที่สุด มากกว่า 30 ภาษา | ไม่มีการจำกัด RPM สำหรับเครดิตฟรี | -| 🔵 **AssemblyAI** | **ฟรี $50** (สมัครสมาชิก) | `universal-3-pro` — บท ความรู้สึก PII | ไม่มีการจำกัด RPM สำหรับเครดิตฟรี | -| 🔴 **โกรก** | **ฟรีตลอดไป** | `whisper-large-v3` — OpenAI กระซิบ | 30 RPM (อัตราจำกัด) | - -**คอมโบที่แนะนำใน `/dashboard/combos`:** - -``` -Name: free-transcription -Strategy: Priority -Nodes: - [1] deepgram/nova-3 → uses $200 free first - [2] assemblyai/universal-3-pro → fallback when Deepgram credits run out - [3] groq/whisper-large-v3 → free forever, emergency fallback -``` - -จากนั้นใน `/dashboard/media` → แท็บ **การถอดเสียง**: อัปโหลดไฟล์เสียงหรือวิดีโอ → เลือกจุดสิ้นสุดคอมโบของคุณ → รับการถอดเสียงในรูปแบบที่รองรับ - -## 💡 คุณสมบัติที่สำคัญ - -OmniRoute v2.0 ถูกสร้างขึ้นเพื่อเป็นแพลตฟอร์มการดำเนินงาน ไม่ใช่แค่รีเลย์พร็อกซี - -### 🆕 ใหม่ — การปรับปรุงที่ได้แรงบันดาลใจจาก ClawRouter (มี.ค. 2026) - -| คุณสมบัติ | มันทำอะไร | -| ------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | -| ⚡ **Grok-4 ฟาสต์แฟมิลี่** | รุ่น xAI ที่ $0.20/$0.50/M — เทียบมาตรฐาน 1143ms (เร็วกว่า Gemini 2.5 Flash 30%) | -| 🧠 **GLM-5 ผ่าน Z.AI** | บริบทเอาต์พุต 128K, $0.5/1M — รุ่นเรือธงใหม่ล่าสุดจากตระกูล GLM | -| 🔮 **MiniMax M2.5** | การใช้เหตุผล + งานเอเจนต์ที่ 0.30 ดอลลาร์/1 ล้าน — อัปเกรดอย่างมีนัยสำคัญจาก M2.1 | -| 🎯 **toolCalling Flag ต่อรุ่น** | ต่อรุ่น `toolCalling: true/false` ในรีจิสทรี — AutoCombo ข้ามรุ่นที่ไม่ใช้เครื่องมือ | -| 🌍 **การตรวจจับเจตนาหลายภาษา** | คีย์เวิร์ด PT/ZH/ES/AR ในการให้คะแนน AutoCombo — การเลือกโมเดลที่ดีกว่าสำหรับเนื้อหาที่ไม่ใช่ภาษาอังกฤษ | -| 📊 **ทางเลือกสำรองที่ขับเคลื่อนด้วยเกณฑ์มาตรฐาน** | เวลาแฝง p95 จริงจากคำขอสดฟีดการให้คะแนนคอมโบ — AutoCombo เรียนรู้จากข้อมูลจริง | -| 🔁 **ขอการขจัดข้อมูลซ้ำซ้อน** | หน้าต่าง dedup ตามแฮชเนื้อหา — ปลอดภัยสำหรับหลายเอเจนต์ ป้องกันการเรียกเก็บเงินซ้ำ | -| 🔌 **กลยุทธ์เราเตอร์แบบเสียบได้** | อินเทอร์เฟซ `RouterStrategy` ที่ขยายได้ — เพิ่มตรรกะการกำหนดเส้นทางที่กำหนดเองเป็นปลั๊กอิน | - -### 🚀 ก่อนหน้า v2.0.9+ — Playground, ลายนิ้วมือ CLI และ ACP - -| คุณสมบัติ | มันทำอะไร | -| ----------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| 🎮 **โมเดลสนามเด็กเล่น** | หน้าแดชบอร์ดเพื่อทดสอบโมเดลใดๆ โดยตรง — ตัวเลือกผู้ให้บริการ/โมเดล/ปลายทาง, Monaco Editor, การสตรีม, ยกเลิก, การกำหนดเวลา | -| 🔏 **การจับคู่ลายนิ้วมือ CLI** | การจัดลำดับส่วนหัว/เนื้อหาต่อผู้ให้บริการเพื่อให้ตรงกับลายเซ็น CLI ดั้งเดิม — สลับตามผู้ให้บริการในการตั้งค่า > ความปลอดภัย ** IP พร็อกซีของคุณยังคงอยู่** | -| 🤝 **รองรับ ACP (โปรโตคอลไคลเอ็นต์ตัวแทน)** | การค้นพบเอเจนต์ CLI (Codex, Claude, Goose, Gemini CLI, OpenClaw + อีก 9 รายการ), กระบวนการวางไข่, `/api/acp/agents` จุดสิ้นสุด | -| 🤖 **แดชบอร์ดตัวแทน ACP** | ดีบัก › หน้าตัวแทน — ตารางตัวแทน 14 รายพร้อมสถานะการติดตั้ง เวอร์ชัน แบบฟอร์มตัวแทนแบบกำหนดเองสำหรับเครื่องมือ CLI ผู้ใช้ **OpenCode** จะได้รับปุ่ม "ดาวน์โหลด opencode.json" ที่สร้างการกำหนดค่าที่พร้อมใช้งานโดยอัตโนมัติสำหรับโมเดลที่มีอยู่ทั้งหมด | -| ???? **โมเดลที่กำหนดเอง `apiFormat` การกำหนดเส้นทาง** | โมเดลที่กำหนดเองด้วย `apiFormat: "responses"` กำหนดเส้นทางไปยังตัวแปล Responses API ได้อย่างถูกต้องแล้ว | -| 🏢 **การแยกพื้นที่ทำงาน Codex** | พื้นที่ทำงาน Codex หลายรายการต่ออีเมล — OAuth แยกการเชื่อมต่ออย่างถูกต้องด้วยรหัสพื้นที่ทำงาน | -| 🔄 **อัปเดตอิเล็กตรอนอัตโนมัติ** | แอปเดสก์ท็อปตรวจสอบการอัปเดต + ติดตั้งอัตโนมัติเมื่อรีสตาร์ท | - -### 🤖 การดำเนินการตัวแทนและโปรโตคอล (v2.0) - -| คุณสมบัติ | มันทำอะไร | -| --------------------------------------- | -------------------------------------------------------------------------------------------------------- | -| 🏽 **เซิร์ฟเวอร์ MCP (16 เครื่องมือ)** | เครื่องมือ IDE/เอเจนต์ผ่าน 3 การขนส่ง: stdio, SSE (`/api/mcp/sse`), HTTP แบบสตรีมได้ (`/api/mcp/stream`) | -| 🤝 **เซิร์ฟเวอร์ A2A (JSON-RPC + SSE)** | การดำเนินการงานระหว่างเอเจนต์กับเอเจนต์ด้วยการซิงค์และการสตรีมโฟลว์ | -| 🧭 **หน้าปลายทางรวม** | หน้าการจัดการแบบแท็บพร้อมแท็บ Endpoint Proxy, MCP, A2A และ API Endpoints | -| 🎚️ **บริการเปิด/ปิดการสลับ** | สวิตช์เปิด/ปิดสำหรับ MCP และ A2A พร้อมการตั้งค่าคงอยู่ (ค่าเริ่มต้น: ปิด) | -| 🛰️ **MCP รันไทม์ฮาร์ทบีท** | สถานะกระบวนการจริง (pid, สถานะการออนไลน์, อายุฮาร์ทบีท, การขนส่ง, โหมดขอบเขต) | -| 📋 **เส้นทางการตรวจสอบ MCP** | บันทึกการตรวจสอบที่กรองได้พร้อมความสำเร็จ/ล้มเหลวและการระบุแหล่งที่มาที่สำคัญ | -| 🔐 **การบังคับใช้ขอบเขต MCP** | สิทธิ์ขอบเขตโดยละเอียด 9 รายการสำหรับการเข้าถึงเครื่องมือที่ควบคุม | -| 📡 **การจัดการวงจรงาน A2A** | แสดงรายการ/กรองงาน ตรวจสอบเหตุการณ์/สิ่งประดิษฐ์ ยกเลิกงานที่กำลังทำงานอยู่ | -| 📋 **การค้นพบบัตรตัวแทน** | `/.well-known/agent.json` สำหรับการค้นพบอัตโนมัติของไคลเอ็นต์ | -| 🧪 **ชุดทดสอบโปรโตคอล E2E** | ไคลเอนต์ MCP SDK + A2A จริงไหลใน `test:protocols:e2e` | -| ⚙️ **การควบคุมการปฏิบัติงาน** | สลับคอมโบ ใช้โปรไฟล์ความยืดหยุ่น รีเซ็ตเบรกเกอร์จากพื้นผิวควบคุมเดียว | - -### 🧠 การกำหนดเส้นทางและความฉลาด - -| คุณสมบัติ | มันทำอะไร | -| ------------------------------------------ | --------------------------------------------------------------------------------- | -| 🎯 **ทางเลือกสำรองอัจฉริยะ 4 ระดับ** | เส้นทางอัตโนมัติ: การสมัครสมาชิก → คีย์ API → ถูก → ฟรี | -| 📊 **การติดตามโควต้าแบบเรียลไทม์** | จำนวนโทเค็นสด + รีเซ็ตการนับถอยหลังต่อผู้ให้บริการ | -| 🔄 **แปลรูปแบบ** | OpenAI ↔ Claude ↔ Gemini ↔ การตอบกลับด้วยการแปลงสคีมาที่ปลอดภัย | -| 👥 **รองรับหลายบัญชี** | หลายบัญชีต่อผู้ให้บริการพร้อมตัวเลือกที่ชาญฉลาด | -| 🔄 **รีเฟรชโทเค็นอัตโนมัติ** | โทเค็น OAuth รีเฟรชอัตโนมัติพร้อมลองอีกครั้ง | -| 🎨 **คอมโบแบบกำหนดเอง** | 6 กลยุทธ์การปรับสมดุล + การควบคุมลูกโซ่สำรอง | -| 🌐 **เราเตอร์ตัวแทน** | `provider/*` การกำหนดเส้นทางแบบไดนามิก | -| 🧠 **คิดควบคุมงบประมาณ** | ขีดจำกัดการให้เหตุผลแบบส่งผ่าน อัตโนมัติ แบบกำหนดเอง และแบบปรับเปลี่ยนได้ | -| 🔀 **นามแฝงโมเดล** | นามแฝงโมเดลในตัว + แบบกำหนดเองและความปลอดภัยในการย้ายข้อมูล | -| ⚡ **การเสื่อมสภาพของพื้นหลัง** | กำหนดเส้นทางงานพื้นหลังที่มีลำดับความสำคัญต่ำไปยังโมเดลที่ถูกกว่า | -| 🧪 **การกำหนดเส้นทางอัจฉริยะที่รับรู้งาน** | เลือกโมเดลอัตโนมัติตามประเภทเนื้อหา (การเข้ารหัส/การมองเห็น/การวิเคราะห์/การสรุป) | -| 💌 **ระบบพร้อมฉีด** | มีการใช้การควบคุมพฤติกรรมทั่วโลกอย่างสม่ำเสมอ | -| 📄 **ความเข้ากันได้ของ API การตอบกลับ** | รองรับ `/v1/responses` เต็มรูปแบบสำหรับ Codex และเวิร์กโฟลว์ตัวแทนขั้นสูง | - -### 🎵 Multi-Modal API - -| คุณสมบัติ | มันทำอะไร | -| ----------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 🖼️ **การสร้างภาพ** | `/v1/images/generations` พร้อมระบบคลาวด์และแบ็กเอนด์ในเครื่อง | -| 📐 **การฝัง** | `/v1/embeddings` สำหรับการค้นหาและไปป์ไลน์ RAG | -| 🎶 **การถอดเสียง** | `/v1/audio/transcriptions` — ผู้ให้บริการ 7 ราย (Deepgram Nova 3, AssemblyAI, Groq Whisper, HuggingFace, ElevenLabs, OpenAI, Azure), การตรวจจับภาษาอัตโนมัติ, รองรับ MP4/MP3/WAV | -| 🔊 **ข้อความเป็นคำพูด** | `/v1/audio/speech` — ผู้ให้บริการ 10 ราย (ElevenLabs, OpenAI, Deepgram, Cartesia, PlayHT, HuggingFace, Nvidia NIM, Inworld, Coqui, Tortoise) พร้อมข้อความแสดงข้อผิดพลาดที่ถูกต้อง | -| 🎬 **การสร้างวิดีโอ** | `/v1/videos/generations` (เวิร์กโฟลว์ ComfyUI + SD WebUI) | -| 🎵 **การสร้างดนตรี** | `/v1/music/generations` (เวิร์กโฟลว์ ComfyUI) | -| 🛡️ **การกลั่นกรอง** | `/v1/moderations` การตรวจสอบความปลอดภัย | -| 🔀 **จัดอันดับ** | `/v1/rerank` สำหรับการให้คะแนนความเกี่ยวข้อง | -| 🔍 **ค้นหาเว็บ** 🆕 | `/v1/search` — ผู้ให้บริการ 5 ราย (Serper, Brave, Perplexity, Exa, Tavily), ฟรี 6,500+ รายการ/เดือน, เฟลโอเวอร์อัตโนมัติ, แคช | - -### 🛡️ ความยืดหยุ่น ความปลอดภัย และการกำกับดูแล - -| คุณสมบัติ | มันทำอะไร | -| ----------------------------------------- | --------------------------------------------------------------------------------- | -| 🔌 **เซอร์กิตเบรกเกอร์** | การเดินทางต่อรุ่น/การกู้คืนด้วยการควบคุมเกณฑ์ | -| 🎯 **โมเดล Endpoint-Aware** | โมเดลที่กำหนดเองประกาศจุดสิ้นสุดที่รองรับ + ​​รูปแบบ API | -| 🛡️ **ฝูงต่อต้านฟ้าร้อง** | การป้องกัน Mutex + เซมาฟอร์ในการลองใหม่/ให้คะแนนเหตุการณ์ | -| 🧠 **แคชความหมาย + ลายเซ็น** | การลดต้นทุน/เวลาแฝงด้วยแคชสองชั้น | -| ⚡ **ขอ Idempotency** | หน้าต่างการป้องกันซ้ำ | -| 🔒 **การปลอมแปลงลายนิ้วมือ TLS** | ลายนิ้วมือ TLS เหมือนเบราว์เซอร์ — **ลดการตรวจจับบอทและการตั้งค่าสถานะบัญชี** | -| 🔏 **การจับคู่ลายนิ้วมือ CLI** | จับคู่ลายเซ็นคำขอ CLI ดั้งเดิม — **ลดความเสี่ยงในการแบนในขณะที่รักษา IP พร็อกซี** | -| 🌐 **การกรอง IP** | การควบคุมรายการที่อนุญาต/รายการบล็อกสำหรับการปรับใช้แบบเปิดเผย | -| 📊 **ขีดจำกัดอัตราที่แก้ไขได้** | ขีดจำกัดระดับโลก/ระดับผู้ให้บริการที่กำหนดค่าได้ด้วยความคงอยู่ | -| 🔑 **การจัดการคีย์ API + การกำหนดขอบเขต** | รักษาความปลอดภัยการออก/การหมุนเวียนคีย์ และการควบคุมโมเดล/ผู้ให้บริการ | -| 🛡️ **ป้องกัน `/models`** | ตัวเลือกการตรวจสอบสิทธิ์และการซ่อนผู้ให้บริการสำหรับแค็ตตาล็อกโมเดล | - -### 📊 ความสามารถในการสังเกตและการวิเคราะห์ - -| คุณสมบัติ | มันทำอะไร | -| -------------------------------- | -------------------------------------------------------- | -| 📝 **คำขอ + การบันทึกพร็อกซี** | คำขอ/ตอบกลับแบบเต็มและการบันทึกพร็อกซี | -| 📉 **Streamed Detailed Logs** 🆕 | Reconstructs SSE payload streams cleanly into the UI | -| 📋 **แดชบอร์ดบันทึกแบบรวม** | มุมมองคำขอ พร็อกซี การตรวจสอบ และคอนโซลในหน้าเดียว | -| 🔍 **ขอโทรมาตร** | เวลาแฝง p50/p95/p99 และคำขอการติดตาม | -| 🏥 **แดชบอร์ดสุขภาพ** | เวลาทำงาน สถานะของเบรกเกอร์ การล็อก สถิติแคช | -| 💰 **ติดตามต้นทุน** | การควบคุมงบประมาณและการเปิดเผยราคาต่อรุ่น | -| 📈 **การแสดงภาพการวิเคราะห์** | ข้อมูลเชิงลึกการใช้งานโมเดล/ผู้ให้บริการและมุมมองแนวโน้ม | -| 🧪 **กรอบการประเมินผล** | การทดสอบชุดทองพร้อมกลยุทธ์การจับคู่ที่กำหนดค่าได้ | - -### ☁️ การปรับใช้และแพลตฟอร์ม - -| คุณสมบัติ | มันทำอะไร | -| ------------------------------------ | ----------------------------------------------------------------- | -| 🌐 **ปรับใช้ได้ทุกที่** | Localhost, VPS, Docker, สภาพแวดล้อมคลาวด์ | -| 💾 **คลาวด์ซิงค์** | การซิงค์การกำหนดค่าผ่านระบบคลาวด์ | -| 🔄 **สำรอง/กู้คืน** | ขั้นตอนการส่งออก/นำเข้าและการกู้คืนความเสียหาย | -| 🧙 **ตัวช่วยสร้างการเริ่มต้นใช้งาน** | การตั้งค่าที่แนะนำการใช้งานครั้งแรก | -| ???? **แดชบอร์ดเครื่องมือ CLI** | ตั้งค่าเพียงคลิกเดียวสำหรับเครื่องมือเข้ารหัสยอดนิยม | -| 🎮 **โมเดลสนามเด็กเล่น** | ทดสอบผู้ให้บริการ/รุ่น/ปลายทางจากแดชบอร์ด | -| 🔏 **สลับลายนิ้วมือ CLI** | การจับคู่ลายนิ้วมือของแต่ละผู้ให้บริการในการตั้งค่า > ความปลอดภัย | -| 🌐 **i18n (30 ภาษา)** | รองรับภาษาแดชบอร์ด + เอกสารแบบเต็มพร้อมการครอบคลุม RTL | -| 🧹 **ล้างทุกรุ่น** | การล้างรายการโมเดลในคลิกเดียวในรายละเอียดผู้ให้บริการ | -| 👁️ **Sidebar Controls** 🆕 | Hide components and integrations from Appearance Settings | -| 📋 **เทมเพลตปัญหา** | เทมเพลต GitHub มาตรฐานสำหรับข้อบกพร่องและฟีเจอร์ | -| 📂 **ไดเรกทอรีข้อมูลที่กำหนดเอง** | `DATA_DIR` แทนที่ตำแหน่งที่เก็บข้อมูล | - -### เจาะลึกคุณสมบัติ - -#### ทางเลือกอัจฉริยะพร้อมการควบคุมต้นทุนที่ใช้งานได้จริง - -```txt -Combo: "my-coding-stack" - 1. cc/claude-opus-4-6 - 2. nvidia/llama-3.3-70b - 3. glm/glm-4.7 - 4. if/kimi-k2-thinking -``` - -เมื่อโควต้า อัตรา หรือสุขภาพล้มเหลว OmniRoute จะย้ายไปยังผู้สมัครรายถัดไปโดยอัตโนมัติโดยไม่ต้องสลับด้วยตนเอง - -#### การจัดการโปรโตคอลที่มองเห็นและใช้งานได้ - -- MCP + A2A สามารถค้นพบได้ใน UI และเอกสาร (ไม่ได้ซ่อนไว้) -- API สถานะโปรโตคอลเปิดเผยข้อมูลการดำเนินงานสด (`/api/mcp/*`, `/api/a2a/*`) -- แดชบอร์ดรวมการดำเนินการสำหรับปฏิบัติการวันที่ 2 (การสลับคำสั่งผสม การรีเซ็ตเบรกเกอร์ การยกเลิกงาน) - -#### นักแปล + ขั้นตอนการตรวจสอบความถูกต้อง - -พื้นที่นักแปลประกอบด้วย: - -- **สนามเด็กเล่น**: ขอตรวจสอบการเปลี่ยนแปลง -- **ผู้ทดสอบแชท**: คำขอ/ตอบกลับแบบเต็มไปกลับ -- **ม้านั่งทดสอบ**: มีหลายกรณีในการวิ่งครั้งเดียว -- **Live Monitor**: มุมมองการจราจรแบบเรียลไทม์ - -พร้อมการตรวจสอบความถูกต้องของโปรโตคอลกับไคลเอนต์จริงผ่าน `npm run test:protocols:e2e` - -> 📖 **[MCP Server README](open-sse/mcp-server/README.md)** — การอ้างอิงเครื่องมือ การกำหนดค่า IDE และตัวอย่างไคลเอนต์ -> -> 📖 **[A2A Server README](src/lib/a2a/README.md)** — ทักษะ, วิธี JSON-RPC, การสตรีม และวงจรชีวิตของงาน - -## 🧪 การประเมินผล (Evals) - -OmniRoute มีกรอบการประเมินในตัวเพื่อทดสอบคุณภาพการตอบสนองของ LLM เทียบกับชุดทอง เข้าถึงได้ผ่านทาง **Analytics → Evals** ในแดชบอร์ด - -### ชุดทองในตัว - -"OmniRoute Golden Set" ที่โหลดไว้ล่วงหน้ามีกรณีทดสอบสำหรับ: - -- คำทักทาย คณิตศาสตร์ ภูมิศาสตร์ การสร้างโค้ด -- การปฏิบัติตามรูปแบบ JSON, การแปล, การสร้างมาร์กดาวน์ -- การปฏิเสธอย่างปลอดภัย (เนื้อหาที่เป็นอันตราย) การนับ ตรรกะบูลีน - -### กลยุทธ์การประเมินผล - -| กลยุทธ์ | คำอธิบาย | ตัวอย่าง | -| ---------- | ------------------------------------------------------------------ | -------------------------------- | -| `exact` | ผลลัพธ์จะต้องตรงกันทุกประการ | `"4"` | -| `contains` | เอาต์พุตจะต้องมีสตริงย่อย (ไม่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่) | `"Paris"` | -| `regex` | เอาต์พุตต้องตรงกับรูปแบบ regex | `"1.*2.*3"` | -| `custom` | ฟังก์ชัน JS แบบกำหนดเองส่งคืนค่า true/false | `(output) => output.length > 10` | - ---- - -## 📖 คู่มือการตั้งค่า - -### การตั้งค่าโปรโตคอล (MCP + A2A) - -<details> -<summary><b>🧩 การตั้งค่า MCP (โปรโตคอลบริบทโมเดล)</b></summary> - -เริ่มการขนส่ง MCP ในโหมด stdio: - -```bash -omniroute --mcp -``` - -ขั้นตอนการตรวจสอบที่แนะนำ: - -1. เชื่อมต่อไคลเอนต์ MCP ของคุณผ่าน stdio -2. เรียกใช้ `omniroute_get_health` -3. เรียกใช้ `omniroute_list_combos` -4. เปิด `/dashboard/mcp` เพื่อยืนยันการเต้นของหัวใจ กิจกรรม และการตรวจสอบ - -API ที่มีประโยชน์สำหรับระบบอัตโนมัติ: - -- `GET /api/mcp/status` -- `GET /api/mcp/tools` -- `GET /api/mcp/audit` -- `GET /api/mcp/audit/stats` - -</details> - -<details> -<summary><b>🤝 การตั้งค่า A2A (Agent2Agent)</b>OMNI_TOKEN_658__ - -ค้นหาตัวแทน: - -```bash -curl http://localhost:20128/.well-known/agent.json -``` - -ส่งงาน: - -```bash -curl -X POST http://localhost:20128/a2a \ - -H 'content-type: application/json' \ - -d '{"jsonrpc":"2.0","id":"setup-a2a","method":"message/send","params":{"skill":"quota-management","messages":[{"role":"user","content":"Summarize quota status."}]}}' -``` - -จัดการวงจรชีวิต: - -- `GET /api/a2a/status` -- `GET /api/a2a/tasks` -- `GET /api/a2a/tasks/:id` -- `POST /api/a2a/tasks/:id/cancel` - -UI การดำเนินงาน: - -- `/dashboard/a2a` สำหรับการสังเกตงาน/สถานะ/สตรีมและการดำเนินการควัน - -</details> - -<details> -<summary><b>🧪 การตรวจสอบความถูกต้องของโปรโตคอลจากต้นทางถึงปลายทาง</b></summary> - -ตรวจสอบทั้งสองโปรโตคอลกับไคลเอนต์จริง: - -```bash -npm run test:protocols:e2e -``` - -สิ่งนี้จะยืนยัน: - -- เชื่อมต่อ/รายการ/โทรไคลเอ็นต์ MCP SDK -- การค้นพบ A2A/ส่ง/สตรีม/รับ/ยกเลิก -- ตรวจสอบข้อมูลในการตรวจสอบ MCP และ API การจัดการงาน A2A - -</details> - -<details> -<summary><b>💳 ผู้ให้บริการสมัครสมาชิก</b>OMNI_TOKEN_670__ - -### รหัสคลอด (Pro/Max) - -```bash -Dashboard → Providers → Connect Claude Code -→ OAuth login → Auto token refresh -→ 5-hour + weekly quota tracking - -Models: - cc/claude-opus-4-6 - cc/claude-sonnet-4-5-20250929 - cc/claude-haiku-4-5-20251001 -``` - -**เคล็ดลับสำหรับมือโปร:** ใช้ Opus สำหรับงานที่ซับซ้อน และใช้ Sonnet เพื่อความรวดเร็ว โควต้าการติดตาม OmniRoute ต่อรุ่น! - -### OpenAI Codex (พลัส/โปร) - -```bash -Dashboard → Providers → Connect Codex -→ OAuth login (port 1455) -→ 5-hour + weekly reset - -Models: - cx/gpt-5.2-codex - cx/gpt-5.1-codex-max -``` - -#### การจัดการขีดจำกัดบัญชี Codex (5 ชม. + รายสัปดาห์) - -ขณะนี้บัญชี Codex แต่ละบัญชีมีการสลับนโยบายใน `Dashboard -> Providers`: - -- `5h` (เปิด/ปิด): บังคับใช้นโยบายเกณฑ์กรอบเวลา 5 ชั่วโมง -- `Weekly` (เปิด/ปิด): บังคับใช้นโยบายขีดจำกัดหน้าต่างรายสัปดาห์ -- ลักษณะการทำงานตามเกณฑ์: เมื่อหน้าต่างที่เปิดใช้งานถึงการใช้งาน >=90% บัญชีนั้นจะถูกข้ามไป -- พฤติกรรมการหมุน: OmniRoute กำหนดเส้นทางไปยังบัญชี Codex ที่มีสิทธิ์ถัดไปโดยอัตโนมัติ -- รีเซ็ตพฤติกรรม: เมื่อเวลาของผู้ให้บริการ `resetAt` ผ่านไป บัญชีจะมีสิทธิ์อีกครั้งโดยอัตโนมัติ - -สถานการณ์: - -- `5h ON` + `Weekly ON`: บัญชีจะถูกข้ามเมื่อหน้าต่างใดหน้าต่างหนึ่งถึงเกณฑ์ -- `5h OFF` + `Weekly ON`: การใช้งานรายสัปดาห์เท่านั้นที่สามารถบล็อกบัญชีได้ -- `5h ON` + `Weekly OFF`: การใช้งานเพียง 5 ชั่วโมงเท่านั้นที่สามารถบล็อกบัญชีได้ -- `resetAt` ผ่าน: บัญชีเข้าสู่การหมุนเวียนอีกครั้งโดยอัตโนมัติ (ไม่มีการเปิดใช้อีกครั้งด้วยตนเอง) - -### Gemini CLI (ฟรี 180K/เดือน!) - -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**คุ้มค่าที่สุด:** ระดับฟรีมหาศาล! ใช้สิ่งนี้ก่อนระดับที่ชำระเงิน - -### นักบิน GitHub - -```bash -Dashboard → Providers → Connect GitHub -→ OAuth via GitHub -→ Monthly reset (1st of month) - -Models: - gh/gpt-5 - gh/claude-4.5-sonnet - gh/gemini-3-pro -``` - -</details> - -<details> -<summary><b>🔑 ผู้ให้บริการคีย์ API</b></summary> - -### NVIDIA NIM (เข้าถึงนักพัฒนาฟรี — มากกว่า 70 รุ่น) - -1. ลงทะเบียน: [build.nvidia.com](https://build.nvidia.com) -2. รับคีย์ API ฟรี (รวมเครดิตการอนุมาน 1,000 รายการ) -3. แดชบอร์ด → เพิ่มผู้ให้บริการ → NVIDIA NIM: - - คีย์ API: `nvapi-your-key` - -**รุ่น:** `nvidia/llama-3.3-70b-instruct`, `nvidia/mistral-7b-instruct` และอีก 50+ รายการ - -**เคล็ดลับสำหรับมือโปร:** API ที่เข้ากันได้กับ OpenAI — ทำงานได้อย่างราบรื่นกับการแปลรูปแบบของ OmniRoute! - -### ดีปซีค - -1. ลงทะเบียน: [platform.deepseek.com](https://platform.deepseek.com) -2. รับรหัส API -3. แดชบอร์ด → เพิ่มผู้ให้บริการ → DeepSeek - -**รุ่น:** `deepseek/deepseek-chat`, `deepseek/deepseek-coder` - -### Groq (มีระดับฟรี!) - -1. ลงทะเบียน: [console.groq.com](https://console.groq.com) -2. รับคีย์ API (รวมเทียร์ฟรี) -3. แดชบอร์ด → เพิ่มผู้ให้บริการ → Groq - -**รุ่น:** `groq/llama-3.3-70b`, `groq/mixtral-8x7b` - -**เคล็ดลับสำหรับมือโปร:** การอนุมานที่รวดเร็วเป็นพิเศษ — ดีที่สุดสำหรับการเขียนโค้ดแบบเรียลไทม์! - -### OpenRouter (มากกว่า 100 รุ่น) - -1. ลงทะเบียน: [openrouter.ai](https://openrouter.ai) -2. รับรหัส API -3. แดชบอร์ด → เพิ่มผู้ให้บริการ → OpenRouter - -**รุ่น:** เข้าถึงโมเดลมากกว่า 100 โมเดลจากผู้ให้บริการรายใหญ่ทั้งหมดผ่านคีย์ API เดียว - -</details> - -<details> -<summary><b>💰 ผู้ให้บริการราคาถูก (สำรอง)</b></summary> - -### GLM-4.7 (รีเซ็ตรายวัน, $0.6/1M) - -1. ลงทะเบียน: [Zhipu AI](https://open.bigmodel.cn/) -2. รับคีย์ API จาก Coding Plan -3. แดชบอร์ด → เพิ่มคีย์ API: - - ผู้ให้บริการ: `glm` - - คีย์ API: `your-key` - -**ใช้:** `glm/glm-4.7` - -**เคล็ดลับสำหรับมือโปร:** แผนการเขียนโค้ดเสนอโควต้า 3 เท่าในราคา 1/7! รีเซ็ตทุกวัน 10.00 น. - -### MiniMax M2.1 (รีเซ็ต 5 ชม., $0.20/1M) - -1. ลงทะเบียน: [MiniMax](https://www.minimax.io/) -2. รับรหัส API -3. แดชบอร์ด → เพิ่มคีย์ API - -**ใช้:** `minimax/MiniMax-M2.1` - -**เคล็ดลับสำหรับมือโปร:** ตัวเลือกที่ถูกที่สุดสำหรับบริบทที่ยาว (โทเค็น 1M)! - -### Kimi K2 ($9/เดือน) - -1. สมัครสมาชิก: [Moonshot AI](https://platform.moonshot.ai/) -2. รับรหัส API -3. แดชบอร์ด → เพิ่มคีย์ API - -**ใช้:** `kimi/kimi-latest` - -**เคล็ดลับสำหรับมือโปร:** แก้ไข $9/เดือนสำหรับโทเค็น 10M = $0.90/ต้นทุนที่แท้จริง 1M! - -</details> - -<details> -<summary><b>🆓 ผู้ให้บริการฟรี (การสำรองข้อมูลฉุกเฉิน)</b>OMNI_TOKEN_688__ - -### Qoder (5 รุ่นฟรีผ่าน OAuth) - -```bash -Dashboard → Connect Qoder -→ Qoder OAuth login -→ Unlimited usage - -Models: - if/kimi-k2-thinking - if/qwen3-coder-plus - if/glm-4.7 - if/minimax-m2 - if/deepseek-r1 -``` - -### Qwen (ฟรี 4 รุ่นผ่านรหัสอุปกรณ์) - -```bash -Dashboard → Connect Qwen -→ Device code authorization -→ Unlimited usage - -Models: - qw/qwen3-coder-plus - qw/qwen3-coder-flash -``` - -### คิโระ (คลอดด์ฟรี) - -```bash -Dashboard → Connect Kiro -→ AWS Builder ID or Google/GitHub -→ Unlimited usage - -Models: - kr/claude-sonnet-4.5 - kr/claude-haiku-4.5 -``` - -</details> - -<details> -<summary>OMNI_TOKEN_692____ วาดภาพคอมโบ</b>OMNI_TOKEN_694__ - -### ตัวอย่างที่ 1: เพิ่มการสมัครสมาชิกให้สูงสุด → การสำรองข้อมูลราคาถูก - -``` -Dashboard → Combos → Create New - -Name: premium-coding -Models: - 1. cc/claude-opus-4-6 (Subscription primary) - 2. glm/glm-4.7 (Cheap backup, $0.6/1M) - 3. minimax/MiniMax-M2.1 (Cheapest fallback, $0.20/1M) - -Use in CLI: premium-coding -``` - -### ตัวอย่างที่ 2: ฟรีเท่านั้น (ไม่มีค่าใช้จ่าย) - -``` -Name: free-combo -Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) - -Cost: $0 forever! -``` - -</details> - -<details> -<summary>OMNI_TOKEN_698__ดำเนินการบูรณาการ CLI</b>OMNI_TOKEN_700__ - -### เคอร์เซอร์ IDE - -``` -Settings → Models → Advanced: - OpenAI API Base URL: http://localhost:20128/v1 - OpenAI API Key: [from OmniRoute dashboard] - Model: cc/claude-opus-4-6 -``` - -### รหัสคลอด - -ใช้หน้า **เครื่องมือ CLI** ในแดชบอร์ดสำหรับการกำหนดค่าด้วยคลิกเดียว หรือแก้ไข `~/.claude/settings.json` ด้วยตนเอง - -### Codex CLI - -```bash -export OPENAI_BASE_URL="http://localhost:20128" -export OPENAI_API_KEY="your-omniroute-api-key" - -codex "your prompt" -``` - -### โอเพ่นคลอว์ - -**ตัวเลือก 1 — แดชบอร์ด (แนะนำ):** - -``` -Dashboard → CLI Tools → OpenClaw → Select Model → Apply -``` - -**ตัวเลือก 2 — กำหนดเอง:** แก้ไข `~/.openclaw/openclaw.json`: - -```json -{ - "models": { - "providers": { - "omniroute": { - "baseUrl": "http://127.0.0.1:20128/v1", - "apiKey": "sk_omniroute", - "api": "openai-completions" - } - } - } -} -``` - -> **หมายเหตุ:** OpenClaw ใช้งานได้กับ OmniRoute ในพื้นที่เท่านั้น ใช้ `127.0.0.1` แทน `localhost` เพื่อหลีกเลี่ยงปัญหาความละเอียดของ IPv6 - -### ไคลน์ / ดำเนินการต่อ / RooCode - -``` -Settings → API Configuration: - Provider: OpenAI Compatible - Base URL: http://localhost:20128/v1 - API Key: [from OmniRoute dashboard] - Model: if/kimi-k2-thinking -``` - -### โอเพ่นโค้ด - -**ขั้นตอนที่ 1:** เพิ่ม OmniRoute เป็นผู้ให้บริการแบบกำหนดเอง: - -```bash -opencode -/connect -# Select "Other" → Enter ID: "omniroute" → Enter your OmniRoute API key -``` - -**ขั้นตอนที่ 2:** สร้าง/แก้ไข `opencode.json` ในรูทโปรเจ็กต์ของคุณ: - -```json -{ - "$schema": "https://opencode.ai/config.json", - "provider": { - "omniroute": { - "npm": "@ai-sdk/openai-compatible", - "name": "OmniRoute", - "options": { - "baseURL": "http://localhost:20128/v1" - }, - "models": { - "cc/claude-sonnet-4-20250514": { "name": "Claude Sonnet 4" }, - "gg/gemini-2.5-pro": { "name": "Gemini 2.5 Pro" }, - "if/kimi-k2-thinking": { "name": "Kimi K2 (Free)" } - } - } - } -} -``` - -**ขั้นตอนที่ 3:** เลือกโมเดลใน OpenCode: - -```bash -/models -# Select any OmniRoute model from the list -``` - -> **เคล็ดลับ:** เพิ่มโมเดลใดๆ ที่มีอยู่ในปลายทาง OmniRoute `/v1/models` ของคุณไปยังส่วน `models` ใช้รูปแบบ `provider/model-id` จากแดชบอร์ด OmniRoute ของคุณ - -</details> - ---- - -## 🐛 การแก้ไขปัญหา - -<details> -<summary><b>คลิกเพื่อขยายคำแนะนำการแก้ไขปัญหา</b>OMNI_TOKEN_706__ - -**"โมเดลภาษาไม่ได้ระบุข้อความ"** - -- โควต้าผู้ให้บริการหมด → ตรวจสอบตัวติดตามโควต้าแดชบอร์ด -- วิธีแก้ไข: ใช้ทางเลือกแบบคอมโบหรือเปลี่ยนไปใช้ระดับที่ถูกกว่า - -**จำกัดอัตรา** - -- โควต้าการสมัครสมาชิกหมด → สำรองไปที่ GLM/MiniMax -- เพิ่มคอมโบ: `cc/claude-opus-4-6 → glm/glm-4.7 → if/kimi-k2-thinking` - -**โทเค็น OAuth หมดอายุแล้ว** - -- รีเฟรชอัตโนมัติโดย OmniRoute -- หากปัญหายังคงอยู่: แดชบอร์ด → ผู้ให้บริการ → เชื่อมต่อใหม่ - -**ค่าใช้จ่ายสูง** - -- ตรวจสอบสถิติการใช้งานในแดชบอร์ด → ต้นทุน -- เปลี่ยนโมเดลหลักเป็น GLM/MiniMax -- ใช้ระดับฟรี (Gemini CLI, Qoder) สำหรับงานที่ไม่สำคัญ - -**พอร์ตแดชบอร์ด/API ไม่ถูกต้อง** - -- `PORT` เป็นพอร์ตฐานมาตรฐาน (และพอร์ต API ตามค่าเริ่มต้น) -- `API_PORT` แทนที่เฉพาะ Listener API ที่เข้ากันได้กับ OpenAI -- `DASHBOARD_PORT` แทนที่เฉพาะตัวฟังแดชบอร์ด/Next.js -- ตั้งค่า `NEXT_PUBLIC_BASE_URL` เป็นแดชบอร์ด/URL สาธารณะของคุณ (สำหรับการเรียกกลับ OAuth) - -**ข้อผิดพลาดในการซิงค์คลาวด์** - -- ตรวจสอบ `BASE_URL` ชี้ไปยังอินสแตนซ์ที่ทำงานอยู่ของคุณ -- ตรวจสอบ `CLOUD_URL` ชี้ไปยังจุดปลายทางคลาวด์ที่คุณคาดหวัง -- เก็บค่า `NEXT_PUBLIC_*` ให้สอดคล้องกับค่าฝั่งเซิร์ฟเวอร์ - -**เข้าสู่ระบบครั้งแรกใช้งานไม่ได้** - -- ตรวจสอบ `INITIAL_PASSWORD` ใน `.env` -- หากไม่ได้ตั้งค่า รหัสผ่านสำรองจะเป็น `123456` - -** ไม่มีบันทึกคำขอ ** - -- ตั้งค่า `ENABLE_REQUEST_LOGS=true` ใน `.env` - -**การทดสอบการเชื่อมต่อแสดงว่า "ไม่ถูกต้อง" สำหรับผู้ให้บริการที่รองรับ OpenAI** - -- ผู้ให้บริการหลายรายไม่เปิดเผยปลายทาง `/models` -- OmniRoute v1.0.6+ มีการตรวจสอบทางเลือกผ่านการแชทให้เสร็จสิ้น -- ตรวจสอบให้แน่ใจว่า URL ฐานมีคำต่อท้าย `/v1` - -### 🔐 OAuth บนเซิร์ฟเวอร์ระยะไกล - -<a name="oauth-on-a-remote-server"></a> -<a name="oauth-em-servidor-remoto"></a> - -> **⚠️ สำคัญสำหรับผู้ใช้ที่ใช้งาน OmniRoute บน VPS, Docker หรือเซิร์ฟเวอร์ระยะไกลใดๆ** - -#### เหตุใด Antigravity / Gemini CLI OAuth จึงล้มเหลวบนเซิร์ฟเวอร์ระยะไกล - -ผู้ให้บริการ **Antigravity** และ **Gemini CLI** ใช้ **Google OAuth 2.0** Google กำหนดให้ `redirect_uri` ในขั้นตอน OAuth ตรงกับหนึ่งใน URI ที่ลงทะเบียนล่วงหน้าใน Google Cloud Console ของแอป - -ข้อมูลรับรอง OAuth ที่รวมอยู่ใน OmniRoute ได้รับการลงทะเบียน **สำหรับ `localhost` เท่านั้น** เมื่อคุณเข้าถึง OmniRoute บนเซิร์ฟเวอร์ระยะไกล (เช่น `https://omniroute.myserver.com`) Google จะปฏิเสธการตรวจสอบสิทธิ์ด้วย: - -``` -Error 400: redirect_uri_mismatch -``` - -#### วิธีแก้ไข: กำหนดค่าข้อมูลรับรอง OAuth ของคุณเอง - -คุณต้องสร้าง **OAuth 2.0 Client ID** ใน Google Cloud Console ด้วย URI ของเซิร์ฟเวอร์ของคุณ - -#### ทีละขั้นตอน - -**1. เปิดคอนโซล Google Cloud** - -ไปที่: [https://console.cloud.google.com/apis/credentials](https://console.cloud.google.com/apis/credentials) - -**2. สร้างรหัสไคลเอ็นต์ OAuth 2.0 ใหม่** - -- คลิก **"+ สร้างข้อมูลรับรอง"** → **"รหัสไคลเอ็นต์ OAuth"** -- ประเภทแอปพลิเคชัน: **"แอปพลิเคชันเว็บ"** -- ชื่อ: อะไรก็ได้ที่คุณชอบ (เช่น `OmniRoute Remote`) - -**3. เพิ่ม URI การเปลี่ยนเส้นทางที่ได้รับอนุญาต** - -ในช่อง **"URI การเปลี่ยนเส้นทางที่ได้รับอนุญาต"** ให้เพิ่ม: - -``` -https://your-server.com/callback -``` - -> แทนที่ `your-server.com` ด้วยโดเมนหรือ IP ของเซิร์ฟเวอร์ของคุณ (รวมพอร์ตหากจำเป็น เช่น `http://45.33.32.156:20128/callback`) - -**4. บันทึกและคัดลอกข้อมูลรับรอง** - -หลังจากสร้างแล้ว Google จะแสดง **รหัสไคลเอ็นต์** และ **รหัสลับไคลเอ็นต์** - -**5. ตั้งค่าตัวแปรสภาพแวดล้อม** - -ใน `.env` ของคุณ (หรือตัวแปรสภาพแวดล้อม Docker): - -```bash -# For Antigravity: -ANTIGRAVITY_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com -ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-your-secret - -# For Gemini CLI: -GEMINI_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com -GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -``` - -**6. รีสตาร์ท OmniRoute** - -```bash -# npm: -npm run dev - -# Docker: -docker restart omniroute -``` - -**7. ลองเชื่อมต่ออีกครั้ง** - -แดชบอร์ด → ผู้ให้บริการ → Antigravity (หรือ Gemini CLI) → OAuth - -ขณะนี้ Google จะเปลี่ยนเส้นทางไปยัง `https://your-server.com/callback` อย่างถูกต้อง - ---- - -#### วิธีแก้ปัญหาชั่วคราว (ไม่มีข้อมูลประจำตัวที่กำหนดเอง) - -หากคุณไม่ต้องการตั้งค่าข้อมูลรับรองของคุณเองในขณะนี้ คุณยังคงใช้ **ขั้นตอน URL ด้วยตนเอง** ได้: - -1. OmniRoute เปิด URL การอนุญาตของ Google -2. หลังจากการอนุญาต Google จะพยายามเปลี่ยนเส้นทางไปที่ `localhost` (ซึ่งล้มเหลวบนเซิร์ฟเวอร์ระยะไกล) -3. **คัดลอก URL แบบเต็ม** จากแถบที่อยู่ของเบราว์เซอร์ของคุณ (แม้ว่าหน้าเว็บจะไม่โหลดก็ตาม) -4. วาง URL นั้นลงในฟิลด์ที่แสดงในโมดอลการเชื่อมต่อ OmniRoute -5. คลิก **"เชื่อมต่อ"** - -> ใช้งานได้เนื่องจากรหัสการให้สิทธิ์ใน URL นั้นถูกต้อง ไม่ว่าหน้าการเปลี่ยนเส้นทางจะโหลดแล้วก็ตาม - ---- - -<details> -<summary><b>🇧🇷 เวอร์ชั่นโปรตุเกส</b>OMNI_TOKEN_715__ - -#### คุณใช้ OAuth ในเรื่อง Antigravity / Gemini CLI หรือไม่? - -ระบบปฏิบัติการ **Antigravity** และ **Gemini CLI** ใช้ **Google OAuth 2.0** สำหรับการรับรองความถูกต้อง O Google ต้องการ `redirect_uri` usada no fluxo OAuth seja **exatamente** uma das URIs pré-cadastradas no Google Cloud Console do aplicativo. - -ตามที่รับรอง OAuth embutidas no OmniRoute estão cadastradas **apenas para `localhost`**. ต้องการใช้ OmniRoute ในเซิร์ฟเวอร์ remoto (เช่น `https://omniroute.meuservidor.com`) หรือ Google ตรวจสอบ com autenticação: - -``` -Error 400: redirect_uri_mismatch -``` - -#### วิธีแก้ปัญหา: กำหนดค่า suas próprias credenciais OAuth - -อยู่ในนั้นโดยตรง **OAuth 2.0 Client ID** ไม่มี Google Cloud Console พร้อม URI สำหรับเซิร์ฟเวอร์ - -#### เยี่ยมเลย - -**1. เข้าถึง Google Cloud Console** - -อับรา: [https://console.cloud.google.com/apis/credentials](https://console.cloud.google.com/apis/credentials) - -**2. ฉันเพิ่งค้นพบ OAuth 2.0 Client ID** - -- คลิก em **"+ สร้างข้อมูลรับรอง"** → **"รหัสไคลเอ็นต์ OAuth"** -- เคล็ดลับการใช้งาน: **"แอปพลิเคชันเว็บ"** -- ชื่อ: ชื่อ escolha qualquer (เช่น: `OmniRoute Remote`) - -**3. Adicione เป็น URI การเปลี่ยนเส้นทางที่ได้รับอนุญาต** - -ไม่มีค่าย **"URI การเปลี่ยนเส้นทางที่ได้รับอนุญาต"** ผู้สนับสนุน: - -``` -https://seu-servidor.com/callback -``` - -> Substitua `seu-servidor.com` pelo domínio ou IP do seu servidor (รวม porta se necessário เช่น `http://45.33.32.156:20128/callback`) - -**4. Salve e copy as credenciais** - -อ้างอิงถึง Google มากที่สุด o **Client ID** e o **Client Secret** - -**5. กำหนดค่าเป็น variáveis de Ambiente** - -ไม่มี `.env` (คุณ นาส วาเรียเว เดอ แอมเบียนท์ โด นักเทียบท่า): - -```bash -# Para Antigravity: -ANTIGRAVITY_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com -ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret - -# Para Gemini CLI: -GEMINI_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com -GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -``` - -**6. ย้อนกลับไปสู่ OmniRoute** - -```bash -# Se usando npm: -npm run dev - -# Se usando Docker: -docker restart omniroute -``` - -**7. เต็นท์ คอนเนกตาร์ โนวาเมนเต** - -แดชบอร์ด → ผู้ให้บริการ → Antigravity (หรือ Gemini CLI) → OAuth - -ภาพรวมของ Google การแก้ไขสำหรับ `https://seu-servidor.com/callback` และการรับรองความถูกต้อง - ---- - -#### วิธีแก้ปัญหาชั่วคราว (sem configurar credenciais próprias) - -Se não quiser criar credenciais próprias agora, ainda é possível usar o fluxo **manual de URL**: - -1. O OmniRoute ย่อ URL อัตโนมัติของ Google -2. Após você autorizar, o Google tentará redirecionar para `localhost` (que falha no servidor remoto) -3. **คัดลอก URL ที่สมบูรณ์** da barra de endereço do seu browser (mesmo que a página não carregue) -4. Cole essa URL no campo que aparece no modal de conexão do OmniRoute -5. คลิกที่นี่ **"เชื่อมต่อ"** - -> วิธีแก้ปัญหาเบื้องต้นคือทำการเปลี่ยนเส้นทางโดยอัตโนมัติและทำการเปลี่ยนเส้นทางโดยอัตโนมัติ - -</details> - ---- - -</details> - -## 🛠️ เทคสแต็ค - -<details> -<summary>OMNI_TOKEN_720__คลิกเพื่อขยายรายละเอียดกลุ่มเทคโนโลยี</b></summary> - -- **รันไทม์**: Node.js 18–22 LTS (⚠️ Node.js 24+ ไม่ได้รับการสนับสนุน\*\* — `better-sqlite3` ไบนารีดั้งเดิมเข้ากันไม่ได้) -- **ภาษา**: TypeScript 5.9 — **TypeScript 100%** ทั่วทั้ง `src/` และ `open-sse/` (ศูนย์ `any` ในโมดูลหลักตั้งแต่เวอร์ชัน 2.0) -- **เฟรมเวิร์ก**: Next.js 16 + React 19 + Tailwind CSS 4 -- **ฐานข้อมูล**: LowDB (JSON) + SQLite (สถานะโดเมน + บันทึกพร็อกซี + การตรวจสอบ MCP + การตัดสินใจกำหนดเส้นทาง) -- **Schemas**: Zod (การตรวจสอบ I/O ของเครื่องมือ MCP, สัญญา API) -- **โปรโตคอล**: MCP (stdio/HTTP) + A2A v0.3 (JSON-RPC 2.0 + SSE) -- **การสตรีม**: เหตุการณ์ที่เซิร์ฟเวอร์ส่ง (SSE) -- **การตรวจสอบสิทธิ์**: OAuth 2.0 (PKCE) + JWT + คีย์ API + การอนุญาตขอบเขต MCP -- **การทดสอบ**: ตัวรันการทดสอบ Node.js + Vitest (การทดสอบมากกว่า 900 รายการ รวมถึงหน่วย, การรวม, E2E) -- **CI/CD**: การดำเนินการ GitHub (เผยแพร่ npm อัตโนมัติ + Docker Hub เมื่อวางจำหน่าย) -- **เว็บไซต์**: [omniroute.online](https://omniroute.online) -- **แพ็คเกจ**: [npmjs.com/package/omniroute](https://www.npmjs.com/package/omniroute) -- **นักเทียบท่า**: [hub.docker.com/r/diegosouzapw/omniroute](https://hub.docker.com/r/diegosouzapw/omniroute) -- **ความยืดหยุ่น**: เซอร์กิตเบรกเกอร์, การถอยกลับแบบเอ็กซ์โปเนนเชียล, การป้องกันฝูงฟ้าผ่า, การปลอมแปลง TLS, การรักษาตัวเองแบบคอมโบอัตโนมัติ - -</details> - ---- - -## 📖 เอกสารประกอบ - -| เอกสาร | คำอธิบาย | -| ---------------------------------------------- | ---------------------------------------------------------------- | -| [User Guide](docs/USER_GUIDE.md) | ผู้ให้บริการ, คอมโบ, การรวม CLI, การปรับใช้ | -| [API Reference](docs/API_REFERENCE.md) | จุดสิ้นสุดทั้งหมดพร้อมตัวอย่าง | -| [MCP Server](open-sse/mcp-server/README.md) | เครื่องมือ MCP 16 รายการ, การกำหนดค่า IDE, ไคลเอนต์ Python/TS/Go | -| [A2A Server](src/lib/a2a/README.md) | โปรโตคอล JSON-RPC 2.0, ทักษะ, การสตรีม, การจัดการงาน | -| [Auto-Combo Engine](docs/auto-combo.md) | การให้คะแนน 6 ปัจจัย แพ็กโหมด การรักษาตัวเอง | -| [Troubleshooting](docs/TROUBLESHOOTING.md) | ปัญหาและแนวทางแก้ไขทั่วไป | -| [Architecture](docs/ARCHITECTURE.md) | สถาปัตยกรรมระบบและภายใน | -| [Contributing](CONTRIBUTING.md) | การตั้งค่าและแนวทางการพัฒนา | -| [OpenAPI Spec](docs/openapi.yaml) | ข้อมูลจำเพาะของ OpenAPI 3.0 | -| [Security Policy](SECURITY.md) | การรายงานช่องโหว่และแนวปฏิบัติด้านความปลอดภัย | -| [VM Deployment](docs/VM_DEPLOYMENT_GUIDE.md) | คู่มือฉบับสมบูรณ์: VM + nginx + การตั้งค่า Cloudflare | -| [Features Gallery](docs/FEATURES.md) | ทัวร์ชมแดชบอร์ดภาพพร้อมภาพหน้าจอ | -| [Release Checklist](docs/RELEASE_CHECKLIST.md) | ขั้นตอนการตรวจสอบก่อนเผยแพร่ | - ---- - -## 🗺️ โรดแมป - -OmniRoute มี **ฟีเจอร์มากกว่า 210 รายการที่วางแผน** ไว้ในขั้นตอนการพัฒนาหลายขั้นตอน นี่คือประเด็นสำคัญ: - -| หมวดหมู่ | คุณสมบัติที่วางแผนไว้ | ไฮไลท์ | -| ------------------------------------------ | --------------------- | ------------------------------------------------------------------------------------------------------------- | -| 🧠 **การกำหนดเส้นทางและความฉลาด** | 25+ | การกำหนดเส้นทางที่มีความหน่วงต่ำที่สุด, การกำหนดเส้นทางตามแท็ก, โควต้า preflight, การเลือกบัญชี P2C | -| 🔒 **ความปลอดภัยและการปฏิบัติตามข้อกำหนด** | 20+ | การเสริมความแข็งแกร่งของ SSRF, การปิดบังข้อมูลรับรอง, ขีดจำกัดอัตราต่อจุดสิ้นสุด, การกำหนดขอบเขตคีย์การจัดการ | -| 📊 **ความสามารถในการสังเกต** | 15+ | การรวม OpenTelemetry การตรวจสอบโควต้าแบบเรียลไทม์ การติดตามต้นทุนต่อรุ่น | -| 🔄 **การบูรณาการของผู้ให้บริการ** | 20+ | การลงทะเบียนโมเดลแบบไดนามิก, คูลดาวน์ของผู้ให้บริการ, Codex หลายบัญชี, การแยกวิเคราะห์โควต้า Copilot | -| ⚡ **ประสิทธิภาพ** | 15+ | เลเยอร์แคชคู่, แคชพร้อมท์, แคชการตอบสนอง, การสตรีมแบบ Keepalive, ชุด API | -| 🌐 **ระบบนิเวศ** | 10+ | WebSocket API, กำหนดค่า hot-reload, การจัดเก็บ config แบบกระจาย, โหมดเชิงพาณิชย์ | - -### 🔜 เร็วๆ นี้ - -- 🔗 **การรวม OpenCode** — รองรับผู้ให้บริการเนทีฟสำหรับ IDE การเข้ารหัส OpenCode AI -- 🔗 **การบูรณาการ TRAE** — รองรับกรอบการพัฒนา TRAE AI อย่างเต็มที่ -- 📦 **Batch API** — การประมวลผลแบบแบตช์แบบอะซิงโครนัสสำหรับคำขอจำนวนมาก -- 🎯 **การกำหนดเส้นทางตามแท็ก** — คำขอกำหนดเส้นทางตามแท็กที่กำหนดเองและข้อมูลเมตา -- 💰 **กลยุทธ์ต้นทุนต่ำสุด** — เลือกผู้ให้บริการที่ถูกที่สุดโดยอัตโนมัติ - -> dict ข้อมูลจำเพาะคุณสมบัติแบบเต็มมีอยู่ใน [**OMNI_TOKEN_342**](docs/new-features/) (ข้อมูลจำเพาะโดยละเอียด 217 รายการ) - ---- - -## 👥 ผู้มีส่วนร่วม - -[![Contributors](https://contrib.rocks/image?repo=diegosouzapw/OmniRoute&max=100&columns=20&anon=1)](https://github.com/diegosouzapw/OmniRoute/graphs/contributors) - -### วิธีการมีส่วนร่วม - -1. แยกพื้นที่เก็บข้อมูล -2. สร้างสาขาคุณลักษณะของคุณ (`git checkout -b feature/amazing-feature`) -3. ยอมรับการเปลี่ยนแปลงของคุณ (`git commit -m 'Add amazing feature'`) -4. กดไปที่สาขา (`git push origin feature/amazing-feature`) -5. เปิดคำขอดึง - -ดู [CONTRIBUTING.md](CONTRIBUTING.md) สำหรับคำแนะนำโดยละเอียด - -### เปิดตัวเวอร์ชันใหม่ - -```bash -# Create a release — npm publish happens automatically -gh release create v2.0.0 --title "v2.0.0" --generate-notes -``` - ---- - -## 📊 ประวัติดารา - -## Stargazers เมื่อเวลาผ่านไป - -## [![Stargazers over time](https://starchart.cc/diegosouzapw/OmniRoute.svg?variant=adaptive)](https://starchart.cc/diegosouzapw/OmniRoute) - -## 🙏ขอบพระคุณ - -ขอขอบคุณเป็นพิเศษกับ **[9router](https://github.com/decolua/9router)** โดย **[decolua](https://github.com/decolua)** — โปรเจ็กต์ดั้งเดิมที่เป็นแรงบันดาลใจให้กับ Fork นี้ OmniRoute สร้างบนรากฐานอันน่าทึ่งดังกล่าวด้วยคุณสมบัติเพิ่มเติม API หลายรูปแบบ และการเขียน TypeScript ใหม่ทั้งหมด - -ขอขอบคุณเป็นพิเศษสำหรับ **[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)** — การใช้งาน Go ดั้งเดิมที่เป็นแรงบันดาลใจให้กับพอร์ต JavaScript นี้ - ---- - -## 📄 ใบอนุญาต - -ใบอนุญาต MIT - ดู [LICENSE](LICENSE) สำหรับรายละเอียด - ---- - -<div align="center"> - <sub>สร้างด้วย ❤️ สำหรับนักพัฒนาที่เขียนโค้ด 24/7</sub> - <br/> - <sub><a href="https://omniroute.online">omniroute.online</a>OMNI_TOKEN_731__ -</div> -<!-- เปิดใช้งานการสนทนา GitHub สำหรับชุมชนถาม & ตอบ --> +👉 **[Read the Documentation here](docs/i18n/th/README.md)** diff --git a/README.uk-UA.md b/README.uk-UA.md index 4eacbc4ac6..39fec3b55c 100644 --- a/README.uk-UA.md +++ b/README.uk-UA.md @@ -1,2082 +1,5 @@ -# 🚀 OmniRoute — безкоштовний ШІ-шлюз +# 🌐 OmniRoute (uk-UA) -### Ніколи не припиняйте кодувати. Розумна маршрутизація до **БЕЗКОШТОВНИХ і недорогих моделей штучного інтелекту** з автоматичним резервним копіюванням. +The documentation has been formalized and moved to our centralized i18n structure. -_Ваш універсальний API-проксі — одна кінцева точка, 67+ провайдерів, нуль простоїв. Тепер з оркестровкою агента **MCP & A2A**._ - -**Завершення чату • Вбудовування • Генерація зображень • Відео • Музика • Аудіо • Реранжування • **Веб-пошук** • Сервер MCP • Протокол A2A • 100% TypeScript** - ---- - -<div align="center"> - -[![npm version](https://img.shields.io/npm/v/omniroute?color=cb3837&logo=npm)](https://www.npmjs.com/package/omniroute) -[![npm downloads](https://img.shields.io/npm/dm/omniroute?color=cb3837&logo=npm&label=npm%20downloads)](https://www.npmjs.com/package/omniroute) -[![Docker Hub](https://img.shields.io/docker/v/diegosouzapw/omniroute?label=Docker%20Hub&logo=docker&color=2496ED)](https://hub.docker.com/r/diegosouzapw/omniroute) -[![Docker Pulls](https://img.shields.io/docker/pulls/diegosouzapw/omniroute?logo=docker&color=2496ED&label=docker%20pulls)](https://hub.docker.com/r/diegosouzapw/omniroute) -[![License](https://img.shields.io/github/license/diegosouzapw/OmniRoute)](https://github.com/diegosouzapw/OmniRoute/blob/main/LICENSE) -[![Website](https://img.shields.io/badge/Website-omniroute.online-blue?logo=google-chrome&logoColor=white)](https://omniroute.online) -[![WhatsApp](https://img.shields.io/badge/WhatsApp-Community-25D366?logo=whatsapp&logoColor=white)](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) - -[🌐 Website](https://omniroute.online) • [🚀 Quick Start](#-quick-start) • [💡 Features](#-key-features) • [📖 Docs](#-documentation) • [💰 Pricing](#-pricing-at-a-glance) • [💬 WhatsApp](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) - -</div> - -🌐 **Доступно в:** 🇺🇸 [English](README.md) | 🇧🇷 [Português (Brasil)](docs/i18n/pt-BR/README.md) | 🇪🇸 [Español](docs/i18n/es/README.md) | 🇫🇷 [Français](docs/i18n/fr/README.md) | 🇮🇹 [Italiano](docs/i18n/it/README.md) | 🇷🇺 [Русский](docs/i18n/ru/README.md) | 🇨🇳 [中文 (简体)](docs/i18n/zh-CN/README.md) | 🇩🇪 [Deutsch](docs/i18n/de/README.md) | 🇮🇳 [हिन्दी](docs/i18n/in/README.md) | 🇹🇭 [ไทย](docs/i18n/th/README.md) | 🇺🇦 [Українська](docs/i18n/uk-UA/README.md) | 🇸🇦 [العربية](docs/i18n/ar/README.md) | 🇯🇵 [日本語](docs/i18n/ja/README.md) | 🇻🇳 [Tiếng Việt](docs/i18n/vi/README.md) | 🇧🇬 [Български](docs/i18n/bg/README.md) | 🇩🇰 [Dansk](docs/i18n/da/README.md) | 🇫🇮 [Suomi](docs/i18n/fi/README.md) | 🇮🇱 [עברית](docs/i18n/he/README.md) | 🇭🇺 [Magyar](docs/i18n/hu/README.md) | 🇮🇩 [Bahasa Indonesia](docs/i18n/id/README.md) | 🇰🇷 [한국어](docs/i18n/ko/README.md) | 🇲🇾 [Bahasa Melayu](docs/i18n/ms/README.md) | 🇳🇱 [Nederlands](docs/i18n/nl/README.md) | 🇳🇴 [Norsk](docs/i18n/no/README.md) | 🇵🇹 [Português (Portugal)](docs/i18n/pt/README.md) | 🇷🇴 [Română](docs/i18n/ro/README.md) | 🇵🇱 [Polski](docs/i18n/pl/README.md) | 🇸🇰 [Slovenčina](docs/i18n/sk/README.md) | 🇸🇪 [Svenska](docs/i18n/sv/README.md) | 🇵🇭 [Filipino](docs/i18n/phi/README.md) | 🇨🇿 [Čeština](docs/i18n/cs/README.md) - ---- - -## 🆕 Що нового у v3.0.0 - -> **Оновлення з версії 2.9.5?** — див. [full CHANGELOG](CHANGELOG.md#300--2026-03-22-release-candidate--not-yet-merged-to-main) для всіх змін. - -| Площа | Змінити | -| ---------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 🔒 **CodeQL Security** | Виправлено 10+ попереджень CodeQL: поліноміальне повторення, небезпечна випадковість, виправлення ін’єкції оболонки | -| ✅ **Перевірка маршруту** | Усі 176 маршрутів API тепер перевірено за допомогою схем Zod + `validateBody()` — пропуски CI `check:route-validation:t06` | -| 🐛 **Витік тегів omniModel** | Внутрішні теги `<omniModel>` більше не просочуються до клієнтів у потокових відповідях SSE (#585) | -| 🔑 **API зареєстрованих ключів** | Автоматичне надання ключів API через `POST /api/v1/registered-keys` із застосуванням квот для кожного постачальника/облікового запису, ідемпотентністю, сховищем SHA-256 і додатковим звітуванням про проблеми GitHub | -| 🎨 **Значки постачальників** | 130+ логотипів постачальників через `@lobehub/icons` (SVG) із PNG → загальний резервний ланцюжок | -| 🔄 **Автосинхронізація моделі** | 24-годинний планувальник і ручне перемикання інтерфейсу користувача для синхронізації списків моделей для вбудованих і спеціальних OpenAI-сумісних провайдерів | -| 🌐 **OpenCode Zen/Go** | Два нових постачальника від @kang-heewon через PR #530: безкоштовний рівень + рівень підписки через `OpencodeExecutor` | -| 🐛 **Gemini CLI OAuth** | Помилка дії, коли `GEMINI_OAUTH_CLIENT_SECRET` відсутній у Docker (це була загадкова помилка Google) | -| 🐛 **Конфігурація OpenCode** | `saveOpenCodeConfig()` тепер правильно записує TOML у `XDG_CONFIG_HOME` | -| 🐛 **Перевизначення закріпленої моделі** | `body.model` правильно встановлено на `pinnedModel` для захисту контекстного кешу | -| 🐛 **петля Кодексу/Клода** | Блоки `tool_result` тепер перетворюються на текст, щоб зупинити нескінченні цикли | -| 🐛 **Переадресація входу** | Логін більше не зависає після пропуску встановлення пароля | -| 🐛 **Шляхи Windows** | Шляхи MSYS2/Git-Bash (`/c/...`) автоматично нормалізовано до `C:\...` | - ---- - -## 🖼️ Головна інформаційна панель - -<div align="center"> - <img src="./docs/screenshots/MainOmniRoute.png" alt="OmniRoute Dashboard" width="800"/> -</div> - ---- - -## 📸 Попередній перегляд інформаційної панелі - -<details> -<summary><b>Натисніть, щоб переглянути знімки панелі інструментів</b></summary> - -| Сторінка | Скріншот | -| ------------------------ | ------------------------------------------------- | -| **Постачальники** | ![Providers](docs/screenshots/01-providers.png) | -| **Комбінації** | ![Combos](docs/screenshots/02-combos.png) | -| **Аналітика** | ![Analytics](docs/screenshots/03-analytics.png) | -| **Здоров'я** | ![Health](docs/screenshots/04-health.png) | -| **Перекладач** | ![Translator](docs/screenshots/05-translator.png) | -| **Налаштування** | ![Settings](docs/screenshots/06-settings.png) | -| **Інструменти CLI** | ![CLI Tools](docs/screenshots/07-cli-tools.png) | -| **Журнали використання** | ![Usage](docs/screenshots/08-usage.png) | -| **Кінцеві точки** | ![Endpoints](docs/screenshots/09-endpoint.png) | - -</details> - ---- - -### 🤖 Безкоштовний постачальник AI для ваших улюблених агентів кодування - -_Підключіть будь-який інструмент IDE або CLI на основі штучного інтелекту через OmniRoute — безкоштовний шлюз API для необмеженого програмування._ - - <table> - <tr> - <td align="center" width="110"> - <a href="https://github.com/openclaw/openclaw"> - <img src="./public/providers/openclaw.png" alt="OpenClaw" width="48"/><br/> - <b>OpenClaw</b> - </a><br/> - <sub>⭐ 205K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/HKUDS/nanobot"> - <img src="./public/providers/nanobot.png" alt="NanoBot" width="48"/><br/> - <b>NanoBot</b> - </a><br/> - <sub>⭐ 20.9K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/sipeed/picoclaw"> - <img src="./public/providers/picoclaw.jpg" alt="PicoClaw" width="48"/><br/> - <b>PicoClaw</b> - </a><br/> - <sub>⭐ 14.6K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/zeroclaw-labs/zeroclaw"> - <img src="./public/providers/zeroclaw.png" alt="ZeroClaw" width="48"/><br/> - <b>ZeroClaw</b> - </a><br/> - <sub>⭐ 9.9K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/nearai/ironclaw"> - <img src="./public/providers/ironclaw.png" alt="IronClaw" width="48"/><br/> - <b>IronClaw</b> - </a><br/> - <sub>⭐ 2.1K</sub> - </td> - </tr> - <tr> - <td align="center" width="110"> - <a href="https://github.com/anomalyco/opencode"> - <img src="./public/providers/opencode.svg" alt="OpenCode" width="48"/><br/> - <b>OpenCode</b> - </a><br/> - <sub>⭐ 106K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/openai/codex"> - <img src="./public/providers/codex.png" alt="Codex CLI" width="48"/><br/> - <b>Codex CLI</b> - </a><br/> - <sub>⭐ 60.8K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/anthropics/claude-code"> - <img src="./public/providers/claude.png" alt="Claude Code" width="48"/><br/> - <b>Claude Code</b> - </a><br/> - <sub>⭐ 67.3K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/google-gemini/gemini-cli"> - <img src="./public/providers/gemini-cli.png" alt="Gemini CLI" width="48"/><br/> - <b>Gemini CLI</b> - </a><br/> - <sub>⭐ 94.7K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/Kilo-Org/kilocode"> - <img src="./public/providers/kilocode.png" alt="Kilo Code" width="48"/><br/> - <b>Kilo Code</b> - </a><br/> - <sub>⭐ 15.5K</sub> - </td> - </tr> - </table> - -<sub>📡 Усі агенти підключаються через <code>http://localhost:20128/v1</code> або <code>http://cloud.omniroute.online/v1</code> — одна конфігурація, необмежена кількість моделей і квота</sub> - ---- - -## 🤔 Чому OmniRoute? - -**Припиніть витрачати гроші та досягати лімітів:** - -- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Квота підписки закінчується без використання кожного місяця -- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Обмеження швидкості перешкоджають кодуванню в середині -- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Дорогі API ($20-50/місяць за постачальника) -- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Ручне перемикання між провайдерами - -**OmniRoute вирішує цю проблему:** - -- ✅ **Збільште кількість підписок** - Відстежуйте квоту, використовуйте кожен біт перед скиданням -- ✅ **Автоматичний резерв** - Підписка → Ключ API → Дешево → Безкоштовно, без простоїв -- ✅ **Кілька облікових записів** - Циклічний цикл між обліковими записами кожного постачальника -- ✅ **Універсальний** - Працює з Claude Code, Codex, Gemini CLI, Cursor, Cline, OpenClaw, будь-яким інструментом CLI - ---- - -## 📧 Підтримка - -> 💬 **Приєднуйтесь до нашої спільноти!** [WhatsApp Group](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) — отримуйте допомогу, діліться порадами та будьте в курсі подій. - -- **Веб-сайт**: [omniroute.online](https://omniroute.online) -- **GitHub**: [github.com/diegosouzapw/OmniRoute](https://github.com/diegosouzapw/OmniRoute) -- **Проблеми**: [github.com/diegosouzapw/OmniRoute/issues](https://github.com/diegosouzapw/OmniRoute/issues) -- **WhatsApp**: [Community Group](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) -- **Допомога**: перегляньте [CONTRIBUTING.md](CONTRIBUTING.md), відкрийте PR або виберіть `good first issue` -- **Оригінальний проект**: [9router by decolua](https://github.com/decolua/9router) - -### 🐛 Повідомити про помилку? - -Відкриваючи проблему, виконайте команду system-info та прикріпіть згенерований файл: - -```bash -npm run system-info -``` - -Це генерує `system-info.txt` з вашою версією Node.js, версією OmniRoute, деталями ОС, встановленими інструментами CLI (qoder, gemini, claude, codex, antigravity, droid тощо), статусом Docker/PM2 і системними пакетами — усім, що нам потрібно для швидкого відтворення вашої проблеми. Прикріпіть файл безпосередньо до свого випуску GitHub. - ---- - -## 🔄 Як це працює - -``` -┌─────────────┐ -│ Your CLI │ (Claude Code, Codex, Gemini CLI, OpenClaw, Cursor, Cline...) -│ Tool │ -└──────┬──────┘ - │ http://localhost:20128/v1 - ↓ -┌─────────────────────────────────────────┐ -│ OmniRoute (Smart Router) │ -│ • Format translation (OpenAI ↔ Claude) │ -│ • Quota tracking + Embeddings + Images │ -│ • Auto token refresh │ -└──────┬──────────────────────────────────┘ - │ - ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex, Gemini CLI - │ ↓ quota exhausted - ├─→ [Tier 2: API KEY] DeepSeek, Groq, xAI, Mistral, NVIDIA NIM, etc. - │ ↓ budget limit - ├─→ [Tier 3: CHEAP] GLM ($0.6/1M), MiniMax ($0.2/1M) - │ ↓ budget limit - └─→ [Tier 4: FREE] Qoder, Qwen, Kiro (unlimited) - -Result: Never stop coding, minimal cost -``` - ---- - -## 🎯 Що вирішує OmniRoute — 30 реальних проблем і варіантів використання - -> **Кожен розробник, який використовує інструменти штучного інтелекту, щодня стикається з цими проблемами.** OmniRoute було створено, щоб вирішити їх усі — від перевитрати коштів до регіональних блокувань, від порушених потоків OAuth до операцій протоколу та можливості спостереження на підприємстві. - -<details> -<summary><b>💸 1. «Я плачу за дорогу підписку, але мене все одно переривають через обмеження»</b></summary> - -Розробники платять 20–200 доларів на місяць за Claude Pro, Codex Pro або GitHub Copilot. Навіть якщо платити, квота має максимальну межу — 5 годин використання, тижневі ліміти або ліміти за хвилину. У середині сеансу кодування постачальник перестає відповідати, а розробник втрачає швидкість і продуктивність. - -**Як це вирішує OmniRoute:** - -- **Smart 4-Tier Fallback** — якщо квота підписки закінчується, автоматично перенаправляється до API Key → Дешево → Безкоштовно без ручного втручання -- **Відстеження квот у реальному часі** — показує споживання токенів у реальному часі зі зворотним відліком скидання (5 годин, щодня, щотижня) -- **Підтримка кількох облікових записів** — кілька облікових записів у кожного постачальника з автоматичним циклічним перебором — коли один закінчується, перемикається на наступний -- **Користувацькі комбо** — резервні ланцюжки, які можна налаштувати, із 6 стратегіями балансування (спочатку заповнення, циклічний, P2C, випадковий, найменш використовуваний, оптимізований за витратами) -- **Бізнес-квоти Codex** — Моніторинг квот робочого простору бізнесу/команди безпосередньо на інформаційній панелі - -</details> - -<details> -<summary><b>🔌 2. «Мені потрібно використовувати кілька провайдерів, але кожен має інший API»</b></summary> - -OpenAI використовує один формат, Claude (Anthropic) використовує інший, Gemini ще інший. Якщо розробник хоче перевірити моделі від різних постачальників або повернутися до них, йому потрібно переналаштувати SDK, змінити кінцеві точки, мати справу з несумісними форматами. Спеціальні постачальники (FriendLI, NIM) мають нестандартні кінцеві точки моделі. - -**Як це вирішує OmniRoute:** - -- **Unified Endpoint** — єдиний `http://localhost:20128/v1` служить проксі-сервером для всіх 67+ постачальників -- **Переклад форматів** — автоматичний і прозорий: OpenAI ↔ Claude ↔ Gemini ↔ Responses API -- **Response Sanitization** — видаляє нестандартні поля (`x_groq`, `usage_breakdown`, `service_tier`), які порушують OpenAI SDK v1.83+ -- **Нормалізація ролі** — перетворює `developer` → `system` для постачальників, які не є OpenAI; `system` → `user` для GLM/ERNIE -- **Think Tag Extraction** — витягує блоки `<think>` з таких моделей, як DeepSeek R1, у стандартизований `reasoning_content` -- **Структурований вихід для Gemini** — `json_schema` → `responseMimeType`/`responseSchema` автоматичне перетворення -- **`stream` за замовчуванням `false`** — узгоджується зі специфікацією OpenAI, уникаючи неочікуваних SSE у Python/Rust/Go SDK - -</details> - -<details> -<summary><b>🌐 3. «Мій постачальник штучного інтелекту блокує мій регіон/країну»</b></summary> - -Такі постачальники, як OpenAI/Codex, блокують доступ із певних географічних регіонів. Користувачі отримують помилки на зразок `unsupported_country_region_territory` під час з’єднань OAuth і API. Це особливо засмучує розробників із країн, що розвиваються. - -**Як це вирішує OmniRoute:** - -- **3-рівнева конфігурація проксі-сервера** — налаштовується проксі-сервер на 3 рівнях: глобальний (увесь трафік), для кожного постачальника (лише один постачальник) і для кожного підключення/ключа -- **Значки проксі-сервера з кольоровим кодуванням** — Візуальні індикатори: 🟢 глобальний проксі, 🟡 проксі-сервер постачальника, 🔵 проксі-сервер підключення, завжди показує IP-адресу -- **Обмін маркерами OAuth через проксі** — потік OAuth також проходить через проксі, вирішуючи проблему `unsupported_country_region_territory` -- **Тестування з’єднання через проксі** — тестування з’єднання використовує налаштований проксі (без прямого обходу) -- **Підтримка SOCKS5** — повна підтримка проксі SOCKS5 для вихідної маршрутизації -- **TLS Fingerprint Spoofing** — відбиток TLS, подібний до браузера, через `wreq-js` для обходу виявлення ботів -- **🔏 Зіставлення відбитків CLI** — змінює порядок заголовків і полів основного вмісту, щоб відповідати власним двійковим підписам CLI, суттєво знижуючи ризик позначення облікового запису. IP-адреса проксі-сервера зберігається — ви отримуєте приховане **і** маскування IP-адреси одночасно - -</details> - -<details> -<summary><b>🆓 4. «Я хочу використовувати ШІ для кодування, але в мене немає грошей»</b></summary> - -Не кожен може платити 20–200 доларів на місяць за підписку на AI. Студентам, розробникам із країн, що розвиваються, любителям і фрілансерам потрібен доступ до якісних моделей за нульовою ціною. - -**Як це вирішує OmniRoute:** - -- **Вбудовані безкоштовні постачальники рівня** — Вбудована підтримка 100% безкоштовних постачальників: Qoder (5 необмежених моделей через OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 необмежені моделі: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID безкоштовно), Gemini CLI (180K токенів/місяць безкоштовно) -- **Ollama Cloud** — хмарні моделі Ollama на `api.ollama.com` з безкоштовним рівнем «Light usage»; використовуйте префікс `ollamacloud/<model>` -- **Безкоштовні комбінації** — ланцюжок `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = 0 доларів США на місяць без простоїв -- **Безкоштовний доступ до NVIDIA NIM** — ~40 об./хв. для розробників назавжди безкоштовний доступ до 70+ моделей на build.nvidia.com (перехід від кредитів до чистих обмежень швидкості) -- **Стратегія оптимізації витрат** — стратегія маршрутизації, яка автоматично вибирає найдешевшого доступного постачальника - -</details> - -<details> -<summary><b>🔒 5. «Мені потрібно захистити мій ШІ-шлюз від несанкціонованого доступу»</b></summary> - -Коли шлюз штучного інтелекту надається мережі (LAN, VPS, Docker), будь-хто, хто має адресу, може використовувати токени/квоту розробника. Без захисту API вразливі до неправильного використання, швидкого впровадження та зловживання. - -**Як це вирішує OmniRoute:** - -- **Керування ключами API** — генерація, ротація та визначення обсягу для кожного постачальника за допомогою спеціальної сторінки `/dashboard/api-manager` -- **Дозволи на рівні моделі** — обмежте ключі API певними моделями (`openai/*`, шаблони узагальнення) з перемикачем «Дозволити все»/«Обмежити» -- **API Endpoint Protection** — вимагати ключ для `/v1/models` та блокувати певних постачальників зі списку -- **Auth Guard + CSRF Protection** — усі маршрути інформаційної панелі захищено проміжним програмним забезпеченням `withAuth` + маркерами CSRF -- **Обмежувач швидкості** — обмеження швидкості за IP-адресою з настроюваними вікнами -- **IP Filtering** — список дозволених/чорних адрес для контролю доступу -- **Prompt Injection Guard** — очищення від шкідливих шаблонів підказок -- **Шифрування AES-256-GCM** — облікові дані зашифровані в стані спокою - -</details> - -<details> -<summary><b>🛑 6. «Мій постачальник не працює, і я втратив потік кодування»</b></summary> - -Постачальники AI можуть стати нестабільними, повертати помилки 5xx або досягати тимчасових обмежень швидкості. Якщо розробник залежить від одного постачальника, вони перериваються. Без автоматичних вимикачів повторні спроби можуть призвести до збою програми. - -**Як це вирішує OmniRoute:** - -- **Автоматичний вимикач для кожної моделі** — Автоматичне розмикання/замикання з настроюваними пороговими значеннями та часом охолодження (замкнуто/розімкнуто/напіврозімкнуто), для кожної моделі, щоб уникнути каскадних блокувань -- **Exponential Backoff** — прогресивні затримки повторних спроб -- **Anti-Thundering Herd** — Mutex + захист семафора від одночасних повторних штормів -- **Комбіновані запасні ланцюги** — якщо основний постачальник виходить з ладу, автоматично проходить через ланцюжок без втручання. -- **Combo Circuit Breaker** — автоматично вимикає несправні постачальники в комбінованому ланцюжку -- **Health Dashboard** — Моніторинг безвідмовної роботи, стани автоматичного вимикача, блокування, статистика кешу, затримка p50/p95/p99 - -</details> - -<details> -<summary><b>🔧 7. «Налаштування кожного інструменту штучного інтелекту є виснажливим і повторюваним процесом»</b></summary> - -Розробники використовують Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code... Кожному інструменту потрібна інша конфігурація (кінцева точка API, ключ, модель). Перенастроювання при зміні постачальника чи моделі – марна трата часу. - -**Як це вирішує OmniRoute:** - -- **Панель інструментів CLI** — спеціальна сторінка з налаштуванням одним клацанням для Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline -- **GitHub Copilot Config Generator** — генерує `chatLanguageModels.json` для коду VS із масовим вибором моделі -- **Майстер адаптації** — 4-етапне налаштування для тих, хто вперше користується -- **Одна кінцева точка, усі моделі** — налаштуйте `http://localhost:20128/v1` один раз, отримайте доступ до 67+ постачальників - -</details> - -<details> -<summary><b>🔑 8. «Керування токенами OAuth від кількох постачальників — це пекло»</b></summary> - -Claude Code, Codex, Gemini CLI, Copilot — усі використовують OAuth 2.0 із терміном дії маркерів. Розробникам потрібно постійно проходити повторну автентифікацію, мати справу з `client_secret is missing`, `redirect_uri_mismatch` та збоями на віддалених серверах. OAuth у LAN/VPS є особливо проблематичним. - -**Як це вирішує OmniRoute:** - -- **Auto Token Refresh** — маркери OAuth оновлюються у фоновому режимі до завершення терміну дії -- **Вбудований OAuth 2.0 (PKCE)** — автоматичний потік для Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder -- **Multi-Account OAuth** — кілька облікових записів на постачальника за допомогою вилучення токенів JWT/ID -- **OAuth LAN/Remote Fix** — виявлення приватної IP-адреси для `redirect_uri` + ручний режим URL-адреси для віддалених серверів -- **OAuth за Nginx** — використовує `window.location.origin` для зворотної сумісності проксі -- **Remote OAuth Guide** — покроковий посібник для облікових даних Google Cloud на VPS/Docker - -</details> - -<details> -<summary><b>📊 9. «Я не знаю, скільки я витрачаю і куди»</b></summary> - -Розробники використовують кілька платних постачальників, але не мають єдиного уявлення про витрати. Кожен постачальник має власну платіжну панель, але немає консолідованого перегляду. Несподівані витрати можуть накопичитися. - -**Як це вирішує OmniRoute:** - -- **Інформаційна панель аналізу витрат** — відстеження вартості кожного токена та керування бюджетом для кожного постачальника -- **Бюджетні обмеження на рівень** — максимальна сума витрат на рівень, що запускає автоматичний відкат -- **Конфігурація ціни за модель** — налаштовувані ціни за модель -- **Статистика використання за ключ API** — кількість запитів і позначка часу останнього використання для кожного ключа -- **Інформаційна панель аналітики** — картки зі статистичними даними, діаграма використання моделі, таблиця постачальників із показниками успіху та затримкою - -</details> - -<details> -<summary><b>🐛 10. «Я не можу діагностувати помилки та проблеми під час викликів ШІ»</b></summary> - -Коли виклик не вдається, розробник не знає, чи це було обмеження швидкості, прострочений маркер, неправильний формат чи помилка постачальника. Фрагментовані журнали на різних терміналах. Без спостережливості налагодження відбувається методом проб і помилок. - -**Як це вирішує OmniRoute:** - -- **Інформаційна панель уніфікованих журналів** — 4 вкладки: журнали запитів, журнали проксі, журнали аудиту, консоль -- **Console Log Viewer** — засіб перегляду терміналу в режимі реального часу з кольоровими рівнями, автопрокручуванням, пошуком, фільтром -- **Проксі-журнали SQLite** — постійні журнали, які залишаються після перезапуску сервера -- **Translator Playground** — 4 режими налагодження: Playground (переклад формату), Chat Tester (туди й назад), Test Bench (пакет), Live Monitor (у реальному часі) -- **Запит телеметрії** — затримка p50/p95/p99 + трасування X-Request-Id -- **Логування на основі файлів із ротацією** — консольний перехоплювач записує все в журнал JSON із ротацією на основі розміру -- **Інформаційний звіт про систему** — `npm run system-info` генерує `system-info.txt` з повним середовищем (версія Node, версія OmniRoute, ОС, інструменти CLI, статус Docker/PM2). Додайте його під час повідомлення про проблеми для миттєвого сортування. - -</details> - -<details> -<summary><b>🏗️ 11. «Розгортання та підтримка шлюзу складна»</b></summary> - -Встановлення, налаштування та обслуговування проксі ШІ в різних середовищах (локальне, VPS, Docker, хмара) є трудомістким. Такі проблеми, як жорстко закодовані шляхи, `EACCES` в каталогах, конфлікти портів і кросплатформні збірки, додають проблем. - -**Як це вирішує OmniRoute:** - -- **npm global install** — `npm install -g omniroute && omniroute` — готово -- **Мультиплатформенний Docker** — нативний AMD64 + ARM64 (Apple Silicon, AWS Graviton, Raspberry Pi) -- **Профілі створення Docker** — `base` (без інструментів CLI) і `cli` (з Claude Code, Codex, OpenClaw) -- **Electron Desktop App** — рідна програма для Windows/macOS/Linux із системним треєм, автозапуском, офлайн-режимом -- **Режим розділеного порту** — API та інформаційна панель на окремих портах для розширених сценаріїв (зворотний проксі, мережа контейнерів) -- **Cloud Sync** — синхронізація налаштувань між пристроями через Cloudflare Workers -- **Резервне копіювання БД** — автоматичне резервне копіювання, відновлення, експорт та імпорт усіх налаштувань - -</details> - -<details> -<summary><b>🌍 12. «Інтерфейс лише англійською мовою, і моя команда не розмовляє англійською»</b></summary> - -Команди в неангломовних країнах, особливо в Латинській Америці, Азії та Європі, стикаються з інтерфейсами лише англійською мовою. Мовні бар’єри зменшують адаптацію та збільшують кількість помилок конфігурації. - -**Як це вирішує OmniRoute:** - -- **Інформаційна панель i18n — 30 мов** — перекладено всі 500+ клавіш, включаючи арабську, болгарську, датську, німецьку, іспанську, фінську, французьку, іврит, гінді, угорську, індонезійську, італійську, японську, корейську, малайську, голландську, норвезьку, польську, португальську (PT/BR), румунську, російську, словацьку, шведську, тайську, українську, в’єтнамську, китайська, філіппінська, англійська -- **Підтримка RTL** — підтримка арабської та івриту справа наліво -- **Багатомовні файли README** — 30 повних перекладів документації -- **Вибір мови** — значок глобуса в заголовку для перемикання в реальному часі - -</details> - -<details> -<summary><b>🔄 13. «Мені потрібно більше, ніж чат — мені потрібні вставки, зображення, аудіо»</b></summary> - -ШІ — це не просто завершення чату. Розробникам потрібно генерувати зображення, транскрибувати аудіо, створювати вбудовування для RAG, змінювати рейтинг документів і модерувати вміст. Кожен API має різну кінцеву точку та формат. - -**Як це вирішує OmniRoute:** - -- **Вбудовування** — `/v1/embeddings` з 6 постачальниками та 9+ моделями -- **Генерація зображень** — `/v1/images/generations` з 10 постачальниками та понад 20 моделями (OpenAI, xAI, Together, Fireworks, Nebius, Hyperbolic, NanoBanana, Antigravity, SD WebUI, ComfyUI) -- **Текст у відео** — `/v1/videos/generations` — ComfyUI (AnimateDiff, SVD) і SD WebUI -- **Текст у музику** — `/v1/music/generations` — ComfyUI (Stable Audio Open, MusicGen) -- **Транскрипція аудіо** — `/v1/audio/transcriptions` — Whisper + Nvidia NIM, HuggingFace, Qwen3 -- **Перетворення тексту в мовлення** — `/v1/audio/speech` — ElevenLabs, Nvidia NIM, HuggingFace, Coqui, Tortoise, Qwen3, **Inworld**, **Cartesia**, **PlayHT**, + існуючі постачальники -- **Модерація** — `/v1/moderations` — Перевірка безпеки вмісту -- **Переранжування** — `/v1/rerank` — Переранжування релевантності документа -- **Responses API** — повна підтримка `/v1/responses` для Codex - -</details> - -<details> -<summary><b>🧪 14. «У мене немає можливості перевірити та порівняти якість різних моделей»</b></summary> - -Розробники хочуть знати, яка модель найкраще підходить для їхнього випадку використання — код, переклад, міркування — але порівнювати вручну повільно. Інтегрованих інструментів оцінювання не існує. - -**Як це вирішує OmniRoute:** - -- **Оцінки LLM** — Золотий набір тестів із 10 попередньо завантаженими випадками, що охоплюють привітання, математику, географію, генерацію коду, відповідність JSON, переклад, уцінку, відмову безпеки -- **4 стратегії збігу** — `exact`, `contains`, `regex`, `custom` (функція JS) -- **Translator Playground Test Bench** — Пакетне тестування з кількома входами та очікуваними результатами, порівняння між постачальниками -- **Chat Tester** — повний цикл із візуальним відтворенням відповідей -- **Live Monitor** — потік усіх запитів, що проходять через проксі, у реальному часі - -</details> - -<details> -<summary><b>📈 15. «Мені потрібно масштабувати без втрати продуктивності»</b></summary> - -Оскільки кількість запитів зростає, без кешування ті самі запитання створюють дублюючі витрати. Без ідемпотентності, дублікат запитів обробки відходів. Необхідно дотримуватися обмежень тарифів для кожного постачальника. - -**Як це вирішує OmniRoute:** - -- **Семантичний кеш** — дворівневий кеш (підпис + семантичний) зменшує вартість і затримку -- **Request Idempotency** — вікно дедуплікації 5 с для ідентичних запитів -- **Виявлення ліміту швидкості** — RPM для кожного постачальника, мінімальний розрив і максимальне одночасне відстеження -- **Обмеження швидкості, які можна редагувати** — налаштування за замовчуванням у Параметрах → Стійкість із наполегливістю -- **API Key Validation Cache** — 3-рівневий кеш для продуктивності -- **Інформаційна панель справності з телеметрією** — затримка p50/p95/p99, статистика кешу, час роботи - -</details> - -<details> -<summary><b>🤖 16. «Я хочу глобально контролювати поведінку моделі»</b></summary> - -Розробники, які хочуть, щоб усі відповіді відповідали певною мовою, з певним тоном або хочуть обмежити маркери міркування. Налаштовувати це в кожному інструменті/запиті є недоцільним. - -**Як це вирішує OmniRoute:** - -- **Впровадження системної підказки** — глобальна підказка застосовується до всіх запитів -- **Thinking Budget Validation** — Контроль розподілу токенів міркувань за запитом (прохідний, автоматичний, спеціальний, адаптивний) -- **6 стратегій маршрутизації** — глобальні стратегії, які визначають спосіб розподілу запитів -- **Wildcard Router** — шаблони `provider/*` динамічно направляють до будь-якого постачальника -- **Увімкнути/вимкнути комбо** — перемикайте комбо безпосередньо з інформаційної панелі -- **Перемикнути постачальника** — увімкнути/вимкнути всі з’єднання для постачальника одним клацанням миші -- **Заблоковані постачальники** — виключити певних постачальників зі списку `/v1/models` - -</details> - -<details> -<summary><b>🧰 17. «Мені потрібні інструменти MCP як першокласні можливості продукту»</b></summary> - -Багато шлюзів ШІ розкривають MCP лише як приховану деталь реалізації. Командам потрібен видимий, керований рівень операцій. - -**Як це вирішує OmniRoute:** - -- MCP з’являється на панелі навігації та на вкладці протоколу кінцевої точки -- Спеціальна сторінка керування MCP із процесом, інструментами, обсягами й аудитом -- Вбудований швидкий запуск для `omniroute --mcp` та адаптація клієнта - -</details> - -<details> -<summary><b>🧠 18. «Мені потрібна оркестровка A2A із синхронізацією + шляхи завдань потоку»</b></summary> - -Робочі процеси агента потребують як прямих відповідей, так і тривалого потокового виконання з контролем життєвого циклу. - -**Як це вирішує OmniRoute:** - -- Кінцева точка A2A JSON-RPC (`POST /a2a`) з `message/send` і `message/stream` -- Потокова передача SSE з розповсюдженням стану терміналу -- API життєвого циклу завдань для `tasks/get` та `tasks/cancel` - -</details> - -<details> -<summary><b>🛰️ 19. «Мені потрібна реальна справність процесу MCP, а не вгаданий статус»</b></summary> - -Операційним групам потрібно знати, чи справді MCP активний, а не лише те, чи доступний API. - -**Як це вирішує OmniRoute:** - -- Файл серцевого ритму виконання з PID, часовими мітками, транспортом, кількістю інструментів і режимом області -- API статусу MCP, що поєднує серцебиття + останню активність -- Картки стану інтерфейсу користувача для процесу/часу безперебійної роботи/свіжості пульсу - -</details> - -<details> -<summary><b>📋 20. «Мені потрібне виконання інструменту MCP з можливістю перевірки»</b></summary> - -Коли інструменти змінюють конфігурацію або запускають операційні дії, командам потрібна криміналістична відстежуваність. - -**Як це вирішує OmniRoute:** - -— Журнал аудиту з підтримкою SQLite для викликів інструментів MCP - -- Фільтри за інструментом, успіхом/невдачею, ключем API та розбивкою на сторінки -- Таблиця аудиту інформаційної панелі + кінцеві точки статистики для автоматизації - -</details> - -<details> -<summary><b>🔐 21. «Мені потрібні обмежені дозволи MCP для інтеграції»</b></summary> - -Різні клієнти повинні мати мінімальний доступ до категорій інструментів. - -**Як це вирішує OmniRoute:** - -- 9 детальних областей MCP для контрольованого доступу до інструменту -- Застосування обсягу та видимість в інтерфейсі користувача керування MCP -- Безпечна поза за замовчуванням для робочих інструментів - -</details> - -<details> -<summary><b>⚙️ 22. «Мені потрібен оперативний контроль без перерозподілу»</b></summary> - -Командам потрібні швидкі зміни часу виконання під час інцидентів або витрат. - -**Як це вирішує OmniRoute:** - -- Перемикання комбо-активації безпосередньо з інформаційної панелі MCP -- Застосовуйте профілі стійкості з попередньо визначених пакетів політик -- Скинути стан автоматичного вимикача з тієї ж панелі керування - -</details> - -<details> -<summary><b>🔄 23. «Мені потрібна видимість і скасування життєвого циклу завдання A2A»</b></summary> - -Без видимості життєвого циклу інциденти завдань стає важко сортувати. - -**Як це вирішує OmniRoute:** - -— Список завдань/фільтрування за станом/навиками з розбивкою на сторінки - -- Деталізація метаданих завдань, подій і артефактів -- Кінцева точка скасування завдання та дія інтерфейсу користувача з підтвердженням - -</details> - -<details> -<summary><b>🌊 24. «Мені потрібні активні метрики потоку для завантаження A2A»</b></summary> - -Робочі процеси потокової передачі вимагають оперативного розуміння паралельності та живих з’єднань. - -**Як це вирішує OmniRoute:** - -— Лічильники активних потоків інтегровані в статус A2A - -- Мітка часу останнього завдання та підрахунок стану -- Картки інформаційної панелі A2A для моніторингу операцій у реальному часі - -</details> - -<details> -<summary><b>🪪 25. «Мені потрібне стандартне виявлення агента для клієнтів»</b></summary> - -Зовнішнім клієнтам і оркестрантам потрібні машинозчитувані метадані для адаптації. - -**Як це вирішує OmniRoute:** - -- Картка агента розкрита в `/.well-known/agent.json` -- Можливості та навички, показані в інтерфейсі користувача користувача -- API стану A2A включає метадані виявлення для автоматизації - -</details> - -<details> -<summary><b>🧭 26. «Мені потрібна можливість виявлення протоколу в UX продукту»</b></summary> - -Якщо користувачі не можуть виявити поверхні протоколу, якість впровадження та підтримки падає. - -**Як це вирішує OmniRoute:** - -- Консолідована сторінка **Кінцеві точки** з вкладками для кінцевих точок проксі, MCP, A2A та API - — Перемикання стану вбудованої служби (онлайн/офлайн) для MCP і A2A -- Посилання з огляду на спеціальні вкладки керування - -</details> - -<details> -<summary><b>🧪 27. «Мені потрібна наскрізна перевірка протоколу з реальними клієнтами»</b></summary> - -Пробних тестів недостатньо для перевірки сумісності протоколу перед випуском. - -**Як це вирішує OmniRoute:** - -- Комплект E2E, який завантажує програму та використовує реальний клієнтський транспорт MCP SDK -- Клієнт A2A перевіряє потоки виявлення, надсилання, потокової передачі, отримання та скасування -- Перехресна перевірка тверджень щодо аудиту MCP та API завдань A2A - -</details> - -<details> -<summary><b>📡 28. «Мені потрібна уніфікована можливість спостереження на всіх інтерфейсах»</b></summary> - -Поділ спостережуваності за протоколом створює сліпі зони та довший MTTR. - -**Як це вирішує OmniRoute:** - -- Уніфіковані інформаційні панелі/журнали/аналітика в одному продукті -- Справність + аудит + телеметрія запитів на рівнях OpenAI, MCP і A2A -- Операційні API для статусу та автоматизації - -</details> - -<details> -<summary><b>💼 29. «Мені потрібен один час виконання для проксі + інструменти + оркестрація агента»</b></summary> - -Запуск багатьох окремих служб збільшує експлуатаційні витрати та частоту збоїв. - -**Як це вирішує OmniRoute:** - -- OpenAI-сумісний проксі, сервер MCP і сервер A2A в одному стеку -- Спільна автентифікація, стійкість, зберігання даних і можливість спостереження -- Послідовна модель політики на всіх поверхнях взаємодії - -</details> - -<details> -<summary><b>🚀 30. «Мені потрібно надсилати агентські робочі процеси без розповсюдження коду клею»</b></summary> - -Команди втрачають швидкість під час з’єднання кількох спеціальних служб і сценаріїв. - -**Як це вирішує OmniRoute:** - -- Уніфікована стратегія кінцевих точок для клієнтів і агентів - — Вбудовані інтерфейси керування протоколами та шляхи перевірки диму -- Основи, готові до виробництва (безпека, журналювання, стійкість, резервне копіювання) - -</details> - -### Приклади Playbooks (Integrated Use Cases) - -**Playbook A: Максимальна кількість платної підписки + дешеве резервне копіювання** - -```txt -Combo: "maximize-claude" - 1. cc/claude-opus-4-6 - 2. glm/glm-4.7 - 3. if/kimi-k2-thinking - -Monthly cost: $20 + small backup spend -Outcome: higher quality, near-zero interruption -``` - -**Playbook B: стек кодування без витрат** - -```txt -Combo: "free-forever" - 1. gc/gemini-3-flash - 2. if/kimi-k2-thinking - 3. qw/qwen3-coder-plus - -Monthly cost: $0 -Outcome: stable free coding workflow -``` - -**Playbook C: резервний ланцюжок 24/7** - -```txt -Combo: "always-on" - 1. cc/claude-opus-4-6 - 2. cx/gpt-5.2-codex - 3. glm/glm-4.7 - 4. minimax/MiniMax-M2.1 - 5. if/kimi-k2-thinking - -Outcome: deep fallback depth for deadline-critical workloads -``` - -**Playbook D: Операції агента з MCP + A2A** - -```txt -1) Start MCP transport (`omniroute --mcp`) for tool-driven operations -2) Run A2A tasks via `message/send` and `message/stream` -3) Observe via /dashboard/endpoint (MCP and A2A tabs) -4) Toggle services via inline status controls -``` - ---- - -## 🆓 Почніть безкоштовно — нульова вартість конфігурації - -> Налаштуйте кодування AI за лічені хвилини за **$0/місяць**. Підключіть ці безкоштовні облікові записи та використовуйте вбудовану комбінацію **Free Stack**. - -| Крок | Дія | Постачальники розблоковано | -| ---- | ------------------------------------------------------- | ------------------------------------------------------------------- | -| 1 | Підключіть **Kiro** (AWS Builder ID OAuth) | Клод Сонет 4.5, Хайку 4.5 — **необмежений** | -| 2 | Підключіть **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... — **необмежено** | -| 3 | Підключіть **Qwen** (код пристрою) | qwen3-coder-plus, qwen3-coder-flash... — **необмежено** | -| 4 | Підключіть **Gemini CLI** (Google OAuth) | gemini-3-flash, gemini-2.5-pro — **180K/міс безкоштовно** | -| 5 | `/dashboard/combos` → Шаблон **Безкоштовний стек ($0)** | Циклічний цикл усіх безкоштовних постачальників автоматично | - -**Направте будь-який IDE/CLI на:** `http://localhost:20128/v1` · API-ключ: `any-string` · Готово. - -> **Додаткове покриття (також безкоштовно):** ключ Groq API (30 об/хв безкоштовно), NVIDIA NIM (40 об/хв безкоштовно, 70+ моделей), Cerebras (1 млн токів/день), ключ API LongCat (50 млн токенів/день!), Cloudflare Workers AI (10 тис. нейронів/день, 50+ моделей). - -## ⚡ Швидкий старт - -### 1) Встановити та запустити - -```bash -npm install -g omniroute -omniroute -``` - -> **користувачі pnpm:** запустіть `pnpm approve-builds -g` після інсталяції, щоб увімкнути власні сценарії збірки, необхідні для `better-sqlite3` та `@swc/core`: -> -> ```bash -> pnpm install -g omniroute -> pnpm approve-builds -g # Select all packages → approve -> omniroute -> ``` - -Інформаційна панель відкривається за адресою `http://localhost:20128`, а базова URL-адреса API – `http://localhost:20128/v1`. - -| Команда | Опис | -| ----------------------- | --------------------------------------------------------------------------- | -| `omniroute` | Запустити сервер (`PORT=20128`, API та інформаційна панель на одному порту) | -| `omniroute --port 3000` | Установіть канонічний/API порт на 3000 | -| `omniroute --mcp` | Запустіть сервер MCP (транспорт stdio) | -| `omniroute --no-open` | Не відкривати автоматично браузер | -| `omniroute --help` | Показати довідку | - -Додатковий режим розділеного порту: - -```bash -PORT=20128 DASHBOARD_PORT=20129 omniroute -# API: http://localhost:20128/v1 -# Dashboard: http://localhost:20129 -``` - -### 2) Підключіть постачальників і створіть свій ключ API - -1. Відкрийте Інформаційну панель → `Providers` та підключіть принаймні одного постачальника (ключ OAuth або API). -2. Відкрийте Інформаційну панель → `Endpoints` та створіть ключ API. -3. (Необов’язково) Відкрийте інформаційну панель → `Combos` та встановіть запасний ланцюжок. - -### 3) Спрямуйте свій інструмент кодування на OmniRoute - -```txt -Base URL: http://localhost:20128/v1 -API Key: [copy from Endpoint page] -Model: if/kimi-k2-thinking (or any provider/model prefix) -``` - -Працює з Claude Code, Codex CLI, Gemini CLI, Cursor, Cline, OpenClaw, OpenCode та SDK, сумісними з OpenAI. - -### 4) Увімкнення та перевірка протоколів (версія 2.0) - -**MCP (для операцій, керованих інструментом):** - -```bash -omniroute --mcp -``` - -Потім підключіть свій клієнт MCP через `stdio` та перевірте такі інструменти, як: - -- `omniroute_get_health` -- `omniroute_list_combos` - -**A2A (для робочих процесів між агентами):** - -```bash -curl http://localhost:20128/.well-known/agent.json -``` - -```bash -curl -X POST http://localhost:20128/a2a \ - -H 'content-type: application/json' \ - -d '{"jsonrpc":"2.0","id":"quickstart","method":"message/send","params":{"skill":"quota-management","messages":[{"role":"user","content":"Give me a short quota summary."}]}}' -``` - -### 5) Перевірте все наскрізно (рекомендовано) - -```bash -npm run test:protocols:e2e -``` - -Цей набір перевіряє реальні потоки клієнтів MCP і A2A на запущену програму. - -### Альтернатива: запустити з джерела - -```bash -cp .env.example .env -npm install -PORT=20128 DASHBOARD_PORT=20129 NEXT_PUBLIC_BASE_URL=http://localhost:20129 npm run dev -``` - ---- - -## 🐳 Докер - -OmniRoute доступний як загальнодоступний образ Docker на [Docker Hub](https://hub.docker.com/r/diegosouzapw/omniroute). - -**Швидкий біг:** - -```bash -docker run -d \ - --name omniroute \ - --restart unless-stopped \ - -p 20128:20128 \ - -v omniroute-data:/app/data \ - diegosouzapw/omniroute:latest -``` - -**З файлом середовища:** - -```bash -# Copy and edit .env first -cp .env.example .env - -docker run -d \ - --name omniroute \ - --restart unless-stopped \ - --env-file .env \ - -p 20128:20128 \ - -v omniroute-data:/app/data \ - diegosouzapw/omniroute:latest -``` - -**Використання Docker Compose:** - -```bash -# Base profile (no CLI tools) -docker compose --profile base up -d - -# CLI profile (Claude Code, Codex, OpenClaw built-in) -docker compose --profile cli up -d -``` - -| Зображення | Тег | Розмір | Опис | -| ------------------------ | -------- | ------- | -------------------------- | -| `diegosouzapw/omniroute` | `latest` | ~250 МБ | Останній стабільний випуск | -| `diegosouzapw/omniroute` | `1.0.3` | ~250 МБ | Поточна версія | - ---- - -## 🖥️ Додаток для настільних ПК — офлайн і завжди ввімкнено - -> 🆕 **НОВИНКА!** OmniRoute тепер доступний як **власна настільна програма** для Windows, macOS і Linux. - -Запустіть OmniRoute як окрему настільну програму — для локальних моделей не потрібен ні термінал, ні браузер, ні Інтернет. Додаток на базі Electron включає: - -- 🖥️ **Рідне вікно** — спеціальне вікно програми з інтеграцією в системний трей -- 🔄 **Автозапуск** — запустіть OmniRoute після входу в систему -- 🔔 **Власні сповіщення** — отримуйте сповіщення про вичерпання квоти або проблеми з постачальником -- ⚡ **Встановлення в один клік** — NSIS (Windows), DMG (macOS), AppImage (Linux) -- 🌐 **Офлайн-режим** — працює повністю в автономному режимі з доданим сервером - -### Швидкий старт - -```bash -# Development mode -npm run electron:dev - -# Build for your platform -npm run electron:build # Current platform -npm run electron:build:win # Windows (.exe) -npm run electron:build:mac # macOS (.dmg) — x64 & arm64 -npm run electron:build:linux # Linux (.AppImage) -``` - -### Системний трей - -У згорнутому стані OmniRoute живе в панелі завдань із швидкими діями: - -- Відкрити інформаційну панель -- Змінити порт сервера -- Вийти з програми - -📖 Повна документація: [**OMNI_TOKEN_153**](electron/README.md) - ---- - -## 💰 Огляд цін - -| Рівень | Постачальник | Вартість | Скидання квоти | Найкраще для | -| ------------------ | --------------------------- | ---------------------------------- | ----------------------------- | ------------------------------------------- | -| **💳 ПІДПИСКА** | Клод Код (Pro) | 20 доларів США на місяць | 5 годин + щотижня | Вже підписані | -| | Codex (Plus/Pro) | $20-200/міс | 5 годин + щотижня | Користувачі OpenAI | -| | Gemini CLI | **БЕЗКОШТОВНО** | 180 тис./місяць + 1 тис./день | всі! | -| | Копілот GitHub | $10-19/міс | Щомісяця | Користувачі GitHub | -| **🔑 КЛЮЧ API** | NVIDIA NIM | **БЕЗКОШТОВНО** (dev forever) | ~40 обертів за хвилину | 70+ відкритих моделей | -| | Головний мозок | **БЕЗКОШТОВНО** (1 млн ток/день) | 60K TPM / 30 RPM | Найшвидший у світі | -| | Groq | **БЕЗКОШТОВНО** (30 об/хв) | 14.4K RPD | Надшвидкий Llama/Gemma | -| | DeepSeek V3.2 | 0,27 $/1,10 $ за 1 млн | Жодного | Найкраща ціна/якість | -| | xAI Grok-4 Fast | **$0,20/$0,50 за 1 млн** 🆕 | Жодного | Найшвидший + виклик інструменту, наднизький | -| | xAI Grok-4 (стандарт) | 0,20 $/1,50 $ за 1 млн. 🆕 | Жодного | Розумний флагман від xAI | -| | Містраль | Безкоштовна пробна версія + платна | Оцінка обмежена | Європейський ШІ | -| | OpenRouter | Оплата за використання | Жодного | 100+ моделей агр. | -| **💰 ДЕШЕВО** | GLM-5 (через Z.AI) 🆕 | 0,5 $/1 млн | Щодня о 10 ранку | Вихід 128K, найновіший флагман | -| | GLM-4.7 | $0,6/1 млн | Щодня о 10 ранку | Резервне копіювання бюджету | -| | MiniMax M2.5 🆕 | $0,3/1 млн вхідних даних | 5-годинний роликовий | Міркування + агентурні завдання | -| | MiniMax M2.1 | $0,2/1 млн | 5-годинний роликовий | Найдешевший варіант | -| | Kimi K2.5 (Moonshot API) 🆕 | Оплата за використання | Жодного | Прямий доступ до Moonshot API | -| | Кімі К2 | 9 $/міс квартира | 10 млн токенів/міс | Передбачувана вартість | -| **🆓 БЕЗКОШТОВНО** | Qoder | **$0** | Необмежений | 5 моделей без обмежень | -| | Квен | **$0** | Необмежений | 4 моделі без обмежень | -| | Кіро | **$0** | Необмежений | Клод Сонет/Хайку (AWS Builder) | -| | LongCat Flash-Lite 🆕 | **$0** (50 млн ток/день 🔥) | 1 RPS | Найбільша безкоштовна квота на Землі | -| | Запилення AI 🆕 | **$0** (ключ не потрібен) | 1 запит/15 с | GPT-5, Клод, DeepSeek, Лама 4 | -| | Cloudflare Workers AI 🆕 | **$0** (10 тис. нейронів/день) | ~150 повторів/день | 50+ моделей, глобальна перевага | -| | Scaleway AI 🆕 | **$0** (усього 1 млн токенів) | Оцінка обмежена | ЄС/GDPR, Qwen3 235B, Llama 70B | - -> 🆕 **Додано нові моделі (березень 2026):** Сімейство Grok-4 Fast за $0,20/$0,50/M (тестування 1143 мс — на 30% швидше, ніж Gemini 2.5 Flash), GLM-5 через Z.AI із виведенням 128K, аргументація MiniMax M2.5, оновлена ціна DeepSeek V3.2, Kimi K2.5 через Moonshot direct API. - -**💡 Комбінований стек за $0 — повне безкоштовне налаштування:** - -``` -# 🆓 Ultimate Free Stack 2026 — 11 Providers, $0 Forever -Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED -LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 -Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed -Qwen (qw/) → qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next UNLIMITED -Gemini (gemini/) → Gemini 2.5 Flash — 1,500 req/day free API key -Cloudflare AI (cf/) → Llama 70B, Gemma 3, Mistral — 10K Neurons/day -Scaleway (scw/) → Qwen3 235B, Llama 70B — 1M free tokens (EU) -Groq (groq/) → Llama/Gemma ultra-fast — 14.4K req/day -NVIDIA NIM (nvidia/) → 70+ open models — 40 RPM forever -Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day -``` - -**Нульова вартість. Ніколи не припиняє кодування.** Налаштуйте це як одну комбінацію OmniRoute, і всі резервні варіанти відбуватимуться автоматично — жодного ручного перемикання. - ---- - ---- - -## 🆓 Безкоштовні моделі — те, що ви насправді отримуєте - -> Усі наведені нижче моделі **на 100% безкоштовні, кредитна картка не потрібна**. OmniRoute автоматично маршрутизує між ними, коли одна квота вичерпується — об’єднайте їх усі для непорушної комбінації 0 доларів США. - -### 🔵 CLAUDE MODELS (через Kiro — ідентифікатор AWS Builder) - -| Модель | Префікс | Ліміт | Обмеження швидкості | -| ------------------- | ------- | --------------- | --------------------------------------- | -| `claude-sonnet-4.5` | `kr/` | **Необмежений** | Немає повідомлень про щоденне обмеження | -| `claude-haiku-4.5` | `kr/` | **Необмежений** | Немає повідомлень про щоденне обмеження | -| `claude-opus-4.6` | `kr/` | **Необмежений** | Останній Opus через Kiro | - -### 🟢 МОДЕЛІ QODER (безкоштовний OAuth — без кредитної картки) - -| Модель | Префікс | Ліміт | Обмеження швидкості | -| ------------------ | ------- | --------------- | ------------------------------- | -| `kimi-k2-thinking` | `if/` | **Необмежений** | Немає повідомлень про обмеження | -| `qwen3-coder-plus` | `if/` | **Необмежений** | Немає повідомлень про обмеження | -| `deepseek-r1` | `if/` | **Необмежений** | Немає повідомлень про обмеження | -| `minimax-m2.1` | `if/` | **Необмежений** | Немає повідомлень про обмеження | -| `kimi-k2` | `if/` | **Необмежений** | Немає повідомлень про обмеження | - -### 🟡 МОДЕЛІ QWEN (автентифікація коду пристрою) - -| Модель | Префікс | Ліміт | Обмеження швидкості | -| ------------------- | ------- | --------------- | ------------------------------- | -| `qwen3-coder-plus` | `qw/` | **Необмежений** | Немає повідомлень про обмеження | -| `qwen3-coder-flash` | `qw/` | **Необмежений** | Немає повідомлень про обмеження | -| `qwen3-coder-next` | `qw/` | **Необмежений** | Немає повідомлень про обмеження | -| `vision-model` | `qw/` | **Необмежений** | Мультимодальний (зображення) | - -### 🟣 GEMINI CLI (Google OAuth) - -| Модель | Префікс | Ліміт | Обмеження швидкості | -| ------------------------ | ------- | ------------------------------- | ------------------- | -| `gemini-3-flash-preview` | `gc/` | **180K ток/місяць** + 1K/день | Щомісячне скидання | -| `gemini-2.5-pro` | `gc/` | 180 тис./місяць (загальний пул) | Висока якість | - -### ⚫ NVIDIA NIM (безкоштовний ключ API — build.nvidia.com) - -| Рівень | Денний ліміт | Обмеження швидкості | Примітки | -| ----------------- | ------------------------- | ------------------- | ------------------------------------------------------------------- | -| Безкоштовно (Dev) | Немає обмеження на маркер | **~40 об/хв** | 70+ моделей; перехід на чисті обмеження ставок у середині 2025 року | - -Популярні безкоштовні моделі: `moonshotai/kimi-k2.5` (Kimi K2.5), `z-ai/glm4.7` (GLM 4.7), `deepseek-ai/deepseek-v3.2` (DeepSeek V3.2), `nvidia/llama-3.3-70b-instruct`, `deepseek/deepseek-r1` - -### ⚪ CEREBRAS (Безкоштовний ключ API — inference.cerebras.ai) - -| Рівень | Денний ліміт | Обмеження швидкості | Примітки | -| ----------- | ---------------------- | ------------------- | --------------------------------------------- | -| Безкоштовно | **1 млн токенів/день** | 60K TPM / 30 RPM | Найшвидший у світі LLM висновок; скидає щодня | - -Доступно безкоштовно: `llama-3.3-70b`, `llama-3.1-8b`, `deepseek-r1-distill-llama-70b` - -### 🔴 GROQ (безкоштовний ключ API — console.groq.com) - -| Рівень | Денний ліміт | Обмеження швидкості | Примітки | -| ----------- | ----------------- | ------------------------------- | ----------------------------------------------------- | -| Безкоштовно | **14,4 тис. RPD** | 30 обертів на хвилину на модель | Без кредитної картки; 429 на ліміті, не тарифікується | - -Доступно безкоштовно: `llama-3.3-70b-versatile`, `gemma2-9b-it`, `mixtral-8x7b`, `whisper-large-v3` - -### 🔴 LONGCAT AI (безкоштовний ключ API — longcat.chat) 🆕 - -| Модель | Префікс | Щоденна безкоштовна квота | Примітки | -| ----------------------------- | ------- | --------------------------- | ------------------------------------- | -| `LongCat-Flash-Lite` | `lc/` | **50 мільйонів токенів** 💥 | Найбільша безкоштовна квота в історії | -| `LongCat-Flash-Chat` | `lc/` | 500 тисяч токенів | Багатоповоротний чат | -| `LongCat-Flash-Thinking` | `lc/` | 500 тисяч токенів | Міркування / CoT | -| `LongCat-Flash-Thinking-2601` | `lc/` | 500 тисяч токенів | Версія січня 2026 | -| `LongCat-Flash-Omni-2603` | `lc/` | 500 тисяч токенів | Мультимодальний | - -> 100% безкоштовно під час публічної бета-версії. Зареєструйтеся на [longcat.chat](https://longcat.chat) за допомогою електронної пошти або телефону. Скидає щодня о 00:00 UTC. - -### 🟢 POLLINATIONS AI (ключ API не потрібен) 🆕 - -| Модель | Префікс | Обмеження швидкості | Постачальник за | -| ---------- | ------- | ------------------- | ----------------- | -| `openai` | `pol/` | 1 запит/15 с | ГПТ-5 | -| `claude` | `pol/` | 1 запит/15 с | Антропний Клод | -| `gemini` | `pol/` | 1 запит/15 с | Google Gemini | -| `deepseek` | `pol/` | 1 запит/15 с | DeepSeek V3 | -| `llama` | `pol/` | 1 запит/15 с | Мета Лама 4 Скаут | -| `mistral` | `pol/` | 1 запит/15 с | Містраль А. І. | - -> ✨ **Нульове тертя:** Без реєстрації, без ключа API. Додайте постачальника Pollinations із порожнім ключовим полем, і він запрацює негайно. - -### 🟠 CLOUDFLARE WORKERS AI (безкоштовний ключ API — cloudflare.com) 🆕 - -| Рівень | Щоденні нейрони | Еквівалентне використання | Примітки | -| ----------- | --------------- | -------------------------------------------- | ------------------------ | -| Безкоштовно | **10 000** | ~150 LLM resp / 500 с аудіо / 15K вбудованих | Global edge, 50+ моделей | - -Популярні безкоштовні моделі: `@cf/meta/llama-3.3-70b-instruct`, `@cf/google/gemma-3-12b-it`, `@cf/openai/whisper-large-v3-turbo` (безкоштовний звук!), `@cf/qwen/qwen2.5-coder-15b-instruct` - -> Потрібен маркер API + ідентифікатор облікового запису з [dash.cloudflare.com](https://dash.cloudflare.com). Зберігайте ідентифікатор облікового запису в налаштуваннях провайдера. - -### 🟣 SCALEWAY AI (1 млн безкоштовних токенів — scaleway.com) 🆕 - -| Рівень | Безкоштовна квота | Розташування | Примітки | -| ----------- | ----------------- | ------------ | --------------------------------------------- | -| Безкоштовно | **1 млн токенів** | 🇫🇷 Париж, ЄС | Кредитна картка не потрібна в рамках обмежень | - -Доступно безкоштовно: `qwen3-235b-a22b-instruct-2507` (Qwen3 235B!), `llama-3.1-70b-instruct`, `mistral-small-3.2-24b-instruct-2506`, `deepseek-v3-0324` - -> Відповідає вимогам ЄС/GDPR. Отримайте ключ API за адресою [console.scaleway.com](https://console.scaleway.com). - -> **💡 Найкращий безкоштовний пакет (11 постачальників, 0 доларів назавжди):** -> -> ``` -> Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -> Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED -> LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 -> Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed -> Qwen (qw/) → qwen3-coder models UNLIMITED -> Gemini (gemini/) → Gemini 2.5 Flash — 1,500 req/day free -> Cloudflare AI (cf/) → 50+ models — 10K Neurons/day -> Scaleway (scw/) → Qwen3 235B, Llama 70B — 1M free tokens (EU) -> Groq (groq/) → Llama/Gemma — 14.4K req/day ultra-fast -> NVIDIA NIM (nvidia/) → 70+ open models — 40 RPM forever -> Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day -> ``` - -## 🎙️ Комбінація безкоштовних транскрипцій - -> Транскрибуйте будь-яке аудіо/відео за **$0** — Deepgram лідирує з $200 безкоштовно, AssemblyAI $50 резервний варіант, Groq Whisper як необмежену екстрену резервну копію. - -| Постачальник | Безкоштовні кредити | Краща модель | Обмеження швидкості | -| ----------------- | --------------------------------- | ---------------------------------------------------------------- | ------------------------------------------ | -| 🟢 **Deepgram** | **$200 безкоштовно** (реєстрація) | `nova-3` — найкраща точність, 30+ мов | Немає ліміту RPM для безкоштовних кредитів | -| 🔵 **AssemblyAI** | **$50 безкоштовно** (реєстрація) | `universal-3-pro` — розділи, почуття, ідентифікаційна інформація | Немає ліміту RPM для безкоштовних кредитів | -| 🔴 **Groq** | **Безкоштовно назавжди** | `whisper-large-v3` — OpenAI Whisper | 30 обертів за хвилину (швидкість обмежена) | - -**Запропонований комбо в `/dashboard/combos`:** - -``` -Name: free-transcription -Strategy: Priority -Nodes: - [1] deepgram/nova-3 → uses $200 free first - [2] assemblyai/universal-3-pro → fallback when Deepgram credits run out - [3] groq/whisper-large-v3 → free forever, emergency fallback -``` - -Потім у `/dashboard/media` → вкладка **Транскрипція**: завантажте будь-який аудіо- чи відеофайл → виберіть комбіновану кінцеву точку → отримайте транскрипцію в підтримуваних форматах. - -## 💡 Основні характеристики - -OmniRoute v2.0 створено як операційну платформу, а не просто проксі-ретранслятор. - -### 🆕 Нове — покращення, натхненні ClawRouter (березень 2026 р.) - -| Особливість | Що він робить | -| --------------------------------------------- | ------------------------------------------------------------------------------------------------------------------ | -| ⚡ **Грок-4 Швидка Сімейка** | моделі xAI за $0,20/$0,50/М — тестування 1143 мс (на 30% швидше, ніж Gemini 2.5 Flash) | -| 🧠 **GLM-5 через Z.AI** | Контекст виводу 128K, $0,5/1M — найновіший флагман із сімейства GLM | -| 🔮 **MiniMax M2.5** | Розуміння + агентські завдання за $0,30/1 млн — значне оновлення з M2.1 | -| 🎯 **Прапор виклику інструментів для моделі** | Для кожної моделі `toolCalling: true/false` в реєстрі — AutoCombo пропускає моделі, які не підтримують інструменти | -| 🌍 **Виявлення багатомовного наміру** | Ключові слова PT/ZH/ES/AR у балах AutoCombo — кращий вибір моделі для вмісту не англійською мовою | -| 📊 **Резервні тести** | Справжня затримка p95 від живих запитів, комбінованих каналів — AutoCombo вивчає фактичні дані | -| 🔁 **Надіслати запит на дедуплікацію** | Вікно дедуплювання на основі хешу вмісту — мультиагентний захист, запобігає повторюваним стягненням | -| 🔌 **Pluggable RouterStrategy** | Розширюваний інтерфейс `RouterStrategy` — додайте спеціальну логіку маршрутизації як плагіни | - -### 🚀 Попередня версія 2.0.9+ — Playground, CLI Fingerprints & ACP - -| Особливість | Що він робить | -| -------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 🎮 **Модельний майданчик** | Сторінка інформаційної панелі для безпосереднього тестування будь-якої моделі — селектори провайдера/моделі/кінцевої точки, редактор Monaco, потокове передавання, припинення, час | -| 🔏 **Зіставлення відбитків пальців CLI** | Упорядкування заголовків/тіла для кожного постачальника відповідно до власних підписів CLI — перемикайте для кожного постачальника в меню «Налаштування» > «Безпека». **IP-адресу вашого проксі-сервера збережено** | -| 🤝 **Підтримка ACP (протокол клієнта агента)** | Виявлення агента CLI (Codex, Claude, Goose, Gemini CLI, OpenClaw + ще 9), створення процесів, кінцева точка `/api/acp/agents` | -| 🤖 **Інформаційна панель агентів ACP** | Налагодження › Сторінка агентів — таблиця з 14 агентів із статусом встановлення, версією, користувацькою формою агента для будь-якого інструменту CLI. Користувачі **OpenCode** отримують кнопку «Завантажити opencode.json», яка автоматично генерує готову до використання конфігурацію для всіх доступних моделей. | -| 🔧 **Спеціальна модель `apiFormat` Маршрутизація** | Спеціальні моделі з `apiFormat: "responses"` тепер правильно направляють до перекладача Responses API | -| 🏢 **Ізоляція робочої області Codex** | Кілька робочих областей Codex на електронну пошту — OAuth правильно розділяє підключення за ідентифікатором робочої області | -| 🔄 **Електронне автоматичне оновлення** | Додаток для комп’ютера перевіряє наявність оновлень + автоматичне встановлення після перезавантаження | - -### 🤖 Операції агента та протоколу (версія 2.0) - -| Особливість | Що він робить | -| --------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | -| 🔧 **MCP Server (16 інструментів)** | Інструменти IDE/агента через 3 транспорти: stdio, SSE (`/api/mcp/sse`), Streamable HTTP (`/api/mcp/stream`) | -| 🤝 **Сервер A2A (JSON-RPC + SSE)** | Виконання завдань між агентами із синхронізацією та потоковими потоками | -| 🧭 **Консолідована сторінка кінцевих точок** | Сторінка керування вкладками з вкладками Endpoint Proxy, MCP, A2A та API Endpoints | -| 🎚️ **Перемикачі ввімкнення/вимкнення служби** | Перемикачі ON/OFF для MCP та A2A зі збереженням налаштувань (за замовчуванням: OFF) | -| 🛰️ **MCP Runtime Heartbeat** | Справжній статус процесу (pid, безвідмовна робота, вік серцевого ритму, транспорт, режим обсягу) | -| 📋 **Аудит MCP** | Фільтрувані журнали аудиту з успіхом/невдачею та ключовими атрибутами | -| 🔐 **Застосування обсягу MCP** | 9 детальних дозволів для контрольованого доступу до інструментів | -| 📡 **Керування життєвим циклом завдань A2A** | Список/фільтр завдань, перевірка подій/артефактів, скасування запущених завдань | -| 📋 **Виявлення картки агента** | `/.well-known/agent.json` для автоматичного виявлення клієнта | -| 🧪 **Тестовий джгут протоколу E2E** | Real MCP SDK + A2A client flows in `test:protocols:e2e` | -| ⚙️ **Операційний контроль** | Комбінація перемикачів, застосування профілів стійкості, скидання вимикачів з однієї контрольної поверхні | - -### 🧠 Маршрутизація та інтелект - -| Особливість | Що він робить | -| -------------------------------------------------- | -------------------------------------------------------------------------------- | -| 🎯 **Розумний 4-рівневий резервний варіант** | Авто-маршрут: Підписка → Ключ API → Дешево → Безкоштовно | -| 📊 **Відстеження квот у реальному часі** | Підрахунок живих токенів + скидання зворотного відліку для кожного постачальника | -| 🔄 **Формат перекладу** | OpenAI ↔ Claude ↔ Gemini ↔ Відповіді з перетвореннями, безпечними для схеми | -| 👥 **Підтримка кількох облікових записів** | Кілька облікових записів на постачальника з інтелектуальним вибором | -| 🔄 **Автоматичне оновлення токенів** | Маркери OAuth оновлюються автоматично з повторною спробою | -| 🎨 **Користувацькі комбо** | 6 стратегій балансування + резервне керування ланцюгом | -| 🌐 **Wildcard Router** | `provider/*` динамічна маршрутизація | -| 🧠 **Думаючи контролювати бюджет** | Наскрізні, автоматичні, користувальницькі та адаптивні межі міркування | -| 🔀 **Псевдоніми моделей** | Вбудована + спеціальна модель псевдонімів і безпека міграції | -| ⚡ **Погіршення фону** | Направляйте низькопріоритетні фонові завдання на дешевші моделі | -| 🧪 **Розумна маршрутизація з урахуванням завдань** | Автовибір моделі за типом вмісту (кодування/бачення/аналіз/узагальнення) | -| 💬 **Швидке впровадження системи** | Послідовне застосування глобальних засобів контролю поведінки | -| 📄 **Сумісність API відповідей** | Повна підтримка `/v1/responses` Codex і розширених агентських робочих процесів | - -### 🎵 Мультимодальні API - -| Особливість | Що він робить | -| ---------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 🖼️ **Створення зображень** | `/v1/images/generations` з хмарою та локальним сервером | -| 📐 **Вбудовування** | `/v1/embeddings` для конвеєрів пошуку та RAG | -| 🎤 **Транскрипція аудіо** | `/v1/audio/transcriptions` — 7 провайдерів (Deepgram Nova 3, AssemblyAI, Groq Whisper, HuggingFace, ElevenLabs, OpenAI, Azure), автоматичне визначення мови, підтримка MP4/MP3/WAV | -| 🔊 **Створення тексту в мовлення** | `/v1/audio/speech` — 10 провайдерів (ElevenLabs, OpenAI, Deepgram, Cartesia, PlayHT, HuggingFace, Nvidia NIM, Inworld, Coqui, Tortoise) з правильними повідомленнями про помилки | -| 🎬 **Створення відео** | `/v1/videos/generations` (робочі процеси ComfyUI + SD WebUI) | -| 🎵 **Музичне покоління** | `/v1/music/generations` (робочі процеси ComfyUI) | -| 🛡️ **Модерації** | `/v1/moderations` перевірки безпеки | -| 🔀 **Переранжування** | `/v1/rerank` для підрахунку релевантності | -| 🔍 **Веб-пошук** 🆕 | `/v1/search` — 5 провайдерів (Serper, Brave, Perplexity, Exa, Tavily), 6500+ безкоштовних/місяць, автоматичне переключення, кеш | - -### 🛡️ Стійкість, безпека та управління - -| Особливість | Що він робить | -| ------------------------------------------ | -------------------------------------------------------------------------------------------------------- | -| 🔌 **Автоматичні вимикачі** | Відключення/відновлення для кожної моделі з контролем порогових значень | -| 🎯 **Моделі з урахуванням кінцевих точок** | Спеціальні моделі декларують підтримувані кінцеві точки + формат API | -| 🛡️ **Anti-Thundering Herd** | Mutex + захист семафора від подій повторних спроб/швидкості | -| 🧠 **Семантика + кеш підпису** | Зниження вартості/затримки за допомогою двох рівнів кешу | -| ⚡ **Запит на ідемпотентність** | Дублікат вікна захисту | -| 🔒 **Підробка відбитків пальців TLS** | Браузерний відбиток TLS — **зменшує виявлення ботів і позначення облікових записів** | -| 🔏 **Зіставлення відбитків пальців CLI** | Відповідає власним підписам запиту CLI — **зменшує ризик заборони, зберігаючи IP-адресу проксі-сервера** | -| 🌐 **IP-фільтрація** | Керування білим/чорним списком для відкритих розгортань | -| 📊 **Редаговані ліміти ставок** | Конфігуровані глобальні обмеження/ліміти на рівні постачальника з постійністю | -| 🔑 **API Key Management + Scoping** | Безпечна видача/ротація ключів і засоби керування моделлю/постачальником | -| 👁️ **Scoped API Key Reveal** 🆕 | Opt-in recovery of API keys via `ALLOW_API_KEY_REVEAL` | -| 🛡️ **Захищено `/models`** | Додаткова автентифікація та приховування постачальника для каталогу моделей | - -### 📊 Спостережливість і аналітика - -| Особливість | Що він робить | -| ------------------------------------------ | ------------------------------------------------------------------- | -| 📝 **Запит + реєстрація проксі** | Повний журнал запитів/відповідей і проксі | -| 📉 **Streamed Detailed Logs** 🆕 | Reconstructs SSE payload streams cleanly into the UI | -| 📋 **Інформаційна панель єдиних журналів** | Перегляди запитів, проксі, аудиту та консолі на одній сторінці | -| 🔍 **Надіслати запит на телеметрію** | p50/p95/p99 затримка та відстеження запитів | -| 🏥 **Інформаційна панель здоров’я** | Час роботи, стани поломки, блокування, статистика кешу | -| 💰 **Відстеження витрат** | Контроль бюджету та видимість ціноутворення для кожної моделі | -| 📈 **Аналітичні візуалізації** | Статистика використання моделі/постачальника та перегляди тенденцій | -| 🧪 **Рамка оцінювання** | Тестування золотого набору з конфігурованими стратегіями матчу | - -### ☁️ Розгортання та платформа - -| Особливість | Що він робить | -| ------------------------------------------- | ------------------------------------------------------------------------------ | -| 🌐 **Розгортайте будь-де** | Localhost, VPS, Docker, хмарні середовища | -| 💾 **Хмарна синхронізація** | Синхронізація конфігурації через Cloud Worker | -| 🔄 **Резервне копіювання/відновлення** | Потоки експорту/імпорту та аварійного відновлення | -| 🧙 **Майстер адаптації** | Кероване налаштування під час першого запуску | -| 🔧 **Інформаційна панель інструментів CLI** | Налаштування в один клік для популярних інструментів кодування | -| 🎮 **Модельний майданчик** | Перевірте будь-якого постачальника/модель/кінцеву точку з інформаційної панелі | -| 🔏 **Перемикач відбитків пальців CLI** | Зіставлення відбитків пальців кожного постачальника в Налаштуваннях > Безпека | -| 🌐 **i18n (30 мов)** | Повна інформаційна панель + підтримка мови документів із покриттям RTL | -| 🧹 **Очистити всі моделі** | Очищення списку моделей одним натисканням у деталях провайдера | -| 👁️ **Sidebar Controls** 🆕 | Hide components and integrations from Appearance Settings | -| 📋 **Шаблони проблем** | Стандартизовані шаблони GitHub для помилок і функцій | -| 📂 **Каталог користувацьких даних** | `DATA_DIR` замінити місце зберігання | - -### Функція Deep Dive - -#### Розумний резерв із практичним контролем витрат - -```txt -Combo: "my-coding-stack" - 1. cc/claude-opus-4-6 - 2. nvidia/llama-3.3-70b - 3. glm/glm-4.7 - 4. if/kimi-k2-thinking -``` - -Якщо квота, швидкість або працездатність вичерпуються, OmniRoute автоматично переходить до наступного кандидата без перемикання вручну. - -#### Керування протоколом, яке є видимим і доступним для роботи - -- MCP + A2A можна знайти в інтерфейсі користувача та документах (не приховано) -- API статусу протоколу надають поточні робочі дані (`/api/mcp/*`, `/api/a2a/*`) -- Інформаційні панелі включають дії для операцій другого дня (комбіновані перемикачі, скидання вимикача, скасування завдання) - -#### Перекладач + процес перевірки - -Область перекладача включає: - -- **Playground**: вимагати перевірки трансформації -- **Chat Tester**: повний запит/відповідь туди й назад -- **Test Bench**: кілька випадків за один запуск -- **Live Monitor**: перегляд заторів у реальному часі - -Плюс перевірка протоколу з реальними клієнтами через `npm run test:protocols:e2e`. - -> 📖 **[MCP Server README](open-sse/mcp-server/README.md)** — довідка про інструмент, конфігурації IDE та приклади клієнтів -> -> 📖 **[A2A Server README](src/lib/a2a/README.md)** — Навички, методи JSON-RPC, потокове передавання та життєвий цикл завдань - -## 🧪 Оцінки (Evals) - -OmniRoute містить вбудовану систему оцінювання для перевірки якості відповіді LLM на відповідність золотому набору. Доступ до нього через **Аналітика → Оцінки** на інформаційній панелі. - -### Вбудований Золотий набір - -Попередньо завантажений «Золотий набір OmniRoute» містить тестові випадки для: - -- Привітання, математика, географія, генерація коду -- Відповідність формату JSON, переклад, генерація уцінки -- Відмова безпеки (шкідливий контент), підрахунок, булева логіка - -### Стратегії оцінювання - -| Стратегія | Опис | Приклад | -| ---------- | -------------------------------------------------------------- | -------------------------------- | -| `exact` | Вихідні дані повинні точно відповідати | `"4"` | -| `contains` | Вихідні дані повинні містити підрядок (незалежно від регістру) | `"Paris"` | -| `regex` | Вихідні дані мають відповідати шаблону регулярного виразу | `"1.*2.*3"` | -| `custom` | Спеціальна функція JS повертає true/false | `(output) => output.length > 10` | - ---- - -## 📖 Посібник із налаштування - -### Налаштування протоколу (MCP + A2A) - -<details> -<summary><b>🧩 Налаштування MCP (протокол контексту моделі)</b></summary> - -Запустіть транспорт MCP у режимі stdio: - -```bash -omniroute --mcp -``` - -Рекомендований процес перевірки: - -1. Підключіть клієнт MCP через stdio. -2. Запустіть `omniroute_get_health`. -3. Запустіть `omniroute_list_combos`. -4. Відкрийте `/dashboard/mcp`, щоб підтвердити серцебиття, активність і аудит. - -Корисні API для автоматизації: - -- `GET /api/mcp/status` -- `GET /api/mcp/tools` -- `GET /api/mcp/audit` -- `GET /api/mcp/audit/stats` - -</details> - -<details> -<summary><b>🤝 Налаштування A2A (Agent2Agent)</b></summary> - -Відкрийте агента: - -```bash -curl http://localhost:20128/.well-known/agent.json -``` - -Надіслати завдання: - -```bash -curl -X POST http://localhost:20128/a2a \ - -H 'content-type: application/json' \ - -d '{"jsonrpc":"2.0","id":"setup-a2a","method":"message/send","params":{"skill":"quota-management","messages":[{"role":"user","content":"Summarize quota status."}]}}' -``` - -Керувати життєвим циклом: - -- `GET /api/a2a/status` -- `GET /api/a2a/tasks` -- `GET /api/a2a/tasks/:id` -- `POST /api/a2a/tasks/:id/cancel` - -Операційний інтерфейс користувача: - -- `/dashboard/a2a` для спостереження за завданням/станом/потоком і димових дій - -</details> - -<details> -<summary><b>🧪 Наскрізна перевірка протоколу</b></summary> - -Перевірте обидва протоколи реальними клієнтами: - -```bash -npm run test:protocols:e2e -``` - -Це підтверджує: - -- Підключення клієнта MCP SDK/список/виклик -- Відкриття A2A/надсилання/потік/отримання/скасування -- Перехресна перевірка даних в аудиті MCP та API керування завданнями A2A - -</details> - -<details> -<summary><b>💳 Постачальники підписки</b></summary> - -### Claude Code (Pro/Max) - -```bash -Dashboard → Providers → Connect Claude Code -→ OAuth login → Auto token refresh -→ 5-hour + weekly quota tracking - -Models: - cc/claude-opus-4-6 - cc/claude-sonnet-4-5-20250929 - cc/claude-haiku-4-5-20251001 -``` - -**Професійна порада:** використовуйте Opus для складних завдань, Sonnet для швидкості. OmniRoute відстежує квоту на модель! - -### OpenAI Codex (Plus/Pro) - -```bash -Dashboard → Providers → Connect Codex -→ OAuth login (port 1455) -→ 5-hour + weekly reset - -Models: - cx/gpt-5.2-codex - cx/gpt-5.1-codex-max -``` - -#### Управління лімітами облікового запису Codex (5 годин + щотижня) - -Кожен обліковий запис Codex тепер має параметри політики в `Dashboard -> Providers`: - -- `5h` (УВІМК./ВИМК.): застосувати політику порогового значення 5-годинного вікна. -- `Weekly` (УВІМК./ВИМК.): застосовувати політику тижневого порогового значення вікна. -- Порогова поведінка: коли ввімкнене вікно досягає >=90% використання, цей обліковий запис пропускається. -- Поведінка ротації: OmniRoute автоматично направляє до наступного відповідного облікового запису Codex. -- Поведінка скидання: коли постачальник `resetAt` мине час, обліковий запис автоматично знову стає придатним. - -Сценарії: - -- `5h ON` + `Weekly ON`: обліковий запис пропускається, коли будь-яке вікно досягає порогового значення. -- `5h OFF` + `Weekly ON`: лише щотижневе використання може заблокувати обліковий запис. -- `5h ON` + `Weekly OFF`: обліковий запис можна заблокувати лише протягом 5 годин використання. -- `resetAt` пройдено: обліковий запис автоматично повертається до ротації (без повторного ввімкнення вручну). - -### Gemini CLI (БЕЗКОШТОВНО 180K/місяць!) - -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Найкраще:** Величезний безкоштовний рівень! Використовуйте це перед платними рівнями. - -### Копілот GitHub - -```bash -Dashboard → Providers → Connect GitHub -→ OAuth via GitHub -→ Monthly reset (1st of month) - -Models: - gh/gpt-5 - gh/claude-4.5-sonnet - gh/gemini-3-pro -``` - -</details> - -<details> -<summary><b>🔑 Постачальники ключів API</b></summary> - -### NVIDIA NIM (БЕЗКОШТОВНИЙ доступ розробника — 70+ моделей) - -1. Зареєструйтеся: [build.nvidia.com](https://build.nvidia.com) -2. Отримайте безкоштовний ключ API (1000 кредитів включено) -3. Інформаційна панель → Додати постачальника → NVIDIA NIM: - - Ключ API: `nvapi-your-key` - -**Моделі:** `nvidia/llama-3.3-70b-instruct`, `nvidia/mistral-7b-instruct` та понад 50 інших - -**Порада професіонала:** OpenAI-сумісний API — бездоганно працює з перекладом формату OmniRoute! - -### DeepSeek - -1. Зареєструйтеся: [platform.deepseek.com](https://platform.deepseek.com) -2. Отримайте ключ API -3. Інформаційна панель → Додати постачальника → DeepSeek - -**Моделі:** `deepseek/deepseek-chat`, `deepseek/deepseek-coder` - -### Groq (доступний безкоштовний рівень!) - -1. Зареєструйтесь: [console.groq.com](https://console.groq.com) -2. Отримайте ключ API (включає безкоштовний рівень) -3. Інформаційна панель → Додати постачальника → Groq - -**Моделі:** `groq/llama-3.3-70b`, `groq/mixtral-8x7b` - -**Професійна порада:** Надшвидкий висновок — найкращий для кодування в реальному часі! - -### OpenRouter (100+ моделей) - -1. Зареєструйтеся: [openrouter.ai](https://openrouter.ai) -2. Отримайте ключ API -3. Інформаційна панель → Додати провайдера → OpenRouter - -**Моделі:** Отримуйте доступ до понад 100 моделей від усіх основних постачальників за допомогою єдиного ключа API. - -</details> - -<details> -<summary><b>💰 Дешеві постачальники (резервні)</b></summary> - -### GLM-4.7 (щоденне скидання, $0,6/1 млн) - -1. Зареєструйтеся: [Zhipu AI](https://open.bigmodel.cn/) -2. Отримайте ключ API від Coding Plan -3. Інформаційна панель → Додати ключ API: - - Постачальник: `glm` - - Ключ API: `your-key` - -**Використання:** `glm/glm-4.7` - -**Професійна порада:** План кодування пропонує 3x квоту за 1/7 вартості! Скидання щодня о 10:00. - -### MiniMax M2.1 (5 годин скидання, $0,20/1 млн) - -1. Зареєструйтеся: [MiniMax](https://www.minimax.io/) -2. Отримайте ключ API -3. Інформаційна панель → Додати ключ API - -**Використання:** `minimax/MiniMax-M2.1` - -**Порада:** Найдешевший варіант для довгого контексту (1 млн токенів)! - -### Kimi K2 ($9/місяць) - -1. Підпишіться: [Moonshot AI](https://platform.moonshot.ai/) -2. Отримайте ключ API -3. Інформаційна панель → Додати ключ API - -**Використання:** `kimi/kimi-latest` - -**Професійна порада:** Фіксовані 9 доларів США на місяць за 10 мільйонів токенів = 0,90 доларів США за 1 млн. ефективних витрат! - -</details> - -<details> -<summary><b>🆓 БЕЗКОШТОВНІ постачальники (аварійне резервне копіювання)</b></summary> - -### Qoder (5 БЕЗКОШТОВНИХ моделей через OAuth) - -```bash -Dashboard → Connect Qoder -→ Qoder OAuth login -→ Unlimited usage - -Models: - if/kimi-k2-thinking - if/qwen3-coder-plus - if/glm-4.7 - if/minimax-m2 - if/deepseek-r1 -``` - -### Qwen (4 БЕЗКОШТОВНІ моделі через код пристрою) - -```bash -Dashboard → Connect Qwen -→ Device code authorization -→ Unlimited usage - -Models: - qw/qwen3-coder-plus - qw/qwen3-coder-flash -``` - -### Кіро (Клод БЕЗКОШТОВНО) - -```bash -Dashboard → Connect Kiro -→ AWS Builder ID or Google/GitHub -→ Unlimited usage - -Models: - kr/claude-sonnet-4.5 - kr/claude-haiku-4.5 -``` - -</details> - -<details> -<summary><b>🎨 Створення комбо</b></summary> - -### Приклад 1: максимізація підписки → дешеве резервне копіювання - -``` -Dashboard → Combos → Create New - -Name: premium-coding -Models: - 1. cc/claude-opus-4-6 (Subscription primary) - 2. glm/glm-4.7 (Cheap backup, $0.6/1M) - 3. minimax/MiniMax-M2.1 (Cheapest fallback, $0.20/1M) - -Use in CLI: premium-coding -``` - -### Приклад 2: лише безкоштовно (нульова вартість) - -``` -Name: free-combo -Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) - -Cost: $0 forever! -``` - -</details> - -<details> -<summary><b>🔧 Інтеграція CLI</b></summary> - -### Курсор IDE - -``` -Settings → Models → Advanced: - OpenAI API Base URL: http://localhost:20128/v1 - OpenAI API Key: [from OmniRoute dashboard] - Model: cc/claude-opus-4-6 -``` - -### Клод Код - -Використовуйте сторінку **Інструменти CLI** на інформаційній панелі для налаштування одним клацанням миші або редагуйте `~/.claude/settings.json` вручну. - -### Codex CLI - -```bash -export OPENAI_BASE_URL="http://localhost:20128" -export OPENAI_API_KEY="your-omniroute-api-key" - -codex "your prompt" -``` - -### OpenClaw - -**Варіант 1 — Інформаційна панель (рекомендовано):** - -``` -Dashboard → CLI Tools → OpenClaw → Select Model → Apply -``` - -**Варіант 2 — вручну:** Редагувати `~/.openclaw/openclaw.json`: - -```json -{ - "models": { - "providers": { - "omniroute": { - "baseUrl": "http://127.0.0.1:20128/v1", - "apiKey": "sk_omniroute", - "api": "openai-completions" - } - } - } -} -``` - -> **Примітка:** OpenClaw працює лише з локальним OmniRoute. Щоб уникнути проблем із вирішенням IPv6, використовуйте `127.0.0.1` замість `localhost`. - -### Cline / Продовжити / RooCode - -``` -Settings → API Configuration: - Provider: OpenAI Compatible - Base URL: http://localhost:20128/v1 - API Key: [from OmniRoute dashboard] - Model: if/kimi-k2-thinking -``` - -### OpenCode - -**Крок 1:** Додайте OmniRoute як спеціального постачальника: - -```bash -opencode -/connect -# Select "Other" → Enter ID: "omniroute" → Enter your OmniRoute API key -``` - -**Крок 2:** Створіть/відредагуйте `opencode.json` в корені вашого проекту: - -```json -{ - "$schema": "https://opencode.ai/config.json", - "provider": { - "omniroute": { - "npm": "@ai-sdk/openai-compatible", - "name": "OmniRoute", - "options": { - "baseURL": "http://localhost:20128/v1" - }, - "models": { - "cc/claude-sonnet-4-20250514": { "name": "Claude Sonnet 4" }, - "gg/gemini-2.5-pro": { "name": "Gemini 2.5 Pro" }, - "if/kimi-k2-thinking": { "name": "Kimi K2 (Free)" } - } - } - } -} -``` - -**Крок 3:** Виберіть модель у OpenCode: - -```bash -/models -# Select any OmniRoute model from the list -``` - -> **Порада.** Додайте будь-яку модель, доступну в кінцевій точці OmniRoute `/v1/models`, до розділу `models`. Використовуйте формат `provider/model-id` на інформаційній панелі OmniRoute. - -</details> - ---- - -## 🐛 Усунення несправностей - -<details> -<summary><b>Натисніть, щоб розгорнути посібник з усунення несправностей</b></summary> - -**"Мовна модель не надавала повідомлень"** - -- Квота постачальника вичерпана → Перевірте систему відстеження квот на інформаційній панелі -- Рішення: скористайтеся комбінованим альтернативним варіантом або перейдіть на дешевший рівень - -**Обмеження швидкості** - -— Вичерпана квота на підписку → Повернення до GLM/MiniMax - -- Додати комбо: `cc/claude-opus-4-6 → glm/glm-4.7 → if/kimi-k2-thinking` - -**Термін дії маркера OAuth минув** - -— Автоматично оновлено OmniRoute - -- Якщо проблеми не зникають: Інформаційна панель → Постачальник → Повторне підключення - -**Високі витрати** - -- Перевірте статистику використання в Інформаційній панелі → Витрати -- Переключіть основну модель на GLM/MiniMax -- Використовуйте безкоштовний рівень (Gemini CLI, Qoder) для некритичних завдань - -**Порти приладової панелі/API неправильні** - -- `PORT` є канонічним базовим портом (і портом API за замовчуванням) -- `API_PORT` перевизначає лише сумісний із OpenAI слухач API -- `DASHBOARD_PORT` замінює лише інформаційну панель/прослуховувач Next.js -- Установіть `NEXT_PUBLIC_BASE_URL` на свою інформаційну панель/загальнодоступну URL-адресу (для зворотних викликів OAuth) - -**Помилки хмарної синхронізації** - -- Переконайтеся, що `BASE_URL` вказує на ваш запущений екземпляр -- Перевірте `CLOUD_URL` вказує на очікувану кінцеву точку хмари -- Зберігайте значення `NEXT_PUBLIC_*` у відповідності зі значеннями на стороні сервера - -**Перший вхід не працює** - -- Перевірте `INITIAL_PASSWORD` в `.env` -- Якщо не встановлено, резервний пароль `123456` - -**Немає журналів запитів** - -- Установіть `ENABLE_REQUEST_LOGS=true` в `.env` - -**Тест з’єднання показує «Недійсне» для OpenAI-сумісних постачальників** - -- Багато постачальників не розкривають кінцеву точку `/models` -- OmniRoute v1.0.6+ включає резервну перевірку через завершення чату -- Переконайтеся, що базова URL-адреса містить суфікс `/v1` - -### 🔐 OAuth на віддаленому сервері - -<a name="oauth-on-a-remote-server"></a> -<a name="oauth-em-servidor-remoto"></a> - -> **⚠️ Важливо для користувачів, які використовують OmniRoute на VPS, Docker або будь-якому віддаленому сервері** - -#### Чому Antigravity / Gemini CLI OAuth не працює на віддалених серверах? - -Постачальники **Antigravity** і **Gemini CLI** використовують **Google OAuth 2.0**. Google вимагає, щоб `redirect_uri` у потоці OAuth точно відповідав одному з попередньо зареєстрованих URI у Google Cloud Console програми. - -Облікові дані OAuth, включені в OmniRoute, зареєстровані **лише для `localhost`**. Коли ви отримуєте доступ до OmniRoute на віддаленому сервері (наприклад, `https://omniroute.myserver.com`), Google відхиляє автентифікацію за допомогою: - -``` -Error 400: redirect_uri_mismatch -``` - -#### Рішення: налаштуйте власні облікові дані OAuth - -Вам потрібно створити **Ідентифікатор клієнта OAuth 2.0** у Google Cloud Console з URI вашого сервера. - -#### Крок за кроком - -**1. Відкрийте Google Cloud Console** - -Перейти до: [https://console.cloud.google.com/apis/credentials](https://console.cloud.google.com/apis/credentials) - -**2. Створіть новий ідентифікатор клієнта OAuth 2.0** - -- Натисніть **"+ Створити облікові дані"** → **"Ідентифікатор клієнта OAuth"** -- Тип програми: **"Веб-програма"** -- Ім'я: будь-яке, що вам подобається (наприклад, `OmniRoute Remote`) - -**3. Додати авторизовані URI перенаправлення** - -У полі **"Авторизовані URI перенаправлення"** додайте: - -``` -https://your-server.com/callback -``` - -> Замініть `your-server.com` доменом або IP-адресою вашого сервера (за необхідності вкажіть порт, наприклад `http://45.33.32.156:20128/callback`). - -**4. Збережіть і скопіюйте облікові дані** - -Після створення Google покаже **Ідентифікатор клієнта** та **Секрет клієнта**. - -**5. Встановити змінні середовища** - -У вашому `.env` (або змінних середовища Docker): - -```bash -# For Antigravity: -ANTIGRAVITY_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com -ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-your-secret - -# For Gemini CLI: -GEMINI_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com -GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -``` - -**6. Перезапустіть OmniRoute** - -```bash -# npm: -npm run dev - -# Docker: -docker restart omniroute -``` - -**7. Спробуйте підключитися знову** - -Інформаційна панель → Постачальники → Antigravity (або Gemini CLI) → OAuth - -Тепер Google правильно переспрямовуватиме на `https://your-server.com/callback`. - ---- - -#### Тимчасовий обхідний шлях (без спеціальних облікових даних) - -Якщо ви не хочете налаштовувати власні облікові дані прямо зараз, ви можете скористатися **ручним потоком URL-адреси**: - -1. OmniRoute відкриває URL-адресу авторизації Google -2. Після авторизації Google намагається переспрямувати на `localhost` (це не вдається на віддаленому сервері) -3. **Скопіюйте повну URL-адресу** з адресного рядка браузера (навіть якщо сторінка не завантажується) -4. Вставте цю URL-адресу в поле, що відображається в режимі підключення OmniRoute -5. Натисніть **"Підключити"** - -> Це працює, оскільки код авторизації в URL-адресі дійсний незалежно від того, чи завантажено сторінку переспрямування. - ---- - -<details> -<summary><b>🇧🇷 Versão em Português</b></summary> - -#### Чи OAuth для Antigravity / Gemini CLI не підтримує віддалені сервери? - -Провідники **Antigravity** і **Gemini CLI** використовують **Google OAuth 2.0** для автентифікації. Google вимагає, щоб `redirect_uri` не використовував fluxo OAuth, який **exatamente** має URI перед кадастрадами без Google Cloud Console у програмі. - -Оскільки повноваження OAuth embutidas не OmniRoute estão cadastradas **apenas para `localhost`**. Якщо ви маєте доступ до OmniRoute у віддаленому сервері (наприклад: `https://omniroute.meuservidor.com`), або Google rejeita a autenticação com: - -``` -Error 400: redirect_uri_mismatch -``` - -#### Рішення: налаштуйте власні облікові записи OAuth - -Потрібно точно написати **Ідентифікатор клієнта OAuth 2.0** у Google Cloud Console через URI вашого сервера. - -#### Passo a passo - -**1. Доступ до Google Cloud Console** - -Abra: [https://console.cloud.google.com/apis/credentials](https://console.cloud.google.com/apis/credentials) - -**2. Crie um novo OAuth 2.0 ID клієнта** - -- Натисніть **"+ Створити облікові дані"** → **"Ідентифікатор клієнта OAuth"** -- Tipo de aplicativo: **"Веб-програма"** -- Назва: escolha qualquer nome (наприклад: `OmniRoute Remote`) - -**3. Додайте як авторизовані URI перенаправлення** - -Без поля **"Авторизовані URI перенаправлення"**, додайте: - -``` -https://seu-servidor.com/callback -``` - -> Замініть `seu-servidor.com` домен або IP на свій сервер (включно з необхідним портом, наприклад: `http://45.33.32.156:20128/callback`). - -**4. Зберегти електронну копію як ідентифікацію** - -Наприклад, Google показує **Ідентифікатор клієнта** і **Секрет клієнта**. - -**5. Налаштувати як variáveis de ambiente** - -Немає `.env` (або наших варіантів середовища Docker): - -```bash -# Para Antigravity: -ANTIGRAVITY_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com -ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret - -# Para Gemini CLI: -GEMINI_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com -GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -``` - -**6. Reinicie o OmniRoute** - -```bash -# Se usando npm: -npm run dev - -# Se usando Docker: -docker restart omniroute -``` - -**7. Tente conectar novamente** - -Інформаційна панель → Постачальники → Антигравітація (або Gemini CLI) → OAuth - -Agora o Google redirecionará corretamente para `https://seu-servidor.com/callback` e a authenticação funcionará. - ---- - -#### Тимчасове вирішення проблеми (необхідне налаштування повноважень) - -Se não quiser criar credenciais próprias agora, ainda é possível usar o fluxo **manual de URL**: - -1. OmniRoute скидає URL-адресу авторизації Google -2. Якщо ви авторизуєтеся, або перенаправлення даних Google для `localhost` (це неможливість віддаленого сервера) -3. **Скопіюйте повну URL-адресу** для переходу до вашого браузера (повідомте, що сторінка не створена) -4. Cole essa URL no campo que aparece no modal de conexão do OmniRoute -5. Натисніть **"Підключитися"** - -> Este workaround funciona porque o código de autorização na URL é válido independente do redirect ter carregado ou não. - -</details> - ---- - -</details> - -## 🛠️ Tech Stack - -<details> -<summary><b>Натисніть, щоб розгорнути деталі технічного стеку</b></summary> - -- **Серед виконання**: Node.js 18–22 LTS (⚠️ Node.js 24+ **не підтримується** — рідні двійкові файли `better-sqlite3` несумісні) -- **Мова**: TypeScript 5.9 — **100% TypeScript** для `src/` та `open-sse/` (нуль `any` в основних модулях, починаючи з версії 2.0) -- **Framework**: Next.js 16 + React 19 + Tailwind CSS 4 -- **База даних**: LowDB (JSON) + SQLite (стан домену + журнали проксі + аудит MCP + рішення про маршрутизацію) -- **Схеми**: Zod (перевірка введення/виведення інструменту MCP, контракти API) -- **Протоколи**: MCP (stdio/HTTP) + A2A v0.3 (JSON-RPC 2.0 + SSE) -- **Потокове передавання**: події, надіслані сервером (SSE) -- **Auth**: OAuth 2.0 (PKCE) + JWT + API Keys + MCP Scoped Authorization -- **Тестування**: програма для виконання тестів Node.js + Vitest (900+ тестів, включаючи блоки, інтеграцію, E2E) -- **CI/CD**: дії GitHub (автоматична публікація npm + Docker Hub після випуску) -- **Веб-сайт**: [omniroute.online](https://omniroute.online) -- **Пакет**: [npmjs.com/package/omniroute](https://www.npmjs.com/package/omniroute) -- **Docker**: [hub.docker.com/r/diegosouzapw/omniroute](https://hub.docker.com/r/diegosouzapw/omniroute) -- **Стійкість**: автоматичний вимикач, експоненціальна віддача, захист від гриму, підробка TLS, автоматичне самовідновлення комбо - -</details> - ---- - -## 📖 Документація - -| Документ | Опис | -| ---------------------------------------------- | -------------------------------------------------------------------------- | -| [User Guide](docs/USER_GUIDE.md) | Постачальники, комбо, інтеграція CLI, розгортання | -| [API Reference](docs/API_REFERENCE.md) | Усі кінцеві точки з прикладами | -| [MCP Server](open-sse/mcp-server/README.md) | 16 інструментів MCP, конфігурації IDE, клієнти Python/TS/Go | -| [A2A Server](src/lib/a2a/README.md) | Протокол JSON-RPC 2.0, навички, потокове передавання, керування завданнями | -| [Auto-Combo Engine](docs/auto-combo.md) | 6-факторна оцінка, пакети режимів, самовідновлення | -| [Troubleshooting](docs/TROUBLESHOOTING.md) | Загальні проблеми та рішення | -| [Architecture](docs/ARCHITECTURE.md) | Архітектура системи та внутрішні | -| [Contributing](CONTRIBUTING.md) | Розробка установки та рекомендацій | -| [OpenAPI Spec](docs/openapi.yaml) | Специфікація OpenAPI 3.0 | -| [Security Policy](SECURITY.md) | Повідомлення про вразливості та методи безпеки | -| [VM Deployment](docs/VM_DEPLOYMENT_GUIDE.md) | Повний посібник: налаштування VM + nginx + Cloudflare | -| [Features Gallery](docs/FEATURES.md) | Огляд інформаційної панелі зі знімками екрана | -| [Release Checklist](docs/RELEASE_CHECKLIST.md) | Етапи перевірки перед випуском | - ---- - -## 🗺️ Дорожня карта - -OmniRoute має **заплановано понад 210 функцій** на кількох етапах розробки. Ось ключові області: - -| Категорія | Заплановані особливості | Основні моменти | -| -------------------------------- | ----------------------- | ------------------------------------------------------------------------------------------------------------------------- | -| 🧠 **Маршрутизація та інтелект** | 25+ | Маршрутизація з найменшою затримкою, маршрутизація на основі тегів, попередній перегляд квот, вибір облікового запису P2C | -| 🔒 **Безпека та відповідність** | 20+ | Захист SSRF, маскування облікових даних, обмеження швидкості для кінцевої точки, визначення обсягу ключа керування | -| 📊 **Спостережливість** | 15+ | Інтеграція OpenTelemetry, моніторинг квот у реальному часі, відстеження витрат на модель | -| 🔄 **Інтеграція постачальників** | 20+ | Реєстр динамічної моделі, час відновлення провайдера, Codex із кількома обліковими записами, розбір квоти Copilot | -| ⚡ **Виконання** | 15+ | Подвійний рівень кешу, кеш запитів, кеш відповідей, потокове підтримання активності, пакетний API | -| 🌐 **Екосистема** | 10+ | API WebSocket, гаряче перезавантаження конфігурації, розподілене сховище конфігурацій, комерційний режим | - -### 🔜 Незабаром - -- 🔗 **Інтеграція OpenCode** — власна підтримка постачальника для IDE кодування OpenCode AI -- 🔗 **Інтеграція TRAE** — повна підтримка інфраструктури розробки TRAE AI -- 📦 **Batch API** — асинхронна пакетна обробка масових запитів -- 🎯 **Маршрутизація на основі тегів** — Маршрутизація запитів на основі спеціальних тегів і метаданих -- 💰 **Стратегія найнижчої вартості** — автоматично вибирайте найдешевшого доступного постачальника - -> 📝 Повні специфікації функцій доступні в [**OMNI_TOKEN_342**](docs/new-features/) (217 детальних специфікацій) - ---- - -## 👥 Автори - -[![Contributors](https://contrib.rocks/image?repo=diegosouzapw/OmniRoute&max=100&columns=20&anon=1)](https://github.com/diegosouzapw/OmniRoute/graphs/contributors) - -### Як зробити внесок - -1. Розгалужте репозиторій -2. Створіть свою гілку функцій (`git checkout -b feature/amazing-feature`) -3. Зафіксуйте свої зміни (`git commit -m 'Add amazing feature'`) -4. Push до відділення (`git push origin feature/amazing-feature`) -5. Відкрийте Pull Request - -Див. [CONTRIBUTING.md](CONTRIBUTING.md), щоб отримати докладні вказівки. - -### Випуск нової версії - -```bash -# Create a release — npm publish happens automatically -gh release create v2.0.0 --title "v2.0.0" --generate-notes -``` - ---- - -## 📊 Зоряна історія - -## Звіздарі з часом - -## [![Stargazers over time](https://starchart.cc/diegosouzapw/OmniRoute.svg?variant=adaptive)](https://starchart.cc/diegosouzapw/OmniRoute) - -## 🙏 Подяка - -Особлива подяка **[9router](https://github.com/decolua/9router)** від **[decolua](https://github.com/decolua)** — оригінального проекту, який надихнув цей форк. OmniRoute спирається на цю неймовірну основу завдяки додатковим функціям, мультимодальним API і повному перепису TypeScript. - -Особлива подяка **[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)** — оригінальній реалізації Go, яка надихнула цей порт JavaScript. - ---- - -## 📄 Ліцензія - -Ліцензія Массачусетського технологічного інституту – подробиці див. [LICENSE](LICENSE). - ---- - -<div align="center"> - <sub>Створено з ❤️ для розробників, які працюють у режимі 24/7</sub> - <br/> - <sub><a href="https://omniroute.online">omniroute.online</a></sub> -</div> -<!-- Обговорення GitHub увімкнено для запитань і відповідей спільноти --> +👉 **[Read the Documentation here](docs/i18n/uk-UA/README.md)** diff --git a/README.vi.md b/README.vi.md index 47b155b868..0931b18347 100644 --- a/README.vi.md +++ b/README.vi.md @@ -1,2077 +1,5 @@ -# 🚀 OmniRoute — Cổng AI miễn phí +# 🌐 OmniRoute (vi) -### Không bao giờ ngừng viết mã. Định tuyến thông minh tới **Mô hình AI MIỄN PHÍ và chi phí thấp** với tính năng dự phòng tự động. +The documentation has been formalized and moved to our centralized i18n structure. -_Proxy API phổ quát của bạn — một điểm cuối, hơn 67 nhà cung cấp, không có thời gian ngừng hoạt động. Hiện có sự điều phối đại lý **MCP & A2A**._ - -**Hoàn thành cuộc trò chuyện • Nhúng · Tạo hình ảnh · Video · Âm nhạc · Âm thanh · Sắp xếp lại · **Tìm kiếm trên web** · Máy chủ MCP · Giao thức A2A · 100% TypeScript** - ---- - -<div align="center"> - -[![npm version](https://img.shields.io/npm/v/omniroute?color=cb3837&logo=npm)](https://www.npmjs.com/package/omniroute) -[![npm downloads](https://img.shields.io/npm/dm/omniroute?color=cb3837&logo=npm&label=npm%20downloads)](https://www.npmjs.com/package/omniroute) -[![Docker Hub](https://img.shields.io/docker/v/diegosouzapw/omniroute?label=Docker%20Hub&logo=docker&color=2496ED)](https://hub.docker.com/r/diegosouzapw/omniroute) -[![Docker Pulls](https://img.shields.io/docker/pulls/diegosouzapw/omniroute?logo=docker&color=2496ED&label=docker%20pulls)](https://hub.docker.com/r/diegosouzapw/omniroute) -[![License](https://img.shields.io/github/license/diegosouzapw/OmniRoute)](https://github.com/diegosouzapw/OmniRoute/blob/main/LICENSE) -[![Website](https://img.shields.io/badge/Website-omniroute.online-blue?logo=google-chrome&logoColor=white)](https://omniroute.online) -[![WhatsApp](https://img.shields.io/badge/WhatsApp-Community-25D366?logo=whatsapp&logoColor=white)](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) - -[🌐 Website](https://omniroute.online) • [🚀 Quick Start](#-quick-start) • [💡 Features](#-key-features) • [📖 Docs](#-documentation) • [💰 Pricing](#-pricing-at-a-glance) • [💬 WhatsApp](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) - -</div> - -🌐 **Có sẵn tại:** 🇺🇸 [English](README.md) | 🇧🇷 [Português (Brasil)](docs/i18n/pt-BR/README.md) | 🇪🇸 [Español](docs/i18n/es/README.md) | 🇫🇷 [Français](docs/i18n/fr/README.md) | 🇮🇹 [Italiano](docs/i18n/it/README.md) | 🇷🇺 [Русский](docs/i18n/ru/README.md) | 🇨🇳 [中文 (简体)](docs/i18n/zh-CN/README.md) | 🇩🇪 [Deutsch](docs/i18n/de/README.md) | 🇮🇳 [हिन्दी](docs/i18n/in/README.md) | 🇹🇭 [ไทย](docs/i18n/th/README.md) | 🇺🇦 [Українська](docs/i18n/uk-UA/README.md) | 🇸🇦 [العربية](docs/i18n/ar/README.md) | 🇯🇵 [日本語](docs/i18n/ja/README.md) | 🇻🇳 [Tiếng Việt](docs/i18n/vi/README.md) | 🇧🇬 [Български](docs/i18n/bg/README.md) | 🇩🇰 [Dansk](docs/i18n/da/README.md) | 🇫🇮 [Suomi](docs/i18n/fi/README.md) | 🇮🇱 [עברית](docs/i18n/he/README.md) | 🇭🇺 [Magyar](docs/i18n/hu/README.md) | 🇮🇩 [Bahasa Indonesia](docs/i18n/id/README.md) | 🇰🇷 [한국어](docs/i18n/ko/README.md) | 🇲🇾 [Bahasa Melayu](docs/i18n/ms/README.md) | 🇳🇱 [Nederlands](docs/i18n/nl/README.md) | 🇳🇴 [Norsk](docs/i18n/no/README.md) | 🇵🇹 [Português (Portugal)](docs/i18n/pt/README.md) | 🇷🇴 [Română](docs/i18n/ro/README.md) | 🇵🇱 [Polski](docs/i18n/pl/README.md) | 🇸🇰 [Slovenčina](docs/i18n/sk/README.md) | 🇸🇪 [Svenska](docs/i18n/sv/README.md) | 🇵🇭 [Filipino](docs/i18n/phi/README.md) | 🇨🇿 [Čeština](docs/i18n/cs/README.md) - ---- - -## 🆕 Có gì mới trong v3.0.0 - -> **Nâng cấp từ v2.9.5?** — Xem [full CHANGELOG](CHANGELOG.md#300--2026-03-22-release-candidate--not-yet-merged-to-main) để biết tất cả các thay đổi. - -| Khu vực | Thay đổi | -| ---------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 🔒 **Bảo mật CodeQL** | Đã sửa hơn 10 cảnh báo CodeQL: đa thức-redos, không an toàn-ngẫu nhiên, khắc phục bằng cách tiêm shell | -| ✅ **Xác thực lộ trình** | Tất cả 176 tuyến API hiện đã được xác thực bằng lược đồ Zod + `validateBody()` — CI `check:route-validation:t06` vượt qua | -| 🐛 **Rò rỉ thẻ omniModel** | Thẻ `<omniModel>` nội bộ không còn bị rò rỉ tới máy khách trong phản hồi phát trực tuyến SSE (#585) | -| 🔑 **API khóa đã đăng ký** | Tự động cung cấp khóa API thông qua `POST /api/v1/registered-keys` với việc thực thi hạn ngạch cho mỗi nhà cung cấp/tài khoản, tính tạm thời, bộ nhớ SHA-256 và báo cáo sự cố GitHub tùy chọn | -| 👁️ **Scoped API Key Reveal** 🆕 | Opt-in recovery of API keys via `ALLOW_API_KEY_REVEAL` | -| 🎨 **Biểu tượng nhà cung cấp** | Hơn 130 logo nhà cung cấp thông qua `@lobehub/icons` (SVG) với PNG → chuỗi dự phòng chung | -| 🔄 **Tự động đồng bộ hóa mô hình** | Bộ lập lịch 24 giờ và chuyển đổi giao diện người dùng thủ công để đồng bộ hóa danh sách mô hình cho các nhà cung cấp tương thích OpenAI tích hợp và tùy chỉnh | -| 🌐 **OpenCode Zen/Go** | Hai nhà cung cấp mới từ @kang-heewon qua PR #530: bậc miễn phí + bậc đăng ký qua `OpencodeExecutor` | -| 🐛 **Gemini CLI OAuth** | Lỗi có thể xử lý được khi thiếu `GEMINI_OAUTH_CLIENT_SECRET` trong Docker (là lỗi khó hiểu của Google) | -| 🐛 **Cấu hình OpenCode** | `saveOpenCodeConfig()` hiện ghi TOML chính xác vào `XDG_CONFIG_HOME` | -| 🐛 **Ghi đè mô hình đã ghim** | `body.model` được đặt chính xác thành `pinnedModel` về bảo vệ bộ nhớ đệm theo ngữ cảnh | -| 🐛 **Vòng lặp Codex/Claude** | Các khối `tool_result` hiện đã được chuyển đổi thành văn bản để dừng các vòng lặp vô hạn | -| 🐛 **Chuyển hướng đăng nhập** | Đăng nhập không còn bị treo sau khi bỏ qua thiết lập mật khẩu | -| 🐛 **Đường dẫn Windows** | Đường dẫn MSYS2/Git-Bash (`/c/...`) được chuẩn hóa tự động thành `C:\...` | - ---- - -## 🖼️ Bảng điều khiển chính - -<div align="center"> - <img src="./docs/screenshots/MainOmniRoute.png" alt="OmniRoute Dashboard" width="800"/> -</div> - ---- - -## 📸 Xem trước bảng điều khiển - -<details> -<summary><b>Nhấp để xem ảnh chụp màn hình trang tổng quan</b></summary> - -| Trang | Ảnh chụp màn hình | -| ------------------- | ------------------------------------------------- | -| **Nhà cung cấp** | ![Providers](docs/screenshots/01-providers.png) | -| **Combo** | ![Combos](docs/screenshots/02-combos.png) | -| **Phân tích** | ![Analytics](docs/screenshots/03-analytics.png) | -| **Sức khỏe** | ![Health](docs/screenshots/04-health.png) | -| **Người dịch** | ![Translator](docs/screenshots/05-translator.png) | -| **Cài đặt** | ![Settings](docs/screenshots/06-settings.png) | -| **Công cụ CLI** | ![CLI Tools](docs/screenshots/07-cli-tools.png) | -| **Nhật ký sử dụng** | ![Usage](docs/screenshots/08-usage.png) | -| **Điểm cuối** | ![Endpoints](docs/screenshots/09-endpoint.png) | - -</details> - ---- - -### 🤖 Nhà cung cấp AI miễn phí cho các tác nhân mã hóa yêu thích của bạn - -_Kết nối mọi công cụ IDE hoặc CLI được hỗ trợ bởi AI thông qua OmniRoute — cổng API miễn phí để mã hóa không giới hạn._ - - <table> - <tr> - <td align="center" width="110"> - <a href="https://github.com/openclaw/openclaw"> - <img src="./public/providers/openclaw.png" alt="OpenClaw" width="48"/><br/> - <b>OpenClaw</b> - </a><br/> - <sub>⭐ 205K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/HKUDS/nanobot"> - <img src="./public/providers/nanobot.png" alt="NanoBot" width="48"/><br/> - <b>NanoBot</b> - </a><br/> - <sub>⭐ 20.9K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/sipeed/picoclaw"> - <img src="./public/providers/picoclaw.jpg" alt="PicoClaw" width="48"/><br/> - <b>PicoClaw</b> - </a><br/> - <sub>⭐ 14.6K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/zeroclaw-labs/zeroclaw"> - <img src="./public/providers/zeroclaw.png" alt="ZeroClaw" width="48"/><br/> - <b>ZeroClaw</b> - </a><br/> - <sub>⭐ 9.9K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/nearai/ironclaw"> - <img src="./public/providers/ironclaw.png" alt="IronClaw" width="48"/><br/> - <b>IronClaw</b> - </a><br/> - <sub>⭐ 2.1K</sub> - </td> - </tr> - <tr> - <td align="center" width="110"> - <a href="https://github.com/anomalyco/opencode"> - <img src="./public/providers/opencode.svg" alt="OpenCode" width="48"/><br/> - <b>OpenCode</b> - </a><br/> - <sub>⭐ 106K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/openai/codex"> - <img src="./public/providers/codex.png" alt="Codex CLI" width="48"/><br/> - <b>Codex CLI</b> - </a><br/> - <sub>⭐ 60.8K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/anthropics/claude-code"> - <img src="./public/providers/claude.png" alt="Claude Code" width="48"/><br/> - <b>Claude Code</b> - </a><br/> - <sub>⭐ 67.3K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/google-gemini/gemini-cli"> - <img src="./public/providers/gemini-cli.png" alt="Gemini CLI" width="48"/><br/> - <b>Gemini CLI</b> - </a><br/> - <sub>⭐ 94.7K</sub> - </td> - <td align="center" width="110"> - <a href="https://github.com/Kilo-Org/kilocode"> - <img src="./public/providers/kilocode.png" alt="Kilo Code" width="48"/><br/> - <b>Kilo Code</b> - </a><br/> - <sub>⭐ 15.5K</sub> - </td> - </tr> - </table> - -<sub>📡 Tất cả đại lý kết nối qua <code>http://localhost:20128/v1</code> hoặc <code>http://cloud.omniroute.online/v1</code> — một cấu hình, số mô hình và hạn ngạch không giới hạn</sub> - ---- - -## 🤔 Tại sao lại là OmniRoute? - -**Ngưng lãng phí tiền và đạt đến giới hạn:** - -- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Hạn mức đăng ký hết hạn không được sử dụng hàng tháng -- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Giới hạn tốc độ khiến bạn không thể viết mã giữa chừng -- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> API đắt tiền ($20-50/tháng cho mỗi nhà cung cấp) -- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Chuyển đổi thủ công giữa các nhà cung cấp - -**OmniRoute giải quyết vấn đề này:** - -- ✅ **Tối đa hóa số lượt đăng ký** - Theo dõi hạn ngạch, sử dụng từng bit trước khi đặt lại -- ✅ **Tự động dự phòng** - Đăng ký → Khóa API → Giá rẻ → Miễn phí, không có thời gian ngừng hoạt động -- ✅ **Nhiều tài khoản** - Luân chuyển giữa các tài khoản cho mỗi nhà cung cấp -- ✅ **Universal** - Hoạt động với Claude Code, Codex, Gemini CLI, Cursor, Cline, OpenClaw, bất kỳ công cụ CLI nào - ---- - -## 📧 Hỗ trợ - -> 💬 **Tham gia cộng đồng của chúng tôi!** [WhatsApp Group](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) — Nhận trợ giúp, chia sẻ mẹo và luôn cập nhật. - -- **Trang web**: [omniroute.online](https://omniroute.online) -- **GitHub**: [github.com/diegosouzapw/OmniRoute](https://github.com/diegosouzapw/OmniRoute) -- **Vấn đề**: [github.com/diegosouzapw/OmniRoute/issues](https://github.com/diegosouzapw/OmniRoute/issues) -- **WhatsApp**: [Community Group](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) -- **Đóng góp**: Xem [CONTRIBUTING.md](CONTRIBUTING.md), mở PR hoặc chọn `good first issue` -- **Dự án gốc**: [9router by decolua](https://github.com/decolua/9router) - -### 🐛 Báo cáo lỗi? - -Khi mở một vấn đề, vui lòng chạy lệnh system-info và đính kèm tệp được tạo: - -```bash -npm run system-info -``` - -Điều này tạo ra `system-info.txt` với phiên bản Node.js, phiên bản OmniRoute, chi tiết hệ điều hành, các công cụ CLI đã cài đặt (qoder, gemini, claude, codex, antiGravity, droid, v.v.), trạng thái Docker/PM2 và các gói hệ thống — mọi thứ chúng tôi cần để tái tạo vấn đề của bạn một cách nhanh chóng. Đính kèm tệp trực tiếp vào vấn đề GitHub của bạn. - ---- - -## 🔄 Nó hoạt động như thế nào - -``` -┌─────────────┐ -│ Your CLI │ (Claude Code, Codex, Gemini CLI, OpenClaw, Cursor, Cline...) -│ Tool │ -└──────┬──────┘ - │ http://localhost:20128/v1 - ↓ -┌─────────────────────────────────────────┐ -│ OmniRoute (Smart Router) │ -│ • Format translation (OpenAI ↔ Claude) │ -│ • Quota tracking + Embeddings + Images │ -│ • Auto token refresh │ -└──────┬──────────────────────────────────┘ - │ - ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex, Gemini CLI - │ ↓ quota exhausted - ├─→ [Tier 2: API KEY] DeepSeek, Groq, xAI, Mistral, NVIDIA NIM, etc. - │ ↓ budget limit - ├─→ [Tier 3: CHEAP] GLM ($0.6/1M), MiniMax ($0.2/1M) - │ ↓ budget limit - └─→ [Tier 4: FREE] Qoder, Qwen, Kiro (unlimited) - -Result: Never stop coding, minimal cost -``` - ---- - -## 🎯 OmniRoute giải quyết được gì — 30 điểm khó thực sự và trường hợp sử dụng - -> **Mọi nhà phát triển sử dụng công cụ AI đều phải đối mặt với những vấn đề này hàng ngày.** OmniRoute được xây dựng để giải quyết tất cả — từ chi phí vượt mức cho đến chặn khu vực, từ luồng OAuth bị hỏng đến hoạt động giao thức và khả năng quan sát của doanh nghiệp. - -<details> -<summary><b>💸 1. "Tôi trả tiền cho một thuê bao đắt tiền nhưng vẫn bị gián đoạn bởi các giới hạn"</b></summary> - -Các nhà phát triển trả 20–200 USD/tháng cho Claude Pro, Codex Pro hoặc GitHub Copilot. Ngay cả khi trả tiền, hạn ngạch vẫn có mức trần - 5 giờ sử dụng, giới hạn hàng tuần hoặc giới hạn tốc độ mỗi phút. Giữa phiên mã hóa, nhà cung cấp ngừng phản hồi và nhà phát triển mất đi dòng chảy và năng suất. - -**Cách OmniRoute giải quyết vấn đề này:** - -- **Dự phòng 4 tầng thông minh** — Nếu hết hạn ngạch đăng ký, tự động chuyển hướng đến Khóa API → Giá rẻ → Miễn phí mà không cần can thiệp thủ công -- **Theo dõi hạn ngạch theo thời gian thực** — Hiển thị mức tiêu thụ mã thông báo trong thời gian thực với tính năng đếm ngược đặt lại (5 giờ, hàng ngày, hàng tuần) -- **Hỗ trợ nhiều tài khoản** — Nhiều tài khoản cho mỗi nhà cung cấp với tính năng tự động quay vòng — khi hết một tài khoản, hãy chuyển sang tài khoản tiếp theo -- **Combo tùy chỉnh** — Chuỗi dự phòng có thể tùy chỉnh với 6 chiến lược cân bằng (điền trước, quay vòng, P2C, ngẫu nhiên, ít sử dụng nhất, tối ưu hóa chi phí) -- **Hạn ngạch kinh doanh Codex** — Giám sát hạn ngạch không gian làm việc của Doanh nghiệp/Nhóm trực tiếp trong bảng điều khiển - -</details> - -<details> -<summary><b>🔌 2. "Tôi cần sử dụng nhiều nhà cung cấp nhưng mỗi nhà cung cấp có một API khác nhau"</b></summary> - -OpenAI sử dụng một định dạng, Claude (Anthropic) sử dụng một định dạng khác, Gemini lại sử dụng một định dạng khác. Nếu nhà phát triển muốn thử nghiệm các mô hình từ các nhà cung cấp khác nhau hoặc dự phòng giữa các nhà cung cấp đó, họ cần phải định cấu hình lại SDK, thay đổi điểm cuối, xử lý các định dạng không tương thích. Các nhà cung cấp tùy chỉnh (FriendLI, NIM) có các điểm cuối mô hình không chuẩn. - -**Cách OmniRoute giải quyết vấn đề này:** - -- **Điểm cuối hợp nhất** — Một `http://localhost:20128/v1` duy nhất đóng vai trò là proxy cho tất cả hơn 67 nhà cung cấp -- **Dịch định dạng** — Tự động và minh bạch: OpenAI ↔ Claude ↔ Gemini ↔ API phản hồi -- **Sạch hóa phản hồi** — Loại bỏ các trường không chuẩn (`x_groq`, `usage_breakdown`, `service_tier`) phá vỡ OpenAI SDK v1.83+ -- **Chuẩn hóa vai trò** — Chuyển đổi `developer` → `system` cho các nhà cung cấp không phải OpenAI; `system` → `user` cho GLM/ERNIE -- **Think Tag Extraction** — Trích xuất `<think>` khối từ các mô hình như DeepSeek R1 thành `reasoning_content` được tiêu chuẩn hóa -- **Đầu ra có cấu trúc cho Gemini** — `json_schema` → `responseMimeType`/`responseSchema` chuyển đổi tự động -- **`stream` mặc định là `false`** — Căn chỉnh với thông số OpenAI, tránh SSE không mong muốn trong SDK Python/Rust/Go - -</details> - -<details> -<summary><b>🌐 3. "Nhà cung cấp AI của tôi chặn khu vực/quốc gia của tôi"</b></summary> - -Các nhà cung cấp như OpenAI/Codex chặn quyền truy cập từ các khu vực địa lý nhất định. Người dùng gặp phải các lỗi như `unsupported_country_region_territory` trong khi kết nối OAuth và API. Điều này đặc biệt gây khó chịu cho các nhà phát triển từ các nước đang phát triển. - -**Cách OmniRoute giải quyết vấn đề này:** - -- **Cấu hình proxy 3 cấp** — Proxy có thể định cấu hình ở 3 cấp độ: toàn cầu (tất cả lưu lượng truy cập), mỗi nhà cung cấp (chỉ một nhà cung cấp) và mỗi kết nối/khóa -- **Huy hiệu proxy được mã hóa màu** — Chỉ báo trực quan: 🟢 proxy toàn cầu, 🟡 proxy nhà cung cấp, 🔵 proxy kết nối, luôn hiển thị IP -- **Trao đổi mã thông báo OAuth thông qua proxy** — Luồng OAuth cũng đi qua proxy, giải quyết `unsupported_country_region_territory` -- **Kiểm tra kết nối qua Proxy** — Kiểm tra kết nối sử dụng proxy đã định cấu hình (không cần bỏ qua trực tiếp nữa) -- **Hỗ trợ SOCKS5** — Hỗ trợ proxy SOCKS5 đầy đủ cho định tuyến đi -- **Giả mạo dấu vân tay TLS** — Dấu vân tay TLS giống trình duyệt thông qua `wreq-js` để vượt qua khả năng phát hiện bot -- **🔏 Khớp dấu vân tay CLI** — Sắp xếp lại các tiêu đề và trường nội dung để khớp với chữ ký nhị phân CLI gốc, giảm đáng kể rủi ro gắn cờ tài khoản. IP proxy được giữ nguyên — bạn có được cả mặt nạ IP **và** ẩn cùng lúc - -</details> - -<details> -<summary><b>🆓 4. "Tôi muốn sử dụng AI để viết mã nhưng tôi không có tiền"</b></summary> - -Không phải ai cũng có thể trả 20–200 USD/tháng để đăng ký AI. Sinh viên, nhà phát triển từ các quốc gia mới nổi, những người có sở thích và người làm việc tự do cần được tiếp cận với các mô hình chất lượng với chi phí bằng 0. - -**Cách OmniRoute giải quyết vấn đề này:** - -- **Tích hợp sẵn nhà cung cấp cấp miễn phí** — Hỗ trợ riêng cho nhà cung cấp miễn phí 100%: Qoder (5 mô hình không giới hạn qua OAuth: kimi-k2-thinking, qwen3-code-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 mô hình không giới hạn: qwen3-code-plus, qwen3-code-flash, qwen3-code-next, Vision-model), Kiro (Claude + AWS Builder ID miễn phí), Gemini CLI (miễn phí 180K token/tháng) -- **Ollama Cloud** — Các mô hình Ollama được lưu trữ trên đám mây tại `api.ollama.com` với bậc "Sử dụng nhẹ" miễn phí; sử dụng tiền tố `ollamacloud/<model>` -- **Combo chỉ miễn phí** — Chuỗi `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/tháng mà không có thời gian ngừng hoạt động -- **Truy cập miễn phí NVIDIA NIM** — ~40 RPM dành cho nhà phát triển - truy cập miễn phí vĩnh viễn vào hơn 70 mẫu tại build.nvidia.com (chuyển từ tín dụng sang giới hạn tỷ lệ thuần túy) -- **Chiến lược tối ưu hóa chi phí** — Chiến lược định tuyến tự động chọn nhà cung cấp sẵn có rẻ nhất - -</details> - -<details> -<summary><b>🔒 5. "Tôi cần bảo vệ cổng AI của mình khỏi bị truy cập trái phép"</b></summary> - -Khi đưa cổng AI vào mạng (LAN, VPS, Docker), bất kỳ ai có địa chỉ đều có thể sử dụng mã thông báo/hạn ngạch của nhà phát triển. Nếu không có biện pháp bảo vệ, các API dễ bị lạm dụng, chèn ép và lạm dụng. - -**Cách OmniRoute giải quyết vấn đề này:** - -- **Quản lý khóa API** — Tạo, xoay vòng và xác định phạm vi cho mỗi nhà cung cấp bằng trang `/dashboard/api-manager` chuyên dụng -- **Quyền cấp mô hình** — Hạn chế khóa API đối với các mô hình cụ thể (`openai/*`, mẫu ký tự đại diện), bằng nút chuyển Cho phép tất cả/Hạn chế -- **Bảo vệ điểm cuối API** — Yêu cầu khóa cho `/v1/models` và chặn các nhà cung cấp cụ thể khỏi danh sách -- **Auth Guard + CSRF Protection** — Tất cả các tuyến trang tổng quan được bảo vệ bằng phần mềm trung gian `withAuth` + mã thông báo CSRF -- **Giới hạn tốc độ** — Giới hạn tốc độ trên mỗi IP với các cửa sổ có thể định cấu hình -- **Lọc IP** — Danh sách cho phép/danh sách chặn để kiểm soát truy cập -- **Prompt Tiêm Guard** — Khử trùng các mẫu nhắc nhở độc hại -- **Mã hóa AES-256-GCM** — Thông tin xác thực được mã hóa ở trạng thái lưu trữ - -</details> - -<details> -<summary><b>🛑 6. "Nhà cung cấp của tôi ngừng hoạt động và tôi mất luồng mã hóa"</b></summary> - -Các nhà cung cấp AI có thể trở nên không ổn định, trả về lỗi 5xx hoặc đạt giới hạn tốc độ tạm thời. Nếu một nhà phát triển phụ thuộc vào một nhà cung cấp duy nhất thì họ sẽ bị gián đoạn. Nếu không có bộ ngắt mạch, việc thử lại nhiều lần có thể làm hỏng ứng dụng. - -**Cách OmniRoute giải quyết vấn đề này:** - -- **Bộ ngắt mạch trên mỗi mô hình** — Tự động mở/đóng với các ngưỡng và thời gian hồi chiêu có thể định cấu hình (Đóng/Mở/Nửa mở), trong phạm vi mỗi mô hình để tránh xếp tầng -- **Thời gian chờ theo cấp số nhân** — Độ trễ thử lại lũy tiến -- **Bầy chống sấm sét** — Mutex + bảo vệ semaphore chống lại các cơn bão thử lại đồng thời -- **Chuỗi dự phòng kết hợp** — Nếu nhà cung cấp chính không thành công, nó sẽ tự động rơi qua chuỗi mà không cần can thiệp -- **Combo Circuit Breaker** — Tự động vô hiệu hóa các nhà cung cấp bị lỗi trong chuỗi kết hợp -- **Bảng thông tin sức khỏe** — Giám sát thời gian hoạt động, trạng thái ngắt mạch, khóa, số liệu thống kê bộ nhớ đệm, độ trễ p50/p95/p99 - -</details> - -<details> -<summary><b>🔧 7. "Việc định cấu hình từng công cụ AI thật tẻ nhạt và lặp đi lặp lại"</b></summary> - -Nhà phát triển sử dụng Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code... Mỗi công cụ cần một cấu hình khác nhau (điểm cuối API, khóa, mô hình). Việc cấu hình lại khi chuyển đổi nhà cung cấp hoặc mô hình là một sự lãng phí thời gian. - -**Cách OmniRoute giải quyết vấn đề này:** - -- **Bảng điều khiển công cụ CLI** — Trang chuyên dụng với thiết lập bằng một cú nhấp chuột cho Claude Code, Codex CLI, OpenClaw, Kilo Code, AntiGravity, Cline -- **Trình tạo cấu hình đồng lái GitHub** — Tạo `chatLanguageModels.json` cho Mã VS với lựa chọn mô hình hàng loạt -- **Trình hướng dẫn tích hợp** — Thiết lập 4 bước có hướng dẫn cho người dùng lần đầu -- **Một điểm cuối, tất cả các mô hình** — Định cấu hình `http://localhost:20128/v1` một lần, truy cập hơn 67 nhà cung cấp - -</details> - -<details> -<summary><b>🔑 8. "Quản lý mã thông báo OAuth từ nhiều nhà cung cấp là địa ngục"</b></summary> - -Claude Code, Codex, Gemini CLI, Copilot — tất cả đều sử dụng OAuth 2.0 với các mã thông báo sắp hết hạn. Nhà phát triển cần liên tục xác thực lại, xử lý `client_secret is missing`, `redirect_uri_mismatch` và lỗi trên máy chủ từ xa. OAuth trên LAN/VPS đặc biệt có vấn đề. - -**Cách OmniRoute giải quyết vấn đề này:** - -- **Tự động làm mới mã thông báo** — Làm mới mã thông báo OAuth ở chế độ nền trước khi hết hạn -- **Tích hợp OAuth 2.0 (PKCE)** — Luồng tự động cho Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder -- **OAuth nhiều tài khoản** — Nhiều tài khoản cho mỗi nhà cung cấp thông qua trích xuất mã thông báo JWT/ID -- **OAuth LAN/Remote Fix** — Phát hiện IP riêng cho `redirect_uri` + chế độ URL thủ công cho máy chủ từ xa -- **OAuth đằng sau Nginx** — Sử dụng `window.location.origin` để tương thích với proxy ngược -- **Hướng dẫn OAuth từ xa** — Hướng dẫn từng bước về thông tin đăng nhập Google Cloud trên VPS/Docker - -</details> - -<details> -<summary><b>📊 9. "Tôi không biết mình đang chi bao nhiêu và ở đâu"</b></summary> - -Các nhà phát triển sử dụng nhiều nhà cung cấp trả phí nhưng không có quan điểm thống nhất về chi tiêu. Mỗi nhà cung cấp có trang tổng quan thanh toán riêng nhưng không có chế độ xem tổng hợp. Chi phí bất ngờ có thể chồng chất. - -**Cách OmniRoute giải quyết vấn đề này:** - -- **Bảng thông tin phân tích chi phí** — Theo dõi chi phí mỗi mã thông báo và quản lý ngân sách cho mỗi nhà cung cấp -- **Giới hạn ngân sách cho mỗi cấp** — Mức chi tiêu trần cho mỗi cấp kích hoạt dự phòng tự động -- **Cấu hình định giá theo mẫu** — Giá có thể định cấu hình cho mỗi mẫu -- **Thống kê sử dụng trên mỗi khóa API** — Số lượng yêu cầu và dấu thời gian được sử dụng lần cuối trên mỗi khóa -- **Bảng thông tin phân tích** — Thẻ thống kê, biểu đồ sử dụng mô hình, bảng nhà cung cấp với tỷ lệ thành công và độ trễ - -</details> - -<details> -<summary><b>🐛 10. "Tôi không thể chẩn đoán lỗi và sự cố trong cuộc gọi AI"</b></summary> - -Khi cuộc gọi không thành công, nhà phát triển không biết liệu đó có phải là do giới hạn tốc độ, mã thông báo đã hết hạn, sai định dạng hay lỗi của nhà cung cấp hay không. Nhật ký bị phân mảnh trên các thiết bị đầu cuối khác nhau. Nếu không có khả năng quan sát được thì việc gỡ lỗi chỉ là thử và sai. - -**Cách OmniRoute giải quyết vấn đề này:** - -- **Bảng điều khiển nhật ký hợp nhất** — 4 tab: Nhật ký yêu cầu, Nhật ký proxy, Nhật ký kiểm tra, Bảng điều khiển -- **Trình xem nhật ký bảng điều khiển** — Trình xem kiểu thiết bị đầu cuối thời gian thực với các cấp độ được mã hóa màu, tự động cuộn, tìm kiếm, lọc -- **Nhật ký proxy SQLite** — Nhật ký liên tục vẫn tồn tại khi máy chủ khởi động lại -- **Sân chơi dịch thuật** — 4 chế độ gỡ lỗi: Sân chơi (dịch định dạng), Trình kiểm tra trò chuyện (khứ hồi), Bàn thử nghiệm (hàng loạt), Giám sát trực tiếp (thời gian thực) -- **Yêu cầu đo từ xa** — độ trễ p50/p95/p99 + truy tìm X-Request-Id -- **Ghi nhật ký dựa trên tệp bằng xoay vòng** — Trình chặn chặn bảng điều khiển ghi lại mọi thứ vào nhật ký JSON bằng cách xoay vòng dựa trên kích thước -- **Báo cáo thông tin hệ thống** — `npm run system-info` tạo `system-info.txt` với môi trường đầy đủ của bạn (Phiên bản nút, phiên bản OmniRoute, HĐH, công cụ CLI, trạng thái Docker/PM2). Đính kèm nó khi báo cáo vấn đề để phân loại ngay lập tức. - -</details> - -<details> -<summary><b>🏗️ 11. "Việc triển khai và bảo trì cổng rất phức tạp"</b></summary> - -Việc cài đặt, định cấu hình và duy trì proxy AI trên các môi trường khác nhau (cục bộ, VPS, Docker, đám mây) tốn nhiều công sức. Các vấn đề như đường dẫn được mã hóa cứng, `EACCES` trên thư mục, xung đột cổng và bản dựng đa nền tảng sẽ gây thêm xích mích. - -**Cách OmniRoute giải quyết vấn đề này:** - -- **npm cài đặt toàn cầu** — `npm install -g omniroute && omniroute` — xong -- **Docker Đa nền tảng** — AMD64 + ARM64 gốc (Apple Silicon, AWS Graviton, Raspberry Pi) -- **Hồ sơ soạn thảo Docker** — `base` (không có công cụ CLI) và `cli` (với Claude Code, Codex, OpenClaw) -- **Ứng dụng máy tính để bàn điện tử** — Ứng dụng gốc dành cho Windows/macOS/Linux với khay hệ thống, tự động khởi động, chế độ ngoại tuyến -- **Chế độ chia cổng** — API và Bảng điều khiển trên các cổng riêng biệt cho các tình huống nâng cao (proxy ngược, mạng vùng chứa) -- **Cloud Sync** — Đồng bộ hóa cấu hình giữa các thiết bị thông qua Cloudflare Workers -- **Sao lưu DB** — Tự động sao lưu, khôi phục, xuất và nhập tất cả cài đặt - -</details> - -<details> -<summary><b>🌍 12. "Giao diện chỉ có tiếng Anh và nhóm của tôi không nói được tiếng Anh"</b></summary> - -Các đội ở các quốc gia không nói tiếng Anh, đặc biệt là ở Châu Mỹ Latinh, Châu Á và Châu Âu, gặp khó khăn với giao diện chỉ có tiếng Anh. Rào cản ngôn ngữ làm giảm khả năng tiếp nhận và tăng lỗi cấu hình. - -**Cách OmniRoute giải quyết vấn đề này:** - -- **Bảng điều khiển i18n — 30 ngôn ngữ** — Tất cả hơn 500 phím được dịch bao gồm tiếng Ả Rập, tiếng Bungari, tiếng Đan Mạch, tiếng Đức, tiếng Tây Ban Nha, tiếng Phần Lan, tiếng Pháp, tiếng Do Thái, tiếng Hindi, tiếng Hungary, tiếng Indonesia, tiếng Ý, tiếng Nhật, tiếng Hàn, tiếng Mã Lai, tiếng Hà Lan, tiếng Na Uy, tiếng Ba Lan, tiếng Bồ Đào Nha (PT/BR), tiếng Rumani, tiếng Nga, tiếng Slovak, tiếng Thụy Điển, tiếng Thái, tiếng Ukraina, tiếng Việt, tiếng Trung, tiếng Philipin, tiếng Anh -- **Hỗ trợ RTL** — Hỗ trợ từ phải sang trái cho tiếng Ả Rập và tiếng Do Thái -- **README đa ngôn ngữ** — 30 bản dịch tài liệu hoàn chỉnh -- **Bộ chọn ngôn ngữ** — Biểu tượng quả cầu trong tiêu đề để chuyển đổi theo thời gian thực - -</details> - -<details> -<summary><b>🔄 13. "Tôi cần nhiều hơn là trò chuyện — Tôi cần nội dung nhúng, hình ảnh, âm thanh"</b></summary> - -AI không chỉ hoàn thành cuộc trò chuyện. Nhà phát triển cần tạo hình ảnh, phiên âm âm thanh, tạo phần nhúng cho RAG, sắp xếp lại tài liệu và kiểm duyệt nội dung. Mỗi API có điểm cuối và định dạng khác nhau. - -**Cách OmniRoute giải quyết vấn đề này:** - -- **Nhúng** — `/v1/embeddings` với 6 nhà cung cấp và hơn 9 mô hình -- **Tạo hình ảnh** — `/v1/images/generations` với 10 nhà cung cấp và hơn 20 mô hình (OpenAI, xAI, Together, Fireworks, Nebius, Hyperbolic, NanoBanana, AntiGravity, SD WebUI, ComfyUI) -- **Chuyển văn bản thành video** — `/v1/videos/generations` — ComfyUI (AnimateDiff, SVD) và SD WebUI -- **Chuyển văn bản thành nhạc** — `/v1/music/generations` — ComfyUI (Mở âm thanh ổn định, MusicGen) -- **Phiên âm âm thanh** — `/v1/audio/transcriptions` — Whisper + Nvidia NIM, HuggingFace, Qwen3 -- **Chuyển văn bản thành giọng nói** — `/v1/audio/speech` — ElevenLabs, Nvidia NIM, HuggingFace, Coqui, Tortoise, Qwen3, **Inworld**, **Cartesia**, **PlayHT**, + các nhà cung cấp hiện có -- **Kiểm duyệt** — `/v1/moderations` — Kiểm tra an toàn nội dung -- **Sắp xếp lại** — `/v1/rerank` — Sắp xếp lại mức độ liên quan của tài liệu -- **API phản hồi** — Hỗ trợ đầy đủ `/v1/responses` cho Codex - -</details> - -<details> -<summary><b>🧪 14. "Tôi không có cách nào để kiểm tra và so sánh chất lượng giữa các mẫu"</b></summary> - -Các nhà phát triển muốn biết mô hình nào là tốt nhất cho trường hợp sử dụng của họ — mã, dịch thuật, lý luận — nhưng việc so sánh thủ công rất chậm. Không có công cụ đánh giá tích hợp nào tồn tại. - -**Cách OmniRoute giải quyết vấn đề này:** - -- **Đánh giá LLM** — Bộ thử nghiệm vàng với 10 trường hợp tải sẵn bao gồm lời chào, toán, địa lý, tạo mã, tuân thủ JSON, dịch thuật, đánh dấu, từ chối an toàn -- **4 Chiến lược kết hợp** — `exact`, `contains`, `regex`, `custom` (hàm JS) -- **Băng thử nghiệm sân chơi dịch giả** — Thử nghiệm hàng loạt với nhiều đầu vào và đầu ra dự kiến, so sánh giữa các nhà cung cấp -- **Trình kiểm tra trò chuyện** — Toàn bộ chuyến đi với kết xuất phản hồi trực quan -- **Live Monitor** — Luồng thời gian thực của tất cả các yêu cầu truyền qua proxy - -</details> - -<details> -<summary><b>📈 15. "Tôi cần mở rộng quy mô mà không làm giảm hiệu suất"</b></summary> - -Khi khối lượng yêu cầu tăng lên mà không lưu vào bộ nhớ đệm thì các câu hỏi tương tự sẽ tạo ra chi phí trùng lặp. Nếu không có tính tạm thời, các yêu cầu trùng lặp sẽ bị lãng phí. Giới hạn tỷ lệ cho mỗi nhà cung cấp phải được tôn trọng. - -**Cách OmniRoute giải quyết vấn đề này:** - -- **Bộ nhớ đệm ngữ nghĩa** — Bộ nhớ đệm hai tầng (chữ ký + ngữ nghĩa) giúp giảm chi phí và độ trễ -- **Yêu cầu Idempotency** — Khoảng thời gian loại bỏ trùng lặp 5 giây cho các yêu cầu giống hệt nhau -- **Phát hiện giới hạn tỷ lệ** — RPM của mỗi nhà cung cấp, khoảng cách tối thiểu và theo dõi đồng thời tối đa -- **Giới hạn tỷ lệ có thể chỉnh sửa** — Giá trị mặc định có thể định cấu hình trong Cài đặt → Khả năng phục hồi với tính bền bỉ -- **Bộ đệm xác thực khóa API** — Bộ đệm 3 tầng cho hiệu suất sản xuất -- **Bảng thông tin sức khỏe với phép đo từ xa** — độ trễ p50/p95/p99, số liệu thống kê bộ nhớ đệm, thời gian hoạt động - -</details> - -<details> -<summary><b>🤖 16. "Tôi muốn kiểm soát hành vi của mô hình trên toàn cầu"</b></summary> - -Các nhà phát triển muốn tất cả phản hồi bằng một ngôn ngữ cụ thể, với giọng điệu cụ thể hoặc muốn giới hạn các mã thông báo lý luận. Việc định cấu hình điều này trong mọi công cụ/yêu cầu là không thực tế. - -**Cách OmniRoute giải quyết vấn đề này:** - -- **Tiêm nhắc nhở hệ thống** — Lời nhắc chung được áp dụng cho tất cả các yêu cầu -- **Xác thực ngân sách tư duy** — Kiểm soát phân bổ mã thông báo hợp lý cho mỗi yêu cầu (chuyển qua, tự động, tùy chỉnh, thích ứng) -- **6 Chiến lược định tuyến** — Chiến lược toàn cầu xác định cách phân phối yêu cầu -- **Bộ định tuyến ký tự đại diện** — mẫu `provider/*` định tuyến động tới bất kỳ nhà cung cấp nào -- **Bật/Tắt kết hợp chuyển đổi** — Chuyển đổi kết hợp trực tiếp từ bảng điều khiển -- **Chuyển đổi nhà cung cấp** — Bật/tắt tất cả kết nối cho nhà cung cấp chỉ bằng một cú nhấp chuột -- **Nhà cung cấp bị chặn** — Loại trừ các nhà cung cấp cụ thể khỏi danh sách `/v1/models` - -</details> - -<details> -<summary><b>🧰 17. "Tôi cần các công cụ MCP làm khả năng của sản phẩm hạng nhất"</b></summary> - -Nhiều cổng AI chỉ hiển thị MCP dưới dạng chi tiết triển khai ẩn. Các nhóm cần một lớp hoạt động rõ ràng và dễ quản lý. - -**Cách OmniRoute giải quyết vấn đề này:** - -- MCP xuất hiện trong tab điều hướng bảng điều khiển và giao thức điểm cuối -- Trang quản lý MCP chuyên dụng với quy trình, công cụ, phạm vi và kiểm tra -- Tích hợp sẵn tính năng khởi động nhanh cho `omniroute --mcp` và quá trình giới thiệu ứng dụng khách - -</details> - -<details> -<summary><b>🧠 18. "Tôi cần phối hợp A2A với đường dẫn tác vụ đồng bộ hóa + truyền phát"</b></summary> - -Quy trình làm việc của tổng đài viên cần cả phản hồi trực tiếp và thực thi theo luồng trong thời gian dài với tính năng kiểm soát vòng đời. - -**Cách OmniRoute giải quyết vấn đề này:** - -- Điểm cuối JSON-RPC A2A (`POST /a2a`) với `message/send` và `message/stream` -- Truyền phát SSE với sự lan truyền trạng thái đầu cuối -- API vòng đời tác vụ cho `tasks/get` và `tasks/cancel` - -</details> - -<details> -<summary><b>🛰️ 19. "Tôi cần tình trạng quy trình MCP thực sự, trạng thái không đoán được"</b></summary> - -Các nhóm vận hành cần biết liệu MCP có thực sự tồn tại hay không, chứ không chỉ là liệu API có thể truy cập được hay không. - -**Cách OmniRoute giải quyết vấn đề này:** - -- Tệp nhịp tim thời gian chạy với PID, dấu thời gian, vận chuyển, số lượng công cụ và chế độ phạm vi -- API trạng thái MCP kết hợp nhịp tim + hoạt động gần đây -- Thẻ trạng thái giao diện người dùng về độ mới của quy trình/thời gian hoạt động/nhịp tim - -</details> - -<details> -<summary><b>📋 20. "Tôi cần thực thi công cụ MCP có thể kiểm tra"</b></summary> - -Khi các công cụ thay đổi cấu hình hoặc kích hoạt các hành động vận hành, các nhóm cần truy xuất nguồn gốc pháp lý. - -**Cách OmniRoute giải quyết vấn đề này:** - -- Ghi nhật ký kiểm tra được hỗ trợ bởi SQLite cho các lệnh gọi công cụ MCP -- Bộ lọc theo công cụ, thành công/thất bại, khóa API và phân trang -- Bảng kiểm tra bảng điều khiển + điểm cuối thống kê để tự động hóa - -</details> - -<details> -<summary><b>🔐 21. "Tôi cần quyền MCP trong phạm vi cho mỗi lần tích hợp"</b></summary> - -Các khách hàng khác nhau phải có quyền truy cập ít đặc quyền nhất vào các danh mục công cụ. - -**Cách OmniRoute giải quyết vấn đề này:** - -- 9 phạm vi MCP chi tiết để truy cập công cụ được kiểm soát -- Thực thi phạm vi và khả năng hiển thị trong giao diện người dùng quản lý MCP -- Tư thế mặc định an toàn cho dụng cụ vận hành - -</details> - -<details> -<summary><b>⚙️ 22. "Tôi cần kiểm soát hoạt động mà không cần triển khai lại"</b></summary> - -Các nhóm cần thay đổi thời gian chạy nhanh trong các sự cố hoặc sự kiện tốn kém. - -**Cách OmniRoute giải quyết vấn đề này:** - -- Chuyển đổi kích hoạt kết hợp trực tiếp từ bảng điều khiển MCP -- Áp dụng hồ sơ khả năng phục hồi từ các gói chính sách được xác định trước -- Đặt lại trạng thái ngắt mạch từ cùng bảng vận hành - -</details> - -<details> -<summary><b>🔄 23. "Tôi cần khả năng hiển thị và hủy vòng đời nhiệm vụ A2A trực tiếp"</b></summary> - -Nếu không có khả năng hiển thị vòng đời, các sự cố trong nhiệm vụ sẽ khó phân loại. - -**Cách OmniRoute giải quyết vấn đề này:** - -- Liệt kê/lọc nhiệm vụ theo trạng thái/kỹ năng với phân trang -- Xem chi tiết về siêu dữ liệu, sự kiện và hiện vật của nhiệm vụ -- Điểm cuối hủy tác vụ và hành động UI có xác nhận - -</details> - -<details> -<summary><b>🌊 24. "Tôi cần số liệu luồng hoạt động cho tải A2A"</b></summary> - -Luồng công việc phát trực tuyến yêu cầu hiểu biết sâu sắc về hoạt động đồng thời và kết nối trực tiếp. - -**Cách OmniRoute giải quyết vấn đề này:** - -- Bộ đếm luồng hoạt động được tích hợp vào trạng thái A2A -- Dấu thời gian nhiệm vụ cuối cùng và số lượng trên mỗi trạng thái -- Thẻ bảng điều khiển A2A để theo dõi hoạt động theo thời gian thực - -</details> - -<details> -<summary><b>🪪 25. "Tôi cần khám phá tác nhân tiêu chuẩn cho khách hàng"</b></summary> - -Máy khách và người điều phối bên ngoài cần siêu dữ liệu có thể đọc được bằng máy để triển khai. - -**Cách OmniRoute giải quyết vấn đề này:** - -- Thẻ đại lý bị lộ tại `/.well-known/agent.json` -- Khả năng và kỹ năng thể hiện trong UI quản lý -- API trạng thái A2A bao gồm siêu dữ liệu khám phá để tự động hóa - -</details> - -<details> -<summary><b>🧭 26. "Tôi cần khả năng khám phá giao thức trong UX sản phẩm"</b></summary> - -Nếu người dùng không thể khám phá các bề mặt giao thức, chất lượng chấp nhận và hỗ trợ sẽ giảm. - -**Cách OmniRoute giải quyết vấn đề này:** - -- Trang **Điểm cuối** được hợp nhất với các tab dành cho Điểm cuối Proxy, MCP, A2A và API -- Chuyển đổi trạng thái dịch vụ nội tuyến (Trực tuyến/Ngoại tuyến) cho MCP và A2A -- Liên kết từ tổng quan đến các tab quản lý chuyên dụng - -</details> - -<details> -<summary><b>🧪 27. "Tôi cần xác thực giao thức end-to-end với khách hàng thực"</b></summary> - -Các thử nghiệm mô phỏng không đủ để xác thực tính tương thích của giao thức trước khi phát hành. - -**Cách OmniRoute giải quyết vấn đề này:** - -- Bộ E2E khởi động ứng dụng và sử dụng vận chuyển máy khách MCP SDK thực -- Máy khách A2A kiểm tra các luồng khám phá, gửi, truyền phát, nhận và hủy -- Kiểm tra chéo các xác nhận đối với kiểm tra MCP và API nhiệm vụ A2A - -</details> - -<details> -<summary><b>📡 28. "Tôi cần khả năng quan sát thống nhất trên tất cả các giao diện"</b></summary> - -Việc phân chia khả năng quan sát theo giao thức sẽ tạo ra các điểm mù và MTTR dài hơn. - -**Cách OmniRoute giải quyết vấn đề này:** - -- Bảng điều khiển/nhật ký/phân tích thống nhất trong một sản phẩm -- Sức khỏe + kiểm toán + yêu cầu đo từ xa trên các lớp OpenAI, MCP và A2A -- API hoạt động cho trạng thái và tự động hóa - -</details> - -<details> -<summary><b>💼 29. "Tôi cần một thời gian chạy cho proxy + công cụ + điều phối tác nhân"</b></summary> - -Việc chạy nhiều dịch vụ riêng biệt làm tăng chi phí vận hành và các chế độ lỗi. - -**Cách OmniRoute giải quyết vấn đề này:** - -- Proxy tương thích với OpenAI, máy chủ MCP và máy chủ A2A trong một ngăn xếp -- Chia sẻ xác thực, khả năng phục hồi, lưu trữ dữ liệu và khả năng quan sát -- Mô hình chính sách nhất quán trên tất cả các bề mặt tương tác - -</details> - -<details> -<summary><b>🚀 30. "Tôi cần gửi quy trình công việc tổng thể mà không cần sử dụng quá nhiều mã keo"</b></summary> - -Các nhóm bị mất tốc độ khi kết hợp nhiều dịch vụ và tập lệnh đặc biệt. - -**Cách OmniRoute giải quyết vấn đề này:** - -- Chiến lược điểm cuối thống nhất cho khách hàng và đại lý -- Giao diện người dùng quản lý giao thức tích hợp và đường dẫn xác thực khói -- Nền tảng sẵn sàng sản xuất (bảo mật, ghi nhật ký, khả năng phục hồi, sao lưu) - -</details> - -### Sách hướng dẫn ví dụ (Trường hợp sử dụng tích hợp) - -**Playbook A: Tối đa hóa đăng ký trả phí + dự phòng giá rẻ** - -```txt -Combo: "maximize-claude" - 1. cc/claude-opus-4-6 - 2. glm/glm-4.7 - 3. if/kimi-k2-thinking - -Monthly cost: $20 + small backup spend -Outcome: higher quality, near-zero interruption -``` - -**Playbook B: Ngăn xếp mã hóa không tốn phí** - -```txt -Combo: "free-forever" - 1. gc/gemini-3-flash - 2. if/kimi-k2-thinking - 3. qw/qwen3-coder-plus - -Monthly cost: $0 -Outcome: stable free coding workflow -``` - -**Playbook C: chuỗi dự phòng luôn hoạt động 24/7** - -```txt -Combo: "always-on" - 1. cc/claude-opus-4-6 - 2. cx/gpt-5.2-codex - 3. glm/glm-4.7 - 4. minimax/MiniMax-M2.1 - 5. if/kimi-k2-thinking - -Outcome: deep fallback depth for deadline-critical workloads -``` - -**Playbook D: Tác nhân hoạt động với MCP + A2A** - -```txt -1) Start MCP transport (`omniroute --mcp`) for tool-driven operations -2) Run A2A tasks via `message/send` and `message/stream` -3) Observe via /dashboard/endpoint (MCP and A2A tabs) -4) Toggle services via inline status controls -``` - ---- - -## 🆓 Bắt đầu miễn phí - Chi phí cấu hình bằng 0 - -> Thiết lập mã hóa AI trong vài phút với mức **$0/tháng**. Kết nối các tài khoản miễn phí này và sử dụng combo **Free Stack** tích hợp sẵn. - -| Bước | Hành động | Nhà cung cấp đã được mở khóa | -| ---- | ---------------------------------------------------- | ---------------------------------------------------------------------- | -| 1 | Kết nối **Kiro** (ID AWS Builder OAuth) | Claude Sonnet 4.5, Haiku 4.5 — **không giới hạn** | -| 2 | Kết nối **Qoder** (Google OAuth) | kimi-k2-thinking, qwen3-code-plus, deepseek-r1... — **không giới hạn** | -| 3 | Kết nối **Qwen** (Mã thiết bị) | qwen3-code-plus, qwen3-code-flash... — **không giới hạn** | -| 4 | Kết nối **Gemini CLI** (Google OAuth) | gemini-3-flash, gemini-2.5-pro — **180K/tháng miễn phí** | -| 5 | `/dashboard/combos` → **Mẫu ngăn xếp miễn phí ($0)** | Tự động quay vòng tất cả các nhà cung cấp miễn phí | - -**Trỏ bất kỳ IDE/CLI nào tới:** `http://localhost:20128/v1` · Khóa API: `any-string` · Xong. - -> **Phạm vi phủ sóng bổ sung tùy chọn (cũng miễn phí):** Khóa API Groq (miễn phí 30 RPM), NVIDIA NIM (miễn phí 40 RPM, hơn 70 mẫu), Cerebras (1 triệu tok/ngày), khóa API LongCat (50 triệu mã thông báo/ngày!), Cloudflare Workers AI (10K nơ-ron/ngày, hơn 50 mô hình). - -## ⚡ Bắt đầu nhanh - -### 1) Cài đặt và chạy - -```bash -npm install -g omniroute -omniroute -``` - -> **người dùng pnpm:** Chạy `pnpm approve-builds -g` sau khi cài đặt để bật tập lệnh bản dựng gốc được yêu cầu bởi `better-sqlite3` và `@swc/core`: -> -> ```bash -> pnpm install -g omniroute -> pnpm approve-builds -g # Select all packages → approve -> omniroute -> ``` - -Trang tổng quan mở tại `http://localhost:20128` và URL cơ sở API là `http://localhost:20128/v1`. - -| Lệnh | Mô tả | -| ----------------------- | --------------------------------------------------------------------------- | -| `omniroute` | Khởi động máy chủ (`PORT=20128`, API và bảng điều khiển trên cùng một cổng) | -| `omniroute --port 3000` | Đặt cổng chuẩn/API thành 3000 | -| `omniroute --mcp` | Khởi động máy chủ MCP (stdio Transport) | -| `omniroute --no-open` | Không tự động mở trình duyệt | -| `omniroute --help` | Hiển thị trợ giúp | - -Chế độ chia cổng tùy chọn: - -```bash -PORT=20128 DASHBOARD_PORT=20129 omniroute -# API: http://localhost:20128/v1 -# Dashboard: http://localhost:20129 -``` - -### 2) Kết nối nhà cung cấp và tạo khóa API của bạn - -1. Mở Trang tổng quan → `Providers` và kết nối ít nhất một nhà cung cấp (khóa OAuth hoặc API). -2. Mở Trang tổng quan → `Endpoints` và tạo khóa API. -3. (Tùy chọn) Mở Trang tổng quan → `Combos` và đặt chuỗi dự phòng của bạn. - -### 3) Trỏ công cụ mã hóa của bạn tới OmniRoute - -```txt -Base URL: http://localhost:20128/v1 -API Key: [copy from Endpoint page] -Model: if/kimi-k2-thinking (or any provider/model prefix) -``` - -Hoạt động với Claude Code, Codex CLI, Gemini CLI, Cursor, Cline, OpenClaw, OpenCode và SDK tương thích với OpenAI. - -### 4) Kích hoạt và xác thực các giao thức (v2.0) - -**MCP (đối với các hoạt động điều khiển bằng công cụ):** - -```bash -omniroute --mcp -``` - -Sau đó kết nối ứng dụng khách MCP của bạn qua `stdio` và kiểm tra các công cụ như: - -- `omniroute_get_health` -- `omniroute_list_combos` - -**A2A (dành cho quy trình làm việc giữa các đại lý):** - -```bash -curl http://localhost:20128/.well-known/agent.json -``` - -```bash -curl -X POST http://localhost:20128/a2a \ - -H 'content-type: application/json' \ - -d '{"jsonrpc":"2.0","id":"quickstart","method":"message/send","params":{"skill":"quota-management","messages":[{"role":"user","content":"Give me a short quota summary."}]}}' -``` - -### 5) Xác thực mọi thứ từ đầu đến cuối (được khuyến nghị) - -```bash -npm run test:protocols:e2e -``` - -Bộ phần mềm này xác thực các luồng ứng dụng khách MCP và A2A thực dựa trên ứng dụng đang chạy. - -### Cách khác: chạy từ nguồn - -```bash -cp .env.example .env -npm install -PORT=20128 DASHBOARD_PORT=20129 NEXT_PUBLIC_BASE_URL=http://localhost:20129 npm run dev -``` - ---- - -## 🐳 Docker - -OmniRoute có sẵn dưới dạng hình ảnh Docker công khai trên [Docker Hub](https://hub.docker.com/r/diegosouzapw/omniroute). - -**Chạy nhanh:** - -```bash -docker run -d \ - --name omniroute \ - --restart unless-stopped \ - -p 20128:20128 \ - -v omniroute-data:/app/data \ - diegosouzapw/omniroute:latest -``` - -**Với tệp môi trường:** - -```bash -# Copy and edit .env first -cp .env.example .env - -docker run -d \ - --name omniroute \ - --restart unless-stopped \ - --env-file .env \ - -p 20128:20128 \ - -v omniroute-data:/app/data \ - diegosouzapw/omniroute:latest -``` - -**Sử dụng Docker Compose:** - -```bash -# Base profile (no CLI tools) -docker compose --profile base up -d - -# CLI profile (Claude Code, Codex, OpenClaw built-in) -docker compose --profile cli up -d -``` - -| Hình ảnh | Gắn thẻ | Kích thước | Mô tả | -| ------------------------ | -------- | ---------- | ------------------------------ | -| `diegosouzapw/omniroute` | `latest` | ~250MB | Bản phát hành ổn định mới nhất | -| `diegosouzapw/omniroute` | `1.0.3` | ~250MB | Phiên bản hiện tại | - ---- - -## 🖥️ Ứng dụng dành cho máy tính để bàn — Ngoại tuyến & Luôn bật - -> 🆕 **MỚI!** OmniRoute hiện có sẵn dưới dạng **ứng dụng máy tính để bàn gốc** dành cho Windows, macOS và Linux. - -Chạy OmniRoute dưới dạng một ứng dụng máy tính để bàn độc lập — không cần thiết bị đầu cuối, không cần trình duyệt, không cần Internet đối với các mô hình cục bộ. Ứng dụng dựa trên Electron bao gồm: - -- 🖥️ **Cửa sổ gốc** — Cửa sổ ứng dụng chuyên dụng có tích hợp khay hệ thống -- 🔄 **Tự động khởi động** — Khởi chạy OmniRoute khi đăng nhập hệ thống -- 🔔 **Thông báo gốc** — Nhận thông báo về tình trạng cạn kiệt hạn ngạch hoặc các vấn đề về nhà cung cấp -- ⚡ **Cài đặt bằng một cú nhấp chuột** — NSIS (Windows), DMG (macOS), AppImage (Linux) -- 🌐 **Chế độ ngoại tuyến** — Hoạt động hoàn toàn ngoại tuyến với máy chủ đi kèm - -### Bắt đầu nhanh - -```bash -# Development mode -npm run electron:dev - -# Build for your platform -npm run electron:build # Current platform -npm run electron:build:win # Windows (.exe) -npm run electron:build:mac # macOS (.dmg) — x64 & arm64 -npm run electron:build:linux # Linux (.AppImage) -``` - -### Khay hệ thống - -Khi được thu nhỏ, OmniRoute sẽ tồn tại trong khay hệ thống của bạn bằng các hành động nhanh chóng: - -- Mở bảng điều khiển -- Thay đổi cổng máy chủ -- Thoát khỏi ứng dụng - -📖 Tài liệu đầy đủ: [**OMNI_TOKEN_153**](electron/README.md) - ---- - -## 💰 Sơ lược về giá - -| Bậc | Nhà cung cấp | Chi phí | Đặt lại hạn ngạch | Tốt nhất cho | -| --------------- | --------------------------- | -------------------------------- | ---------------------- | ----------------------------------------- | -| **💳 ĐĂNG KÝ** | Mã Claude (Pro) | $20/tháng | 5h + hàng tuần | Đã đăng ký | -| | Codex (Plus/Pro) | $20-200/tháng | 5h + hàng tuần | Người dùng OpenAI | -| | Song Tử CLI | **MIỄN PHÍ** | 180K/tháng + 1K/ngày | Mọi người! | -| | Phi công phụ GitHub | $10-19/tháng | Hàng tháng | Người dùng GitHub | -| **🔑 KHÓA API** | NVIDIA NIM | **MIỄN PHÍ** (dev mãi mãi) | ~40 vòng/phút | Hơn 70 mô hình mở | -| | Não | **MIỄN PHÍ** (1 triệu tok/ngày) | 60K TPM / 30 vòng/phút | Nhanh nhất thế giới | -| | Groq | **MIỄN PHÍ** (30 vòng/phút) | 14,4K RPD | Llama/Gemma cực nhanh | -| | DeepSeek V3.2 | 0,27 USD/1,10 USD mỗi 1 triệu | Không có | Lý luận về giá/chất lượng tốt nhất | -| | xAI Grok-4 Nhanh | **$0,20/$0,50 mỗi 1 triệu** 🆕 | Không có | Gọi công cụ + nhanh nhất, cực nhanh | -| | xAI Grok-4 (tiêu chuẩn) | 0,20 USD/1,50 USD mỗi 1 triệu 🆕 | Không có | Lý luận hàng đầu từ xAI | -| | Mistral | Dùng thử miễn phí + trả phí | Tỷ lệ giới hạn | AI Châu Âu | -| | OpenRouter | Trả tiền cho mỗi lần sử dụng | Không có | Tổng hợp hơn 100 mô hình | -| **💰 RẺ** | GLM-5 (thông qua Z.AI) 🆕 | 0,5 USD/1 triệu USD | 10 giờ sáng hàng ngày | Đầu ra 128K, chiếc hạm mới nhất | -| | GLM-4.7 | 0,6 USD/1 triệu USD | 10 giờ sáng hàng ngày | Dự phòng ngân sách | -| | MiniMax M2.5 🆕 | 0,3 USD/đầu vào 1 triệu USD | lăn 5 giờ | Lý luận + nhiệm vụ tác nhân | -| | MiniMax M2.1 | 0,2 USD/1 triệu USD | lăn 5 giờ | Lựa chọn rẻ nhất | -| | Kimi K2.5 (API Moonshot) 🆕 | Trả tiền cho mỗi lần sử dụng | Không có | Truy cập API Moonshot trực tiếp | -| | Kimi K2 | $9/tháng căn hộ | 10 triệu token/tháng | Chi phí dự đoán | -| **🆓 MIỄN PHÍ** | Qoder | **$0** | Không giới hạn | 5 mẫu không giới hạn | -| | Qwen | **$0** | Không giới hạn | 4 mẫu không giới hạn | -| | Kiro | **$0** | Không giới hạn | Claude Sonnet/Haiku (Người xây dựng AWS) | -| | LongCat Flash-Lite 🆕 | **$0** (50 triệu tok/ngày 🔥) | 1 RPS | Hạn ngạch miễn phí lớn nhất trên Trái đất | -| | Thụ phấn AI 🆕 | **$0** (không cần chìa khóa) | 1 yêu cầu/15 giây | GPT-5, Claude, DeepSeek, Llama 4 | -| | Cloudflare Workers AI 🆕 | **$0** (10K nơ-ron/ngày) | ~150 lần/ngày | Hơn 50 mẫu, lợi thế toàn cầu | -| | Đường quy mô AI 🆕 | **$0** (Tổng số 1 triệu token) | Tỷ lệ giới hạn | EU/GDPR, Qwen3 235B, Llama 70B | - -> 🆕 **Thêm các mẫu mới (tháng 3 năm 2026):** Dòng Grok-4 Fast ở mức 0,20 USD/0,50 USD/M (điểm chuẩn ở 1143 mili giây — nhanh hơn 30% so với Gemini 2.5 Flash), GLM-5 qua Z.AI với đầu ra 128K, lý luận MiniMax M2.5, giá cập nhật DeepSeek V3.2, Kimi K2.5 qua API trực tiếp Moonshot. - -**💡 Ngăn xếp combo $0 — Thiết lập miễn phí hoàn chỉnh:** - -``` -# 🆓 Ultimate Free Stack 2026 — 11 Providers, $0 Forever -Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED -LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 -Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed -Qwen (qw/) → qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next UNLIMITED -Gemini (gemini/) → Gemini 2.5 Flash — 1,500 req/day free API key -Cloudflare AI (cf/) → Llama 70B, Gemma 3, Mistral — 10K Neurons/day -Scaleway (scw/) → Qwen3 235B, Llama 70B — 1M free tokens (EU) -Groq (groq/) → Llama/Gemma ultra-fast — 14.4K req/day -NVIDIA NIM (nvidia/) → 70+ open models — 40 RPM forever -Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day -``` - -** Không tốn phí. Không bao giờ ngừng mã hóa.** Định cấu hình tính năng này dưới dạng một tổ hợp OmniRoute và tất cả các dự phòng sẽ tự động diễn ra — không cần chuyển đổi thủ công. - ---- - ---- - -## 🆓 Mô hình miễn phí — Những gì bạn thực sự nhận được - -> Tất cả các mẫu bên dưới đều **miễn phí 100% và không cần thẻ tín dụng**. OmniRoute tự động định tuyến giữa chúng khi hết một hạn mức — kết hợp tất cả chúng để tạo thành một combo $0 không thể phá vỡ. - -### 🔵 MÔ HÌNH CLAUDE (thông qua Kiro — ID AWS Builder) - -| Người mẫu | Tiền tố | Giới hạn | Giới hạn tỷ lệ | -| ------------------- | ------- | ------------------ | ---------------------------------------- | -| `claude-sonnet-4.5` | `kr/` | **Không giới hạn** | Không có giới hạn hàng ngày được báo cáo | -| `claude-haiku-4.5` | `kr/` | **Không giới hạn** | Không có giới hạn hàng ngày được báo cáo | -| `claude-opus-4.6` | `kr/` | **Không giới hạn** | Opus mới nhất qua Kiro | - -### 🟢 MÔ HÌNH QODER (OAuth miễn phí - Không có thẻ tín dụng) - -| Người mẫu | Tiền tố | Giới hạn | Giới hạn tỷ lệ | -| ------------------ | ------- | ------------------ | ------------------------------ | -| `kimi-k2-thinking` | `if/` | **Không giới hạn** | Không có giới hạn được báo cáo | -| `qwen3-coder-plus` | `if/` | **Không giới hạn** | Không có giới hạn được báo cáo | -| `deepseek-r1` | `if/` | **Không giới hạn** | Không có giới hạn được báo cáo | -| `minimax-m2.1` | `if/` | **Không giới hạn** | Không có giới hạn được báo cáo | -| `kimi-k2` | `if/` | **Không giới hạn** | Không có giới hạn được báo cáo | - -### 🟡 MÔ HÌNH QWEN (Xác thực mã thiết bị) - -| Người mẫu | Tiền tố | Giới hạn | Giới hạn tỷ lệ | -| ------------------- | ------- | ------------------ | ------------------------------ | -| `qwen3-coder-plus` | `qw/` | **Không giới hạn** | Không có giới hạn được báo cáo | -| `qwen3-coder-flash` | `qw/` | **Không giới hạn** | Không có giới hạn được báo cáo | -| `qwen3-coder-next` | `qw/` | **Không giới hạn** | Không có giới hạn được báo cáo | -| `vision-model` | `qw/` | **Không giới hạn** | Đa phương thức (hình ảnh) | - -### 🟣 GEMINI CLI (Google OAuth) - -| Người mẫu | Tiền tố | Giới hạn | Giới hạn tỷ lệ | -| ------------------------ | ------- | ---------------------------- | ------------------ | -| `gemini-3-flash-preview` | `gc/` | **180K tok/tháng** + 1K/ngày | Đặt lại hàng tháng | -| `gemini-2.5-pro` | `gc/` | 180K/tháng (nhóm chung) | Chất lượng cao | - -### ⚫ NVIDIA NIM (Khóa API miễn phí - build.nvidia.com) - -| Bậc | Giới hạn hàng ngày | Giới hạn tỷ lệ | Ghi chú | -| ------------------------- | ------------------------------ | ----------------- | --------------------------------------------------------------------- | -| Miễn phí (Nhà phát triển) | Không có giới hạn mã thông báo | **~40 vòng/phút** | Hơn 70 mẫu; chuyển sang giới hạn lãi suất thuần túy vào giữa năm 2025 | - -Các mẫu miễn phí phổ biến: `moonshotai/kimi-k2.5` (Kimi K2.5), `z-ai/glm4.7` (GLM 4.7), `deepseek-ai/deepseek-v3.2` (DeepSeek V3.2), `nvidia/llama-3.3-70b-instruct`, `deepseek/deepseek-r1` - -### ⚪ CEREBRAS (Khóa API miễn phí — inference.cerebras.ai) - -| Bậc | Giới hạn hàng ngày | Giới hạn tỷ lệ | Ghi chú | -| -------- | ---------------------- | ---------------------- | --------------------------------------------------- | -| Miễn phí | **1 triệu token/ngày** | 60K TPM / 30 vòng/phút | Suy luận LLM nhanh nhất thế giới; đặt lại hàng ngày | - -Có sẵn miễn phí: `llama-3.3-70b`, `llama-3.1-8b`, `deepseek-r1-distill-llama-70b` - -### 🔴 GROQ (Khóa API miễn phí — console.groq.com) - -| Bậc | Giới hạn hàng ngày | Giới hạn tỷ lệ | Ghi chú | -| -------- | ------------------ | ------------------------ | ------------------------------------------------------ | -| Miễn phí | **14,4K RPD** | 30 vòng/phút cho mỗi mẫu | Không có thẻ tín dụng; Giới hạn 429, không bị tính phí | - -Có sẵn miễn phí: `llama-3.3-70b-versatile`, `gemma2-9b-it`, `mixtral-8x7b`, `whisper-large-v3` - -### 🔴 LONGCAT AI (Khóa API miễn phí - longcat.chat) 🆕 - -| Người mẫu | Tiền tố | Hạn ngạch miễn phí hàng ngày | Ghi chú | -| ----------------------------- | ------- | ---------------------------- | ---------------------------------------------- | -| `LongCat-Flash-Lite` | `lc/` | **50 triệu token** 🔥 | Hạn ngạch miễn phí lớn nhất từ ​​trước đến nay | -| `LongCat-Flash-Chat` | `lc/` | 500K token | Trò chuyện nhiều lượt | -| `LongCat-Flash-Thinking` | `lc/` | 500K token | Lý luận / CoT | -| `LongCat-Flash-Thinking-2601` | `lc/` | 500K token | Phiên bản tháng 1 năm 2026 | -| `LongCat-Flash-Omni-2603` | `lc/` | 500K token | Đa phương thức | - -> Miễn phí 100% khi ở phiên bản beta công khai. Đăng ký tại [longcat.chat](https://longcat.chat) bằng email hoặc điện thoại. Đặt lại 00:00 UTC hàng ngày. - -### 🟢 THỤ CẤP AI (Không cần khóa API) 🆕 - -| Người mẫu | Tiền tố | Giới hạn tỷ lệ | Nhà cung cấp đằng sau | -| ---------- | ------- | ----------------- | ---------------------- | -| `openai` | `pol/` | 1 yêu cầu/15 giây | GPT-5 | -| `claude` | `pol/` | 1 yêu cầu/15 giây | Claude nhân loại | -| `gemini` | `pol/` | 1 yêu cầu/15 giây | Google Song Tử | -| `deepseek` | `pol/` | 1 yêu cầu/15 giây | DeepSeek V3 | -| `llama` | `pol/` | 1 yêu cầu/15 giây | Hướng đạo Meta Llama 4 | -| `mistral` | `pol/` | 1 yêu cầu/15 giây | AI của Mistral | - -> ✨ **Không ma sát:** Không cần đăng ký, không cần khóa API. Thêm nhà cung cấp Pollinations với trường khóa trống và nó sẽ hoạt động ngay lập tức. - -### 🟠 NHÂN VIÊN CLOUDFLARE AI (Khóa API miễn phí - cloudflare.com) 🆕 - -| Bậc | Tế bào thần kinh hàng ngày | Cách sử dụng tương đương | Ghi chú | -| -------- | -------------------------- | -------------------------------------------------- | ------------------------- | -| Miễn phí | **10.000** | ~150 LLM resp / âm thanh 500 giây / 15K lượt nhúng | Cạnh toàn cầu, hơn 50 mẫu | - -Các mẫu miễn phí phổ biến: `@cf/meta/llama-3.3-70b-instruct`, `@cf/google/gemma-3-12b-it`, `@cf/openai/whisper-large-v3-turbo` (âm thanh miễn phí!), `@cf/qwen/qwen2.5-coder-15b-instruct` - -> Yêu cầu Mã thông báo API + ID tài khoản từ [dash.cloudflare.com](https://dash.cloudflare.com). Lưu trữ ID tài khoản trong cài đặt nhà cung cấp. - -### 🟣 SCALEWAY AI (Mã thông báo miễn phí 1 triệu —scaleway.com) 🆕 - -| Bậc | Hạn ngạch miễn phí | Vị trí | Ghi chú | -| -------- | ------------------ | ------------ | ------------------------------------- | -| Miễn phí | **1 triệu token** | 🇫🇷 Paris, EU | Không cần thẻ tín dụng trong giới hạn | - -Có sẵn miễn phí: `qwen3-235b-a22b-instruct-2507` (Qwen3 235B!), `llama-3.1-70b-instruct`, `mistral-small-3.2-24b-instruct-2506`, `deepseek-v3-0324` - -> Tuân thủ EU/GDPR. Nhận khóa API tại [console.scaleway.com](https://console.scaleway.com). - -> **💡 Kho miễn phí tối ưu (11 nhà cung cấp, $0 vĩnh viễn):** -> -> ``` -> Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED -> Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED -> LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 -> Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed -> Qwen (qw/) → qwen3-coder models UNLIMITED -> Gemini (gemini/) → Gemini 2.5 Flash — 1,500 req/day free -> Cloudflare AI (cf/) → 50+ models — 10K Neurons/day -> Scaleway (scw/) → Qwen3 235B, Llama 70B — 1M free tokens (EU) -> Groq (groq/) → Llama/Gemma — 14.4K req/day ultra-fast -> NVIDIA NIM (nvidia/) → 70+ open models — 40 RPM forever -> Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day -> ``` - -## 🎙️ Combo phiên âm miễn phí - -> Phiên âm mọi âm thanh/video với giá **$0** — Deepgram dẫn đầu với 200 USD miễn phí, dự phòng AssemblyAI 50 USD, Groq Whisper làm bản sao lưu khẩn cấp không giới hạn. - -| Nhà cung cấp | Tín dụng miễn phí | Người Mẫu Tốt Nhất | Giới hạn tỷ lệ | -| ------------------ | --------------------------- | ------------------------------------------------- | ----------------------------------------------- | -| 🟢 **Deepgram** | **$200 miễn phí** (đăng ký) | `nova-3` — độ chính xác tốt nhất, hơn 30 ngôn ngữ | Không có giới hạn RPM đối với tín dụng miễn phí | -| 🔵 **HộiAI** | **$50 miễn phí** (đăng ký) | `universal-3-pro` — chương, tình cảm, PII | Không có giới hạn RPM đối với tín dụng miễn phí | -| 🔴 **Ngốc nghếch** | **Miễn phí mãi mãi** | `whisper-large-v3` — Lời thì thầm của OpenAI | 30 vòng/phút (tốc độ giới hạn) | - -**Kết hợp được đề xuất trong `/dashboard/combos`:** - -``` -Name: free-transcription -Strategy: Priority -Nodes: - [1] deepgram/nova-3 → uses $200 free first - [2] assemblyai/universal-3-pro → fallback when Deepgram credits run out - [3] groq/whisper-large-v3 → free forever, emergency fallback -``` - -Sau đó, trong tab `/dashboard/media` → **Phiên âm**: tải lên bất kỳ tệp âm thanh hoặc video nào → chọn điểm cuối kết hợp của bạn → nhận phiên âm ở các định dạng được hỗ trợ. - -## 💡 Tính năng chính - -OmniRoute v2.0 được xây dựng như một nền tảng hoạt động, không chỉ là proxy chuyển tiếp. - -### 🆕 Mới — Cải tiến lấy cảm hứng từ ClawRouter (Tháng 3 năm 2026) - -| Tính năng | Nó làm gì | -| ------------------------------------------ | --------------------------------------------------------------------------------------------------------------- | -| ⚡ **Gia đình nhanh Grok-4** | mô hình xAI ở mức 0,20 USD/0,50 USD/M — tốc độ chuẩn là 1143 mili giây (nhanh hơn 30% so với Gemini 2.5 Flash) | -| 🧠 **GLM-5 qua Z.AI** | Bối cảnh đầu ra 128K, 0,5 USD/1 triệu USD — sản phẩm chủ lực mới nhất của dòng GLM | -| 🔮 **MiniMax M2.5** | Lý luận + nhiệm vụ tác nhân ở mức 0,30 USD/1 triệu — nâng cấp đáng kể từ M2.1 | -| 🎯 **công cụCờ gọi theo mẫu** | Mỗi mô hình `toolCalling: true/false` trong sổ đăng ký — AutoCombo bỏ qua các mô hình không hỗ trợ công cụ | -| 🌍 **Phát hiện ý định đa ngôn ngữ** | Từ khóa PT/ZH/ES/AR trong tính điểm AutoCombo — lựa chọn mô hình tốt hơn cho nội dung không phải tiếng Anh | -| 📊 **Dự phòng dựa trên điểm chuẩn** | Độ trễ p95 thực từ tính điểm kết hợp nguồn cấp dữ liệu yêu cầu trực tiếp — AutoCombo học hỏi từ dữ liệu thực tế | -| 🔁 **Yêu cầu loại bỏ trùng lặp** | Cửa sổ khấu trừ dựa trên hàm băm nội dung — an toàn cho nhiều tác nhân, ngăn chặn các khoản phí trùng lặp | -| 🔌 **Chiến lược bộ định tuyến có thể cắm** | Giao diện `RouterStrategy` có thể mở rộng — thêm logic định tuyến tùy chỉnh làm plugin | - -### 🚀 Phiên bản trước 2.0.9+ — Sân chơi, Dấu vân tay CLI & ACP - -| Tính năng | Nó làm gì | -| ----------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 🎮 **Model Playground** | Trang tổng quan để kiểm tra trực tiếp bất kỳ mô hình nào — bộ chọn nhà cung cấp/mô hình/điểm cuối, Trình chỉnh sửa Monaco, phát trực tuyến, hủy bỏ, tính thời gian | -| 🔏 **Khớp vân tay CLI** | Thứ tự tiêu đề/nội dung của mỗi nhà cung cấp để khớp với chữ ký CLI gốc — chuyển đổi cho mỗi nhà cung cấp trong Cài đặt > Bảo mật. **IP proxy của bạn được giữ nguyên** | -| 🤝 **Hỗ trợ ACP (Giao thức khách hàng đại lý)** | Khám phá tác nhân CLI (Codex, Claude, Goose, Gemini CLI, OpenClaw + 9 cái khác), trình sinh ra quy trình, điểm cuối `/api/acp/agents` | -| 🤖 **Bảng thông tin đại lý ACP** | Trang Gỡ lỗi > Tác nhân — lưới gồm 14 tác nhân với trạng thái cài đặt, phiên bản, biểu mẫu tác nhân tùy chỉnh cho bất kỳ công cụ CLI nào. **Người dùng OpenCode** nhận được nút "Tải xuống opencode.json" để tự động tạo cấu hình sẵn sàng sử dụng với tất cả các mẫu có sẵn. | -| 🔧 **Mô hình tùy chỉnh `apiFormat` Định tuyến** | Các mô hình tùy chỉnh với `apiFormat: "responses"` hiện định tuyến chính xác tới trình dịch API phản hồi | -| 🏢 **Cách ly không gian làm việc Codex** | Nhiều không gian làm việc Codex cho mỗi email - OAuth phân tách chính xác các kết nối theo ID không gian làm việc | -| 🔄 **Tự động cập nhật điện tử** | Ứng dụng máy tính để bàn kiểm tra các bản cập nhật + tự động cài đặt khi khởi động lại | - -### 🤖 Hoạt động đại lý & giao thức (v2.0) - -| Tính năng | Nó làm gì | -| ----------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | -| 🔧 **Máy chủ MCP (16 công cụ)** | Công cụ IDE/agent thông qua 3 phương thức truyền tải: stdio, SSE (`/api/mcp/sse`), HTTP có thể phát trực tuyến (`/api/mcp/stream`) | -| 🤝 **Máy chủ A2A (JSON-RPC + SSE)** | Thực thi nhiệm vụ giữa các tác nhân với các luồng đồng bộ hóa và truyền phát | -| 🧭 **Trang điểm cuối tổng hợp** | Trang quản lý theo thẻ với các tab Endpoint Proxy, MCP, A2A và API Endpoints | -| 🎚️ **Bật/Tắt dịch vụ** | Công tắc BẬT/TẮT cho MCP và A2A với khả năng duy trì cài đặt (mặc định: TẮT) | -| 🛰️ **Nhịp tim thời gian chạy MCP** | Trạng thái quy trình thực (pid, thời gian hoạt động, tuổi nhịp tim, vận chuyển, chế độ phạm vi) | -| 📋 **Dấu vết kiểm tra MCP** | Nhật ký kiểm tra có thể lọc với thành công/thất bại và phân bổ chính | -| 🔐 **Thực thi phạm vi MCP** | 9 quyền phạm vi chi tiết để truy cập công cụ được kiểm soát | -| 📡 **Quản lý vòng đời nhiệm vụ A2A** | Liệt kê/lọc nhiệm vụ, kiểm tra sự kiện/hiện vật, hủy nhiệm vụ đang chạy | -| 📋 **Khám phá thẻ đại lý** | `/.well-known/agent.json` để tự động phát hiện ứng dụng khách | -| 🧪 **Khai thác thử nghiệm giao thức E2E** | Luồng khách hàng A2A SDK + MCP SDK thực trong `test:protocols:e2e` | -| ⚙️ **Kiểm soát hoạt động** | Chuyển đổi tổ hợp, áp dụng cấu hình khả năng phục hồi, đặt lại bộ ngắt từ một bề mặt điều khiển | - -### 🧠 Định tuyến & Thông minh - -| Tính năng | Nó làm gì | -| ----------------------------------------------- | ----------------------------------------------------------------------------------- | -| 🎯 **Dự phòng 4 tầng thông minh** | Tự động định tuyến: Đăng ký → Khóa API → Giá rẻ → Miễn phí | -| 📊 **Theo dõi hạn ngạch theo thời gian thực** | Số lượng mã thông báo trực tiếp + đếm ngược đặt lại cho mỗi nhà cung cấp | -| 🔄 **Dịch định dạng** | OpenAI ↔ Claude ↔ Gemini ↔ Phản hồi bằng chuyển đổi an toàn lược đồ | -| 👥 **Hỗ trợ nhiều tài khoản** | Nhiều tài khoản cho mỗi nhà cung cấp với lựa chọn thông minh | -| 🔄 **Tự động làm mới mã thông báo** | Mã thông báo OAuth tự động làm mới bằng thử lại | -| 🎨 **Combo tùy chỉnh** | 6 chiến lược cân bằng + kiểm soát chuỗi dự phòng | -| 🌐 **Bộ định tuyến ký tự đại diện** | `provider/*` định tuyến động | -| 🧠 **Suy nghĩ về việc kiểm soát ngân sách** | Giới hạn lý luận truyền qua, tự động, tùy chỉnh và thích ứng | -| 🔀 **Bí danh người mẫu** | Tích hợp sẵn + đặt bí danh mô hình tùy chỉnh và an toàn di chuyển | -| ⚡ **Xuống cấp nền** | Định tuyến các tác vụ nền có mức độ ưu tiên thấp tới các mô hình rẻ hơn | -| 🧪 **Định tuyến thông minh nhận biết nhiệm vụ** | Tự động chọn mô hình theo loại nội dung (mã hóa/tầm nhìn/phân tích/tóm tắt) | -| 💬 **Tiêm nhắc nhở hệ thống** | Kiểm soát hành vi toàn cầu được áp dụng nhất quán | -| 📄 **Khả năng tương thích API phản hồi** | Hỗ trợ đầy đủ `/v1/responses` cho Codex và quy trình làm việc của tác nhân nâng cao | - -### 🎵 API đa phương thức - -| Tính năng | Nó làm gì | -| ------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 🖼️ **Tạo hình ảnh** | `/v1/images/generations` với đám mây và phụ trợ cục bộ | -| 📐 **Nhúng** | `/v1/embeddings` cho đường dẫn tìm kiếm và RAG | -| 🎤 **Phiên âm âm thanh** | `/v1/audio/transcriptions` — 7 nhà cung cấp (Deepgram Nova 3, AssemblyAI, Groq Whisper, HuggingFace, ElevenLabs, OpenAI, Azure), phát hiện ngôn ngữ tự động, hỗ trợ MP4/MP3/WAV | -| 🔊 **Chuyển văn bản thành giọng nói** | `/v1/audio/speech` — 10 nhà cung cấp (ElevenLabs, OpenAI, Deepgram, Cartesia, PlayHT, HuggingFace, Nvidia NIM, Inworld, Coqui, Tortoise) với thông báo lỗi chính xác | -| 🎬 **Tạo video** | `/v1/videos/generations` (Quy trình làm việc ComfyUI + SD WebUI) | -| 🎵 **Thế hệ âm nhạc** | `/v1/music/generations` (Quy trình làm việc của ComfyUI) | -| 🛡️ **Kiểm duyệt** | `/v1/moderations` kiểm tra an toàn | -| 🔀 **Sắp xếp lại** | `/v1/rerank` để chấm điểm mức độ liên quan | -| 🔍 **Tìm kiếm trên web** 🆕 | `/v1/search` — 5 nhà cung cấp (Serper, Brave, Perplexity, Exa, Tavily), hơn 6.500 miễn phí/tháng, tự động chuyển đổi dự phòng, bộ đệm | - -### 🛡️ Khả năng phục hồi, bảo mật và quản trị - -| Tính năng | Nó làm gì | -| -------------------------------------- | ------------------------------------------------------------------------------------------- | -| 🔌 **Bộ ngắt mạch** | Chuyến đi/khôi phục theo từng mô hình với các điều khiển ngưỡng | -| 🎯 **Mô hình nhận biết điểm cuối** | Mô hình tùy chỉnh khai báo điểm cuối được hỗ trợ + định dạng API | -| 🛡️ **Bầy chống sấm sét** | Bảo vệ Mutex + semaphore đối với các sự kiện thử lại/đánh giá | -| 🧠 **Bộ đệm ngữ nghĩa + chữ ký** | Giảm chi phí/độ trễ với hai lớp bộ đệm | -| ⚡ **Yêu cầu quyền bình đẳng** | Cửa sổ bảo vệ trùng lặp | -| 🔒 **Giả mạo vân tay TLS** | Dấu vân tay TLS giống trình duyệt — **giảm khả năng phát hiện bot và gắn cờ tài khoản** | -| 🔏 **Khớp vân tay CLI** | Phù hợp với chữ ký yêu cầu CLI gốc — **giảm rủi ro bị cấm trong khi vẫn bảo toàn IP proxy** | -| 🌐 **Lọc IP** | Kiểm soát danh sách cho phép/danh sách chặn đối với các triển khai được hiển thị | -| 📊 **Giới hạn tỷ lệ có thể chỉnh sửa** | Giới hạn cấp độ nhà cung cấp/toàn cầu có thể định cấu hình với tính bền bỉ | -| 🔑 **Quản lý khóa API + Phạm vi** | Bảo mật việc phát hành/xoay vòng khóa và kiểm soát mô hình/nhà cung cấp | -| 🛡️ **Được bảo vệ `/models`** | Tùy chọn xác thực và ẩn nhà cung cấp cho danh mục mô hình | - -### 📊 Khả năng quan sát & phân tích - -| Tính năng | Nó làm gì | -| --------------------------------------- | ---------------------------------------------------------------------------- | -| 📝 **Yêu cầu + Ghi nhật ký proxy** | Yêu cầu/phản hồi đầy đủ và ghi nhật ký proxy | -| 📉 **Streamed Detailed Logs** 🆕 | Reconstructs SSE payload streams cleanly into the UI | -| 📋 **Bảng điều khiển nhật ký hợp nhất** | Chế độ xem yêu cầu, proxy, kiểm tra và bảng điều khiển trong một trang | -| 🔍 **Yêu cầu đo từ xa** | độ trễ p50/p95/p99 và theo dõi yêu cầu | -| 🏥 **Bảng thông tin sức khỏe** | Thời gian hoạt động, trạng thái ngắt, khóa, số liệu thống kê bộ đệm | -| 💰 **Theo dõi chi phí** | Kiểm soát ngân sách và khả năng hiển thị giá theo từng mô hình | -| 📈 **Trực quan hóa phân tích** | Thông tin chi tiết về cách sử dụng mô hình/nhà cung cấp và lượt xem xu hướng | -| 🧪 **Khung đánh giá** | Thử nghiệm bộ vàng với các chiến lược kết hợp có thể định cấu hình | - -### ☁️ Triển khai & Nền tảng - -| Tính năng | Nó làm gì | -| ---------------------------------- | -------------------------------------------------------------------------- | -| 🌐 **Triển khai mọi nơi** | Localhost, VPS, Docker, Môi trường đám mây | -| 💾 **Đồng bộ đám mây** | Đồng bộ cấu hình qua Cloud Worker | -| 🔄 **Sao lưu/Khôi phục** | Luồng xuất/nhập khẩu và khắc phục thảm họa | -| 🧙 **Trình hướng dẫn giới thiệu** | Thiết lập có hướng dẫn lần đầu | -| 🔧 **Bảng điều khiển công cụ CLI** | Thiết lập bằng một cú nhấp chuột cho các công cụ mã hóa phổ biến | -| 🎮 **Sân chơi kiểu mẫu** | Kiểm tra bất kỳ nhà cung cấp/mô hình/điểm cuối nào từ bảng thông tin | -| 🔏 **Chuyển đổi vân tay CLI** | So khớp dấu vân tay của mỗi nhà cung cấp trong Cài đặt > Bảo mật | -| 🌐 **i18n (30 ngôn ngữ)** | Hỗ trợ ngôn ngữ tài liệu + bảng điều khiển đầy đủ với phạm vi bảo hiểm RTL | -| 🧹 **Xóa tất cả các mẫu** | Xóa danh sách mô hình bằng một cú nhấp chuột trong chi tiết nhà cung cấp | -| 👁️ **Sidebar Controls** 🆕 | Hide components and integrations from Appearance Settings | -| 📋 **Mẫu vấn đề** | Mẫu GitHub được chuẩn hóa cho các lỗi và tính năng | -| 📂 **Thư mục dữ liệu tùy chỉnh** | `DATA_DIR` ghi đè vị trí lưu trữ | - -### Tính năng Tìm hiểu sâu - -#### Dự phòng thông minh với khả năng kiểm soát chi phí thiết thực - -```txt -Combo: "my-coding-stack" - 1. cc/claude-opus-4-6 - 2. nvidia/llama-3.3-70b - 3. glm/glm-4.7 - 4. if/kimi-k2-thinking -``` - -Khi hạn ngạch, tỷ lệ hoặc tình trạng không thành công, OmniRoute sẽ tự động chuyển sang ứng viên tiếp theo mà không cần chuyển đổi thủ công. - -#### Quản lý giao thức hiển thị và có thể hoạt động - -- MCP + A2A có thể được tìm thấy trong giao diện người dùng và tài liệu (không bị ẩn) -- API trạng thái giao thức hiển thị dữ liệu hoạt động trực tiếp (`/api/mcp/*`, `/api/a2a/*`) -- Bảng điều khiển bao gồm các hành động cho hoạt động ngày thứ 2 (chuyển đổi kết hợp, đặt lại bộ ngắt, hủy tác vụ) - -#### Trình dịch + quy trình xác thực - -Khu vực dịch thuật bao gồm: - -- **Sân chơi**: yêu cầu kiểm tra chuyển đổi -- **Bộ kiểm tra trò chuyện**: toàn bộ yêu cầu/phản hồi khứ hồi -- **Băng thử nghiệm**: nhiều trường hợp trong một lần chạy -- **Giám sát trực tiếp**: chế độ xem giao thông theo thời gian thực - -Cộng thêm xác thực giao thức với khách hàng thực thông qua `npm run test:protocols:e2e`. - -> 📖 **[MCP Server README](open-sse/mcp-server/README.md)** — Tham khảo công cụ, cấu hình IDE và ví dụ ứng dụng khách -> -> 📖 **[A2A Server README](src/lib/a2a/README.md)** — Kỹ năng, phương pháp JSON-RPC, phát trực tuyến và vòng đời tác vụ - -## 🧪 Đánh giá (Evals) - -OmniRoute bao gồm khung đánh giá tích hợp để kiểm tra chất lượng phản hồi LLM dựa trên bộ vàng. Truy cập thông qua **Analytics → Đánh giá** trong bảng điều khiển. - -### Bộ vàng tích hợp - -"Bộ vàng OmniRoute" được tải sẵn chứa các trường hợp thử nghiệm cho: - -- Lời chào, toán, địa lý, tạo mã -- Tuân thủ định dạng JSON, dịch thuật, tạo đánh dấu -- Từ chối an toàn (nội dung có hại), đếm, logic boolean - -### Chiến lược đánh giá - -| Chiến lược | Mô tả | Ví dụ | -| ---------- | --------------------------------------------------------------- | -------------------------------- | -| `exact` | Đầu ra phải khớp chính xác | `"4"` | -| `contains` | Đầu ra phải chứa chuỗi con (không phân biệt chữ hoa chữ thường) | `"Paris"` | -| `regex` | Đầu ra phải khớp với mẫu biểu thức chính quy | `"1.*2.*3"` | -| `custom` | Hàm JS tùy chỉnh trả về true/false | `(output) => output.length > 10` | - ---- - -## 📖 Hướng dẫn thiết lập - -### Thiết lập giao thức (MCP + A2A) - -<details> -<summary><b>🧩 Thiết lập MCP (Giao thức ngữ cảnh mô hình)</b></summary> - -Bắt đầu vận chuyển MCP ở chế độ stdio: - -```bash -omniroute --mcp -``` - -Luồng xác thực được đề xuất: - -1. Kết nối máy khách MCP của bạn qua stdio. -2. Chạy `omniroute_get_health`. -3. Chạy `omniroute_list_combos`. -4. Mở `/dashboard/mcp` để xác nhận nhịp tim, hoạt động và kiểm tra. - -Các API hữu ích cho tự động hóa: - -- `GET /api/mcp/status` -- `GET /api/mcp/tools` -- `GET /api/mcp/audit` -- `GET /api/mcp/audit/stats` - -</details> - -<details> -<summary><b>🤝 Thiết lập A2A (Agent2Agent)</b></summary> - -Khám phá đại lý: - -```bash -curl http://localhost:20128/.well-known/agent.json -``` - -Gửi một nhiệm vụ: - -```bash -curl -X POST http://localhost:20128/a2a \ - -H 'content-type: application/json' \ - -d '{"jsonrpc":"2.0","id":"setup-a2a","method":"message/send","params":{"skill":"quota-management","messages":[{"role":"user","content":"Summarize quota status."}]}}' -``` - -Quản lý vòng đời: - -- `GET /api/a2a/status` -- `GET /api/a2a/tasks` -- `GET /api/a2a/tasks/:id` -- `POST /api/a2a/tasks/:id/cancel` - -Giao diện người dùng hoạt động: - -- `/dashboard/a2a` để biết khả năng quan sát nhiệm vụ/trạng thái/luồng và hành động khói - -</details> - -<details> -<summary><b>🧪 Xác thực giao thức end-to-end</b></summary> - -Xác thực cả hai giao thức với máy khách thực: - -```bash -npm run test:protocols:e2e -``` - -Điều này xác minh: - -- Kết nối/danh sách/cuộc gọi máy khách MCP SDK -- Khám phá/gửi/truyền phát/nhận/hủy A2A -- Kiểm tra chéo dữ liệu trong kiểm tra MCP và API quản lý tác vụ A2A - -</details> - -<details> -<summary><b>💳 Nhà cung cấp đăng ký</b></summary> - -### Mã Claude (Pro/Max) - -```bash -Dashboard → Providers → Connect Claude Code -→ OAuth login → Auto token refresh -→ 5-hour + weekly quota tracking - -Models: - cc/claude-opus-4-6 - cc/claude-sonnet-4-5-20250929 - cc/claude-haiku-4-5-20251001 -``` - -**Mẹo chuyên nghiệp:** Sử dụng Opus cho các tác vụ phức tạp, Sonnet cho tốc độ. OmniRoute theo dõi hạn ngạch cho mỗi mô hình! - -### OpenAI Codex (Plus/Pro) - -```bash -Dashboard → Providers → Connect Codex -→ OAuth login (port 1455) -→ 5-hour + weekly reset - -Models: - cx/gpt-5.2-codex - cx/gpt-5.1-codex-max -``` - -#### Quản lý giới hạn tài khoản Codex (5h + Hàng tuần) - -Mỗi tài khoản Codex hiện có các chuyển đổi chính sách trong `Dashboard -> Providers`: - -- `5h` (BẬT/TẮT): thực thi chính sách ngưỡng cửa sổ 5 giờ. -- `Weekly` (BẬT/TẮT): thực thi chính sách ngưỡng cửa sổ hàng tuần. -- Hành vi ngưỡng: khi một cửa sổ được bật đạt mức sử dụng >=90%, tài khoản đó sẽ bị bỏ qua. -- Hành vi luân chuyển: OmniRoute tự động định tuyến đến tài khoản Codex đủ điều kiện tiếp theo. -- Đặt lại hành vi: khi hết thời gian `resetAt` của nhà cung cấp, tài khoản sẽ tự động đủ điều kiện trở lại. - -Kịch bản: - -- `5h ON` + `Weekly ON`: tài khoản bị bỏ qua khi một trong hai cửa sổ đạt đến ngưỡng. -- `5h OFF` + `Weekly ON`: chỉ sử dụng hàng tuần mới có thể chặn tài khoản. -- `5h ON` + `Weekly OFF`: chỉ sử dụng 5 tiếng là có thể khóa tài khoản. -- `resetAt` đã vượt qua: tài khoản tự động quay lại vòng quay (không kích hoạt lại thủ công). - -### Gemini CLI (MIỄN PHÍ 180K/tháng!) - -```bash -Dashboard → Providers → Connect Gemini CLI -→ Google OAuth -→ 180K completions/month + 1K/day - -Models: - gc/gemini-3-flash-preview - gc/gemini-2.5-pro -``` - -**Giá trị tốt nhất:** Cấp miễn phí rất lớn! Sử dụng điều này trước các bậc trả phí. - -### Phi công phụ GitHub - -```bash -Dashboard → Providers → Connect GitHub -→ OAuth via GitHub -→ Monthly reset (1st of month) - -Models: - gh/gpt-5 - gh/claude-4.5-sonnet - gh/gemini-3-pro -``` - -</details> - -<details> -<summary><b>🔑 Nhà cung cấp khóa API</b></summary> - -### NVIDIA NIM (Quyền truy cập MIỄN PHÍ dành cho nhà phát triển - hơn 70 kiểu máy) - -1. Đăng ký: [build.nvidia.com](https://build.nvidia.com) -2. Nhận khóa API miễn phí (bao gồm 1000 tín dụng suy luận) -3. Bảng điều khiển → Thêm nhà cung cấp → NVIDIA NIM: - - Khóa API: `nvapi-your-key` - -**Mẫu máy:** `nvidia/llama-3.3-70b-instruct`, `nvidia/mistral-7b-instruct` và hơn 50 mẫu khác - -**Mẹo chuyên nghiệp:** API tương thích với OpenAI — hoạt động trơn tru với tính năng dịch định dạng của OmniRoute! - -### Tìm kiếm sâu - -1. Đăng ký: [platform.deepseek.com](https://platform.deepseek.com) -2. Nhận khóa API -3. Trang tổng quan → Thêm nhà cung cấp → DeepSeek - -**Mẫu xe:** `deepseek/deepseek-chat`, `deepseek/deepseek-coder` - -### Groq (Có sẵn bậc miễn phí!) - -1. Đăng ký: [console.groq.com](https://console.groq.com) -2. Nhận khóa API (bao gồm bậc miễn phí) -3. Bảng điều khiển → Thêm nhà cung cấp → Groq - -**Mẫu mã:** `groq/llama-3.3-70b`, `groq/mixtral-8x7b` - -**Mẹo chuyên nghiệp:** Suy luận cực nhanh — tốt nhất cho mã hóa thời gian thực! - -### OpenRouter (Hơn 100 mẫu) - -1. Đăng ký: [openrouter.ai](https://openrouter.ai) -2. Nhận khóa API -3. Bảng điều khiển → Thêm nhà cung cấp → OpenRouter - -**Mô hình:** Truy cập hơn 100 mô hình từ tất cả các nhà cung cấp chính thông qua một khóa API duy nhất. - -</details> - -<details> -<summary><b>💰 Nhà cung cấp giá rẻ (Dự phòng)</b></summary> - -### GLM-4.7 (Đặt lại hàng ngày, 0,6 USD/1 triệu) - -1. Đăng ký: [Zhipu AI](https://open.bigmodel.cn/) -2. Nhận khóa API từ Gói mã hóa -3. Bảng điều khiển → Thêm khóa API: - - Nhà cung cấp: `glm` - - Khóa API: `your-key` - -**Sử dụng:** `glm/glm-4.7` - -**Mẹo chuyên nghiệp:** Gói mã hóa cung cấp hạn ngạch 3× với chi phí 1/7! Đặt lại vào 10:00 sáng hàng ngày. - -### MiniMax M2.1 (đặt lại 5 giờ, 0,20 USD/1M) - -1. Đăng ký: [MiniMax](https://www.minimax.io/) -2. Nhận khóa API -3. Bảng điều khiển → Thêm khóa API - -**Sử dụng:** `minimax/MiniMax-M2.1` - -**Mẹo chuyên nghiệp:** Tùy chọn rẻ nhất cho ngữ cảnh dài (1 triệu mã thông báo)! - -### Kimi K2 ($9/tháng cố định) - -1. Subscribe: [Moonshot AI](https://platform.moonshot.ai/) -2. Nhận khóa API -3. Bảng điều khiển → Thêm khóa API - -**Sử dụng:** `kimi/kimi-latest` - -**Mẹo chuyên nghiệp:** Đã sửa lỗi 9 USD/tháng cho 10 triệu mã thông báo = 0,90 USD/1 triệu chi phí hiệu quả! - -</details> - -<details> -<summary><b>🆓 Nhà cung cấp MIỄN PHÍ (Dự phòng khẩn cấp)</b></summary> - -### Qoder (5 mô hình MIỄN PHÍ qua OAuth) - -```bash -Dashboard → Connect Qoder -→ Qoder OAuth login -→ Unlimited usage - -Models: - if/kimi-k2-thinking - if/qwen3-coder-plus - if/glm-4.7 - if/minimax-m2 - if/deepseek-r1 -``` - -### Qwen (4 mẫu MIỄN PHÍ qua Mã thiết bị) - -```bash -Dashboard → Connect Qwen -→ Device code authorization -→ Unlimited usage - -Models: - qw/qwen3-coder-plus - qw/qwen3-coder-flash -``` - -### Kiro (Claude MIỄN PHÍ) - -```bash -Dashboard → Connect Kiro -→ AWS Builder ID or Google/GitHub -→ Unlimited usage - -Models: - kr/claude-sonnet-4.5 - kr/claude-haiku-4.5 -``` - -</details> - -<details> -<summary><b>🎨 Tạo Combo</b></summary> - -### Ví dụ 1: Tối đa hóa đăng ký → Sao lưu giá rẻ - -``` -Dashboard → Combos → Create New - -Name: premium-coding -Models: - 1. cc/claude-opus-4-6 (Subscription primary) - 2. glm/glm-4.7 (Cheap backup, $0.6/1M) - 3. minimax/MiniMax-M2.1 (Cheapest fallback, $0.20/1M) - -Use in CLI: premium-coding -``` - -### Ví dụ 2: Chỉ miễn phí (Không mất phí) - -``` -Name: free-combo -Models: - 1. gc/gemini-3-flash-preview (180K free/month) - 2. if/kimi-k2-thinking (unlimited) - 3. qw/qwen3-coder-plus (unlimited) - -Cost: $0 forever! -``` - -</details> - -<details> -<summary><b>🔧 Tích hợp CLI</b></summary> - -### IDE con trỏ - -``` -Settings → Models → Advanced: - OpenAI API Base URL: http://localhost:20128/v1 - OpenAI API Key: [from OmniRoute dashboard] - Model: cc/claude-opus-4-6 -``` - -### Mã Claude - -Sử dụng trang **Công cụ CLI** trong trang tổng quan để định cấu hình bằng một cú nhấp chuột hoặc chỉnh sửa `~/.claude/settings.json` theo cách thủ công. - -### Codex CLI - -```bash -export OPENAI_BASE_URL="http://localhost:20128" -export OPENAI_API_KEY="your-omniroute-api-key" - -codex "your prompt" -``` - -### OpenClaw - -**Tùy chọn 1 — Trang tổng quan (được khuyến nghị):** - -``` -Dashboard → CLI Tools → OpenClaw → Select Model → Apply -``` - -**Tùy chọn 2 — Thủ công:** Chỉnh sửa `~/.openclaw/openclaw.json`: - -```json -{ - "models": { - "providers": { - "omniroute": { - "baseUrl": "http://127.0.0.1:20128/v1", - "apiKey": "sk_omniroute", - "api": "openai-completions" - } - } - } -} -``` - -> **Lưu ý:** OpenClaw chỉ hoạt động với OmniRoute cục bộ. Use `127.0.0.1` instead of `localhost` to avoid IPv6 resolution issues. - -### Cline / Tiếp tục / RooCode - -``` -Settings → API Configuration: - Provider: OpenAI Compatible - Base URL: http://localhost:20128/v1 - API Key: [from OmniRoute dashboard] - Model: if/kimi-k2-thinking -``` - -### Mã mở - -**Bước 1:** Thêm OmniRoute làm nhà cung cấp tùy chỉnh: - -```bash -opencode -/connect -# Select "Other" → Enter ID: "omniroute" → Enter your OmniRoute API key -``` - -**Bước 2:** Tạo/chỉnh sửa `opencode.json` trong thư mục gốc dự án của bạn: - -```json -{ - "$schema": "https://opencode.ai/config.json", - "provider": { - "omniroute": { - "npm": "@ai-sdk/openai-compatible", - "name": "OmniRoute", - "options": { - "baseURL": "http://localhost:20128/v1" - }, - "models": { - "cc/claude-sonnet-4-20250514": { "name": "Claude Sonnet 4" }, - "gg/gemini-2.5-pro": { "name": "Gemini 2.5 Pro" }, - "if/kimi-k2-thinking": { "name": "Kimi K2 (Free)" } - } - } - } -} -``` - -**Bước 3:** Chọn model trong OpenCode: - -```bash -/models -# Select any OmniRoute model from the list -``` - -> **Mẹo:** Thêm bất kỳ mô hình nào có sẵn trong điểm cuối OmniRoute `/v1/models` của bạn vào phần `models`. Sử dụng định dạng `provider/model-id` từ bảng điều khiển OmniRoute của bạn. - -</details> - ---- - -## 🐛 Khắc phục sự cố - -<details> -<summary><b>Nhấp để mở rộng hướng dẫn khắc phục sự cố</b></summary> - -**"Language model did not provide messages"** - -- Đã hết hạn ngạch nhà cung cấp → Kiểm tra trình theo dõi hạn ngạch bảng điều khiển -- Giải pháp: Sử dụng combo dự phòng hoặc chuyển sang tầng rẻ hơn - -**Giới hạn tỷ lệ** - -- Hết hạn ngạch đăng ký → Dự phòng sang GLM/MiniMax -- Thêm tổ hợp: `cc/claude-opus-4-6 → glm/glm-4.7 → if/kimi-k2-thinking` - -**Mã thông báo OAuth đã hết hạn** - -- Tự động làm mới bởi OmniRoute -- Nếu sự cố vẫn tiếp diễn: Bảng điều khiển → Nhà cung cấp → Kết nối lại - -**Chi phí cao** - -- Kiểm tra số liệu thống kê sử dụng trong Bảng điều khiển → Chi phí -- Chuyển mô hình chính sang GLM/MiniMax -- Sử dụng bậc miễn phí (Gemini CLI, Qoder) cho các tác vụ không quan trọng - -**Cổng bảng điều khiển/API bị sai** - -- `PORT` là cổng cơ sở chuẩn (và cổng API theo mặc định) -- `API_PORT` chỉ ghi đè trình nghe API tương thích với OpenAI -- `DASHBOARD_PORT` chỉ ghi đè bảng điều khiển/trình nghe Next.js -- Đặt `NEXT_PUBLIC_BASE_URL` thành trang tổng quan/URL công khai của bạn (đối với lệnh gọi lại OAuth) - -**Lỗi đồng bộ hóa đám mây** - -- Xác minh `BASE_URL` trỏ tới phiên bản đang chạy của bạn -- Xác minh `CLOUD_URL` điểm tới điểm cuối đám mây dự kiến của bạn -- Giữ các giá trị `NEXT_PUBLIC_*` được căn chỉnh với các giá trị phía máy chủ - -**Đăng nhập lần đầu không hoạt động** - -- Kiểm tra `INITIAL_PASSWORD` trong `.env` -- Nếu không được đặt, mật khẩu dự phòng là `123456` - -**Không có nhật ký yêu cầu** - -- Đặt `ENABLE_REQUEST_LOGS=true` trong `.env` - -**Kiểm tra kết nối cho thấy "Không hợp lệ" đối với các nhà cung cấp tương thích với OpenAI** - -- Nhiều nhà cung cấp không hiển thị điểm cuối `/models` -- OmniRoute v1.0.6+ bao gồm xác thực dự phòng thông qua hoàn thành trò chuyện -- Đảm bảo URL cơ sở bao gồm hậu tố `/v1` - -### 🔐 OAuth trên Máy chủ từ xa - -<a name="oauth-on-a-remote-server"></a> -<a name="oauth-em-servidor-remoto"></a> - -> **⚠️ Quan trọng đối với người dùng chạy OmniRoute trên VPS, Docker hoặc bất kỳ máy chủ từ xa nào** - -#### Tại sao AntiGravity / Gemini CLI OAuth không thành công trên máy chủ từ xa? - -Các nhà cung cấp **AntiGravity** và **Gemini CLI** sử dụng **Google OAuth 2.0**. Google yêu cầu `redirect_uri` trong luồng OAuth phải khớp chính xác với một trong các URI đã đăng ký trước trong Google Cloud Console của ứng dụng. - -Thông tin xác thực OAuth đi kèm trong OmniRoute được đăng ký **chỉ dành cho `localhost`**. Khi bạn truy cập OmniRoute trên máy chủ từ xa (ví dụ: `https://omniroute.myserver.com`), Google sẽ từ chối xác thực bằng: - -``` -Error 400: redirect_uri_mismatch -``` - -#### Giải pháp: Định cấu hình thông tin xác thực OAuth của riêng bạn - -Bạn cần tạo **ID ứng dụng khách OAuth 2.0** trong Google Cloud Console bằng URI máy chủ của bạn. - -#### Từng bước một - -**1. Mở Bảng điều khiển đám mây của Google** - -Đi tới: [https://console.cloud.google.com/apis/credentials](https://console.cloud.google.com/apis/credentials) - -**2. Tạo ID ứng dụng khách OAuth 2.0 mới** - -- Nhấp vào **"+ Tạo thông tin xác thực"** → **"ID khách hàng OAuth"** -- Loại ứng dụng: **"Ứng dụng web"** -- Tên: bất cứ thứ gì bạn thích (ví dụ `OmniRoute Remote`) - -**3. Thêm URI chuyển hướng được ủy quyền** - -Trong trường **"URI chuyển hướng được ủy quyền"**, hãy thêm: - -``` -https://your-server.com/callback -``` - -> Thay thế `your-server.com` bằng miền hoặc IP máy chủ của bạn (bao gồm cổng nếu cần, ví dụ: `http://45.33.32.156:20128/callback`). - -**4. Lưu và sao chép thông tin đăng nhập** - -Sau khi tạo, Google sẽ hiển thị **ID khách hàng** và **Bí mật khách hàng**. - -**5. Đặt biến môi trường** - -Trong `.env` (hoặc biến môi trường Docker): - -```bash -# For Antigravity: -ANTIGRAVITY_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com -ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-your-secret - -# For Gemini CLI: -GEMINI_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com -GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret -``` - -**6. Khởi động lại OmniRoute** - -```bash -# npm: -npm run dev - -# Docker: -docker restart omniroute -``` - -**7. Hãy thử kết nối lại** - -Bảng điều khiển → Nhà cung cấp → Anti Gravity (hoặc Gemini CLI) → OAuth - -Bây giờ Google sẽ chuyển hướng chính xác tới `https://your-server.com/callback`. - ---- - -#### Cách giải quyết tạm thời (không có thông tin xác thực tùy chỉnh) - -Nếu không muốn thiết lập thông tin xác thực của riêng mình ngay bây giờ, bạn vẫn có thể sử dụng **luồng URL thủ công**: - -1. OmniRoute mở URL ủy quyền của Google -2. Sau khi ủy quyền, Google sẽ cố gắng chuyển hướng đến `localhost` (không thành công trên máy chủ từ xa) -3. **Sao chép URL đầy đủ** từ thanh địa chỉ trình duyệt của bạn (ngay cả khi trang không tải) -4. Dán URL đó vào trường hiển thị trong phương thức kết nối OmniRoute -5. Nhấp vào **"Kết nối"** - -> Điều này có tác dụng vì mã ủy quyền trong URL hợp lệ bất kể trang chuyển hướng có được tải hay không. - ---- - -<details> -<summary><b>🇧🇷 Phiên bản tiếng Bồ Đào Nha</b></summary> - -#### Vì bạn muốn OAuth làm AntiGravity / Gemini CLI có bị ảnh hưởng bởi các dịch vụ điều khiển từ xa không? - -Os đã được chứng minh **AntiGravity** e **Gemini CLI** sử dụng **Google OAuth 2.0** để xác thực. O Google exige que a `redirect_uri` usada no fluxo OAuth seja **exatamente** một das URI trước cadastradas no Google Cloud Console để ứng dụng. - -Vì các thông tin xác thực OAuth không có OmniRoute estão cadastradas **apenas para `localhost`**. Bạn có thể truy cập OmniRoute bằng cách điều khiển lại máy chủ (ví dụ: `https://omniroute.meuservidor.com`), hoặc Google đưa ra xác thực với: - -``` -Error 400: redirect_uri_mismatch -``` - -#### Giải pháp: Định cấu hình thông tin đăng nhập OAuth - -Bạn nên chú ý **OAuth 2.0 Client ID** không có Google Cloud Console vì URI làm dịch vụ của bạn. - -#### Vượt qua một lần nữa - -**1. Truy cập vào Google Cloud Console** - -Abra: [https://console.cloud.google.com/apis/credentials](https://console.cloud.google.com/apis/credentials) - -**2. Hãy yêu cầu ID ứng dụng khách OAuth 2.0 mới** - -- Nhấn vào **"+ Tạo thông tin xác thực"** → **"ID khách hàng OAuth"** -- Mẹo ứng dụng: **"Ứng dụng web"** -- Tên: escolha qualquer nome (ví dụ: `OmniRoute Remote`) - -**3. Adicione dưới dạng URI chuyển hướng được ủy quyền** - -Không có quảng cáo **"URI chuyển hướng được ủy quyền"**, khuyến cáo: - -``` -https://seu-servidor.com/callback -``` - -> Thay thế `seu-servidor.com` từ địa chỉ IP hoặc dịch vụ IP của bạn (bao gồm một cổng cần thiết, ví dụ: `http://45.33.32.156:20128/callback`). - -**4. Lưu và sao chép dưới dạng uy tín** - -Sau đó, Google đã đăng trên **ID khách hàng** và **Bí mật khách hàng**. - -**5. Định cấu hình theo các biến thể của môi trường** - -Không có `.env` (hoặc có nhiều biến thể môi trường xung quanh Docker): - -```bash -# Para Antigravity: -ANTIGRAVITY_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com -ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret - -# Para Gemini CLI: -GEMINI_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com -GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret -``` - -**6. Reinicie hoặc OmniRoute** - -```bash -# Se usando npm: -npm run dev - -# Se usando Docker: -docker restart omniroute -``` - -**7. Lều kết nối mới lạ** - -Bảng điều khiển → Nhà cung cấp → Anti Gravity (hoặc Gemini CLI) → OAuth - -Agora hoặc Google chuyển hướng điều chỉnh cho `https://seu-servidor.com/callback` và một chức năng xác thực. - ---- - -#### Thời gian giải quyết (sem configurar credenciais próprias) - -Nếu không có câu hỏi nào về thông tin xác thực trước đây, bạn có thể sử dụng thông tin **hướng dẫn sử dụng URL**: - -1. O OmniRoute tìm kiếm URL tự động của Google -2. Sau khi bạn tự động đăng ký, hoặc chuyển hướng Google sang `localhost` (bạn không thể điều chỉnh lại dịch vụ) -3. **Sao chép một URL hoàn chỉnh** da cuối cùng của trình duyệt của bạn (mesmo que a página not carregue) -4. URL này không có khả năng xuất hiện không có phương thức kết nối nào với OmniRoute -5. Kết nối với nhau **"Kết nối"** - -> Chức năng giải pháp này có thể giúp tự động cấp quyền cho URL và có thể chuyển hướng độc lập đến mục tiêu hoặc không. - -</details> - ---- - -</details> - -## 🛠️ Ngăn xếp công nghệ - -<details> -<summary><b>Nhấp để mở rộng chi tiết về ngăn xếp công nghệ</b></summary> - -- **Thời gian chạy**: Node.js 18–22 LTS (⚠️ Node.js 24+ **không được hỗ trợ** — `better-sqlite3` nhị phân gốc không tương thích) -- **Ngôn ngữ**: TypeScript 5.9 — **100% TypeScript** trên `src/` và `open-sse/` (không `any` trong các mô-đun lõi kể từ phiên bản 2.0) -- **Khung**: Next.js 16 + React 19 + Tailwind CSS 4 -- **Cơ sở dữ liệu**: LowDB (JSON) + SQLite (trạng thái miền + nhật ký proxy + kiểm tra MCP + quyết định định tuyến) -- **Lược đồ**: Zod (xác thực I/O công cụ MCP, hợp đồng API) -- **Giao thức**: MCP (stdio/HTTP) + A2A v0.3 (JSON-RPC 2.0 + SSE) -- **Truyền phát**: Sự kiện do máy chủ gửi (SSE) -- **Xác thực**: OAuth 2.0 (PKCE) + JWT + Khóa API + Ủy quyền trong phạm vi MCP -- **Thử nghiệm**: Trình chạy thử nghiệm Node.js + Vitest (hơn 900 thử nghiệm bao gồm đơn vị, tích hợp, E2E) -- **CI/CD**: GitHub Actions (tự động xuất bản npm + Docker Hub khi phát hành) -- **Trang web**: [omniroute.online](https://omniroute.online) -- **Gói**: [npmjs.com/package/omniroute](https://www.npmjs.com/package/omniroute) -- **Docker**: [hub.docker.com/r/diegosouzapw/omniroute](https://hub.docker.com/r/diegosouzapw/omniroute) -- **Khả năng phục hồi**: Ngắt mạch, lùi theo cấp số nhân, chống sấm sét bầy đàn, giả mạo TLS, tự động kết hợp tự phục hồi - -</details> - ---- - -## 📖 Tài liệu - -| Tài liệu | Mô tả | -| ---------------------------------------------- | ---------------------------------------------------------------- | -| [User Guide](docs/USER_GUIDE.md) | Nhà cung cấp, combo, tích hợp CLI, triển khai | -| [API Reference](docs/API_REFERENCE.md) | Tất cả các điểm cuối có ví dụ | -| [MCP Server](open-sse/mcp-server/README.md) | 16 công cụ MCP, cấu hình IDE, máy khách Python/TS/Go | -| [A2A Server](src/lib/a2a/README.md) | Giao thức JSON-RPC 2.0, kỹ năng, phát trực tuyến, quản lý tác vụ | -| [Auto-Combo Engine](docs/auto-combo.md) | Chấm điểm 6 yếu tố, gói chế độ, tự phục hồi | -| [Troubleshooting](docs/TROUBLESHOOTING.md) | Các vấn đề thường gặp và giải pháp | -| [Architecture](docs/ARCHITECTURE.md) | Kiến trúc hệ thống và nội bộ | -| [Contributing](CONTRIBUTING.md) | Thiết lập và hướng dẫn phát triển | -| [OpenAPI Spec](docs/openapi.yaml) | Đặc tả OpenAPI 3.0 | -| [Security Policy](SECURITY.md) | Báo cáo lỗ hổng bảo mật và thực hành bảo mật | -| [VM Deployment](docs/VM_DEPLOYMENT_GUIDE.md) | Hướng dẫn đầy đủ: Thiết lập VM + nginx + Cloudflare | -| [Features Gallery](docs/FEATURES.md) | Tham quan bảng điều khiển trực quan với ảnh chụp màn hình | -| [Release Checklist](docs/RELEASE_CHECKLIST.md) | Các bước xác thực trước khi phát hành | - ---- - -## 🗺️ Lộ trình - -OmniRoute có **210+ tính năng được lên kế hoạch** qua nhiều giai đoạn phát triển. Dưới đây là các lĩnh vực chính: - -| Danh mục | Tính năng dự kiến ​​ | Điểm nổi bật | -| ------------------------------ | -------------------- | -------------------------------------------------------------------------------------------------------------- | -| 🧠 **Định tuyến & thông minh** | 25+ | Định tuyến có độ trễ thấp nhất, định tuyến dựa trên thẻ, ưu tiên hạn ngạch, chọn tài khoản P2C | -| 🔒 **Bảo mật & Tuân thủ** | 20+ | Tăng cường SSRF, che giấu thông tin xác thực, giới hạn tốc độ cho mỗi điểm cuối, phạm vi khóa quản lý | -| 📊 **Khả năng quan sát** | 15+ | Tích hợp OpenTelemetry, giám sát hạn ngạch thời gian thực, theo dõi chi phí trên mỗi mô hình | -| 🔄 **Tích hợp nhà cung cấp** | 20+ | Đăng ký mô hình động, thời gian hồi chiêu của nhà cung cấp, Codex nhiều tài khoản, phân tích hạn ngạch Copilot | -| ⚡ **Hiệu suất** | 15+ | Lớp bộ đệm kép, bộ đệm nhắc nhở, bộ đệm phản hồi, lưu giữ luồng, API hàng loạt | -| 🌐 **Hệ sinh thái** | 10+ | API WebSocket, cấu hình tải lại nóng, kho cấu hình phân tán, chế độ thương mại | - -### 🔜 Sắp ra mắt - -- 🔗 **Tích hợp OpenCode** — Hỗ trợ của nhà cung cấp gốc cho IDE mã hóa OpenCode AI -- 🔗 **Tích hợp TRAE** — Hỗ trợ đầy đủ cho khung phát triển TRAE AI -- 📦 **Batch API** — Xử lý hàng loạt không đồng bộ cho các yêu cầu hàng loạt -- 🎯 **Định tuyến dựa trên thẻ** — Định tuyến các yêu cầu dựa trên thẻ và siêu dữ liệu tùy chỉnh -- 💰 **Chiến lược chi phí thấp nhất** — Tự động chọn nhà cung cấp có sẵn rẻ nhất - -> 📝 Thông số kỹ thuật đầy đủ tính năng có sẵn trong [**OMNI_TOKEN_342**](docs/new-features/) (217 thông số kỹ thuật chi tiết) - ---- - -## 👥 Người đóng góp - -[![Contributors](https://contrib.rocks/image?repo=diegosouzapw/OmniRoute&max=100&columns=20&anon=1)](https://github.com/diegosouzapw/OmniRoute/graphs/contributors) - -### Cách đóng góp - -1. Phân nhánh kho lưu trữ -2. Tạo nhánh tính năng của bạn (`git checkout -b feature/amazing-feature`) -3. Cam kết thay đổi của bạn (`git commit -m 'Add amazing feature'`) -4. Đẩy vào nhánh (`git push origin feature/amazing-feature`) -5. Mở yêu cầu kéo - -Xem [CONTRIBUTING.md](CONTRIBUTING.md) để biết hướng dẫn chi tiết. - -### Phát hành phiên bản mới - -```bash -# Create a release — npm publish happens automatically -gh release create v2.0.0 --title "v2.0.0" --generate-notes -``` - ---- - -## 📊 Lịch sử ngôi sao - -## Nhà chiêm tinh theo thời gian - -## [![Stargazers over time](https://starchart.cc/diegosouzapw/OmniRoute.svg?variant=adaptive)](https://starchart.cc/diegosouzapw/OmniRoute) - -## 🙏 Lời cảm ơn - -Đặc biệt cảm ơn **[9router](https://github.com/decolua/9router)** của **[decolua](https://github.com/decolua)** — dự án ban đầu đã truyền cảm hứng cho đợt phân nhánh này. OmniRoute được xây dựng dựa trên nền tảng đáng kinh ngạc đó với các tính năng bổ sung, API đa phương thức và viết lại TypeScript đầy đủ. - -Đặc biệt cảm ơn **[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)** — cách triển khai Go ban đầu đã truyền cảm hứng cho cổng JavaScript này. - ---- - -## 📄 Giấy phép - -Giấy phép MIT - xem [LICENSE](LICENSE) để biết chi tiết. - ---- - -<div align="center"> - <sub>Được xây dựng với ❤️ dành cho nhà phát triển viết mã 24/7</sub> - <br/> - <sub><a href="https://omniroute.online">omniroute.online</a></sub> -</div> -<!-- Thảo luận GitHub được bật cho phần Hỏi đáp cộng đồng --> +👉 **[Read the Documentation here](docs/i18n/vi/README.md)**