# Open WebUI

Красивый интерфейс, похожий на ChatGPT, для запуска крупных языковых моделей на GPU CLORE.AI.

{% hint style="success" %}
Все примеры можно запускать на GPU-серверах, арендуемых через [CLORE.AI Marketplace](https://clore.ai/marketplace).
{% endhint %}

## Почему Open WebUI?

* **Интерфейс в стиле ChatGPT** - Знакомый, отшлифованный интерфейс
* **Много моделей** - Легко переключаться между моделями
* **Встроенный RAG** - Загружайте документы для контекста
* **Управление пользователями** - Поддержка нескольких пользователей
* **История** - Сохранение переписок
* **Интеграция с Ollama** - Работает из коробки

## Быстрое развертывание на CLORE.AI

**Docker-образ:**

```
ghcr.io/open-webui/open-webui:cuda
```

**Порты:**

```
22/tcp
8080/http
```

**Команда:**

```bash
# Запустить Ollama в фоновом режиме
ollama serve &
sleep 5
ollama pull llama3.2

# Запустить Open WebUI (подключается к Ollama автоматически)
# Примечание: Docker-образ обрабатывает это
```

## Доступ к вашему сервису

После развертывания найдите ваш `http_pub` URL в **Моих заказах**:

1. Перейдите на **Моих заказах** страницу
2. Нажмите на ваш заказ
3. Найдите `http_pub` URL (например, `abc123.clorecloud.net`)

Используйте `https://YOUR_HTTP_PUB_URL` вместо `localhost` в примерах ниже.

### Проверьте, что всё работает

```bash
# Проверить состояние
curl https://your-http-pub.clorecloud.net/health

# Получить версию
curl https://your-http-pub.clorecloud.net/api/version
```

Ответ:

```json
{"version": "0.7.2"}
```

{% hint style="warning" %}
Если вы получаете HTTP 502, подождите 1–2 минуты — сервис ещё запускается.
{% endhint %}

## Установка

### С Ollama (рекомендуется)

```bash
# Сначала запустите Ollama
docker run -d --gpus all -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama

# Загрузить модель
docker exec -it ollama ollama pull llama3.2

# Запустить Open WebUI
docker run -d -p 8080: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
```

### Всё в одном (включённый Ollama)

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

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

1. Откройте `http://your-server:8080`
2. Создайте аккаунт администратора (первый пользователь становится администратором)
3. Перейдите в Настройки → Модели → Загрузить модель
4. Начните общаться!

## Функции

### Интерфейс чата

* Отображение Markdown
* Подсветка кода
* Генерация изображений (с совместимыми моделями)
* Голосовой ввод/вывод
* Вложения файлов

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

* Загружать модели прямо из интерфейса
* Создавать пользовательские модели
* Установить модель по умолчанию
* Настройки для конкретных моделей

### RAG (чат по документам)

1. Нажмите "+" в чате
2. Загрузите PDF, TXT или другие документы
3. Задавайте вопросы о содержимом

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

* Несколько пользователей
* Доступ на основе ролей
* Управление API-ключами
* Отслеживание использования

## Конфигурация

### Переменные окружения

```bash
docker run -d \
  -e OLLAMA_BASE_URL=http://ollama:11434 \
  -e WEBUI_AUTH=True \
  -e WEBUI_NAME="My AI Chat" \
  -e DEFAULT_MODELS="llama3.2" \
  ghcr.io/open-webui/open-webui:main
```

### Ключевые настройки

| Переменная              | Описание                | По умолчанию             |
| ----------------------- | ----------------------- | ------------------------ |
| `OLLAMA_BASE_URL`       | URL API Ollama          | `http://localhost:11434` |
| `WEBUI_AUTH`            | Включить аутентификацию | `True`                   |
| `WEBUI_NAME`            | Название инстанса       | `Открыть WebUI`          |
| `DEFAULT_MODELS`        | Модель по умолчанию     | -                        |
| `ENABLE_RAG_WEB_SEARCH` | Веб-поиск в RAG         | `False`                  |

### Подключение к удалённому Ollama

```bash
docker run -d -p 8080:8080 \
  -e OLLAMA_BASE_URL=http://remote-server:11434 \
  ghcr.io/open-webui/open-webui:main
```

## Docker Compose

```yaml
version: '3.8'

services:
  ollama:
    image: ollama/ollama
    container_name: ollama
    volumes:
      - ollama:/root/.ollama
    ports:
      - "11434:11434"
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: all
              capabilities: [gpu]

  open-webui:
    image: ghcr.io/open-webui/open-webui:main
    container_name: open-webui
    volumes:
      - open-webui:/app/backend/data
    ports:
      - "8080:8080"
    environment:
      - OLLAMA_BASE_URL=http://ollama:11434
    depends_on:
      - ollama

volumes:
  ollama:
  open-webui:
```

```bash
docker-compose up -d
```

## Справочник API

Open WebUI предоставляет несколько API-эндпоинтов:

| Эндпоинт           | Метод | Описание                             |
| ------------------ | ----- | ------------------------------------ |
| `/health`          | GET   | Проверка состояния                   |
| `/api/version`     | GET   | Получить версию Open WebUI           |
| `/api/config`      | GET   | Получить конфигурацию                |
| `/ollama/api/tags` | GET   | Список моделей Ollama (через прокси) |
| `/ollama/api/chat` | POST  | Чат с Ollama (через прокси)          |

### Проверить состояние

```bash
curl https://your-http-pub.clorecloud.net/health
```

Ответ: `true`

### Получить версию

```bash
curl https://your-http-pub.clorecloud.net/api/version
```

Ответ:

```json
{"version": "0.7.2"}
```

### Список моделей (через прокси Ollama)

```bash
curl https://your-http-pub.clorecloud.net/ollama/api/tags
```

{% hint style="info" %}
Большинство операций с API требуют аутентификации. Используйте веб-интерфейс, чтобы создать аккаунт и управлять API-ключами.
{% endhint %}

## Советы

### Более быстрые ответы

1. Используйте квантизированные модели (Q4\_K\_M)
2. Включите стриминг в настройках
3. При необходимости уменьшите длину контекста

### Лучшее качество

1. Используйте более крупные модели (13B+)
2. Используйте квантизацию Q8
3. Отрегулируйте температуру в настройках модели

### Экономия ресурсов

1. Установите `OLLAMA_KEEP_ALIVE=5m`
2. Выгружайте неиспользуемые модели
3. Используйте меньшие модели для тестирования

## Требования к GPU

То же, что и [Ollama](https://docs.clore.ai/guides/guides_v2-ru/ollama#gpu-requirements).

Сам Open WebUI использует минимальные ресурсы (\~500 МБ ОЗУ).

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

### Не удаётся подключиться к Ollama

```bash
# Проверьте, что Ollama запущен
curl http://localhost:11434/api/tags

# Если используете Docker, используйте сетевую опцию host или правильный URL
docker run --network=host ghcr.io/open-webui/open-webui:main
```

### Модели не отображаются

1. Проверьте подключение к Ollama в настройках
2. Обновите список моделей
3. Скачайте модели через CLI: `ollama pull modelname`

### Медленная работа

1. Проверьте, используется ли GPU: `nvidia-smi`
2. Попробуйте меньшие/квантизированные модели
3. Уменьшите число одновременных пользователей

## Оценка стоимости

| Настройка           | GPU      | Ежечасно |
| ------------------- | -------- | -------- |
| Базовая (7B)        | RTX 3060 | \~$0.03  |
| Стандартная (13B)   | RTX 3090 | \~$0.06  |
| Продвинутая (34B)   | RTX 4090 | \~$0.10  |
| Корпоративная (70B) | A100     | \~$0.17  |

## Дальнейшие шаги

* [Ollama](https://docs.clore.ai/guides/guides_v2-ru/yazykovye-modeli/ollama) - Использование CLI
* [LocalAI](https://docs.clore.ai/guides/guides_v2-ru/yazykovye-modeli/localai-openai-compatible) - Больше бэкендов
* [RAG + LangChain](https://docs.clore.ai/guides/guides_v2-ru/obuchenie/finetune-llm) - Продвинутый RAG
