Skip to content

Latest commit

 

History

History
1306 lines (937 loc) · 111 KB

USER_GUIDE.md

File metadata and controls

1306 lines (937 loc) · 111 KB

User Guide (हिन्दी)

🌐 Languages: 🇺🇸 English · 🇪🇹 am · 🇸🇦 ar · 🇦🇿 az · 🇧🇬 bg · 🇧🇩 bn · 🇧🇦 bs · 🇨🇿 cs · 🇩🇰 da · 🇩🇪 de · 🇬🇷 el · 🇪🇸 es · 🇪🇪 et · 🇮🇷 fa · 🇫🇮 fi · 🇫🇷 fr · 🇮🇪 ga · 🇮🇳 gu · 🇳🇬 ha · 🇮🇱 he · 🇭🇷 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


🌐 Languages: 🇺🇸 English · 🇪🇹 am · 🇸🇦 ar · 🇦🇿 az · 🇧🇬 bg · 🇧🇩 bn · 🇧🇦 bs · 🇨🇿 cs · 🇩🇰 da · 🇩🇪 de · 🇬🇷 el · 🇪🇸 es · 🇪🇪 et · 🇮🇷 fa · 🇫🇮 fi · 🇫🇷 fr · 🇮🇪 ga · 🇮🇳 gu · 🇳🇬 ha · 🇮🇱 he · 🇭🇷 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

प्रदाताओं को कॉन्फ़िगर करने, कॉम्बो बनाने, 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 उपयोग के अनुसार भुगतान कोई नहीं EU में होस्ट किए गए मॉडल
Perplexity उपयोग के अनुसार भुगतान कोई नहीं खोज-संवर्धित
Together AI उपयोग के अनुसार भुगतान कोई नहीं ओपन-सोर्स मॉडल
Fireworks AI उपयोग के अनुसार भुगतान कोई नहीं तेज़ FLUX इमेज
Cerebras उपयोग के अनुसार भुगतान कोई नहीं वेफ़र-स्केल गति
Cohere उपयोग के अनुसार भुगतान कोई नहीं Command R+ RAG
NVIDIA NIM उपयोग के अनुसार भुगतान कोई नहीं एंटरप्राइज़ मॉडल
Baidu Qianfan उपयोग के अनुसार भुगतान कोई नहीं ERNIE मॉडल
💰 किफ़ायती GLM-4.7 $0.6/1M प्रतिदिन सुबह 10 बजे बजट बैकअप
MiniMax M2.1 $0.2/1M प्रत्येक 5 घंटे में सबसे सस्ता विकल्प
Kimi K2 $9/माह निश्चित 10M टोकन/माह पूर्वानुमानित लागत
🆓 निःशुल्क Qoder $0 प्रदाता की सीमाएँ लागू वर्तमान कैटलॉग सत्यापित करें
Kiro $0 ~50 क्रेडिट/माह निःशुल्क Claude

🎯 उपयोग के मामले

मामला 1: "मेरे पास Claude Pro की सदस्यता है"

समस्या: कोटा बिना उपयोग किए समाप्त हो जाता है, गहन कोडिंग के दौरान दर सीमाएँ लागू हो जाती हैं

कॉम्बो: "maximize-claude"
  1. cc/claude-opus-4-7        (सदस्यता का पूरा उपयोग करें)
  2. glm/glm-4.7               (कोटा समाप्त होने पर किफ़ायती बैकअप)
  3. if/qwen3.8-max-preview       (आपात स्थिति के लिए निःशुल्क फ़ॉलबैक)

मासिक लागत: $20 (सदस्यता) + ~$5 (बैकअप) = कुल $25
बनाम $20 + सीमाओं से टकराना = निराशा

मामला 2: "मुझे कोई लागत नहीं चाहिए"

समस्या: सदस्यताएँ वहन नहीं कर सकता, विश्वसनीय AI कोडिंग की आवश्यकता है

कॉम्बो: "zero-cost"
  1. if/kimi-k2.7-code          (सूचीबद्ध निःशुल्क एक्सेस; दर सीमाएँ लागू हो सकती हैं)
  2. kr/qwen3-coder-next        (Kiro का निःशुल्क फ़ॉलबैक)

मासिक लागत: $0
गुणवत्ता: अपने कार्यभार के लिए मॉडल, सीमाओं, गोपनीयता और SLA को सत्यापित करें

मामला 3: "मुझे बिना किसी रुकावट के 24/7 कोडिंग चाहिए"

समस्या: समय-सीमाएँ हैं, डाउनटाइम वहन नहीं कर सकता

कॉम्बो: "always-on"
  1. cc/claude-opus-4-7        (सर्वोत्तम गुणवत्ता)
  2. cx/gpt-5.5                (दूसरी सदस्यता)
  3. glm/glm-4.7               (किफ़ायती, प्रतिदिन रीसेट होता है)
  4. minimax/MiniMax-M2.1      (सबसे सस्ता, 5 घंटे में रीसेट)
  5. if/deepseek-v4-flash       (सूचीबद्ध निःशुल्क एक्सेस; दर सीमाएँ लागू हो सकती हैं)

परिणाम: 5 फ़ॉलबैक परतें लचीलापन बढ़ाती हैं; अपस्ट्रीम उपलब्धता की गारंटी नहीं है
मासिक लागत: $20-200 (सदस्यताएँ) + $10-20 (बैकअप)

