# Flowise AI 代理构建器

## 概览

[Flowise](https://github.com/FlowiseAI/Flowise) 是一个开源的拖放工具，用于构建无需编写代码即可运行大型语言模型（LLM）的应用。拥有 35K+ GitHub 星标 和 超过 **500 万次 Docker Hub 拉取**，Flowise 已成为生态系统中部署最多的自托管 AI 工具之一。它使团队能够通过直观的可视界面创建聊天机器人、RAG 系统、AI 代理和自动化工作流——并在几分钟内将它们作为 REST API 端点部署。

Flowise 建立在 LangChain.js 之上，提供了一个基于节点的画布，您可以在其中连接组件：LLM、向量数据库、文档加载器、记忆存储、工具和代理。每个流程会自动生成可嵌入的聊天小部件和 API 端点，您可以将其集成到任何应用中。

**主要功能：**

* **拖放式流程构建器** — 可视化 LLM 编排，包含 100+ 预构建节点
* **聊天机器人创建** — 可嵌入的网站和应用聊天小部件
* **RAG 管道** — 可视化连接文档加载器、嵌入器和向量存储
* **多代理支持** — 构建具有工具使用和委派功能的代理层次结构
* **即时 API** — 每个流程都会生成一个 `/api/v1/prediction/<flowId>` 端点
* **LangChain 节点** — 完全访问 LangChain.js 生态系统
* **凭据管理器** — 集中管理 API 密钥、数据库连接

**为什么为 Flowise 选择 Clore.ai？**

Flowise 是一个轻量级的 Node.js 服务器——它负责编排，而不是计算。将其与 Clore.ai 配合可以实现：

* **本地模型推理** — 在同一 GPU 服务器上运行 Ollama 或 vLLM，消除 API 成本
* **私有文档处理** — 不会将数据发送到外部服务的 RAG 管道
* **持久部署** — 以 GPU 服务器价格提供始终在线的聊天机器人和 API 托管
* **大规模时具有成本效益** — 构建多租户聊天机器人平台而无需按调用的 API 费用
* **全栈 AI 托管** — Flowise + Ollama + Qdrant/Chroma 都在一台实惠的服务器上

***

## 要求

Flowise 本身是一个 Node.js 应用，对资源要求最低。仅在添加本地 LLM 后端时才需要 GPU。

| 配置                            | GPU     | 显存    | 内存     | 存储     | 预计价格            |
| ----------------------------- | ------- | ----- | ------ | ------ | --------------- |
| **仅 Flowise（外部 API）**         | 无       | —     | 2–4 GB | 10 GB  | \~$0.03–0.08/小时 |
| **+ Ollama（Llama 3.1 8B）**    | 速度      | 24 GB | 16 GB  | 40 GB  | \~$0.20/小时      |
| **+ Ollama（Mistral 7B + 嵌入）** | 速度      | 24 GB | 16 GB  | 30 GB  | \~$0.20/小时      |
| **+ Ollama（Qwen2.5 32B）**     | 512x512 | 24 GB | 32 GB  | 60 GB  | \~$0.35/小时      |
| **+ vLLM（生产）**                | 4 小时会话  | 80 GB | 64 GB  | 100 GB | \~$1.10/小时      |

> **注意：** Flowise 可在任何 Clore.ai 服务器上轻松运行。只有在希望进行本地免费推理时才需要 GPU。请参见 [GPU 比较指南](https://docs.clore.ai/guides/guides_v2-zh/kuai-su-ru-men/gpu-comparison).

**Clore.ai 服务器要求：**

* Docker 引擎（所有 Clore.ai 镜像预装）
* NVIDIA 容器工具包（仅用于 GPU/Ollama）
* 端口 3000 可访问（或在 Clore.ai 仪表板中映射）
* 至少 2 GB 空闲内存，10 GB 磁盘空间

***

## 快速开始

### 第 1 步：在 Clore.ai 上预订服务器

在 [Clore.ai 市场](https://clore.ai):

* 仅用于 API：任意服务器，筛选 RAM ≥ 4 GB
* 用于本地 LLM：筛选 GPU ≥ 24 GB 显存
* 确保模板中启用了 Docker

通过 SSH 连接：

```bash
ssh root@<server-ip> -p <ssh-port>
```

### 第 2 步：运行 Flowise（单条命令）

```bash
docker run -d \
  --name flowise \
  --restart unless-stopped \
  -p 3000:3000 \
  flowiseai/flowise
```

就是这样。Flowise 将在 `http://<server-ip>:3000` 在 20–30 秒内可用。

### 第 3 步：验证其是否正在运行

```bash
# 检查容器状态
docker ps | grep flowise

# 检查日志
docker logs flowise --tail 20

# 测试 API
curl http://localhost:3000/api/v1/chatflows
```

### 第 4 步：打开 UI

在浏览器中导航到 `http://<server-ip>:3000` 。

> **Clore.ai 端口映射：** 确保在 Clore.ai 服务器配置中转发端口 3000。进入服务器详细信息 → 端口 → 确认 `3000:3000` 已映射。有些模板默认仅开放 SSH。

***

## 配置

### 持久存储

挂载卷以便在容器重启后保留您的流程、凭据和上传内容：

```bash
mkdir -p /opt/flowise/{data,uploads,logs}

docker run -d \
  --name flowise \
  --restart unless-stopped \
  -p 3000:3000 \
  -v /opt/flowise/data:/root/.flowise \
  -v /opt/flowise/uploads:/app/uploads \
  -e DATABASE_PATH=/root/.flowise \
  -e APIKEY_PATH=/root/.flowise \
  -e SECRETKEY_PATH=/root/.flowise \
  -e LOG_PATH=/root/.flowise/logs \
  flowiseai/flowise
```

### 身份验证

使用用户名/密码保护您的 Flowise 实例：

```bash
docker run -d \
  --name flowise \
  --restart unless-stopped \
  -p 3000:3000 \
  -v /opt/flowise/data:/root/.flowise \
  -e FLOWISE_USERNAME=admin \
  -e FLOWISE_PASSWORD=$(openssl rand -base64 16) \
  -e FLOWISE_SECRETKEY_OVERWRITE=$(openssl rand -hex 32) \
  flowiseai/flowise
```

> **安全提示：** 在 Clore.ai 上公开暴露 Flowise 时始终设置凭据。没有身份验证时，任何拥有您服务器 IP 的人都可以访问您的流程和 API 密钥。

### 完整环境变量参考

```bash
docker run -d \
  --name flowise \
  --restart unless-stopped \
  -p 3000:3000 \
  -v /opt/flowise/data:/root/.flowise \
  -e PORT=3000 \
  -e FLOWISE_USERNAME=admin \
  -e FLOWISE_PASSWORD=your-secure-password \
  -e FLOWISE_SECRETKEY_OVERWRITE=your-secret-key \
  -e DATABASE_TYPE=sqlite \
  -e DATABASE_PATH=/root/.flowise \
  -e APIKEY_PATH=/root/.flowise \
  -e SECRETKEY_PATH=/root/.flowise \
  -e LOG_PATH=/root/.flowise/logs \
  -e LOG_LEVEL=info \
  -e TOOL_FUNCTION_BUILTIN_DEP=crypto,fs \
  -e TOOL_FUNCTION_EXTERNAL_DEP=moment,lodash \
  -e CORS_ORIGINS=* \
  -e IFRAME_ORIGINS=* \
  flowiseai/flowise
```

| 变量                            | 4s                               | 默认值              |
| ----------------------------- | -------------------------------- | ---------------- |
| `PORT`                        | Web 服务器端口                        | `3000`           |
| `FLOWISE_USERNAME`            | 管理员用户名（启用身份验证）                   | —（无身份验证）         |
| `FLOWISE_PASSWORD`            | 管理员密码                            | —                |
| `FLOWISE_SECRETKEY_OVERWRITE` | 用于凭据的加密密钥                        | 自动生成             |
| `DATABASE_TYPE`               | `sqlite` 或 `mysql` 或 `postgres`  | `sqlite`         |
| `DATABASE_PATH`               | SQLite 存储路径                      | `/root/.flowise` |
| `LOG_LEVEL`                   | `error`, `warn`, `info`, `debug` | `info`           |
| `TOOL_FUNCTION_BUILTIN_DEP`   | 代码节点中允许的 Node.js 内置模块            | —                |
| `TOOL_FUNCTION_EXTERNAL_DEP`  | 代码节点中允许的 npm 包                   | —                |
| `CORS_ORIGINS`                | API 的允许 CORS 源                   | `*`              |
| `IFRAME_ORIGINS`              | 允许的 iframe 嵌入来源                  | `*`              |

### Docker Compose（推荐）

官方 Flowise 仓库包含 Docker Compose 配置。这是 Clore.ai 推荐的方法：

```bash
# 下载官方 docker-compose.yml
curl -o /opt/flowise/docker-compose.yml \
  https://raw.githubusercontent.com/FlowiseAI/Flowise/main/docker/docker-compose.yml

cd /opt/flowise
```

或者使用 PostgreSQL 创建您自己的：

```yaml
# /opt/flowise/docker-compose.yml
version: "3.9"

services:
  flowise:
    image: flowiseai/flowise:latest
    restart: unless-stopped
    ports:
      - "3000:3000"
    environment:
      - PORT=3000
      - FLOWISE_USERNAME=${FLOWISE_USERNAME:-admin}
      - FLOWISE_PASSWORD=${FLOWISE_PASSWORD:-changeme}
      - FLOWISE_SECRETKEY_OVERWRITE=${SECRET_KEY}
      - DATABASE_TYPE=postgres
      - DATABASE_HOST=db
      - DATABASE_PORT=5432
      - DATABASE_USER=flowise
      - DATABASE_PASSWORD=flowise-secret
      - DATABASE_NAME=flowise
    volumes:
      - flowise-data:/root/.flowise
    depends_on:
      db:
        condition: service_healthy

  db:
    image: postgres:16-alpine
    restart: unless-stopped
    environment:
      - POSTGRES_USER=flowise
      - POSTGRES_PASSWORD=flowise-secret
      - POSTGRES_DB=flowise
    volumes:
      - pgdata:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U flowise"]
      interval: 10s
      timeout: 5s
      retries: 5

volumes:
  flowise-data:
  pgdata:
```

```bash
SECRET_KEY=$(openssl rand -hex 32) \
FLOWISE_PASSWORD=yourpassword \
docker compose -f /opt/flowise/docker-compose.yml up -d
```

***

## GPU 加速（本地 LLM 集成）

Flowise 负责编排——连接服务中的 GPU 承担繁重计算。

### Flowise + Ollama（推荐）

在同一 Clore.ai 服务器上运行 Ollama 并将 Flowise 连接到它：

```bash
# 第 1 步：以 GPU 访问权限启动 Ollama
docker run -d \
  --name ollama \
  --gpus all \
  --restart unless-stopped \
  -p 11434:11434 \
  -v ollama-models:/root/.ollama \
  ollama/ollama:latest

# 第 2 步：拉取模型
docker exec ollama ollama pull llama3.1:8b          # 聊天/代理 模型
docker exec ollama ollama pull nomic-embed-text     # 用于 RAG 的嵌入
docker exec ollama ollama pull mistral:7b           # 可选的聊天模型

# 第 3 步：以主机网络访问启动 Flowise
docker run -d \
  --name flowise \
  --restart unless-stopped \
  -p 3000:3000 \
  -v /opt/flowise/data:/root/.flowise \
  --add-host host.docker.internal:host-gateway \
  -e FLOWISE_USERNAME=admin \
  -e FLOWISE_PASSWORD=changeme \
  flowiseai/flowise
```

**在 Flowise UI 中：**

1. 创建一个新的 Chatflow
2. 添加 **Ollama** 节点（在 Chat Models 下）
   * 基础 URL： `http://host.docker.internal:11434`
   * 模型名称： `llama3.1:8b`
3. 添加 **OllamaEmbeddings** 节点（用于 RAG）
   * 基础 URL： `http://host.docker.internal:11434`
   * 模型名称： `nomic-embed-text`
4. 连接到您的向量存储（Chroma、FAISS、Qdrant）

> 查看完整的 [Ollama 指南](https://docs.clore.ai/guides/guides_v2-zh/yu-yan-mo-xing/ollama) 以获取模型下载和 GPU 设置。

### Flowise + vLLM（生产级别）

用于兼容 OpenAI 的高吞吐量服务：

```bash
# 启动 vLLM
docker run -d \
  --name vllm \
  --gpus all \
  --restart unless-stopped \
  -p 8000:8000 \
  --ipc=host \
  vllm/vllm-openai:latest \
  --model mistralai/Mistral-7B-Instruct-v0.3 \
  --gpu-memory-utilization 0.85

# 在 Flowise 中，使用带自定义基础 URL 的 ChatOpenAI 节点：
# 基础 URL: http://host.docker.internal:8000/v1
# OpenAI API Key:（任意值）
# 模型名称：mistralai/Mistral-7B-Instruct-v0.3
```

> 参见 [vLLM 指南](https://docs.clore.ai/guides/guides_v2-zh/yu-yan-mo-xing/vllm) 以获得量化和多 GPU 配置的相关信息。

### 构建仅本地的 RAG 聊天机器人

在 Clore.ai 上完成的 Flowise 流，零外部 API 调用：

| 节点 | 组件                                   | 设置                     |
| -- | ------------------------------------ | ---------------------- |
| 1  | PDF 文件加载器                            | 上传文档                   |
| 2  | 递归文本分割器                              | 分块：1000，重叠：200         |
| 3  | Ollama 嵌入                            | 模型： `nomic-embed-text` |
| 4  | 内存中向量存储                              | （或使用 Chroma 以持久化）      |
| 5  | Ollama 聊天                            | 模型： `llama3.1:8b`      |
| 6  | 会话检索式问答（Conversational Retrieval QA） | 链类型：Stuff              |
| 7  | 缓冲记忆                                 | 基于会话的记忆                |

将此导出为 API 并在任何网站上嵌入聊天小部件。

***

## 提示与最佳实践

### 1. 定期导出流程

在停止或切换 Clore.ai 服务器之前：

```bash
# 通过 API 导出所有流程
curl http://localhost:3000/api/v1/chatflows \
  -H "Authorization: Basic $(echo -n admin:password | base64)" \
  > /opt/flowise/backup-flows.json

# 或使用 UI：Chatflows → 导出全部
```

### 2. 使用嵌入小部件

每个 Flowise 聊天流程都会生成一个可用于生产的聊天小部件：

1. 打开您的 chatflow → 点击 **\</>** （嵌入）按钮
2. 复制脚本片段
3. 粘贴到任何 HTML 页面 — 即刻获得客户支持机器人

### 3. 安全管理 API 密钥

将所有 LLM API 密钥存储在 Flowise 的 **凭据** 面板中（不要在流程中硬编码）：

* 菜单 → 凭据 → 添加凭据
* 密钥使用以下方式加密： `FLOWISE_SECRETKEY_OVERWRITE`

### 4. 速率限制

对于面向公众的部署，在 Flowise 前通过 Nginx 或 Caddy 添加速率限制：

```bash
# 简单的 nginx 反向代理配置
docker run -d \
  --name nginx \
  -p 80:80 \
  -v /opt/flowise/nginx.conf:/etc/nginx/conf.d/default.conf:ro \
  --link flowise:flowise \
  nginx:alpine
```

### 5. 监控性能

```bash
# 实时资源监控
watch -n 3 'docker stats flowise ollama --no-stream'

# 检查 Flowise 日志中的错误
docker logs flowise --tail 50 -f

# 检查是否有流程被调用
docker logs flowise 2>&1 | grep "Prediction"
```

### 6. 备份 SQLite 数据库

```bash
# 创建带时间戳的备份
cp /opt/flowise/data/database.sqlite \
   /opt/flowise/backup-$(date +%Y%m%d-%H%M%S).sqlite

# 或使用 cron 自动化
echo "0 */6 * * * cp /opt/flowise/data/database.sqlite /opt/flowise/backup-\$(date +\%Y\%m\%d-\%H\%M\%S).sqlite" | crontab -
```

***

## # 使用固定种子以获得一致结果

### 容器立即退出

```bash
# 检查退出原因
docker logs flowise

# 常见原因：
# 1. 端口 3000 已被占用
lsof -i :3000
# 解决：使用不同端口
docker run ... -p 3001:3000 ...

# 2. 卷权限错误
ls -la /opt/flowise/
chown -R 1000:1000 /opt/flowise/data
```

### UI 显示 “连接失败”

```bash
# 验证 Flowise 是否确实在运行
docker ps -a | grep flowise
docker stats flowise --no-stream

# 检查是否绑定到所有接口
docker logs flowise | grep "listening"
# 应显示：Server is listening at port 3000

# 首先在本地测试
curl -s http://localhost:3000/api/v1/chatflows | head -20
```

### 流程出现 LLM 错误

```bash
# 从 Flowise 容器测试 Ollama 连接性
docker exec flowise wget -qO- http://host.docker.internal:11434/api/tags

# 如果失败，验证是否包含 --add-host：
docker inspect flowise | grep -A5 ExtraHosts

# 测试 Ollama 是否在运行
curl http://localhost:11434/api/tags
```

### 更新时的数据库迁移错误

```bash
# 在升级 Flowise 版本时，先备份
cp -r /opt/flowise/data /opt/flowise/data-backup-$(date +%Y%m%d)

# 拉取新镜像
docker pull flowiseai/flowise:latest

# 使用相同卷重启（迁移会自动运行）
docker stop flowise && docker rm flowise
docker run -d --name flowise ... flowiseai/flowise:latest
docker logs flowise -f  # 观察迁移输出
```

### 重启后凭据解密错误

```bash
# 如果您未设置 FLOWISE_SECRETKEY_OVERWRITE，则重启时会生成新密钥
# 始终显式设置它：
-e FLOWISE_SECRETKEY_OVERWRITE=your-stable-32-char-secret

# 恢复方法：在设置稳定密钥后在 UI 中重新输入凭据
```

### 聊天小部件 CORS 错误

```bash
# 允许特定来源（在生产环境中将 * 替换为您的域）
-e CORS_ORIGINS=https://yourdomain.com,http://localhost:3000
-e IFRAME_ORIGINS=https://yourdomain.com
```

***

## 延伸阅读

* [Flowise GitHub 仓库](https://github.com/FlowiseAI/Flowise) — 源代码、发布、官方 docker-compose
* [Flowise 文档](https://docs.flowiseai.com) — 节点参考、API 文档、部署指南
* [Flowise Discord](https://discord.gg/jn8n7yb9N) — 社区模板、流程共享、支持
* [Docker Hub：flowiseai/flowise](https://hub.docker.com/r/flowiseai/flowise) — 500 万+ 次拉取，可用标签
* [Clore.ai 上的 Ollama](https://docs.clore.ai/guides/guides_v2-zh/yu-yan-mo-xing/ollama) — 运行本地 LLM 以免费进行 Flowise 推理
* [Clore.ai 上的 vLLM](https://docs.clore.ai/guides/guides_v2-zh/yu-yan-mo-xing/vllm) — 为 Flowise 提供生产级别的 LLM 服务
* [GPU 比较指南](https://docs.clore.ai/guides/guides_v2-zh/kuai-su-ru-men/gpu-comparison) — 为您的技术栈选择合适的 GPU
* [LangChain.js 文档](https://js.langchain.com/docs/) — 底层框架参考
