Ollama Tunnels - Entity Enricher दस्तावेज़ीकरण

Ollama Tunnels

अपने लैपटॉप के लोकल 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 के माध्यम से रूट करें। प्लेटफ़ॉर्म फिर भी लागत, टोकन, और मेटाडेटा रिकॉर्ड करता है — केवल इन्फरेंस ही स्थानीय रहता है।

30 सेकंड में एक नया मॉडल आज़माएँ

अपने लैपटॉप पर `ollama pull` से कोई मॉडल पुल करें, Discover Models पर क्लिक करें, और यह असली context length और क्षमताओं के साथ Entity Enricher सेलेक्टर में दिखाई देता है।

बर्स्टी वर्कलोड को ऑफ़लोड करें

जब कोई होस्टेड प्रोवाइडर आप पर रेट-लिमिट लगाता है, तो बाकी बैच के लिए टनल किए गए लोकल मॉडल पर फेल ओवर करें।

त्वरित शुरुआत

आपके लैपटॉप पर दो कमांड, ब्राउज़र में एक क्लिक। पूरे फ़्लो में लगभग एक मिनट लगता है।

  1. 1

    UI में एक tunnel बनाएँ

    API Keys → Ollama Tunnels खोलें और New Ollama Tunnel पर क्लिक करें। एक label टाइप करें ताकि आप इस डिवाइस को बाद में पहचान सकें (जैसे "Anthony's MacBook")।

    [स्क्रीनशॉट प्लेसहोल्डर — "New Ollama Tunnel" बटन हाइलाइट किए गए Tunnels टैब]
  2. 2

    अपने लैपटॉप पर CLI इंस्टॉल करें

    इसे टर्मिनल में पेस्ट करें। स्क्रिप्ट इंस्टॉल करने से पहले एक cosign सिग्नेचर को वेरिफ़ाई करती है।

    curl -fsSL https://entityenricher.ai/install.sh | sh

    इंस्टॉलर प्रिंट करता है कि वह क्या करने वाला है (डाउनलोड URL, सिग्नेचर, इंस्टॉल पाथ) और 5 सेकंड के लिए रुकता है ताकि आपके पास Ctrl+C का मौका हो। सोर्स कोड TOT-Concept/ee-tunnel (MIT) पर है। Windows यूज़र इसके बजाय install.ps1 इस्तेमाल करें।

  3. 3

    अपने ब्राउज़र के माध्यम से पेयर करें

    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...
    [स्क्रीनशॉट प्लेसहोल्डर — डिवाइस-कोड के साथ /tunnel/connect पुष्टिकरण पेज]

    आप कभी टोकन कॉपी-पेस्ट नहीं करते। ब्राउज़र केवल टनल मेटाडेटा देखता है; CLI अपने क्रेडेंशियल्स अपने खुद के पोलिंग चैनल पर प्राप्त करता है।

  4. 4

    कनेक्ट करें और मॉडल खोजें

    ee-tunnel रन करें। Tunnels टैब में स्टेटस पिल कुछ ही सेकंड में Connected पर बदल जाता है। फिर स्थानीय रूप से इंस्टॉल किए गए हर चैट मॉडल को ऑटो-इम्पोर्ट करने के लिए Models & Pricing में Ollama प्रोवाइडर पर Discover Models क्लिक करें।

    [वीडियो प्लेसहोल्डर — Discover Models प्लेटफ़ॉर्म में 4 लोकल Ollama मॉडल खींच रहा है]

पेयरिंग कैसे काम करती है

पेयरिंग 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 अपडेट इंक्रीमेंटल रहते हैं।

लाइफ़साइकल

01

बनाएँ

एक organization स्वामी "New Ollama Tunnel" पर क्लिक करता है, एक लेबल टाइप करता है, और पुष्टि करता है। प्लेटफ़ॉर्म credentials आवंटित करता है।

02

पेयर करें

अपने लैपटॉप पर, वन-लाइन इंस्टॉलर और `ee-tunnel pair` चलाएँ। एक ब्राउज़र टैब खुलता है — उसी Entity Enricher अकाउंट से पुष्टि करें।

03

कनेक्ट करें

`ee-tunnel` रन करें। CLI एक सिंगल आउटबाउंड HTTPS WebSocket खोलता है। नया प्रोवाइडर कुछ ही सेकंड में आपकी मॉडल लिस्ट में दिखने लगता है।