मामला 4: "मुझे OpenClaw में निःशुल्क AI चाहिए"

समस्या: मैसेजिंग ऐप्स में पूरी तरह निःशुल्क 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...

📖 प्रदाता सेटअप

CSV या JSON फ़ाइल से API-कुंजी कनेक्शन थोक में जोड़ने के लिए, डैशबोर्ड → प्रदाता → फ़ाइल से आयात करें का उपयोग करें। कॉलम की स्थिति निर्धारित है (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-संगत रूट, Opus और Sonnet मॉडल के लिए max चिंतन प्रयास को बनाए रखते हैं। 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 कनेक्ट करें
→ GitHub के माध्यम से OAuth
→ मासिक रीसेट (महीने की पहली तारीख)

मॉडल:
  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/1M)

  1. साइन अप करें: Zhipu AI
  2. Coding Plan से API कुंजी प्राप्त करें
  3. डैशबोर्ड → API कुंजी जोड़ें: प्रदाता: glm, API कुंजी: your-key

उपयोग: glm/glm-4.7 — विशेषज्ञ सुझाव: Coding Plan, 1/7 लागत पर 3× कोटा प्रदान करता है! प्रतिदिन सुबह 10:00 बजे रीसेट होता है।

MiniMax M2.1 (5 घंटे में रीसेट, $0.20/1M)

  1. साइन अप करें: MiniMax
  2. API कुंजी प्राप्त करें → डैशबोर्ड → API कुंजी जोड़ें

उपयोग: minimax/MiniMax-M2.1 — विशेषज्ञ सुझाव: लंबे कॉन्टेक्स्ट (1M टोकन) के लिए सबसे सस्ता विकल्प!

Kimi K2 ($9/माह की निश्चित दर)

  1. सदस्यता लें: Moonshot AI
  2. API कुंजी प्राप्त करें → डैशबोर्ड → API कुंजी जोड़ें

उपयोग: kimi/kimi-k2.5 — विशेषज्ञ सुझाव: 10M टोकन के लिए निश्चित $9/माह = $0.90/1M की प्रभावी लागत!

Baidu Qianfan / ERNIE

  1. साइन अप करें: Baidu AI Cloud Qianfan
  2. एक Qianfan API कुंजी बनाएँ → डैशबोर्ड → API कुंजी जोड़ें: प्रदाता: qianfan

उपयोग: qianfan/ernie-5.1, qianfan/ernie-x1.1, या कोई अन्य Qianfan OpenAI-संगत मॉडल ID।

🆓 मुफ़्त प्रदाता

प्रमाणीकरण-रहित मुफ़्त प्रदाताओं के प्रदाता पृष्ठ पर प्रमाणीकरण आवश्यक नहीं है के पास एक स्विच होता है। इसे बंद करने से वह प्रदाता अक्षम हो जाता है, प्रदाता के कॉन्फ़िगर किए गए/संक्षिप्त दृश्यों से हट जाता है, और उसके मॉडल /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

🎨 कॉम्बो

आप प्रत्येक कार्ड के हैंडल को खींचकर सीधे Dashboard → Combos में कॉम्बो कार्ड का क्रम बदल सकते हैं। क्रम SQLite में संग्रहीत होता है और पुनः लोड करने पर बहाल हो जाता है।

उदाहरण 1: सब्सक्रिप्शन का अधिकतम उपयोग → सस्ता बैकअप

Dashboard → Combos → नया बनाएँ

नाम: 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 के माध्यम से रूट करें):

Settings → Models → Advanced:
  OpenAI API Base URL: http://localhost:20128/v1
  OpenAI API Key: [OmniRoute डैशबोर्ड से]
  Model: cc/claude-opus-4-7

OmniRoute को Cursor प्रदाता के रूप में उपयोग करना (OmniRoute अपस्ट्रीम में Cursor को कॉल करता है): प्राथमिकता दें Dashboard → Providers → Cursor → Login with 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-संगत रूट एंडपॉइंट का उपयोग करें। ANTHROPIC_BASE_URL के अंत में /v1 न जोड़ें।

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" }]
      }
    }
  }
}

या Dashboard का उपयोग करें: CLI Tools → OpenClaw → Auto-config

Cline / Continue / RooCode

प्रदाता: OpenAI Compatible
बेस URL: 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 स्वचालित रूप से ~/.omniroute/.env या ./.env से .env लोड करता है।

ट्रे मोड

OmniRoute को सिस्टम ट्रे में शुरू करें:

omniroute serve --tray

सर्वर और ट्रे के तैयार होने के बाद कमांड समाप्त हो जाती है।

सर्वर टर्मिनल के बिना चलता रहता है।

ट्रे मोड macOS, Windows और ग्राफ़िकल Linux सत्रों का समर्थन करता है। ट्रे मोड डैशबोर्ड को स्वचालित रूप से नहीं खोलता।

इन कार्रवाइयों के लिए ट्रे मेन्यू का उपयोग करें:

  • डैशबोर्ड खोलें।
  • /dashboard/logs खोलें।
  • ऑटो-स्टार्ट बदलें।
  • OmniRoute रोकें।

इन विकल्पों के साथ --tray का उपयोग न करें:

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

इन मोड के लिए अलग प्रक्रिया स्वामित्व आवश्यक होता है।

मशीन में अगली बार लॉगिन करने पर स्टार्टअप सक्षम करें:

omniroute autostart enable

