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

# Визуальный конструктор ИИ Langflow

Разверните Langflow на Clore.ai — создавайте и запускайте визуальные ИИ-пайплайны, RAG-системы и многоагентные воркфлоу на доступной GPU-облачной инфраструктуре с no-code интерфейсом drag-and-drop.

## Обзор

[Langflow](https://github.com/langflow-ai/langflow) — это low-code платформа с открытым исходным кодом для создания ИИ-приложений с помощью визуального интерфейса drag-and-drop. Имея более 55 тыс. звезд на GitHub и быстро растущее сообщество, она стала одним из основных инструментов для прототипирования и развертывания рабочих процессов на базе LLM без написания сложного шаблонного кода.

Langflow построен поверх LangChain и предоставляет графический редактор, где вы можете соединять компоненты — LLM, векторные хранилища, загрузчики документов, ретриверы, агентов, инструменты — проводя линии между узлами. Получившийся конвейер можно экспортировать как API-эндпоинт, делиться им как шаблоном или встраивать в ваше приложение.

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

* **Визуальный конструктор RAG** — Подключайте загрузчики документов → эмбеддинги → векторные хранилища → ретриверы за минуты
* **Многоагентные рабочие процессы** — Связывайте нескольких ИИ-агентов с памятью, инструментами и логикой принятия решений
* **Интеграция с LangChain** — Доступ ко всей экосистеме LangChain через узлы интерфейса
* **Маркетплейс компонентов** — Компоненты от сообщества для десятков сервисов
* **API-first** — Для каждого потока автоматически создается REST API-эндпоинт
* **Память и состояние** — Встроенная память диалогов, управление сессиями

**Почему Clore.ai для Langflow?**

Требования Langflow к вычислительным ресурсам минимальны — это Python-веб-сервер, который управляет оркестрацией рабочих процессов. Однако Clore.ai открывает мощные сценарии использования:

* **Локально размещенные эмбеддинги** — Запускайте локальные модели эмбеддингов (nomic-embed, BGE) на GPU для быстрой и бесплатной генерации векторов
* **Локальные LLM-бэкенды** — Подключите Langflow к Ollama или vLLM, работающим на том же сервере
* **Конвейеры с приватными данными** — Обрабатывайте конфиденциальные документы, не отправляя данные во внешние API
* **Оптимизация затрат** — Замените дорогие вызовы эмбеддингов OpenAI бесплатным локальным инференсом
* **Постоянные рабочие процессы** — Долгоживущие потоки на выделенных серверах (в отличие от временных облачных функций)

***

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

Сам Langflow легковесен и работает на CPU. GPU необязателен, но позволяет бесплатно выполнять локальный LLM/эмбеддинг-инференс.

| Конфигурация                             | GPU          | VRAM  | ОЗУ   | Хранилище | Оценочная цена                              |
| ---------------------------------------- | ------------ | ----- | ----- | --------- | ------------------------------------------- |
| **Только Langflow (API-бэкенды)**        | Не требуется | —     | 4 ГБ  | 10 ГБ     | ≈$0.03–0.08/ч                               |
| **+ Локальные эмбеддинги (nomic-embed)** | RTX 3090     | 24 ГБ | 8 ГБ  | 20 ГБ     | $0.07–0.21/ч                                |
| **+ Ollama (Llama 3.1 8B)**              | RTX 3090     | 24 ГБ | 16 ГБ | 40 ГБ     | $0.07–0.21/ч                                |
| **+ Ollama (Qwen2.5 32B)**               | RTX 4090     | 24 ГБ | 32 ГБ | 60 ГБ     | $0.14–0.42/ч                                |
| **+ vLLM (production RAG)**              | A100 80 ГБ   | 80 ГБ | 64 ГБ | 100 ГБ    | [голое железо](https://clore.ai/bare-metal) |

> Для сравнения вариантов GPU на Clore.ai см.  [Руководство по сравнению GPU](/guides/guides_v2-ru/nachalo-raboty/gpu-comparison.md).

**Системные требования на сервере Clore.ai:**

* Docker Engine (предустановлен во всех образах Clore.ai)
* NVIDIA Container Toolkit (предустановлен в GPU-образах, требуется только для локальной LLM)
* 10+ ГБ свободного дискового пространства для образа Langflow и данных потока
* Исходящий доступ в интернет (для загрузки Docker-образов и обращения к внешним API)

***

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

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

Арендуйте сервер на  [маркетплейсе Clore.ai](https://clore.ai). Для использования только Langflow подойдет любой сервер с ≥4 ГБ ОЗУ. Подключитесь по SSH:

```bash
ssh root@<server-ip> -p <ssh-port>
```

### Шаг 2: Запустите Langflow с Docker

Самое простое развертывание — одна команда:

```bash
docker run -d \
  --name langflow \\
  --restart unless-stopped \\
  -p 7860:7860 \\
  langflowai/langflow:latest
```

Подождите около 30–60 секунд, пока произойдет запуск, затем откройте `http://<server-ip>:7860`

### Шаг 3: Откройте порт 7860 в Clore.ai

В панели управления Clore.ai перейдите к вашему серверу → раздел Ports → убедитесь, что `7860` сопоставлен. Если используете собственный шаблон, добавьте `7860:7860` в конфигурацию портов перед запуском сервера.

### Шаг 4: Первый запуск

При первом посещении Langflow:

1. Покажет экран приветствия и предложит создать аккаунт (или пропустить)
2. Предложит набор стартовых шаблонов (RAG, чат-бот, агент)
3. Откроет визуальный редактор холста

Теперь вы готовы создать свой первый поток!

***

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

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

По умолчанию Langflow хранит потоки и данные внутри контейнера. Подключите том, чтобы сохранять их между перезапусками:

```bash
mkdir -p /opt/langflow/data

docker run -d \
  --name langflow \\
  --restart unless-stopped \\
  -p 7860:7860 \\
  -v /opt/langflow/data:/app/langflow \\
  -e LANGFLOW_DATABASE_URL=sqlite:////app/langflow/langflow.db \\
  langflowai/langflow:latest
```

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

```bash
docker run -d \
  --name langflow \\
  --restart unless-stopped \\
  -p 7860:7860 \\
  -v /opt/langflow/data:/app/langflow \\
  -e LANGFLOW_HOST=0.0.0.0 \\
  -e LANGFLOW_PORT=7860 \\
  -e LANGFLOW_DATABASE_URL=sqlite:////app/langflow/langflow.db \\
  -e LANGFLOW_SECRET_KEY=your-secret-key-here \\
  -e LANGFLOW_AUTO_LOGIN=false \\
  -e LANGFLOW_SUPERUSER=admin \\
  -e LANGFLOW_SUPERUSER_PASSWORD=your-password \\
  -e LANGFLOW_WORKERS=2 \\
  -e LANGFLOW_LOG_LEVEL=info \\
  langflowai/langflow:latest
```

| Переменная                    | Описание                               | По умолчанию    |
| ----------------------------- | -------------------------------------- | --------------- |
| `LANGFLOW_HOST`               | Адрес привязки                         | `0.0.0.0`       |
| `LANGFLOW_PORT`               | Порт веб-сервера                       | `7860`          |
| `LANGFLOW_DATABASE_URL`       | Строка подключения к базе данных       | SQLite в памяти |
| `LANGFLOW_SECRET_KEY`         | Секрет сеанса (задайте для production) | Случайный       |
| `LANGFLOW_AUTO_LOGIN`         | Пропустить экран входа                 | `true`          |
| `LANGFLOW_SUPERUSER`          | Имя администратора                     | `admin`         |
| `LANGFLOW_SUPERUSER_PASSWORD` | Пароль администратора                  | —               |
| `LANGFLOW_WORKERS`            | Количество API-worker-процессов        | `1`             |
| `LANGFLOW_LOG_LEVEL`          | Подробность логирования                | `critical`      |
| `OPENAI_API_KEY`              | Предзагрузить ключ OpenAI              | —               |

### Использование PostgreSQL (production)

Для многопользовательских или production-развертываний используйте PostgreSQL вместо SQLite:

```bash
# Запустите PostgreSQL
docker run -d \
  --name langflow-db \\
  --restart unless-stopped \\
  -e POSTGRES_USER=langflow \\
  -e POSTGRES_PASSWORD=langflow-secret \\
  -e POSTGRES_DB=langflow \\
  -v langflow-pgdata:/var/lib/postgresql/data \\
  postgres:16-alpine

# Запустите Langflow с backend PostgreSQL
docker run -d \
  --name langflow \\
  --restart unless-stopped \\
  --link langflow-db:db \\
  -p 7860:7860 \\
  -v /opt/langflow/data:/app/langflow \\
  -e LANGFLOW_DATABASE_URL=postgresql://langflow:langflow-secret@db:5432/langflow \\
  -e LANGFLOW_SECRET_KEY=$(openssl rand -hex 32) \\
  -e LANGFLOW_AUTO_LOGIN=false \\
  -e LANGFLOW_SUPERUSER=admin \\
  -e LANGFLOW_SUPERUSER_PASSWORD=changeme \\
  langflowai/langflow:latest
```

### Docker Compose (полный стек)

Для полной конфигурации с PostgreSQL и reverse proxy Nginx:

```yaml
# /opt/langflow/docker-compose.yml
version: "3.9"

services:
  langflow:
    image: langflowai/langflow:latest
    restart: unless-stopped
    ports:
      - "7860:7860"
    environment:
      - LANGFLOW_DATABASE_URL=postgresql://langflow:secret@db:5432/langflow
      - LANGFLOW_SECRET_KEY=${SECRET_KEY:-changeme}
      - LANGFLOW_AUTO_LOGIN=false
      - LANGFLOW_SUPERUSER=admin
      - LANGFLOW_SUPERUSER_PASSWORD=${ADMIN_PASSWORD:-changeme}
      - LANGFLOW_WORKERS=2
    volumes:
      - langflow-data:/app/langflow
    depends_on:
      db:
        condition: service_healthy

  db:
    image: postgres:16-alpine
    restart: unless-stopped
    environment:
      - POSTGRES_USER=langflow
      - POSTGRES_PASSWORD=secret
      - POSTGRES_DB=langflow
    volumes:
      - pgdata:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U langflow"]
      interval: 10s
      timeout: 5s
      retries: 5

volumes:
  langflow-data:
  pgdata:
```

```bash
cd /opt/langflow
SECRET_KEY=$(openssl rand -hex 32) ADMIN_PASSWORD=yourpassword docker compose up -d
```

### Фиксация конкретной версии

Для воспроизводимых развертываний зафиксируйте конкретную версию:

```bash
# Список доступных версий: https://hub.docker.com/r/langflowai/langflow/tags
docker run -d \
  --name langflow \\
  -p 7860:7860 \\
  langflowai/langflow:1.1.4
```

***

## Ускорение с помощью GPU (интеграция локальных моделей)

Сам Langflow работает на CPU, но подключение к локальным сервисам на GPU на том же сервере Clore.ai открывает бесплатный приватный инференс.

### Подключение Langflow к Ollama

```bash
# Шаг 1: Запустите Ollama с GPU
docker run -d \
  --name ollama \\
  --gpus all \
  --restart unless-stopped \\
  -p 11434:11434 \\
  -v ollama-models:/root/.ollama \\
  ollama/ollama:latest

# Шаг 2: Скачайте модели для разных сценариев использования
docker exec ollama ollama pull llama3.1:8b          # Общий чат
docker exec ollama ollama pull nomic-embed-text     # Эмбеддинги для RAG
docker exec ollama ollama pull qwen2.5-coder:7b    # Генерация кода

# Шаг 3: Запустите Langflow с доступом к сети Ollama
docker run -d \
  --name langflow \\
  --restart unless-stopped \\
  -p 7860:7860 \\
  -v /opt/langflow/data:/app/langflow \\
  --add-host host.docker.internal:host-gateway \\
  langflowai/langflow:latest
```

В интерфейсе Langflow используйте **компонент** Ollama

* с: `Базовый URL:`
* Модель: `llama3.1:8b`

Для эмбеддингов используйте **OllamaEmbeddings** Ollama

* с: `Базовый URL:`
* Модель: `nomic-embed-text`

> Полная конфигурация Ollama: см.  [руководство по Ollama](/guides/guides_v2-ru/yazykovye-modeli/ollama.md)

### Подключение Langflow к vLLM (совместимый с OpenAI)

```bash
# Запустите vLLM с OpenAI-совместимым API
docker run -d \
  --name vllm \\
  --gpus all \
  --restart unless-stopped \\
  -p 8000:8000 \\
  --ipc=host \\
  vllm/vllm-openai:latest \\
  --model mistralai/Mistral-7B-Instruct-v0.3 \\
  --gpu-memory-utilization 0.85

# В Langflow используйте компонент OpenAI с пользовательским базовым URL:
# Базовый URL: http://host.docker.internal:8000/v1
# API-ключ: любое значение, например "none"
# Модель: mistralai/Mistral-7B-Instruct-v0.3
```

> Полная конфигурация vLLM: см.  [руководство по vLLM](/guides/guides_v2-ru/yazykovye-modeli/vllm.md)

### Создание локального RAG-конвейера

Пример RAG-потока, использующего только локальные модели (без затрат на API):

1. **Загрузчик файлов** узел → загружает PDF/текстовые документы
2. **Разделитель текста** узел → разбивает документы на фрагменты (размер: 512, перекрытие: 50)
3. **OllamaEmbeddings** узел → генерирует эмбеддинги (модель: `nomic-embed-text`)
4. **Chroma** или **FAISS** узел → хранит векторы локально
5. **OllamaEmbeddings** узел → преобразует запрос пользователя в эмбеддинг
6. **Ретривер** узел → находит k наиболее похожих фрагментов
7. **компонент** узел → генерирует ответ (модель: `llama3.1:8b`)
8. **Вывод чата** узел → возвращает ответ

Весь этот конвейер работает на вашем сервере Clore.ai без каких-либо внешних API-вызовов.

***

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

### 1. Экспортируйте потоки как резервные копии

Перед остановкой сервера Clore.ai экспортируйте свои потоки:

* В интерфейсе: Flows → Выбрать все → Экспорт → Скачать JSON
* Или через API: `curl http://localhost:7860/api/v1/flows/`

Храните их в постоянном томе или скачайте на локальный компьютер.

### 2. Используйте API для автоматизации

Каждый поток Langflow создает API-эндпоинт. Запускайте потоки программно:

```bash
# Получите ID потока в интерфейсе (он показан в URL)
FLOW_ID="your-flow-id-here"

curl -X POST \\
  "http://<server-ip>:7860/api/v1/run/$FLOW_ID" \\
  -H "Content-Type: application/json" \\
  -d '{
    "input_value": "Суммируй последние научные статьи по ИИ",
    "input_type": "chat",
    "output_type": "chat"
  }'
```

### 3. Защитите свой экземпляр

Для всего, что выходит за рамки локального тестирования:

```bash
# Всегда настраивайте аутентификацию
-e LANGFLOW_AUTO_LOGIN=false \\
-e LANGFLOW_SUPERUSER=admin \\
-e LANGFLOW_SUPERUSER_PASSWORD=$(openssl rand -base64 16)

# Используйте надежный секретный ключ
-e LANGFLOW_SECRET_KEY=$(openssl rand -hex 32)
```

### 4. Следите за использованием памяти

Langflow может со временем накапливать потребление памяти при большом количестве активных потоков:

```bash
docker stats langflow
# Если потребление памяти растет бесконечно, периодически перезапускайте:
docker restart langflow
```

### 5. Используйте стартовые шаблоны

Langflow поставляется с готовыми к production шаблонами:

* **Базовый RAG** — Вопросы и ответы по документам с векторным хранилищем
* **Чат-бот с памятью** — Диалоговый агент с историей
* **Ассистент для исследований** — Веб-поиск + синтез LLM
* Доступ через: Новый поток → Стартовые проекты

### 6. Кэширование компонентов

Включите кэширование, чтобы ускорить повторные запуски потока:

* В настройках потока: включите "Cache" на ресурсоемких узлах (эмбеддинги, вызовы LLM)
* Особенно полезно для поиска RAG во время разработки

***

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

### Контейнер не запускается

```bash
# Проверьте журналы на наличие ошибок
docker logs langflow --tail 50

# Частая проблема: порт уже используется
lsof -i :7860
# Завершите конфликтующий процесс или измените порт:
docker run ... -p 7861:7860 ...
```

### Интерфейс загружается, но потоки не запускаются

```bash
# Проверьте статус worker-процесса
docker exec langflow ps aux | grep langflow

# Проверьте ошибки пакетов Python
docker logs langflow 2>&1 | grep -i error

# Перезапустите контейнер
docker restart langflow
```

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

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

# Если флаг --add-host отсутствует, пересоздайте контейнер с:
--add-host host.docker.internal:host-gateway

# Убедитесь, что Ollama запущен
docker ps | grep ollama
curl http://localhost:11434/api/tags
```

### Ошибки базы данных при перезапуске

```bash
# Если используется SQLite и возникают ошибки блокировки:
docker stop langflow
ls -la /opt/langflow/data/
# Проверьте наличие устаревших файлов .lock
rm -f /opt/langflow/data/langflow.db-wal
rm -f /opt/langflow/data/langflow.db-shm
docker start langflow
```

### Медленное выполнение потока

```bash
# Увеличьте число worker-процессов для параллельной обработки
-e LANGFLOW_WORKERS=4

# Для задач с высокой нагрузкой на embedding убедитесь, что Ollama использует GPU:
docker exec ollama nvidia-smi
# При создании embedding должен отображаться уровень загрузки GPU
```

### Сбросить пароль администратора

```bash
docker exec -it langflow python -c "
from langflow.services.database.utils import initialize_db
from langflow.services.deps import get_settings_service
# Вместо этого используйте CLI Langflow:
"
# Используйте метод через CLI:
docker exec -it langflow langflow superuser --username admin --password newpassword
```

***

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

* [Репозиторий Langflow на GitHub](https://github.com/langflow-ai/langflow) — Исходный код, баги, журнал изменений
* [Документация Langflow](https://docs.langflow.org) — Официальная документация, справочник по компонентам, документация API
* [Langflow в Discord](https://discord.com/invite/EqksyE2EX9) — Поддержка сообщества и обмен флоу
* [Ollama на Clore.ai](/guides/guides_v2-ru/yazykovye-modeli/ollama.md) — Настройка локального LLM-бэкенда для Langflow
* [vLLM на Clore.ai](/guides/guides_v2-ru/yazykovye-modeli/vllm.md) — Высокопроизводительное обслуживание LLM для production-флоу
* [Руководство по сравнению GPU](/guides/guides_v2-ru/nachalo-raboty/gpu-comparison.md) — Выберите подходящий GPU Clore.ai для вашей нагрузки
* [Документация LangChain](https://python.langchain.com/docs/) — Справочник по базовому фреймворку
* [Docker Hub: langflowai/langflow](https://hub.docker.com/r/langflowai/langflow) — Доступные теги и версии образов


---

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