摘要本文介绍 LangChain 1.3 版本对 Streaming 流式输出的重构——Event 事件流。文章首先说明事件流将原本通过 stream_mode 区分的内容整合为独立的类型投影Projection流并逐一讲解 stream.messages、stream.values、stream.tool_calls、stream.output、stream.subgraphs、stream.extensions 等常用投影的用途。随后作者因千问模型对事件流支持不佳、无法生成 tool_id改用 DeepSeek 模型并给出安装 langchain-deepseek 库及完整代码示例演示如何通过事件流获取模型消息、工具调用、最终输出与思考过程实现打字机效果与 Agent 全流程观测。内容参考于图灵AI大模型全栈Event事件流是LangChain的1.3版本对Streaming也就是流式输出的重构它把通过stream_mode区分的内容改成了一个独立的类型投影Projection流投影流如上图它把原始流Streaming投影成了不同的数据类型通过去不同的变量就可以得到对应的数据stream.messages通过stream点messages就可以看到模型的讲话信息也只能看到模型讲话的信息stream.values通过stream点values就可以看到状态State的变化也就可以看到Agent中的过程也只能看到状态的变化stream.tool_calls通过stream点tool_calls就可以看到工具的执行过程也只能看到工具的执行过程stream.output通过stream点output就可以看到Agent的最终结果也只能看到最终结果stream.subgraphs通过stream点subgraphs就可以看到子图或子Agent的运行状态也只能看到子图或子Agent的运行状态stream.extensions通过stream点extensions就可以看到我们自定义的投影也只能看到我们自定义的投影上图中有官方提供的常用投影览表可以看出它把原始流进行的整合规划我们想要什么直接点出来就行不需要再传递模式类型就是如果想看模型的讲话就stream.messages如果想看Agent的过程就stream.values就跟电视机切换频道一样之前一直使用的千问的模型但是千问模型对于事件流支持的不好没办法生成tool_id这里换成了deepseek再说一次事件流是测试版所以存在这种问题安装deepseek库uv add langchain-deepseek如下图红框LangChain的官网都有示例地址https://docs.langchain.com/oss/python/integrations/chat/deepseek地址https://docs.langchain.com/oss/python/integrations/chat效果图原始流可以看到全部的数据下图是messages的消息可以看到大模型说话的内容但是存在空内容下图是values下图是tool_calls的信息下方是messages中的内容通过messages中的text可以实现打字机效果下图就是大模型调用工具的内容注意下图蓝框里的id如果使用千问模型会是空的模型本次输出的内容模型本次的思考过程代码from langchain.agents import create_agent from langchain_deepseek import ChatDeepSeek from langchain_core.utils.uuid import uuid7 from langgraph.checkpoint.memory import InMemorySaver from dotenv import load_dotenv import os # 加载环境变量 load_dotenv() # 初始化模型 qwen模型对事件流支持不行,不能生成tool_id,换成deepseek llm ChatDeepSeek( modeldeepseek-v4-flash, api_keyos.getenv(DEEPSEEK_API_KEY), ) # 创建一个工具 def get_weather(city: str) - str: 获取指定城市的天气信息 return f{city}的天气是晴朗的! # 创建代理 agent create_agent( modelllm, tools[get_weather], system_prompt你是一个乐于助人的助手能够回答用户关于天气的问题。请使用提供的工具来获取天气信息。, checkpointerInMemorySaver(), # 使用InMemorySaver来保存对话状态这样在同一线程中进行的对话可以共享状态 ) # 创建线程id config {configurable: {thread_id: str(uuid7())}} # 使用事件流获取代理全部执行过程 stream agent.stream_events( {messages: [{role: user, content: 济南天气怎么样}]}, configconfig, versionv3, ) # 获取原始的流事件 # print(获取原始的流事件) # for event in stream: # print(event) # 获取llm返回的每条消息 for message in stream.messages: # print(获取消息的文本增量和最终文本:) # for delta in message.text: # print(delta, end, flushTrue) # print(获取模型生成工具调用时的内容) # print(message.tool_calls.get()) # print(获取模型本次输出消息:) # print(message.output) print(获取模型本次推理消息:) for delta in message.reasoning: print(f[thinking] {delta}, end, flushTrue) print() # print(------获取最终状态-------) # print(stream.output)
企业数字化 ERP 产品动态
相关推荐
非智能手机轶事 定场诗:当成小说图一乐,穿插所谓技术活
引子:之所以非智能,主要是我睡觉时经常会有些想法需要记录,如果是用智能手机记录,容易去划拉一下其他东西,更影响睡眠,如此可以一定程度上防治… · 2026/9/25 18:08:23
屏幕覆膜检测用ESE-10色标传感器,替代人工目检的实战指南 在屏幕贴合车间里,覆膜检测是最容易让人掉链子的工位之一。人工目检盯两小时就眼花,漏检率直线上升,而产线速度又不可能降下来等你看清楚。我去年改造一条贴膜产线时,没有上视觉相机,而是用了一个小尺寸的明治ESE-10色… · 2026/9/25 18:08:23
LongCat AMO-Bench 实测:用 TaoToken 统一 Key 跑通 LLM 数学上限评测配置 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 18:08:23
证券部绩效考核关键指标与绩效优化路径 证券部在企业中扮演着至关重要的角色,负责确保公司信息的合规披露、报告的按时提交以及股东和投资者的需求得到及时回应。随着信息技术和数据分析的不断发展,传统的手动处理方式已经逐渐难以应对日益复杂的工作要求,如何通过科学的绩效考核和技术手段提升证券部的工作效率和… · 2026/9/26 2:12:48
投资部绩效考核关键指标与评估模型 在当今复杂的市场环境中,投资部门的工作质量直接影响到企业的财务健康和长期发展。随着业务规模的扩大和投资项目的增加,如何科学评估投资部门的表现,已成为企业管理者亟需解决的问题。精确的绩效评估不仅能够提升工作效率,还能在资金调度、项目选择等方面提供有力支持。
… · 2026/9/26 2:12:48
融资部绩效考核关键指标与绩效评估方法 融资部作为企业资本运作的核心部门,其工作效率直接影响企业的资金流动性与战略发展。如何通过精准的绩效考核和数据分析,提升融资能力和资源配置效率,已经成为企业管理的重要议题。在全球经济形势复杂多变的背景下,融资部需要不断优化资金筹集方式,降低融资成本,并高效完… · 2026/9/26 2:12:48
工程监理部经理绩效考核指标量表与绩效提升策略 工程监理部在确保项目顺利进行中扮演着至关重要的角色。随着工程项目规模和复杂性的增加,如何有效地进行项目管理与监控,已成为各企业提升竞争力的关键。为了保障项目的质量、进度与成本控制,合理的绩效考核和数据分析变得尤为重要。
本文将深入探讨工程监理部经理的绩效考… · 2026/9/26 2:12:48
营业部经理绩效考核指标量表与评估标准 在当今竞争激烈的商业环境中,营业部经理的绩效直接影响着企业的经营成果和市场竞争力。如何科学、准确地评估经理的工作表现,成为了管理层关注的重点。传统的绩效评估方法已难以适应现代企业的需求,因此,数据驱动的绩效考核和预测成为了提升管理效率和决策质量的关键。
本… · 2026/9/26 2:12:48
XSS跨站脚本攻击原理详解:类型、实战绕过与防御策略 1. XSS到底是什么——先从根上理解跨站脚本攻击1.1 一句话讲透XSS的本质与危害XSS,全称Cross-Site Scripting,跨站脚本攻击。我接触过很多刚入门的安全爱好者,第一次看到这三个字母都会有同一个疑惑:跨站脚本,跟“脚本… · 2026/9/26 2:12:42
数据库课后习题答案别硬背:当测试用例集刷,效率翻倍 简介:万常选版《数据库原理与设计》课后习题答案资源,覆盖第2至6章及第9章,适合正在学习关系模型、数据库建模、关系数据理论与模式求精的本科生、自学者作为复习与自测材料。压缩包共7个文件,含3个doc参考答案、2个sql示例脚本、… · 2026/9/26 0:00:21
OpenClaw 替代品?Hermes Agent 踩坑实录:macOS 飞书接入 TaoToken 配置 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 0:00:40
向下兼容与向上兼容:接口设计中的兼容性策略与工程实践 一次版本升级事故,是很多团队绕不过去的坎。线上环境里,服务端明明已经上线了新版接口,老的移动端还在照着旧文档传参数。请求一到网关,校验直接拒绝,用户操作失败,客服群炸了锅,开发群里开始互… · 2026/9/26 0:00:46