> For the complete documentation index, see [llms.txt](https://docs.clore.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.clore.ai/guides/guides_v2-ru/platformy-i-agenty-ii/librechat.md).

# LibreChat Multi-Provider

Разверните LibreChat на Clore.ai — мощную, самостоятельно хостимую альтернативу ChatGPT с поддержкой нескольких AI-провайдеров, ветвлением бесед и экосистемой плагинов на доступной GPU-облачной инфраструктуре.

## Обзор

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

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

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

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

| Функция              | Описание                                                       |
| -------------------- | -------------------------------------------------------------- |
| Мультипровайдерность | OpenAI, Anthropic, Google, Azure, Mistral, Ollama, OpenRouter  |
| Ветвление бесед      | Создавайте форки и исследуйте альтернативные ответы            |
| Плагины              | Поиск Bing, 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 выигрывает от большего объёма RAM          |
| **Хранилище** | 20 ГБ        | 50+ ГБ                            | Загрузка файлов, кеш моделей при локальном запуске |

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

| Тип сервера                        | Примерная стоимость                         | Сценарий использования                |
| ---------------------------------- | ------------------------------------------- | ------------------------------------- |
| С упором на CPU (4 vCPU, 8 ГБ RAM) | \~0,05–0,10 $/час                           | LibreChat + внешние API-провайдеры    |
| RTX 3090 (24 ГБ VRAM)              | $0.07–0.21/ч                                | LibreChat + локальный инференс Ollama |
| RTX 4090 (24 ГБ VRAM)              | $0.14–0.42/ч                                | LibreChat + более быстрый Ollama/vLLM |
| A100 80 ГБ                         | [голое железо](https://clore.ai/bare-metal) | 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@<your-clore-server-ip> -p <ssh-port>
```

**Шаг 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-ключи (добавьте те, которые используете)
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: Быстрый тест в одном контейнере

Для быстрого proof-of-concept без 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+ символов) | Случайная шестнадцатеричная строка  |
| `OPENAI_API_KEY`     | Ключ OpenAI                       | `sk-...`                            |
| `ANTHROPIC_API_KEY`  | Ключ Anthropic                    | `sk-ant-...`                        |
| `GOOGLE_KEY`         | Ключ Google Gemini                | `ИИ...`                             |
| `ALLOW_REGISTRATION` | Включить публичную регистрацию    | `true` / `false`                    |
| `ALLOW_EMAIL_LOGIN`  | Включить вход по email/паролю     | `true`                              |
| `DEBUG_LOGGING`      | Подробные логи                    | `true`                              |
| `ПОИСК`              | Включить 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_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 ГБ      | RTX 3090                   | $0.07–0.21/ч                                |
| 13B (Q4)      | 10 ГБ     | RTX 3090                   | $0.07–0.21/ч                                |
| 34B (Q4)      | 24 ГБ     | RTX 4090                   | $0.14–0.42/ч                                |
| 70B (Q4)      | 48 ГБ     | 2× RTX 3090                | $0.14–0.42/ч                                |
| 70B (FP16)    | 80 ГБ     | A100 80 ГБ                 | [голое железо](https://clore.ai/bare-metal) |

***

## Советы и лучшие практики

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

```bash
# Снимите слепок конфигурации перед остановкой сервера
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 в production
* Регулярно обновляйте 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) — полная справка по конфигурации
* [LibreChat GitHub](https://github.com/danny-avila/LibreChat) — исходный код, проблемы, журнал изменений
* [LibreChat Docker Hub](https://ghcr.io/danny-avila/librechat-dev) — теги образов
* [Запуск Ollama на Clore.ai](/guides/guides_v2-ru/yazykovye-modeli/ollama.md) — локальный backend 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` схема


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
