Это руководство для владельца Mac, у которого есть разрешение устанавливать приложения и использовать собственный пробный файл без конфиденциальных данных. Вы скачаете одну модель в Ollama, подключите сохраняемый браузерный чат Open WebUI и расширение Continue в VS Code к одному сервису выполнения, затем рассмотрите реальное предложение правки, прежде чем принять его. Команды и проверки основаны на актуальной документации разработчиков. BIG CHANGE не запускала эту конфигурацию и не измеряла скорость, расходы или сетевой трафик.

Главное изменение

  • Что меняется: Скачанная модель Ollama может через локальный API обслуживать и чат в браузере, и помощника редактирования в VS Code. Подключение каждого клиента нужно проверять отдельно.
  • Почему это важно: Одна установка модели может поддерживать разговор и проверенное изменение кода на одном Mac, при этом окончательное решение остаётся у владельца файла.
  • На что обратить внимание: Название модели в меню не доказывает, какой сервер ответил. Проверяйте подключение провайдера и реальные ответы, особенно если настроены другие провайдеры или облачные функции.

1. Проверьте Mac и выберите модель

Вам нужны macOS 14 или новее для Ollama, Docker Desktop для Mac, VS Code с расширением Continueи Python 3 для небольших проверок JSON и файлов ниже. Ollama поддерживает выполнение на CPU и GPU Apple M; для Intel Mac документация указывает только CPU. Установите Ollama со страницы для Mac, переместите приложение в Applications, запустите и разрешите создать ссылку для командной строки, если появится запрос. Установите и запустите Docker Desktop, затем Continue через представление Extensions в VS Code. Установите Python 3 с Python.org , если python3 недоступен. На Mac VS Code не добавляет code в путь поиска оболочки автоматически. Следуйте инструкции настройки на Mac: откройте Command Palette сочетанием Cmd+Shift+P, выполните Shell Command: Install 'code' command in PATHи перезапустите Terminal. Убедитесь, что нужные инструменты доступны:

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

Запишите установленные версии. Остановитесь, если какое-либо приложение не работает или на Mac нет места для модели и данных Docker. На странице модели qwen2.5-coder:7b сейчас указаны загрузка 4,7 GB и лицензия Apache 2.0. Размер загрузки не равен полной потребности в оперативной памяти. Это конкретный пример, а не рекомендация для любого Mac. При необходимости выберите документированный меньший локальный тег и замените qwen2.5-coder:7b этим точным тегом во всех командах, выборе в браузере и полях YAML ниже. Проверьте также лицензию другой модели.

Скачайте модель и убедитесь, что 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 работает в VS Code на Mac, поэтому адрес API Ollama — 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

Исходная проверка после успешного утверждения должна вывести Hello, Ada . Откройте greeting.py в VS Code, выделите только функцию и нажмите Cmd+I для Continue Edit. Попросите добавить короткую строку документации, не меняя возвращаемый текст. Сравните постепенно появляющийся встроенный 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 содержит только нужное изменение, а исходное утверждение всё ещё проходит. Если вы отклонили предложение, проверьте совпадение с оригиналом и запишите отказ; не заявляйте о выполненной правке. Файл, diff и независимая проверка Python показывают результат надёжнее, чем описание самой модели.

4. Ясно обозначьте границы

У Ollama, Open WebUI и Continue отдельные настройки. Чтобы отключить только облако Ollama, добавьте следующее поле в ~/.ollama/server.jsonаккаунта, запускающего сервер Ollama, сохранив имеющиеся поля JSON. Для нового файла полный текст такой:

JSON
{
  "disable_ollama_cloud": true
}

Перезапустите приложение Ollama и проверьте журнал сервера:

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

Эта FAQ Ollama описывает указанную строку журнала. Если её нет, перепроверьте запускающий Mac-аккаунт, JSON и перезапуск, прежде чем утверждать, что облачные функции выключены. Эта настройка не проверяет других провайдеров Open WebUI, дополнительные онлайн-функции и трафик Continue. Руководство по автономной работе Continue рекомендует выключить Allow Anonymous Telemetry, использовать локальные модели и перезапустить VS Code. Проверьте подключения каждого приложения до работы с чувствительными данными. Один loopback-URL не является сетевым аудитом.

Проверьте лицензию Docker Desktop для реального применения. Программа бесплатна для личного, образовательного и некоммерческого open-source использования, а также для малых предприятий с менее чем 250 сотрудниками И годовым доходом менее 10 миллионов долларов. Профессиональное применение в более крупных организациях и государственных учреждениях требует платной подписки. Лицензия модели Apache 2.0 действует отдельно. Диск, память, пропускная способность загрузки и электричество всё равно нужны; расходы и производительность для этого руководства не измерялись.

Более узкое руководство только по терминалу и API Ollama — Запустите локальную модель Ollama и проверьте её API чата. Выполните одну проверенную правку Claude Code с локальной моделью Ollama описывает другой клиент программирования.

Источники и дополнительное чтение