Panduan ini untuk pemilik Mac yang diizinkan memasang aplikasi dan menggunakan file uji miliknya tanpa informasi sensitif. Anda akan mengunduh satu model di Ollama, menghubungkan chat browser Open WebUI yang tersimpan dan ekstensi Continue di VS Code ke layanan eksekusi yang sama, lalu memeriksa usulan perubahan nyata sebelum memutuskan menyimpannya. Perintah dan pemeriksaan berikut mengikuti dokumentasi pengelola terkini. BIG CHANGE belum menjalankan susunan ini atau mengukur kecepatan, biaya, maupun lalu lintas jaringannya.
Perubahan besar
- Apa yang berubah: Model Ollama yang diunduh dapat melayani chat browser dan asisten penyuntingan VS Code melalui API lokalnya. Koneksi setiap klien tetap perlu diperiksa sendiri.
- Mengapa penting: Satu instalasi model dapat mendukung percakapan dan perubahan kode yang ditinjau pada Mac yang sama, sementara keputusan akhir tetap pada pemilik file.
- Yang perlu diperhatikan: Nama model dalam menu tidak membuktikan server mana yang menjawab. Periksa koneksi penyedia dan balasan sebenarnya, khususnya jika penyedia lain atau fitur cloud dikonfigurasi.
1. Periksa Mac dan pilih model
Anda memerlukan macOS 14 atau lebih baru untuk Ollama, Docker Desktop untuk Mac, VS Code dengan ekstensi Continue, serta Python 3 untuk pemeriksaan JSON dan file kecil berikut. Ollama mendukung eksekusi CPU dan GPU seri Apple M; dokumentasi untuk Intel Mac hanya mencantumkan CPU. Pasang Ollama dari halaman unduhan Mac, pindahkan aplikasi ke Applications, buka, dan izinkan tautan baris perintah jika diminta. Pasang dan jalankan Docker Desktop, lalu Continue melalui tampilan Extensions di VS Code. Pasang Python 3 dari Python.org jika python3 tidak tersedia. Pada Mac, VS Code tidak otomatis menambahkan code ke jalur pencarian shell. Ikuti petunjuk penyiapan Mac: buka Command Palette dengan Cmd+Shift+P, jalankan Shell Command: Install 'code' command in PATH, lalu mulai ulang Terminal. Pastikan alat yang diperlukan tersedia:
sw_vers -productVersion
ollama --version
docker version
code --version
python3 --versionCatat versi terpasang. Berhenti jika salah satu aplikasi tidak berjalan atau ruang Mac tidak cukup untuk model dan data Docker. Halaman model qwen2.5-coder:7b saat ini mencantumkan unduhan 4,7 GB dan lisensi Apache 2.0. Ukuran unduhan bukan seluruh kebutuhan memori kerja. Ini contoh konkret, bukan rekomendasi untuk setiap Mac. Jika perlu, pilih tag lokal lebih kecil yang terdokumentasi, lalu ganti qwen2.5-coder:7b dengan tag persis tersebut pada semua perintah, pilihan browser, dan kolom YAML berikut. Periksa juga lisensi model pengganti.
Unduh model dan pastikan Ollama mencantumkan tag yang tepat:
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"]])'Daftar harus memuat qwen2.5-coder:7b. Kemudian minta API chat lokal memberikan balasan singkat. Perintah gagal saat ada kesalahan HTTP dan memeriksa model yang dikembalikan serta isi asisten yang tidak kosong; susunan kata jawabannya tidak penting. Opsi eksekusi Ollama num_predict membatasi pemeriksaan ini menjadi 64 token yang dihasilkan. Kalimat terpotong tetap dapat membuktikan adanya isi; jawaban kosong berarti pemeriksaan gagal dan perlu ditelusuri.
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"])'Jika tag tidak ada, selesaikan unduhan dan periksa daftar kembali. Jika API tidak terjangkau, jalankan Ollama dan periksa log server Mac di ~/.ollama/logs/server.log. Tag yang sudah diunduh dan jawaban lokal yang berhasil adalah pemeriksaan pertama dari tiga pemeriksaan.
2. Jalankan Open WebUI dengan data lokal persisten
Panduan mulai cepat Open WebUI menyimpan akun, pengaturan, dan chat di /app/backend/data serta memerlukan nilai tetap untuk WEBUI_SECRET_KEY. Kita menggunakan rilis stabil v0.12.3 alih-alih tag yang terus berubah main . Docker memilih image untuk arsitektur Mac; catat identitas image setelah mengunduhnya.
Periksa dahulu nama yang dipakai di sini. Jika sudah ada, periksa container atau volume tersebut dan tentukan apakah milik penyiapan sebelumnya. Jangan mengganti container atau menghapus volumenya hanya agar perintah ini berjalan.
docker ps -a --filter name=^/bc-open-webui$
docker volume inspect bc-open-webui-dataPada penyiapan pertama, wajar jika perintah kedua menyatakan volume tidak ada. Langkah berikut menyimpan kunci yang dibuat dalam file privat di akun Mac Anda. Simpan dengan aman untuk membuat ulang container. Jangan commit isinya ke repositori, menempelkannya, atau membagikannya. Jika instance ini sudah memiliki kunci, terus gunakan kunci itu.
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}}'Keluaran port harus menunjukkan 127.0.0.1:3000->8080/tcp. Volume bernama mempertahankan chat dan pengaturan saat container dibuat ulang. Kunci melindungi kesinambungan sesi dan nilai aplikasi terenkripsi, jadi simpan salinan privatnya. Orang yang memiliki akses Docker dapat melihat nilai lingkungan di konfigurasi container; ini penyiapan lokal satu pengguna, bukan penyimpanan rahasia untuk host bersama.
Buka http://127.0.0.1:3000 di browser. Pada pertama kali, buat akun admin. Dalam menu avatar, buka Settings → Admin → Connections. Periksa Manage Ollama API Connections dan sisakan satu koneksi aktif ke http://host.docker.internal:11434; hapus atau nonaktifkan koneksi penyedia yang tidak dimaksudkan untuk pemeriksaan ini. Open WebUI dapat membagi permintaan ke beberapa koneksi Ollama, sehingga nama yang cocok di dropdown saja tidak cukup. Pilih qwen2.5-coder:7b pada chat baru dan tanyakan: “Bagaimana memeriksa bahwa model lokal yang menjawab?” Pastikan balasan tidak kosong muncul, kemudian buka kembali chat tersimpan. Catat model dan URL koneksi. Ini pemeriksaan browser; tidak ada jawaban tertentu yang diwajibkan.
Jika halaman tidak dimuat, periksa docker logs bc-open-webui dan pengikatan port. Jika daftar model kosong, pastikan Ollama masih menjawab /api/tags, periksa koneksi Open WebUI tersimpan, dan uji apakah Docker Desktop versi ini dapat menjangkau layanan host Mac. host.docker.internal adalah alamat host Docker Desktop, sedangkan localhost dari dalam container berarti container itu sendiri. Ollama secara bawaan terikat ke 127.0.0.1; penerusan host ke container dapat berbeda menurut konfigurasi. Jangan menganggap koneksi gagal sebagai penyiapan berhasil atau mengekspos Ollama di 0.0.0.0 sebagai perbaikan biasa. Selesaikan jalur jaringan lokal sesuai kebijakan keamanan sebelum lanjut. Pertahankan volume dan chat lama selama penelusuran masalah.
3. Hubungkan Continue ke tag Ollama yang sama
Continue berjalan di VS Code pada Mac, sehingga alamat API Ollama adalah http://localhost:11434. Buka Continue, gunakan dropdown konfigurasi di kanan atas masukan chat, lalu klik roda gigi di sebelah Local Config. Ini membuka ~/.continue/config.yaml; referensi Continue terkini menggunakan YAML. Simpan salinan konfigurasi lama dan pertahankan model atau aturan yang masih dibutuhkan. Untuk konfigurasi lokal baru, berikut isi minimal lengkapnya:
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
- editPada file lama, tambahkan entri model ke daftar models: dan pertahankan konfigurasi tingkat atas. Simpan, pilih Local Config dan model lokal bernama, lalu ajukan pertanyaan singkat di Continue Chat. Pastikan ada isi yang dikembalikan. Ini memeriksa koneksi ekstensi, tetapi jawaban chat bukan penyuntingan file. Peran chat dan edit mengaktifkan dua tindakan yang dipakai di sini; panduan ini tidak menjanjikan Agent atau pelengkapan otomatis.
Buat direktori dan file uji milik Anda dengan perilaku sederhana yang dapat diperiksa secara terpisah. Perintah mempertahankan file atau salinan asli yang ada; periksa atau pilih direktori baru jika salah satu nama sudah digunakan:
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
fiPemeriksaan awal harus mencetak Hello, Ada setelah assertion lolos. Buka greeting.py di VS Code, pilih fungsi saja, lalu tekan Cmd+I untuk Continue Edit. Minta docstring singkat tanpa mengubah teks yang dikembalikan. Bandingkan diff sebaris yang muncul bertahap dengan greeting.original.py; Edit atas kode terpilih dapat memasukkan seluruh file ke konteks, jadi gunakan hanya file sendiri tanpa data sensitif. Model bisa mengubah lebih dari yang diminta. Periksa setiap baris berubah dan terima usulan sesuai dengan Cmd+Opt+Y, atau tolak dengan Cmd+Opt+N. Continue juga memiliki kontrol terima semua dan tolak semua, tetapi diff kecil lebih mudah diperiksa satu perubahan sekali.
Setelah menerima, simpan file dan jalankan:
diff -u "$HOME/continue-local-check/greeting.original.py" "$HOME/continue-local-check/greeting.py" || true
python3 "$HOME/continue-local-check/greeting.py"Pastikan diff hanya memuat perubahan yang dimaksud dan assertion awal masih lolos. Jika menolak usulan, pastikan file sama dengan aslinya dan catat penolakan; jangan mengaku sudah menyunting. File, diff, dan pemeriksaan Python terpisah menunjukkan hasil lebih andal daripada uraian model tentang pekerjaannya.
4. Perjelas batas masing-masing
Ollama, Open WebUI, dan Continue memiliki pengaturan terpisah. Untuk menonaktifkan cloud Ollama saja, tambahkan kolom berikut ke ~/.ollama/server.jsonmilik akun yang menjalankan server Ollama, sambil mempertahankan kolom JSON lama. Untuk file baru, berikut isi lengkapnya:
{
"disable_ollama_cloud": true
}Mulai ulang aplikasi Ollama, lalu periksa log servernya:
grep 'Ollama cloud disabled: true' "$HOME/.ollama/logs/server.log"Dokumen Ollama FAQ menjelaskan baris log itu. Jika tidak ada, periksa lagi akun Mac yang menjalankan Ollama, JSON, dan mulai ulang sebelum mengklaim cloud nonaktif. Pengaturan ini tidak memeriksa penyedia Open WebUI lain, fitur daring opsional, atau lalu lintas Continue. Panduan luring Continue menyarankan mematikan Allow Anonymous Telemetry, memakai model lokal, dan memulai ulang VS Code. Periksa koneksi setiap aplikasi sebelum memakai materi sensitif. URL loopback saja bukan audit jaringan.
Periksa lisensi Docker Desktop untuk penggunaan Anda. Gratis untuk penggunaan pribadi, pendidikan, sumber terbuka nonkomersial, serta usaha kecil dengan kurang dari 250 karyawan DAN pendapatan tahunan di bawah US$10 juta. Penggunaan profesional dalam organisasi lebih besar dan pemerintah memerlukan langganan berbayar. Lisensi Apache 2.0 model terpisah. Ruang disk, memori, bandwidth unduhan, dan listrik tetap diperlukan; biaya atau kinerja tidak diukur untuk panduan ini.
Untuk langkah yang lebih terbatas pada terminal dan API Ollama, lihat Jalankan model Ollama lokal dan periksa API chat-nya. Lakukan satu perubahan Claude Code yang diperiksa dengan model Ollama lokal membahas klien pemrograman lain.
Sumber dan bacaan lanjutan
- Persyaratan macOS Ollama, API chat, API daftar model dan FAQ: batas instalasi, kolom API yang dapat diamati, alamat pendengar bawaan, dan pengaturan cloud khusus Ollama. Diperiksa 21 Oktober 2026.
- Spesifikasi API Ollama: kolom eksekusi
options.num_predictmembatasi pemeriksaan chat lokal singkat. Jawaban terbatas bisa berakhir di tengah kalimat. Diperiksa 21 Oktober 2026. - Kartu model Qwen2.5-Coder 7B: contoh tag, unduhan tercantum, dan lisensi model. Periksa detail tag terkini serta sumber daya Mac sebelum mengunduh. Diperiksa 21 Oktober 2026.
- Mulai cepat Open WebUI, Panduan koneksi Ollama dan rilis v0.12.3: penyimpanan dan kunci container, pengaturan penyedia, dan identitas rilis stabil. Mendokumentasikan prosedur, bukan membuktikan Mac ini berhasil terhubung. Diperiksa 21 Oktober 2026.
- Konfigurasi Continue, referensi YAML, mulai cepat Edit dan panduan luring: jalur dan kunci file terkini, kontrol penyuntingan, serta pengaturan telemetri. Diperiksa 21 Oktober 2026.
- Jaringan Docker Desktop, instalasi Mac dan lisensi: alamat host, instalasi, dan batas penggunaan bisnis. Periksa ketentuan organisasi terkini. Diperiksa 21 Oktober 2026.
- Penyiapan VS Code di Mac dan unduhan Python 3: instalasi perintah shell opsional dan interpreter pemeriksaan. Diperiksa 21 Oktober 2026.



