跳转至

Flowise 可视化 AI 工作流

为什么要学 Flowise

Flowise 是一个开源的拖拽式 AI 工作流构建工具,让你无需编写代码就能构建 LLM 应用、RAG 系统、AI Agent 和复杂的对话流程。通过可视化画布连接各种组件(模型、向量库、工具、解析器等),几分钟内就能搭建出完整的 AI 应用并通过 API 暴露给其他系统使用。对于快速原型开发和非工程师团队来说,Flowise 极大地降低了 AI 应用开发门槛。


核心概念

概念白话解释用途
Canvas可视化画布拖拽节点并连线构建工作流
Node功能节点每个组件(LLM、工具、解析器等)
Chatflow对话流面向对话场景的工作流
AgentflowAgent 流带决策和工具调用的智能体流
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

  1. 打开 http://localhost:3000
  2. 点击 "Add New" 创建 Chatflow
  3. 从左侧面板拖入节点:
  4. ChatOpenAI / ChatOllama(LLM 节点)
  5. ConversationChain(对话链)
  6. BufferMemory(对话记忆)
  7. 连接节点:Memory → Chain ← LLM
  8. 点击保存,然后使用右上角的聊天测试

构建 RAG 问答流

节点连接逻辑:

文档加载器 → 文本分割器 → 向量存储(嵌入时)
用户问题 → 检索器 → 对话检索链 ← LLM
                            聊天记忆

步骤: 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);

条件分支

使用 IfElse 条件节点:
- 条件:用户问题是否包含"价格"
- True 分支 → 产品数据库检索
- False 分支 → 通用知识库问答

嵌入到网站

<!-- 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 与事件

# 配置 Webhook 通知
# 在 Flow 中使用 Webhook 节点
# 支持:
# - 消息发送后回调
# - Agent 工具调用日志
# - 错误告警

常见问题

Q: 节点连线报错"类型不匹配"?

确保输出类型和输入类型匹配。比如: - ChatModel 输出 → 需要连到接受 BaseChatModel 的输入 - VectorStore 输出 → 需要连到 Retriever 或接受 VectorStore 的输入

Q: 如何使用本地 Ollama 模型?

  1. 添加 ChatOllama 节点
  2. Base URL 填 http://localhost:11434(Docker 中用 http://host.docker.internal:11434
  3. Model Name 填你已拉取的模型名

Q: 每次重启数据丢失?

确保正确挂载了数据卷。默认 SQLite 数据库在 ~/.flowise/。生产环境建议使用 PostgreSQL。

Q: 能否团队协作?

支持多用户:设置 FLOWISE_USERNAMEFLOWISE_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