Files
OmniRoute/docs/i18n/he/docs/guides/USER_GUIDE.md
Diego Rodrigues de Sa e Souza b637350680 fix(docs): re-sync the 65 documentation mirror sets; section-level docs pipeline; drift gate blocking (#13940)
1,104 mirrors rewritten over five passes of run-translation on the 22-source core set: the 14 sources edited since their translation, the 322 mirrors that were still English copies, and the frontmatter the old extractor leaked into the newer locales' bodies. The pipeline now caches per-`## `-section hashes and retranslates only changed sections, never reuses a section that is still English, rebuilds English-copy / leaked mirrors even when the source is unchanged, merges the state on save (parallel runs), and the drift gate (scoped to the core set) is blocking. Final audit: 0 stale, 0 English copies, 0 leaked frontmatter across 1,430 core mirrors.

⚠️ base-red inherited: #12732
2026-09-17 02:55:31 -03:00

81 KiB
Raw Blame History

User Guide (עברית)

🌐 Languages: 🇺🇸 English · 🇪🇹 am · 🇸🇦 ar · 🇦🇿 az · 🇧🇬 bg · 🇧🇩 bn · 🇨🇿 cs · 🇩🇰 da · 🇩🇪 de · 🇬🇷 el · 🇪🇸 es · 🇪🇪 et · 🇮🇷 fa · 🇫🇮 fi · 🇫🇷 fr · 🇮🇪 ga · 🇮🇳 gu · 🇳🇬 ha · 🇮🇳 hi · 🇭🇷 hr · 🇭🇺 hu · 🇦🇲 hy · 🇮🇩 id · 🇳🇬 ig · 🇮🇹 it · 🇯🇵 ja · 🇬🇪 ka · 🇰🇭 km · 🇮🇳 kn · 🇰🇷 ko · 🇱🇹 lt · 🇱🇻 lv · 🇮🇳 ml · 🇮🇳 mr · 🇲🇾 ms · 🇲🇹 mt · 🇲🇲 my · 🇳🇵 ne · 🇳🇱 nl · 🇳🇴 no · 🇮🇳 or · 🇮🇳 pa · 🇵🇭 phi · 🇵🇱 pl · 🇵🇹 pt · 🇧🇷 pt-BR · 🇷🇴 ro · 🇷🇺 ru · 🇱🇰 si · 🇸🇰 sk · 🇸🇮 sl · 🇷🇸 sr · 🇸🇪 sv · 🇰🇪 sw · 🇮🇳 ta · 🇮🇳 te · 🇹🇭 th · 🇹🇷 tr · 🇺🇦 uk-UA · 🇵🇰 ur · 🇺🇿 uz · 🇻🇳 vi · 🇳🇬 yo · 🇨🇳 zh-CN · 🇹🇼 zh-TW


🌐 שפות: 🇺🇸 English | 🇪🇹 አማርኛ | 🇸🇦 العربية | 🇦🇿 Azərbaycan dili | 🇧🇬 Български | 🇧🇩 বাংলা | 🇨🇿 Čeština | 🇩🇰 Dansk | 🇩🇪 Deutsch | 🇬🇷 Ελληνικά | 🇪🇸 Español | 🇪🇪 Eesti | 🇮🇷 فارسی | 🇫🇮 Suomi | 🇫🇷 Français | 🇮🇪 Gaeilge | 🇮🇳 ગુજરાતી | 🇳🇬 Hausa | 🇮🇱 עברית | 🇮🇳 हिन्दी | 🇭🇷 Hrvatski | 🇭🇺 Magyar | 🇦🇲 Հայերեն | 🇮🇩 Bahasa Indonesia | 🇳🇬 Igbo | 🇮🇹 Italiano | 🇯🇵 日本語 | 🇬🇪 ქართული | 🇰🇭 ខ្មែរ | 🇮🇳 ಕನ್ನಡ | 🇰🇷 한국어 | 🇱🇹 Lietuvių | 🇱🇻 Latviešu | 🇮🇳 മലയാളം | 🇮🇳 मराठी | 🇲🇾 Bahasa Melayu | 🇲🇹 Malti | 🇲🇲 မြန်မာ | 🇳🇵 नेपाली | 🇳🇱 Nederlands | 🇳🇴 Norsk | 🇮🇳 ଓଡ଼ିଆ | 🇮🇳 ਪੰਜਾਬੀ | 🇵🇭 Filipino | 🇵🇱 Polski | 🇵🇹 Português (Portugal) | 🇧🇷 Português (Brasil) | 🇷🇴 Română | 🇷🇺 Русский | 🇱🇰 සිංහල | 🇸🇰 Slovenčina | 🇸🇮 Slovenščina | 🇷🇸 Српски | 🇸🇪 Svenska | 🇰🇪 Kiswahili | 🇮🇳 தமிழ் | 🇮🇳 తెలుగు | 🇹🇭 ไทย | 🇹🇷 Türkçe | 🇺🇦 Українська | 🇵🇰 اردو | 🇺🇿 Oʻzbekcha | 🇻🇳 Tiếng Việt | 🇳🇬 Yorùbá | 🇨🇳 中文 (简体) | 🇹🇼 中文 (繁體)

מדריך מלא להגדרת ספקים, ליצירת שילובים, לשילוב כלי CLI ולפריסת OmniRoute.


תוכן העניינים


💰 סקירת מחירים

מסלול ספק עלות איפוס מכסה המתאים ביותר עבור
💳 מינוי Claude Code (Pro) $20 לחודש 5 שעות + שבועי מי שכבר מנוי
Codex (Plus/Pro) $20-200 לחודש 5 שעות + שבועי משתמשי OpenAI
GitHub Copilot $10-19 לחודש חודשי משתמשי GitHub
🔑 מפתח API DeepSeek תשלום לפי שימוש ללא חשיבה לוגית זולה
Groq תשלום לפי שימוש ללא הסקה מהירה במיוחד
xAI (Grok) תשלום לפי שימוש ללא יכולות החשיבה של Grok 4
Mistral תשלום לפי שימוש ללא מודלים המתארחים באיחוד האירופי
Perplexity תשלום לפי שימוש ללא יכולות מועשרות בחיפוש
Together AI תשלום לפי שימוש ללא מודלים בקוד פתוח
Fireworks AI תשלום לפי שימוש ללא תמונות FLUX מהירות
Cerebras תשלום לפי שימוש ללא מהירות בקנה מידה של פרוסה
Cohere תשלום לפי שימוש ללא Command R+ RAG
NVIDIA NIM תשלום לפי שימוש ללא מודלים ארגוניים
Baidu Qianfan תשלום לפי שימוש ללא מודלי ERNIE
💰 זול GLM-4.7 $0.6/1M מדי יום ב-10:00 גיבוי חסכוני
MiniMax M2.1 $0.2/1M חלון מתגלגל של 5 שעות האפשרות הזולה ביותר
Kimi K2 $9 לחודש קבוע 10M טוקנים בחודש עלות צפויה מראש
🆓 חינם Qoder $0 כפוף למגבלות הספק יש לבדוק את הקטלוג הנוכחי
Kiro $0 כ-50 קרדיטים בחודש Claude בחינם

🎯 תרחישי שימוש

תרחיש 1: "יש לי מינוי Claude Pro"

בעיה: המכסה פוקעת בלי שנעשה בה שימוש, ויש מגבלות קצב במהלך עבודת תכנות אינטנסיבית

שילוב: "maximize-claude"
  1. cc/claude-opus-4-7        (ניצול מלא של המינוי)
  2. glm/glm-4.7               (גיבוי זול כשהמכסה נגמרת)
  3. if/qwen3.8-max-preview       (חלופת חירום חינמית)

עלות חודשית: $20 (מינוי) + כ-$5 (גיבוי) = $25 בסך הכול
לעומת $20 + הגעה למגבלות = תסכול

תרחיש 2: "אני רוצה עלות אפסית"

בעיה: אין לי אפשרות לממן מינויים, ונדרש לי AI אמין לתכנות

שילוב: "zero-cost"
  1. if/kimi-k2.7-code          (מופיעה גישה חינמית; ייתכן שיחולו מגבלות קצב)
  2. kr/qwen3-coder-next        (חלופה חינמית של Kiro)

עלות חודשית: $0
איכות: יש לבדוק את המודל, המגבלות, הפרטיות וה-SLA עבור עומס העבודה שלכם

תרחיש 3: "אני צריך תכנות 24/7, ללא הפרעות"

בעיה: יש מועדי הגשה, ואין לי אפשרות להרשות זמני השבתה

שילוב: "always-on"
  1. cc/claude-opus-4-7        (האיכות הטובה ביותר)
  2. cx/gpt-5.5                (מינוי שני)
  3. glm/glm-4.7               (זול, מתאפס מדי יום)
  4. minimax/MiniMax-M2.1      (הזול ביותר, מתאפס לאחר 5 שעות)
  5. if/deepseek-v4-flash       (מופיעה גישה חינמית; ייתכן שיחולו מגבלות קצב)

תוצאה: 5 שכבות חלופיות משפרות את העמידות; זמינות השירותים במעלה הזרם אינה מובטחת
עלות חודשית: $20-200 (מינויים) + $10-20 (גיבוי)

תרחיש 4: "אני רוצה AI בחינם ב-OpenClaw"

בעיה: דרוש לי עוזר AI באפליקציות מסרים, בחינם לחלוטין

שילוב: "openclaw-free"
  1. if/qwen3.8-max-preview     (מופיעה גישה חינמית; ייתכן שיחולו מגבלות קצב)
  2. if/deepseek-v4-flash       (מופיעה גישה חינמית; ייתכן שיחולו מגבלות קצב)
  3. if/kimi-k2.7-code          (מופיעה גישה חינמית; ייתכן שיחולו מגבלות קצב)

עלות חודשית: $0
גישה דרך: WhatsApp, Telegram, Slack, Discord, iMessage, Signal...

📖 הגדרת ספקים

כדי להוסיף בכמות גדולה חיבורי מפתחות API מקובץ CSV או JSON, השתמשו ב-לוח הבקרה → ספקים → ייבוא מקובץ. העמודות מסודרות לפי מיקום (provider,name,apiKey,baseUrl,priority); הערך provider חייב כבר להתקיים כספק מנוהל או כצומת תואם. ראו ייבוא ספקים מקובץ CSV או JSON.

🔐 ספקי מנוי

Claude Code (Pro/Max)

לוח הבקרה → ספקים → חיבור Claude Code
→ התחברות באמצעות OAuth → רענון אוטומטי של האסימון
→ מעקב אחר מכסה של 5 שעות + מכסה שבועית

מודלים:
  cc/claude-opus-4-7
  cc/claude-sonnet-4-6
  cc/claude-haiku-4-5-20251001

טיפ מקצועי: השתמשו ב-Opus למשימות מורכבות וב-Sonnet לקבלת מהירות. OmniRoute עוקב אחר המכסה לכל מודל!

נתיבים התואמים ל-Claude ול-Claude Code משמרים את רמת מאמץ החשיבה max עבור מודלי Opus ו-Sonnet. מודלי Haiku אינם מקבלים את רמת המאמץ max, ולכן OmniRoute מוריד בקשה זו לתקציב חשיבה גבוה לפני שליחתה לספק במעלה הזרם.

OpenAI Codex (Plus/Pro)

לוח הבקרה → ספקים → חיבור Codex
→ התחברות באמצעות OAuth (יציאה 1455)
→ איפוס לאחר 5 שעות + איפוס שבועי

מודלים:
  cx/gpt-5.5
  cx/gpt-5.4
  cx/gpt-5.3-codex
  cx/gpt-5.3-codex-spark

GitHub Copilot

לוח הבקרה → ספקים → חיבור GitHub
→ OAuth דרך GitHub
→ איפוס חודשי (ב-1 בחודש)

מודלים:
  gh/gpt-5.5
  gh/gpt-5.4
  gh/claude-sonnet-4.6
  gh/claude-opus-4.7
  gh/gemini-3.1-pro-preview

💰 ספקים זולים

GLM-4.7 (איפוס יומי, $0.6 למיליון)

  1. הירשמו: Zhipu AI
  2. קבלו מפתח API מתוכנית Coding Plan
  3. לוח הבקרה → הוספת מפתח API: ספק: glm, מפתח API: your-key

שימוש: glm/glm-4.7טיפ מקצועי: תוכנית Coding Plan מציעה מכסה גדולה פי 3 בשביעית מהעלות! האיפוס מתבצע מדי יום בשעה 10:00 בבוקר.

MiniMax M2.1 (איפוס לאחר 5 שעות, $0.20 למיליון)

  1. הירשמו: MiniMax
  2. קבלו מפתח API → לוח הבקרה → הוספת מפתח API

שימוש: minimax/MiniMax-M2.1טיפ מקצועי: האפשרות הזולה ביותר להקשר ארוך (מיליון אסימונים)!

Kimi K2 (מחיר קבוע של $9 לחודש)

  1. הירשמו כמנויים: Moonshot AI
  2. קבלו מפתח API → לוח הבקרה → הוספת מפתח API

שימוש: kimi/kimi-k2.5טיפ מקצועי: מחיר קבוע של $9 לחודש עבור 10 מיליון אסימונים = עלות אפקטיבית של $0.90 למיליון!

Baidu Qianfan / ERNIE

  1. הירשמו: Baidu AI Cloud Qianfan
  2. צרו מפתח API של Qianfan → לוח הבקרה → הוספת מפתח API: ספק: qianfan

שימוש: qianfan/ernie-5.1, qianfan/ernie-x1.1, או מזהה מודל אחר של Qianfan התואם ל-OpenAI.

🆓 ספקים חינמיים

לספקים חינמיים שאינם דורשים אימות יש מתג לצד לא נדרש אימות בדף הספק שלהם. כיבוי המתג משבית את הספק, מסיר אותו מתצוגות הספקים המוגדרים/המצומצמות ומסיר את המודלים שלו מ-/v1/models.

Qoder (9 מודלים חינמיים)

לוח הבקרה → חיבור Qoder → התחברות באמצעות OAuth → הגישה כפופה למגבלות הספק הנוכחיות

מודלים: if/qwen3.8-max-preview, if/qwen3.7-max, if/qwen3.7-plus, if/kimi-k3, if/kimi-k2.7-code, if/glm-5.2, if/deepseek-v4-pro, if/deepseek-v4-flash, if/minimax-m3

Kiro (Claude בחינם)

לוח הבקרה → חיבור Kiro → AWS Builder ID או Google/GitHub → כ-50 נקודות זכות בחודש

מודלים: kr/claude-sonnet-4.5, kr/claude-haiku-4.5

🎨 קומבואים

ניתן לשנות את סדר כרטיסי הקומבו ישירות ב-לוח הבקרה → קומבואים באמצעות גרירת הידית שבכל כרטיס. הסדר נשמר ב-SQLite ומשוחזר בעת טעינה מחדש.

דוגמה 1: מקסום המינוי → גיבוי זול

לוח הבקרה → קומבואים → יצירת חדש

שם: premium-coding
מודלים:
  1. cc/claude-opus-4-7 (מינוי ראשי)
  2. glm/glm-4.7 (גיבוי זול, $0.6/1M)
  3. minimax/MiniMax-M2.7 (חלופה זולה ביותר, $0.3/1M)

שימוש ב-CLI: premium-coding

דוגמה 2: חינמי בלבד (ללא עלות)

שם: free-combo
מודלים:
  1. if/kimi-k2.7-code (מופיע כבעל גישה חינמית; ייתכן שיחולו מגבלות ספק)
  2. kr/qwen3-coder-next (חלופה חינמית של Kiro)

עלות: מופיעה כעת כ-$0; התנאים והזמינות עשויים להשתנות

🔧 שילוב CLI

Cursor IDE

שימוש ב-Cursor כלקוח OmniRoute (ניתוב הצ'אט של Cursor דרך OmniRoute):

הגדרות → מודלים → מתקדם:
  כתובת בסיס ל-OpenAI API: http://localhost:20128/v1
  מפתח OpenAI API: [מלוח הבקרה של omniroute]
  מודל: cc/claude-opus-4-7

שימוש ב-OmniRoute כספק Cursor (OmniRoute פונה אל Cursor במעלה הזרם): מומלץ להשתמש ב- לוח הבקרה → ספקים → Cursor → התחברות באמצעות Cursor. עבור Docker, ראו docs/providers/CURSOR-DOCKER.md.

Claude Code

ערכו את ~/.claude/settings.json:

{
  "env": {
    "ANTHROPIC_BASE_URL": "http://localhost:20128",
    "ANTHROPIC_AUTH_TOKEN": "your-omniroute-api-key"
  }
}

השתמשו כאן בנקודת הקצה הבסיסית התואמת ל-Claude. אין להוסיף /v1 אל ANTHROPIC_BASE_URL.

Codex CLI

export OPENAI_BASE_URL="http://localhost:20128"
export OPENAI_API_KEY="your-omniroute-api-key"
codex "your prompt"

OpenClaw

ערכו את ~/.openclaw/openclaw.json:

{
  "agents": {
    "defaults": {
      "model": { "primary": "omniroute/if/kimi-k2.7-code" }
    }
  },
  "models": {
    "providers": {
      "omniroute": {
        "baseUrl": "http://localhost:20128/v1",
        "apiKey": "your-omniroute-api-key",
        "api": "openai-completions",
        "models": [{ "id": "if/kimi-k2.7-code", "name": "Kimi K2.7 Code" }]
      }
    }
  }
}

או השתמשו בלוח הבקרה: כלי CLI → OpenClaw → הגדרה אוטומטית

Cline / Continue / RooCode

ספק: תואם OpenAI
כתובת בסיס: http://localhost:20128/v1
מפתח API: [מלוח הבקרה]
מודל: cc/claude-opus-4-7

🚀 פריסה

התקנת npm גלובלית (מומלץ)

npm install -g omniroute

# יצירת תיקיית תצורה
mkdir -p ~/.omniroute

# יצירת קובץ .env (ראו .env.example)
cp .env.example ~/.omniroute/.env

# הפעלת השרת
omniroute
# או עם יציאה מותאמת אישית:
omniroute --port 3000

ה-CLI טוען אוטומטית את .env מתוך ~/.omniroute/.env או ./.env.

מצב מגש מערכת

הפעילו את OmniRoute במגש המערכת:

omniroute serve --tray

הפקודה מסתיימת לאחר שהשרת ומגש המערכת מוכנים.

השרת ממשיך לפעול ללא המסוף.

מצב מגש המערכת נתמך ב-macOS, ב-Windows ובהפעלות Linux גרפיות. מצב מגש המערכת אינו פותח את לוח הבקרה באופן אוטומטי.

השתמשו בתפריט מגש המערכת עבור הפעולות הבאות:

  • פתיחת לוח הבקרה.
  • פתיחת /dashboard/logs.
  • שינוי ההפעלה האוטומטית.
  • עצירת OmniRoute.

אין לשלב את --tray עם האפשרויות הבאות:

  • --daemon
  • --log
  • --no-recovery

מצבים אלה דורשים בעלות שונה על התהליך.

הפעילו את OmniRoute בעת הכניסה הבאה למחשב:

omniroute autostart enable

ההפעלה האוטומטית משתמשת במצב מגש המערכת ב-macOS, ב-Windows ובהפעלות Linux גרפיות. Linux ללא ממשק גרפי משתמש בשירות המשתמש הקיים של systemd.

השביתו הפעלה בעת הכניסה:

omniroute autostart disable

הסרת התקנה

כאשר OmniRoute אינו נחוץ עוד, אנו מספקים שני סקריפטים מהירים להסרה נקייה:

פקודה פעולה
npm run uninstall מסירה את יישום המערכת, אך שומרת את מסד הנתונים ואת ההגדרות שלכם בתוך ~/.omniroute.
npm run uninstall:full מסירה את היישום וגם מוחקת לצמיתות את כל ההגדרות, המפתחות ומסדי הנתונים.

הערה: כדי להריץ פקודות אלה, עברו לתיקיית הפרויקט של OmniRoute (אם שיבטתם אותו) והפעילו אותן. לחלופין, אם הוא הותקן באופן גלובלי, ניתן פשוט להריץ npm uninstall -g omniroute.

פריסה ב-VPS

git clone https://github.com/diegosouzapw/OmniRoute.git
cd OmniRoute && npm install && npm run build

export JWT_SECRET="your-secure-secret-change-this"
export INITIAL_PASSWORD="your-password"
export DATA_DIR="/var/lib/omniroute"
export PORT="20128"
export HOSTNAME="0.0.0.0"
export NODE_ENV="production"
export NEXT_PUBLIC_BASE_URL="http://localhost:20128"
export API_KEY_SECRET="endpoint-proxy-api-key-secret"

npm run start
# או: pm2 start npm --name omniroute -- start

פריסה באמצעות PM2 (צריכת זיכרון נמוכה)

עבור שרתים עם זיכרון RAM מוגבל, השתמשו באפשרות הגבלת הזיכרון:

# עם מגבלה של 512MB (ברירת המחדל)
pm2 start npm --name omniroute -- start

# או עם מגבלת זיכרון מותאמת אישית
OMNIROUTE_MEMORY_MB=512 pm2 start npm --name omniroute -- start

# או באמצעות ecosystem.config.js
pm2 start ecosystem.config.js

צרו את ecosystem.config.js:

module.exports = {
  apps: [
    {
      name: "omniroute",
      script: "npm",
      args: "start",
      env: {
        NODE_ENV: "production",
        OMNIROUTE_MEMORY_MB: "512",
        JWT_SECRET: "your-secret",
        INITIAL_PASSWORD: "your-password",
      },
      node_args: "--max-old-space-size=512",
      max_memory_restart: "300M",
    },
  ],
};

Docker

# בניית image (ברירת המחדל = runner-cli עם codex/claude/droid מותקנים מראש)
docker build -t omniroute:cli .

# מצב נייד (מומלץ)
docker run -d --name omniroute -p 20128:20128 --env-file ./.env -v omniroute-data:/app/data omniroute:cli

למצב המשולב עם המארח וכולל קובצי CLI בינאריים, ראו את סעיף Docker בתיעוד הראשי.

Void Linux (xbps-src)

משתמשי Void Linux יכולים לארוז ולהתקין את OmniRoute באופן מקורי באמצעות מסגרת ההידור הצולב xbps-src. מסגרת זו הופכת לאוטומטיים את בניית החבילה העצמאית של Node.js ואת הקישורים המקוריים הנדרשים של better-sqlite3.

הצגת תבנית xbps-src
# קובץ תבנית עבור 'omniroute'
pkgname=omniroute
version=3.8.0
revision=1
hostmakedepends="nodejs python3 make"
depends="openssl"
short_desc="Universal AI gateway with smart routing for multiple LLM providers"
maintainer="zenobit <zenobit@disroot.org>"
license="MIT"
homepage="https://github.com/diegosouzapw/OmniRoute"
distfiles="https://github.com/diegosouzapw/OmniRoute/archive/refs/tags/v${version}.tar.gz"
checksum=009400afee90a9f32599d8fe734145cfd84098140b7287990183dde45ae2245b
system_accounts="_omniroute"
omniroute_homedir="/var/lib/omniroute"
export NODE_ENV=production
export npm_config_engine_strict=false
export npm_config_loglevel=error
export npm_config_fund=false
export npm_config_audit=false

do_build() {
	# קביעת ארכיטקטורת המעבד היעד עבור 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) התקנת כל יחסי התלות  דילוג על סקריפטים
	NODE_ENV=development npm ci --ignore-scripts

	# 2) בניית החבילה העצמאית של Next.js
	npm run build

	# 3) העתקת נכסים סטטיים אל החבילה העצמאית
	cp -r .next/static .next/standalone/.next/static
	[ -d public ] && cp -r public .next/standalone/public || true

	# 4) הידור הקישור המקורי של better-sqlite3
	local _node_gyp=/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js
	(cd node_modules/better-sqlite3 && node "$_node_gyp" rebuild --arch="$_gyp_arch")

	# 5) הצבת הקישור המהודר בחבילה העצמאית
	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) הסרת חבילות sharp ייעודיות לארכיטקטורה
	rm -rf .next/standalone/node_modules/@img

	# 7) העתקת יחסי התלות בזמן הריצה של pino שהושמטו בניתוח הסטטי של Next.js:
	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

	# מניעת הסרת תיקיות ריקות של נתב היישום של Next.js באמצעות וו שלאחר ההתקנה
	for _d in \
		.next/standalone/.next/server/app/dashboard \
		.next/standalone/.next/server/app/dashboard/settings \
		.next/standalone/.next/server/app/dashboard/providers; do
		touch "${DESTDIR}/usr/lib/omniroute/${_d}/.keep"
	done

	cat > "${WRKDIR}/omniroute" <<'EOF'
#!/bin/sh
export PORT="${PORT:-20128}"
export DATA_DIR="${DATA_DIR:-${XDG_DATA_HOME:-${HOME}/.local/share}/omniroute}"
export APP_LOG_TO_FILE="${APP_LOG_TO_FILE:-false}"
mkdir -p "${DATA_DIR}"
exec node /usr/lib/omniroute/.next/standalone/server.js "$@"
EOF
	vbin "${WRKDIR}/omniroute"
}

post_install() {
	vlicense LICENSE
}

משתני סביבה

משתנה ברירת מחדל תיאור
JWT_SECRET omniroute-default-secret-change-me סוד לחתימת JWT (יש לשנות בסביבת ייצור)
INITIAL_PASSWORD CHANGEME סיסמת ההתחברות הראשונה
DATA_DIR ~/.omniroute ספריית הנתונים (מסד נתונים, שימוש, יומנים)
PORT ברירת המחדל של המסגרת יציאת השירות (20128 בדוגמאות)
HOSTNAME ברירת המחדל של המסגרת כתובת המארח להאזנה (ברירת המחדל של Docker היא 0.0.0.0)
NODE_ENV ברירת המחדל של סביבת הריצה יש להגדיר production לפריסה
NEXT_PUBLIC_BASE_URL http://localhost:20128 כתובת ה-URL הבסיסית הציבורית המוצגת בלוח הבקרה ונחשפת לשרת (מחליפה את BASE_URL הישנה)
NEXT_PUBLIC_CLOUD_URL https://omniroute.dev כתובת ה-URL הבסיסית של נקודת הקצה לסנכרון בענן (מחליפה את CLOUD_URL הישנה)
API_KEY_SECRET endpoint-proxy-api-key-secret סוד HMAC עבור מפתחות API שנוצרו
REQUIRE_API_KEY false אכיפת מפתח API מסוג Bearer ב-/v1/*
ALLOW_API_KEY_REVEAL false מתן אפשרות למשתמשים מאומתים בלוח הבקרה לחשוף לפי דרישה את הערכים המלאים של מפתחות API שמורים
PROVIDER_LIMITS_SYNC_INTERVAL_MINUTES 70 תדירות הרענון בצד השרת עבור נתוני Provider Limits במטמון; כפתורי הרענון בממשק עדיין מפעילים סנכרון ידני
DISABLE_SQLITE_AUTO_BACKUP false השבתת תמונות מצב אוטומטיות של SQLite לפני כתיבה/ייבוא/שחזור; גיבויים ידניים עדיין פועלים
APP_LOG_TO_FILE true הפעלת פלט של יומני היישום והביקורת לדיסק
AUTH_COOKIE_SECURE false אילוץ מאפיין Secure עבור קובץ Cookie לאימות (מאחורי פרוקסי הפוך מסוג HTTPS)
CLOUDFLARED_BIN לא מוגדר שימוש בקובץ בינארי קיים של cloudflared במקום בהורדה מנוהלת
CLOUDFLARED_PROTOCOL http2 תעבורה עבור Quick Tunnels מנוהלות (http2, quic או auto)
OMNIROUTE_MEMORY_MB 512 מגבלת ערימת הזיכרון של Node.js ב-MB
PROMPT_CACHE_MAX_SIZE 50 המספר המרבי של רשומות במטמון ההנחיות
SEMANTIC_CACHE_MAX_SIZE 100 המספר המרבי של רשומות במטמון הסמנטי

לעיון ברשימה המלאה של משתני הסביבה, ראו את README.


📊 מודלים זמינים

הצגת כל המודלים הזמינים

הרשימה שלהלן נבחרה מתוך open-sse/config/providerRegistry.ts עבור v3.8.0. קטלוגים בענן (Gemini, OpenRouter וכו׳) מסונכרנים באופן דינמי — לקטלוג החי המלא, פתחו את לוח הבקרה → ספקים → [ספק] → מודלים זמינים או בצעו קריאה אל GET /api/models/catalog.

אם הרשימה המובנית של ספק אינה מעודכנת, השתמשו באפשרות ייבוא מתוך /models באותו עמוד (או הפעילו סנכרון אוטומטי) כדי למשוך את הקטלוג החי ממקור הספק. הדבר אומת ב-v3.8.50 עבור LLM7.io (gemini-3.1-flash-lite) ועבור UncloseAI (solidrust/Hermes-3-Llama-3.1-8B-AWQ); במהלך אותו סבב בדיקות, הגישה האנונימית של Pollinations נותרה מוגבלת מצד ספק המקור.

Claude Code (cc/) — OAuth מסוג Pro/Max: cc/claude-opus-4-8, cc/claude-opus-4-7, cc/claude-opus-4-6, cc/claude-opus-4-5-20251101, cc/claude-sonnet-4-6, cc/claude-sonnet-4-5-20250929, cc/claude-haiku-4-5-20251001

Codex (cx/) — OAuth מסוג Plus/Pro: cx/gpt-5.5 (+ רמות מאמץ: gpt-5.5-xhigh, gpt-5.5-high, gpt-5.5-medium, gpt-5.5-low), cx/gpt-5.4, cx/gpt-5.4-mini, cx/gpt-5.3-codex, cx/gpt-5.3-codex-spark

GitHub Copilot (gh/) — OAuth: gh/gpt-5.5, gh/gpt-5.4, gh/gpt-5.4-mini, gh/gpt-5-mini, gh/gpt-5.3-codex, gh/claude-opus-4.7, gh/claude-opus-4.6, gh/claude-opus-4-5-20251101, gh/claude-sonnet-4.6, gh/claude-sonnet-4.5, gh/claude-haiku-4.5, gh/gemini-3.1-pro-preview, gh/gemini-3-flash-preview, gh/oswe-vscode-prime

Kiro (kr/) — OAuth בחינם: השתמשו בקטלוג החי המוצג תחת לוח הבקרה → ספקים → Kiro → מודלים זמינים. הזמינות תלויה בחשבון ובתוכנית.

Qoder (if/) — OAuth בחינם: if/qwen3.8-max-preview, if/qwen3.7-max, if/qwen3.7-plus, if/kimi-k3, if/kimi-k2.7-code, if/glm-5.2, if/deepseek-v4-pro, if/deepseek-v4-flash, if/minimax-m3

GLM (glm/, glm-cn/, zai/, glmt/) — $0.20.6/1M: glm/glm-5.1, glm/glm-5, glm/glm-5-turbo, glm/glm-4.7, glm/glm-4.7-flash, glm/glm-4.6, glm/glm-4.6v, glm/glm-4.5, glm/glm-4.5v, glm/glm-4.5-air

MiniMax (minimax/, minimax-cn/) — $0.2/1M: minimax/MiniMax-M2.7, minimax/MiniMax-M2.7-highspeed, minimax/MiniMax-M2.5, minimax/MiniMax-M2.5-highspeed

Kimi (kimi/, kimi-coding/, kimi-coding-apikey/) — $9 לחודש במחיר קבוע או לפי שימוש: kimi/kimi-k2.6, kimi/kimi-k2.5

DeepSeek (ds/) — מפתח API: ds/deepseek-v4-pro, ds/deepseek-v4-flash

Groq (groq/) — מהיר במיוחד: groq/llama-3.3-70b-versatile, groq/meta-llama/llama-4-maverick-17b-128e-instruct, groq/qwen/qwen3-32b, groq/openai/gpt-oss-120b

xAI (xai/) — Grok מקורי: xai/grok-4.3, xai/grok-4.20-multi-agent-0309, xai/grok-4.20-0309-reasoning, xai/grok-4.20-0309-non-reasoning

Mistral (mistral/) — מתארח באיחוד האירופי: mistral/mistral-large-latest, mistral/mistral-medium-3-5, mistral/mistral-small-latest, mistral/devstral-latest, mistral/codestral-latest

Perplexity (pplx/) — מועשר בחיפוש: pplx/sonar-deep-research, pplx/sonar-reasoning-pro, pplx/sonar-pro, pplx/sonar

Together AI (together/) — קוד פתוח: together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free (בחינם), together/meta-llama/Llama-Vision-Free, together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free, together/deepseek-ai/DeepSeek-R1, together/Qwen/Qwen3-235B-A22B, together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8

Fireworks AI (fireworks/) — הסקה מהירה: fireworks/accounts/fireworks/models/kimi-k2p6, fireworks/accounts/fireworks/models/minimax-m2p7, fireworks/accounts/fireworks/models/qwen3p6-plus, fireworks/accounts/fireworks/models/glm-5p1, fireworks/accounts/fireworks/models/deepseek-v4-pro

Cerebras (cerebras/) — בקנה מידה של פרוסת סיליקון: cerebras/zai-glm-4.7, cerebras/gpt-oss-120b

Cohere (cohere/) — ממוקד RAG: cohere/command-a-reasoning-08-2025, cohere/command-a-vision-07-2025, cohere/command-a-03-2025, cohere/command-r-08-2024

NVIDIA NIM (nvidia/) — לארגונים: nvidia/z-ai/glm-5.1, nvidia/minimaxai/minimax-m2.7, nvidia/google/gemma-4-31b-it, nvidia/mistralai/mistral-small-4-119b-2603, nvidia/mistralai/mistral-large-3-675b-instruct-2512, nvidia/qwen/qwen3.5-397b-a17b, nvidia/deepseek-ai/deepseek-v4-pro, nvidia/openai/gpt-oss-120b, nvidia/nvidia/nemotron-3-super-120b-a12b

Baidu Qianfan (qianfan/) — ERNIE: qianfan/ernie-5.1, qianfan/ernie-5.0-thinking-latest, qianfan/ernie-x1.1

Ollama Cloud (ollama-cloud/): ollama-cloud/deepseek-v4-pro, ollama-cloud/deepseek-v4-flash, ollama-cloud/kimi-k2.6, ollama-cloud/glm-5.1, ollama-cloud/minimax-m2.7, ollama-cloud/gemma4:31b, ollama-cloud/qwen3.5:397b

Gemini (Google Cloud gemini/): מסונכרן בזמן אמת מ-Google לפי מפתח API — אין רשימה סטטית. חברו מפתח תחת לוח הבקרה → ספקים, ולאחר מכן השתמשו באפשרות מודלים זמינים כדי לייבא את הקטלוג הנוכחי (למשל gemini/gemini-3-pro, gemini/gemini-3-flash).

ספקים תואמים נוספים (רשימה נבחרת): cohere, databricks, snowflake, together, vertex, alibaba, alibaba-cn, bedrock (דרך aws-bedrock), azure-ai, openrouter (קטלוג מועבר כפי שהוא), siliconflow, hyperbolic, huggingface, featherless-ai, cloudflare-ai, scaleway, deepinfra, vercel-ai-gateway, bazaarlink, friendliai, nous-research, reka, volcengine, ai21, gigachat. כל אחד מהם מתחזק רשימת מודלים משלו ב-providerRegistry.ts, וניתן לסנכרן אותה אוטומטית כאשר הספק חושף נקודת קצה מסוג /models.

הערה לגבי מזהי מודלים: OmniRoute משתמש במזהים המקוריים של הספק (claude-opus-4-8, gpt-5.5, glm-5.1, MiniMax-M2.7, kimi-k2.5, grok-4.20-0309-reasoning). חלק מהמזהים כוללים גרסאות עם נקודות, משום שכך מצפה לקבל אותם ה-API של הספק. אם מודל אינו מופיע לעיל, הפעילו omniroute models --search <term> או פנו אל GET /api/models/catalog כדי לאמת את זמינותו.


🧩 תכונות מתקדמות

מודלים מותאמים אישית

הוסיפו כל מזהה מודל לכל ספק, ללא צורך להמתין לעדכון האפליקציה:

# באמצעות ה-API
curl -X POST http://localhost:20128/api/provider-models \
  -H "Content-Type: application/json" \
  -d '{"provider": "openai", "modelId": "gpt-5.2", "modelName": "GPT-5.2"}'

# הצגה: curl http://localhost:20128/api/provider-models?provider=openai
# הסרה: curl -X DELETE "http://localhost:20128/api/provider-models?provider=openai&model=gpt-5.2"

לחלופין, השתמשו בלוח הבקרה: ספקים → [ספק] → מודלים מותאמים אישית.

הערות:

  • ספקים תואמי OpenRouter ו-OpenAI/Anthropic מנוהלים דרך מודלים זמינים בלבד. הוספה ידנית, ייבוא וסנכרון אוטומטי מגיעים כולם לאותה רשימת מודלים זמינים, ולכן אין מקטע נפרד של מודלים מותאמים אישית עבור ספקים אלה.
  • המקטע מודלים מותאמים אישית מיועד לספקים שאינם מציעים ייבוא מנוהל של מודלים זמינים.

שרשור עמיתי OmniRoute

ניתן להוסיף שער OmniRoute אחר כספק מותאם אישית תואם OpenAI. השתמשו בכתובת ה-URL הבסיסית /v1 של העמית ובמפתח API ייעודי בעל הרשאות מינימליות שהונפק על ידי אותו עמית.

עבור שרשראות הדדיות או מרובות דילוגים, הפעילו את הגנת הלולאה האופציונלית בכל שער:

# gateway-a
OMNIROUTE_INSTANCE_ID=gateway-a
OMNIROUTE_PEER_URLS=http://gateway-b:20128/v1
OMNIROUTE_PEER_MAX_HOPS=4
# gateway-b
OMNIROUTE_INSTANCE_ID=gateway-b
OMNIROUTE_PEER_URLS=http://gateway-a:20128/v1
OMNIROUTE_PEER_MAX_HOPS=4

רק בקשות הנשלחות לכתובת URL של עמית שנכללה במפורש ברשימת ההיתרים מקבלות את הכותרת X-OmniRoute-Peer-Trace. שער דוחה מזהה מופע חוזר או תקציב דילוגים שמוצה באמצעות HTTP 508 Loop Detected; ספקי upstream רגילים אינם מקבלים מטא-נתונים של עמיתים.

שרשור עמיתים אינו שכפול מסד נתונים או מעבר לגיבוי במקרה של כשל במארח. כל שער שומר מצב SQLite, מטמונים, מוני קצב והפעלות נפרדים. עבור זמינות בתצורת פעיל/סביל או פעיל/פעיל, השתמשו בפרוקסי הפוך עם בדיקות תקינות או במעבר לגיבוי מצד הלקוח, ולעולם אל תעגנו מסד נתונים אחד של SQLite למספר מופעי OmniRoute פעילים.

נתיבים ייעודיים לספקים

נתבו בקשות ישירות לספק מסוים, עם אימות המודל:

POST http://localhost:20128/v1/providers/openai/chat/completions
POST http://localhost:20128/v1/providers/openai/embeddings
POST http://localhost:20128/v1/providers/fireworks/images/generations

תחילית הספק נוספת אוטומטית אם היא חסרה. מודלים שאינם תואמים מחזירים 400.

הגדרת פרוקסי רשת

# הגדרת פרוקסי גלובלי
curl -X PUT http://localhost:20128/api/settings/proxy \
  -d '{"global": {"type":"http","host":"proxy.example.com","port":"8080"}}'

# פרוקסי לפי ספק
curl -X PUT http://localhost:20128/api/settings/proxy \
  -d '{"providers": {"openai": {"type":"socks5","host":"proxy.example.com","port":"1080"}}}'

# בדיקת הפרוקסי
curl -X POST http://localhost:20128/api/settings/proxy/test \
  -d '{"proxy":{"type":"socks5","host":"proxy.example.com","port":"1080"}}'

סדר קדימויות: ספציפי למפתח → ספציפי לשילוב → ספציפי לספק → גלובלי → סביבה.

API של קטלוג המודלים

curl http://localhost:20128/api/models/catalog

מחזיר מודלים המקובצים לפי ספק וכוללים סוגים (chat, embedding, image).

סנכרון בענן

  • סנכרון ספקים, שילובים והגדרות בין מכשירים
  • סנכרון רקע אוטומטי עם זמן קצוב וכשל מהיר
  • בסביבת ייצור, העדיפו את NEXT_PUBLIC_BASE_URL/NEXT_PUBLIC_CLOUD_URL בצד השרת

מנהרה מהירה של Cloudflare

  • זמינה דרך לוח הבקרה → נקודות קצה עבור Docker ופריסות אחרות באירוח עצמי
  • יוצרת כתובת URL זמנית בתבנית https://*.trycloudflare.com, המעבירה תעבורה לנקודת הקצה הנוכחית שלכם /v1 התואמת ל-OpenAI
  • בהפעלה הראשונה, cloudflared מותקן רק בעת הצורך; הפעלות מחדש בהמשך משתמשות שוב באותו קובץ בינארי מנוהל
  • מנהרות מהירות אינן משוחזרות אוטומטית לאחר הפעלה מחדש של OmniRoute או של הקונטיינר; הפעילו אותן מחדש מלוח הבקרה בעת הצורך
  • כתובות ה-URL של המנהרות הן ארעיות ומשתנות בכל עצירה והפעלה של המנהרה
  • מנהרות מהירות מנוהלות משתמשות כברירת מחדל בתעבורת HTTP/2, כדי למנוע אזהרות מרובות על מאגר UDP של QUIC בקונטיינרים מוגבלים
  • הגדירו CLOUDFLARED_PROTOCOL=quic או auto אם ברצונכם לעקוף את בחירת התעבורה המנוהלת
  • הגדירו CLOUDFLARED_BIN אם אתם מעדיפים להשתמש בקובץ בינארי cloudflared מותקן מראש במקום בהורדה המנוהלת
  • ניתן להציג או להסתיר את החלוניות של Cloudflare Quick Tunnel, Tailscale Funnel ו-ngrok Tunnel דרך הגדרות → מראה. הסתרת חלונית אינה עוצרת מנהרה פעילה.

יכולות חכמות של שער LLM (שלב 9)

  • מטמון סמנטי — שומר אוטומטית במטמון תגובות שאינן מוזרמות ושבהן temperature=0 (ניתן לעקוף באמצעות X-OmniRoute-No-Cache: true)
  • אידמפוטנטיות של בקשות — מסיר כפילויות מבקשות בתוך 5 שניות באמצעות הכותרת Idempotency-Key או X-Request-Id
  • מעקב התקדמות — אירועי SSE אופציונליים מסוג event: progress באמצעות הכותרת X-OmniRoute-Progress: true

סביבת הניסוי של המתרגם

הגישה זמינה דרך לוח הבקרה → מתרגם. ניפוי שגיאות והמחשה חזותית של האופן שבו OmniRoute מתרגם בקשות API בין ספקים.

מצב מטרה
סביבת ניסוי בחירת תבניות מקור ויעד, הדבקת בקשה והצגה מיידית של הפלט המתורגם
בודק צ'אט שליחת הודעות צ'אט חיות דרך הפרוקסי ובחינת מחזור הבקשה/תגובה המלא
מערך בדיקות הרצת בדיקות באצווה על פני מספר שילובי תבניות כדי לאמת את נכונות התרגום
ניטור חי צפייה בתרגומים בזמן אמת כאשר בקשות זורמות דרך הפרוקסי

מקרי שימוש:

  • ניפוי הסיבה לכשל של שילוב מסוים בין לקוח לספק
  • אימות שתגיות חשיבה, קריאות לכלים והנחיות מערכת מתורגמים כהלכה
  • השוואת הבדלים בתבניות בין OpenAI, Claude, Gemini ותבניות Responses API

אסטרטגיות ניתוב

הגדירו דרך לוח הבקרה → הגדרות → ניתוב. לוח הבקרה מציג את שש האסטרטגיות הנפוצות ביותר; שילובים והנתב האוטומטי תומכים באופן פנימי במגוון רחב יותר.

אסטרטגיות המוצגות בלוח הבקרה (ניתוב ברמת החשבון):

אסטרטגיה תיאור
מילוי ראשון שימוש בחשבונות לפי סדר עדיפות — החשבון הראשי מטפל בכל הבקשות עד שאינו זמין
סבב מחזורי מעבר מחזורי בין כל החשבונות עם מגבלת הצמדה הניתנת להגדרה (ברירת מחדל: 3 קריאות לכל חשבון)
P2C (בחירה מבין שתיים) בחירה אקראית של 2 חשבונות וניתוב לחשבון הבריא יותר — איזון עומסים תוך התחשבות במצב התקינות
אקראי בחירה אקראית של חשבון לכל בקשה באמצעות ערבוב Fisher-Yates
הכי פחות בשימוש ניתוב לחשבון בעל חותמת הזמן lastUsedAt הישנה ביותר, לצורך חלוקה אחידה של התעבורה
מיטוב עלויות ניתוב לחשבון בעל ערך העדיפות הנמוך ביותר, לצורך מיטוב לשימוש בספקים הזולים ביותר

אסטרטגיות מתקדמות לשילובים ולניתוב אוטומטי (ניתנות להגדרה לכל שילוב או באמצעות קידומות auto/* — ראו AUTO-COMBO.md):

  • priority — סדר קפדני, ללא סבב מחזורי
  • weighted — חלוקת תעבורה יחסית לפי משקלים לכל מודל
  • fill-first — מיצוי המודל הראשון עד להגעה למגבלות
  • round-robin / strict-random / random
  • p2c (בחירה מבין שתיים)
  • least-used ו-cost-optimized
  • auto — ניתוב מבוסס ניקוד בין כל המועמדים
  • lkgp (הספק התקין האחרון הידוע) — הצמדה לספק האחרון שהצליח, ולאחר מכן חזרה לכללים
  • context-optimized — בחירת המודל בעל חלון ההקשר הפנוי הגדול ביותר
  • context-relay — שרשור מודלים בעלי הקשר ארוך עבור סבבי המשך

כותרת חיצונית להפעלה מוצמדת

לצורך זיקה להפעלה חיצונית (לדוגמה, סוכני Claude Code/Codex מאחורי שרתי Proxy הפוכים), שלחו:

X-Session-Id: your-session-key

OmniRoute מקבל גם את x_session_id ומחזיר את מפתח ההפעלה שבפועל בתוך X-OmniRoute-Session-Id.

אם אתם משתמשים ב-Nginx ושולחים כותרות עם קווים תחתונים, הפעילו:

underscores_in_headers on;

כינויים למודלים עם תווים כלליים

צרו תבניות עם תווים כלליים למיפוי מחדש של שמות מודלים:

תבנית: claude-sonnet-*     →  יעד: cc/claude-sonnet-4-6
תבנית: gpt-*               →  יעד: gh/gpt-5.3-codex

תווים כלליים תומכים ב-* (תווים כלשהם) וב-? (תו יחיד).

שרשראות גיבוי

הגדירו שרשראות גיבוי גלובליות שחלות על כל הבקשות:

שרשרת: production-fallback
  1. cc/claude-opus-4-7
  2. gh/gpt-5.3-codex
  3. glm/glm-4.7

עמידות ומפסקי זרם

הגדירו דרך לוח הבקרה → הגדרות → עמידות.

OmniRoute מממש עמידות ברמת הספק באמצעות חמישה רכיבים:

  1. תור בקשות וקיצוב — ויסות בקשות ברמת המערכת:

    • בקשות לדקה (RPM) — מספר הבקשות המרבי לדקה לכל חשבון
    • זמן מינימלי בין בקשות — המרווח המינימלי באלפיות השנייה בין בקשות
    • מספר מרבי של בקשות מקבילות — מספר הבקשות המרבי בו-זמנית לכל חשבון
  2. תקופת צינון לחיבור — הגדרה לכל סוג אימות עבור חיבור יחיד לאחר כשלים הניתנים לניסיון חוזר:

    • תקופת צינון בסיסית — חלון הצינון המוגדר כברירת מחדל לכשלי upstream הניתנים לניסיון חוזר
    • שימוש בהנחיות ניסיון חוזר מה-upstream — כיבוד הנחיות מוסמכות מסוג Retry-After או איפוס, כאשר הן מסופקות
    • מספר מרבי של שלבי השהיה — רמת ההשהיה המעריכית המרבית עבור כשלים חוזרים
  3. מפסק זרם של ספק — מעקב אחר כשלי ספק מקצה לקצה, סימון ספק כבעל ביצועים ירודים בסף האזהרה שהוגדר, ופתיחת המפסק כאשר מגיעים לסף הכשל שהוגדר:

    • סף ירידה בביצועים — מספר כשלי הספק הרצופים לפני מעבר למצב DEGRADED
    • סף כשל — מספר כשלי הספק הרצופים לפני מעבר למצב OPEN
    • זמן קצוב לאיפוס — חלון הזמן לפני בדיקה חוזרת של הספק
    • CLOSED (תקין) — הבקשות זורמות כרגיל
    • DEGRADED — הבקשות ממשיכות לזרום תוך מעקב אחר שיעור הכשלים המוגבר
    • OPEN — הספק נחסם זמנית לאחר כשלים חוזרים
    • HALF_OPEN — בדיקה אם הספק התאושש

    מגבלות קצב 429 בהיקף החיבור נשארות תחת תקופת צינון לחיבור ואינן נספרות עבור מפסק הספק.

    מצב זמן הריצה של מפסק הספק מוצג רק תחת לוח הבקרה → תקינות.

  4. המתנה לסיום תקופת הצינון — אם כל החיבורים המועמדים כבר בתקופת צינון, OmniRoute יכול להמתין לסיום תקופת הצינון המוקדמת ביותר ולנסות שוב את אותה בקשת לקוח באופן אוטומטי.

  5. זיהוי אוטומטי של מגבלת קצב — כאשר ספקי upstream מחזירים חלונות המתנה מפורשים, ההנחיות האלה עוקפות את תקופת הצינון המקומית של החיבור כאשר ההגדרה מופעלת.

טיפ מקצועי: השתמשו בדף תקינות כדי לבדוק ולאפס מפסקי ספק פעילים לאחר השבתה. דף העמידות משנה את התצורה בלבד.


ייצוא / ייבוא של מסד הנתונים

נהלו גיבויים של מסד הנתונים דרך לוח הבקרה → הגדרות → מערכת ואחסון.

פעולה תיאור
ייצוא מסד הנתונים הורדת מסד הנתונים הנוכחי של SQLite כקובץ .sqlite
ייצוא הכול (.tar.gz) הורדת ארכיון גיבוי מלא הכולל: מסד נתונים, הגדרות, שילובים, חיבורי ספקים (ללא פרטי גישה) ומטא-נתונים של מפתחות API
ייבוא מסד נתונים העלאת קובץ .sqlite להחלפת מסד הנתונים הנוכחי. גיבוי טרום-ייבוא נוצר אוטומטית, אלא אם DISABLE_SQLITE_AUTO_BACKUP=true
# API: ייצוא מסד הנתונים
curl -o backup.sqlite http://localhost:20128/api/db-backups/export

# API: ייצוא הכול (ארכיון מלא)
curl -o backup.tar.gz http://localhost:20128/api/db-backups/exportAll

# API: ייבוא מסד הנתונים
curl -X POST http://localhost:20128/api/db-backups/import \
  -F "file=@backup.sqlite"

אימות הייבוא: הקובץ המיובא נבדק כדי לוודא את תקינותו (בדיקת pragma של SQLite), את קיומן של הטבלאות הנדרשות (provider_connections, provider_nodes, combos, api_keys) ואת גודלו (לכל היותר 100MB).

תרחישי שימוש:

  • העברת OmniRoute בין מכונות
  • יצירת גיבויים חיצוניים להתאוששות מאסון
  • שיתוף תצורות בין חברי צוות (ייצוא הכול → שיתוף הארכיון)

לוח הבקרה של ההגדרות

דף ההגדרות מאורגן ב-7 לשוניות לניווט קל:

לשונית תוכן
כללי כלי אחסון מערכת, התנהגות ברירת מחדל, נראות מנהרת נקודת הקצה
מראה פקדי ערכת נושא (בהירה/כהה/מערכת), נראות סרגל הצד, מתגים ללוחות כרטיסי המנהרות של Cloudflare/Tailscale/ngrok
AI תקציב חשיבה (העברה ללא שינוי / הסרה אוטומטית / מותאם אישית / מסתגל — ראו THINKING_BUDGET.md), הנחיית מערכת גלובלית, נתוני מטמון הנחיות
אבטחה הגדרות כניסה/סיסמה, בקרת גישה לפי IP, אימות API עבור /models, חסימת ספקים, הגנה מפני הזרקת הנחיות
ניתוב אסטרטגיית ניתוב גלובלית (מילוי ראשון / סבב מחזורי / P2C / אקראי / הכי פחות בשימוש / מיטוב עלויות), כינויי מודלים עם תווים כלליים, שרשראות גיבוי, ברירות מחדל לשילובים
עמידות תור בקשות, תקופת צינון לחיבורים, תצורת מפסק ספקים והתנהגות המתנה לסיום תקופת הצינון
מתקדם תצורת proxy גלובלית (HTTP/SOCKS5), דריסות proxy לכל ספק

הלשונית „כללי” אינה משכפלת עוד הערות לקריאה בלבד בנוגע לרישום ולמטמון. הגדרות השמירה והמיטוב של מסד הנתונים נשמרות דרך /api/settings/database; ניקוי ידני של המטמון מתבצע באמצעות DELETE /api/cache. המכסות למספר השורות ביומני הבקשות וה-proxy נשלטות באמצעות CALL_LOGS_TABLE_MAX_ROWS ו-PROXY_LOGS_TABLE_MAX_ROWS.


ניהול עלויות ותקציב

הגישה מתבצעת דרך לוח הבקרה → עלויות.

לשונית מטרה
תקציב הגדרת מגבלות הוצאה לכל מפתח API, עם תקציבים יומיים/שבועיים/חודשיים ומעקב בזמן אמת
תמחור הצגה ועריכה של רשומות תמחור מודלים — עלות לכל 1K אסימוני קלט/פלט לכל ספק
# API: הגדרת תקציב
curl -X POST http://localhost:20128/api/usage/budget \
  -H "Content-Type: application/json" \
  -d '{"keyId": "key-123", "limit": 50.00, "period": "monthly"}'

# API: קבלת מצב התקציב הנוכחי
curl http://localhost:20128/api/usage/budget

מעקב עלויות: כל בקשה מתעדת את השימוש באסימונים ומחשבת את העלות באמצעות טבלת התמחור. ניתן להציג פילוחים לפי ספק, מודל ומפתח API תחת לוח הבקרה → שימוש.


תמלול שמע

OmniRoute תומך בתמלול שמע באמצעות נקודת הקצה התואמת ל-OpenAI:

POST /v1/audio/transcriptions
Authorization: Bearer your-api-key
Content-Type: multipart/form-data

# דוגמה עם curl
curl -X POST http://localhost:20128/v1/audio/transcriptions \
  -H "Authorization: Bearer your-api-key" \
  -F "file=@audio.mp3" \
  -F "model=openai/whisper-1"

deepgram/nova-3 הוא מסלול Deepgram המקורי ודורש מפתח API של Deepgram. אם מוגדר רק OpenRouter, השתמשו ב-openrouter/deepgram/nova-3.

ספקי דיבור לטקסט (תמלול):

  • openai/ (תואם Whisper)
  • groq/ (Groq Whisper Turbo)
  • deepgram/ (משפחת Nova)
  • assemblyai/
  • nvidia/ (Parakeet, Canary)
  • huggingface/ (גרסאות Whisper)
  • qwen/

ספקי טקסט לדיבור (POST /v1/audio/speech):

  • openai/ (tts-1, tts-1-hd)
  • hyperbolic/
  • deepgram/ (Aura)
  • nvidia/ (Magpie TTS)
  • elevenlabs/
  • huggingface/
  • inworld/
  • cartesia/
  • playht/
  • kie/
  • aws-polly/
  • xiaomi-mimo/
  • coqui/, tortoise/
  • qwen/

תבניות השמע הנתמכות לתמלול: mp3, wav, m4a, flac, ogg, webm. תבניות הפלט של TTS תלויות בספק (mp3, wav, opus, pcm, mulaw).


אסטרטגיות איזון לשילובים

הגדירו איזון לכל שילוב בנפרד תחת לוח הבקרה → שילובים → יצירה/עריכה → אסטרטגיה.

אסטרטגיה תיאור
סבב מחזורי עוברת בין המודלים ברצף
עדיפות תמיד מנסה תחילה את המודל הראשון; עוברת לחלופה רק במקרה של שגיאה
אקראית בוחרת מודל אקראי מהשילוב עבור כל בקשה
משוקללת מנתבת באופן יחסי על סמך המשקלים שהוקצו לכל מודל
הכי פחות בשימוש מנתבת למודל עם מספר הבקשות האחרונות הנמוך ביותר (משתמשת במדדי השילוב)
מותאמת לעלות מנתבת למודל הזמין הזול ביותר (משתמשת בטבלת התמחור)

ניתן להגדיר ברירות מחדל גלובליות לשילובים דרך לוח הבקרה → הגדרות → ניתוב → ברירות מחדל לשילובים. כברירת מחדל, זמני הקצוב של יעדי השילוב יורשים את זמן הקצוב הנוכחי של הבקשה. השתמשו באפשרות זמן קצוב ליעד (שניות) בברירות המחדל לשילובים או בשילוב בודד רק כאשר מגבלה קצרה יותר לכל יעד אמורה להפעיל מעבר מהיר יותר לחלופה.

מיטובי שילוב ללא השהיה דורשים הפעלה מפורשת. השאירו את האפשרות מיטובים ללא השהיה מושבתת כדי למנוע מתכונות השהיה אלה להתחרות ביעדי מעבר לחלופה, לדלג על יעדים על סמך היסטוריית TTFT או לדחוס בקשות מעבר לחלופה; הפעלתה מאפשרת גידור מוגדר, דילוגים חזויים לפי TTFT ודחיסה יזומה של המעבר לחלופה, תוך ויתור מסוים על נאמנות הניתוב/הבקשה לטובת השהיית זנב נמוכה יותר.

השביתו את מאגר אסימוני החשיבה כאשר ספקים במעלה הזרם דורשים מגבלות מחמירות של max_tokens / maxOutputTokens. כאשר האפשרות מופעלת, ניתוב השילוב מוסיף מרווח לאסימוני חשיבה רק עבור מודלים בעלי מגבלת פלט ידועה, ומשאיר את מגבלת האסימונים של הלקוח ללא שינוי כאשר הערך הבטוח הכולל את המאגר היה חורג ממגבלה זו. אם מגבלת הלקוח כבר גבוהה ממגבלה ידועה, OmniRoute מקטינה אותה למגבלה זו לפני שליחת הבקשה במעלה הזרם.


לוח בקרת תקינות

הגישה מתבצעת דרך לוח הבקרה → תקינות. סקירה בזמן אמת של תקינות המערכת, הכוללת 6 כרטיסים:

כרטיס מה הוא מציג
מצב המערכת זמן פעילות, גרסה, שימוש בזיכרון, ספריית נתונים
תקינות הספקים מצב זמן הריצה של מפסקי הזרם הגלובליים של הספקים
מגבלות קצב תקופות צינון פעילות של חיבורים לכל חשבון, כולל הזמן שנותר
חסימות פעילות חסימות פעילות ברמת המודל והחרגות זמניות
מטמון חתימות נתוני מטמון מניעת כפילויות (מפתחות פעילים, שיעור פגיעות)
טלמטריית השהיה צבירת השהיות p50/p95/p99 לכל ספק

טיפ מקצועי: דף התקינות מתרענן אוטומטית כל 10 שניות. השתמשו בכרטיס מפסק הזרם כדי לזהות אילו ספקים חווים בעיות.


🤖 ניתוב אוטומטי (ללא הגדרות)

OmniRoute מגיע עם נתב אוטומטי מבוסס-ניקוד שבוחר את המודל הטוב ביותר לכל בקשה מכל הספקים המחוברים — ללא צורך בתחזוקת שילובים. פשוט שלחו את הבקשה עם אחת מהקידומות auto/*, ו-OmniRoute ירכיב שילוב וירטואלי באופן דינמי, תוך דירוג המועמדים לפי זמן השהיה, עלות, שיעור הצלחה, התאמה לחלון ההקשר, התאמת המודל למשימה, תקלות אחרונות, מכסה ומצב מפסק הזרם.

קידומת מיטוב עבור
auto ברירת מחדל מאוזנת (זמן השהיה × עלות × שיעור הצלחה)
auto/coding משימות תכנות: העדפה ל-Claude, GPT-5, GLM, Kimi, Qwen Coder ולמודלי התכנות של DeepSeek
auto/cheap העלות הנמוכה ביותר לטוקן, עם נכונות לקבל זמן השהיה גבוה יותר
auto/fast זמן ההשהיה הנמוך ביותר, ללא התחשבות בעלות
auto/offline ספקים מקומיים בלבד (Ollama, vLLM, llama.cpp) — שימושי לסביבות מבודדות מהרשת
auto/smart איכות הסקת מסקנות בעדיפות ראשונה (Opus, GPT-5 xhigh, R1, הסקת המסקנות של GLM 5.1)
auto/lkgp "הספק התקין האחרון הידוע" — נצמד לספק האחרון שהצליח, ולאחר מכן חוזר לכללי ברירת המחדל

דוגמה:

curl -X POST http://localhost:20128/v1/chat/completions \
  -H "Authorization: Bearer $OMNIROUTE_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "auto/coding",
    "messages": [{ "role": "user", "content": "Refactor this Python function" }],
    "stream": true
  }'

הנתב האוטומטי מתואר במלואו ב-AUTO-COMBO.md — כולל האופן שבו ניתן לכוונן את משקלי הניקוד, להוסיף ספקים לרשימה שחורה ולבחון החלטות ניתוב תחת לוח הבקרה → שילוב אוטומטי.


🔌 שילוב MCP ו-A2A

OmniRoute הוא גם שרת MCP (פרוטוקול הקשר למודל) וגם שרת A2A (Agent-to-Agent JSON-RPC 2.0). כל סביבת פיתוח או מארח סוכנים התואמים ל-MCP יכולים לקרוא ישירות לכלים של OmniRoute — ללא צורך במעטפת נוספת.

תעבורות MCP

  • SSE: http://localhost:20128/api/mcp/sse
  • HTTP ניתן להזרמה: http://localhost:20128/api/mcp/stream
  • stdio: omniroute --mcp (עבור תוספי סביבת פיתוח שמעדיפים stdio)

חיבור Claude Desktop

ערכו את ~/Library/Application Support/Claude/claude_desktop_config.json (ב-macOS) או את הקובץ המקביל ב-Windows/Linux:

{
  "mcpServers": {
    "omniroute": {
      "command": "omniroute",
      "args": ["--mcp"]
    }
  }
}

חיבור Cursor / Continue / VS Code MCP

השתמשו בכתובת ה-SSE http://localhost:20128/api/mcp/sse ובמפתח API מסוג Bearer שנוצר תחת לוח הבקרה → מפתחות API.

תחומי הרשאה

MCP מגדיר כעת 32 תחומי הרשאה בעלי שם. ניתן להגביל כל מפתח Bearer לתחומי הרשאה מסוימים — ראו MCP-SERVER.md לקבלת הרשימה המוסמכת של תחומי ההרשאה והכלים, ואת A2A-SERVER.md לקבלת סכמת JSON-RPC.


🧠 מערכת המיומנויות

OmniRoute חושפת מסגרת מיומנויות הניתנת להרחבה (src/lib/skills/), כדי שסוכנים ונקודת הקצה A2A יוכלו להריץ תהליכים ייעודיים לתחומים מסוימים (למשל code-review, summarize, extract-facts, web-research).

  • ממשק משתמש של שוק המיומנויות — עיינו במיומנויות והתקינו אותן דרך לוח הבקרה → מיומנויות
  • תחומים לפי מפתח — הגבילו אילו מפתחות API יכולים להפעיל אילו מיומנויות
  • מיומנויות מותאמות אישית — הוסיפו קובץ TypeScript אל src/lib/a2a/skills/, רשמו אותו, והוא יהיה זמין מיד להפעלה דרך A2A

תיעוד מלא: SKILLS.md.


💾 מערכת הזיכרון

OmniRoute שומרת זיכרון שיחתי לטווח ארוך באמצעות אחזור היברידי:

  • SQLite FTS5 לחיפוש מילות מפתח בשיחות קודמות
  • מאגר וקטורי Qdrant (אופציונלי) לאחזור סמנטי
  • חילוץ עובדות אוטומטי — ישויות, העדפות והחלטות מסוכמות לאחר כל הפעלה ונשמרות בטבלה memory_facts
  • הזיכרונות מבודדים לפי מפתח API ולפי הפעלה

נהלו זיכרונות דרך לוח הבקרה → זיכרון (חיפוש, עריכה, ייצוא, מחיקה). ממשק ה-HTTP (/api/memory/*) מאפשר לסוכנים לדחוף עובדות ולבצע עליהן שאילתות באופן תכנותי — ראו MEMORY.md.


🔔 Webhooks

הירשמו לאירועי OmniRoute לצורך ניטור ואוטומציה בזמן אמת.

  • צרו webhook דרך לוח הבקרה → Webhooks עם כתובת URL יעד וסוד חתימה מסוג HMAC
  • אירועים זמינים: request.completed, request.failed, provider.unavailable, budget.exceeded, combo.switched, circuit_breaker.opened, circuit_breaker.closed
  • כל מטען נתונים כולל את X-OmniRoute-Signature (HMAC-SHA256) לצורך אימות
  • ניסיונות חוזרים: 3 ניסיונות עם השהיה מעריכית, ולאחר מכן העברה לתור הודעות כושלות

הסכמה המלאה נמצאת ב-WEBHOOKS.md.


☁️ סוכני ענן

OmniRoute משתלבת עם סוכני תכנות בענן (OpenAI Codex Cloud, Devin, Jules, Antigravity), כך שתוכלו לשלוח משימות ממושכות מאותו לוח בקרה שמטפל בניתוב המקומי שלכם.

  • צרו משימות דרך לוח הבקרה → סוכני ענן או באמצעות POST /api/v1/agents/tasks
  • עקבו אחר הסטטוס, היומנים והתוצרים של כל משימה
  • השתמשו במפתח API משלכם עבור כל ספק — פרטי הגישה לעולם אינם יוצאים ממופע OmniRoute

תיעוד מלא: CLOUD_AGENT.md.


🛠️ ניהול תכנותי

ניתן לנהל כל משאב של OmniRoute (ספקים, שילובים, מפתחות, הגדרות) באמצעות HTTP, תוך שימוש במפתח Bearer עם התחום manage.

צרו את המפתח דרך לוח הבקרה → מפתחות API → מפתח חדש → תחום: manage, ולאחר מכן:

# הצגת רשימת הספקים
curl http://localhost:20128/api/providers \
  -H "Authorization: Bearer $OMNIROUTE_MANAGE_KEY"

# הוספת חיבור לספק
curl -X POST http://localhost:20128/api/providers \
  -H "Authorization: Bearer $OMNIROUTE_MANAGE_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "provider": "openai", "apiKey": "sk-...", "name": "main" }'

# יצירת שילוב
curl -X POST http://localhost:20128/api/combos \
  -H "Authorization: Bearer $OMNIROUTE_MANAGE_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "name": "premium", "strategy": "priority", "models": [{ "model": "cc/claude-opus-4-7" }, { "model": "glm/glm-5.1" }] }'

# הצגה/יצירה של מפתחות API
curl http://localhost:20128/api/keys -H "Authorization: Bearer $OMNIROUTE_MANAGE_KEY"
curl -X POST http://localhost:20128/api/keys -H "Authorization: Bearer $OMNIROUTE_MANAGE_KEY" \
  -d '{ "name": "ci-bot", "scopes": ["chat"] }'

ראו API_REFERENCE.md לקטלוג המלא של נקודות הקצה ולסכמות הבקשות/התגובות.


💻 CLI פנימי

OmniRoute כולל CLI פנימי (omniroute …) להגדרה, לאבחון ולשליטה בזמן ריצה. הוא נפרד מהעמוד "כלי CLI" בלוח הבקרה, שמגדיר כלי CLI של צד שלישי (Claude Code, Cursor, Codex, Cline, …) כדי שיוכלו לתקשר עם OmniRoute.

omniroute setup                    # אשף אינטראקטיבי (סיסמה, ספקים, שילובים)
omniroute setup --non-interactive  # מתאים ל-CI
omniroute doctor                   # אבחון תקינות (ספריית נתונים, מסד נתונים, ספקים, יציאות)
omniroute providers available      # הצגת הספקים הנתמכים
omniroute providers list           # הצגת החיבורים המוגדרים
omniroute providers test <id>      # בדיקה חיה של חיבור לספק
omniroute combos list              # הצגת שילובים
omniroute combos switch <name>     # הגדרת שילוב ברירת המחדל
omniroute models                   # הצגת המודלים הזמינים (--json, --search)
omniroute keys add | list | remove # ניהול מפתחות API מהמסוף
omniroute backup                   # יצירת תמונת מצב של התצורה ומסד הנתונים
omniroute restore [<timestamp>]    # שחזור מתמונת מצב
omniroute health                   # מצב תקינות מפורט (מנתקי מעגל, מטמון, זיכרון)
omniroute quota                    # שימוש במכסת הספק
omniroute mcp status               # מצב שרת MCP
omniroute a2a status               # מצב שרת A2A
omniroute tunnel list|create|stop  # מנהרות Cloudflare/Tailscale/ngrok
omniroute reset-password           # איפוס סיסמת מנהל המערכת
omniroute --mcp                    # הפעלת שרת MCP דרך stdio
omniroute --port 3000              # הפעלת השרת ביציאה מותאמת אישית

טיפ: שלבו את omniroute doctor --json עם כלי הניטור שלכם כדי לקבל התראות על חיבורים לא תקינים לספקים.


🖥️ יישום שולחן עבודה (Electron)

OmniRoute זמין כיישום שולחן עבודה מקורי עבור Windows, macOS ו-Linux.

התקנה

# מתוך הספרייה electron:
cd electron
npm install

# מצב פיתוח (התחברות לשרת הפיתוח הפעיל של Next.js):
npm run dev

# מצב ייצור (משתמש בגרסת build עצמאית):
npm start

בניית תוכניות התקנה

cd electron
npm run build          # הפלטפורמה הנוכחית
npm run build:win      # Windows (.exe NSIS)
npm run build:mac      # macOS (.dmg אוניברסלי)
npm run build:linux    # Linux (.AppImage)

פלט → electron/dist-electron/

תכונות עיקריות

תכונה תיאור
מוכנות השרת בודק את השרת לפני הצגת החלון (ללא מסך ריק)
מגש המערכת מזעור למגש, שינוי יציאה ויציאה מתפריט המגש
ניהול יציאות שינוי יציאת השרת מהמגש (מפעיל מחדש את השרת באופן אוטומטי)
מדיניות אבטחת תוכן CSP מגביל באמצעות כותרות הפעלה
מופע יחיד רק מופע אחד של היישום יכול לפעול בכל רגע
מצב לא מקוון שרת Next.js המצורף פועל ללא אינטרנט

משתני סביבה

משתנה ברירת מחדל תיאור
OMNIROUTE_PORT 20128 יציאת השרת
OMNIROUTE_MEMORY_MB 512 מגבלת ערימת Node.js (6416384 MB)

📖 תיעוד מלא: electron/README.md