Развертывание Langflow
Langflow позволяет создавать и тестировать LLM-пайплайны через веб-интерфейс.
В этом руководстве вы установите и запустите Langflow на виртуальной машине с помощью Docker Compose и reverse-прокси Caddy.
Перед началом работы
Создайте виртуальную машину с внешним временным IP-адресом.
Разрешите HTTP-трафик для виртуальной машины:
- В веб-консоли выберите нужный проект.
- В списке сервисов выберите Compute → Виртуальные машины.
- Нажмите на имя созданной ВМ и перейдите на вкладку Сетевые интерфейсы.
- Нажмите кнопку Настроить, выберите опцию Разрешить HTTP-трафик, после чего нажмите кнопку Сохранить.
Создайте деплоймент. Выберите модель и имя деплоймента —
qwen3-coder-480b-a35b.Создайте API-ключ и сохраните его значение.
1. Установите Docker и Docker Compose Plugin
Подключитесь к ВМ по SSH.
Обновите систему и установите зависимости:
bashsudo apt update && \ sudo apt install -y apt-transport-https ca-certificates curl software-properties-common gnupg lsb-release git nodejs npmПодключите официальный репозиторий Docker:
bashcurl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg && \ echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null && \ sudo apt updateУстановите Docker Engine:
bashsudo apt install -y docker-ceДобавьте текущего пользователя в группу
docker:bashsudo usermod -aG docker $USERПерезагрузите ВМ:
bashsudo rebootПодключитесь к ВМ и убедитесь, что Docker перешел в статус
active (running):bashsudo systemctl status dockerУстановите Docker Compose Plugin:
bashsudo apt install -y docker-compose-pluginУбедитесь, что плагин установлен. Для этого запросите его версию:
bashdocker compose versionПример вывода:
bashDocker Compose version v5.1.3
2. Установите Langflow
Создайте директорию для проекта и перейдите в нее:
bashmkdir langflow && cd langflowСоздайте файл
docker-compose.yamlс конфигурацией Langflow и Caddy:yamlversion: "3.8" services: langflow: image: langflowai/langflow:latest ports: - "7860:7860" environment: - LANGFLOW_HOST=0.0.0.0 - LANGFLOW_PORT=7860 caddy: image: caddy:latest ports: - "80:80" - "443:443" volumes: - ./Caddyfile:/etc/caddy/Caddyfile - caddy_data:/data - caddy_config:/config depends_on: - langflow volumes: caddy_data: caddy_config:Создайте файл
Caddyfileс настройками reverse-прокси Caddy:text:80 { reverse_proxy langflow:7860 }Запустите сервисы:
bashdocker compose up -dУбедитесь, что сервисы
langflowиcaddyперешли в состояниеUp:bashdocker compose psОжидаемый результат:
bashNAME IMAGE COMMAND SERVICE CREATED STATUS PORTS langflow-caddy-1 caddy:latest "caddy run --config …" caddy 11 minutes ago Up 11 minutes 0.0.0.0:80->80/tcp, [::]:80->80/tcp, 0.0.0.0:443->443/tcp, [::]:443->443/tcp, 443/udp, 2019/tcp langflow-langflow-1 langflowai/langflow:latest "langflow run" langflow 11 minutes ago Up 11 minutes 0.0.0.0:7860->7860/tcp, [::]:7860->7860/tcp
3. Проверьте работу приложения
Для проверки работы приложения откройте ссылку в браузере:
texthttp://<публичный IP-адрес ВМ>Откроется веб-интерфейс Langflow.
Совет
Если вместо интерфейса отображается только черный экран, переключите язык вашего браузера на английский и обновите страницу.
Создайте новый поток (flow), следуя указаниям Langflow.
Подключите текстовую модель:
В меню слева выберите Bundles → vLLM.
Укажите параметры модели:
- Model Name —
qwen3-coder-480b-a35b; - vLLM API Base —
https://gpt.mwsapis.ru/projects/<имя вашего проекта>/openai/v1; - API Key — API-ключ, полученный на подготовительном шаге.
В поле Input введите запрос к модели, например,
Привет! Ты здесь?. Для отправки запроса нажмите значок в виде треугольника (Run component).
Совет
Вы можете дополнительно подключить любую из доступных embedding-моделей, например,
bge-m3.Для проверки работы приложения попробуйте с помощью веб-интерфейса Langflow создать:
Удалите платные ресурсы
Ресурсы, созданные в руководстве, тарифицируются. Если вы больше не планируете использовать их: