跳到主要内容

使用会话 ID 管理组件间通信

会话 ID (Session ID) 是客户端/服务器连接的唯一标识符。单个会话等于客户端连接到服务器的持续时间。

在 Langflow 游乐场 (Playground) 中,当前会话列在面板的左侧。

Langflow 使用会话 ID 来跟踪工作流中的不同聊天交互。这允许在单个工作流中存在多个聊天会话。消息以会话 ID 作为参考存储在数据库中。

每个会话之间的这种用户区分有助于管理客户端/服务器连接,但在单个工作流中维护独立的对话上下文也至关重要。LLM 依靠过去的交互来生成对查询的响应,如果这些对话没有分开,响应就会变得不那么有用,甚至会产生混乱。

自定义会话 ID

自定义会话 ID 可以作为 API 调用中的负载 (payload) 的一部分进行设置,也可以作为单个组件中的高级设置进行设置。API 会话 ID 的值具有优先级。如果未指定会话 ID,则分配工作流 ID (flow ID)。

如果您在负载中设置了自定义会话 ID,所有下游组件都将使用上游组件的会话 ID 值。 请将 LANGFLOW_SERVER_ADDRESSFLOW_IDLANGFLOW_API_KEY 替换为您 Langflow 部署中的实际值。


_10
curl --request POST \
_10
--url "http://LANGFLOW_SERVER_ADDRESS/api/v1/run/FLOW_ID" \
_10
--header "Content-Type: application/json" \
_10
--header "x-api-key: $LANGFLOW_API_KEY" \
_10
--data '{
_10
"input_value": "Hello",
_10
"output_type": "chat",
_10
"input_type": "chat",
_10
"session_id": "my_custom_session_value"
_10
}'

my_custom_session_value 值将用于接受它的组件,并且此工作流中存储的消息将与其各自的 session_id 值一起存储在 langflow.db 中。

按会话 ID 从记忆中检索消息

要从本地 Langflow 记忆中检索消息,请向您的工作流添加 消息历史 (Message History) 组件。 该组件接受 sessionID 作为过滤参数,并自动使用来自上游的会话 ID 值,按会话 ID 从存储中检索消息历史。

可以通过 GET /v1/monitor/messages 从 Langflow API 按 session_id 检索消息。有关更多信息,请参阅 监控端点

有关会话 ID 实际应用的示例,请观看 在 Langflow 中使用会话 ID

Search