यह मार्गदर्शिका उस Mac मालिक के लिए है जिसे ऐप इंस्टॉल करने और अपनी गैर-संवेदनशील परीक्षण फ़ाइल इस्तेमाल करने की अनुमति है। आप Ollama में एक मॉडल डाउनलोड करेंगे, बातचीत सहेजने वाले Open WebUI ब्राउज़र चैट और VS Code के Continue एक्सटेंशन को उसी निष्पादन सेवा से जोड़ेंगे, फिर वास्तविक संशोधन प्रस्ताव देखकर उसे रखने का निर्णय लेंगे। नीचे दिए कमांड और जाँच रखरखावकर्ताओं के मौजूदा दस्तावेज़ों पर आधारित हैं। BIG CHANGE ने यह व्यवस्था चलाई नहीं है और न गति, लागत या नेटवर्क ट्रैफ़िक मापा है।

बड़ा बदलाव

  • क्या बदलता है: डाउनलोड किया Ollama मॉडल अपने स्थानीय API से ब्राउज़र चैट और VS Code संपादन सहायक, दोनों को सेवा दे सकता है। हर क्लाइंट का कनेक्शन अलग जाँचना होगा।
  • यह क्यों अहम है: एक मॉडल इंस्टॉलेशन उसी Mac पर बातचीत और जाँचे गए कोड बदलाव में मदद कर सकता है, जबकि अंतिम संशोधन का निर्णय फ़ाइल मालिक के पास रहता है।
  • किस पर ध्यान दें: मेनू में मॉडल का नाम यह सिद्ध नहीं करता कि किस सर्वर ने जवाब दिया। प्रदाता कनेक्शन और वास्तविक जवाब जाँचें, विशेषकर जब अन्य प्रदाता या क्लाउड सुविधाएँ भी सेट हों।

1. Mac जाँचें और मॉडल चुनें

आपको चाहिए Ollama के लिए macOS 14 या नया, Mac के लिए Docker Desktop, Continue एक्सटेंशनवाला VS Code और नीचे की छोटी JSON तथा फ़ाइल जाँच के लिए Python 3। Ollama Apple M शृंखला के CPU और GPU पर चलता है; Intel Mac के लिए दस्तावेज़ में केवल CPU है। Mac डाउनलोड पृष्ठ से Ollama इंस्टॉल करें, ऐप को Applications में ले जाएँ, खोलें और पूछे जाने पर कमांड-लाइन लिंक की अनुमति दें। Docker Desktop इंस्टॉल करके चलाएँ, फिर VS Code के Extensions दृश्य से Continue इंस्टॉल करें। Python 3 को Python.org से इंस्टॉल करें यदि python3 उपलब्ध नहीं है। Mac पर VS Code अपने-आप code को शेल के खोज पथ में नहीं जोड़ता। इसके Mac सेटअप निर्देशअपनाएँ: Cmd+Shift+Pसे Command Palette खोलें, Shell Command: Install 'code' command in PATHचलाएँ और Terminal फिर शुरू करें। आवश्यक उपकरण उपलब्ध होने की पुष्टि करें:

Terminal
sw_vers -productVersion
ollama --version
docker version
code --version
python3 --version

इंस्टॉल किए संस्करण लिख लें। कोई ऐप न चल रहा हो या मॉडल और Docker डेटा के लिए जगह न हो, तो रुकें। qwen2.5-coder:7b मॉडल सूची में अभी 4.7 GB डाउनलोड और Apache 2.0 लाइसेंस है। डाउनलोड आकार कुल कार्यशील मेमोरी की ज़रूरत नहीं है। यह ठोस उदाहरण है, हर Mac के लिए सिफ़ारिश नहीं। ज़रूरत पर दस्तावेज़ित छोटा स्थानीय टैग चुनें और नीचे हर कमांड, ब्राउज़र चयन तथा YAML फ़ील्ड में qwen2.5-coder:7b की जगह वही सटीक टैग रखें। बदले हुए मॉडल का लाइसेंस भी जाँचें।

मॉडल डाउनलोड करें और पुष्टि करें कि Ollama वही सटीक टैग दिखाता है:

Terminal
ollama pull qwen2.5-coder:7b
ollama list
curl --fail-with-body --silent --show-error http://127.0.0.1:11434/api/tags | python3 -c 'import json,sys; d=json.load(sys.stdin); print([m["name"] for m in d["models"]])'

सूची में qwen2.5-coder:7bहोना चाहिए। अब स्थानीय चैट API से छोटा जवाब माँगें। HTTP त्रुटि पर कमांड विफल होता है और लौटे मॉडल तथा सहायक के गैर-खाली पाठ की जाँच करता है; जवाब के सटीक शब्द महत्त्वपूर्ण नहीं। Ollama निष्पादन विकल्प num_predict इस जाँच को 64 बनाए गए टोकन तक सीमित करता है। कटा वाक्य भी सामग्री मिलने का प्रमाण हो सकता है; खाली जवाब जाँच विफल करता है और उसकी पड़ताल ज़रूरी है।

