యాప్‌లను ఇన్‌స్టాల్ చేసే అనుమతి, సున్నిత సమాచారం లేని సొంత పరీక్ష ఫైల్ ఉన్న 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 కంటే తక్కువ ఉద్యోగులు మరియు ఏడాది ఆదాయం 10 మిలియన్ అమెరికన్ డాలర్ల కంటే తక్కువ. పెద్ద సంస్థలు, ప్రభుత్వ వృత్తిపర వినియోగానికి చెల్లింపు సభ్యత్వం అవసరం. మోడల్ Apache 2.0 లైసెన్స్ వేరు. డిస్క్‌, మెమరీ, డౌన్‌లోడ్ బ్యాండ్‌విడ్త్‌, విద్యుత్తు ఇంకా అవసరమే; ఈ గైడ్‌కు ఖర్చు లేదా పనితీరు కొలవలేదు.

Ollama టెర్మినల్‌, API మాత్రమే తెలిపే చిన్న విధానానికి చూడండి స్థానిక Ollama మోడల్ నడిపి దాని చాట్ API తనిఖీ చేయండి. స్థానిక Ollama మోడల్‌తో Claude Codeలో ఒక తనిఖీ చేసిన మార్పు చేయండి మరో ప్రోగ్రామింగ్ క్లయింట్‌ను వివరిస్తుంది.

మూలాలు, మరింత చదవడానికి