本文档涵盖了 Langflow 的消息持久化和系统监控基础设施。该系统提供了用于跟踪消息、监控流执行性能以及管理跨用户会话的对话数据的 API。有关流执行和图处理的信息,请参阅 组件系统。有关流存储和管理的信息,请参阅 流存储和管理 API。
消息系统围绕 Message 类构建,该类扩展了 Data 类,并为对话数据、系统输出和错误信息提供结构化存储。
Message 类作为所有对话交互的主要数据容器。
| 字段 | 类型 | 目的 |
|---|---|---|
text | str | AsyncIterator | Iterator | None | 主要消息内容 |
sender | str | None | 消息发送者标识符 |
sender_name | str | None | 人类可读的发件人姓名 |
files | list[str | Image] | None | 附件或图片 |
session_id | str | UUID | None | 对话会话标识符 |
timestamp | str | 消息创建时间 |
flow_id | str | UUID | None | 关联的流标识符 |
error | bool | 错误消息标志 |
properties | 属性 | 显示和元数据属性 |
content_blocks | list[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() 函数使用过滤选项构建数据库查询。
| 参数 | 过滤器 | 目的 |
|---|---|---|
sender | MessageTable.sender | 按消息发送者过滤 |
sender_name | MessageTable.sender_name | 按发送者显示名称过滤 |
session_id | MessageTable.session_id | 按会话过滤 |
flow_id | MessageTable.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
监控系统通过 /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 在运行时提供 Message、Data 和 DataFrame 之间的运行时类型转换。
| 方法 | 输入类型 | 输出 |
|---|---|---|
convert_to_message() | Message, Data, DataFrame | 消息 |
convert_to_data() | Message, Data, DataFrame | 数据 |
convert_to_dataframe() | Message, Data, DataFrame | DataFrame |
来源: 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
消息格式兼容性
内容类型处理
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 过滤消息,排除错误消息。来源: src/backend/base/langflow/memory.py285-325 src/backend/base/langflow/memory.py297-301 src/backend/base/langflow/memory.py309-313