Langflow или LangChain: визуальный конструктор против кода

Langflow строит приложение на холсте, LangChain пишется кодом. Разбираем, кому какой подход подойдёт, и как подключить шлюз в обоих.

6 мин · · сравнение · автоматизация

Langflow vs LangChain: этот вопрос часто задают те, кто выбирает, как собрать приложение с моделью, чат-бота или RAG, и не уверен, стоит ли писать код. Коротко: это не конкуренты в прямом смысле. LangChain — библиотека, с которой вы пишете программу. Langflow — приложение с визуальным редактором, где та же логика собирается из блоков на холсте. Ниже сравним подходы, покажем, как подключить модель через шлюз Zukko в каждом, и заглянем в соседние инструменты.

Что это такое

LangChain — набор библиотек для Python и JavaScript. Вы импортируете классы моделей, описываете цепочки и агентов, запускаете это как обычный код. Всё лежит в репозитории, проходит ревью и тесты.

Langflow по описанию в его документации — открытый настраиваемый фреймворк на Python для создания AI-приложений. Основной интерфейс — визуальный редактор: вы перетаскиваете компоненты (модель, промпт, чат-ввод, поиск по документам, агент) и соединяете их линиями. Готовый поток (flow) можно запускать из редактора и вызывать по API. В Langflow есть и набор компонентов, основанных на LangChain, так что инструменты связаны, но не взаимозаменяемы.

Langflow vs LangChain: сравнение по критериям

КритерийLangflowLangChain (код)
Порог входаНизкий: можно собрать прототип без кодаНужно уметь программировать
Скорость прототипаВысокая, видно каждый блокЗависит от опыта
Версионирование и ревьюПоток хранится как конфигурация, ревью сложнееОбычный git и code review
ТестыПрогон вручную в редакторе или через APIПривычные unit- и интеграционные тесты
Нестандартная логикаЧерез свои компоненты на PythonПолная свобода
РазвёртываниеНужно запустить сам Langflow-серверЧасть вашего приложения
Кто может менятьАналитик, продакт, инженерРазработчик

Таблица не говорит, что один подход лучше. Она показывает, какие издержки вы получаете вместе с выбором.

Когда что подходит

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

LangChain выбирают, когда логика встроена в большое приложение, нужны юнит-тесты, строгий контроль версий, нестандартные ветвления и работа в вашем CI. Если поток должен быть частью микросервиса, а не отдельным сервером, код проще.

Нередко проекты идут по комбинированному пути: прототип собирают в визуальном редакторе, а когда логика устоялась, переписывают на код. Решение стоит принимать по составу команды, а не по моде.

Подключаем шлюз в Langflow

Для запуска локально в документации Langflow указана команда uv run langflow run; по умолчанию редактор открывается на http://127.0.0.1:7860. Есть также Langflow Desktop и Docker-образ. Установка через Python: uv pip install langflow.

В документации версии 1.12 для сторонних OpenAI-совместимых серверов предусмотрен провайдер OpenAI Compatible. Настройка по шагам:

  1. Нажмите на иконку профиля, откройте Settings и затем Model Providers.
  2. Выберите провайдера OpenAI Compatible.
  3. В поле Base URL укажите https://api.zukko.pro/v1.
  4. В поле API Key вставьте ключ fetch_... из кабинета.
  5. Нажмите Save.

Эти же значения можно передать переменными окружения: OPENAI_COMPATIBLE_BASE_URL и OPENAI_COMPATIBLE_API_KEY. После сохранения Langflow проверяет подключение и находит модели через эндпоинт /v1/models, а Zukko отдаёт его по адресу GET https://api.zukko.pro/v1/models. Найденные модели появятся в списке языковых моделей; включите нужные, затем выбирайте их в компонентах Language Model или Agent, выбрав провайдера OpenAI Compatible.

