跳到主要内容

内存管理选项

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 聊天内存组件。一个示例流程如下所示

Sample Flow storing Chat Memory in AstraDB

如果外部存储连接到内存辅助组件,则不会将聊天消息存储在本地 Langflow 内存中。

配置外部内存

要将默认的 Langflow SQLite 数据库替换为另一个数据库,请修改 LANGFLOW_DATABASE_URL 并使用此值启动 Langflow。


_10
LANGFLOW_DATABASE_URL=postgresql://user:password@localhost:5432/langflow

有关示例,请参见配置外部 PostgreSQL 数据库

配置外部数据库连接

以下设置允许您微调数据库连接池和超时设置


_10
LANGFLOW_DB_CONNECTION_SETTINGS='{"pool_size": 20, "max_overflow": 30, "pool_timeout": 30, "pool_pre_ping": true, "pool_recycle": 1800, "echo": false}'
_10
LANGFLOW_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
Search