Flowise:用拖拽方式构建 LangChain 应用流
Flowise 低代码 LLM 流:零基础拖拽构建 LangChain 应用
概述
Flowise 是一个开源的、低代码/无代码工具,让你通过可视化拖拽的方式构建基于 LangChain 的 LLM 应用流。无需编写复杂代码,即可快速搭建问答机器人、文档分析、API 链、多代理协作等高级 AI 应用。
本教程将带你从安装开始,通过三个渐进式项目,掌握 Flowise 的核心功能与最佳实践。
1. 环境准备与安装
1.1 安装 Node.js
Flowise 基于 Node.js 构建,确保你的系统已安装 Node.js 18.15.0 或更高版本。
验证安装:
node -v
npm -v
1.2 安装 Flowise
推荐使用 npm 全局安装,便于在终端直接调用。
npm install -g flowise
安装完成后,启动 Flowise:
npx flowise start
首次启动时,Flowise 会下载必要依赖并初始化数据库。看到以下输出表示成功:
Flowise UI is listening on http://localhost:3000
1.3 访问管理界面
打开浏览器,访问 http://localhost:3000 。你将看到 Flowise 的主控台,所有聊天流、Agent 流、市场(Marketplace)等管理功能都集中在这里。
提示: Flowise 同时提供 Docker 部署方式,适合生产环境。参见官方文档了解详细配置。
2. 第一个对话流:构建“客服助手”
2.1 创建新聊天流
- 点击界面左侧的 Chatflows 标签。
- 点击右上角的 Add New 按钮,弹窗中输入名称为
CustomerServiceBot。 - 进入画布编辑页面。
2.2 认识节点与画布
画布左侧是节点面板,包含多个类别:Agent、Chains、Chat Models、Document Loaders、Embeddings、LLMs、Memory、Tools、Vector Stores 等。每个节点代表一种 LangChain 组件,通过拖拽到画布并连线,即可组成一条处理流。
2.3 拖拽构建基础对话流
目标: 创建一个带有记忆的对话机器人,能回答用户咨询。
- 从 Chat Models 类别中,拖拽 ChatOpenAI 到画布。
- 点击节点,在右侧配置面板中填入你的 OpenAI API Key,选择模型为
gpt-3.5-turbo,温度保持默认。
- 点击节点,在右侧配置面板中填入你的 OpenAI API Key,选择模型为
- 从 Memory 类别拖拽 Buffer Memory 到画布。
- 从 Chains 类别拖拽 Conversation Chain 到画布。
- 按以下顺序连线:
ChatOpenAI输出 →Conversation Chain的“Chat Model”输入Buffer Memory输出 →Conversation Chain的“Memory”输入
- 最后,将 Conversation Chain 节点的“Chain”输出连接到画布右侧的 End 节点(或自动吸附)。
- 点击右上角 Save 保存流。
2.4 测试与对话
- 点击右上角的 Upsert(紫色按钮)或聊天图标,进入测试聊天窗口。
- 输入“你好,我想咨询退货流程”,Flowise 会调用 OpenAI 模型并利用记忆给出回答。
- 你可以继续追问,观察机器人是否能记住上下文。
3. 进阶流:基于文档的问答(RAG)
3.1 场景说明
很多企业需要让 AI 基于内部知识库回答问题。我们将构建一个文档问答流,能读取 PDF、TXT 文件并给出带来源引用的答案。
3.2 添加文档加载与向量存储
- 新建一个聊天流,命名为
DocQA。 - 加载文档:
- 拖拽 Document Loaders 下的 PDF Loader(或 Text Loader)到画布。
- 配置它的
PDF File Path为本地文件路径,如./data/company_faq.pdf。
- 文本分割:
- 拖拽 Text Splitters 下的 Recursive Character Text Splitter 到画布。
- 连线:
PDF Loader→Text Splitter。调整Chunk Size为 1000,Chunk Overlap为 200。
- 向量化与存储:
- 拖拽 Embeddings 下的 OpenAI Embeddings,填入相同的 API Key。
- 拖拽 Vector Stores 下的 Pinecone(或 Chroma 本地向量库)。以 Chroma 为例,拖拽 Chroma 节点,无需额外配置。
- 连线:
Text Splitter→OpenAI Embeddings→Chroma。 - Chroma 的“Document”输入接 Text Splitter 输出,“Embeddings”输入接 OpenAI Embeddings 输出。
3.3 创建问答链
- 拖拽 Chains 下的 Conversational Retrieval QA Chain 到画布。
- 连线:
ChatOpenAI输出 →Conversational Retrieval QA Chain的“Chat Model”输入Chroma输出 →Conversational Retrieval QA Chain的“Vector Store”输入
- 添加 Memory(可选):
- 拖拽 Buffer Memory 并连线到链的“Memory”输入,实现多轮记忆。
- 将链的输出连至 End。
3.4 配置返回来源
在 Conversational Retrieval QA Chain 的配置中,开启 Return Source Documents,这样答案会附带原始文档片段。
保存并 Upsert 后测试:“公司退货政策是什么?” Flowise 会从你的 PDF 中检索并回答,同时显示参考来源。
4. 高级流:构建 AI Agent(自动化工具调用)
4.1 Agent 与工具的概念
Agent 能根据用户输入自主决定调用哪些工具(如搜索、计算器、API),并组合结果回答。Flowise 提供了丰富的预置工具。
4.2 搭建搜索Agent
- 新建聊天流
SearchAgent。 - 拖拽 Agent 类别下的 OpenAI Function Agent 到画布。
- 添加工具:拖拽两个 Tools 节点:
- Serper(谷歌搜索,需在 Serper.dev 获取 API Key)
- Calculator(数学计算)
- 连线工具到 Agent 的“Tools”输入。
- 从 Chat Models 拖拽 ChatOpenAI 并连接至 Agent 的“Allowed Tools”或“Chat Model”(视 UI 版本而定)。
- 添加 Memory:
- 拖拽 Buffer Memory 并连线到 Agent。
- 保存 Upsert 并测试:
- “今天北京的天气怎样?” → Agent 调用 Serper 搜索。
- “计算 134 * 59” → Agent 调用 Calculator 工具。
- 结合上下文:“昨天北京的天气呢?” → 再次调用搜索并记住之前的对话。
5. 部署与分享
5.1 嵌入网站
在 Flowise 聊天流页面,点击右上角的 Share 按钮,可以获取可嵌入的 HTML <script> 代码。只需将其粘贴到你的网页中,即可生成一个聊天气泡窗口。
5.2 通过API调用
每个聊天流都提供一个预测 API。在流设置中找到 API Endpoint,使用 HTTP POST 调用:
curl http://localhost:3000/api/v1/prediction/<chatflow_id> \
-H "Content-Type: application/json" \
-d '{"question":"你的问题"}'
你可以将此 API 集成到自己的后端或第三方应用中。
5.3 导出与版本管理
Flowise 支持将聊天流导出为 JSON 文件,方便备份、分享或使用 Git 进行版本控制。在画布页面点击 Export 即可下载。
6. 实用技巧与最佳实践
- 使用市场模板:Flowise 内置 Marketplace,提供大量由社区贡献的预置流模板,直接克隆即可快速启动新项目。
- 环境变量管理:通过
.env文件统一管理 API Key 等敏感信息,使用$env语法在节点配置中引用。 - 调试模式:在聊天流页面开启 Verbose 选项,控制台会输出完整的链调用日志,便于排查问题。
- 本地模型支持:除了 OpenAI,Flowise 支持对接 Ollama、LocalAI 等本地 LLM,以及 HuggingFace 嵌入,适合对数据隐私有要求的场景。
- 使用变量和动态输入:在节点配置中可使用
{{input}}或自定义变量,使流更灵活。
7. 常见问题排查
| 问题 | 可能原因 | 解决 |
|---|---|---|
| 保存后无法 Upsert | 缺少必需连接或配置项未填 | 检查红色提醒的节点,确认必填字段(如 API Key) |
| 聊天窗口无响应 | 后端调用超时或 API 额度用尽 | 在 Flowise 服务终端查看错误日志,检查 OpenAI 账户余额 |
| 向量检索不准确 | 文本分割不合理或向量维度不匹配 | 调整 chunk 大小,确保嵌入模型与向量库一致 |
| Agent 不调用工具 | Agent 类型或工具描述不准确 | 使用 Function Agent,并查看工具节点描述是否清晰 |
结语
通过本教程,你已经掌握了从简单对话到文档问答、Agent 自动化的完整 Flowise 工作流。低代码的特性让原型构建变得前所未有的迅速,但你依然可以深入修改生成的 LangChain 底层代码,实现无边界定制。
开始用 Flowise 将你的 AI 创意快速落地吧!