> For the complete documentation index, see [llms.txt](https://docs.clore.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.clore.ai/guides/guides_v2-zh/ai-ping-tai-yu-zhi-neng-ti/langflow.md).

# Langflow 可视化 AI 构建器

在 Clore.ai 上部署 Langflow——在经济实惠的 GPU 云基础设施上，通过拖拽式无代码界面构建并运行可视化 AI 流水线、RAG 系统和多智能体工作流。

## 概览

[Langflow](https://github.com/langflow-ai/langflow) 是一个开源、低代码平台，可通过可视化拖放界面构建 AI 应用。它拥有 55K+ GitHub stars 和快速增长的社区，已成为无需编写复杂样板代码即可进行 LLM 驱动工作流原型设计和部署的首选工具之一。

Langflow 构建于 LangChain 之上，提供一个图形化编辑器，你可以通过在节点之间画线来连接组件——LLM、向量存储、文档加载器、检索器、代理、工具。生成的流水线可以导出为 API 端点、作为模板共享，或嵌入到你的应用中。

**主要能力：**

* **可视化 RAG 构建器** — 在几分钟内连接文档加载器 → 嵌入 → 向量存储 → 检索器
* **多智能体工作流** — 将多个具备记忆、工具和决策逻辑的 AI 代理串联起来
* **LangChain 集成** — 通过 UI 节点访问完整的 LangChain 生态系统
* **组件市场** — 社区贡献的数十种服务组件
* **以 API 为先** — 每个流程都会自动生成一个 REST API 端点
* **记忆与状态** — 内置对话记忆、会话管理

**为什么选择 Clore.ai 来运行 Langflow？**

Langflow 的计算需求很低——它只是一个负责工作流编排的 Python Web 服务器。不过，Clore.ai 可以开启强大的用例：

* **自托管嵌入** — 在 GPU 上运行本地嵌入模型（nomic-embed、BGE），实现快速、免费的向量生成
* **本地 LLM 后端** — 将 Langflow 连接到运行在同一服务器上的 Ollama 或 vLLM
* **私有数据管道** — 在不将数据发送到外部 API 的情况下处理敏感文档
* **成本优化** — 用免费的本地推理替代昂贵的 OpenAI 嵌入调用
* **持久化工作流** — 在专用服务器上运行长时间执行的流程（而不是短暂的云函数）

***

## 需求

Langflow 本身很轻量，并且基于 CPU。GPU 是可选的，但可启用免费的本地 LLM/嵌入推理。

| 配置                         | GPU       | 显存    | 内存    | 存储     | 预估价格                              |
| -------------------------- | --------- | ----- | ----- | ------ | --------------------------------- |
| **仅 Langflow（API 后端）**     | 无需        | —     | 4 GB  | 10 GB  | 约 $0.03–0.08/小时                   |
| **+ 本地嵌入（nomic-embed）**    | RTX 3090  | 24 GB | 8 GB  | 20 GB  | $0.07–0.21/小时                     |
| **+ Ollama（Llama 3.1 8B）** | RTX 3090  | 24 GB | 16 GB | 40 GB  | $0.07–0.21/小时                     |
| **+ Ollama（Qwen2.5 32B）**  | RTX 4090  | 24 GB | 32 GB | 60 GB  | $0.14–0.42/小时                     |
| **+ vLLM（生产级 RAG）**        | A100 80GB | 80 GB | 64 GB | 100 GB | [裸机](https://clore.ai/bare-metal) |

> 如需比较 Clore.ai 上的 GPU 选项，请参阅 [GPU 比较指南](/guides/guides_v2-zh/ru-men-zhi-nan/gpu-comparison.md).

**Clore.ai 服务器上的软件要求：**

* Docker Engine（所有 Clore.ai 镜像均预装）
* NVIDIA Container Toolkit（GPU 镜像预装，仅本地 LLM 需要）
* Langflow 镜像和流程数据需要 10+ GB 可用磁盘空间
* 需要出站互联网访问（用于拉取 Docker 镜像并访问外部 API）

***

## 快速开始

### 第 1 步：连接到你的 Clore.ai 服务器

在 [Clore.ai 市场](https://clore.ai)上预订服务器。仅用于 Langflow 时，任何拥有 ≥4 GB RAM 的服务器都可以。通过 SSH 连接：

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

### 第 2 步：使用 Docker 运行 Langflow

最简单的部署——一条命令即可：

```bash
docker run -d \\
  --name langflow \
  --restart unless-stopped \
  -p 7860:7860 \
  langflowai/langflow:latest
```

等待约 30–60 秒启动，然后访问 `http://<server-ip>:7860`

### 第 3 步：在 Clore.ai 上开放 7860 端口

在 Clore.ai 仪表板中，进入你的服务器 → 端口部分 → 确保 `7860` 已映射。如果使用自定义模板，请在启动服务器前将 `7860:7860` 添加到你的端口配置中。

### 第 4 步：首次启动

首次访问时，Langflow 将：

1. 显示欢迎界面并要求创建账户（或跳过）
2. 提供一组入门模板（RAG、聊天机器人、代理）
3. 打开可视化画布编辑器

你已准备好构建你的第一个流程！

***

## 配置

### 持久化数据存储

默认情况下，Langflow 会将流程和数据存储在容器内。挂载卷以便在重启后保留：

```bash
mkdir -p /opt/langflow/data

docker run -d \\
  --name langflow \
  --restart unless-stopped \
  -p 7860:7860 \
  -v /opt/langflow/data:/app/langflow \
  -e LANGFLOW_DATABASE_URL=sqlite:////app/langflow/langflow.db \
  langflowai/langflow:latest
```

### 环境变量参考

```bash
docker run -d \\
  --name langflow \
  --restart unless-stopped \
  -p 7860:7860 \
  -v /opt/langflow/data:/app/langflow \
  -e LANGFLOW_HOST=0.0.0.0 \
  -e LANGFLOW_PORT=7860 \
  -e LANGFLOW_DATABASE_URL=sqlite:////app/langflow/langflow.db \
  -e LANGFLOW_SECRET_KEY=your-secret-key-here \
  -e LANGFLOW_AUTO_LOGIN=false \
  -e LANGFLOW_SUPERUSER=admin \
  -e LANGFLOW_SUPERUSER_PASSWORD=your-password \
  -e LANGFLOW_WORKERS=2 \
  -e LANGFLOW_LOG_LEVEL=info \
  langflowai/langflow:latest
```

| 变量                            | 描述             | 默认值         |
| ----------------------------- | -------------- | ----------- |
| `LANGFLOW_HOST`               | 绑定地址           | `0.0.0.0`   |
| `LANGFLOW_PORT`               | Web 服务器端口      | `7860`      |
| `LANGFLOW_DATABASE_URL`       | 数据库连接字符串       | 内存中的 SQLite |
| `LANGFLOW_SECRET_KEY`         | 会话密钥（用于生产环境）   | 随机          |
| `LANGFLOW_AUTO_LOGIN`         | 跳过登录界面         | `true`      |
| `LANGFLOW_SUPERUSER`          | 管理员用户名         | `admin`     |
| `LANGFLOW_SUPERUSER_PASSWORD` | 管理员密码          | —           |
| `LANGFLOW_WORKERS`            | API 工作进程数      | `1`         |
| `LANGFLOW_LOG_LEVEL`          | 日志详细级别         | `严重`        |
| `OPENAI_API_KEY`              | 预先加载 OpenAI 密钥 | —           |

### 使用 PostgreSQL（生产环境）

对于多用户或生产部署，请使用 PostgreSQL 而不是 SQLite：

```bash
# 启动 PostgreSQL
docker run -d \\
  --name langflow-db \
  --restart unless-stopped \
  -e POSTGRES_USER=langflow \
  -e POSTGRES_PASSWORD=langflow-secret \
  -e POSTGRES_DB=langflow \
  -v langflow-pgdata:/var/lib/postgresql/data \
  postgres:16-alpine

# 使用 PostgreSQL 后端启动 Langflow
docker run -d \\
  --name langflow \
  --restart unless-stopped \
  --link langflow-db:db \
  -p 7860:7860 \
  -v /opt/langflow/data:/app/langflow \
  -e LANGFLOW_DATABASE_URL=postgresql://langflow:langflow-secret@db:5432/langflow \
  -e LANGFLOW_SECRET_KEY=$(openssl rand -hex 32) \
  -e LANGFLOW_AUTO_LOGIN=false \
  -e LANGFLOW_SUPERUSER=admin \
  -e LANGFLOW_SUPERUSER_PASSWORD=changeme \
  langflowai/langflow:latest
```

### Docker Compose（完整栈）

如需包含 PostgreSQL 和 Nginx 反向代理的完整设置：

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

services:
  langflow:
    image: langflowai/langflow:latest
    restart: unless-stopped
    ports:
      - "7860:7860"
    environment:
      - LANGFLOW_DATABASE_URL=postgresql://langflow:secret@db:5432/langflow
      - LANGFLOW_SECRET_KEY=${SECRET_KEY:-changeme}
      - LANGFLOW_AUTO_LOGIN=false
      - LANGFLOW_SUPERUSER=admin
      - LANGFLOW_SUPERUSER_PASSWORD=${ADMIN_PASSWORD:-changeme}
      - LANGFLOW_WORKERS=2
    volumes:
      - langflow-data:/app/langflow
    depends_on:
      db:
        condition: service_healthy

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

volumes:
  langflow-data:
  pgdata:
```

```bash
cd /opt/langflow
SECRET_KEY=$(openssl rand -hex 32) ADMIN_PASSWORD=yourpassword docker compose up -d
```

### 固定特定版本

为实现可复现部署，请固定一个特定版本：

```bash
# 列出可用版本：https://hub.docker.com/r/langflowai/langflow/tags
docker run -d \\
  --name langflow \
  -p 7860:7860 \
  langflowai/langflow:1.1.4
```

***

## GPU 加速（本地模型集成）

Langflow 本身运行在 CPU 上，但将其连接到同一 Clore.ai 服务器上的本地 GPU 服务，可解锁免费的私有推理。

### 将 Langflow 连接到 Ollama

```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 qwen2.5-coder:7b    # 代码生成

# 第 3 步：启动可访问 Ollama 网络的 Langflow
docker run -d \\
  --name langflow \
  --restart unless-stopped \
  -p 7860:7860 \
  -v /opt/langflow/data:/app/langflow \
  --add-host host.docker.internal:host-gateway \
  langflowai/langflow:latest
```

在 Langflow UI 中，使用 **Ollama** 组件，参数如下：

* 基础 URL： `http://host.docker.internal:11434`
* 模型： `llama3.1:8b`

对于嵌入，请使用 **OllamaEmbeddings** 组件，参数如下：

* 基础 URL： `http://host.docker.internal:11434`
* 模型： `nomic-embed-text`

> 完整 Ollama 配置：请参阅 [Ollama 指南](/guides/guides_v2-zh/yu-yan-mo-xing/ollama.md)

### 将 Langflow 连接到 vLLM（兼容 OpenAI）

```bash
# 使用兼容 OpenAI 的 API 启动 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

# 在 Langflow 中，使用带自定义基础 URL 的 OpenAI 组件：
# 基础 URL: http://host.docker.internal:8000/v1
# API 密钥：（任意值，例如 "none"）
# 模型：mistralai/Mistral-7B-Instruct-v0.3
```

> 完整 vLLM 配置：请参阅 [vLLM 指南](/guides/guides_v2-zh/yu-yan-mo-xing/vllm.md)

### 构建本地 RAG 流水线

仅使用本地模型的 RAG 示例流程（零 API 成本）：

1. **文件加载器** 节点 → 加载 PDF/文本文档
2. **文本分割器** 节点 → 将文档分块（大小：512，重叠：50）
3. **OllamaEmbeddings** 节点 → 生成嵌入（模型： `nomic-embed-text`)
4. **Chroma** 或 **FAISS** 节点 → 本地存储向量
5. **OllamaEmbeddings** 节点 → 对用户查询生成嵌入
6. **检索器** 节点 → 查找最相似的 top-k 片段
7. **Ollama** 节点 → 生成答案（模型： `llama3.1:8b`)
8. **聊天输出** 节点 → 返回响应

整个流水线运行在你的 Clore.ai 服务器上，不会调用任何外部 API。

***

## 提示与最佳实践

### 1. 将流程导出为备份

在停止你的 Clore.ai 服务器之前，请导出你的流程：

* 在 UI 中：流程 → 全选 → 导出 → 下载 JSON
* 或通过 API： `curl http://localhost:7860/api/v1/flows/`

将它们存储到持久卷中，或者下载到本地机器。

### 2. 使用 API 实现自动化

每个 Langflow 流程都会生成一个 API 端点。可通过程序触发流程：

```bash
# 从 UI 中获取你的流程 ID（显示在 URL 中）
FLOW_ID="your-flow-id-here"

curl -X POST \
  "http://<server-ip>:7860/api/v1/run/$FLOW_ID" \
  -H "Content-Type: application/json" \\
  -d '{
    "input_value": "请总结最新的 AI 研究论文",
    "input_type": "chat",
    "output_type": "chat"
  }'
```

### 3. 保护你的实例

对于本地测试之外的任何用途：

```bash
# 始终设置身份验证
-e LANGFLOW_AUTO_LOGIN=false \
-e LANGFLOW_SUPERUSER=admin \
-e LANGFLOW_SUPERUSER_PASSWORD=$(openssl rand -base64 16)

# 使用强密钥
-e LANGFLOW_SECRET_KEY=$(openssl rand -hex 32)
```

### 4. 监控内存使用

随着活跃流程增多，Langflow 可能会随着时间累积内存占用：

```bash
docker stats langflow
# 如果内存无限增长，请定期重启：
docker restart langflow
```

### 5. 使用入门模板

Langflow 附带可直接用于生产的模板：

* **基础 RAG** — 使用向量存储的文档问答
* **记忆聊天机器人** — 带历史记录的对话代理
* **研究助手** — 网络搜索 + LLM 综合
* 通过以下路径访问：新建流程 → 入门项目

### 6. 组件缓存

启用缓存以加快重复流程运行：

* 在流程设置中：在耗资源的节点（嵌入、LLM 调用）上启用 "缓存"
* 在开发期间对 RAG 检索尤其有用

***

## 故障排查

### 容器无法启动

```bash
# 检查日志中的错误
docker logs langflow --tail 50

# 常见问题：端口已被占用
lsof -i :7860
# 终止冲突进程或更改端口：
docker run ... -p 7861:7860 ...
```

### UI 已加载但流程无法运行

```bash
# 检查工作进程状态
docker exec langflow ps aux | grep langflow

# 检查 Python 包错误
docker logs langflow 2>&1 | grep -i error

# 重启容器
docker restart langflow
```

### 无法连接到 Ollama

```bash
# 从 Langflow 容器内部测试连通性
docker exec langflow curl http://host.docker.internal:11434/api/tags

# 如果缺少 --add-host 标志，请使用以下命令重新创建容器：
--add-host host.docker.internal:host-gateway

# 验证 Ollama 是否正在运行
docker ps | grep ollama
curl http://localhost:11434/api/tags
```

### 重启后数据库错误

```bash
# 如果使用 SQLite 并出现锁错误：
docker stop langflow
ls -la /opt/langflow/data/
# 检查过期的 .lock 文件
rm -f /opt/langflow/data/langflow.db-wal
rm -f /opt/langflow/data/langflow.db-shm
docker start langflow
```

### 流程执行缓慢

```bash
# 增加工作线程以进行并行处理
-e LANGFLOW_WORKERS=4

# 对于以嵌入为主的工作负载，请确保 Ollama 使用 GPU：
docker exec ollama nvidia-smi
# 在进行嵌入时应显示 GPU 使用情况
```

### 重置管理员密码

```bash
docker exec -it langflow python -c "
from langflow.services.database.utils import initialize_db
from langflow.services.deps import get_settings_service
# 请改用 Langflow CLI：
"
# 请使用 CLI 方法：
docker exec -it langflow langflow superuser --username admin --password newpassword
```

***

## 延伸阅读

* [Langflow GitHub 仓库](https://github.com/langflow-ai/langflow) — 源代码、问题反馈、更新日志
* [Langflow 文档](https://docs.langflow.org) — 官方文档、组件参考、API 文档
* [Langflow Discord](https://discord.com/invite/EqksyE2EX9) — 社区支持和流程分享
* [Clore.ai 上的 Ollama](/guides/guides_v2-zh/yu-yan-mo-xing/ollama.md) — 为 Langflow 搭建本地 LLM 后端
* [Clore.ai 上的 vLLM](/guides/guides_v2-zh/yu-yan-mo-xing/vllm.md) — 面向生产流程的高吞吐量 LLM 服务
* [GPU 比较指南](/guides/guides_v2-zh/ru-men-zhi-nan/gpu-comparison.md) — 为你的工作负载选择合适的 Clore.ai GPU
* [LangChain 文档](https://python.langchain.com/docs/) — 底层框架参考
* [Docker Hub：langflowai/langflow](https://hub.docker.com/r/langflowai/langflow) — 可用的镜像标签和版本


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.clore.ai/guides/guides_v2-zh/ai-ping-tai-yu-zhi-neng-ti/langflow.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
