# Langflow Langflow 是一个低代码可视化框架,用于构建 AI 应用。它基于 Python,与任何模型、API 或数据库无关,可轻松构建 RAG 应用、多智能体系统和自定义 AI 工作流。 ## 功能特点 - **可视化流构建器**:拖放界面构建 AI 应用 - **多模型支持**:支持 OpenAI、Anthropic、Google、HuggingFace 等 - **RAG 组件**:内置向量数据库和检索支持 - **自定义组件**:创建您自己的 Python 组件 - **智能体支持**:构建具有记忆和工具的多智能体系统 - **实时监控**:跟踪执行并调试流程 - **API 集成**:用于编程访问的 REST API ## 快速开始 1. 复制 `.env.example` 到 `.env`: ```bash copy .env.example .env ``` 2. (可选)编辑 `.env` 自定义设置: - 为生产环境生成安全的 `LANGFLOW_SECRET_KEY` - 设置 `LANGFLOW_AUTO_LOGIN=false` 以要求身份验证 - 配置超级用户凭证 - 为 LLM 提供商添加 API 密钥 3. 启动 Langflow: ```bash docker compose up -d ``` 4. 等待服务就绪(通常需要 1-2 分钟) 5. 访问 Langflow UI:`http://localhost:7860` 6. 开始构建您的 AI 应用! ## 默认配置 | 服务 | 端口 | 说明 | | ---------- | ---- | -------------- | | Langflow | 7860 | Web UI 和 API | | PostgreSQL | 5432 | 数据库(内部) | **默认凭证**(如果启用了身份验证): - 用户名:`langflow` - 密码:`langflow` ## 环境变量 主要环境变量(完整列表请参阅 `.env.example`): | 变量 | 说明 | 默认值 | | ----------------------------- | ------------------------------ | ---------- | | `LANGFLOW_VERSION` | Langflow 镜像版本 | `1.1.1` | | `LANGFLOW_PORT_OVERRIDE` | UI 的主机端口 | `7860` | | `POSTGRES_PASSWORD` | 数据库密码 | `langflow` | | `LANGFLOW_AUTO_LOGIN` | 自动登录(禁用以启用身份验证) | `true` | | `LANGFLOW_SUPERUSER` | 超级用户用户名 | `langflow` | | `LANGFLOW_SUPERUSER_PASSWORD` | 超级用户密码 | `langflow` | | `LANGFLOW_SECRET_KEY` | 会话密钥 | (空) | | `LANGFLOW_COMPONENTS_PATH` | 自定义组件目录 | (空) | | `LANGFLOW_LOAD_FLOWS_PATH` | 自动加载流目录 | (空) | | `TZ` | 时区 | `UTC` | ## 资源需求 **最低要求**: - CPU:1 核心 - 内存:1GB - 磁盘:5GB **推荐配置**: - CPU:2+ 核心 - 内存:2GB+ - 磁盘:20GB+ ## 数据卷 - `postgres_data`:PostgreSQL 数据库数据 - `langflow_data`:Langflow 配置、流和日志 ## 使用 Langflow ### 构建您的第一个流 1. 访问 UI:`http://localhost:7860` 2. 点击 "New Flow" 或使用模板 3. 从侧边栏拖动组件到画布 4. 通过在端口之间拖动来连接组件 5. 配置组件参数 6. 点击 "Run" 测试您的流 7. 使用 API 或与您的应用集成 ### 添加 LLM 提供商 要使用外部 LLM 提供商,请配置其 API 密钥: 1. 在 Langflow UI 中,转到 Settings > Global Variables 2. 添加您的 API 密钥(例如,`OPENAI_API_KEY`、`ANTHROPIC_API_KEY`) 3. 在您的流组件中引用这些变量 或者,将它们添加到您的 `.env` 文件并重启: ```bash # LLM API 密钥示例(添加到 .env) OPENAI_API_KEY=sk-... ANTHROPIC_API_KEY=sk-ant-... GOOGLE_API_KEY=... ``` ### 自定义组件 要添加自定义组件: 1. 为您的组件创建一个目录(例如,`./custom_components`) 2. 更新 `.env`: ```bash LANGFLOW_COMPONENTS_PATH=/app/langflow/custom_components ``` 3. 在 `docker-compose.yaml` 中挂载目录: ```yaml volumes: - ./custom_components:/app/langflow/custom_components ``` 4. 重启 Langflow ### 自动加载流 要在启动时自动加载流: 1. 将您的流导出为 JSON 文件 2. 创建一个目录(例如,`./flows`) 3. 更新 `.env`: ```bash LANGFLOW_LOAD_FLOWS_PATH=/app/langflow/flows ``` 4. 在 `docker-compose.yaml` 中挂载目录: ```yaml volumes: - ./flows:/app/langflow/flows ``` 5. 重启 Langflow ## API 使用 Langflow 提供 REST API 用于以编程方式运行流。 ### 获取流 ID 1. 在 UI 中打开您的流 2. 流 ID 在 URL 中:`http://localhost:7860/flow/{flow_id}` ### 通过 API 运行流 ```bash curl -X POST http://localhost:7860/api/v1/run/{flow_id} \ -H "Content-Type: application/json" \ -d '{ "inputs": { "input_field": "your input value" } }' ``` ### 使用身份验证 如果启用了身份验证,首先获取令牌: ```bash # 登录 curl -X POST http://localhost:7860/api/v1/login \ -H "Content-Type: application/json" \ -d '{ "username": "langflow", "password": "langflow" }' # 在后续请求中使用令牌 curl -X POST http://localhost:7860/api/v1/run/{flow_id} \ -H "Authorization: Bearer {token}" \ -H "Content-Type: application/json" \ -d '{ "inputs": { "input_field": "your input value" } }' ``` ## 生产部署 对于生产部署: 1. **启用身份验证**: ```bash LANGFLOW_AUTO_LOGIN=false LANGFLOW_SUPERUSER=admin LANGFLOW_SUPERUSER_PASSWORD=<强密码> ``` 2. **设置密钥**: ```bash # 生成安全密钥 python -c "from secrets import token_urlsafe; print(token_urlsafe(32))" # 添加到 .env LANGFLOW_SECRET_KEY=<生成的密钥> ``` 3. **使用强数据库密码**: ```bash POSTGRES_PASSWORD=<强密码> ``` 4. **启用 SSL/TLS**:使用带有 SSL 证书的反向代理(nginx、traefik) 5. **配置资源限制**:根据您的工作负载调整 CPU 和内存限制 6. **备份数据库**:定期备份 PostgreSQL 数据卷 ## 故障排除 ### Langflow 无法启动 - 查看日志:`docker compose logs langflow` - 确保 PostgreSQL 健康:`docker compose ps postgres` - 验证端口 7860 未被使用 ### 组件未加载 - 检查自定义组件路径是否正确 - 确保在自定义组件中安装了 Python 依赖项 - 检查日志中的组件错误 ### 性能缓慢 - 在 `.env` 中增加资源限制 - 如果内存不足,减少 `LANGFLOW_WORKERS` - 优化您的流(减少不必要的组件) ### 数据库连接错误 - 验证 PostgreSQL 正在运行:`docker compose ps postgres` - 检查 `.env` 中的数据库凭证 - 确保 `LANGFLOW_DATABASE_URL` 正确 ## 维护 ### 备份 备份数据卷: ```bash docker compose down docker run --rm -v compose-anything_postgres_data:/data -v $(pwd):/backup alpine tar czf /backup/postgres-backup.tar.gz -C /data . docker run --rm -v compose-anything_langflow_data:/data -v $(pwd):/backup alpine tar czf /backup/langflow-backup.tar.gz -C /data . docker compose up -d ``` ### 恢复 从备份恢复: ```bash docker compose down docker run --rm -v compose-anything_postgres_data:/data -v $(pwd):/backup alpine sh -c "cd /data && tar xzf /backup/postgres-backup.tar.gz" docker run --rm -v compose-anything_langflow_data:/data -v $(pwd):/backup alpine sh -c "cd /data && tar xzf /backup/langflow-backup.tar.gz" docker compose up -d ``` ### 升级 升级 Langflow: 1. 在 `.env` 中更新版本: ```bash LANGFLOW_VERSION=1.2.0 ``` 2. 拉取新镜像并重启: ```bash docker compose pull docker compose up -d ``` 3. 检查发布说明中的重大更改 ## 常用命令 ```bash # 查看日志 docker compose logs -f langflow # 重启 Langflow docker compose restart langflow # 访问 PostgreSQL docker compose exec postgres psql -U langflow -d langflow # 检查资源使用 docker stats # 清理 docker compose down -v # 警告:删除所有数据 ``` ## 参考资料 - [官方文档](https://docs.langflow.org/) - [GitHub 仓库](https://github.com/langflow-ai/langflow) - [组件文档](https://docs.langflow.org/components/) - [API 文档](https://docs.langflow.org/api/) - [社区 Discord](https://discord.gg/langflow) ## 许可证 MIT - 查看 [LICENSE](https://github.com/langflow-ai/langflow/blob/main/LICENSE)