菜单

消息和监控系统

相关源文件

本文档涵盖了 Langflow 的消息持久化和系统监控基础设施。该系统提供了用于跟踪消息、监控流执行性能以及管理跨用户会话的对话数据的 API。有关流执行和图处理的信息,请参阅 组件系统。有关流存储和管理的信息,请参阅 流存储和管理 API

核心消息模式和类型

消息系统围绕 Message 类构建,该类扩展了 Data 类,并为对话数据、系统输出和错误信息提供结构化存储。

Message 类结构

Message 类作为所有对话交互的主要数据容器。

字段类型目的
textstr | AsyncIterator | Iterator | None主要消息内容
senderstr | None消息发送者标识符
sender_namestr | None人类可读的发件人姓名
fileslist[str | Image] | None附件或图片
session_idstr | UUID | None对话会话标识符
timestampstr消息创建时间
flow_idstr | UUID | None关联的流标识符
errorbool错误消息标志
properties属性显示和元数据属性
content_blockslist[ContentBlock]结构化内容部分

消息类型层级

来源: src/backend/base/langflow/schema/message.py38-58 src/backend/base/langflow/schema/message.py381-467 src/backend/base/langflow/schema/message.py311-378

错误消息处理

ErrorMessage 类提供特殊的错误报告,具有 Markdown 格式和详细的异常信息。

来源: src/backend/base/langflow/schema/message.py415-467 src/backend/base/langflow/schema/message.py384-413

消息存储和持久化

消息持久化层通过同步和异步接口处理消息的存储、检索和管理。

存储函数

核心存储操作

查询构建:_get_variable_query() 函数使用过滤选项构建数据库查询。

参数过滤器目的
senderMessageTable.sender按消息发送者过滤
sender_nameMessageTable.sender_name按发送者显示名称过滤
session_idMessageTable.session_id按会话过滤
flow_idMessageTable.flow_id按相关流过滤
order_by列排序按时间戳/字段排序结果
limit查询限制限制结果数量

来源: src/backend/base/langflow/memory.py19-42 src/backend/base/langflow/memory.py73-99 src/backend/base/langflow/memory.py110-127

数据库集成

消息持久化流程

来源: src/backend/base/langflow/memory.py246-282 src/backend/base/langflow/memory.py154-182

监控 API

监控系统通过 /monitor 前缀提供用于消息管理、构建跟踪和性能监控的 REST 端点。

消息管理端点

消息查询 API

消息操作

来源: src/backend/base/langflow/api/v1/monitor.py43-68 src/backend/base/langflow/api/v1/monitor.py71-77 src/backend/base/langflow/api/v1/monitor.py80-104

构建和性能跟踪

顶点构建监控:系统通过顶点构建来跟踪组件执行性能。

事务跟踪

来源: src/backend/base/langflow/api/v1/monitor.py25-31 src/backend/base/langflow/api/v1/monitor.py34-40 src/backend/base/langflow/api/v1/monitor.py162-182

数据类型转换与集成

消息系统通过转换实用程序和组件与 Langflow 更广泛的数据类型系统集成。

消息-数据转换

转换路径

类型转换器组件:TypeConverterComponent 在运行时提供 MessageDataDataFrame 之间的运行时类型转换。

方法输入类型输出
convert_to_message()Message, Data, DataFrame消息
convert_to_data()Message, Data, DataFrame数据
convert_to_dataframe()Message, Data, DataFrameDataFrame

来源: src/backend/base/langflow/schema/message.py282-288 src/backend/base/langflow/schema/data.py257-262 src/backend/base/langflow/components/processing/converter.py48-107

LangChain 集成

消息格式兼容性

内容类型处理

  • 文本内容:直接字符串映射
  • 文件附件:转换为 image_url 内容块。
  • 多模态:具有 type 字段的内容对象数组。

来源: src/backend/base/langflow/schema/message.py126-152 src/backend/base/langflow/schema/message.py154-169 src/backend/base/langflow/schema/message.py200-210

内存和会话管理

该系统通过 LCBuiltinChatMemory 类为聊天应用程序提供向后兼容的内存接口。

聊天内存接口

基于会话的内存

内存操作

  • 检索:按 session_id 过滤消息,排除错误消息。
  • 存储:将 LangChain 消息转换为 Langflow 格式,并进行会话跟踪。
  • 清理:基于会话的消息删除。

来源: src/backend/base/langflow/memory.py285-325 src/backend/base/langflow/memory.py297-301 src/backend/base/langflow/memory.py309-313