langchain的流式事件监听astream_event()、todo运行机制 📅 发布时间:2026/7/13 1:52:29 👁️ 浏览次数: 文章目录监听事件要点示例支持哪些事件astream_event()方法为什么没有return呢?langchain1.2的又一大新特性。监听事件要点1、要用.astream_event()方法来调用。2、循环要用asycn for来循环 # 否则捕捉不到event示例新建python文件event_demo代码importasynciofromlangchain_openaiimportChatOpenAIfromlangchain_core.promptsimportChatPromptTemplatefromlangchain_core.output_parsersimportStrOutputParserimportos API_KEYos.getenv(DASHSCOPE_API_KEY,YOUR API KEY)print(f 代码读取到的API_KEY{API_KEY})llmChatOpenAI(api_keyAPI_KEY,# 替换为你的实际 Key (sk-...)base_urlhttps://dashscope.aliyuncs.com/compatible-mode/v1,modelqwen-plus)promptChatPromptTemplate.from_template(讲一个关于{topic}的短笑话)parserStrOutputParser()# 2. 构建链 (LCEL)chainprompt|llm|parser# 3. 定义异步主函数asyncdefmain():print( 开始流式监听事件...\n)# astream_events 是核心方法# versionv2 是 LangChain 1.0 推荐的事件流版本asyncforeventinchain.astream_events({topic:程序员},versionv2):# 事件类型 (kind) 决定了当前发生了什么kindevent[event]# --- 场景 A: 模型开始生成内容 (流式打字机效果) ---ifkindon_chat_model_stream:# 获取模型生成的文字片段contentevent[data][chunk].content# 实时打印end 防止换行flushTrue 确保立即显示print(content,end,flushTrue)# --- 场景 B: 链/工具开始执行 (用于显示状态) ---elifkindon_chain_start:nameevent.get(name)ifname:print(f\n\n [系统] 开始执行:{name})# --- 场景 C: 链/工具执行结束 ---elifkindon_chain_end:print(f\n✅ [系统] 执行完毕)# 4. 运行if__name____main__:asyncio.run(main())输出结果 代码读取到的API_KEYsk-e49bdf8d737549ffb6269b63bcff8a7a 开始流式监听事件...[系统]开始执行:RunnableSequence 当然可以**笑话**程序员去咖啡馆点单。 服务员“您好请问要什么” 程序员“我要一杯咖啡不加糖不加奶不加冰不加盖不加吸管……等等先别下单——我得先 git status 一下确认自己没在 develop 分支上点单。” 服务员“……您确定要的是咖啡不是 coffee.exe 的调试日志” 停顿两秒 程序员叹了口气“算了还是 git checkout--coffee_order 吧……我刚刚好像把‘加糖’改成了‘删糖’。” ☕️*——毕竟人生最大的 bug往往不是逻辑错误而是需求没写清楚。*需要再来一个比如 Python 版/前端版/摸鱼版 ✅[系统]执行完毕解读支持哪些事件也可以从chain.astream_events()这个方法跟代码跟进去查看往下滑几行就是。如下图事件名称 (event)触发时机关键数据 (event[data])典型用途on_chat_model_start模型接收到请求准备开始推理时input: 包含消息列表 (messages)记录请求参数统计 Token 消耗前的准备on_chat_model_stream模型生成新 Token 时 (高频触发)chunk: 包含新生成的文本片段 (AIMessageChunk)打字机效果实时显示 AI 回答on_chat_model_end模型完成所有推理返回最终结果时output: 完整的 AI 回复对象统计总耗时获取完整的回复内容on_tool_startAgent 决定调用某个工具时input: 工具调用的参数 (JSON)显示“正在调用搜索工具…”展示工具参数on_tool_end工具执行完毕返回结果给 Agent 时output: 工具返回的原始数据显示工具执行结果调试工具调用逻辑on_chain_start任意链 (Chain) 或自定义组件开始时input: 输入数据追踪复杂链的执行进度on_chain_stream链中的组件产生流式输出时chunk: 中间产生的数据块监听中间步骤的流式数据on_chain_end链或组件执行结束时output: 该步骤的最终输出确认步骤完成获取中间结果on_retriever_start检索器 (RAG) 开始查找文档时input: 查询语句 (query)显示“正在知识库中搜索…”on_retriever_end检索器返回文档列表时output: 找到的文档列表 (Documents)展示参考来源调试检索质量on_prompt_start提示词模板开始填充变量时input: 原始变量值调试 Prompt 模板是否正确接收了变量on_prompt_end提示词构建完成准备发给模型时output: 构建好的 Prompt 对象查看最终发送给 LLM 的完整 Promptastream_event()方法为什么没有return呢?好问题就是没有return因为它不是一个常规方法而是一个生成器。
langchain中的异常处理with_retry()、with_fallbacks() 文章目录 with_retry()with_retry()示例 with_fallbacks([fallback_function])with_fallbacks()在报错后回复维护中with_retry()和with_fallbacks()的链式操作 这一块是异常处理重试和备用,增强系统稳定性,生产中非常实用,面试的时候是加分项… 2026/7/13 1:49:19
Windows苹果设备驱动终极解决方案:告别iTunes的快速安装指南 Windows苹果设备驱动终极解决方案:告别iTunes的快速安装指南 【免费下载链接】Apple-Mobile-Drivers-Installer Powershell script to easily install Apple USB and Mobile Device Ethernet (USB Tethering) drivers on Windows! 项目地址: https://gitcode.com/… 2026/7/13 1:49:28
intv_ai_mk11多场景落地:覆盖内容运营、教育辅助、行政办公等6大方向 intv_ai_mk11多场景落地:覆盖内容运营、教育辅助、行政办公等6大方向 1. 模型介绍与核心能力 intv_ai_mk11是一款基于Llama架构的中等规模文本生成模型,特别适合处理通用问答、文本改写、解释说明和简短创作等任务。这个模型已经完成了本地部署优化&am… 2026/4/1 0:45:35
压电蜂鸣器驱动方案与警报系统设计实战 1. 警报系统核心器件选型解析在工业控制、安防监控和智能家居领域,清晰可辨的警报声是保障系统可靠性的关键要素。这次我选择的硬件组合是TI的TM4C1294KCPDT微控制器驱动EPT-14A4005P压电蜂鸣器,这个方案在最近参与的智能仓储项目中表现突出。先说结论&a… 2026/7/13 1:51:58
CSV文件读写实战:编码、分隔符与类型安全全解析 1. CSV 文件:数据科学里最不起眼却最不能绕开的“空气”你刚打开 Jupyter Notebook,准备跑第一个机器学习模型,结果卡在了第一行代码上——pd.read_csv("data.csv")报错:FileNotFoundError。你反复确认路径没错… 2026/7/13 1:49:57
C++编程思维训练:从“摆平积木”问题理解算法与实现 1. 项目概述:从“摆平积木”到C编程思维的建立最近在卡码网的C基础课里看到一个挺有意思的题目,叫“摆平积木”。乍一看标题,你可能会觉得这是个玩具问题或者简单的数学题,但实际接触后才发现,这其实是一个绝佳的编程思… 2026/7/13 1:47:57
驱动电路中栅极电阻的计算 1、Rgon的计算合适的栅极电阻可以得到合适的开通时间,或者用来控制dv/dt,两种计算方法分别介绍如下。方法一 根据设定的开通时间计算RgonIGBT开通过程中,在米勒平台结束时CGE 和 CGC 被完全地充电,栅极平均电流可计算如下&#x… 2026/7/13 1:45:56
Fluent喷嘴雾化仿真:TAB、KHRT和Wave破碎模型选择与参数优化指南 在CFD仿真中,喷嘴雾化过程的精度往往决定了整个燃烧或喷雾系统的可靠性。很多工程师在设置Fluent破碎模型时,容易陷入一个误区:认为只要选择一个"高级"模型就能获得准确结果。但实际上,从初次破碎到二次雾化的整个过程&… 2026/7/13 1:45:56
IntelliJ IDEA 从卡顿到起飞,只用改这些。。。 前言今天不聊高并发、不聊架构设计,想和大家聊一个每位Java程序员每天都在用的工具——IntelliJ IDEA。说实话,用了多年IDEA,我踩过不少坑。今天我把最经典的10个坑整理出来,希望能帮大家少走一些弯路。很多小伙伴在工作中肯定也遇… 2026/7/13 1:43:55
HS2-HF Patch终极指南:如何用3步解决Honey Select 2的70+个痛点 HS2-HF Patch终极指南:如何用3步解决Honey Select 2的70个痛点 【免费下载链接】HS2-HF_Patch Automatically translate, uncensor and update HoneySelect2! 项目地址: https://gitcode.com/gh_mirrors/hs/HS2-HF_Patch 你是否曾经在Honey Select 2中遇到过… 2026/7/13 0:01:19
语音转文字工具AsrTools:让音频整理变得简单高效 语音转文字工具AsrTools:让音频整理变得简单高效 【免费下载链接】AsrTools ✨ AsrTools: Smart Voice-to-Text Tool | Efficient Batch Processing | User-Friendly Interface | No GPU Required | Supports SRT/TXT Output | Turn your audio into accurate text … 2026/7/13 0:03:19
基于深度学习的蘑菇或花卉或动漫人物或中草药货水果蔬菜等识别系统31(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_ 基于深度学习的蘑菇或花卉或动漫人物或中草药货水果蔬菜等识别系统31(设计源文件万字报告讲解)(支持资料、图片参考_相关定制)_ 独家界面!不会重复,此项目属于本人原创,若有雷同,均是盗卖,各位买… 2026/7/13 0:05:20
Git reset 与 revert 深度对比:5个关键差异与 3 种典型应用场景 Git Reset 与 Revert 深度对比:5个关键差异与3种典型应用场景在团队协作开发中,代码版本管理如同行走钢丝——一步失误可能导致整个项目陷入混乱。作为Git进阶用户,你是否曾在深夜面对错误的提交束手无策?是否在强制推送后收到同事… 2026/7/12 0:01:13
GitHub 学生包申请避坑:5个常见失败原因与开发者工具调试方案 GitHub 学生包申请技术排障指南:5个高频失败场景与开发者工具实战方案第一次尝试申请GitHub学生包时,我盯着屏幕上那个不断转圈的加载动画整整15分钟,最终只等来了一行冰冷的错误提示。这可能是许多开发者共同的经历——明明按照教程操作&… 2026/7/12 0:01:13
冒烟测试用例设计规范:5%-10%覆盖率下的3类核心场景与执行标准 冒烟测试用例设计的黄金法则:5%-10%覆盖率下的精准筛选策略在快节奏的敏捷开发环境中,冒烟测试作为质量保障的第一道防线,其重要性不言而喻。当测试资源有限而时间紧迫时,如何从海量测试用例中精准筛选出那关键的5%-10%࿰… 2026/7/12 0:03:14