Terminal
set -o pipefail
curl --fail-with-body --silent --show-error http://127.0.0.1:11434/api/chat \
  -H 'Content-Type: application/json' \
  -d '{"model":"qwen2.5-coder:7b","messages":[{"role":"user","content":"Reply with one short sentence about checking a local connection."}],"stream":false,"options":{"num_predict":64}}' \
  | python3 -c 'import json,sys; d=json.load(sys.stdin); assert d.get("model")=="qwen2.5-coder:7b",d.get("model"); assert d.get("message",{}).get("content","").strip(); print("Model:",d["model"],"Reply:",d["message"]["content"])'

टैग न हो तो डाउनलोड पूरा करके सूची फिर देखें। API पहुँच में न हो तो Ollama शुरू करें और उसका Mac सर्वर लॉग यहाँ देखें: ~/.ollama/logs/server.log। डाउनलोड किया टैग और सफल स्थानीय जवाब तीन जाँचों में पहली हैं।

2. स्थायी स्थानीय डेटा के साथ Open WebUI शुरू करें

यह Open WebUI त्वरित शुरुआत मार्गदर्शिका खाते, सेटिंग और चैट /app/backend/data में रखती है और स्थिर WEBUI_SECRET_KEYमाँगती है। हम स्थिर v0.12.3 रिलीज़ इस्तेमाल करते हैं, लगातार बदलता main टैग नहीं। Docker Mac की संरचना के लिए सही इमेज चुनेगा; डाउनलोड के बाद उसकी पहचान दर्ज करें।

पहले यहाँ इस्तेमाल नाम जाँचें। कोई पहले से हो तो उसका कंटेनर या वॉल्यूम देखें और तय करें कि वह पुरानी व्यवस्था का हिस्सा है या नहीं। केवल कमांड चलाने के लिए मौजूदा कंटेनर न बदलें और उसका वॉल्यूम न मिटाएँ।

Terminal
docker ps -a --filter name=^/bc-open-webui$ 
docker volume inspect bc-open-webui-data

पहली स्थापना में दूसरे कमांड का वॉल्यूम न होने का संदेश सामान्य है। अगले कदम Mac खाते की निजी फ़ाइल में बनाई गई कुंजी रखते हैं। कंटेनर दोबारा बनाने के लिए इसे सुरक्षित रखें। इसका पाठ रिपॉज़िटरी में कमिट, कहीं पेस्ट या साझा न करें। इस इंस्टेंस की कुंजी पहले से है तो वही इस्तेमाल करें।

Terminal
mkdir -p "$HOME/.config/bc-open-webui"
chmod 700 "$HOME/.config/bc-open-webui"
umask 077
if [ ! -s "$HOME/.config/bc-open-webui/webui-secret" ]; then
  openssl rand -hex 32 > "$HOME/.config/bc-open-webui/webui-secret"
fi
chmod 600 "$HOME/.config/bc-open-webui/webui-secret"
export WEBUI_SECRET_KEY="$(cat "$HOME/.config/bc-open-webui/webui-secret")"
docker pull ghcr.io/open-webui/open-webui:v0.12.3
docker image inspect ghcr.io/open-webui/open-webui:v0.12.3 --format '{{json .RepoDigests}}'
docker volume create bc-open-webui-data
docker run -d --name bc-open-webui --restart unless-stopped \
  -p 127.0.0.1:3000:8080 \
  --add-host=host.docker.internal:host-gateway \
  -v bc-open-webui-data:/app/backend/data \
  -e WEBUI_SECRET_KEY \
  -e OLLAMA_BASE_URL=http://host.docker.internal:11434 \
  ghcr.io/open-webui/open-webui:v0.12.3
unset WEBUI_SECRET_KEY
docker ps --filter name=^/bc-open-webui$ --format 'table {{.Names}}\t{{.Image}}\t{{.Ports}}'

पोर्ट आउटपुट में 127.0.0.1:3000->8080/tcpदिखना चाहिए। नाम वाला वॉल्यूम कंटेनर दोबारा बनने पर भी चैट और सेटिंग रखता है। कुंजी सत्र की निरंतरता और ऐप के एन्क्रिप्टेड मान सुरक्षित करती है, इसलिए निजी प्रति सँभालें। Docker पहुँच रखने वाले लोग कंटेनर सेटिंग में पर्यावरण मान देख सकते हैं; यह एक उपयोगकर्ता की स्थानीय व्यवस्था है, साझा होस्ट का गुप्त-डेटा भंडार नहीं।

