AI-translated from English; not yet reviewed by a fluent editor.

# 在同一台 Mac 上設定 Ollama、Open WebUI 和 Continue

> 在 Ollama 下載一個本機模型，連接可持久儲存的 Open WebUI 聊天和 VS Code 中的 Continue，再驗證瀏覽器回覆並檢查自有檔案的修改建議。

By BIG CHANGE Editorial

Published: 2026-10-21T07:20:39.085Z
Updated: 2026-10-21T07:20:39.085Z
Canonical: https://bigchange.ai/blog/ollama-open-webui-continue-local-stack-guide

![Conceptual charcoal illustration of one open laptop with two empty work areas on its screen, one light and one dark.](https://bigchange.ai/api/media/file/mac-local-browser-editor-hero-v2.png)
AI-generated conceptual illustration by BIG CHANGE.

本指南適用於有權安裝應用程式，並可使用自有非敏感測試檔案的 Mac 使用者。你將把一個模型下載至 Ollama，將可持久儲存的 Open WebUI 瀏覽器聊天和 VS Code 的 Continue 擴充功能連接到同一個執行服務，再檢查實際提出的修改，決定是否保留。下列命令與檢查依據維護者的現行文件；BIG CHANGE 未執行這套組合，也未測量其速度、成本或網路流量。

## 主要變化

- **改變了什麼：** 已下載的 Ollama 模型可以透過本機 API，同時支援瀏覽器聊天和 VS Code 編輯助理。每個用戶端仍須各自檢查連線。
- **為何重要：** 一次模型安裝即可在同一台 Mac 上支援對話及經過審閱的程式碼修改，檔案擁有者仍掌握最終編輯決定。
- **應注意什麼：** 選單中的模型名稱無法證明是哪個伺服器回答。請檢查供應方連線與實際回覆，尤其是另有供應方或雲端功能設定時。

## 1. 檢查 Mac 並選擇模型

你需要 [Ollama 所需的 macOS 14 或更新版本](https://docs.ollama.com/macos)、 [Mac 版 Docker Desktop](https://docs.docker.com/desktop/setup/install/mac-install/)、配備 [Continue 擴充功能](https://docs.continue.dev/ide-extensions/install)的 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](https://www.python.org/downloads/macos/) 安裝（若 `python3` 無法使用）。在 Mac 上，VS Code 不會自動將 `code` 加入 shell 路徑。請遵循其 [Mac 安裝說明](https://code.visualstudio.com/docs/setup/mac)：按 **Cmd+Shift+P**開啟 Command Palette，執行 **Shell Command: Install 'code' command in PATH**，再重新啟動 Terminal。確認所需工具皆可使用：

```bash
sw_vers -productVersion
ollama --version
docker version
code --version
python3 --version
```

記錄已安裝的版本。如果任一應用程式未執行，或 Mac 沒有足夠空間儲存模型及 Docker 資料，請先停止。 [qwen2.5-coder:7b 模型頁面](https://ollama.com/library/qwen2.5-coder:7b) 目前列出 4.7 GB 下載大小及 Apache 2.0 授權。下載大小不等於執行所需的全部記憶體。這只是本指南的具體範例，不代表適合每台 Mac。必要時選擇文件明確說明的較小本機模型標籤，再將以下每個命令、瀏覽器選項及 YAML 欄位中的 `qwen2.5-coder:7b` 替換為該確切標籤。同時檢查替代模型的授權。

下載模型，並確認 Ollama 列出確切標籤：

```bash
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](https://docs.ollama.com/api/chat) 要求簡短回覆。遇到 HTTP 錯誤時命令會失敗，並檢查傳回的模型及非空白助理內容；回覆的具體措辭並不重要。 [Ollama 執行選項](https://github.com/ollama/ollama/blob/main/docs/openapi.yaml) `num_predict` 將此次檢查限制為最多產生 64 個 token。即使句子遭截斷，也能證明收到了內容；空白回覆則表示檢查失敗，需進一步排查。

```bash
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 伺服器記錄](https://docs.ollama.com/macos) ，路徑為 `~/.ollama/logs/server.log`。已下載的標籤與成功的本機回覆，構成三項檢查中的第一項。

## 2. 啟動 Open WebUI 並持久儲存本機資料

這份 [Open WebUI 快速入門指南](https://docs.openwebui.com/getting-started/quick-start/) 將帳戶、設定及聊天儲存在 `/app/backend/data` ，並要求使用固定的 `WEBUI_SECRET_KEY`。本指南使用穩定的 [v0.12.3 版本](https://github.com/open-webui/open-webui/releases/tag/v0.12.3) ，而非持續更新的 `main` 標籤。Docker 會選擇適合 Mac 架構的映像檔；下載後請記錄映像檔識別資訊。

先檢查此處使用的名稱。如果任一名稱已存在，請檢查該容器或磁碟區，確認是否屬於先前的設定。不要只是為了讓命令執行，就替換現有容器或刪除其磁碟區。

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

首次設定時，第二個命令表示磁碟區不存在是正常情況。以下步驟將產生的金鑰保存在 Mac 帳戶下的私有檔案中。請安全保留此檔案，以便重新建立容器。不要將內容提交至程式碼庫、貼出或分享。若此實例已有金鑰，請繼續使用原金鑰。

```bash
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 連線之間分配請求](https://docs.openwebui.com/getting-started/quick-start/connect-a-provider/starting-with-ollama/)，因此僅有相同的下拉選單名稱並不足夠。在新聊天中選擇 `qwen2.5-coder:7b` ，然後詢問：「有什麼方法可以確認是本機模型回答？」確認出現非空白回覆，再重新開啟已儲存的聊天。記錄選取的模型及連線 URL。這是瀏覽器檢查；不要求特定答案。

如果頁面無法載入，請檢查 `docker logs bc-open-webui` 及連接埠綁定。如果模型清單是空的，請確認 Ollama 仍能回應 `/api/tags`、檢查已儲存的 Open WebUI 連線，並測試此 Docker Desktop 版本是否能存取 Mac 主機服務。 `host.docker.internal` 是 [Docker Desktop 的主機位址](https://docs.docker.com/desktop/features/networking/)，而 `localhost` 在容器內部指的是容器本身。Ollama [預設綁定至 127.0.0.1](https://docs.ollama.com/faq)；主機到容器的轉送方式可能因設定而異。不要將失敗的連線視為成功設定，也不要把 Ollama 暴露在 `0.0.0.0` 上作為例行修復。繼續之前，請依安全政策解決本機網路路徑問題。排查時保留磁碟區及現有聊天。

## 3. 將 Continue 指向相同的 Ollama 標籤

Continue 在 Mac 的 VS Code 中執行，因此其 Ollama API 位址為 `http://localhost:11434`。開啟 Continue，使用聊天輸入區右上角的設定下拉選單，再按 **Local Config**旁的齒輪。這會開啟 `~/.continue/config.yaml`； [Continue 現行參考文件](https://docs.continue.dev/reference) 使用 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 或自動完成功能。

建立自己擁有的測試目錄及檔案，內容使用可獨立檢查的簡單行為。命令會保留現有檔案或原始副本；任一名稱若已被使用，請先檢查或另選測試目錄：

```bash
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
```

原始檢查應在斷言通過後輸出 `Hello, Ada` 。開啟 `greeting.py` 至 VS Code，僅選取函式，再按 **Cmd+I** 使用 [Continue Edit](https://docs.continue.dev/ide-extensions/edit/quick-start)。請它加入簡短 docstring，同時維持傳回文字不變。將逐步顯示的行內 diff 與 `greeting.original.py`比較；對選取程式碼使用 Edit 時，可能將整個檔案納入上下文，因此僅能使用自己擁有的非敏感檔案。模型可能修改超出要求的內容。請檢查每個變更行，使用 **Cmd+Opt+Y**接受適當建議，或使用 **Cmd+Opt+N**拒絕。Continue 也提供全部接受及全部拒絕的控制項，但較小的 diff 更便於逐項審查。

接受後儲存檔案，然後執行：

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

確認 diff 僅包含預期變更，而且原始斷言仍通過。若拒絕建議，請確認檔案與原件相同，並記錄拒絕；不要宣稱已完成修改。檔案、diff 和獨立 Python 檢查，比模型對自己工作的描述更可靠。

## 4. 清楚保留各項邊界

Ollama、Open WebUI 和 Continue 各有獨立設定。如果只要關閉 Ollama 雲端功能，請在執行 Ollama 伺服器之帳戶的 `~/.ollama/server.json`中加入以下欄位，同時保留現有 JSON 欄位。新檔案的完整內容如下：

```json
{
  "disable_ollama_cloud": true
}
```

重新啟動 Ollama 應用程式，再檢查其伺服器記錄：

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

這份 [Ollama FAQ](https://docs.ollama.com/faq) 說明了此記錄行。若找不到，請先重新檢查由哪個 Mac 帳戶執行 Ollama、JSON 內容及是否重新啟動，再宣稱雲端功能已停用。此設定不檢查 Open WebUI 的其他供應方、選用線上功能或 Continue 的流量。Continue 的 [離線指南](https://docs.continue.dev/guides/running-continue-without-internet) 指示關閉 **Allow Anonymous Telemetry**、使用本機模型並重新啟動 VS Code。使用敏感資料前，請檢查每個應用程式的連線。單靠回送 URL 並不構成網路稽核。

請按實際用途檢查 [Docker Desktop 授權](https://docs.docker.com/subscription-billing/desktop-license/) 。個人、教育、非商業開源用途，以及符合以下條件的小型企業可免費使用： **員工少於 250 人，而且年營收低於 1,000 萬美元**。大型組織和政府的專業用途需要付費訂閱。模型的 Apache 2.0 授權另行適用。磁碟空間、記憶體、下載頻寬及電力仍須考量；本指南未測量成本或效能結果。

若只需要較單純的 Ollama 終端機與 API 流程，請參閱 [執行本機 Ollama 模型並檢查其聊天 API](https://bigchange.ai/blog/run-local-ollama-model-chat-api-guide)。 [使用本機 Ollama 模型完成一次經過檢查的 Claude Code 修改](https://bigchange.ai/blog/claude-code-local-ollama-checked-change-guide) 介紹另一種程式設計用戶端。

## 來源與延伸閱讀

- [Ollama 的 macOS 需求](https://docs.ollama.com/macos)、 [聊天 API](https://docs.ollama.com/api/chat)、 [模型清單 API](https://docs.ollama.com/api/tags) 及 [FAQ](https://docs.ollama.com/faq)：安裝限制、可觀察的 API 欄位、預設監聽位址及 Ollama 專用雲端設定。查閱日期：2026 年 10 月 21 日。
- [Ollama API 規格](https://github.com/ollama/ollama/blob/main/docs/openapi.yaml)：執行時欄位 `options.num_predict` 限制這次簡短的本機聊天檢查。受限回覆可能在句中結束。查閱日期：2026 年 10 月 21 日。
- [Qwen2.5-Coder 7B 模型卡](https://ollama.com/library/qwen2.5-coder:7b)：範例標籤、列出的下載大小及模型授權。下載前請檢查標籤目前的資訊和 Mac 可用資源。查閱日期：2026 年 10 月 21 日。
- [Open WebUI 快速入門](https://docs.openwebui.com/getting-started/quick-start/)、 [Ollama 連線指南](https://docs.openwebui.com/getting-started/quick-start/connect-a-provider/starting-with-ollama/) 及 [v0.12.3 版本](https://github.com/open-webui/open-webui/releases/tag/v0.12.3)：容器儲存與金鑰、供應方設定及穩定版本識別資訊。這些文件描述設定路徑，不代表這台特定 Mac 已成功連線。查閱日期：2026 年 10 月 21 日。
- [Continue 設定](https://docs.continue.dev/customize/deep-dives/configuration)、 [YAML 參考](https://docs.continue.dev/reference)、 [Edit 快速入門](https://docs.continue.dev/ide-extensions/edit/quick-start) 及 [離線指南](https://docs.continue.dev/guides/running-continue-without-internet)：目前檔案路徑及鍵、編輯控制項和遙測設定。查閱日期：2026 年 10 月 21 日。
- [Docker Desktop 網路](https://docs.docker.com/desktop/features/networking/)、 [Mac 安裝](https://docs.docker.com/desktop/setup/install/mac-install/) 及 [授權](https://docs.docker.com/subscription-billing/desktop-license/)：主機位址、安裝及商業使用限制。請核實適用於組織的現行條款。查閱日期：2026 年 10 月 21 日。
- [VS Code 的 Mac 設定](https://code.visualstudio.com/docs/setup/mac) 及 [Python 3 下載](https://www.python.org/downloads/macos/)：選用的 shell 命令安裝步驟，以及檢查使用的直譯器。查閱日期：2026 年 10 月 21 日。

## Sources

- [Ollama macOS](https://docs.ollama.com/macos) — 說明 macOS 14+ 支援、Apple M CPU/GPU 與 Intel 僅 CPU 的區別、應用程式安裝、命令列連結和本機伺服器記錄路徑。不代表讀者的 Mac 有足夠記憶體。
- [Ollama FAQ](https://docs.ollama.com/faq) — 說明預設 127.0.0.1:11434 綁定、僅針對 Ollama 的雲端關閉設定、必要重新啟動，以及雲端已關閉的記錄核實。不稽核其他應用程式。
- [Ollama 聊天 API](https://docs.ollama.com/api/chat) — 說明 POST /api/chat、請求的 model/messages，以及傳回的 model 和助理內容欄位。文章要求讀者核實實際回覆；BIG CHANGE 未發起該請求。
- [Ollama 模型清單 API](https://docs.ollama.com/api/tags) — 說明 GET /api/tags 和 models[].name，用於連接其他用戶端之前，在本機核實下載的確切標籤。
- [Qwen2.5-Coder 7B 模型頁面](https://ollama.com/library/qwen2.5-coder:7b) — 列出 qwen2.5-coder:7b、4.7 GB 下載及 Apache 2.0 授權。下載大小不是完整執行記憶體需求，也不是效能結果。
- [Open WebUI 快速入門](https://docs.openwebui.com/getting-started/quick-start/) — 說明 Docker run 流程、持久儲存的 /app/backend/data 磁碟區、固定 WEBUI_SECRET_KEY 和首次瀏覽器帳戶。文章固定版本，並要求讀者檢查實際連接埠。
- [Open WebUI Ollama 連線](https://docs.openwebui.com/getting-started/quick-start/connect-a-provider/starting-with-ollama/) — 說明 Settings > Admin > Connections、Docker 主機的 Ollama URL，以及可能的多連線負載平衡。選中的模型標籤本身不能證明路由。
- [Open WebUI v0.12.3 版本](https://github.com/open-webui/open-webui/releases/tag/v0.12.3) — 本流程使用之版本標籤的官方穩定版本頁面。Docker 選擇平台映像檔；讀者記錄實際安裝的 digest。
- [Continue YAML 參考](https://docs.continue.dev/reference) — 定義必要頂層欄位 name/version/schema、模型欄位 name/provider/model，以及選用 apiBase 和 chat/edit 角色。流程避免使用已棄用 JSON 鍵。
- [Continue Local Config](https://docs.continue.dev/customize/deep-dives/configuration) — 說明 Mac 路徑 ~/.continue/config.yaml、Local Config 齒輪，以及儲存後自動重新整理。應保留現有設定。
- [Continue Edit 快速入門](https://docs.continue.dev/ide-extensions/edit/quick-start) — 說明對選取程式碼使用 Cmd+I Edit、串流行內 diff，以及 Mac 接受與拒絕快捷鍵。讀者必須審閱完整建議變更，並重新執行原始檢查。
- [Continue 離線指南](https://docs.continue.dev/guides/running-continue-without-internet) — 說明 Allow Anonymous Telemetry 控制項、本機模型選擇及 VS Code 重新啟動。不代表應用程式的所有流量都留在本機。
- [Docker Desktop 網路](https://docs.docker.com/desktop/features/networking/) — 說明 Docker Desktop 中的 host.docker.internal 及主機回送連接埠發布。能否存取此 Mac 上綁定回送介面的 Ollama 服務，仍須透過瀏覽器回覆檢查。
- [Docker Desktop Mac 安裝](https://docs.docker.com/desktop/setup/install/mac-install/) — 說明支援 Mac 的 Docker Desktop 安裝及基本資源；並不代表模型和應用程式的合併容量足夠。
- [Docker Desktop 授權](https://docs.docker.com/subscription-billing/desktop-license/) — 說明免費個人、教育及非商業開源用途，以及小型企業必須少於 250 名員工而且年營收低於 1,000 萬美元的條件；大型組織的專業用途與政府用途須付費。
- [Python 3 macOS 下載](https://www.python.org/downloads/macos/) — 讀者執行 JSON 和測試檔案檢查所需的 Python 3 官方安裝來源。BIG CHANGE 未為本文安裝或執行 Python。
- [Ollama API 規格](https://github.com/ollama/ollama/blob/main/docs/openapi.yaml) — 將 options.num_predict 定義為產生 token 的上限，用於將唯一一次本機聊天探測限制為 64；非空白回覆可能在句中結束。
- [VS Code Mac 設定](https://code.visualstudio.com/docs/setup/mac) — 說明在 Mac 上透過 Command Palette 手動安裝 code shell 命令，以及執行 code --version 前所需的終端機重新啟動。
