Перейти к основному содержимому
Вернуться в категорию

Установка Open WebUI: Локальный ИИ с интерфейсом как у ChatGPT

Установка Open WebUI через Docker, интеграция с Ollama, управление пользователями, RAG (запросы к документам), управление моделями и поддержка нескольких пользователей.

Время чтения: 14 мин. ИИ и ML на своём сервере
open-webuichatgptискусственный интеллектollamaself-hostingdockerrag

Содержание

Установка Open WebUI: Локальный ИИ с интерфейсом как у ChatGPT

Open WebUI (ранее Ollama WebUI) — это открытый проект, предоставляющий современный веб-интерфейс в стиле ChatGPT для ваших локальных LLM-моделей. Интегрируясь с Ollama, он позволяет общаться с ИИ-моделями через браузер, загружать документы и выполнять запросы к ним с помощью RAG (Retrieval-Augmented Generation).

Что такое Open WebUI?

Open WebUI — это комплексный веб-интерфейс для self-hosted ИИ. Основные возможности:

  • Интерфейс как у ChatGPT: Современный, удобный чат
  • Интеграция с Ollama: Прямое подключение к локальным LLM-моделям
  • RAG Pipeline: Загрузка документов и запросы на основе документов
  • Многопользовательский режим: Управление пользователями и ролевой доступ
  • Управление моделями: Загрузка, удаление и настройка моделей через интерфейс
  • Пользовательские промпты: Шаблоны системных промптов и обмен ими
  • История чатов: Запись и поиск всех разговоров
  • Поддержка Markdown: Блоки кода, таблицы и форматированный текст

Системные требования

КомпонентМинимумРекомендуется
RAM4 ГБ (для UI)8 ГБ+
Диск5 ГБ10 ГБ+
Docker20.10+Последняя версия
OllamaУстановлен и работаетНа том же сервере или в сети

Установка через Docker

Ollama на том же сервере

hljs bash
docker run -d \
  --name open-webui \
  -p 3000:8080 \
  --add-host=host.docker.internal:host-gateway \
  -e OLLAMA_BASE_URL=http://host.docker.internal:11434 \
  -v open-webui:/app/backend/data \
  --restart unless-stopped \
  ghcr.io/open-webui/open-webui:main

Ollama вместе (один контейнер)

hljs bash
docker run -d \
  --name open-webui \
  -p 3000:8080 \
  --gpus all \
  -v ollama:/root/.ollama \
  -v open-webui:/app/backend/data \
  --restart unless-stopped \
  ghcr.io/open-webui/open-webui:ollama

Docker Compose (рекомендуется)

hljs yaml
version: '3.8'
services:
  ollama:
    image: ollama/ollama
    container_name: ollama
    ports:
      - "11434:11434"
    volumes:
      - ollama_data:/root/.ollama
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: all
              capabilities: [gpu]
    restart: unless-stopped

  open-webui:
    image: ghcr.io/open-webui/open-webui:main
    container_name: open-webui
    ports:
      - "3000:8080"
    environment:
      - OLLAMA_BASE_URL=http://ollama:11434
      - WEBUI_SECRET_KEY=strong-secret-key-here
      - ENABLE_SIGNUP=true
      - DEFAULT_USER_ROLE=pending
    volumes:
      - open-webui_data:/app/backend/data
    depends_on:
      - ollama
    restart: unless-stopped

volumes:
  ollama_data:
  open-webui_data:

Запуск:

hljs bash
docker compose up -d

Первоначальная настройка

Откройте в браузере http://IP_СЕРВЕРА:3000.

Создание учётной записи администратора

Первый зарегистрированный пользователь автоматически становится администратором:

  1. Нажмите Sign Up
  2. Введите имя, email и пароль
  3. Первый пользователь получает роль администратора

Создайте первого пользователя сразу. Иначе кто-то другой может стать администратором. После регистрации установите ENABLE_SIGNUP=false для закрытия регистрации.

Управление моделями

Загрузка моделей через интерфейс

  1. Admin PanelSettingsModels
  2. Введите имя модели (например: llama3.1)
  3. Нажмите Pull
  4. Следите за прогрессом загрузки

Загрузка моделей через командную строку

hljs bash
docker exec -it ollama ollama pull llama3.1
docker exec -it ollama ollama pull mistral
docker exec -it ollama ollama pull codellama

RAG (Retrieval-Augmented Generation)

Open WebUI поддерживает загрузку документов и запросы на основе документов:

Загрузка документов

  1. В окне чата нажмите +
  2. Загрузите PDF, TXT, DOCX, MD файл
  3. Документ автоматически разбивается и создаются эмбеддинги
  4. Задавайте вопросы, ссылаясь на документ в чате

Настройка RAG

Admin PanelSettingsDocuments:

Chunk Size: 1000
Chunk Overlap: 200
Embedding Model: nomic-embed-text
Top K: 5

Установка модели эмбеддингов

hljs bash
docker exec -it ollama ollama pull nomic-embed-text

Управление пользователями

Роли

  • Admin: Полные права (настройки, пользователи, модели)
  • User: Чат и загрузка документов
  • Pending: Пользователь, ожидающий одобрения

Настройки пользователей

ENABLE_SIGNUP=true
DEFAULT_USER_ROLE=pending
ENABLE_LOGIN_FORM=true

Пользовательский системный промпт

Для каждой модели можно задать свой системный промпт:

  1. WorkspaceModels → Выберите модель
  2. В поле System Prompt введите:
Ты технический ассистент поддержки.
Специализируешься на управлении серверами, Docker, Linux и сетях.
Отвечай на русском языке.
Добавляй примеры кода.
Объясняй пошагово.

Nginx Reverse Proxy

hljs nginx
server {
    listen 443 ssl http2;
    server_name ai.example.com;

    ssl_certificate /etc/letsencrypt/live/ai.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/ai.example.com/privkey.pem;

    location / {
        proxy_pass http://localhost:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }

    client_max_body_size 100M;
}

Обновление

hljs bash
docker compose pull
docker compose up -d

Устранение неполадок

hljs bash
# Логи Open WebUI
docker logs open-webui

# Тест подключения к Ollama
docker exec open-webui curl -s http://ollama:11434/api/tags

# Статус контейнеров
docker ps | grep -E 'open-webui|ollama'

Установите свою альтернативу ChatGPT с Open WebUI на VPS-серверах REXE. Ваши данные полностью под вашим контролем.