1. LangChain流式传输系统概述
在大语言模型(LLM)应用开发中,响应延迟一直是影响用户体验的关键问题。LangChain的流式传输系统通过实时推送更新内容,有效缓解了这个问题。想象一下你在餐厅点餐的场景:传统方式就像等所有菜都做好才一起上桌,而流式传输则是每做好一道菜就立即端上来,让你能边吃边等。
LangChain的流式系统主要解决了三个核心痛点:
- 响应延迟感知:LLM生成完整响应通常需要数秒甚至更长时间,用户面对空白界面容易产生焦虑
- 交互体验割裂:传统请求-响应模式让用户被动等待,无法中途介入或调整
- 进度不透明:用户无法了解任务执行进度,特别是涉及多步骤Agent操作时
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 流式传输核心模式解析
2.1 基础流式模式对比
LangChain提供三种基础流式模式,可以单独或组合使用:
| 模式 | 数据内容 | 典型应用场景 |
|---|---|---|
| updates | Agent执行步骤的状态更新 | 展示任务进度条 |
| messages | LLM生成的token及元数据 | 实现打字机效果 |
| custom | 开发者自定义的任意数据 | 显示后台处理状态 |
这三种模式通过stream_mode参数指定,支持字符串单模式或列表多模式:
python复制# 单模式
agent.stream(input, stream_mode="updates")
# 多模式组合
agent.stream(input, stream_mode=["updates", "messages"])
2.2 Agent进度流式实现
当使用updates模式时,Agent会在每个执行步骤完成后触发事件。以下是一个天气查询Agent的典型流程:
pyth复制
