> 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/dify.md).

# Платформа рабочих процессов Dify.ai

Разверните Dify.ai на Clore.ai — создавайте production-ready ИИ-воркфлоу, RAG-пайплайны и агентные приложения с визуальным интерфейсом по ценам GPU-облака.

## Обзор

[Dify.ai](https://github.com/langgenius/dify) — это платформа с открытым исходным кодом для разработки приложений на базе LLM, с **114K+ звёзд на GitHub**. Она объединяет визуальный конструктор рабочих процессов, конвейер retrieval-augmented generation (RAG), оркестрацию агентов, управление моделями и слой развертывания API в один стек, который можно разместить у себя.

На **Clore.ai** вы можете запустить весь стек Dify — включая базу данных Postgres, кэш Redis, векторное хранилище Weaviate, обратный прокси Nginx, API-воркеры и веб-фронтенд — на арендованном GPU-сервере всего за **$0.07–0.21/ч** (RTX 3090/4090). Сам GPU для самого Dify необязателен, но становится необходимым, когда вы интегрируете локальный инференс моделей через бэкенды Ollama или vLLM.

**Ключевые возможности:**

* 🔄 **Визуальный конструктор рабочих процессов** — перетаскиваемые LLM-конвейеры с ветвлениями, циклами и условной логикой
* 📚 **RAG-конвейер** — загружайте PDF, URL, страницы Notion; нарезка на фрагменты + эмбеддинги + поиск — всё управляется в интерфейсе
* 🤖 **Режим агента** — агенты ReAct и с вызовом функций с использованием инструментов (веб-поиск, интерпретатор кода, пользовательские API)
* 🚀 **API-first** — каждое приложение мгновенно генерирует REST-конечную точку и фрагменты SDK
* 🔌 **100+ интеграций моделей** — OpenAI, Anthropic, Mistral, Cohere, а также локальные модели через Ollama/vLLM
* 🏢 **Мультиарендность** — команды, рабочие пространства, RBAC, квоты использования

***

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

{% hint style="warning" %}
**Многопроцессорные конфигурации с GPU класса 80GB не представлены на маркетплейсе Clore.ai.** Самые крупные доступные сейчас машины — это 4× RTX PRO 6000 Blackwell (по 96GB, всего 380GB) и 8–11× RTX 5090 (по 32GB). Ёмкость A100 / H200 / B200 продаётся как [голое железо](https://clore.ai/bare-metal) по запросу. Проверьте [Цены и доступность GPU](/guides/guides_v2-ru/nachalo-raboty/pricing.md) перед выбором размера развёртывания.
{% endhint %}

Dify работает как стек Docker Compose с несколькими контейнерами. Минимально необходимый сервер для разработки — это экземпляр только с CPU; для production с локальным инференсом моделей вам понадобится GPU-узел.

| Конфигурация                       | GPU             | VRAM  | Системная RAM | Диск   | Цена Clore.ai                               |
| ---------------------------------- | --------------- | ----- | ------------- | ------ | ------------------------------------------- |
| **Минимальная** (только API-ключи) | Нет / CPU       | —     | 8 ГБ          | 30 ГБ  | \~$0.05/час (CPU)                           |
| **Стандартный**                    | RTX 3080        | 10 ГБ | 16 ГБ         | 50 ГБ  | $0.05–0.19/ч                                |
| **Рекомендуется**                  | RTX 3090 / 4090 | 24 ГБ | 32 ГБ         | 80 ГБ  | $0.07–0.21/ч                                |
| **Production + локальный LLM**     | A100 80 ГБ      | 80 ГБ | 64 ГБ         | 200 ГБ | [голое железо](https://clore.ai/bare-metal) |
| **Высокая пропускная способность** | H100 SXM        | 80 ГБ | 128 ГБ        | 500 ГБ | \~$1.04/час                                 |

> **Совет:** Если вы используете только облачных поставщиков API (OpenAI, Anthropic и т. д.), подойдёт любой 2-ядерный CPU-экземпляр с 8 ГБ ОЗУ. GPU имеет значение только при запуске локальных моделей через Ollama или vLLM — см. [Ускорение на GPU](#gpu-acceleration) ниже.

### Примечание о диске

Данные Weaviate и Postgres быстро растут при загрузке документов. Выделите **не менее 50 ГБ** и подключите постоянное хранилище через опции томов Clore.ai.

***

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

### 1. Арендуйте сервер Clore.ai

Перейдите по адресу [маркетплейсе clore.ai](https://clore.ai), отфильтруйте по нужному GPU и разверните сервер со следующим:

* **Docker** предустановлен (все образы Clore включают его)
* Открытые порты **80** и **443** (при необходимости добавьте пользовательские порты в настройках предложения)
* Доступ по SSH включён

### 2. Подключитесь и подготовьте сервер

```bash
# Подключитесь по SSH к вашему серверу Clore
ssh root@<clore-server-ip> -p <ssh-port>

# Обновить системные пакеты
apt-get update && apt-get upgrade -y

# Проверьте, что Docker доступен
docker --version
docker compose version   # Должна быть версия v2.x
```

### 3. Клонируйте Dify и запустите

```bash
# Клонируйте репозиторий
git clone https://github.com/langgenius/dify.git
cd dify/docker

# Скопируйте пример файла окружения
cp .env.example .env

# (Необязательно) Измените настройки перед запуском
nano .env

# Скачайте все образы и запустите все сервисы в фоне
docker compose up -d

# Следите за логами во время запуска (при первом запуске занимает 2–3 минуты)
docker compose logs -f
```

### 4. Проверьте, что все сервисы работают нормально

```bash
# Проверьте статус контейнеров
docker compose ps

# Ожидаемый вывод:
# ИМЯ                    СТАТУС
# docker-api-1            Up (healthy)
# docker-web-1            Up (healthy)
# docker-worker-1         Up (healthy)
# docker-nginx-1          Up
# docker-db-1             Up (healthy)
# docker-redis-1          Up (healthy)
# docker-weaviate-1       Up (healthy)
# docker-sandbox-1        Up (healthy)
```

### 5. Откройте веб-интерфейс

Откройте браузер и перейдите по адресу:

```
http://<clore-server-ip>:80
```

При первом запуске Dify перенаправит вас в мастер настройки для создания учётной записи администратора. Завершите мастер, затем войдите в систему.

***

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

Вся конфигурация находится в `dify/docker/.env`. Вот самые важные настройки:

### Основные переменные окружения

```bash
# ── Секретные ключи (ИЗМЕНИТЕ ИХ) ──────────────────────────────────────────────
SECRET_KEY=your-super-secret-key-change-this-immediately
# Сгенерируйте надёжный ключ:
# python3 -c "import secrets; print(secrets.token_hex(32))"

# ── URL приложения ──────────────────────────────────────────────────────────
# Укажите публичный IP или домен вашего сервера
CONSOLE_WEB_URL=http://<clore-server-ip>
APP_WEB_URL=http://<clore-server-ip>

# ── База данных (Postgres) ─────────────────────────────────────────────────────
DB_USERNAME=postgres
DB_PASSWORD=difyai123456          # Измените в production!
DB_HOST=db
DB_PORT=5432
DB_DATABASE=dify

# ── Redis ───────────────────────────────────────────────────────────────────
REDIS_HOST=redis
REDIS_PORT=6379
REDIS_PASSWORD=difyai123456       # Измените в production!

# ── Хранилище (по умолчанию локальный диск) ─────────────────────────────────────────
STORAGE_TYPE=local
# Или используйте S3-совместимое хранилище:
# STORAGE_TYPE=s3
# S3_ENDPOINT=https://s3.amazonaws.com
# S3_BUCKET_NAME=your-dify-bucket
# S3_ACCESS_KEY=...
# S3_SECRET_KEY=...

# ── Провайдер LLM по умолчанию ─────────────────────────────────────────────────────
# Установите в интерфейсе после входа или предварительно настройте здесь:
# OPENAI_API_KEY=sk-...
```

### Изменение открытого порта

По умолчанию Nginx слушает на порту **80**. Чтобы изменить его:

```bash
# В docker-compose.yaml измените сервис nginx:
# ports:
#   - "8080:80"   ← измените 8080 на предпочитаемый порт хоста

# Затем перезапустите:
docker compose down && docker compose up -d
```

### Постоянные тома данных

Файл Compose Dify по умолчанию монтирует следующие тома:

```yaml
volumes:
  oradata:          # данные Postgres
  redis_data:       # Redis AOF
  weaviate_data:    # векторное хранилище
  app_storage:      # загруженные документы и сгенерированные файлы
```

Для резервного копирования:

```bash
# Сначала остановите сервисы, затем запакуйте тома Docker в tar
docker compose stop
docker run --rm \
  -v docker_oradata:/data \
  -v $(pwd)/backups:/backup \
  alpine tar czf /backup/postgres-$(date +%Y%m%d).tar.gz /data
docker compose start
```

***

## Ускорение на GPU

Основная платформа Dify работает на CPU, но вы получаете локальный инференс моделей, интегрировав **компонент** или **vLLM** в качестве поставщиков моделей — оба варианта очень выигрывают от GPU.

### Вариант A: сайдкар Ollama (проще всего)

Запустите Ollama рядом с Dify на том же сервере Clore:

```bash
# Установите Ollama
curl -fsSL https://ollama.com/install.sh | sh

# Скачайте модель (например, Llama 3 8B)
ollama pull llama3:8b

# Проверьте, что используется GPU
ollama run llama3:8b "Hello!"
nvidia-smi   # Должен показать процесс ollama, использующий VRAM
```

Затем в интерфейсе Dify → **Настройки → Поставщики моделей → Ollama**:

* с: `http://localhost:11434`
* Выберите модель и сохраните

> Полное руководство по Ollama см. [language-models/ollama.md](/guides/guides_v2-ru/yazykovye-modeli/ollama.md).

### Вариант B: сайдкар vLLM (высокая пропускная способность)

```bash
# Запустите vLLM как отдельный контейнер с пробросом GPU
docker run -d \
  --name vllm \\
  --gpus all \
  --runtime nvidia \
  -p 8000:8000 \\
  -v ~/.cache/huggingface:/root/.cache/huggingface \
  -e HUGGING_FACE_HUB_TOKEN=<your-hf-token> \
  vllm/vllm-openai:latest \\
  --model mistralai/Mistral-7B-Instruct-v0.2 \
  --dtype auto \
  --max-model-len 4096

# Проверьте конечную точку
curl http://localhost:8000/v1/models
```

Затем в интерфейсе Dify → **Настройки → Поставщики моделей → OpenAI-compatible**:

* с: `http://localhost:8000/v1`
* API-ключ: `dummy`
* Имя модели: `mistralai/Mistral-7B-Instruct-v0.2`

> Полную настройку vLLM см. [language-models/vllm.md](/guides/guides_v2-ru/yazykovye-modeli/vllm.md).

### Рекомендации по объёму GPU-памяти для локальных моделей

| Модель             | Требуемая VRAM | Рекомендуемый GPU на Clore |
| ------------------ | -------------- | -------------------------- |
| Llama 3 8B (Q4)    | 6 ГБ           | RTX 3060                   |
| Llama 3 8B (FP16)  | 16 ГБ          | RTX 3090 / 4090            |
| Mistral 7B (Q4)    | 5 ГБ           | RTX 3060                   |
| Llama 3 70B (Q4)   | 40 ГБ          | A100 40 ГБ                 |
| Llama 3 70B (FP16) | 140 ГБ         | 2× H100                    |

***

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

### Оптимизация затрат на Clore.ai

```bash
# Используйте спотовые цены — базы данных Dify хранят состояние в томах
# так что вы можете дёшево останавливать и перезапускать экземпляр

# Перед остановкой экземпляра Clore выгрузите базу данных:
docker exec docker-db-1 pg_dump -U postgres dify > dify_backup_$(date +%Y%m%d).sql

# Сожмите том хранилища для переноса
tar czf dify_storage_$(date +%Y%m%d).tar.gz \
  $(docker volume inspect docker_app_storage --format '{{.Mountpoint}}')
```

### Включите HTTPS с помощью Caddy (рекомендуется для production)

```bash
# Добавьте Caddy в docker-compose.yaml или запустите отдельно
docker run -d \
  --name caddy \
  --network docker_default \
  -p 443:443 -p 80:80 \
  -v $PWD/Caddyfile:/etc/caddy/Caddyfile \
  -v caddy_data:/data \
  caddy:latest

# Содержимое Caddyfile:
# ваш-домен.com {
#     reverse_proxy nginx:80
# }
```

### Масштабируйте воркеры для тяжёлых нагрузок

```bash
# Запустите 4 celery-воркера вместо 1
docker compose up -d --scale worker=4
```

### Контролируйте использование ресурсов

```bash
# Статистика контейнеров в реальном времени
docker stats

# Использование GPU (если используются локальные модели)
watch -n1 nvidia-smi

# Логи приложения Dify
docker compose logs -f api worker
```

### Настройка производительности RAG

* Установите **размер чанка** до 512–1024 токенов для большинства типов документов
* Включите **parent-child retrieval** для длинных документов в настройках Dataset
* Используйте **гибридный поиск** (ключевой + векторный) для лучшего полнотекстового охвата технического контента
* Индексируйте документы в часы низкой нагрузки, чтобы избежать ограничений по частоте запросов API

***

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

### Сервисы постоянно перезапускаются

```bash
# Проверьте логи проблемного сервиса
docker compose logs --tail=50 api
docker compose logs --tail=50 worker

# Частая причина: неверный SECRET_KEY или соединение с БД
# Убедитесь, что SECRET_KEY в .env задан и уникален
grep SECRET_KEY .env
```

### "Не удалось выполнить миграцию" при запуске

```bash
# Выполните миграции БД вручную
docker compose exec api flask db upgrade

# Если это не помогло, сначала проверьте, что Postgres работает нормально
docker compose exec db pg_isready -U postgres
```

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

```bash
# По умолчанию Ollama привязывается к 127.0.0.1
# Измените это, чтобы слушать на всех интерфейсах:
OLLAMA_HOST=0.0.0.0 ollama serve

# Или отредактируйте systemd-сервис:
systemctl edit ollama
# Добавьте в разделе [Service]:
# Environment="OLLAMA_HOST=0.0.0.0"
systemctl restart ollama

# Проверьте изнутри контейнера Dify:
docker compose exec api curl http://host.docker.internal:11434/api/tags
```

### Недостаточно места на диске

```bash
# Проверьте размер томов
df -h
docker system df

# Удалите неиспользуемые образы
docker image prune -a

# Логи Weaviate могут разрастаться — выполните ротацию
docker compose exec weaviate truncate -s 0 /tmp/weaviate.log
```

### Ошибки хранилища векторов Weaviate

```bash
# Сбросьте Weaviate (ПРЕДУПРЕЖДЕНИЕ: удаляет все эмбеддинги, потребуется повторная индексация)
docker compose stop weaviate
docker volume rm docker_weaviate_data
docker compose up -d weaviate

# Затем переиндексируйте датасеты в интерфейсе Dify → Datasets → [dataset] → Re-index
```

### Порт 80 уже используется

```bash
# Найдите, что использует порт 80
ss -tlnp | grep :80
# или
lsof -i :80

# Остановите конфликтующий сервис или измените порт nginx в docker-compose.yaml
```

***

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

* [Официальная документация Dify](https://docs.dify.ai)
* [Репозиторий Dify на GitHub](https://github.com/langgenius/dify)
* [Руководство по самостоятельному хостингу Dify](https://docs.dify.ai/getting-started/install-self-hosted/docker-compose)
* [Запуск Ollama на Clore.ai](/guides/guides_v2-ru/yazykovye-modeli/ollama.md)
* [Запуск vLLM на Clore.ai](/guides/guides_v2-ru/yazykovye-modeli/vllm.md)
* [Сравнение GPU на Clore.ai](/guides/guides_v2-ru/nachalo-raboty/gpu-comparison.md)
* [Discord-сообщество Dify](https://discord.gg/FngNHpbcY7)


---

# 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/dify.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.
