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)。请它添加简短的文档字符串，同时保持返回文本不变。将流式显示的行内 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 前所需的终端重启。
