Flowise 可视化 AI 工作流¶
为什么要学 Flowise¶
Flowise 是一个开源的拖拽式 AI 工作流构建工具,让你无需编写代码就能构建 LLM 应用、RAG 系统、AI Agent 和复杂的对话流程。通过可视化画布连接各种组件(模型、向量库、工具、解析器等),几分钟内就能搭建出完整的 AI 应用并通过 API 暴露给其他系统使用。对于快速原型开发和非工程师团队来说,Flowise 极大地降低了 AI 应用开发门槛。
核心概念¶
| 概念 | 白话解释 | 用途 |
|---|---|---|
| Canvas | 可视化画布 | 拖拽节点并连线构建工作流 |
| Node | 功能节点 | 每个组件(LLM、工具、解析器等) |
| Chatflow | 对话流 | 面向对话场景的工作流 |
| Agentflow | Agent 流 | 带决策和工具调用的智能体流 |
| Credential | 凭据管理 | 安全存储 API Key 等敏感信息 |
| Variable | 变量 | 在节点间传递数据 |
| API Endpoint | 接口 | 每个 Flow 自动生成 REST API |
安装配置¶
NPM 安装¶
npm install -g flowise
npx flowise start
# 带参数启动
npx flowise start --PORT=3000 --FLOWISE_USERNAME=admin --FLOWISE_PASSWORD=pass123
Docker 部署¶
docker run -d \
--name flowise \
-p 3000:3000 \
-v $PWD/flowise-data:/root/.flowise \
-e FLOWISE_USERNAME=admin \
-e FLOWISE_PASSWORD=admin123 \
flowiseai/flowise
Docker Compose(生产环境)¶
version: '3.8'
services:
flowise:
image: flowiseai/flowise
ports:
- "3000:3000"
volumes:
- flowise-data:/root/.flowise
environment:
- FLOWISE_USERNAME=admin
- FLOWISE_PASSWORD=${FLOWISE_PASSWORD}
- DATABASE_TYPE=postgres
- DATABASE_HOST=postgres
- DATABASE_PORT=5432
- DATABASE_USER=flowise
- DATABASE_PASSWORD=${DB_PASSWORD}
- DATABASE_NAME=flowise
- SECRETKEY_PATH=/root/.flowise
- LOG_LEVEL=info
depends_on:
- postgres
restart: unless-stopped
postgres:
image: postgres:16-alpine
environment:
- POSTGRES_USER=flowise
- POSTGRES_PASSWORD=${DB_PASSWORD}
- POSTGRES_DB=flowise
volumes:
- postgres-data:/var/lib/postgresql/data
restart: unless-stopped
volumes:
flowise-data:
postgres-data:
快速上手¶
构建第一个 Chatflow¶
- 打开
http://localhost:3000 - 点击 "Add New" 创建 Chatflow
- 从左侧面板拖入节点:
- ChatOpenAI / ChatOllama(LLM 节点)
- ConversationChain(对话链)
- BufferMemory(对话记忆)
- 连接节点:Memory → Chain ← LLM
- 点击保存,然后使用右上角的聊天测试
构建 RAG 问答流¶
步骤: 1. 拖入 PDF Loader 节点,上传文档 2. 拖入 Recursive Text Splitter 3. 拖入 In-Memory Vector Store + OpenAI Embeddings 4. 拖入 Conversational Retrieval QA Chain 5. 拖入 ChatOllama + Buffer Memory 6. 按逻辑连线
通过 API 调用¶
import requests
FLOW_ID = "your-chatflow-id" # 从 UI 复制
API_URL = f"http://localhost:3000/api/v1/prediction/{FLOW_ID}"
response = requests.post(API_URL, json={
"question": "文档中提到了哪些关键技术?",
"overrideConfig": {
"temperature": 0.5
}
})
print(response.json()["text"])
进阶用法¶
Agent Flow 构建¶
构建一个能搜索网页和执行代码的 Agent:
1. 拖入 Tool Agent 节点
2. 拖入工具节点:
- SerpAPI(网页搜索)
- Calculator(计算器)
- Custom Tool(自定义 API 调用)
3. 拖入 ChatModel
4. 连接:Tools → Agent ← LLM
自定义工具节点¶
// Custom Tool 的函数体
const fetch = require('node-fetch');
const response = await fetch('https://api.example.com/data', {
headers: { 'Authorization': `Bearer ${$vars.API_KEY}` }
});
const data = await response.json();
return JSON.stringify(data);
条件分支¶
嵌入到网站¶
<!-- Flowise 提供的嵌入聊天组件 -->
<script type="module">
import Chatbot from "https://cdn.jsdelivr.net/npm/flowise-embed/dist/web.js"
Chatbot.init({
chatflowid: "your-chatflow-id",
apiHost: "http://localhost:3000",
theme: {
button: { backgroundColor: "#3B81F6" },
chatWindow: {
welcomeMessage: "你好!有什么可以帮你的?",
backgroundColor: "#ffffff"
}
}
})
</script>
导出与版本管理¶
# 导出 Chatflow(JSON 格式)
curl http://localhost:3000/api/v1/chatflows/export/FLOW_ID \
-H "Authorization: Bearer token" \
-o chatflow-backup.json
# 导入
curl -X POST http://localhost:3000/api/v1/chatflows/import \
-H "Authorization: Bearer token" \
-F "file=@chatflow-backup.json"
Webhook 与事件¶
常见问题¶
Q: 节点连线报错"类型不匹配"?¶
确保输出类型和输入类型匹配。比如: - ChatModel 输出 → 需要连到接受 BaseChatModel 的输入 - VectorStore 输出 → 需要连到 Retriever 或接受 VectorStore 的输入
Q: 如何使用本地 Ollama 模型?¶
- 添加 ChatOllama 节点
- Base URL 填
http://localhost:11434(Docker 中用http://host.docker.internal:11434) - Model Name 填你已拉取的模型名
Q: 每次重启数据丢失?¶
确保正确挂载了数据卷。默认 SQLite 数据库在 ~/.flowise/。生产环境建议使用 PostgreSQL。
Q: 能否团队协作?¶
支持多用户:设置 FLOWISE_USERNAME 和 FLOWISE_PASSWORD。企业版提供更细粒度的权限控制。
Q: 性能问题怎么处理?¶
- 复杂 Flow 拆分为多个子 Flow
- 使用 Redis 缓存常见查询
- 向量库使用外部 Qdrant/Weaviate 替代 In-Memory
参考资源¶
- GitHub:https://github.com/FlowiseAI/Flowise
- 文档:https://docs.flowiseai.com/
- 模板市场:https://flowiseai.com/marketplace
- YouTube 教程:https://www.youtube.com/@FlowiseAI
- Discord:https://discord.gg/jbaHfsRVBW