ब्राउज़र में http://127.0.0.1:3000 खोलें। पहली बार व्यवस्थापक खाता बनाएँ। अवतार मेनू में Settings → Admin → Connectionsखोलें। Manage Ollama API Connections देखें और http://host.docker.internal:11434की केवल एक कनेक्शन सक्रिय रखें; इस जाँच के लिए अनचाहे प्रदाता कनेक्शन हटाएँ या बंद करें। Open WebUI कई Ollama कनेक्शनों में अनुरोध बाँट सकता है, इसलिए ड्रॉपडाउन में मिलता नाम पर्याप्त नहीं। नई चैट में qwen2.5-coder:7b चुनें और पूछें: “कैसे जाँचूँ कि स्थानीय मॉडल ने जवाब दिया?” गैर-खाली जवाब आने की पुष्टि करके सहेजी चैट फिर खोलें। चुना मॉडल और कनेक्शन URL लिखें। यह ब्राउज़र जाँच है; कोई निश्चित जवाब निर्धारित नहीं है।

पृष्ठ न खुले तो docker logs bc-open-webui और पोर्ट बाइंडिंग देखें। मॉडल सूची खाली हो तो जाँचें कि Ollama अब भी /api/tagsका जवाब देता है, सहेजा Open WebUI कनेक्शन देखें और परखें कि Docker Desktop का यह संस्करण Mac होस्ट सेवा तक पहुँचता है या नहीं। host.docker.internal है Docker Desktop का होस्ट पता, जबकि localhost कंटेनर के भीतर उसी कंटेनर को दर्शाता है। Ollama डिफ़ॉल्ट रूप से 127.0.0.1 से बँधता है; होस्ट-कंटेनर अग्रेषण सेटिंग के अनुसार बदल सकता है। असफल कनेक्शन को सफल स्थापना न मानें और सामान्य सुधार के तौर पर Ollama को 0.0.0.0 पर न खोलें। आगे बढ़ने से पहले अपनी सुरक्षा नीति के अनुसार स्थानीय नेटवर्क पथ सुलझाएँ। पड़ताल के दौरान वॉल्यूम और मौजूदा चैट बचाए रखें।

3. Continue को उसी Ollama टैग से जोड़ें

Continue Mac पर VS Code में चलता है, इसलिए उसका Ollama API पता है http://localhost:11434। Continue खोलें, चैट इनपुट के ऊपर दाईं ओर कॉन्फ़िगरेशन ड्रॉपडाउन खोलें और Local Configके पास गियर पर क्लिक करें। इससे ~/.continue/config.yamlखुलता है; Continue का मौजूदा संदर्भ YAML इस्तेमाल करता है। पुरानी सेटिंग की प्रति रखें और ज़रूरी मॉडल या नियम बचाएँ। नई स्थानीय सेटिंग के लिए पूरा न्यूनतम पाठ है:

YAML
name: Local Ollama check
version: 1.0.0
schema: v1
models:
  - name: Qwen2.5 Coder 7B local
    provider: ollama
    model: qwen2.5-coder:7b
    apiBase: http://localhost:11434
    roles:
      - chat
      - edit

मौजूदा फ़ाइल में इस मॉडल प्रविष्टि को उसकी models: सूची में जोड़ें और ऊपर की मौजूदा सेटिंग रखें। सहेजें, Local Config और नामित स्थानीय मॉडल चुनें, फिर Continue Chat में छोटा सवाल पूछें। सामग्री लौटने की पुष्टि करें। यह एक्सटेंशन कनेक्शन जाँचता है, लेकिन चैट उत्तर फ़ाइल संशोधन नहीं है। chat और edit भूमिकाएँ यहाँ की दो कार्रवाइयाँ सक्षम करती हैं; यह विधि Agent या स्वतः पूर्ति का वादा नहीं करती।

अपनी परीक्षण निर्देशिका और साधारण व्यवहार वाली फ़ाइल बनाएँ जिसे स्वतंत्र रूप से जाँच सकें। कमांड मौजूदा फ़ाइल या मूल प्रति बचाता है; कोई नाम उपयोग में हो तो उसे देखें या नई परीक्षण निर्देशिका चुनें:

Terminal
mkdir -p "$HOME/continue-local-check"
if [ -e "$HOME/continue-local-check/greeting.py" ] || [ -e "$HOME/continue-local-check/greeting.original.py" ]; then
  printf '%s\n' 'Scratch file already exists; inspect it or choose a new directory.'
else
  cat > "$HOME/continue-local-check/greeting.py" <<'PY'
def greeting(name):
    return "Hello, " + name

if __name__ == "__main__":
    assert greeting("Ada") == "Hello, Ada"
    print(greeting("Ada"))
