目录
[2.拉取 LangFlow 官方源码(核心步骤)](#2.拉取 LangFlow 官方源码(核心步骤))
前言
最近在研究langflow架构,并致力于将langflow工作流与现有智能体中台项目融合,由于langflow采用MIT协议,所以可自由定制化开发。
经过一段时间的开发和体验,苦读官方文档和翻墙查找资料,综合体验下来,一个单词形容**"Freedom",**真的太自由了,什么组件都可以自己进行开发和修改,完全定制化开发,就连官方自己提供的组件,你也可以进行修改来适配自己的需求,虽然说只能应用于当前的工作流,但是完全可以后期开发一个发布功能,然后当作一个通用的组件来供其他工作流 使用。
当然这个数据绑定模式和Dify的完全不同,Langflow 连线后端口被绑定为 "上游输出",UI 输入框会被禁用;Dify 是 "变量引用",可以同时保留手动输入和上游传入;对于之前的习惯了使用Dify的人来说,刚上手使用Langflow时简直是太痛苦了,包括我,但是它的组件开发太灵活又弥补了这一点,但说到底还是需要开发的,所以它的上手难度是相对较高的,想要定制化开发组件还是需要一定的代码知识,不过现在ai这么发达,直接把一个组件demo示例发给ai让它仿照这样的格式给你开发出一个对应的组件,准确率还是很高的,还是非常爽的这点,还有很多就后面慢慢再说吧。。。
LangFlow启动
LangFlow 分为前端(React)和后端(Python/FastAPI),安装需要分别配置前后端环境,再启动服务,全程不复杂,就是步骤需要按顺序来。
1.环境准备
这一步是基础,必须先装好,不然后面会报各种错,我把我能运行的环境列举下来
- Python 环境: 3.12.7(>=3.10即可)
- Node.js 环境: v22.14.0(>=20 即可)
- Git:用于拉取官方源码(没有的话直接下载 zip 包也可以)
- 操作系统:Windows / Mac / Linux 通用,步骤完全一致
检查方式(终端输入命令):
python --version # 查看Python版本
node -v # 查看Node版本
git --version # 查看Git版本
任意一个没安装,先去官网装好,再继续下一步。
2.拉取 LangFlow 官方源码(核心步骤)
官方推荐用源码安装
-
打开你的终端
-
选择一个存放代码的文件夹,执行克隆命令:
克隆完成后,进入源码根目录:
cd langflow
如果没有 Git,直接打开官网 https://github.com/langflow-ai/langflow 点击「Code」→「Download ZIP」,解压后打开文件夹即可。
可能GitHub有时候打不开,需要有一些使用魔法的能力,不过你既然能用到langflow,我想你肯定也不会缺魔法(手动狗头)
3.下载uv
打开你的终端(CMD/PowerShell/Mac 终端 / Linux),执行下面对应系统的安装命令:
Windows
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
Mac / Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
安装完成后,关闭终端重新打开,让环境变量生效。
验证是否安装成功:
uv --version
出现版本号就说明成功了。
4.启动前端
LangFlow 的网页 UI 是前端项目,需要单独安装依赖、打包:
进入前端文件夹:
cd src/frontend
安装前端依赖包:
npm install
打包前端静态文件(如果想在prod环境运行必须要打包,否则开发模式启动加载很慢):
npm run build
打包完成后,会生成build文件夹,这就是前端界面的静态资源。
在src/fronted目录下,直接执行
npm start
此时便以开发模式启动了,若想使用生产模式启动,则执行
npm run serve
此时加载速度会更快
我在服务器上运行的话,一般使用pm2来运行,具体如下:
bash
#如果在服务器上,nohup npm start 会很不稳定,经常容易挂掉,使用如下启动
npm install -g pm2
pm2 start "npm run serve -- --port 8500 --host" --name langflow-front
启动成功界面:

我换了端口和地址了,正常什么也不改的情况下端口应该是7860
5.启动后端
再启动一个终端,来到项目的根目录langflow
执行命令
bash
uv run langflow run --backend-only
此时便会自动安装依赖,需要就等一会,这样安装好以后,直接访问前端的地址就好,
后端启动成功界面:

其实官网有一个一行就启动的命令,但是好像并不能直接运行,需要将前端打包好后拷贝到后端中的fronted目录中,比较繁琐,我个人还是认为这样运行会更加方便一些
6.更改.env文件
你会在项目根目录下找到一个.env.example文件,这是对应的环境配置,可以配置数据库地址,日志和上传的文件存储位置,后端接口前缀等,我就不一个一个详细解释了,直接抛给AI问即可
你需要做的是拷贝一份.env.example 并重命名为.env,这是让整个配置生效的文件,修改其中你认为需要修改的地方,我认为最需要的地方是数据库地址,Langflow默认使用SQLlite来作为存储的,一般我们需要化成postgresql或mysql
由于我进行langflow开发加了很多配置,我也弄不清哪个是原本自带的,哪个是我自己加的了,就先这样大概的介绍下吧
然后你就会进入首页,点击右上角的create Flow,创建一个workflow,由于我开发的需求影响原因,这个首界面已经被我去了,我暂时无法给你们截图看效果,但是里面还是可以看的
如下图所示,你能看到中文是因为我自己手动翻译的,langflow本身是只支持英文不支持其他语言的,需要自己来汉化。

7.部署期间遇到的问题汇总
1.启动项目后,发现加载界面非常慢,一直在转圈
1.检查前端的启动方式:是否是npm start以开发模式启动的;如果是的话,切换为生产模式启动
2.检查后端服务是否启动
3.打开F12控制台,观察前端接口访问的后端地址是否是我们指定的后端地址
2.如何修改端口号?
如果修改后端端口启动,需要从.env文件中修改,如要修改为8501
LANGFLOW_PORT=8501修改前端vite代理转发的接口,如要转发到后端8501端口
langflow-main\src\frontend\vite.config.mts代码片段:
const target = env.VITE_PROXY_TARGET || PROXY_TARGET || "http://localhost:7860";所以你有三种修改方式
- src/frontend/src/customization/config-constants.ts ,修改其中的PROXY_TARGET = "http://localhost:8501";
- 最后http://localhost:7860 默认值改为 8501
- 修改.env文件(不过需要在web目录下再新建一个.env文件)
这便是lanflow的安装和部署所有内容,下一张将讲一下如何使用,以及如何开发组件,含金量绝对满满,当然也可以docker部署,这个后续再更新吧