LangChain 实现了一套流式传输系统,用于实时推送更新。 流式传输对于提升基于大语言模型(LLM)构建的应用程序的响应速度至关重要。通过在完整响应尚未生成完毕时就逐步显示输出内容,流式传输显著改善了用户体验(UX),尤其在应对 LLM 的延迟时效果尤为明显。Documentation Index
Fetch the complete documentation index at: https://langchain.idochub.dev/llms.txt
Use this file to discover all available pages before exploring further.
从智能体进行流式传输
LangChain 的流式传输系统允许你将智能体运行过程中的实时反馈推送到你的应用程序中。 使用 LangChain 流式传输可以实现的功能包括:- 流式传输智能体进度 —— 在每个智能体步骤后获取状态更新。
- 流式传输 LLM 令牌 —— 在语言模型生成令牌时实时推送。
- 流式传输自定义更新 —— 发送用户自定义信号(例如
"已获取 10/100 条记录")。 - 同时流式传输多种模式 —— 可选择
updates(智能体进度)、messages(LLM 令牌 + 元数据)或custom(任意用户数据)。
智能体进度
要流式传输智能体进度,请使用stream() 或 astream() 方法,并设置 stream_mode="updates"。此设置将在每个智能体步骤后发出一个事件。
例如,如果你有一个仅调用一次工具的智能体,你应看到如下更新:
- LLM 节点:包含工具调用请求的 AI 消息
- 工具节点:包含执行结果的工具消息
- LLM 节点:最终的 AI 响应
流式传输智能体进度
输出
LLM 令牌
要流式传输 LLM 生成的令牌,请使用stream_mode="messages"。下面你可以看到智能体流式传输工具调用和最终响应的输出。
流式传输 LLM 令牌
输出
自定义更新
要在工具执行时流式传输更新,你可以使用 get_stream_writer。流式传输自定义更新
输出
如果你在工具内部添加了
get_stream_writer,则无法在 LangGraph 执行上下文之外调用该工具。同时流式传输多种模式
你可以通过将流模式作为列表传递来指定多个流模式:stream_mode=["updates", "custom"]:
同时流式传输多种模式
输出