ऑटो-स्टार्ट macOS, Windows और ग्राफ़िकल Linux सत्रों पर ट्रे मोड का उपयोग करता है। हेडलेस Linux मौजूदा systemd उपयोगकर्ता सेवा का उपयोग करता है।

लॉगिन के समय स्टार्टअप अक्षम करें:

omniroute autostart disable

अनइंस्टॉल करना

जब आपको OmniRoute की आवश्यकता न रहे, तो हम पूर्ण रूप से हटाने के लिए दो त्वरित स्क्रिप्ट प्रदान करते हैं:

कमांड कार्रवाई
npm run uninstall सिस्टम ऐप को हटाता है, लेकिन ~/.omniroute में आपका DB और कॉन्फ़िगरेशन सुरक्षित रखता है।
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

# इमेज बनाएँ (डिफ़ॉल्ट = 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 उपयोगकर्ता xbps-src क्रॉस-कंपाइलेशन फ़्रेमवर्क का उपयोग करके OmniRoute को मूल रूप से पैकेज और इंस्टॉल कर सकते हैं। यह आवश्यक better-sqlite3 नेटिव बाइंडिंग के साथ Node.js स्टैंडअलोन बिल्ड को स्वचालित करता है।

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 के लिए लक्ष्य CPU आर्किटेक्चर निर्धारित करें
	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) Next.js स्टैटिक विश्लेषण द्वारा छोड़ी गई pino रनटाइम डिपेंडेंसी कॉपी करें:
	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 डेटा डायरेक्टरी (db, उपयोग, लॉग)
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 जनरेट की गई API कुंजियों के लिए HMAC सीक्रेट
REQUIRE_API_KEY false /v1/* पर Bearer API कुंजी अनिवार्य करें
ALLOW_API_KEY_REVEAL false प्रमाणीकृत डैशबोर्ड उपयोगकर्ताओं को माँग पर संग्रहीत API कुंजी के पूर्ण मान देखने की अनुमति दें
PROVIDER_LIMITS_SYNC_INTERVAL_MINUTES 70 कैश किए गए Provider Limits डेटा के लिए सर्वर-साइड रीफ़्रेश अंतराल; UI रीफ़्रेश बटन अब भी मैन्युअल सिंक शुरू करते हैं
DISABLE_SQLITE_AUTO_BACKUP false लिखने/इम्पोर्ट/रीस्टोर से पहले स्वचालित SQLite स्नैपशॉट अक्षम करें; मैन्युअल बैकअप फिर भी काम करते हैं
APP_LOG_TO_FILE true डिस्क पर एप्लिकेशन और ऑडिट लॉग आउटपुट सक्षम करता है
AUTH_COOKIE_SECURE false Secure प्रमाणीकरण कुकी अनिवार्य करें (HTTPS रिवर्स प्रॉक्सी के पीछे)
CLOUDFLARED_BIN सेट नहीं प्रबंधित डाउनलोड के बजाय मौजूदा cloudflared बाइनरी का उपयोग करें
CLOUDFLARED_PROTOCOL http2 प्रबंधित Quick Tunnels के लिए ट्रांसपोर्ट (http2, quic, या auto)
OMNIROUTE_MEMORY_MB 512 MB में Node.js हीप सीमा
PROMPT_CACHE_MAX_SIZE 50 प्रॉम्प्ट कैश प्रविष्टियों की अधिकतम संख्या
SEMANTIC_CACHE_MAX_SIZE 100 सिमेंटिक कैश प्रविष्टियों की अधिकतम संख्या

पर्यावरण वेरिएबल के संपूर्ण संदर्भ के लिए, README देखें।


📊 उपलब्ध मॉडल

सभी उपलब्ध मॉडल देखें

नीचे दी गई सूची v3.8.0 के लिए open-sse/config/providerRegistry.ts से संकलित की गई है। क्लाउड कैटलॉग (Gemini, OpenRouter आदि) डायनेमिक रूप से सिंक किए जाते हैं — संपूर्ण लाइव कैटलॉग के लिए Dashboard → Providers → [provider] → Available Models खोलें या GET /api/models/catalog कॉल करें।

यदि किसी प्रोवाइडर की अंतर्निहित सूची पुरानी हो गई है, तो लाइव अपस्ट्रीम कैटलॉग प्राप्त करने के लिए उस पेज पर Import from /models का उपयोग करें (या Auto-Sync सक्षम करें)। इसे LLM7.io (gemini-3.1-flash-lite) और UncloseAI (solidrust/Hermes-3-Llama-3.1-8B-AWQ) के लिए v3.8.50 में सत्यापित किया गया था; उसी परीक्षण चक्र के दौरान Pollinations की अनाम पहुँच अपस्ट्रीम द्वारा सीमित रही।

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

Codex (cx/) — Plus/Pro OAuth: cx/gpt-5.5 (+ प्रयास स्तर: 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: Dashboard → Providers → Kiro → Available Models के अंतर्गत दिखाए गए लाइव कैटलॉग का उपयोग करें। उपलब्धता खाते और प्लान पर निर्भर करती है।

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.2–0.6/1M: glm/glm-5.1, glm/glm-5, glm/glm-5-turbo, glm/glm-4.7, glm/glm-4.7-flash, glm/glm-4.6, glm/glm-4.6v, glm/glm-4.5, glm/glm-4.5v, glm/glm-4.5-air

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

Kimi (kimi/, kimi-coding/, kimi-coding-apikey/) — $9/माह की एकमुश्त दर या प्रति-उपयोग: 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/) — EU में होस्ट किया गया: 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 कुंजी के अनुसार लाइव सिंक किया जाता है — कोई स्थिर सूची नहीं है। Dashboard → Providers में एक कुंजी कनेक्ट करें, फिर मौजूदा कैटलॉग आयात करने के लिए Available Models का उपयोग करें (उदा. 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 एंडपॉइंट उपलब्ध कराता है, तो उसे स्वतः सिंक किया जा सकता है।

मॉडल ID के बारे में नोट: OmniRoute प्रोवाइडर-नेटिव ID (claude-opus-4-8, gpt-5.5, glm-5.1, MiniMax-M2.7, kimi-k2.5, grok-4.20-0309-reasoning) का उपयोग करता है। कुछ ID में बिंदु वाले वर्ज़न शामिल होते हैं, क्योंकि अपस्ट्रीम API उन्हें इसी रूप में अपेक्षित करता है। यदि कोई मॉडल ऊपर सूचीबद्ध नहीं है, तो उपलब्धता की पुष्टि करने के लिए omniroute models --search <term> चलाएँ या GET /api/models/catalog पर अनुरोध भेजें।


🧩 उन्नत सुविधाएँ

कस्टम मॉडल

ऐप अपडेट की प्रतीक्षा किए बिना किसी भी प्रोवाइडर में कोई भी मॉडल ID जोड़ें:

# 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-संगत प्रोवाइडर के रूप में जोड़ा जा सकता है। पीयर के /v1 बेस URL और उस पीयर द्वारा जारी समर्पित, न्यूनतम-विशेषाधिकार वाली 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 हेडर मिलता है। गेटवे दोहराई गई इंस्टेंस ID या समाप्त हो चुके हॉप बजट को HTTP 508 Loop Detected के साथ अस्वीकार करता है; सामान्य अपस्ट्रीम प्रोवाइडर को कोई पीयर मेटाडेटा नहीं मिलता।

पीयर चेनिंग डेटाबेस प्रतिकृति या होस्ट फेलओवर नहीं है। प्रत्येक गेटवे स्वतंत्र 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 और अन्य स्वयं-होस्ट किए गए डिप्लॉयमेंट के लिए डैशबोर्ड → एंडपॉइंट्स में उपलब्ध
  • एक अस्थायी https://*.trycloudflare.com URL बनाता है, जो आपके वर्तमान OpenAI-संगत /v1 एंडपॉइंट पर फ़ॉरवर्ड करता है
  • पहली बार सक्षम करने पर केवल आवश्यकता होने पर cloudflared इंस्टॉल होता है; बाद के रीस्टार्ट उसी प्रबंधित बाइनरी का पुनः उपयोग करते हैं
  • OmniRoute या कंटेनर रीस्टार्ट के बाद क्विक टनल स्वतः पुनर्स्थापित नहीं होते; आवश्यकता होने पर उन्हें डैशबोर्ड से फिर से सक्षम करें
  • टनल URL अस्थायी होते हैं और हर बार टनल को रोकने/शुरू करने पर बदल जाते हैं
  • सीमित कंटेनरों में शोरपूर्ण QUIC UDP बफ़र चेतावनियों से बचने के लिए प्रबंधित क्विक टनल डिफ़ॉल्ट रूप से HTTP/2 ट्रांसपोर्ट का उपयोग करते हैं
  • यदि आप प्रबंधित ट्रांसपोर्ट विकल्प को ओवरराइड करना चाहते हैं, तो CLOUDFLARED_PROTOCOL=quic या auto सेट करें
  • यदि आप प्रबंधित डाउनलोड के बजाय पहले से इंस्टॉल किए गए cloudflared बाइनरी का उपयोग करना चाहते हैं, तो CLOUDFLARED_BIN सेट करें
  • Cloudflare क्विक टनल, Tailscale Funnel और ngrok Tunnel पैनल को सेटिंग्स → स्वरूप में दिखाया या छिपाया जा सकता है। किसी पैनल को छिपाने से चल रही टनल बंद नहीं होती।

LLM गेटवे इंटेलिजेंस (चरण 9)

  • सिमेंटिक कैश — नॉन-स्ट्रीमिंग, temperature=0 प्रतिक्रियाओं को स्वतः कैश करता है (X-OmniRoute-No-Cache: true से बायपास करें)
  • अनुरोध आइडेम्पोटेंसी — Idempotency-Key या X-Request-Id हेडर के माध्यम से 5 सेकंड के भीतर अनुरोधों की डुप्लिकेशन हटाता है
  • प्रगति ट्रैकिंग — X-OmniRoute-Progress: true हेडर के माध्यम से ऑप्ट-इन SSE event: progress इवेंट

ट्रांसलेटर प्लेग्राउंड

डैशबोर्ड → ट्रांसलेटर के माध्यम से एक्सेस करें। डीबग करें और विज़ुअलाइज़ करें कि OmniRoute प्रोवाइडर के बीच API अनुरोधों का अनुवाद कैसे करता है।

मोड उद्देश्य
प्लेग्राउंड स्रोत/लक्ष्य फ़ॉर्मैट चुनें, अनुरोध पेस्ट करें और अनुवादित आउटपुट तुरंत देखें
चैट टेस्टर प्रॉक्सी के माध्यम से लाइव चैट संदेश भेजें और पूरे अनुरोध/प्रतिक्रिया चक्र का निरीक्षण करें
टेस्ट बेंच अनुवाद की शुद्धता सत्यापित करने के लिए एकाधिक फ़ॉर्मैट संयोजनों पर बैच परीक्षण चलाएँ
लाइव मॉनिटर प्रॉक्सी से अनुरोध प्रवाहित होते समय रियल-टाइम अनुवाद देखें

उपयोग के मामले:

  • डीबग करें कि कोई विशिष्ट क्लाइंट/प्रोवाइडर संयोजन विफल क्यों होता है
  • सत्यापित करें कि थिंकिंग टैग, टूल कॉल और सिस्टम प्रॉम्प्ट सही ढंग से अनुवादित होते हैं
  • OpenAI, Claude, Gemini और Responses API फ़ॉर्मैट के बीच अंतर की तुलना करें

रूटिंग रणनीतियाँ

Dashboard → Settings → Routing के माध्यम से कॉन्फ़िगर करें। डैशबोर्ड छह सर्वाधिक उपयोग की जाने वाली रणनीतियाँ प्रदर्शित करता है; कॉम्बो और ऑटो-राउटर आंतरिक रूप से अधिक व्यापक सेट का समर्थन करते हैं।

डैशबोर्ड पर दिखाई देने वाली रणनीतियाँ (खाता-स्तरीय रूटिंग):

रणनीति विवरण
Fill First प्राथमिकता क्रम में खातों का उपयोग करता है — प्राथमिक खाता अनुपलब्ध होने तक सभी अनुरोध संभालता है
Round Robin कॉन्फ़िगर करने योग्य स्टिकी सीमा के साथ सभी खातों पर चक्रीय रूप से जाता है (डिफ़ॉल्ट: प्रति खाता 3 कॉल)
P2C (Power of Two Choices) 2 यादृच्छिक खाते चुनता है और अधिक स्वस्थ खाते पर रूट करता है — स्वास्थ्य को ध्यान में रखते हुए लोड संतुलित करता है
Random Fisher-Yates शफ़ल का उपयोग करके प्रत्येक अनुरोध के लिए यादृच्छिक रूप से एक खाता चुनता है
Least Used सबसे पुराने lastUsedAt टाइमस्टैम्प वाले खाते पर रूट करता है, जिससे ट्रैफ़िक समान रूप से वितरित होता है
Cost Optimized सबसे कम प्राथमिकता मान वाले खाते पर रूट करता है, जिससे सबसे कम लागत वाले प्रदाताओं के लिए अनुकूलन होता है

उन्नत कॉम्बो और ऑटो रणनीतियाँ (प्रति कॉम्बो या auto/* प्रीफ़िक्स के माध्यम से कॉन्फ़िगर की जा सकती हैं — AUTO-COMBO.md देखें):

  • priority — सख्त क्रम, कभी भी राउंड-रॉबिन नहीं करता
  • weighted — प्रति-मॉडल भार के अनुसार आनुपातिक ट्रैफ़िक विभाजन
  • fill-first — सीमाएँ पूरी होने तक पहले मॉडल का उपयोग करता है
  • round-robin / strict-random / random
  • p2c (Power of Two Choices)
  • least-used और cost-optimized
  • auto — सभी उम्मीदवारों में स्कोर-आधारित चयन
  • lkgp (Last Known Good Provider) — अंतिम सफल प्रदाता पर स्थिर रहता है, फिर नियमों पर फ़ॉलबैक करता है
  • context-optimized — सबसे बड़ी खाली कॉन्टेक्स्ट विंडो वाला मॉडल चुनता है
  • context-relay — फ़ॉलो-अप टर्न के लिए लंबे-कॉन्टेक्स्ट वाले मॉडलों को श्रृंखलाबद्ध करता है

बाहरी स्टिकी सेशन हेडर

बाहरी सेशन एफ़िनिटी के लिए (उदाहरण के लिए, रिवर्स प्रॉक्सी के पीछे Claude Code/Codex एजेंट), यह भेजें:

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

प्रत्यास्थता और सर्किट ब्रेकर

Dashboard → Settings → Resilience के माध्यम से कॉन्फ़िगर करें।

OmniRoute पाँच घटकों के साथ प्रदाता-स्तरीय प्रत्यास्थता लागू करता है:

  1. अनुरोध कतार और पेसिंग — सिस्टम-स्तरीय अनुरोध आकार-निर्धारण:

    • प्रति मिनट अनुरोध (RPM) — प्रति खाता प्रति मिनट अनुरोधों की अधिकतम संख्या
    • अनुरोधों के बीच न्यूनतम समय — अनुरोधों के बीच मिलीसेकंड में न्यूनतम अंतराल
    • अधिकतम समवर्ती अनुरोध — प्रति खाता एक साथ किए जा सकने वाले अनुरोधों की अधिकतम संख्या
  2. कनेक्शन कूलडाउन — पुनः प्रयास योग्य विफलताओं के बाद एकल कनेक्शन के लिए प्रति-प्रमाणीकरण-प्रकार कॉन्फ़िगरेशन:

    • बेस कूलडाउन — पुनः प्रयास योग्य अपस्ट्रीम विफलताओं के लिए डिफ़ॉल्ट कूलडाउन अवधि
    • अपस्ट्रीम पुनः प्रयास संकेतों का उपयोग करें — उपलब्ध कराए जाने पर प्रामाणिक Retry-After या रीसेट संकेतों का पालन करता है
    • अधिकतम बैकऑफ़ चरण — बार-बार होने वाली विफलताओं के लिए अधिकतम एक्सपोनेंशियल बैकऑफ़ स्तर
  3. प्रदाता सर्किट ब्रेकर — प्रदाता की एंड-टू-एंड विफलताओं को ट्रैक करता है, कॉन्फ़िगर की गई चेतावनी सीमा पर प्रदाता को डिग्रेडेड के रूप में चिह्नित करता है और कॉन्फ़िगर की गई विफलता सीमा पूरी होने पर ब्रेकर खोलता है:

    • डिग्रेडेशन सीमा — DEGRADED स्थिति में प्रवेश करने से पहले प्रदाता की लगातार विफलताओं की संख्या
    • विफलता सीमा — OPEN स्थिति में प्रवेश करने से पहले प्रदाता की लगातार विफलताओं की संख्या
    • रीसेट टाइमआउट — प्रदाता का दोबारा परीक्षण किए जाने से पहले की समयावधि
    • CLOSED (स्वस्थ) — अनुरोध सामान्य रूप से प्रवाहित होते हैं
    • DEGRADED — बढ़ी हुई विफलताओं को ट्रैक करते हुए अनुरोध प्रवाहित होते रहते हैं
    • OPEN — बार-बार विफलताओं के बाद प्रदाता को अस्थायी रूप से ब्लॉक कर दिया जाता है
    • HALF_OPEN — परीक्षण किया जा रहा है कि प्रदाता पुनः ठीक हुआ है या नहीं

    कनेक्शन-स्कोप वाली 429 दर सीमाएँ कनेक्शन कूलडाउन में रहती हैं और प्रदाता ब्रेकर में नहीं गिनी जातीं।

    प्रदाता ब्रेकर की रनटाइम स्थिति केवल Dashboard → Health पर दिखाई जाती है।

  4. कूलडाउन की प्रतीक्षा — यदि प्रत्येक उम्मीदवार कनेक्शन पहले से कूलडाउन में है, तो OmniRoute सबसे पहले समाप्त होने वाले कूलडाउन की प्रतीक्षा कर सकता है और उसी क्लाइंट अनुरोध को स्वचालित रूप से पुनः प्रयास कर सकता है।

  5. दर सीमा का स्वतः पता लगाना — जब अपस्ट्रीम प्रदाता स्पष्ट प्रतीक्षा अवधियाँ लौटाते हैं, तो सेटिंग सक्षम होने पर वे संकेत स्थानीय कनेक्शन कूलडाउन को ओवरराइड करते हैं।

विशेष सुझाव: आउटेज के बाद सक्रिय प्रदाता ब्रेकरों का निरीक्षण और रीसेट करने के लिए Health पेज का उपयोग करें। Resilience पेज केवल कॉन्फ़िगरेशन बदलता है।


डेटाबेस एक्सपोर्ट / इंपोर्ट

डेटाबेस बैकअप को Dashboard → Settings → System & Storage में प्रबंधित करें।

कार्रवाई विवरण
डेटाबेस निर्यात करें वर्तमान 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"

आयात सत्यापन: आयातित फ़ाइल की अखंडता (SQLite pragma जाँच), आवश्यक तालिकाओं (provider_connections, provider_nodes, combos, api_keys) और आकार (अधिकतम 100MB) के लिए सत्यापन किया जाता है।

उपयोग के मामले:

  • OmniRoute को मशीनों के बीच माइग्रेट करें
  • आपदा पुनर्प्राप्ति के लिए बाहरी बैकअप बनाएँ
  • टीम के सदस्यों के बीच कॉन्फ़िगरेशन साझा करें (सभी निर्यात करें → संग्रह साझा करें)

सेटिंग्स डैशबोर्ड

आसान नेविगेशन के लिए सेटिंग्स पृष्ठ को 7 टैब में व्यवस्थित किया गया है:

टैब सामग्री
सामान्य सिस्टम स्टोरेज टूल, डिफ़ॉल्ट व्यवहार, Endpoint टनल दृश्यता
दिखावट थीम नियंत्रण (लाइट/डार्क/सिस्टम), साइडबार दृश्यता, Cloudflare/Tailscale/ngrok टनल कार्ड के लिए पैनल टॉगल
AI थिंकिंग बजट (पासथ्रू / स्वतः हटाना / कस्टम / अनुकूली — THINKING_BUDGET.md देखें), वैश्विक सिस्टम प्रॉम्प्ट, प्रॉम्प्ट कैश आँकड़े
सुरक्षा लॉगिन/पासवर्ड सेटिंग्स, IP अभिगम नियंत्रण, /models के लिए API प्रमाणीकरण, प्रोवाइडर ब्लॉकिंग, प्रॉम्प्ट-इंजेक्शन सुरक्षा
रूटिंग वैश्विक रूटिंग रणनीति (पहले भरें / राउंड रॉबिन / P2C / यादृच्छिक / सबसे कम उपयोग किया गया / लागत अनुकूलित), वाइल्डकार्ड मॉडल उपनाम, फ़ॉलबैक शृंखलाएँ, कॉम्बो डिफ़ॉल्ट
लचीलापन अनुरोध कतार, कनेक्शन कूलडाउन, प्रोवाइडर ब्रेकर कॉन्फ़िगरेशन और कूलडाउन की प्रतीक्षा का व्यवहार
उन्नत वैश्विक प्रॉक्सी कॉन्फ़िगरेशन (HTTP/SOCKS5), प्रत्येक प्रोवाइडर के लिए प्रॉक्सी ओवरराइड

सामान्य टैब में अब केवल-पढ़ने योग्य लॉगिंग और कैश नोट्स की पुनरावृत्ति नहीं होती। डेटाबेस प्रतिधारण और अनुकूलन सेटिंग्स /api/settings/database के माध्यम से सहेजी जाती हैं; कैश को मैन्युअल रूप से साफ़ करने के लिए DELETE /api/cache का उपयोग किया जाता है। अनुरोध और प्रॉक्सी लॉग की पंक्ति सीमाएँ 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 रूट है और इसके लिए Deepgram API कुंजी आवश्यक है। यदि केवल 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)।


कॉम्बो संतुलन रणनीतियाँ

प्रत्येक कॉम्बो के लिए संतुलन को डैशबोर्ड → कॉम्बो → बनाएँ/संपादित करें → रणनीति में कॉन्फ़िगर करें।

रणनीति विवरण
राउंड-रॉबिन क्रमिक रूप से मॉडलों के बीच चक्रानुक्रम करता है
प्राथमिकता हमेशा पहले मॉडल को आज़माता है; केवल त्रुटि होने पर फ़ॉलबैक करता है
यादृच्छिक प्रत्येक अनुरोध के लिए कॉम्बो से एक यादृच्छिक मॉडल चुनता है
भारित प्रत्येक मॉडल को दिए गए भार के आधार पर आनुपातिक रूप से रूट करता है
सबसे कम उपयोग सबसे कम हालिया अनुरोधों वाले मॉडल को रूट करता है (कॉम्बो मेट्रिक्स का उपयोग करता है)
लागत-अनुकूलित उपलब्ध सबसे सस्ते मॉडल को रूट करता है (मूल्य-निर्धारण तालिका का उपयोग करता है)

वैश्विक कॉम्बो डिफ़ॉल्ट Dashboard → Settings → Routing → Combo Defaults में सेट किए जा सकते हैं। डिफ़ॉल्ट रूप से कॉम्बो लक्ष्य टाइमआउट वर्तमान अनुरोध टाइमआउट को इनहेरिट करते हैं। कॉम्बो डिफ़ॉल्ट या किसी व्यक्तिगत कॉम्बो पर Target timeout (seconds) का उपयोग केवल तभी करें, जब प्रति-लक्ष्य की छोटी सीमा से अधिक तेज़ फ़ॉलबैक ट्रिगर होना चाहिए।

शून्य-विलंबता कॉम्बो अनुकूलन ऑप्ट-इन हैं। इन विलंबता सुविधाओं को फ़ॉलबैक लक्ष्यों के साथ प्रतिस्पर्धा करने, TTFT इतिहास के आधार पर लक्ष्यों को छोड़ने या फ़ॉलबैक अनुरोधों को संपीड़ित करने से रोकने के लिए Zero-latency optimizations को अक्षम रखें; इसे सक्षम करने से कॉन्फ़िगर की गई हेजिंग, पूर्वानुमानित TTFT स्किप और सक्रिय फ़ॉलबैक संपीड़न, कम टेल विलंबता के बदले रूटिंग/अनुरोध निष्ठा से समझौता कर सकते हैं।

जब अपस्ट्रीम प्रदाताओं को सख्त max_tokens / maxOutputTokens सीमाओं की आवश्यकता हो, तो Reasoning token buffer अक्षम करें। सक्षम होने पर, कॉम्बो रूटिंग केवल ज्ञात आउटपुट सीमा वाले मॉडलों के लिए रीजनिंग-मॉडल हेडरूम जोड़ती है और जब सुरक्षित बफ़र किया गया मान उस सीमा से अधिक हो जाए, तब क्लाइंट टोकन सीमा को अपरिवर्तित छोड़ देती है। यदि क्लाइंट सीमा पहले से ही किसी ज्ञात सीमा से अधिक है, तो OmniRoute अपस्ट्रीम अनुरोध भेजने से पहले उसे घटाकर उस सीमा तक सीमित कर देता है।


स्वास्थ्य डैशबोर्ड

Dashboard → Health के माध्यम से पहुँचें। 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 reasoning)
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 सर्वर (Model Context Protocol) और एक A2A सर्वर (Agent-to-Agent JSON-RPC 2.0), दोनों है। कोई भी MCP-संगत IDE या एजेंट होस्ट OmniRoute टूल्स को सीधे कॉल कर सकता है — किसी अतिरिक्त रैपर की आवश्यकता नहीं।

MCP ट्रांसपोर्ट

  • SSE: http://localhost:20128/api/mcp/sse
  • स्ट्रीम करने योग्य HTTP: http://localhost:20128/api/mcp/stream
  • stdio: omniroute --mcp (उन IDE प्लगइन्स के लिए जो stdio को प्राथमिकता देते हैं)

Claude Desktop कनेक्ट करें

~/Library/Application Support/Claude/claude_desktop_config.json (macOS) या Windows/Linux में इसके समकक्ष को संपादित करें:

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

Cursor / Continue / VS Code MCP कनेक्ट करें

SSE URL http://localhost:20128/api/mcp/sse और डैशबोर्ड → API कुंजियाँ में जनरेट की गई Bearer API कुंजी का उपयोग करें।

स्कोप

MCP वर्तमान में 32 नामित स्कोप परिभाषित करता है। प्रत्येक Bearer कुंजी को विशिष्ट स्कोप तक सीमित किया जा सकता है — प्रामाणिक स्कोप और टूल सूची के लिए MCP-SERVER.md और JSON-RPC स्कीमा के लिए A2A-SERVER.md देखें।


🧠 स्किल्स सिस्टम

OmniRoute एक विस्तार योग्य स्किल फ़्रेमवर्क (src/lib/skills/) उपलब्ध कराता है, ताकि एजेंट और A2A एंडपॉइंट डोमेन-विशिष्ट रूटीन (जैसे code-review, summarize, extract-facts, web-research) चला सकें।

  • मार्केटप्लेस UI — Dashboard → Skills से स्किल्स ब्राउज़ और इंस्टॉल करें
  • प्रति-कुंजी स्कोप — निर्धारित करें कि कौन-सी API कुंजियाँ किन स्किल्स को कॉल कर सकती हैं
  • कस्टम स्किल्स — src/lib/a2a/skills/ में एक TypeScript फ़ाइल जोड़ें, उसे रजिस्टर करें, और वह तुरंत A2A के माध्यम से कॉल करने योग्य बन जाती है

पूर्ण संदर्भ: SKILLS.md।


💾 मेमोरी सिस्टम

OmniRoute हाइब्रिड पुनर्प्राप्ति के साथ दीर्घकालिक संवादात्मक मेमोरी को स्थायी रूप से संग्रहीत करता है:

  • पिछले संवादों में कीवर्ड खोज के लिए SQLite FTS5
  • अर्थगत पुनःस्मरण के लिए Qdrant vector store (वैकल्पिक)
  • स्वचालित तथ्य निष्कर्षण — प्रत्येक सत्र के बाद इकाइयों, प्राथमिकताओं और निर्णयों का सारांश बनाकर उन्हें memory_facts तालिका में संग्रहीत किया जाता है
  • मेमोरीज़ को प्रत्येक API कुंजी और प्रत्येक सत्र के अनुसार सीमित किया जाता है

Dashboard → Memory में मेमोरीज़ प्रबंधित करें (खोजें, संपादित करें, निर्यात करें, हटाएँ)। HTTP इंटरफ़ेस (/api/memory/*) एजेंटों को प्रोग्रामेटिक रूप से तथ्य भेजने और क्वेरी करने देता है — MEMORY.md देखें।


🔔 वेबहुक्स

रीयल-टाइम निगरानी और स्वचालन के लिए OmniRoute इवेंट्स की सदस्यता लें।

  • लक्ष्य URL और HMAC साइनिंग सीक्रेट के साथ Dashboard → Webhooks में एक वेबहुक बनाएँ
  • उपलब्ध इवेंट्स: 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) के साथ एकीकृत होता है, ताकि आप उसी डैशबोर्ड से लंबे समय तक चलने वाले कार्य भेज सकें जो आपकी स्थानीय रूटिंग को संभालता है।

  • Dashboard → Cloud Agents में या POST /api/v1/agents/tasks के माध्यम से कार्य बनाएँ
  • प्रत्येक कार्य की स्थिति, लॉग्स और आर्टिफ़ैक्ट्स ट्रैक करें
  • प्रत्येक प्रोवाइडर के लिए अपनी API कुंजी उपयोग करें — क्रेडेंशियल्स कभी भी OmniRoute इंस्टेंस से बाहर नहीं जाते

पूर्ण संदर्भ: CLOUD_AGENT.md।


🛠️ प्रोग्रामेटिक प्रबंधन

आप manage स्कोप वाली Bearer कुंजी का उपयोग करके HTTP के माध्यम से प्रत्येक OmniRoute संसाधन (प्रोवाइडर्स, कॉम्बोज़, कुंजियाँ, सेटिंग्स) प्रबंधित कर सकते हैं।

कुंजी को Dashboard → API Keys → New Key → Scope: 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                   # स्वास्थ्य निदान (डेटा डायरेक्टरी, DB, प्रोवाइडर, पोर्ट)
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                   # कॉन्फ़िगरेशन + DB का स्नैपशॉट बनाएँ
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                    # stdio पर MCP सर्वर शुरू करें
omniroute --port 3000              # कस्टम पोर्ट पर सर्वर शुरू करें

सुझाव: अस्वस्थ प्रोवाइडर कनेक्शन के लिए अलर्ट प्राप्त करने हेतु अपने मॉनिटरिंग टूल के साथ omniroute doctor --json का उपयोग करें।


🖥️ डेस्कटॉप एप्लिकेशन (Electron)

OmniRoute, Windows, macOS और Linux के लिए एक नेटिव डेस्कटॉप एप्लिकेशन के रूप में उपलब्ध है।

इंस्टॉलेशन

# electron डायरेक्टरी से:
cd electron
npm install

# डेवलपमेंट मोड (चल रहे Next.js डेवलपमेंट सर्वर से कनेक्ट होता है):
npm run dev

# प्रोडक्शन मोड (स्टैंडअलोन बिल्ड का उपयोग करता है):
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 हीप सीमा (64–16384 MB)

📖 संपूर्ण दस्तावेज़: electron/README.md