# User Guide (हिन्दी) 🌐 **Languages:** 🇺🇸 [English](../../../../guides/USER_GUIDE.md) · 🇪🇹 [am](../../../am/docs/guides/USER_GUIDE.md) · 🇸🇦 [ar](../../../ar/docs/guides/USER_GUIDE.md) · 🇦🇿 [az](../../../az/docs/guides/USER_GUIDE.md) · 🇧🇬 [bg](../../../bg/docs/guides/USER_GUIDE.md) · 🇧🇩 [bn](../../../bn/docs/guides/USER_GUIDE.md) · 🇧🇦 [bs](../../../bs/docs/guides/USER_GUIDE.md) · 🇨🇿 [cs](../../../cs/docs/guides/USER_GUIDE.md) · 🇩🇰 [da](../../../da/docs/guides/USER_GUIDE.md) · 🇩🇪 [de](../../../de/docs/guides/USER_GUIDE.md) · 🇬🇷 [el](../../../el/docs/guides/USER_GUIDE.md) · 🇪🇸 [es](../../../es/docs/guides/USER_GUIDE.md) · 🇪🇪 [et](../../../et/docs/guides/USER_GUIDE.md) · 🇮🇷 [fa](../../../fa/docs/guides/USER_GUIDE.md) · 🇫🇮 [fi](../../../fi/docs/guides/USER_GUIDE.md) · 🇫🇷 [fr](../../../fr/docs/guides/USER_GUIDE.md) · 🇮🇪 [ga](../../../ga/docs/guides/USER_GUIDE.md) · 🇮🇳 [gu](../../../gu/docs/guides/USER_GUIDE.md) · 🇳🇬 [ha](../../../ha/docs/guides/USER_GUIDE.md) · 🇮🇱 [he](../../../he/docs/guides/USER_GUIDE.md) · 🇭🇷 [hr](../../../hr/docs/guides/USER_GUIDE.md) · 🇭🇺 [hu](../../../hu/docs/guides/USER_GUIDE.md) · 🇦🇲 [hy](../../../hy/docs/guides/USER_GUIDE.md) · 🇮🇩 [id](../../../id/docs/guides/USER_GUIDE.md) · 🇳🇬 [ig](../../../ig/docs/guides/USER_GUIDE.md) · 🇮🇹 [it](../../../it/docs/guides/USER_GUIDE.md) · 🇯🇵 [ja](../../../ja/docs/guides/USER_GUIDE.md) · 🇬🇪 [ka](../../../ka/docs/guides/USER_GUIDE.md) · 🇰🇭 [km](../../../km/docs/guides/USER_GUIDE.md) · 🇮🇳 [kn](../../../kn/docs/guides/USER_GUIDE.md) · 🇰🇷 [ko](../../../ko/docs/guides/USER_GUIDE.md) · 🇱🇹 [lt](../../../lt/docs/guides/USER_GUIDE.md) · 🇱🇻 [lv](../../../lv/docs/guides/USER_GUIDE.md) · 🇮🇳 [ml](../../../ml/docs/guides/USER_GUIDE.md) · 🇮🇳 [mr](../../../mr/docs/guides/USER_GUIDE.md) · 🇲🇾 [ms](../../../ms/docs/guides/USER_GUIDE.md) · 🇲🇹 [mt](../../../mt/docs/guides/USER_GUIDE.md) · 🇲🇲 [my](../../../my/docs/guides/USER_GUIDE.md) · 🇳🇵 [ne](../../../ne/docs/guides/USER_GUIDE.md) · 🇳🇱 [nl](../../../nl/docs/guides/USER_GUIDE.md) · 🇳🇴 [no](../../../no/docs/guides/USER_GUIDE.md) · 🇮🇳 [or](../../../or/docs/guides/USER_GUIDE.md) · 🇮🇳 [pa](../../../pa/docs/guides/USER_GUIDE.md) · 🇵🇭 [phi](../../../phi/docs/guides/USER_GUIDE.md) · 🇵🇱 [pl](../../../pl/docs/guides/USER_GUIDE.md) · 🇵🇹 [pt](../../../pt/docs/guides/USER_GUIDE.md) · 🇧🇷 [pt-BR](../../../pt-BR/docs/guides/USER_GUIDE.md) · 🇷🇴 [ro](../../../ro/docs/guides/USER_GUIDE.md) · 🇷🇺 [ru](../../../ru/docs/guides/USER_GUIDE.md) · 🇱🇰 [si](../../../si/docs/guides/USER_GUIDE.md) · 🇸🇰 [sk](../../../sk/docs/guides/USER_GUIDE.md) · 🇸🇮 [sl](../../../sl/docs/guides/USER_GUIDE.md) · 🇷🇸 [sr](../../../sr/docs/guides/USER_GUIDE.md) · 🇸🇪 [sv](../../../sv/docs/guides/USER_GUIDE.md) · 🇰🇪 [sw](../../../sw/docs/guides/USER_GUIDE.md) · 🇮🇳 [ta](../../../ta/docs/guides/USER_GUIDE.md) · 🇮🇳 [te](../../../te/docs/guides/USER_GUIDE.md) · 🇹🇭 [th](../../../th/docs/guides/USER_GUIDE.md) · 🇹🇷 [tr](../../../tr/docs/guides/USER_GUIDE.md) · 🇺🇦 [uk-UA](../../../uk-UA/docs/guides/USER_GUIDE.md) · 🇵🇰 [ur](../../../ur/docs/guides/USER_GUIDE.md) · 🇺🇿 [uz](../../../uz/docs/guides/USER_GUIDE.md) · 🇻🇳 [vi](../../../vi/docs/guides/USER_GUIDE.md) · 🇳🇬 [yo](../../../yo/docs/guides/USER_GUIDE.md) · 🇨🇳 [zh-CN](../../../zh-CN/docs/guides/USER_GUIDE.md) · 🇹🇼 [zh-TW](../../../zh-TW/docs/guides/USER_GUIDE.md) --- 🌐 **Languages:** 🇺🇸 [English](../../../../guides/USER_GUIDE.md) · 🇪🇹 [am](../../../am/docs/guides/USER_GUIDE.md) · 🇸🇦 [ar](../../../ar/docs/guides/USER_GUIDE.md) · 🇦🇿 [az](../../../az/docs/guides/USER_GUIDE.md) · 🇧🇬 [bg](../../../bg/docs/guides/USER_GUIDE.md) · 🇧🇩 [bn](../../../bn/docs/guides/USER_GUIDE.md) · 🇧🇦 [bs](../../../bs/docs/guides/USER_GUIDE.md) · 🇨🇿 [cs](../../../cs/docs/guides/USER_GUIDE.md) · 🇩🇰 [da](../../../da/docs/guides/USER_GUIDE.md) · 🇩🇪 [de](../../../de/docs/guides/USER_GUIDE.md) · 🇬🇷 [el](../../../el/docs/guides/USER_GUIDE.md) · 🇪🇸 [es](../../../es/docs/guides/USER_GUIDE.md) · 🇪🇪 [et](../../../et/docs/guides/USER_GUIDE.md) · 🇮🇷 [fa](../../../fa/docs/guides/USER_GUIDE.md) · 🇫🇮 [fi](../../../fi/docs/guides/USER_GUIDE.md) · 🇫🇷 [fr](../../../fr/docs/guides/USER_GUIDE.md) · 🇮🇪 [ga](../../../ga/docs/guides/USER_GUIDE.md) · 🇮🇳 [gu](../../../gu/docs/guides/USER_GUIDE.md) · 🇳🇬 [ha](../../../ha/docs/guides/USER_GUIDE.md) · 🇮🇱 [he](../../../he/docs/guides/USER_GUIDE.md) · 🇭🇷 [hr](../../../hr/docs/guides/USER_GUIDE.md) · 🇭🇺 [hu](../../../hu/docs/guides/USER_GUIDE.md) · 🇦🇲 [hy](../../../hy/docs/guides/USER_GUIDE.md) · 🇮🇩 [id](../../../id/docs/guides/USER_GUIDE.md) · 🇳🇬 [ig](../../../ig/docs/guides/USER_GUIDE.md) · 🇮🇹 [it](../../../it/docs/guides/USER_GUIDE.md) · 🇯🇵 [ja](../../../ja/docs/guides/USER_GUIDE.md) · 🇬🇪 [ka](../../../ka/docs/guides/USER_GUIDE.md) · 🇰🇭 [km](../../../km/docs/guides/USER_GUIDE.md) · 🇮🇳 [kn](../../../kn/docs/guides/USER_GUIDE.md) · 🇰🇷 [ko](../../../ko/docs/guides/USER_GUIDE.md) · 🇱🇹 [lt](../../../lt/docs/guides/USER_GUIDE.md) · 🇱🇻 [lv](../../../lv/docs/guides/USER_GUIDE.md) · 🇮🇳 [ml](../../../ml/docs/guides/USER_GUIDE.md) · 🇮🇳 [mr](../../../mr/docs/guides/USER_GUIDE.md) · 🇲🇾 [ms](../../../ms/docs/guides/USER_GUIDE.md) · 🇲🇹 [mt](../../../mt/docs/guides/USER_GUIDE.md) · 🇲🇲 [my](../../../my/docs/guides/USER_GUIDE.md) · 🇳🇵 [ne](../../../ne/docs/guides/USER_GUIDE.md) · 🇳🇱 [nl](../../../nl/docs/guides/USER_GUIDE.md) · 🇳🇴 [no](../../../no/docs/guides/USER_GUIDE.md) · 🇮🇳 [or](../../../or/docs/guides/USER_GUIDE.md) · 🇮🇳 [pa](../../../pa/docs/guides/USER_GUIDE.md) · 🇵🇭 [phi](../../../phi/docs/guides/USER_GUIDE.md) · 🇵🇱 [pl](../../../pl/docs/guides/USER_GUIDE.md) · 🇵🇹 [pt](../../../pt/docs/guides/USER_GUIDE.md) · 🇧🇷 [pt-BR](../../../pt-BR/docs/guides/USER_GUIDE.md) · 🇷🇴 [ro](../../../ro/docs/guides/USER_GUIDE.md) · 🇷🇺 [ru](../../../ru/docs/guides/USER_GUIDE.md) · 🇱🇰 [si](../../../si/docs/guides/USER_GUIDE.md) · 🇸🇰 [sk](../../../sk/docs/guides/USER_GUIDE.md) · 🇸🇮 [sl](../../../sl/docs/guides/USER_GUIDE.md) · 🇷🇸 [sr](../../../sr/docs/guides/USER_GUIDE.md) · 🇸🇪 [sv](../../../sv/docs/guides/USER_GUIDE.md) · 🇰🇪 [sw](../../../sw/docs/guides/USER_GUIDE.md) · 🇮🇳 [ta](../../../ta/docs/guides/USER_GUIDE.md) · 🇮🇳 [te](../../../te/docs/guides/USER_GUIDE.md) · 🇹🇭 [th](../../../th/docs/guides/USER_GUIDE.md) · 🇹🇷 [tr](../../../tr/docs/guides/USER_GUIDE.md) · 🇺🇦 [uk-UA](../../../uk-UA/docs/guides/USER_GUIDE.md) · 🇵🇰 [ur](../../../ur/docs/guides/USER_GUIDE.md) · 🇺🇿 [uz](../../../uz/docs/guides/USER_GUIDE.md) · 🇻🇳 [vi](../../../vi/docs/guides/USER_GUIDE.md) · 🇳🇬 [yo](../../../yo/docs/guides/USER_GUIDE.md) · 🇨🇳 [zh-CN](../../../zh-CN/docs/guides/USER_GUIDE.md) · 🇹🇼 [zh-TW](../../../zh-TW/docs/guides/USER_GUIDE.md) प्रदाताओं को कॉन्फ़िगर करने, कॉम्बो बनाने, CLI टूल एकीकृत करने और OmniRoute को डिप्लॉय करने के लिए संपूर्ण मार्गदर्शिका। --- ## विषय-सूची - [एक नज़र में मूल्य निर्धारण](#-pricing-at-a-glance) - [उपयोग के मामले](#-use-cases) - [प्रदाता सेटअप](#-provider-setup) - [CLI एकीकरण](#-cli-integration) - [डिप्लॉयमेंट](#-deployment) - [उपलब्ध मॉडल](#-available-models) - [उन्नत सुविधाएँ](#-advanced-features) - [ऑटो-रूटिंग (बिना कॉन्फ़िगरेशन)](#-auto-routing-zero-config) - [MCP और A2A एकीकरण](#-mcp--a2a-integration) - [स्किल्स सिस्टम](#-skills-system) - [मेमोरी सिस्टम](#-memory-system) - [वेबहुक](#-webhooks) - [क्लाउड एजेंट](#-cloud-agents) - [प्रोग्रामेटिक प्रबंधन](#-programmatic-management) - [आंतरिक CLI](#-internal-cli) - [डेस्कटॉप एप्लिकेशन (Electron)](#-desktop-application-electron) --- ## 💰 एक नज़र में मूल्य निर्धारण | श्रेणी | प्रदाता | लागत | कोटा रीसेट | इनके लिए सर्वोत्तम | | ---------------- | ----------------- | ---------------------- | ---------------------- | ---------------------------------- | | **💳 सदस्यता** | Claude Code (Pro) | $20/माह | 5 घंटे + साप्ताहिक | पहले से सदस्यता प्राप्त उपयोगकर्ता | | | Codex (Plus/Pro) | $20-200/माह | 5 घंटे + साप्ताहिक | OpenAI उपयोगकर्ता | | | GitHub Copilot | $10-19/माह | मासिक | GitHub उपयोगकर्ता | | **🔑 API कुंजी** | DeepSeek | उपयोग के अनुसार भुगतान | कोई नहीं | किफ़ायती रीजनिंग | | | Groq | उपयोग के अनुसार भुगतान | कोई नहीं | अत्यंत तेज़ इनफ़रेंस | | | xAI (Grok) | उपयोग के अनुसार भुगतान | कोई नहीं | Grok 4 रीजनिंग | | | Mistral | उपयोग के अनुसार भुगतान | कोई नहीं | 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 फ़ाइल से प्रदाता आयात करें](../providers/CSV-IMPORT.md) देखें। ### 🔐 सदस्यता प्रदाता #### Claude Code (Pro/Max) ```bash डैशबोर्ड → प्रदाता → 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) ```bash डैशबोर्ड → प्रदाता → 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 ```bash डैशबोर्ड → प्रदाता → 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](https://open.bigmodel.cn) 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](https://www.minimax.io) 2. API कुंजी प्राप्त करें → डैशबोर्ड → API कुंजी जोड़ें **उपयोग:** `minimax/MiniMax-M2.1` — **विशेषज्ञ सुझाव:** लंबे कॉन्टेक्स्ट (1M टोकन) के लिए सबसे सस्ता विकल्प! #### Kimi K2 ($9/माह की निश्चित दर) 1. सदस्यता लें: [Moonshot AI](https://platform.kimi.ai?aff=omniroute) 2. API कुंजी प्राप्त करें → डैशबोर्ड → API कुंजी जोड़ें **उपयोग:** `kimi/kimi-k2.5` — **विशेषज्ञ सुझाव:** 10M टोकन के लिए निश्चित $9/माह = $0.90/1M की प्रभावी लागत! #### Baidu Qianfan / ERNIE 1. साइन अप करें: [Baidu AI Cloud Qianfan](https://cloud.baidu.com/product/wenxinworkshop) 2. एक Qianfan API कुंजी बनाएँ → डैशबोर्ड → API कुंजी जोड़ें: प्रदाता: `qianfan` **उपयोग:** `qianfan/ernie-5.1`, `qianfan/ernie-x1.1`, या कोई अन्य Qianfan OpenAI-संगत मॉडल ID। ### 🆓 मुफ़्त प्रदाता प्रमाणीकरण-रहित मुफ़्त प्रदाताओं के प्रदाता पृष्ठ पर **प्रमाणीकरण आवश्यक नहीं है** के पास एक स्विच होता है। इसे बंद करने से वह प्रदाता अक्षम हो जाता है, प्रदाता के कॉन्फ़िगर किए गए/संक्षिप्त दृश्यों से हट जाता है, और उसके मॉडल `/v1/models` से हट जाते हैं। #### Qoder (9 मुफ़्त मॉडल) ```bash डैशबोर्ड → 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 मुफ़्त) ```bash डैशबोर्ड → 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`](../providers/CURSOR-DOCKER.md) देखें। ### Claude Code `~/.claude/settings.json` संपादित करें: ```json { "env": { "ANTHROPIC_BASE_URL": "http://localhost:20128", "ANTHROPIC_AUTH_TOKEN": "your-omniroute-api-key" } } ``` यहाँ Claude-संगत रूट एंडपॉइंट का उपयोग करें। `ANTHROPIC_BASE_URL` के अंत में `/v1` न जोड़ें। ### Codex CLI ```bash export OPENAI_BASE_URL="http://localhost:20128" export OPENAI_API_KEY="your-omniroute-api-key" codex "your prompt" ``` ### OpenClaw `~/.openclaw/openclaw.json` संपादित करें: ```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 इंस्टॉल (अनुशंसित) ```bash 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 को सिस्टम ट्रे में शुरू करें: ```bash omniroute serve --tray ``` सर्वर और ट्रे के तैयार होने के बाद कमांड समाप्त हो जाती है। सर्वर टर्मिनल के बिना चलता रहता है। ट्रे मोड macOS, Windows और ग्राफ़िकल Linux सत्रों का समर्थन करता है। ट्रे मोड डैशबोर्ड को स्वचालित रूप से नहीं खोलता। इन कार्रवाइयों के लिए ट्रे मेन्यू का उपयोग करें: - डैशबोर्ड खोलें। - `/dashboard/logs` खोलें। - ऑटो-स्टार्ट बदलें। - OmniRoute रोकें। इन विकल्पों के साथ `--tray` का उपयोग न करें: - `--daemon` - `--log` - `--no-recovery` इन मोड के लिए अलग प्रक्रिया स्वामित्व आवश्यक होता है। मशीन में अगली बार लॉगिन करने पर स्टार्टअप सक्षम करें: ```bash omniroute autostart enable ``` ऑटो-स्टार्ट macOS, Windows और ग्राफ़िकल Linux सत्रों पर ट्रे मोड का उपयोग करता है। हेडलेस Linux मौजूदा systemd उपयोगकर्ता सेवा का उपयोग करता है। लॉगिन के समय स्टार्टअप अक्षम करें: ```bash omniroute autostart disable ``` ### अनइंस्टॉल करना जब आपको OmniRoute की आवश्यकता न रहे, तो हम पूर्ण रूप से हटाने के लिए दो त्वरित स्क्रिप्ट प्रदान करते हैं: | कमांड | कार्रवाई | | ------------------------ | --------------------------------------------------------------------------------------------- | | `npm run uninstall` | सिस्टम ऐप को हटाता है, लेकिन `~/.omniroute` में **आपका DB और कॉन्फ़िगरेशन सुरक्षित रखता है**। | | `npm run uninstall:full` | ऐप को हटाता है और **सभी कॉन्फ़िगरेशन, कुंजियाँ तथा डेटाबेस स्थायी रूप से मिटा देता है**। | > नोट: इन कमांड को चलाने के लिए OmniRoute प्रोजेक्ट फ़ोल्डर पर जाएँ (यदि आपने इसे क्लोन किया है) और उन्हें चलाएँ। वैकल्पिक रूप से, यदि इसे ग्लोबल रूप से इंस्टॉल किया गया है, तो आप केवल `npm uninstall -g omniroute` चला सकते हैं। ### VPS परिनियोजन ```bash 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 वाले सर्वर के लिए मेमोरी सीमा विकल्प का उपयोग करें: ```bash # 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` बनाएँ: ```javascript 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 ```bash # इमेज बनाएँ (डिफ़ॉल्ट = 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 टेम्पलेट देखें ```bash # '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 " 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](../README.md) देखें। --- ## 📊 उपलब्ध मॉडल
सभी उपलब्ध मॉडल देखें > नीचे दी गई सूची 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 ` चलाएँ या `GET /api/models/catalog` पर अनुरोध भेजें।
--- ## 🧩 उन्नत सुविधाएँ ### कस्टम मॉडल ऐप अपडेट की प्रतीक्षा किए बिना किसी भी प्रोवाइडर में कोई भी मॉडल ID जोड़ें: ```bash # 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 कुंजी का उपयोग करें। पारस्परिक या मल्टी-हॉप चेन के लिए, प्रत्येक गेटवे पर ऑप्ट-इन लूप गार्ड सक्षम करें: ```bash # gateway-a OMNIROUTE_INSTANCE_ID=gateway-a OMNIROUTE_PEER_URLS=http://gateway-b:20128/v1 OMNIROUTE_PEER_MAX_HOPS=4 ``` ```bash # 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 इंस्टेंस में माउंट न करें। ### समर्पित प्रोवाइडर रूट मॉडल सत्यापन के साथ अनुरोधों को सीधे किसी विशिष्ट प्रोवाइडर पर रूट करें: ```bash 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` लौटाते हैं। ### नेटवर्क प्रॉक्सी कॉन्फ़िगरेशन ```bash # वैश्विक प्रॉक्सी सेट करें 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 ```bash 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](../routing/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 एजेंट), यह भेजें: ```http X-Session-Id: your-session-key ``` OmniRoute `x_session_id` को भी स्वीकार करता है और प्रभावी सेशन कुंजी को `X-OmniRoute-Session-Id` में लौटाता है। यदि आप Nginx का उपयोग करते हैं और अंडरस्कोर-रूप वाले हेडर भेजते हैं, तो इसे सक्षम करें: ```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` न हो, आयात-पूर्व बैकअप स्वचालित रूप से बनाया जाता है | ```bash # 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](./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 इनपुट/आउटपुट टोकन की लागत | ```bash # 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-संगत एंडपॉइंट के माध्यम से ऑडियो ट्रांसक्रिप्शन का समर्थन करता है: ```bash 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` | "अंतिम ज्ञात सफल प्रदाता" — अंतिम सफल प्रदाता पर स्थिर रहता है, फिर नियमों पर फ़ॉलबैक करता है | उदाहरण: ```bash 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](../routing/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 में इसके समकक्ष को संपादित करें: ```json { "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](../frameworks/MCP-SERVER.md) और JSON-RPC स्कीमा के लिए [A2A-SERVER.md](../frameworks/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](../frameworks/SKILLS.md)। --- ## 💾 मेमोरी सिस्टम OmniRoute हाइब्रिड पुनर्प्राप्ति के साथ **दीर्घकालिक संवादात्मक मेमोरी** को स्थायी रूप से संग्रहीत करता है: - पिछले संवादों में कीवर्ड खोज के लिए **SQLite FTS5** - अर्थगत पुनःस्मरण के लिए **Qdrant vector store** (वैकल्पिक) - **स्वचालित तथ्य निष्कर्षण** — प्रत्येक सत्र के बाद इकाइयों, प्राथमिकताओं और निर्णयों का सारांश बनाकर उन्हें `memory_facts` तालिका में संग्रहीत किया जाता है - मेमोरीज़ को प्रत्येक API कुंजी और प्रत्येक सत्र के अनुसार सीमित किया जाता है **Dashboard → Memory** में मेमोरीज़ प्रबंधित करें (खोजें, संपादित करें, निर्यात करें, हटाएँ)। HTTP इंटरफ़ेस (`/api/memory/*`) एजेंटों को प्रोग्रामेटिक रूप से तथ्य भेजने और क्वेरी करने देता है — [MEMORY.md](../frameworks/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](../frameworks/WEBHOOKS.md) में उपलब्ध है। --- ## ☁️ क्लाउड एजेंट्स OmniRoute क्लाउड कोडिंग एजेंट्स (**OpenAI Codex Cloud**, **Devin**, **Jules**, **Antigravity**) के साथ एकीकृत होता है, ताकि आप उसी डैशबोर्ड से लंबे समय तक चलने वाले कार्य भेज सकें जो आपकी स्थानीय रूटिंग को संभालता है। - **Dashboard → Cloud Agents** में या `POST /api/v1/agents/tasks` के माध्यम से कार्य बनाएँ - प्रत्येक कार्य की स्थिति, लॉग्स और आर्टिफ़ैक्ट्स ट्रैक करें - प्रत्येक प्रोवाइडर के लिए अपनी API कुंजी उपयोग करें — क्रेडेंशियल्स कभी भी OmniRoute इंस्टेंस से बाहर नहीं जाते पूर्ण संदर्भ: [CLOUD_AGENT.md](../frameworks/CLOUD_AGENT.md)। --- ## 🛠️ प्रोग्रामेटिक प्रबंधन आप **`manage` स्कोप वाली Bearer कुंजी** का उपयोग करके HTTP के माध्यम से प्रत्येक OmniRoute संसाधन (प्रोवाइडर्स, कॉम्बोज़, कुंजियाँ, सेटिंग्स) प्रबंधित कर सकते हैं। कुंजी को **Dashboard → API Keys → New Key → Scope: manage** में जनरेट करें, फिर: ```bash # प्रोवाइडर्स सूचीबद्ध करें 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](../reference/API_REFERENCE.md) देखें। --- ## 💻 आंतरिक CLI OmniRoute सेटअप, निदान और रनटाइम नियंत्रण के लिए एक आंतरिक CLI (`omniroute …`) प्रदान करता है। यह **डैशबोर्ड के "CLI टूल्स" पेज से अलग है**, जो तृतीय-पक्ष CLI (Claude Code, Cursor, Codex, Cline, …) को कॉन्फ़िगर करता है, ताकि वे OmniRoute से संचार कर सकें। ```bash omniroute setup # इंटरैक्टिव विज़ार्ड (पासवर्ड, प्रोवाइडर, कॉम्बो) omniroute setup --non-interactive # CI के अनुकूल omniroute doctor # स्वास्थ्य निदान (डेटा डायरेक्टरी, DB, प्रोवाइडर, पोर्ट) omniroute providers available # समर्थित प्रोवाइडर सूचीबद्ध करें omniroute providers list # कॉन्फ़िगर किए गए कनेक्शन सूचीबद्ध करें omniroute providers test # प्रोवाइडर कनेक्शन का लाइव परीक्षण करें omniroute combos list # कॉम्बो सूचीबद्ध करें omniroute combos switch # डिफ़ॉल्ट कॉम्बो सेट करें omniroute models # उपलब्ध मॉडल सूचीबद्ध करें (--json, --search) omniroute keys add | list | remove # टर्मिनल से API कुंजियाँ प्रबंधित करें omniroute backup # कॉन्फ़िगरेशन + DB का स्नैपशॉट बनाएँ omniroute restore [] # स्नैपशॉट से पुनर्स्थापित करें 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 के लिए एक नेटिव डेस्कटॉप एप्लिकेशन के रूप में उपलब्ध है। ### इंस्टॉलेशन ```bash # electron डायरेक्टरी से: cd electron npm install # डेवलपमेंट मोड (चल रहे Next.js डेवलपमेंट सर्वर से कनेक्ट होता है): npm run dev # प्रोडक्शन मोड (स्टैंडअलोन बिल्ड का उपयोग करता है): npm start ``` ### इंस्टॉलर बनाना ```bash 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`](../../electron/README.md)