内存管理选项
Langflow 为您的流程和 Langflow 服务器提供灵活的内存管理选项,用于存储和检索相关数据。 这包括基本的 Langflow 数据库表、文件管理、缓存以及聊天内存。
存储选项和路径
Langflow 支持本地内存和外部内存选项。
Langflow 的默认存储选项是存储在系统缓存目录中的 SQLite 数据库。
默认存储路径取决于您的操作系统和安装方式:
- macOS Desktop:
/Users/<username>/.langflow/data/database.db
- Windows Desktop:
C:\Users\<name>\AppData\Roaming\com.Langflow\data\langflow.db
- OSS macOS/Windows/Linux/WSL (
uv pip install
):<path_to_venv>/lib/python3.12/site-packages/langflow/langflow.db
(Python版本可能有所不同) - OSS macOS/Windows/Linux/WSL (
git clone
):<path_to_clone>/src/backend/base/langflow/langflow.db
或者,您可以为所有 Langflow 存储使用外部 PostgreSQL 数据库。 您还可以选择性地为聊天内存使用外部存储,与其他 Langflow 存储分开。 有关更多信息,请参阅 配置外部内存 和 存储聊天内存。
本地 Langflow 数据库表
以下表存储在 langflow.db
中:
• ApiKey: 管理 Langflow API 身份验证密钥。组件 API 密钥存储在 Variables 表中。有关更多信息,请参阅 API 密钥和身份验证。
• File: 存储上传到 Langflow 文件管理系统的文件的元数据,包括文件名、路径、大小和存储提供商。有关更多信息,请参阅 管理文件。
• Flow: 包含流程定义,包括节点、边和组件,以 JSON 或数据库记录形式存储。有关更多信息,请参阅 构建流程。
• Folder: 为流程存储提供结构,包括单用户文件夹和多用户访问的共享文件夹。有关更多信息,请参阅 在项目中管理流程。
• Message: 存储组件之间发生的聊天消息和交互。有关更多信息,请参阅 消息对象 和 存储聊天内存。
• Transactions: 记录流程运行的执行历史和结果。此信息用于 日志记录。
• User: 存储用户帐户信息,包括凭据、权限、配置文件和用户管理设置。有关更多信息,请参阅 API 密钥和身份验证。
• Variables: 存储全局加密值和凭据。有关更多信息,请参阅 全局变量。
• VertexBuild: 跟踪流程中各个节点的构建状态。有关更多信息,请参阅 在 Playground 中测试流程。
有关更多信息,请参阅 源代码 中的数据库模型。
配置外部内存
要将默认的 Langflow SQLite 数据库替换为其他数据库,请修改 LANGFLOW_DATABASE_URL
环境变量,然后使用您的 .env
文件启动 Langflow:
_10LANGFLOW_DATABASE_URL=postgresql://user:password@localhost:5432/langflow
示例请参阅 配置外部 PostgreSQL 数据库。
LANGFLOW_DB_CONNECTION_SETTINGS
是数据库连接池设置的 JSON 配置,允许您微调数据库连接池和超时设置。
_10LANGFLOW_DB_CONNECTION_SETTINGS='{"pool_size": 20, "max_overflow": 30, "pool_timeout": 30, "pool_pre_ping": true, "pool_recycle": 1800, "echo": false}'
连接池参数
pool_size
: 在连接池中保持的最大数据库连接数。默认:20 个连接。max_overflow
: 可以在 pool_size 之外创建的最大连接数。默认:30 个连接。pool_timeout
: 从连接池获取连接超时前等待的秒数。默认:30 秒。pool_pre_ping
: 如果为true
,则在每次签出时测试连接的活跃性。默认:true
。pool_recycle
: 连接自动回收的秒数。默认:1800 秒(30 分钟)。echo
: 如果为true
,则为调试目的记录 SQL 查询。默认:false
。
配置缓存内存
Langflow 的默认缓存行为是异步内存缓存。
_10LANGFLOW_LANGCHAIN_CACHE=InMemoryCache_10LANGFLOW_CACHE_TYPE=async
Langflow 官方仅支持默认的异步内存缓存。其他后端是实验性的,可能会随时更改。 默认行为适用于大多数用例。
Redis 和其他外部缓存设置是实验性的,不受官方支持。
缓存环境变量
Variable | Type | Default | Description |
---|---|---|---|
LANGFLOW_CACHE_TYPE | String | async | 设置 Langflow 内部缓存系统的缓存类型。 |
LANGFLOW_LANGCHAIN_CACHE | String | InMemoryCache | 设置 Langchain 缓存系统的缓存类型。 |
LANGFLOW_REDIS_HOST | String | localhost | Redis 服务器主机名。 |
LANGFLOW_REDIS_PORT | Integer | 6379 | Redis 服务器端口。 |
LANGFLOW_REDIS_DB | Integer | 0 | Redis 数据库编号。 |
LANGFLOW_REDIS_CACHE_EXPIRE | Integer | 3600 | 缓存过期时间(秒)。 |
LANGFLOW_REDIS_PASSWORD | String | Not set | Redis 认证密码(可选)。 |
存储聊天记忆
带有 Chat Input 或 Chat Output 组件的基于聊天的流程会产生聊天历史记录,这些记录存储在 Langflow 的 messages
表中。
至少,这充当了聊天日志,但它在功能上与为 LLM 提供历史上下文的聊天记忆不同。