Self-Hosting ChatGPT: Локальный Офлайн-бот в Docker 2024
Разверните Ja Н в Docker — полностью офлайн‑бот‑альтернатива ChatGPT. Пошаговый гайд по установке для homelab и конфиденциальной работы.
Установка Docker
Установите Docker для управления зависимостями и изоляции среды. Инструкции даны для Ubuntu/Debian (стандарт для self-hosting).
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo usermod -aG docker $USER
newgrp dockerУстановка Ollama
Ollama служит 'движком' для нейросети, скачивает веса моделей и запускает их как локальный HTTP-сервер.
curl -fsSL https://ollama.com/install.sh | sh
curl http://localhost:11434Загрузка модели
Скачайте модель. Рекомендуется Llama 3 (8B) для баланса качества и скорости. Для слабых систем используйте phi3 или gemma2.
ollama pull llama3
ollama listЗапуск веб-интерфейса
Запустите Open WebUI через Docker. Интерфейс будет доступен на порту 3000.
docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:mainНачальная настройка и использование
Откройте браузер по адресу http://localhost:3000, создайте аккаунт (локальный) и выберите модель llama3:latest в выпадающем списке.
http://localhost:3000Использование API (опционально)
Для разработчиков: Ollama эмулирует API OpenAI. Пример запроса на Python.
import requests
import json
url = "http://localhost:11434/api/chat"
data = {
"model": "llama3",
"messages": [
{"role": "user", "content": "Расскажи анекдот про кота"}
],
"stream": False
}
response = requests.post(url, json=data)
print(response.json()['message']['content'])Управление и обновление
Команды для остановки сервисов и обновления веб-интерфейса.
# Остановка сервисов
docker stop open-webui
sudo systemctl stop ollama
# Обновление WebUI
docker stop open-webui && docker rm open-webui
# Затем повторите команду из шага 4Вот подробный технический гайд по установке и развертыванию локальной альтернативы ChatGPT (J.A.) с использованием популярных open-source решений.
Как self-host J.A. — локальный, офлайн-альтернатива ChatGPT
Этот гайд описывает процесс развертывания локальной нейросетевой среды, полностью работающей на вашем оборудовании. Мы будем использовать технологический стек, позволяющий запустить大型语言模型 (LLM) в режиме сервера и взаимодействовать с ними через веб-интерфейс, аналогичный ChatGPT.
Архитектура решения
Для достижения цели мы используем следующий стек:
- LLM Runtime: Ollama — менеджер моделей и сервер для их запуска. Поддерживает формат GGUF и работает через API, совместимое с OpenAI.
- Веб-интерфейс: Open WebUI — богатый интерфейс, поддерживающий чаты, промты, настройки параметров генерации и управление моделями.
- Операционная система: Linux (Ubuntu/Debian) или macOS (инструкции для Linux, так как это стандарт self-hosting).
Системные требования
Перед началом убедитесь, что ваше оборудование соответствует минимальным требованиям:
- Процессор: 4+ ядра (рекомендуется x86-64 или ARM64).
- Оперативная память (RAM): Минимум 8 ГБ (для работы моделей до 7B параметров). Для моделей 13B+ рекомендуется 16+ ГБ.
- Видеокарта (GPU): Необязательно, но настоятельно рекомендуется.
- NVIDIA: От 4 ГБ VRAM (для ускорения).
- Apple Silicon (M1/M2/M3): Использует Unified Memory, модели работают быстро нативно.
- Дисковое пространство: От 5 ГБ свободного места (для базовой модели 7B + веб-интерфейс).
Подготовка окружения
Установите Docker. Это самый надежный способ изоляции и управления зависимостями.
Для Ubuntu/Debian:
# Обновление индексов
sudo apt-get update
# Установка необходимых пакетов
sudo apt-get install ca-certificates curl gnupg
# Добавление официального ключа Docker
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
# Добавление репозитория
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# Установка Docker
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# Добавление пользователя в группу docker (чтобы не писать sudo каждый раз)
sudo usermod -aG docker $USER
# ВАЖНО: Перелогиньтесь или выполните:
newgrp docker
Шаг 1: Установка Ollama
Ollama будет служить "движком" для нейросети. Она скачивает веса моделей и запускает их как локальный HTTP-сервер.
Выполните в терминале:
curl -fsSL https://ollama.com/install.sh | sh
После установки сервис Ollama запустится автоматически. Проверьте его доступность:
curl http://localhost:11434
# Должно вернуть "Ollama is running"
Шаг 2: Загрузка модели
Теперь скачаем модель. Для начала рекомендуется Llama 3 (8B) — отличный баланс между качеством и скоростью.
В терминале выполните:
ollama pull llama3
Если у вас слабое железо, используйте ollama pull phi3 (меньше ресурсов) или ollama pull gemma2.
Проверьте, что модель загружена:
ollama list
Шаг 3: Запуск веб-интерфейса (Open WebUI)
Теперь запустим интерфейс, через который вы будете общаться с нейросетью. Мы используем Docker, чтобы не "засорять" систему зависимостями Python.
Выполните команду:
docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main
Разбор команды:
-d: Запуск в фоновом режиме (демон).-p 3000:8080: Открыть порт 3000 на вашем компьютере (http://localhost:3000).-v open-webui:/app/backend/data: Сохранение данных (история чатов, настройки) в Docker-том.--restart always: Автозапуск при перезагрузке системы.
Шаг 4: Начальная настройка
- Откройте браузер и перейдите по адресу: http://localhost:3000.
- Вы увидите экран регистрации. Придумайте логин и пароль (они хранятся локально).
- После входа вы увидите интерфейс, похожий на ChatGPT.
- В верхнем выпадающем списке выберите модель, которую мы скачали (
llama3:latest).
Теперь вы можете начать диалог. Взаимодействие полностью локальное: промпты не покидают ваш компьютер.
Шаг 5: Работа с API (Для разработчиков)
Поскольку Ollama эмулирует API OpenAI, вы можете использовать локальную нейросеть в своих скриптах.
Пример запроса на Python:
import requests
import json
url = "http://localhost:11434/api/chat"
data = {
"model": "llama3",
"messages": [
{"role": "user", "content": "Расскажи анекдот про кота"}
],
"stream": False
}
response = requests.post(url, json=data)
print(response.json()['message']['content'])
Шаг 6: Управление и обновление
Как остановить сервисы
Если нужно освободить ресурсы:
# Остановить веб-интерфейс
docker stop open-webui
# Остановить движок нейросети (если запускался как сервис)
sudo systemctl stop ollama
Как обновить
- Веб-интерфейс:
Остановите и удалите старый контейнер, затем запустите новый:
docker stop open-webui && docker rm open-webui # Запустите команду из Шага 3 заново - Ollama: Обычно обновление происходит автоматически при перезапуске или через повторный запуск установочного скрипта.
Заключение
Вы развернули полноценную локальную систему ИИ. Это гарантирует:
- Конфиденциальность: Ваши данные никогда не покидают компьютер.
- Стоимость: Отсутствие ежемесячной подписки.
- Гибкость: Вы можете загружать любые другие модели из библиотеки Ollama (
ollama pull ...) и переключаться между ними в интерфейсе в реальном времени.