इस प्रोजेक्ट के बारे में

# Weave Router **एक एंडपॉइंट। हर मॉडल। हमेशा सही।** Weave Router, Anthropic, OpenAI और Gemini के लिए एक ड्रॉप-इन प्रॉक्सी है जो स्वचालित रूप से हर अनुरोध के लिए सबसे अच्छा मॉडल चुनता है। यह वाइब्स-आधारित प्रॉम्प्ट का उपयोग करने के बजाय, [Avengers-Pro](https://arxiv.org/abs/2508.12631) शोध पत्र से प्राप्त क्लस्टर स्कोरर के साथ एक छोटे ऑन-बॉक्स एम्बेडर का उपयोग करके प्रत्येक अनुरोध को आपके सक्षम प्रदाताओं से सही मॉडल पर रूट करता है। ## मुख्य विशेषताएं - **प्रति कार्य रूटिंग** — एक क्लस्टर स्कोरर प्रत्येक अपस्ट्रीम API अनुरोध के लिए सही मॉडल चुनता है, प्रति टर्न के बजाय प्रति एक्शन रूटिंग करता है। - **सभी के API बोलता है** — स्ट्रीमिंग, टूल्स और विज़न सहित Anthropic Messages, OpenAI Chat Completions और Gemini नेटिव API को सपोर्ट करता है। - **OSS को भी जानता है** — OpenRouter या किसी भी OpenAI-संगत एंडपॉइंट के माध्यम से DeepSeek, Kimi, GLM, Qwen, Llama और Mistral को सपोर्ट करता है। - **डिफ़ॉल्ट रूप से BYOK** — प्रदाता कुंजियाँ आपके बॉक्स पर रहती हैं, आराम करने पर एन्क्रिप्टेड। - **अवलोकनीय** — बॉक्स से बाहर OTLP ट्रेस, Weave डैशबोर्ड या Honeycomb, Datadog या Grafana जैसे किसी भी OTLP-संगत कलेक्टर में देखने योग्य। ## त्वरित आरंभ शुरू करने का सबसे तेज़ तरीका होस्टेड Weave Router के साथ है: ```bash npx @weave-os/router ``` इंस्टॉलर पूछता है कि कौन सा टूल (Claude Code, Codex, opencode, या pi), आपको दायरे (उपयोगकर्ता बनाम प्रोजेक्ट) के माध्यम से ले जाता है, एक राउटर कुंजी प्राप्त करता है, और सही कॉन्फ़िग फ़ाइल को वायर करता है। अन्य विकल्पों में शामिल हैं: ```bash npx @weave-os/router --claude # पिकर को छोड़ें, Claude Code npx @weave-os/router --codex # पिकर को छोड़ें, OpenAI Codex CLI npx @weave-os/router --opencode # पिकर को छोड़ें, opencode npx @weave-os/router --pi # पिकर को छोड़ें, pi + Loom UI npx @weave-os/router --scope project # प्रति-रिपॉजिटरी, settings.json कमिट करता है npx @weave-os/router --local # सेल्फ-होस्टेड localhost:8080 npx @weave-os/router --base-url https://router.acme.internal npx @weave-os/router@0.1.0 # एक संस्करण पिन करें ``` Node ≥ 18 की आवश्यकता है। पूर्ण फ़्लैग संदर्भ [install/npm/README.md](install/npm/README.md) में है। ## सेल्फ-होस्टिंग अपने बॉक्स पर राउटर और डैशबोर्ड चलाने के लिए: ```bash # 1. एक प्रदाता कुंजी डालें। OpenRouter अनुशंसित आधार रेखा है। echo "OPENROUTER_API_KEY=sk-or-v1-..." >> .env.local # 2. एक डैशबोर्ड पासवर्ड सेट करें। echo "ROUTER_ADMIN_PASSWORD=replace-with-a-strong-password" >> .env.local # 3. :8080 पर Postgres + राउटर बूट करें और एक rk_ कुंजी सीड करें। make full-setup ``` राउटर http://localhost:8080 पर, डैशबोर्ड http://localhost:8080/ui/ पर उपलब्ध है, और आपकी `rk_...` कुंजी लॉग में प्रिंट होती है। ### उदाहरण API कॉल ```bash # इसे Anthropic की तरह कॉल करें curl -sS http://localhost:8080/v1/messages \ -H "Authorization: Bearer rk_..." \ -d '{"model":"claude-sonnet-4-5","max_tokens":256, "messages":[{"role":"user","content":"hi"}]}' # ...या OpenAI की तरह curl -sS http://localhost:8080/v1/chat/completions \ -H "Authorization: Bearer rk_..." \ -d '{"model":"gpt-4o-mini", "messages":[{"role":"user","content":"hi"}]}' # प्रॉक्सी किए बिना रूटिंग निर्णय देखें curl -sS http://localhost:8080/v1/route -H "Authorization: Bearer rk_..." -d '...' ``` ## आर्किटेक्चर केवल ग्रे बॉक्स आपकी मशीन से बाहर हैं। राउटर, स्कोरर, Postgres और आपकी प्रदाता कुंजियाँ सभी स्थानीय रहती हैं; प्रॉम्प्ट राउटर से सीधे आपके द्वारा कॉन्फ़िगर किए गए प्रदाता के पास जाते हैं, कभी Weave के पास नहीं। ```mermaid flowchart LR client["Claude Code, Codex, opencode,<br/>pi, Cursor, your own app"] router["Router :8080<br/>/v1/messages · /v1/chat/completions<br/>/v1beta/models · /v1/route"] scorer["Cluster scorer<br/>in-process ONNX embedder"] hmm["HMM policy sidecar :8093<br/>optional, make up-hmm"] pg[("Postgres<br/>installations, rk_ keys,<br/>encrypted BYOK keys, usage")] ui["Dashboard /ui<br/>selfhosted mode only"] providers["Anthropic · OpenAI · Gemini<br/>OpenRouter and any<br/>OpenAI-compatible endpoint"] otel["Your OTLP collector<br/>Honeycomb, Datadog, Grafana"] client -->|"rk_… bearer token,<br/>streamed response back"| router router -->|"embed and score the action"| scorer router -.->|"ROUTER_DEFAULT_STRATEGY=hmm"| hmm router -->|"auth, config, usage"| pg pg --> ui router -->|"provider key from env or BYOK"| providers router -.->|"spans and usage logs"| otel ``` मल्टी-रेप्लिका डिप्लॉयमेंट को कैश इनवैलिडेशन के लिए Pub/Sub (`PUBSUB_*`) की भी आवश्यकता होती है; `docker compose` आपके लिए एमुलेटर चलाता है। ## वैकल्पिक: HMM पॉलिसी साइडकार डिफ़ॉल्ट स्टैक इन-प्रोसेस क्लस्टर स्कोरर का उपयोग करता है। फ्रोजन HMM पॉलिसी को एक साथी कंटेनर के रूप में चलाने के लिए, एक Google API कुंजी जोड़ें और ऑप्ट-इन लक्ष्य का उपयोग करें: ```bash echo 'GOOGLE_API_KEY=...' >> .env.local make up-hmm ``` यह डिफ़ॉल्ट रणनीति को नहीं बदलता है। आर्टिफैक्ट सत्यापन, एम्बेडिंग संगतता और स्पष्ट HMM चयन के लिए [sidecars/hmm/README.md](sidecars/hmm/README.md) देखें। ## टूल एकीकरण **Claude Code.** स्थानीय सेल्फ-होस्टेड राउटर पर Claude Code को वायर करने के लिए `make install-cc` चलाएं (`make full-setup` के अंत में स्वचालित रूप से भी लागू होता है)। होस्टेड राउटर के लिए, ऊपर `npx @weave-os/router` का उपयोग करें। **Codex** (OpenAI CLI)। `npx @weave-os/router --codex` एक प्रबंधित `[model_providers.weave]` ब्लॉक के साथ `~/.codex/config.toml` (या `--scope project` के साथ `<repo>/.codex/config.toml`) को पैच करता है और `model_provider = "weave"` सेट करता है। प्रदाता Codex के मौजूदा ChatGPT OAuth लॉगिन को संरक्षित करता है जबकि राउटर कुंजी एक `X-Weave-Router-Key` HTTP हेडर में सवार होती है। ## लाइसेंस Elastic License v2 (ELv2) के तहत लाइसेंस प्राप्त। --- *[Weave](https://www.workweave.ai) द्वारा निर्मित: #1 इंजीनियरिंग इंटेलिजेंस प्लेटफॉर्म, जिसे Robinhood, PostHog, Reducto और सैकड़ों अन्य लोगों द्वारा पसंद किया जाता है।*