Langflow:拖拽式构建多智能体与 RAG 应用
📖 简介
📝 详细介绍
开篇
这篇教程带你从零跑通 Langflow,最终成果是在浏览器里用拖拽方式搭出一个「网页文档问答」RAG 应用——粘贴一个网页链接,就能用自然语言向它提问。
前置条件
- Python 3.10+:Langflow 官方支持 3.10 到 3.13,低于 3.10 会直接报依赖错误
- Git:用于拉取源码和主分支
- uv(推荐):Python 依赖管理工具,比 pip 快一个量级,没有也可以,教程里会备选
- 4GB 可用内存:Langflow + Python 解释器 + 组件依赖,内存低于 3GB 启动容易卡死
- OpenAI API Key:Demo 里的 LLM 和 Embedding 用的是 OpenAI 接口,用其它模型也可以但需要改配置
- 浏览器:Chrome、Edge、Firefox 都行,只访问本机地址,对网络无特殊要求
安装部署
1. 安装
拉到源码后直接用 uv 安装依赖,不用单独建虚拟环境,uv 会帮你处理。
git clone https://github.com/langflow-ai/langflow.git
cd langflow
uv sync --extra all
如果没装 uv,用 pip 也是一样的效果(慢一些):
pip install -e .[all]
2. 初始化
第一次启动前需要初始化配置目录和默认数据库文件,Langflow 默认把数据放在 ~/.langflow。
uv run python -m langflow setup
这一步会自动创建数据库文件、生成本地加密密钥、加载内置组件。
3. 启动
直接 run,不加参数会用默认配置。
uv run python -m langflow run
看到 Application startup complete 后,浏览器打开 http://localhost:7860,创建项目页就出来了。
第一个 Demo:网页文档问答
这个最小 RAG 流程只有 6 个节点,核心思路是:拉取网页文本 → 切分 → 向量化 → 存入向量库 → 检索 → 回答。整个过程不用写业务代码。
1. 新建项目
这一步要做什么:进入工作区后手动建一个空白项目。
点击右上角「New Project」→ 选择「Blank Project」→ 命名为 rag-demo
预期输出:画布上只有一个 Input 节点,右侧有组件面板。
2. 拉取网页内容
这一步要做什么:拖入 URL 组件(在 Data 分类下),填一个真实可访问的网页地址,比如维基百科的 Langflow 词条。
从左侧组件面板拖入「URL」
右侧属性面板填:
URL: https://en.wikipedia.com/wiki/Langflow
Output Type: Text
预期输出:组件底部预览区域出现大段从网页提取的文本。
3. 文本切分
这一步要做什么:拖入 Split Text 组件,将长文本切成 500 字符左右的块,便于检索。
拖入「Split Text」
连接方式:URL 的 Text 输出 → Split Text 的 Input
参数:
chunk_size: 500
chunk_overlap: 80
预期输出:该组件输出侧显示 chunks: 42(具体数字取决于网页长度)。
4. 向量化并存入向量库
这一步要做什么:拖入 OpenAI Embeddings 和 Astra DB 组件,把每个文本块转成向量并写入向量数据库。
拖入「OpenAI Embeddings」→ 模型选 text-embedding-3-small
拖入「Astra DB Vector Store」→ 连接方式:
Split Text chunks → Astra DB Vector Store input
OpenAI Embedding → Astra DB Vector Store embedding
Astra DB 参数:
Database Key:你的 token(在 datastax.com 免费创建)
Table Name:langflow_test
预期输出:Astra DB 组件状态变成「成功」,表中出现 42 条带向量的记录。
5. 搭建问答链
这一步要做什么:把检索结果交给 LLM,让它基于上下文回答用户提问。
拖入一个「Chat Input」和「Chat Output」
拖入一个「OpenAI」模型组件,模型选 gpt-4o-mini
在 Astrar DB 组件上点选「Retriever」模式
连接方式:
Chat Input prompt → OpenAI prompt
Astra DB Retriever → OpenAI rag_retriever
OpenAI output → Chat Output
6. 运行并测试
这一步要做什么:点击右上角 Playground 按钮,在前端输入问题验证效果。
点击紫色 Playground 按钮
在聊天框输入:What is Langflow used for?
预期输出:回答会引用刚才索引的维基百科内容,而不是直接从模型知识库拿答案,比如回复里会出现「Langflow is a low-code tool for building agentic workflows...」这种来自网页的表述。
配置与调优
1. 调节 chunk 参数提升召回质量
chunk_size 决定了检索的最小单元。太长会混入无关信息,太短会丢掉语义。默认 500 针对大多数英文网页够用,如果回答明显跑题,把 size 降到 300、overlap 降到 40,再试一次。
2. 换用更好的 Embedding 模型
OpenAI 的 text-embedding-3-small 性价比高但效果一般,如果做专业领域问答,换成大模型或本地模型(如 Ollama 的 nomic-embed-text),在 Embedding 组件里直接切换就行。
3. 开启缓存
在设置界面打开「Cache Flows」后,相同输入会直接打缓存,在单元测试阶段能省下不少 API 费用。注意保存功能依赖数据库,缓存不会持久化到磁盘。
常见坑与排错
| 报错信息 | 原因 | 解决办法 |
|---|---|---|
ModuleNotFoundError: No module named 'langflow' | 没有在项目的虚拟环境里执行命令 | 在项目根目录执行 uv run python -m langflow run |
OpenAIError: 401 Incorrect API key | API Key 填错或环境变量没生效 | 在组件里直接粘贴 Key,不要依赖 .env 文件;检查 Key 是否有额度 |
Connection error writing to Astra DB | 向量库配置里 Database Key 填成了普通密钥 | 需要的是 DataStax 服务的 Application Token(AstraCS: 开头),不是 Cassandra 用户名密码 |
Chunking timeout | Tier 内存不足,split 大量数据时进程被 kill | 把 chunk_size 调到大块(如 1000)减少分块数量,或升级机器 |
下一步
跑通这个最小 Demo 之后,往下走三个方向:
- 加一个 Agent 节点:让 LLM 主动选择调用检索还是上网搜,形成自主决策链路
- 换向量库:把 Astra DB 换成本地 ChromaDB,体验完全本地化部署的 RAG 集群
- 做带身份验证的多人版本:用 Langflow 自带的 Hosted Store 把 Flow 分享给同事,学习权限配置
任何一步卡住了,先在官网搜 langflow-ai/langflow/issues,这个社区比一般开源项目活跃得多。
AI 项目推荐
智能体- 标签
- #可视化 #多智能体 #RAG #低代码
- 浏览
- 👁️ 41
- 发布日期
- 2026-08-15