Названия пунктов меню могут отличаться в вашей версии. Если провайдера OpenAI Compatible у вас нет, сначала обновите Langflow, а в крайнем случае используйте собственный компонент на Python (в документации есть раздел про такие компоненты) и сверьтесь с документацией вашей версии на docs.langflow.org.

Подключаем шлюз в LangChain

В коде это пара строк. На Python:

bash
import os
from langchain_openai import ChatOpenAI

llm = ChatOpenAI(
    model="gpt-6.1-sol",
    base_url="https://api.zukko.pro/v1",
    api_key=os.environ["ZUKKO_API_KEY"],
)
print(llm.invoke("Назови три плюса визуальных конструкторов").content)

В JavaScript адрес задаётся в configuration.baseURL. Подробные примеры для обеих версий собраны в статье о подключении LangChain к шлюзу. Адрес в обоих случаях заканчивается на /v1, а параметры запросов описаны в справочнике Chat Completions.

Влияет ли выбор на стоимость

Сам по себе выбор между конструктором и кодом цену токенов не меняет: платите вы за токены модели. Меняется то, насколько прозрачен расход. В визуальном потоке легко добавить лишний блок с моделью и не заметить, что он вызывается на каждое сообщение.

Пример. В потоке три вызова gpt-6.1-sol на каждое сообщение пользователя, в каждом 1 200 токенов входа и 200 выхода. Цены на 18 октября 2026: вход 0.27, выход 1.32 за 1M токенов.

  • вход: 3 600 × 0.27 / 1 000 000 = $0.000972;
  • выход: 600 × 1.32 / 1 000 000 = $0.000792;
  • итого $0.001764 за сообщение, или около $1.76 за 1 000 сообщений.

Если один из трёх вызовов можно отдать модели подешевле, расход сократится. Посмотреть фактические списания можно в разделе «Использование» кабинета, а ключу на время экспериментов лучше поставить дневной лимит.

Аналоги и соседние инструменты

Если вы ищете, чем ещё можно заменить LangChain, посмотрите на другие библиотеки: LlamaIndex (акцент на данных и поиске), Vercel AI SDK (для TypeScript и веб-приложений), Semantic Kernel (экосистема .NET и Java) и CrewAI (команды агентов). Среди визуальных инструментов рядом стоят Flowise, Dify и n8n. Flowise и n8n нередко сравнивают между собой: Flowise ближе к сборке LLM-приложений из блоков, n8n — к автоматизации процессов между сервисами. Какой из них подойдёт именно вам, лучше решить по документации каждого и небольшому пробному проекту.

Частые вопросы

Можно ли начать в Langflow, а потом перейти на LangChain?

Да, это распространённый путь: логика потока (какие блоки и в каком порядке) переносится в код вручную. Заранее продумайте, какие части потока вы захотите покрыть тестами.

Нужен ли для Langflow отдельный ключ или платная подписка Zukko?

Нет подписки: у Zukko единый баланс в долларах и оплата за токены. Ключ fetch_... вставляется в настройки провайдера, как любой другой API-ключ.

Что делать, если Langflow не находит модели?

Проверьте, что Base URL заканчивается на /v1 и сервер Langflow имеет выход в интернет: список моделей шлюз отдаёт без проверки ключа, поэтому при пустом списке дело почти всегда в адресе или сети. Ключ и баланс проверяются при первом вызове модели: ответ 401 означает неверный ключ, 402 — нехватку баланса.

Работает ли это из России?

Да: и Langflow, и скрипт на LangChain ходят в шлюз Zukko по одному ключу, а баланс пополняется через СБП, картой MasterCard или криптой. Настройки Langflow и код LangChain от способа оплаты не зависят.

Если хотите попробовать оба подхода, создайте ключ в кабинете и подключите его сначала в Langflow, а потом в короткий скрипт на Python.

zukko

Платите в 25×
меньше

за Claude Code & ChatGPT

Один ключ fetch_* и base URL api.zukko.pro — в Cursor, Claude Code, Codex и любом SDK.

Langflow vs LangChain: что выбрать и как подключить API · Zukko