अपने लैपटॉप के लोकल Ollama को एक ही कमांड से Entity Enricher से जोड़ें। जो मॉडल आपके पास पहले से हैं उनका उपयोग करें, कुछ इनपुट अपनी मशीन पर रखें, और एक्सेस तुरंत रद्द करें — यह सब एक ही आउटबाउंड HTTPS कनेक्शन के ज़रिए।
Production (Hetzner) Your Laptop / your server
┌─────────────────────────┐ ┌────────────────────┐
│ Org enrichment │ │ ee-tunnel CLI │
│ │ │ │ │ │
│ ▼ │ │ ▼ │
│ Ollama provider URL: │ │ Ollama :11434 │
│ http://ollama.<org> │ │ ┌──────────────┐ │
│ .tunnel/v1/chat │ │ │ qwen3:36b │ │
│ │ │ │ │ llama3:70b │ │
│ ▼ │ │ │ ... │ │
│ WebSocket bridge │◀───────▶│ └──────────────┘ │
└─────────────────────────┘ └────────────────────┘
one outbound :443/wss connectionसिंथेटिक होस्टनेम ollama.<org-slug>.tunnel को DNS द्वारा कभी रिज़ॉल्व नहीं किया जाता। Entity Enricher प्रोसेस में एक कस्टम ट्रांसपोर्ट *.tunnel के अनुरोधों को इंटरसेप्ट करता है और उन्हें मिलान करने वाले सक्रिय WebSocket के माध्यम से रूट करता है।
अपने लैपटॉप पर पहले से पुल किए गए ओपन-वेट मॉडल (Llama 3, Qwen, DeepSeek, Mistral, …) के विरुद्ध एनरिचमेंट रन करें, बिना उन्हें सर्वर पर दोबारा डाउनलोड किए।
संवेदनशील prompt के लिए, विशिष्ट enrichment को अपने स्वयं के GPU के माध्यम से रूट करें। प्लेटफ़ॉर्म फिर भी लागत, टोकन, और मेटाडेटा रिकॉर्ड करता है — केवल इन्फरेंस ही स्थानीय रहता है।
अपने लैपटॉप पर `ollama pull` से कोई मॉडल पुल करें, Discover Models पर क्लिक करें, और यह असली context length और क्षमताओं के साथ Entity Enricher सेलेक्टर में दिखाई देता है।
जब कोई होस्टेड प्रोवाइडर आप पर रेट-लिमिट लगाता है, तो बाकी बैच के लिए टनल किए गए लोकल मॉडल पर फेल ओवर करें।
आपके लैपटॉप पर दो कमांड, ब्राउज़र में एक क्लिक। पूरे फ़्लो में लगभग एक मिनट लगता है।
API Keys → Ollama Tunnels खोलें और New Ollama Tunnel पर क्लिक करें। एक label टाइप करें ताकि आप इस डिवाइस को बाद में पहचान सकें (जैसे "Anthony's MacBook")।
इसे टर्मिनल में पेस्ट करें। स्क्रिप्ट इंस्टॉल करने से पहले एक cosign सिग्नेचर को वेरिफ़ाई करती है।
curl -fsSL https://entityenricher.ai/install.sh | sh
इंस्टॉलर प्रिंट करता है कि वह क्या करने वाला है (डाउनलोड URL, सिग्नेचर, इंस्टॉल पाथ) और 5 सेकंड के लिए रुकता है ताकि आपके पास Ctrl+C का मौका हो। सोर्स कोड TOT-Concept/ee-tunnel (MIT) पर है। Windows यूज़र इसके बजाय install.ps1 इस्तेमाल करें।
ee-tunnel pair रन करें। एक ब्राउज़र टैब /tunnel/connect पर 6-कैरेक्टर कोड के साथ खुलता है। डिवाइस लेबल की पुष्टि करें और Connect पर क्लिक करें।
ee-tunnel pair --server https://entityenricher.ai Open this URL in your browser to confirm pairing: https://entityenricher.ai/tunnel/connect?code=9KV-DU6 Code: 9KV-DU6 Waiting for confirmation...
आप कभी टोकन कॉपी-पेस्ट नहीं करते। ब्राउज़र केवल टनल मेटाडेटा देखता है; CLI अपने क्रेडेंशियल्स अपने खुद के पोलिंग चैनल पर प्राप्त करता है।
ee-tunnel रन करें। Tunnels टैब में स्टेटस पिल कुछ ही सेकंड में Connected पर बदल जाता है। फिर स्थानीय रूप से इंस्टॉल किए गए हर चैट मॉडल को ऑटो-इम्पोर्ट करने के लिए Models & Pricing में Ollama प्रोवाइडर पर Discover Models क्लिक करें।
पेयरिंग OAuth-शैली के डिवाइस-कोड फ्लो (RFC 8628 शेप) का उपयोग करती है। यूज़र टोकन कॉपी-पेस्ट करने के बजाय ब्राउज़र में एक छोटा कोड टाइप करता है। ब्राउज़र केवल टनल मेटाडेटा देखता है; CLI अपना रिफ्रेश टोकन सीधे अपने पोलिंग चैनल पर प्राप्त करता है — वन-शॉट रिडेम्पशन।
laptop entity-enricher browser
│ │ │
│── ee-tunnel pair ──────▶ │ │
│ --server URL │ │
│ │ │
│ POST /api/tunnel/ │ │
│ device-code │ │
│ ───────────────────────▶ │ │
│ ◀── { device_code, │ │
│ user_code='9KV-DU6', │ │
│ verification_uri } │ │
│ │ │
│ prints URL, opens │ │
│ browser at /tunnel/ │ │
│ connect?code=… ──────────────────────────────────────▶│
│ │ │
│ │ POST /api/tunnel/confirm/ │
│ │ {user_code} │
│ │ body: { label } │
│ │ Authorization: Bearer │
│ │ <user JWT, role=owner> │
│ │ ◀──────────────────────────── │
│ │ • create tunnel_credentials │
│ │ • mark device_code complete │
│ │ with refresh_token │
│ │ ────────────────────────────▶│
│ │ 200 { tunnel metadata } │
│ │ │
│ POST /api/tunnel/poll │ │
│ ───────────────────────▶ │ │
│ ◀── { status:'ok', │ │
│ refresh_token, │ │
│ server_url, │ │
│ tunnel_id } │ │
│ │ │
│ persist token mode 0600 │ │
│ ✓ Paired │ │कनेक्ट होने के बाद, जहाँ तक बाकी प्लेटफ़ॉर्म का सवाल है, आपका tunneled Ollama बस एक और LLM provider है। मल्टी-expertise, fusion, batch — सब कुछ बिना किसी बदलाव के काम करता है।
enrichment job
│
▼
agent_factory → Ollama provider, base_url=http://ollama.acme.tunnel
│
▼
custom httpx transport ← intercepts *.tunnel hosts
│
▼
TunnelSession (one per laptop)
│ frames request: { id, method, path, headers, body_b64 }
▼
WebSocket ──────────────────────▶ ee-tunnel CLI
│
▼
localhost:11434
(your local Ollama)
│
response_start, response_chunk, ...
◀──────────────────────────────────┘
│
▼
pydantic_ai consumes streaming body → enrichment recordकई इन-फ्लाइट संवर्धन एक ही टनल WebSocket साझा करते हैं। प्रत्येक अनुरोध को एक UUID मिलता है; फ्रेम दोनों सिरों पर id के आधार पर डिमल्टिप्लेक्स किए जाते हैं ताकि समवर्ती कॉल (जैसे मल्टी-एक्सपर्टीज़) स्वाभाविक रूप से काम करें।
स्ट्रीमिंग प्रतिक्रियाएँ (Ollama का stream=true) response_chunk फ्रेम्स के अनुक्रम के रूप में जाती हैं, इसलिए टनल के ऊपर भी टोकन-दर-टोकन UI अपडेट इंक्रीमेंटल रहते हैं।
एक organization स्वामी "New Ollama Tunnel" पर क्लिक करता है, एक लेबल टाइप करता है, और पुष्टि करता है। प्लेटफ़ॉर्म credentials आवंटित करता है।
अपने लैपटॉप पर, वन-लाइन इंस्टॉलर और `ee-tunnel pair` चलाएँ। एक ब्राउज़र टैब खुलता है — उसी Entity Enricher अकाउंट से पुष्टि करें।
`ee-tunnel` रन करें। CLI एक सिंगल आउटबाउंड HTTPS WebSocket खोलता है। नया प्रोवाइडर कुछ ही सेकंड में आपकी मॉडल लिस्ट में दिखने लगता है।
Discover Models पर क्लिक करें — आपके लोकल Ollama का हर मॉडल वास्तविक कॉन्टेक्स्ट लंबाई और क्षमताओं के साथ स्वतः इम्पोर्ट हो जाता है। हमेशा की तरह एनरिच करें।
UI में एक क्लिक WebSocket को तुरंत बंद कर देता है और credentials को अमान्य कर देता है।
टनल को यथासंभव कम अटैक सरफ़ेस जोड़ने के लिए डिज़ाइन किया गया था। इस फ़ीचर के पहले के ड्राफ़्ट में एक नए पोर्ट पर पब्लिक SSH सर्वर का उपयोग होता था; हमने SSH अटैक सरफ़ेस को पूरी तरह समाप्त करने के लिए उसे इन-प्रोसेस WebSocket मल्टीप्लेक्सर से बदल दिया।
सब कुछ मौजूदा :443 इनग्रेस से होकर जाता है — वही TLS एंडपॉइंट जो वेब ऐप के लिए है। कोई SSH सर्वर नहीं, कोई खुला Ollama पोर्ट नहीं।
CLI WebSocket आरंभ करता है। आपका लैपटॉप कभी भी इनबाउंड कनेक्शन स्वीकार नहीं करता — आपके होम नेटवर्क फ़ायरवॉल को बदलने की ज़रूरत नहीं है।
एक tunnel एक अकेले organization से बंधा होता है। प्लेटफ़ॉर्म पर अन्य टेनेंट इसे न देख, न चुन, न इनवोक कर सकते हैं। सिस्टम एडमिन के पास डिज़ाइन के अनुसार क्रॉस-org दृश्यता होती है।
रद्द करने से क्रेडेंशियल्स डेटाबेस से हट जाते हैं। अगला अनुरोध 401 के साथ विफल होता है। सक्रिय WebSocket को ~1 सेकंड के भीतर हटा दिया जाता है।
ब्राउज़र-OAuth फ्लो क्रेडेंशियल्स को एंड-टू-एंड संभालता है। ब्राउज़र आपका रिफ्रेश टोकन कभी नहीं देखता; CLI उसे सीधे अपने पोलिंग चैनल के माध्यम से प्राप्त करता है।
डिफ़ॉल्ट रूप से प्रति ऑर्गनाइज़ेशन 5 सक्रिय टनल; 16 MB इनबाउंड WebSocket फ्रेम कैप; कोटा से अधिक होने पर संरचित 402 त्रुटियाँ।
SSRF गार्ड। टनल फ़ीचर एक पहले से मौजूद खामी को भी बंद करता है: Ollama प्रोवाइडर्स पर specific_endpoint फ़ील्ड अब एक allowlist regex के विरुद्ध सत्यापित की जाती है, इसलिए प्राइवेट IP, लूपबैक, और Docker compose सर्विस नामों का उपयोग कभी भी प्रोवाइडर URL के रूप में नहीं किया जा सकता।
| कमांड | यह क्या करता है |
|---|---|
| ee-tunnel pair --server URL | ब्राउज़र-OAuth पेयरिंग। वेरिफ़िकेशन URL स्वचालित रूप से खोलता है। |
| ee-tunnel pair --server URL <token> | UI से कॉपी किए गए refresh token के साथ मैन्युअल पेयरिंग (हेडलेस वातावरणों के लिए फ़ॉलबैक)। |
| ee-tunnel | कनेक्ट करें और सर्व करें। अस्थायी ड्रॉप पर एक्सपोनेंशियल बैकऑफ़ (1s → 30s) के साथ फिर से कनेक्ट होता है। |
| ee-tunnel status | pairing स्थिति, server URL, कॉन्फ़िगर किया गया Ollama URL, label दिखाएं। |
| ee-tunnel disconnect | स्थानीय क्रेडेंशियल भूल जाएँ। सर्वर-साइड पर रद्द नहीं करता; इसके लिए UI का उपयोग करें। |
| ee-tunnel version | प्रिंट संस्करण। |
यदि आपका Ollama किसी भिन्न port पर सुनता है, तो EE_TUNNEL_OLLAMA_URL सेट करें या pair करते समय --ollama URL पास करें।
macOS · ~/Library/Application Support/ee-tunnel/
Linux · ~/.config/ee-tunnel/
Windows · %APPDATA%\ee-tunnel\
| प्रति organization सक्रिय tunnel | 5 (डिफ़ॉल्ट) |
| रीफ़्रेश-टोकन TTL | 365 दिन |
| Access-token TTL | 15 मिनट |
| पेयरिंग TTL | 10 मिनट |
| इनबाउंड WebSocket फ़्रेम अधिकतम | 16 MB |
| आउटबाउंड चंक आकार (CLI) | 16 KB |
| हार्टबीट अंतराल | 30 सेकंड |
नहीं। CLI एक आउटबाउंड WebSocket शुरू करती है। आपका लैपटॉप कभी भी इनबाउंड कनेक्शन स्वीकार नहीं करता, और आपका Ollama पोर्ट localhost से बंधा रहता है।
डिस्कनेक्ट होने पर CLI सहजता से बाहर निकल जाता है। लैपटॉप फिर से शुरू करने और ee-tunnel को दोबारा चलाने से मौजूदा क्रेडेंशियल्स के साथ पुनः कनेक्ट हो जाता है। टनल बंद रहते हुए चल रहे एनरिचमेंट एक साफ़ ConnectError के साथ विफल हो जाते हैं।
नहीं। प्रत्येक टनल एक ही संगठन से बंधी होती है। प्लेटफ़ॉर्म के अन्य टेनेंट इसे देख, चुन या इनवोक नहीं कर सकते। सिस्टम एडमिन डिज़ाइन के अनुसार सभी टनल देख सकते हैं (ग्लोबल API कीज़ की तरह)।
लगभग हमेशा — केवल outbound :443 की आवश्यकता होती है। वही रास्ता जो वेब ऐप उपयोग करता है।
Tunnels टैब पर "Rotate token" पर क्लिक करें। पुराना टोकन तुरंत अमान्य हो जाता है; मोडल आपके लैपटॉप के लिए एक नया pair कमांड दिखाता है।
हाँ — CLI मनमाना HTTP फ़ॉरवर्ड करता है। EE_TUNNEL_OLLAMA_URL को किसी भी लोकल OpenAI-संगत endpoint पर सेट करें। जो कुछ भी Ollama के /v1/chat/completions या /api/tags से बात करता है वह काम करेगा।
CLI और इंस्टॉलर MIT-लाइसेंस प्राप्त हैं और एक सार्वजनिक रिपॉजिटरी में मौजूद हैं ताकि कोई भी यह ऑडिट कर सके कि उनकी मशीन पर क्या चलता है।
सोर्स: github.com/TOT-Concept/ee-tunnel
रिलीज़: github.com/TOT-Concept/ee-tunnel/releases — प्रकाशन से पहले प्रत्येक बाइनरी को cosign से हस्ताक्षरित किया जाता है।
इंस्टॉलर का ऑडिट करें: curl -fsSL https://entityenricher.ai/install.sh | less