Pydantic AI 流式输出实战:从逐字渲染到部分校验
Pydantic AI 流式输出实战从逐字渲染到部分校验【免费下载链接】pydantic-aiHow Python does AI. Agents, realtime voice, image generation, embeddings. Every model, every interface, typed end to end.项目地址: https://gitcode.com/GitHub_Trending/py/pydantic-ai打开聊天页面模型逐字吐出的内容要立刻推到屏幕上而最后拼完的字符串还得通过 JSON Schema 校验才能入库——这是做 AI 应用时很常见的处境。Pydantic AI 的流式输出接口run_stream就是为这件事设计的数据边到边推校验边到边做。官方仓库里的鲸鱼示例里表格每收到一个分片就重渲染一次不用盯着 spinner 等完整响应。它到底在干什么agent.run_stream()返回一个异步上下文管理器内部会先嗅探响应的前几个分片判断这是工具调用还是最终输出然后把流整体交给StreamedRunResult继续迭代。结构化结果走 Pydantic 的部分校验partial validation每个不完整的快照先宽松校验拼完才做全量校验——有点像先报比分、赛后再改错的实时解说。一次流式运行的 span 在追踪系统里长这样30 秒跑通最小示例import asyncio from pydantic_ai import Agent agent Agent(openai:gpt-5.2) async def main(): async with agent.run_stream(Where does hello world come from?) as result: async for message in result.stream_text(): print(message) asyncio.run(main())来源output.md关键是run_stream的上下文管理器写法——流结束时连接才会真正关闭而stream_text()每次 yield 的是累积的完整文本快照不是增量所以直接覆盖渲染即可。按场景拆用法 让表格数据边生成边刷新适合结构化数据要实时展示的仪表盘场景。agent Agent(openai:gpt-5.2, output_typelist[Whale]) async with agent.run_stream(Generate me details of 5 species of Whale.) as result: async for whales in result.stream_output(debounce_by0.01): render_table(whales) # 每次用完整快照重渲染来源stream_whales.py容易忽略的是debounce_by默认 0.1 秒合并一次分片长响应下能明显减少校验开销传None则是分片到了就 yield。注意output_type默认走 Tool Output 模式模型不支持流式工具参数时得改用 Native/Prompted Output否则流不动。逐字推送到屏幕聊天 UI 要打字机效果时用stream_text(deltaTrue)yield 的是原始增量适合直接append到界面。两个坑要心里有数delta 模式会跳过 output validator且最终消息不会写入result的消息历史——需要多轮上下文续接时还是用默认的快照模式。工具调用的中间结果要实时回传模型先调工具再出结论时run_stream只关心最终输出。想拿到工具调用的增量事件改用agent.iter()迭代每个节点的AgentStream看到FinalResultEvent后再切到stream.stream_output()拿校验过的部分结果。记住AgentStream是一次性迭代器切走后剩余原始事件就被消耗了想全量留痕就用run_stream_events()。踩坑与排障结构化结果迟迟不出现先查模型的流式工具参数支持。output_type默认是 Tool Output 模式模型不支持流式工具参数时输出根本流不出来切 Native Output 或 Prompted Output 即可细节见 docs/output.md。渲染内容越拼越多把快照当增量了。stream_output()每个值都是累积快照字段没凑够通过部分校验前会整个缺席正确姿势是每次用快照整体替换渲染而不是 append。流到一半断掉分层看重试。传输层、Provider SDK 层的重试对 agent 完全不可见agent 层的retries{output: N}每次重试都多花一次模型请求且各层预算相乘3×3×2 一次逻辑调用可能打出 18 个请求全貌见 docs/retries.md。点了停止还在扣 tokenresult.cancel()只断本地流。它关闭底层模型流但 Google、xAI、Hugging Face 的 SDK 不保证远端生成立刻停止计费以各 provider 文档为准。怎么选需求用哪个只要纯文本stream_text()快照模式打字机逐字效果stream_text(deltaTrue)结构化数据边生成边校验stream_output(debounce_by...)自己控制校验时机stream_response()validate_response_output(allow_partial...)流式拿工具调用中间事件agent.iter()或run_stream_events()⚠️ 判断顺序先看要的是文本还是结构再看要不要中间事件最后才调debounce_by这类参数。流式结果的核心实现在 pydantic_ai_slim/pydantic_ai/result.pyStreamedRunResult的每个方法签名都带了行为说明排障时对照着看最快。【免费下载链接】pydantic-aiHow Python does AI. Agents, realtime voice, image generation, embeddings. Every model, every interface, typed end to end.项目地址: https://gitcode.com/GitHub_Trending/py/pydantic-ai创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

oh-my-openagent 遥测质量保障实战:并发波组装器与 eval 三桶分类器的对抗性验证

oh-my-openagent 遥测质量保障实战:并发波组装器与 eval 三桶分类器的对抗性验证

人工智能AI Agent代码智能体多智能体MCP ClientsAgent 编排 【免费下载链接】oh-my-openagent OmO: Just type "mass ulw" keyword with your prompt. Now you are the master of graph engineering. 项目地址: https://gitcode.com/gh_mirrors/oh/oh-my-…

2026/9/21 23:45:51 阅读更多 →
TDengine 无代码接入 Pulsar-Tuya:通过 taosExplorer 构建涂鸦云数据同步任务

