新闻详情

新闻详情

首页 / 资讯中心 / 详情

Pydantic AI 实时会话遇到 Gemini 会话上限断开怎么配置重连恢复

发布时间:2026/9/14 19:28:33来源:尧图网络
Pydantic AI 实时会话遇到 Gemini 会话上限断开怎么配置重连恢复
Pydantic AI 实时会话遇到 Gemini 会话上限断开怎么配置重连恢复【免费下载链接】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用 Pydantic AI 的 realtime 会话接入 Gemini Live 时长通话一定会遇到一个断开点提供方对单条连接时长有上限provider session limitGemini 达到这个上限后连接就会断开。没有恢复机制时这种意外关闭是致命的——RealtimeSession会直接从迭代中抛出RealtimeError整个会话结束。文档给出的做法是把共享设置reconnect设为一个ReconnectPolicyPydantic AI 会带指数退避地重新拨号、重放配置并自动启用 Gemini 会话恢复session resumption把此前的对话轮次带到新连接上不需要改动应用的事件循环。这篇讲怎么配置它、状态如何恢复、以及怎么验证重连真的生效。依据是 Connection lifecycle、Google Gemini Live 与 Troubleshooting 三篇文档。断开前会发生什么先确认你遇到的是这种断开提供方限制单条连接的存活时长长时间通话到达上限即被断开具体时长值以提供方页面为准文档不写死数值。Gemini 会在到达上限前不久发出GoAway。但 Pydantic AI 目前只在连接真正断开后重连不会在GoAway时主动切换所以长通话可能短暂中断在对话轮中间。文档把这一点标记为已知限制项目在 issue 跟踪器上有对应记录。没有reconnect策略时provider 的意外关闭会触发不可恢复的会话错误会话迭代器抛出RealtimeError。所以恢复要覆盖两件事扛住断开本身以及保住会话状态。前者由reconnect策略完成后者由该策略自动开启的 Gemini session resumption 完成配置上是同一个动作。安装与认证准备先安装 Gemini realtime 可选组它打包了google-genaiSDK 和 realtime 传输依赖文档中的pip/uv-add表示用 pip 或 uv 任一方式安装pip/uv-add pydantic-ai-slim[google-realtime]认证沿用GoogleModel的方式Gemini Developer API 用providergoogleVertex AI/ADC 用providergoogle-cloudAPI key 与凭据按 Google model 文档 配置自定义凭据、项目、region 或客户端时传GoogleProvider/GoogleCloudProvider。配置 reconnect 策略把reconnect设为ReconnectPolicy。它可以是模型级默认settings也可以按单次会话通过model_settings传入lifecycle 文档 的示例形式from pydantic_ai import Agent agent Agent() realtime agent.realtime( google:gemini-2.5-flash-native-audio-latest, model_settings{reconnect: {max_attempts: 5}}, )策略里两个字段max_attempts单次断开后允许的重拨次数耗尽后抛出RealtimeError。默认3。max_reconnects整个会话生命周期内允许的总重连次数。max_attempts在重拨成功后会重置单独用它拦不住一个反复断开又反复重连的端点max_reconnects覆盖的正是这种场景。默认50按提供方在时长上限处结束会话、长会话会在该边界合法地续期这一用途给的宽松值。注意不需要手动开google_enable_session_resumption只要存在reconnect策略Gemini 会话恢复就自动启用。反过来如果显式写google_enable_session_resumptionFalse又同时给了策略connect 时直接抛UserError——因为不带恢复的重拨会静默丢掉整个对话框架宁可拒绝也不静默丢上下文。Gemini 侧状态恢复的机制与边界重连时 Pydantic AI 用内存中最新的 server-side handle 重拨并重新应用 instructions、tools、voice 等配置。三条边界要清楚handle 只存在于内存无法持久化到另一个进程进程重启后恢复能力一并消失。如果断开发生在 server 签发 resumption handle 之前签发发生在 connect 后不久state_restored会报False且运行中的工具调用被取消。断开时正在生成中的回复不会被续上Gemini 把它关闭为一个 interrupted response已产出的部分转录保留在 history 里随后才发出RealtimeSessionReconnectEvent并安静等待下一次输入。Troubleshooting 文档对应的排查建议state_restored为False时开始一段新对话为True但某句当前话术消失了说明那段进行中的媒体不在被恢复的已完成轮次历史里属于预期行为。验证重连是否生效验证方式是消费事件流时观察RealtimeSessionReconnectEvent检查其state_restored字段from pydantic_ai.realtime import RealtimeSessionReconnectEvent async with realtime.session() as session: async for event in session: if isinstance(event, RealtimeSessionReconnectEvent): print(reconnected, state_restored , event.state_restored)判断标准来自文档本身事件出现说明一次断开后的重拨成功会话回到监听状态继续工作。state_restoredTrue表示对话被完整带过、没有切断对话轮Gemini 在 server 签发 resumption handle 后即报True。重试次数耗尽仍失败RealtimeError从迭代中抛出——这也是没有恢复的明确信号。限制与错误判断长通话短暂中断 mid-turn 是当前已知行为GoAway不触发主动切换不是配置错误调大max_attempts也改变不了这个时间窗。RealtimeError还覆盖连接失败、握手超时、意外关闭、无效帧这几类情况它继承自ModelAPIError所以except ModelAPIError可以同时兜住 HTTP 与非 HTTP 的 provider 失败。RealtimeSessionErrorEventprovider 操作失败和RealtimeInputTranscriptionErrorEvent单次用户转录失败属于可恢复失败以事件形式到达会话在之后仍然可用不应据此结束通话。更多症状对照可以查 realtime troubleshooting 页provider 无会话上限类问题的通用排查在 troubleshooting 总页。【免费下载链接】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),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

