ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

Pydantic AI 流式输出完整指南:如何用 run_stream 让 AI 边生成边响应

Pydantic AI 流式输出完整指南:如何用 run_stream 让 AI 边生成边响应 Pydantic AI 流式输出完整指南如何用 run_stream 让 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-aiPydantic AI 的流式输出streaming让 AI 的回答随生成进程实时刷新而不是憋到最后一整段吐给你。如果你在做聊天界面、实时仪表板或者任何对首字延迟敏感的应用run_stream()就是入口——它让响应在生成的第一秒就开始可见。解决什么问题两个最典型的场景聊天界面里用户盯着空白光标等十几秒体验直接崩掉流式输出让首字延迟几乎降到零。Agent 要生成几百行的 Pydantic 结构化数据agent.run()得等完整 JSON 传完、解析、校验才能返回中间过程完全不可见。两个问题的根源都一样非流式调用是全有或全无。流式模式把结果拆成不断刷新的小快照边到边消费。它是怎么工作的把run_stream()想成打开一场直播。模型每吐出一个片段框架就把目前为止的完整画面递给你一张快照而不是一张张小碎片。debounce_by控制递快照的节奏默认攒 0.1 秒再交一张传None则每个片段到达立刻交。两条消费管道对应两种数据stream_text()交的是累积文本每次都是从头到当前点的全文stream_output()交的是经过 Pydantic 校验的结构化数据。中间帧校验失败时框架直接跳过该帧继续等流结束时再做一次严格终验——所以你看到的每一帧都相对可靠。快速上手从 0 到 1 的 4 步配置环境变量如OPENAI_API_KEY并安装pip install pydantic-ai克隆示例仓库看可运行代码git clone https://gitcode.com/GitHub_Trending/py/pydantic-ai先跑通文本流式 demouv run -m pydantic_ai_examples.stream_markdown终端里会用 rich 实时渲染 markdown换成结构化数据时参考uv run -m pydantic_ai_examples.stream_whales给 Agent 声明output_type把stream_text()换成stream_output()即可核心调用只有这几行文本流式agent Agent(openai:gpt-5.2) async with agent.run_stream(Where does hello world come from?) as result: async for message in result.stream_text(): print(message) # 每次是累积全文随生成增长示例逻辑参考docs/output.md结构化流式则把最后一行换成result.stream_output(debounce_by0.01)每帧拿到一个已经过 Pydantic 校验的部分结果最后一帧是终验后的完整数据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): live.update(render_table(whales)) # 表格随生成逐步填满来源文件examples/pydantic_ai_examples/stream_whales.py常见场景怎么选场景推荐用法注意点聊天 / 终端实时文本run_streamstream_text()每帧是累积全文要增量片段就传deltaTrue结构化数据Pydantic 模型 / TypedDictrun_streamstream_output(debounce_by...)中间帧可能缺字段debounce_byNone会放大校验开销终端渲染 markdownstream_text() rich 的Live实时重绘参考示例 examples/pydantic_ai_examples/stream_markdown.py带副作用的落库 / 通知输出函数里用ctx.partial_output判断部分输出时跳过副作用只对终帧执行踩坑清单问题原因解法stream_text()抛UserError该流方法只支持纯文本输出声明了结构化output_type时改用stream_output()中间帧突然消失、表格空了部分输出未通过 Pydantic 校验该帧被跳过属正常行为终帧保证完整给可选字段留默认值更稳debounce_byNone后卡顿每帧都触发一次完整校验长结构化响应下开销大回到默认0.1或用0.01之类的小值权衡deltaTrue后对话历史里没结果增量模式不会把结果拼成完整字符串存入历史需要历史记录时用非 delta 模式用户不想等了想掐断流还挂着调用result.cancel()停止本地消费并请求远端关闭小结Pydantic AI 的流式能力就三件事run_stream()开流、stream_text()和stream_output()两条管道、debounce_by控制刷新节奏。机制细节见官方文档 流式输出管道实现在 pydantic_ai_slim/pydantic_ai/result.py。【免费下载链接】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),仅供参考
返回列表