# LibreChat Multi-Provider

## Обзор

[LibreChat](https://github.com/danny-avila/LibreChat) является улучшенным интерфейсом с открытым исходным кодом, похожим на ChatGPT, с более чем 22K звёздами на GitHub. Он достоверно переосмысляет опыт ChatGPT, добавляя функции, которых не хватает оригиналу — переключение между провайдерами в рамках одного разговора, ветвление/форк разговоров, богатая система плагинов, загрузка файлов с возможностью анализа изображений и полноценная песочница интерпретатора кода.

**Почему запускать LibreChat на Clore.ai?**

* **Истинная многопровайдерность в одном интерфейсе** — Переключайтесь между GPT-4, Claude 3.5, Gemini Pro, Mistral и локальными моделями Ollama в середине сессии.
* **Для приложения GPU не нужен** — LibreChat — это приложение на Node.js; вычисления для инференса требуются только если вы подключаете локальный бэкенд LLM.
* **Экономичное самостоятельное хостинг** — Тарифы Clore.ai начинаются с долей цента за минуту, что идеально подходит для запуска личного AI-хаба.
* **Постоянные разговоры** — MongoDB хранит всю историю чатов на сервере, в отличие от решений, сохраняющих данные только в браузере.
* **Дружественно для команд** — Поддержка нескольких пользователей с управлением индивидуальными API-ключами.

### Ключевые особенности

| Функция              | Описание                                                        |
| -------------------- | --------------------------------------------------------------- |
| Многопровайдерность  | OpenAI, Anthropic, Google, Azure, Mistral, Ollama, OpenRouter   |
| Ветвление разговоров | Форк и исследование альтернативных ответов                      |
| Плагины              | Bing search, Zapier, WolframAlpha, пользовательские инструменты |
| Загрузка файлов      | Изображения, PDF, документы с визуальным анализом               |
| Интерпретатор кода   | Выполняйте Python в изолированной песочнице                     |
| Артефакты            | Рендеринг HTML, React и Markdown-выводов                        |
| Пресеты              | Сохраняйте и делитесь пользовательскими конфигурациями моделей  |

***

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

### Спецификации сервера

| Компонент     | Минимум      | Рекомендуется                     | Примечания                                               |
| ------------- | ------------ | --------------------------------- | -------------------------------------------------------- |
| **GPU**       | Не требуется | RTX 3090 (если добавляете Ollama) | Только для локального инференса LLM                      |
| **VRAM**      | —            | 24 ГБ                             | Для локальных моделей через Ollama                       |
| **CPU**       | 2 vCPU       | 4 vCPU                            | Node.js + MongoDB                                        |
| **ОЗУ**       | 4 ГБ         | 8 ГБ                              | MongoDB выигрывает от большего объёма оперативной памяти |
| **Хранилище** | 20 ГБ        | 50+ ГБ                            | Загрузка файлов, кэш моделей если локально               |

### Справка по ценам Clore.ai

| Тип сервера                             | Примерная стоимость | Случай использования                        |
| --------------------------------------- | ------------------- | ------------------------------------------- |
| Ориентировано на CPU (4 vCPU, 8 ГБ RAM) | \~$0.05–0.10/час    | LibreChat + внешние API-провайдеры          |
| RTX 3090 (24 ГБ VRAM)                   | ≈ $0.20/ч           | LibreChat + локальный инференс через Ollama |
| RTX 4090 (24 ГБ VRAM)                   | ≈ $0.35/ч           | LibreChat + более быстрые Ollama/vLLM       |
| A100 80 GB                              | ≈ $1.10/ч           | LibreChat + большие модели 70B+             |

> 💡 **Совет по стоимости:** Если вы используете LibreChat только для маршрутизации API-вызовов к OpenAI/Anthropic/Google, вы платите только за вычисления сервера Clore.ai (дёшево), а не за оборудование для инференса. Заложите в бюджет примерно $0.05–0.15/ч для надёжного хоста LibreChat.

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

* Сервер Clore.ai с доступом по SSH
* Docker + Docker Compose (предустановлены на Clore.ai)
* Git (предустановлен на Clore.ai)
* По крайней мере один API-ключ LLM **или** локальный бэкенд Ollama/vLLM

***

## Быстрый старт

### Метод 1: Docker Compose (Официальный — Рекомендуется)

Официальное развертывание LibreChat использует Docker Compose с MongoDB и MeiliSearch для полной функциональности.

**Шаг 1: Подключитесь к вашему серверу Clore.ai**

```bash
ssh root@<ip-вашего-clore-сервера> -p <ssh-порт>
```

**Шаг 2: Клонируйте репозиторий**

```bash
git clone https://github.com/danny-avila/LibreChat.git
cd LibreChat
```

**Шаг 3: Настройте окружение**

```bash
cp .env.example .env
nano .env
```

Установите как минимум:

```bash
# В .env — критически важные настройки
MONGO_URI=mongodb://mongodb:27017/LibreChat
JWT_SECRET=your-random-64-char-secret-here
JWT_REFRESH_SECRET=another-random-64-char-secret-here
CREDS_KEY=your-random-32-char-key-here
CREDS_IV=your-random-16-char-iv-here

# API Keys (добавьте те, которыми пользуетесь)
OPENAI_API_KEY=sk-your-openai-key
ANTHROPIC_API_KEY=sk-ant-your-anthropic-key
GOOGLE_KEY=your-google-gemini-key
```

Быстрая генерация секретов:

```bash
# Сгенерировать случайные секреты
node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"
```

**Шаг 4: Запустите стек**

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

Это запустит:

* `LibreChat` — основное приложение на порту 3080
* `MongoDB` — хранение разговоров и пользователей
* `MeiliSearch` — быстрый поиск по разговорам

**Шаг 5: Проверьте и получите доступ**

```bash
docker compose ps
docker compose logs librechat --tail 30
```

Откройте в браузере:

```
http://<your-clore-server-ip>:3080
```

Зарегистрируйте новую учётную запись на странице входа.

***

### Метод 2: Предсобранный Docker-образ (Самый быстрый)

Если хотите пропустить сборку из исходников:

```bash
mkdir -p ~/librechat && cd ~/librechat

# Скачайте только файлы docker-compose
curl -o docker-compose.yml https://raw.githubusercontent.com/danny-avila/LibreChat/main/docker-compose.yml
curl -o .env https://raw.githubusercontent.com/danny-avila/LibreChat/main/.env.example

# Отредактируйте конфигурацию
nano .env

# Запуск
docker compose up -d
```

***

### Метод 3: Быстрый тест в одном контейнере

Для быстрой демонстрации без MongoDB (ограниченная функциональность):

```bash
docker run -d \
  --name librechat \
  --restart unless-stopped \
  -p 3080:3080 \
  -e OPENAI_API_KEY=sk-your-key \
  -e JWT_SECRET=your-jwt-secret-here \
  -e MONGO_URI=mongodb://host-gateway:27017/LibreChat \
  --add-host=host-gateway:host-gateway \
  ghcr.io/danny-avila/librechat-dev:latest
```

> ⚠️ Этот метод требует отдельного экземпляра MongoDB. Используйте Метод 1 для полного развертывания.

***

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

### Добавление AI-провайдеров

Редактировать `librechat.yaml` (создайте его в корне проекта) для расширенной конфигурации провайдеров:

```bash
cat > librechat.yaml << 'EOF'
version: 1.1.5
cache: true

endpoints:
  openAI:
    models:
      default: ["gpt-4o", "gpt-4o-mini", "gpt-4-turbo", "gpt-3.5-turbo"]
      fetch: true

  anthropic:
    models:
      default: ["claude-opus-4-5", "claude-sonnet-4-5", "claude-3-haiku-20240307"]
      fetch: false

  google:
    models:
      default: ["gemini-1.5-pro", "gemini-1.5-flash", "gemini-pro"]
      fetch: false

  ollama:
    # Указывает на Ollama, запущенную на том же сервере Clore.ai
    baseURL: http://host-gateway:11434/v1
    apiKey: ollama
    models:
      default: ["llama3.2", "mistral", "codellama"]
      fetch: true

  custom:
    - name: "OpenRouter"
      apiKey: "${OPENROUTER_API_KEY}"
      baseURL: "https://openrouter.ai/api/v1"
      models:
        default: ["meta-llama/llama-3.1-8b-instruct:free"]
        fetch: true
      titleConvo: true
      titleModel: "meta-llama/llama-3.1-8b-instruct:free"
EOF
```

Подмонтируйте этот файл в ваш `docker-compose.yml`:

```yaml
services:
  LibreChat:
    volumes:
      - ./librechat.yaml:/app/librechat.yaml
```

### Справочник переменных окружения

| Переменная           | Описание                             | Пример                              |
| -------------------- | ------------------------------------ | ----------------------------------- |
| `MONGO_URI`          | Строка подключения к MongoDB         | `mongodb://mongodb:27017/LibreChat` |
| `JWT_SECRET`         | Секрет для подписи JWT (64+ символа) | Случайная hex-строка                |
| `OPENAI_API_KEY`     | Ключ OpenAI                          | `sk-...`                            |
| `ANTHROPIC_API_KEY`  | Ключ Anthropic                       | `sk-ant-...`                        |
| `GOOGLE_KEY`         | Ключ Google Gemini                   | `AI...`                             |
| `ALLOW_REGISTRATION` | Разрешить публичную регистрацию      | `true` / `false`                    |
| `ALLOW_EMAIL_LOGIN`  | Разрешить вход по email/паролю       | `true`                              |
| `DEBUG_LOGGING`      | Подробные логи                       | `true`                              |
| `SEARCH`             | Включить MeiliSearch                 | `true`                              |
| `MEILI_MASTER_KEY`   | API-ключ MeiliSearch                 | Случайная строка                    |

### Ограничение регистрации

Для приватного использования отключите публичную регистрацию после создания вашей учётной записи:

```bash
# В .env
ALLOW_REGISTRATION=false
```

Затем перезапустите: `docker compose restart LibreChat`

### Включение интерпретатора кода

```bash
# В .env
CODE_INTERPRETER_ENABLED=true
```

Интерпретатор кода запускает Python в изолированном Docker-контейнере. Убедитесь, что Docker-сокет доступен.

### Конфигурация загрузки файлов

```bash
# В .env
# Максимальный размер файла в МБ
FILE_UPLOAD_SIZE_LIMIT=100

# Включить загрузку изображений для моделей с vision
VISION_ENABLED=true
```

***

## Ускорение с помощью GPU

LibreChat не **не** использует GPU напрямую — это слой маршрутизации. Ускорение на GPU применяется к любому локальному бэкенду инференса, который вы подключаете.

### Подключение к Ollama (на том же сервере)

Если запускаете Ollama на том же сервере Clore.ai (см. [Руководство по Ollama](/guides/guides_v2-ru/yazykovye-modeli/ollama.md)):

```bash
# Запустите Ollama с поддержкой GPU
docker run -d \
  --name ollama \
  --gpus all \
  --restart unless-stopped \
  -p 11434:11434 \
  -v ollama_models:/root/.ollama \
  ollama/ollama

# Загрузить модели
docker exec ollama ollama pull llama3.2
docker exec ollama ollama pull codellama:13b

# В librechat.yaml установите:
# baseURL: http://172.17.0.1:11434/v1
```

### Подключение к vLLM (высокая пропускная способность)

Для развертываний с высокой конкурентностью (см. [Руководство по vLLM](/guides/guides_v2-ru/yazykovye-modeli/vllm.md)):

```bash
# Запустите vLLM на инстансе Clore.ai с A100
docker run -d \
  --name vllm \
  --gpus all \
  --restart unless-stopped \
  -p 8000:8000 \
  -v hf_cache:/root/.cache/huggingface \
  -e HF_TOKEN=your-hf-token \
  vllm/vllm-openai:latest \
  --model meta-llama/Llama-3.1-70B-Instruct \
  --tensor-parallel-size 2 \
  --max-model-len 8192
```

В `librechat.yaml`:

```yaml
  custom:
    - name: "Local vLLM"
      apiKey: "not-needed"
      baseURL: "http://172.17.0.1:8000/v1"
      models:
        default: ["meta-llama/Llama-3.1-70B-Instruct"]
        fetch: true
```

### Требования к GPU для локальных моделей

| Размер модели | Мин. VRAM | Рекомендуемый GPU Clore | Примерная стоимость |
| ------------- | --------- | ----------------------- | ------------------- |
| 7–8B (Q4)     | 6 GB      | RTX 3090                | ≈ $0.20/ч           |
| 13B (Q4)      | 10 ГБ     | RTX 3090                | ≈ $0.20/ч           |
| 34B (Q4)      | 24 ГБ     | RTX 4090                | ≈ $0.35/ч           |
| 70B (Q4)      | 48 GB     | 2× RTX 3090             | \~$0.40/ч           |
| 70B (FP16)    | 80 ГБ     | A100 80GB               | ≈ $1.10/ч           |

***

## Подсказки и лучшие практики

### Управление затратами на Clore.ai

```bash
# Снимите снимок (snapshot) конфигурации перед остановкой сервера
docker compose exec mongodb mongodump --out /tmp/backup
docker cp librechat-mongodb-1:/tmp/backup ./mongo-backup-$(date +%Y%m%d)

# Остановите все контейнеры, когда они не используются
docker compose stop

# Или снизьте расходы до нуля, приостановив инстанс Clore.ai через панель управления
```

### Стратегия резервного копирования

```bash
# Автоматизированный ежедневный скрипт резервного копирования
cat > /root/backup-librechat.sh << 'EOF'
#!/bin/bash
cd ~/LibreChat
docker compose exec -T mongodb mongodump --archive | \
  gzip > ~/backups/librechat-$(date +%Y%m%d-%H%M).mongo.gz
# Хранить только последние 7 дней
find ~/backups -name "*.mongo.gz" -mtime +7 -delete
EOF

chmod +x /root/backup-librechat.sh
# Добавить в crontab: 0 2 * * * /root/backup-librechat.sh
```

### Восстановление из резервной копии

```bash
# Восстановить дамп MongoDB
gunzip < ~/backups/librechat-20240101-0200.mongo.gz | \
  docker compose exec -T mongodb mongorestore --archive
```

### Обеспечение безопасности LibreChat

* Всегда устанавливайте сильные уникальные значения для `JWT_SECRET` и `CREDS_KEY`
* Отключите регистрацию после создания первоначального пользователя: `ALLOW_REGISTRATION=false`
* Используйте обратный прокси (nginx/Caddy) с HTTPS для продакшена
* Регулярно обновляйте Docker-образ: `docker compose pull && docker compose up -d`

### Обратный прокси Nginx (опционально)

```bash
cat > /etc/nginx/sites-available/librechat << 'EOF'
server {
    listen 80;
    server_name your-domain.com;

    location / {
        proxy_pass http://localhost:3080;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
        client_max_body_size 100M;
    }
}
EOF
ln -s /etc/nginx/sites-available/librechat /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx
```

***

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

### Порт 3080 недоступен

```bash
# Проверьте, запущен ли контейнер
docker compose ps

# Проверьте привязку порта
ss -tlnp | grep 3080

# Просмотреть логи приложения
docker compose logs librechat --tail 50 -f

# Проверьте брандмауэр Clore.ai — убедитесь, что порт 3080 включён в вашу карту портов
```

### Подключение к MongoDB отклонено

```bash
# Проверьте состояние MongoDB
docker compose ps mongodb
docker compose logs mongodb --tail 20

# Убедитесь, что MONGO_URI в .env соответствует имени сервиса
# Должно быть: mongodb://mongodb:27017/LibreChat (не localhost)

# Протестируйте подключение вручную
docker compose exec LibreChat node -e "
const mongoose = require('mongoose');
mongoose.connect(process.env.MONGO_URI)
  .then(() => console.log('Connected!'))
  .catch(e => console.error(e));
"
```

### Ошибки JWT / аутентификации

```bash
# Перегенерируйте секреты в .env
node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"

# Обновите JWT_SECRET и JWT_REFRESH_SECRET
# Затем перезапустите: docker compose restart LibreChat
```

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

```bash
# Протестируйте API Ollama из контейнера LibreChat
docker compose exec LibreChat \
  curl -s http://172.17.0.1:11434/v1/models | python3 -m json.tool

# Убедитесь, что Ollama слушает на 0.0.0.0, а не только на localhost
docker exec ollama ollama serve  # Проверьте логи запуска для адреса привязки
```

### Закончилась дисковая память

```bash
# Проверьте использование диска
df -h
docker system df

# Очистите ресурсы Docker
docker system prune -f
docker volume prune -f  # ВНИМАНИЕ: удаляет неиспользуемые тома

# Проверьте директорию загрузок LibreChat
du -sh ~/LibreChat/client/public/uploads
```

### Обновление до последней версии

```bash
cd ~/LibreChat
git pull origin main
docker compose pull
docker compose up -d --build
```

***

## Дополнительное чтение

* [Документация LibreChat](https://docs.librechat.ai) — полная справка по конфигурации
* [GitHub LibreChat](https://github.com/danny-avila/LibreChat) — исходники, issues, changelog
* [LibreChat Docker Hub](https://ghcr.io/danny-avila/librechat-dev) — теги образов
* [Запуск Ollama на Clore.ai](/guides/guides_v2-ru/yazykovye-modeli/ollama.md) — локальный LLM-бэкенд
* [Запуск vLLM на Clore.ai](/guides/guides_v2-ru/yazykovye-modeli/vllm.md) — инференс с высокой пропускной способностью
* [Руководство по сравнению GPU](/guides/guides_v2-ru/nachalo-raboty/gpu-comparison.md) — выбор правильного уровня GPU
* [Справочник по файлу конфигурации LibreChat](https://docs.librechat.ai/install/configuration/librechat_yaml.html) — `librechat.yaml` schema


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.clore.ai/guides/guides_v2-ru/ai-platformy-i-agenty/librechat.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
