# 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) · 🇮🇳 [hi](../../../hi/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) · 🇺🇿 [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) · 🇮🇳 [hi](../../../hi/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) · 🇺🇿 [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 کلید کنکشنز بڑی تعداد میں شامل کرنے کے لیے، **Dashboard → Providers → Import from file** استعمال کریں۔ کالمز کی ترتیب مقرر ہے (`provider,name,apiKey,baseUrl,priority`)؛ `provider` پہلے سے ایک منظم فراہم کنندہ یا ہم آہنگ نوڈ کے طور پر موجود ہونا چاہیے۔ [CSV یا JSON فائل سے فراہم کنندگان درآمد کریں](../providers/CSV-IMPORT.md) دیکھیں۔ ### 🔐 سبسکرپشن فراہم کنندگان #### Claude Code (Pro/Max) ```bash Dashboard → Providers → Connect 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 Dashboard → Providers → Connect 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 Dashboard → Providers → Connect 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. Dashboard → Add API Key: فراہم کنندہ: `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 کلید حاصل کریں → Dashboard → Add API Key **استعمال:** `minimax/MiniMax-M2.1` — **ماہرانہ مشورہ:** طویل کانٹیکسٹ (1M ٹوکنز) کے لیے سب سے سستا آپشن! #### Kimi K2 ($9/ماہ مقررہ) 1. سبسکرائب کریں: [Moonshot AI](https://platform.kimi.ai?aff=omniroute) 2. API کلید حاصل کریں → Dashboard → Add API Key **استعمال:** `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 کلید بنائیں → Dashboard → Add API Key: فراہم کنندہ: `qianfan` **استعمال:** `qianfan/ernie-5.1`، `qianfan/ernie-x1.1`، یا کوئی دوسرا Qianfan OpenAI سے ہم آہنگ ماڈل ID۔ ### 🆓 مفت فراہم کنندگان تصدیق کے بغیر کام کرنے والے مفت فراہم کنندگان کے صفحے پر **No authentication required** کے ساتھ ایک سوئچ ہوتا ہے۔ اسے بند کرنے سے وہ فراہم کنندہ غیر فعال ہو جاتا ہے، Providers کے تشکیل شدہ/مختصر مناظر سے ہٹ جاتا ہے، اور اس کے ماڈلز `/v1/models` سے ہٹا دیے جاتے ہیں۔ #### Qoder (9 مفت ماڈلز) ```bash Dashboard → Connect 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 Dashboard → Connect Kiro → AWS Builder ID یا Google/GitHub → تقریباً 50 کریڈٹس/ماہ ماڈلز: kr/claude-sonnet-4.5, kr/claude-haiku-4.5 ``` --- ## 🎨 کومبوز آپ ہر کارڈ کے ہینڈل کو گھسیٹ کر براہِ راست **ڈیش بورڈ → کومبوز** میں کومبو کارڈز کی ترتیب بدل سکتے ہیں۔ ترتیب SQLite میں محفوظ ہوتی ہے اور دوبارہ لوڈ کرنے پر بحال ہو جاتی ہے۔ ### مثال 1: سبسکرپشن کا زیادہ سے زیادہ استعمال → سستا بیک اپ ``` ڈیش بورڈ → کومبوز → نیا بنائیں نام: premium-coding ماڈلز: 1. cc/claude-opus-4-7 (بنیادی سبسکرپشن) 2. glm/glm-4.7 (سستا بیک اپ، $0.6/1M) 3. minimax/MiniMax-M2.7 (سب سے سستا متبادل، $0.3/1M) CLI میں استعمال کریں: premium-coding ``` ### مثال 2: صرف مفت (صفر لاگت) ``` نام: free-combo ماڈلز: 1. if/kimi-k2.7-code (مفت رسائی کے طور پر درج؛ فراہم کنندہ کی حدود لاگو ہو سکتی ہیں) 2. kr/qwen3-coder-next (Kiro کا مفت متبادل) لاگت: فی الحال $0 کے طور پر درج؛ شرائط اور دستیابی تبدیل ہو سکتی ہیں ``` --- ## 🔧 CLI انضمام ### Cursor IDE **Cursor کو OmniRoute کلائنٹ کے طور پر استعمال کرنا** (Cursor چیٹ کو OmniRoute کے ذریعے روٹ کریں): ``` ترتیبات → ماڈلز → اعلیٰ: OpenAI API بنیادی URL: http://localhost:20128/v1 OpenAI API کلید: [omniroute ڈیش بورڈ سے] ماڈل: cc/claude-opus-4-7 ``` **OmniRoute کو Cursor فراہم کنندہ کے طور پر استعمال کرنا** (OmniRoute اپ اسٹریم Cursor کو کال کرتا ہے): ترجیحاً **ڈیش بورڈ → فراہم کنندگان → Cursor → 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" }] } } } } ``` **یا ڈیش بورڈ استعمال کریں:** CLI ٹولز → OpenClaw → خودکار کنفیگریشن ### Cline / Continue / RooCode ``` فراہم کنندہ: OpenAI سے مطابقت رکھنے والا بنیادی 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` | Node.js ہیپ کی حد، MB میں | | `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/`)** — یورپی یونین میں ہوسٹ کردہ: `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` اینڈ پوائنٹ پیش کرے تو اسے خودکار طور پر ہم وقت کیا جا سکتا ہے۔ **ماڈل IDs کے بارے میں نوٹ:** OmniRoute فراہم کنندہ کے مقامی IDs استعمال کرتا ہے (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`)۔ بعض IDs میں نقطوں والے ورژن شامل ہوتے ہیں کیونکہ اپ اسٹریم 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` ہیڈر موصول ہوتا ہے۔ گیٹ وے مکرر instance ID یا ختم شدہ hop بجٹ کو 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 یا کنٹینر دوبارہ شروع ہونے کے بعد فوری ٹنلز خودکار طور پر بحال نہیں ہوتیں؛ ضرورت پڑنے پر انہیں ڈیش بورڈ سے دوبارہ فعال کریں - ٹنل URLs عارضی ہوتے ہیں اور ہر بار ٹنل روکنے/شروع کرنے پر تبدیل ہو جاتے ہیں - محدود کنٹینرز میں شور پیدا کرنے والی QUIC UDP بفر وارننگز سے بچنے کے لیے منظم فوری ٹنلز بطور ڈیفالٹ HTTP/2 ٹرانسپورٹ استعمال کرتی ہیں - اگر آپ منظم ٹرانسپورٹ کے انتخاب کو اوور رائیڈ کرنا چاہتے ہیں تو `CLOUDFLARED_PROTOCOL=quic` یا `auto` سیٹ کریں - اگر آپ منظم ڈاؤن لوڈ کے بجائے پہلے سے انسٹال شدہ `cloudflared` بائنری استعمال کرنا چاہتے ہیں تو `CLOUDFLARED_BIN` سیٹ کریں - Cloudflare فوری ٹنل، Tailscale Funnel اور ngrok ٹنل پینلز کو **ترتیبات → ظاہری شکل** میں دکھایا یا چھپایا جا سکتا ہے۔ کسی پینل کو چھپانے سے چلتی ہوئی ٹنل بند نہیں ہوتی۔ ### LLM گیٹ وے انٹیلی جنس (مرحلہ 9) - **معنوی کیش** — نان اسٹریمنگ، temperature=0 جوابات کو خودکار طور پر کیش کرتا ہے (`X-OmniRoute-No-Cache: true` کے ذریعے نظر انداز کریں) - **درخواست کی تکرار سے تحفظ** — `Idempotency-Key` یا `X-Request-Id` ہیڈر کے ذریعے 5s کے اندر درخواستوں کی تکرار ختم کرتا ہے - **پیش رفت کی ٹریکنگ** — `X-OmniRoute-Progress: true` ہیڈر کے ذریعے اختیاری SSE `event: progress` واقعات --- ### مترجم پلے گراؤنڈ **ڈیش بورڈ → مترجم** کے ذریعے رسائی حاصل کریں۔ ڈیبگ کریں اور دیکھیں کہ OmniRoute فراہم کنندگان کے درمیان API درخواستوں کا ترجمہ کیسے کرتا ہے۔ | موڈ | مقصد | | ---------------- | ------------------------------------------------------------------------------------ | | **پلے گراؤنڈ** | ماخذ/ہدف فارمیٹس منتخب کریں، درخواست پیسٹ کریں اور ترجمہ شدہ آؤٹ پٹ فوراً دیکھیں | | **چیٹ ٹیسٹر** | پراکسی کے ذریعے لائیو چیٹ پیغامات بھیجیں اور درخواست/جواب کے مکمل چکر کا معائنہ کریں | | **ٹیسٹ بینچ** | ترجمے کی درستگی کی توثیق کے لیے متعدد فارمیٹ امتزاجوں میں بیچ ٹیسٹس چلائیں | | **لائیو مانیٹر** | پراکسی سے درخواستیں گزرتے وقت حقیقی وقت کے تراجم دیکھیں | **استعمال کے مواقع:** - ڈیبگ کریں کہ مخصوص کلائنٹ/فراہم کنندہ کا امتزاج کیوں ناکام ہوتا ہے - تصدیق کریں کہ thinking tags، tool calls اور system prompts کا ترجمہ درست طور پر ہوتا ہے - OpenAI، Claude، Gemini اور Responses API فارمیٹس کے درمیان فارمیٹ کے اختلافات کا موازنہ کریں --- ### روٹنگ کی حکمتِ عملیاں **Dashboard → Settings → Routing** کے ذریعے ترتیب دیں۔ ڈیش بورڈ چھ سب سے زیادہ استعمال ہونے والی حکمتِ عملیاں دکھاتا ہے؛ combos اور auto-router اندرونی طور پر زیادہ وسیع مجموعے کی معاونت کرتے ہیں۔ **ڈیش بورڈ پر نظر آنے والی حکمتِ عملیاں (اکاؤنٹ کی سطح کی راؤٹنگ):** | حکمتِ عملی | تفصیل | | --------------------------- | --------------------------------------------------------------------------------------------------------------------------- | | **پہلے پُر کریں** | اکاؤنٹس کو ترجیحی ترتیب میں استعمال کرتا ہے — بنیادی اکاؤنٹ عدم دستیابی تک تمام درخواستیں سنبھالتا ہے | | **راؤنڈ رابن** | قابلِ ترتیب sticky حد کے ساتھ تمام اکاؤنٹس کو باری باری استعمال کرتا ہے (ڈیفالٹ: فی اکاؤنٹ 3 کالز) | | **P2C (دو انتخاب کی طاقت)** | 2 بے ترتیب اکاؤنٹس منتخب کرتا ہے اور زیادہ صحت مند اکاؤنٹ کی طرف راؤٹ کرتا ہے — صحت کو مدِنظر رکھتے ہوئے لوڈ متوازن کرتا ہے | | **بے ترتیب** | Fisher-Yates shuffle استعمال کرتے ہوئے ہر درخواست کے لیے بے ترتیب طور پر ایک اکاؤنٹ منتخب کرتا ہے | | **سب سے کم استعمال شدہ** | سب سے پرانے `lastUsedAt` ٹائم اسٹیمپ والے اکاؤنٹ کی طرف راؤٹ کرتا ہے، جس سے ٹریفک یکساں طور پر تقسیم ہوتی ہے | | **لاگت کے لحاظ سے موزوں** | سب سے کم ترجیحی قدر والے اکاؤنٹ کی طرف راؤٹ کرتا ہے، تاکہ سب سے کم لاگت والے فراہم کنندگان کو ترجیح دی جا سکے | **جدید combo اور auto حکمتِ عملیاں** (ہر combo کے لیے یا `auto/*` سابقوں کے ذریعے قابلِ ترتیب — [AUTO-COMBO.md](../routing/AUTO-COMBO.md) دیکھیں): - `priority` — سخت ترتیب، کبھی round-robin استعمال نہیں کرتا - `weighted` — ہر ماڈل کے weights کے مطابق ٹریفک کی متناسب تقسیم - `fill-first` — حدود تک پہنچنے تک پہلے ماڈل کو مکمل طور پر استعمال کرتا ہے - `round-robin` / `strict-random` / `random` - `p2c` (دو انتخاب کی طاقت) - `least-used` اور `cost-optimized` - `auto` — تمام امیدواروں میں اسکور کی بنیاد پر انتخاب - `lkgp` (آخری معلوم اچھا فراہم کنندہ) — آخری کامیاب فراہم کنندہ کو مقرر رکھتا ہے، پھر قواعد پر fallback کرتا ہے - `context-optimized` — سب سے بڑی خالی context window والا ماڈل منتخب کرتا ہے - `context-relay` — بعد کے turns کے لیے طویل context والے ماڈلز کو زنجیر کی صورت میں استعمال کرتا ہے #### بیرونی Sticky Session Header بیرونی session affinity کے لیے (مثلاً reverse proxies کے پیچھے Claude Code/Codex agents)، یہ بھیجیں: ```http X-Session-Id: your-session-key ``` OmniRoute، `x_session_id` بھی قبول کرتا ہے اور مؤثر session key کو `X-OmniRoute-Session-Id` میں واپس بھیجتا ہے۔ اگر آپ Nginx استعمال کرتے ہیں اور underscore طرز کے headers بھیجتے ہیں تو یہ فعال کریں: ```nginx underscores_in_headers on; ``` #### Wildcard ماڈل Aliases ماڈل کے ناموں کو remap کرنے کے لیے wildcard patterns بنائیں: ``` Pattern: claude-sonnet-* → Target: cc/claude-sonnet-4-6 Pattern: gpt-* → Target: gh/gpt-5.3-codex ``` Wildcards میں `*` (کوئی بھی حروف) اور `?` (ایک حرف) کی معاونت موجود ہے۔ #### Fallback زنجیریں تمام درخواستوں پر لاگو ہونے والی عالمی fallback زنجیریں متعین کریں: ``` Chain: production-fallback 1. cc/claude-opus-4-7 2. gh/gpt-5.3-codex 3. glm/glm-4.7 ``` --- ### لچک اور Circuit Breakers **Dashboard → Settings → Resilience** کے ذریعے ترتیب دیں۔ OmniRoute پانچ اجزا کے ساتھ فراہم کنندہ کی سطح پر لچک نافذ کرتا ہے: 1. **درخواست کی قطار اور رفتار بندی** — سسٹم کی سطح پر درخواستوں کی تشکیل: - **درخواستیں فی منٹ (RPM)** — فی اکاؤنٹ فی منٹ درخواستوں کی زیادہ سے زیادہ تعداد - **درخواستوں کے درمیان کم از کم وقت** — درخواستوں کے درمیان milliseconds میں کم از کم وقفہ - **زیادہ سے زیادہ بیک وقت درخواستیں** — فی اکاؤنٹ بیک وقت درخواستوں کی زیادہ سے زیادہ تعداد 2. **کنکشن Cooldown** — دوبارہ کوشش کے قابل ناکامیوں کے بعد کسی ایک کنکشن کے لیے ہر auth-type کی الگ ترتیب: - **بنیادی Cooldown** — دوبارہ کوشش کے قابل upstream ناکامیوں کے لیے ڈیفالٹ cooldown مدت - **Upstream Retry Hints استعمال کریں** — دستیابی کی صورت میں مستند `Retry-After` یا reset hints کا احترام کرتا ہے - **زیادہ سے زیادہ Backoff Steps** — مسلسل ناکامیوں کے لیے exponential backoff کی زیادہ سے زیادہ سطح 3. **فراہم کنندہ Circuit Breaker** — فراہم کنندہ کی ابتدا سے انتہا تک ہونے والی ناکامیوں کو ٹریک کرتا ہے، ترتیب شدہ انتباہی حد پر فراہم کنندہ کو degraded نشان زد کرتا ہے، اور ترتیب شدہ ناکامی کی حد تک پہنچنے پر breaker کھول دیتا ہے: - **تنزلی کی حد** — `DEGRADED` حالت میں داخل ہونے سے پہلے فراہم کنندہ کی مسلسل ناکامیوں کی تعداد - **ناکامی کی حد** — `OPEN` حالت میں داخل ہونے سے پہلے فراہم کنندہ کی مسلسل ناکامیوں کی تعداد - **Reset Timeout** — فراہم کنندہ کو دوبارہ آزمانے سے پہلے کا دورانیہ - **CLOSED** (صحت مند) — درخواستیں معمول کے مطابق چلتی ہیں - **DEGRADED** — بڑھتی ہوئی ناکامیوں کو ٹریک کرتے ہوئے درخواستیں جاری رہتی ہیں - **OPEN** — مسلسل ناکامیوں کے بعد فراہم کنندہ کو عارضی طور پر مسدود کر دیا جاتا ہے - **HALF_OPEN** — جانچ کی جا رہی ہے کہ آیا فراہم کنندہ بحال ہو چکا ہے کنکشن کے دائرۂ کار میں آنے والی `429` rate limits، **کنکشن Cooldown** میں رہتی ہیں اور فراہم کنندہ breaker میں شمار نہیں ہوتیں۔ فراہم کنندہ breaker کی runtime حالت صرف **Dashboard → Health** پر دکھائی جاتی ہے۔ 4. **Cooldown کا انتظار کریں** — اگر ہر امیدوار کنکشن پہلے ہی cooldown میں ہو تو OmniRoute قریب ترین cooldown ختم ہونے کا انتظار کر سکتا ہے اور اسی client درخواست کو خودکار طور پر دوبارہ آزما سکتا ہے۔ 5. **Rate Limit کی خودکار شناخت** — جب upstream فراہم کنندگان واضح انتظار کی مدت واپس کرتے ہیں تو ترتیب فعال ہونے کی صورت میں وہ hints مقامی کنکشن cooldown پر فوقیت رکھتے ہیں۔ **ماہرانہ مشورہ:** outage کے بعد فعال فراہم کنندہ breakers کا معائنہ کرنے اور انہیں reset کرنے کے لیے **Health** صفحہ استعمال کریں۔ Resilience صفحہ صرف ترتیب تبدیل کرتا ہے۔ --- ### ڈیٹابیس Export / Import ڈیٹابیس backups کو **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 سے ہم آہنگ endpoint کے ذریعے آڈیو ٹرانسکرپشن کی معاونت کرتا ہے: ```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` | سب سے کم $/token، زیادہ تاخیر قبول کرتا ہے | | `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 کو منسلک کریں macOS پر `~/Library/Application Support/Claude/claude_desktop_config.json` یا 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 keys کن مہارتوں کو استعمال کر سکتی ہیں - **حسبِ ضرورت مہارتیں** — `src/lib/a2a/skills/` میں ایک TypeScript فائل رکھیں، اسے رجسٹر کریں، اور وہ فوراً A2A کے ذریعے قابلِ استعمال ہو جائے گی مکمل حوالہ: [SKILLS.md](../frameworks/SKILLS.md)۔ --- ## 💾 میموری سسٹم OmniRoute ہائبرڈ بازیافت کے ساتھ **طویل مدتی مکالماتی میموری** محفوظ رکھتا ہے: - گزشتہ گفتگوؤں میں کلیدی الفاظ کی تلاش کے لیے **SQLite FTS5** - معنوی یادآوری کے لیے **Qdrant vector store** (اختیاری) - **حقائق کا خودکار استخراج** — ہر سیشن کے بعد entities، ترجیحات اور فیصلوں کا خلاصہ بنا کر انہیں `memory_facts` ٹیبل میں محفوظ کیا جاتا ہے - میموریز کو ہر API key اور ہر سیشن کے لحاظ سے محدود کیا جاتا ہے میموریز کو **Dashboard → Memory** میں منظم کریں (تلاش، ترمیم، ایکسپورٹ، مستقل حذف)۔ HTTP انٹرفیس (`/api/memory/*`) ایجنٹس کو پروگرام کے ذریعے حقائق شامل کرنے اور دریافت کرنے کی سہولت دیتا ہے — دیکھیے [MEMORY.md](../frameworks/MEMORY.md)۔ --- ## 🔔 Webhooks حقیقی وقت کی نگرانی اور آٹومیشن کے لیے OmniRoute ایونٹس کو سبسکرائب کریں۔ - ہدف URL اور HMAC سائننگ سیکرٹ کے ساتھ **Dashboard → Webhooks** میں ایک webhook بنائیں - دستیاب ایونٹس: `request.completed`، `request.failed`، `provider.unavailable`، `budget.exceeded`، `combo.switched`، `circuit_breaker.opened`، `circuit_breaker.closed` - تصدیق کے لیے ہر payload میں `X-OmniRoute-Signature` (HMAC-SHA256) شامل ہوتا ہے - دوبارہ کوششیں: exponential backoff کے ساتھ 3 کوششیں، پھر dead-letter queue مکمل schema کے لیے [WEBHOOKS.md](../frameworks/WEBHOOKS.md) دیکھیں۔ --- ## ☁️ کلاؤڈ ایجنٹس OmniRoute کلاؤڈ کوڈنگ ایجنٹس (**OpenAI Codex Cloud**، **Devin**، **Jules**، **Antigravity**) کے ساتھ ضم ہوتا ہے، تاکہ آپ اسی dashboard سے طویل دورانیے کے ٹاسکس روانہ کر سکیں جو آپ کی مقامی routing کو سنبھالتا ہے۔ - **Dashboard → Cloud Agents** میں یا `POST /api/v1/agents/tasks` کے ذریعے ٹاسکس بنائیں - ہر ٹاسک کی حیثیت، logs اور artifacts کو ٹریک کریں - ہر provider کے لیے اپنی API key استعمال کریں — اسناد کبھی بھی OmniRoute instance سے باہر نہیں جاتیں مکمل حوالہ: [CLOUD_AGENT.md](../frameworks/CLOUD_AGENT.md)۔ --- ## 🛠️ پروگراماتی نظم و نسق آپ **`manage` scope والی Bearer key** استعمال کرتے ہوئے HTTP کے ذریعے OmniRoute کے ہر resource (providers، combos، keys، settings) کو منظم کر سکتے ہیں۔ کلید **Dashboard → API Keys → New Key → Scope: manage** میں بنائیں، پھر: ```bash # providers کی فہرست دکھائیں curl http://localhost:20128/api/providers \ -H "Authorization: Bearer $OMNIROUTE_MANAGE_KEY" # provider کا connection شامل کریں 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" }' # combo بنائیں 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 keys کی فہرست دکھائیں/بنائیں 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"] }' ``` مکمل endpoint کیٹلاگ اور request/response schemas کے لیے [API_REFERENCE.md](../reference/API_REFERENCE.md) دیکھیں۔ --- ## 💻 داخلی CLI OmniRoute سیٹ اپ، تشخیص، اور رن ٹائم کنٹرول کے لیے ایک داخلی CLI (`omniroute …`) کے ساتھ آتا ہے۔ یہ ڈیش بورڈ میں موجود **"CLI ٹولز" صفحے سے الگ ہے**، جو فریقِ ثالث کے CLIs (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)