TDengine 无代码接入 Pulsar-Tuya:通过 taosExplorer 构建涂鸦云数据同步任务

TDengine 无代码接入 Pulsar-Tuya:通过 taosExplorer 构建涂鸦云数据同步任务 【免费下载链接】tdengine TDengine is an open source, high-performance, cloud native time-series database optimized for Internet of Things (IoT), Connected Cars, Industrial …

2026/9/22 2:29:25 阅读更多 →
深入 Rome 诊断类别注册表:rome_diagnostics_categories 的静态注册与构建脚本代码生成机制

深入 Rome 诊断类别注册表:rome_diagnostics_categories 的静态注册与构建脚本代码生成机制

深入 Rome 诊断类别注册表:rome_diagnostics_categories 的静态注册与构建脚本代码生成机制 【免费下载链接】tools Unified developer tools for JavaScript, TypeScript, and the web 项目地址: https://gitcode.com/gh_mirrors/to/tools 本文围绕 Rome&am…

2026/9/21 23:46:31 阅读更多 →

最新新闻

t188原理详解:手写实现核心逻辑,拒绝API黑盒

t188原理详解:手写实现核心逻辑,拒绝API黑盒

t188原理详解:手写实现核心逻辑,拒绝API黑盒 版本升级后 API 全变了?别慌,这才是学习的好时机。 很多应届生刚接触底层源码,总觉得那是大佬的专利,离自己很远。其实,当你发现官方接口突然改变行为,或者性能瓶颈卡死时, 手写实现…

2026/9/22 2:29:24 阅读更多 →
Chrome 23 报错全解:一文搞懂老版本适配实战

Chrome 23 报错全解:一文搞懂老版本适配实战

Chrome 23 报错全解:一文搞懂老版本适配实战 看了一堆教程还是不会写项目?别慌,这通常不是代码逻辑错了,而是环境兼容性没兜住。Chrome 23…

2026/9/22 2:29:24 阅读更多 →
注册表删除软件源码解析:3步搞定残留清理,避开90%新手坑

注册表删除软件源码解析:3步搞定残留清理,避开90%新手坑

注册表删除软件源码解析:3步搞定残留清理,避开90%新手坑 看了一堆教程还是不会写项目?别慌,这太正常了。 很多兄弟卡在“原理懂了但代码跑不通”或者“代码能跑但不知道为啥”的尴尬期。…

2026/9/22 2:29:23 阅读更多 →
index函数与imtoken官网对比选型

index函数与imtoken官网对比选型

搞懂 index 函数,面试高频题不再慌 面试被问原理答不上来,那种尴尬感谁懂?上周陪朋友面大厂后端,面试官轻飘飘一句:“说说 index 函数底层怎么实现的,时间复杂度是多少?”朋友卡壳三秒,开始背八股文,结果越说越乱。这就是典型的…

2026/9/22 2:29:23 阅读更多 →
3天搞懂冥想培训底层逻辑,一文讲透代码实现

3天搞懂冥想培训底层逻辑,一文讲透代码实现

3天搞懂冥想培训底层逻辑,一文讲透代码实现 官方文档太厚像砖头,翻两页就睡?别慌。 咱们今天不背概念,直接上手写代码。 用 Python 模拟一套完整的冥想培训管理系统,让你 一文搞懂 其中的业务闭环。…

2026/9/22 2:28:23 阅读更多 →
5分钟搞懂怎么选股底层逻辑新手避坑指南

5分钟搞懂怎么选股底层逻辑新手避坑指南

5分钟搞懂怎么选股底层逻辑新手避坑指南 刚打开K线软件,满屏的红绿柱子晃得眼睛疼,想找个代码写个策略,结果IDE里StackTrace报错一堆,根本看不懂。很多刚接触量化或者想自学Python做交易辅助的新手,最容易栽在这一步:以为选股就是…

2026/9/22 2:28:22 阅读更多 →

日新闻

3台商务办公笔记本实测:手写实现环境配置,告别卡半天

3台商务办公笔记本实测:手写实现环境配置,告别卡半天

3台商务办公笔记本实测:手写实现环境配置,告别卡半天 配置环境就卡半天?别怪机器慢,多半是你没选对工具链。在Java、Go或Python的项目现场, 手写实现…

2026/9/22 0:00:41 阅读更多 →
剑帝加点速查手册:3分钟搞懂核心逻辑

剑帝加点速查手册:3分钟搞懂核心逻辑

剑帝加点速查手册:3分钟搞懂核心逻辑 面试被问原理答不上来,是不是常态?别慌。很多开发者对着 GitHub 开源仓库里的代码发呆,看似简单实则暗藏玄机。今天这份【剑帝加点】速查手册,直接带你拆解核心实现,把面试必考的原理讲透。…

2026/9/22 0:00:41 阅读更多 →
手写实现图片压缩网站核心:搞定WebP转换与质量调优

手写实现图片压缩网站核心:搞定WebP转换与质量调优

手写实现图片压缩网站核心:搞定WebP转换与质量调优 复制来的代码跑不通不知道怎么调?别慌,这种“复制粘贴地狱”在开发圈太常见了。尤其是做 图片压缩网站…

2026/9/22 0:00:41 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/21 3:13:20 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/21 2:19:36 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/21 4:51:05 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/21 15:36:51 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/21 15:36:51 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/19 23:35:34 阅读更多 →