PY
  if python3 "$HOME/continue-local-check/greeting.py"; then
    cp "$HOME/continue-local-check/greeting.py" "$HOME/continue-local-check/greeting.original.py"
  else
    printf '%s\n' 'Original check failed; inspect the file before requesting an edit.'
  fi
fi

मूल जाँच को assertion सफल होने के बाद Hello, Ada छापना चाहिए। greeting.py को VS Code में खोलें, केवल फ़ंक्शन चुनें और Cmd+I दबाकर Continue Editइस्तेमाल करें। लौटने वाला पाठ बदले बिना छोटी docstring जोड़ने को कहें। धीरे दिखते इनलाइन diff को greeting.original.pyसे मिलाएँ; चुने कोड पर Edit भी पूरी फ़ाइल संदर्भ में ला सकता है, इसलिए केवल अपनी गैर-संवेदनशील फ़ाइल लें। मॉडल माँग से ज़्यादा बदलाव कर सकता है। हर बदली पंक्ति देखें और उचित प्रस्ताव Cmd+Opt+Yसे स्वीकार करें, या Cmd+Opt+Nसे अस्वीकार करें। Continue में सभी बदलाव स्वीकार या अस्वीकार करने के विकल्प भी हैं, लेकिन छोटे diff को एक-एक बदलाव करके जाँचना आसान है।

स्वीकार करने के बाद फ़ाइल सहेजें और चलाएँ:

Terminal
diff -u "$HOME/continue-local-check/greeting.original.py" "$HOME/continue-local-check/greeting.py" || true
python3 "$HOME/continue-local-check/greeting.py"

पुष्टि करें कि diff में केवल अपेक्षित बदलाव है और मूल assertion अभी भी सफल है। प्रस्ताव ठुकराएँ तो फ़ाइल मूल जैसी होने की जाँच और अस्वीकृति दर्ज करें; संशोधन पूरा होने का दावा न करें। फ़ाइल, diff और स्वतंत्र Python जाँच मॉडल के अपने वर्णन से बेहतर प्रमाण देते हैं।

4. सीमाएँ स्पष्ट रखें

Ollama, Open WebUI और Continue की अलग सेटिंग हैं। केवल Ollama क्लाउड बंद करने के लिए सर्वर चलाने वाले खाते की ~/.ollama/server.jsonमें नीचे का फ़ील्ड जोड़ें, मौजूदा JSON फ़ील्ड बचाएँ। नई फ़ाइल के लिए पूरा पाठ है:

JSON
{
  "disable_ollama_cloud": true
}

Ollama ऐप फिर शुरू करें और उसका सर्वर लॉग देखें:

Terminal
grep 'Ollama cloud disabled: true' "$HOME/.ollama/logs/server.log"

यह Ollama FAQ उस लॉग पंक्ति को बताती है। न मिले तो क्लाउड बंद होने का दावा करने से पहले Ollama चलाने वाला Mac खाता, JSON और दोबारा शुरुआत जाँचें। यह सेटिंग Open WebUI के दूसरे प्रदाता, वैकल्पिक ऑनलाइन सुविधाएँ या Continue ट्रैफ़िक नहीं जाँचती। Continue की ऑफ़लाइन मार्गदर्शिका के अनुसार Allow Anonymous Telemetryबंद करें, स्थानीय मॉडल लें और VS Code फिर शुरू करें। संवेदनशील सामग्री से पहले हर ऐप का कनेक्शन देखें। केवल लूपबैक URL नेटवर्क ऑडिट नहीं है।

अपने वास्तविक उपयोग के लिए Docker Desktop लाइसेंस देखें। व्यक्तिगत, शैक्षिक, गैर-व्यावसायिक ओपन-सोर्स उपयोग तथा ऐसे छोटे व्यवसायों के लिए मुफ़्त है जिनके 250 से कम कर्मचारी और सालाना आय 1 करोड़ अमेरिकी डॉलर से कम हो। बड़े संगठनों और सरकार में व्यावसायिक उपयोग के लिए सशुल्क सदस्यता चाहिए। मॉडल का Apache 2.0 लाइसेंस अलग है। डिस्क, मेमोरी, डाउनलोड बैंडविड्थ और बिजली फिर भी ज़रूरी हैं; इस गाइड के लिए लागत या प्रदर्शन नहीं मापा गया।

केवल Ollama टर्मिनल और API की छोटी प्रक्रिया के लिए देखें स्थानीय Ollama मॉडल चलाएँ और उसका चैट API जाँचें। स्थानीय Ollama मॉडल से Claude Code का एक जाँचा बदलाव करें एक अन्य प्रोग्रामिंग क्लाइंट बताती है।

स्रोत और आगे पढ़ें