TDengine 接入 icinga2 监控指标:通过 taosAdapter OpenTSDB Telnet 接口实现监控数据入库 2026/9/14 20:25:37

TDengine 接入 icinga2 监控指标:通过 taosAdapter OpenTSDB Telnet 接口实现监控数据入库

TDengine 接入 icinga2 监控指标:通过 taosAdapter OpenTSDB Telnet 接口实现监控数据入库 【免费下载链接】TDengine High-performance, scalable time-series database designed for Industrial IoT (IIoT) scenarios 项目地址: https://gitcode.com/GitHub_Tre…

阅读更多 →
磷酸化蛋白WB实验失败原因与优化方案 2026/9/14 20:25:37

磷酸化蛋白WB实验失败原因与优化方案

1. 磷酸化蛋白WB实验失败原因深度解析Western Blot(WB)作为蛋白质研究中最常用的技术手段之一,在磷酸化蛋白检测领域却让无数科研人员屡屡碰壁。为什么常规蛋白WB能做出来,一到磷酸化蛋白就频频失败?根据我十年蛋白实验…

阅读更多 →
ScyllaDB 编译耗时分析:用 ClangBuildAnalyzer 定位拖慢构建的头文件与模板 2026/9/14 20:25:37

ScyllaDB 编译耗时分析:用 ClangBuildAnalyzer 定位拖慢构建的头文件与模板

ScyllaDB 编译耗时分析:用 ClangBuildAnalyzer 定位拖慢构建的头文件与模板 【免费下载链接】scylladb NoSQL data store using the Seastar framework, compatible with Apache Cassandra and Amazon DynamoDB 项目地址: https://gitcode.com/GitHub_Trending/sc…

阅读更多 →
Python基础作业解析:从语法到实战应用 2026/9/14 20:25:37

Python基础作业解析:从语法到实战应用

1. Python作业解析:从基础语法到实战应用作为一门广泛应用于各个领域的编程语言,Python以其简洁的语法和强大的功能深受开发者喜爱。这次我们将深入探讨Python基础作业中的三个核心题目,通过实际案例帮助初学者掌握关键编程概念。提示&#x…

阅读更多 →
PruneRAG:解决RAG系统证据遗忘与效率塌陷的创新框架 2026/9/14 20:25:37

PruneRAG:解决RAG系统证据遗忘与效率塌陷的创新框架

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
marimo 怎么配置 LLM 提供商和模型路由? 2026/9/14 20:22:37

marimo 怎么配置 LLM 提供商和模型路由?

marimo 怎么配置 LLM 提供商和模型路由? 【免费下载链接】marimo A reactive notebook for Python — run reproducible experiments, query with SQL, execute as a script, deploy as an app, and version with git. Stored as pure Python. All in a modern, AI-…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