内存管理选项
Langflow 提供灵活的内存管理选项,用于存储和检索。
本页详细介绍了 Langflow 中的以下内存配置选项。
本地 Langflow 数据库表
Langflow 中的默认存储选项是一个 SQLite 数据库,存储在您系统的缓存目录中
- Linux/WSL:
~/.cache/langflow/langflow.db
- macOS:
/Users/<username>/Library/Caches/langflow/langflow.db
- Windows:
%LOCALAPPDATA%\langflow\langflow\Cache\langflow.db
以下表格存储在 langflow.db
中
• 用户 - 存储用户帐户信息,包括凭据、权限和配置文件。更多信息请参见身份验证。
• 流程 - 包含流程配置。更多信息请参见流程。
• 消息 - 存储组件之间发生的聊天消息和交互。更多信息请参见消息对象。
• 事务 - 记录流程运行的执行历史和结果。此信息用于日志记录。
• API 密钥 - 管理用户的 API 身份验证密钥。更多信息请参见API 密钥。
• 项目 - 提供流程存储结构。更多信息请参见项目。
• 变量 - 存储全局加密值和凭据。更多信息请参见全局变量。
• 顶点构建 - 跟踪流程中单个节点的构建状态。更多信息请参见在 Playground 中运行流程。
更多信息请参见源代码中的数据库模型。
将消息存储在本地内存中
要将消息存储在本地 Langflow 内存中,请向您的流程中添加一个消息存储组件。
要从本地 Langflow 内存中检索消息,请向您的流程中添加一个消息历史组件。
有关使用本地聊天内存的示例,请参见内存聊天机器人入门流程。
要从外部内存中存储或检索聊天消息,请将消息存储或消息历史组件的外部内存端口连接到内存组件,例如Astra DB 聊天内存组件。一个示例流程如下所示
如果外部存储连接到内存辅助组件,则不会将聊天消息存储在本地 Langflow 内存中。
配置外部内存
要将默认的 Langflow SQLite 数据库替换为另一个数据库,请修改 LANGFLOW_DATABASE_URL
并使用此值启动 Langflow。
_10LANGFLOW_DATABASE_URL=postgresql://user:password@localhost:5432/langflow
有关示例,请参见配置外部 PostgreSQL 数据库。
配置外部数据库连接
以下设置允许您微调数据库连接池和超时设置
_10LANGFLOW_DB_CONNECTION_SETTINGS='{"pool_size": 20, "max_overflow": 30, "pool_timeout": 30, "pool_pre_ping": true, "pool_recycle": 1800, "echo": false}'_10LANGFLOW_DB_CONNECT_TIMEOUT=20
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_DB_CONNECT_TIMEOUT
:建立新数据库连接时等待的最大秒数(默认值:20)
配置缓存内存
Langflow 提供了多种缓存选项,可以使用 LANGFLOW_CACHE_TYPE
环境变量进行配置。
类型 | 描述 | 存储位置 | 持久性 |
---|---|---|---|
async (默认) | 异步内存缓存 | 应用程序内存 | 重启后清除 |
memory | 线程安全的内存缓存 | 应用程序内存 | 重启后清除 |
disk | 基于文件系统的缓存 | 系统缓存目录* | 重启后保留 |
redis | 分布式缓存 | Redis 服务器 | 保存在 Redis 中 |
*系统缓存目录位置
- Linux/WSL:
~/.cache/langflow/
- macOS:
/Users/<username>/Library/Caches/langflow/
- Windows:
%LOCALAPPDATA%\langflow\langflow\Cache