AI Agent白手起家26: 使用标准事件驱动大模型实践
纲要练习目标掌握大模型标准事件的调用回顾 LangChain 中的核心标准事件invokestreambatchastream_eventswith_structured_output环境准备实战代码多种事件调用对比同步调用与流式输出批量处理异步事件流监听结构化输出运行说明与预期结果总结与扩展建议练习目标在学习完大模型组件的理论知识后动手实践是巩固的最佳途径。本次练习的目标是使用任意已申请到的大模型资源无论来自 OpenAI、DeepSeek、Anthropic 等云端 API还是通过 Ollama 运行的本地模型通过 LangChain 的标准事件接口来驱动模型实际感受不同调用方式的行为差异。你将学会如何优雅地切换同步调用、流式输出、批量处理、异步事件流以及结构化输出为后续开发 AI Agent 打下坚实基础。核心标准事件回顾LangChain 对大模型组件抽象了统一的调用接口下表对比了最常用的五种事件事件调用方式适用场景返回类型invoke同步阻塞返回完整结果后台任务、批处理脚本AIMessagestream同步迭代逐 token 产出聊天机器人前端、实时反馈Iterator[chunk]batch并发发送多个请求批量评估、数据增强list[AIMessage]astream_events异步流式按事件类型精细控制需要监听开始/结束/流式进度AsyncIterator[event]with_structured_output基于 Pydantic 模型的结构化输出下游系统对接、JSON 解析Pydantic 实例下面的流程图展示了从调用到输出的决策路径否否是是否是开始调用需要流式?需要结构化输出?使用 invoke使用 with_structured_output invoke需要异步事件?使用 stream使用 astream_events返回完整 AIMessage逐 chunk 输出按事件回调环境准备本示例使用 OpenAI 的 GPT-3.5-turbo 模型成本较低适合练习。请先安装依赖并设置 API 密钥。pipinstalllangchain-openai pydantic确保环境变量OPENAI_API_KEY已设置为你的有效密钥。若使用本地模型如 Ollama可将ChatOpenAI替换为ChatOllama并修改base_url即可。实战代码一次演示所有事件以下代码将连续演示invoke、stream、batch、astream_events和with_structured_output五种调用方式。importos,asynciofrompydanticimportBaseModel,Fieldfromlangchain_openaiimportChatOpenAI# ---------- 初始化模型 ----------llmChatOpenAI(modelgpt-3.5-turbo,temperature0.7,api_keyos.getenv(OPENAI_API_KEY),)# ---------- 1. invoke同步调用 ----------print( 1. invoke 同步调用 )responsellm.invoke(用一句话介绍 Python 语言)print(完整回答:,response.content)print(Token 用量:,response.usage_metadata)print()# ---------- 2. stream流式输出 ----------print( 2. stream 流式输出 )print(模型输出: ,end,flushTrue)forchunkinllm.stream(写一首关于编程的七言绝句):print(chunk.content,end,flushTrue)print(\n)# ---------- 3. batch批量处理 ----------print( 3. batch 批量处理 )questions[什么是上下文窗口,Token 是什么,工具调用有什么作用]resultsllm.batch(questions)forq,rinzip(questions,results):print(fQ:{q}\nA:{r.content}\n)# ---------- 4. astream_events异步事件流 ----------asyncdefdemo_astream_events():print( 4. astream_events 异步事件流 )asyncforeventinllm.astream_events(解释什么是深度学习,versionv2):kindevent[event]ifkindon_chat_model_start:print([模型开始响应])elifkindon_chat_model_stream:dataevent[data][chunk]ifdata.content:print(data.content,end,flushTrue)elifkindon_chat_model_end:print(\n[模型响应结束])outputevent[data][output]ifoutput.usage_metadata:print(Token 用量:,output.usage_metadata)asyncio.run(demo_astream_events())print()# ---------- 5. with_structured_output结构化输出 ----------print( 5. with_structured_output 结构化输出 )classProgrammingJoke(BaseModel):程序员笑话setup:strField(description笑话的铺垫)punchline:strField(description笑话的包袱/笑点)rating:int|NoneField(defaultNone,description好笑程度 1-10)structured_llmllm.with_structured_output(ProgrammingJoke)jokestructured_llm.invoke(给我讲一个编程相关的笑话)print(f铺垫:{joke.setup})print(f笑点:{joke.punchline})print(f评分:{joke.rating})将以上代码保存为practice.py运行后你将直观看到每种事件的特点invoke等待完整回复后一次性打印。stream逐字出现模拟打字机效果。batch同时发送三个问题按列表顺序返回答案。astream_events在流式输出的前后触发了开始和结束事件并报告了 Token 用量。with_structured_output返回了一个可直接读属性的 Pydantic 对象无需手动解析 JSON。扩展建议尝试替换模型将ChatOpenAI改为ChatAnthropic需要langchain-anthropic或ChatOllama看看事件支持是否一致。为batch处理加入进度条使用tqdm提升批处理体验。在astream_events中捕获更多事件类型如on_chat_model_stream的详细元数据实现自定义日志记录。结合之前学习的工具调用bind_tools在stream模式下处理工具请求构建更真实的 Agent 交互。动手练习是内化知识的最佳方式尝试修改代码、切换模型、观察输出差异你会对大模型的标准事件有更深刻的理解。

相关新闻

clusterd部署模块深度剖析:WAR文件上传与远程代码执行全流程

clusterd部署模块深度剖析:WAR文件上传与远程代码执行全流程

clusterd部署模块深度剖析:WAR文件上传与远程代码执行全流程 【免费下载链接】clusterd application server attack toolkit 项目地址: https://gitcode.com/gh_mirrors/cl/clusterd clusterd作为一款专业的application server attack toolkit,其…