04

उपयोग करें

Discover Models पर क्लिक करें — आपके लोकल Ollama का हर मॉडल वास्तविक कॉन्टेक्स्ट लंबाई और क्षमताओं के साथ स्वतः इम्पोर्ट हो जाता है। हमेशा की तरह एनरिच करें।

05

रद्द करें

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 के रूप में नहीं किया जा सकता।

CLI संदर्भ

कमांडयह क्या करता है
ee-tunnel pair --server URLब्राउज़र-OAuth पेयरिंग। वेरिफ़िकेशन URL स्वचालित रूप से खोलता है।
ee-tunnel pair --server URL <token>UI से कॉपी किए गए refresh token के साथ मैन्युअल पेयरिंग (हेडलेस वातावरणों के लिए फ़ॉलबैक)।
ee-tunnelकनेक्ट करें और सर्व करें। अस्थायी ड्रॉप पर एक्सपोनेंशियल बैकऑफ़ (1s → 30s) के साथ फिर से कनेक्ट होता है।
ee-tunnel statuspairing स्थिति, server URL, कॉन्फ़िगर किया गया Ollama URL, label दिखाएं।
ee-tunnel disconnectस्थानीय क्रेडेंशियल भूल जाएँ। सर्वर-साइड पर रद्द नहीं करता; इसके लिए UI का उपयोग करें।
ee-tunnel versionप्रिंट संस्करण।

कस्टम Ollama URL

यदि आपका Ollama किसी भिन्न port पर सुनता है, तो EE_TUNNEL_OLLAMA_URL सेट करें या pair करते समय --ollama URL पास करें।

फ़ाइलें कहां रहती हैं

macOS · ~/Library/Application Support/ee-tunnel/
Linux · ~/.config/ee-tunnel/
Windows · %APPDATA%\ee-tunnel\

सीमाएँ और समय

प्रति organization सक्रिय tunnel5 (डिफ़ॉल्ट)
रीफ़्रेश-टोकन TTL365 दिन
Access-token TTL15 मिनट
पेयरिंग TTL10 मिनट
इनबाउंड WebSocket फ़्रेम अधिकतम16 MB
आउटबाउंड चंक आकार (CLI)16 KB
हार्टबीट अंतराल30 सेकंड

सामान्य प्रश्न

क्या मेरा Ollama इंटरनेट पर उजागर है?

नहीं। CLI एक आउटबाउंड WebSocket शुरू करती है। आपका लैपटॉप कभी भी इनबाउंड कनेक्शन स्वीकार नहीं करता, और आपका Ollama पोर्ट localhost से बंधा रहता है।

मेरा लैपटॉप स्लीप में जाने पर क्या होता है?

डिस्कनेक्ट होने पर CLI सहजता से बाहर निकल जाता है। लैपटॉप फिर से शुरू करने और ee-tunnel को दोबारा चलाने से मौजूदा क्रेडेंशियल्स के साथ पुनः कनेक्ट हो जाता है। टनल बंद रहते हुए चल रहे एनरिचमेंट एक साफ़ ConnectError के साथ विफल हो जाते हैं।

क्या अन्य organization मेरे tunnel का उपयोग कर सकते हैं?

नहीं। प्रत्येक टनल एक ही संगठन से बंधी होती है। प्लेटफ़ॉर्म के अन्य टेनेंट इसे देख, चुन या इनवोक नहीं कर सकते। सिस्टम एडमिन डिज़ाइन के अनुसार सभी टनल देख सकते हैं (ग्लोबल API कीज़ की तरह)।

क्या यह कॉर्पोरेट फ़ायरवॉल के पीछे काम करता है?

लगभग हमेशा — केवल outbound :443 की आवश्यकता होती है। वही रास्ता जो वेब ऐप उपयोग करता है।

मैं क्रेडेंशियल कैसे रोटेट करूँ?

Tunnels टैब पर "Rotate token" पर क्लिक करें। पुराना टोकन तुरंत अमान्य हो जाता है; मोडल आपके लैपटॉप के लिए एक नया pair कमांड दिखाता है।

क्या मैं इसे Ollama के बिना उपयोग कर सकता हूँ?

हाँ — 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