2026/8/3 23:59:40 阅读更多 →
从HDFS到Flink:大数据核心原理、实战调优与AI融合转型指南

从HDFS到Flink:大数据核心原理、实战调优与AI融合转型指南

1. 项目概述:从课后习题到实战能力的跨越 最近在后台和社群里,看到不少同学在找《大数据技术原理与应用》这本书的课后习题答案。这让我想起了自己刚入行那会儿,面对Hadoop、Spark这些庞然大物,也是从啃教材、做习题开始的。但说实…

2026/8/3 23:59:40 阅读更多 →
Notablog API参考:开发者必看的Notion数据交互指南

Notablog API参考:开发者必看的Notion数据交互指南

Notablog API参考:开发者必看的Notion数据交互指南 【免费下载链接】notablog Tell stories of your work with Notion 项目地址: https://gitcode.com/gh_mirrors/no/notablog Notablog是一款能从Notion表格生成极简博客的工具,让你可以用Notion…

2026/8/3 23:59:40 阅读更多 →

最新新闻

3.1代码版本管理与持续集成实践指南

3.1代码版本管理与持续集成实践指南

1. 项目背景与核心价值"3.1代码"这个看似简单的数字组合,在开发者社区中其实蕴含着特定的技术含义。作为从业十余年的全栈工程师,我最初接触这个术语是在处理企业级应用版本控制时遇到的典型场景。本质上,这是指代特定版本分支的简…

2026/8/4 0:31:51 阅读更多 →
什么是智慧园区AR导览系统

什么是智慧园区AR导览系统

在数字化转型的深水区,智慧园区的建设正从单纯的“数据可视化大屏”向“空间交互与业务闭环”演进。传统的二维地图或静态3D模型已无法满足复杂场景下的即时信息获取需求,而基于增强现实(AR)技术的智慧园区导览系统,正…

2026/8/4 0:30:51 阅读更多 →
腾讯混元领衔:当AI训练“开小差“,找到了让它重新“上轨道“的方法

腾讯混元领衔:当AI训练“开小差“,找到了让它重新“上轨道“的方法

这项研究由腾讯混元大模型前沿团队、新加坡国立大学、马里兰大学帕克分校、佐治亚大学及印第安纳大学的研究人员联合完成,论文于2026年7月22日发布,编号为arXiv:2607.18722,感兴趣的读者可通过该编号查询完整原文。一、训练大模型&#xff0c…

2026/8/4 0:30:51 阅读更多 →
宠物喂食系统毕设论文指导

宠物喂食系统毕设论文指导

CSDN专栏: 嵌入式程序开发实战 嵌入式双范式AI编程 嵌入式开发必掌握 嵌入式求职面试技术资料 项目源码下载:点击此处下载完整工程源码 宠物喂食系统毕设论文指导 论文写作概述 本文指导如何基于宠物喂食项目撰写毕业设计论文,包括论文框架、各章节写作要点、图表绘制规范…

2026/8/4 0:29:51 阅读更多 →
跨境电商AI龙虾工具:多平台自主运营AI工具横向深度测评

跨境电商AI龙虾工具:多平台自主运营AI工具横向深度测评

2026年跨境行业调研数据显示,七成多平台卖家日均要在6至8款运营SaaS间切换,数据割裂、重复操作持续压缩利润空间,主打自主执行的AI龙虾类工具成为行业刚需,本文横向拆解四款垂直产品的技术架构与落地适配场景。StoreClaw&#xff…

2026/8/4 0:29:51 阅读更多 →
可信数据空间技术:构建安全高效的数据共享网络

可信数据空间技术:构建安全高效的数据共享网络

1. 可信数据空间技术概述数据要素市场化配置已成为数字经济发展的核心驱动力。可信数据空间作为数据流通的新型基础设施,正在全球范围内引发广泛关注。这项技术本质上构建了一个去中心化的数据协作网络,使参与方能够在确保数据主权的前提下实现安全可控的…

2026/8/4 0:29:51 阅读更多 →

日新闻

AI Agent白手起家26: 使用标准事件驱动大模型实践

AI Agent白手起家26: 使用标准事件驱动大模型实践

纲要 练习目标:掌握大模型标准事件的调用回顾 LangChain 中的核心标准事件 invokestreambatchastream_eventswith_structured_output 环境准备实战代码:多种事件调用对比 同步调用与流式输出批量处理异步事件流监听结构化输出 运行说明与预期结果总结与扩…

2026/8/4 0:00:40 阅读更多 →
dealsea是什么?跨境卖家必知的美国deal站入门指南

dealsea是什么?跨境卖家必知的美国deal站入门指南

说实话,第一次听说美国这个老牌折扣网站的跨境卖家,十个有八个会问同一个问题:这个平台到底是干嘛的?我见过一个做家居出口的朋友,他在亚马逊上月销二十万美金,却从来没用过它。我给他看了首页——一屏一屏…

2026/8/4 0:01:40 阅读更多 →
清华大学重磅EST:植物自导电闪蒸焦耳热600°C/2600°C两步法!稀土超积累植物秒级转化为CeO₂-石墨烯电催化剂!

清华大学重磅EST:植物自导电闪蒸焦耳热600°C/2600°C两步法!稀土超积累植物秒级转化为CeO₂-石墨烯电催化剂!

通讯作者:邓兵、刘建国通讯单位:清华大学DOI:https://doi.org/10.1021/acs.est.6c00603研究背景稀土元素(REEs)是清洁能源技术与电子器件不可或缺的核心原料,然而传统提取方式依赖能耗高、排放大的采矿与强…

2026/8/4 0:01:40 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/3 4:58:13 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/3 1:53:31 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/3 4:36:35 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/3 13:07:03 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/3 5:19:38 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/3 8:27:36 阅读更多 →