☰
PanWatch AI 服务商 Failover 机制:DeepSeek 挂了自动切 Ollama 本地模型
2026/10/1 15:36:15 网站建设 项目流程

PanWatch AI 服务商 Failover 机制:DeepSeek 挂了自动切 Ollama 本地模型

【免费下载链接】PanWatchPanWatch — AI stock monitoring for A-shares, HK & US markets, powered by TradingAgents. Portfolio insights, real-time alerts & automated reports.|盯盘侠:覆盖 A股/港股/美股的 AI 盯盘、持仓分析、实时提醒与自动报告。项目地址: https://gitcode.com/GitHub_Trending/pa/PanWatch

做 AI 盯盘最怕什么?行情不等人,而 AI 服务商可能随时限流、超时甚至宕机。PanWatch(盯盘侠)针对 A 股 / 港股 / 美股的 AI 盯盘、持仓分析与自动报告,内置了一套模型级 Failover 机制:主模型(如 DeepSeek)调用失败时,系统按错误类别自动摘参重试或降级到下一个候选模型(例如本地 Ollama),并记录冷却窗口,让盯盘提醒、盘前分析、盘后日报这些关键链路"少停一秒是一秒"。

为什么要给 AI 调用做 Failover?

PanWatch 里几乎每个核心功能都要调用大模型:盘前分析、盘中监测、盘后日报、TradingAgents 深度分析、价格提醒的 AI 解读……它们都走同一条 AI 调用链路。一旦服务商故障:

  • 超时 / 5xx:行情时段模型响应变慢,调用超时;
  • 限流 / 配额耗尽:高频盯盘场景下 429 并不罕见;
  • 鉴权失效 / 服务挂:Key 过期或服务端直接宕机。

没有降级能力时,这些失败会直接传导到用户:报告不生成、提醒不推送。PanWatch 的方案是借鉴数据源侧久经考验的负缓存冷却模式(kline_collector 的_FAIL_UNTIL),给 AI 调用补齐"主模型失败自动切备选"的运行时能力,核心实现就在 src/platform/ai/ai_failover.py。

三步看懂 Failover 的候选链

  1. 候选链构建:主模型排第一,其余按库里is_default优先、id 顺序补齐(最多 3 个备选),全部复用"设置 → AI 服务商"里已配置的 OpenAI 兼容服务(OpenAI / 智谱 / DeepSeek / Ollama 均可),无需新增全局配置。
  2. 按错误类别分流:这是 Failover 的关键——不是所有失败都换模型。
  3. 冷却 + 恢复探测:失败候选进入 60 秒冷却窗口,窗口内直接跳过不再联网;窗口过期后自然再试,成功即清除冷却标记。

错误分类:三种处理策略

错误类别典型场景处理方式
参数不兼容模型不接受temperature参数摘掉参数重试同一模型一次
可降级超时、5xx、限流(429)、鉴权失效(401)、服务挂切到下一候选模型并记入冷却
致命错误prompt / 内容策略类错误直接抛出(换模型也会同样失败)

这套分流逻辑在 ai_failover.py 的classify_ai_error中实现;一个容易忽略的细节是401 鉴权失效也会触发切换——因为备用服务商(比如本地 Ollama)的 Key 可能依然有效,直接失败反而是浪费机会。

流式输出的特殊处理

AI 对话是流式输出的,这里有个安全边界:一旦已经向前端产出过 token,再失败就无法回滚,此时 Failover 不能"偷偷换模型"(否则回答会从一半开始变"口音")。因此流式路径只覆盖"首个 token 之前"的失败——首包之后异常直接透出给用户,这也是 ai_failover.py 中chat_stream的设计取舍。

怎么验证它生效了?

PanWatch 把 Failover 做成了可观测的:

  • used_model_label:实际跑通的模型标签会记入运行记录(agent_runs 落库),你在运行历史里看到的模型就是"真正干活的那个";
  • 切换告警日志:发生降级时打印带trace_id的 warning 日志,排查时能直接串起整条链路;
  • 全量单测覆盖:tests/test_ai_failover.py 用 mock 覆盖了错误分流、冷却与恢复探测、流式切换边界、候选链构建等全部关键路径。

也就是说,当某天 DeepSeek 大面积限流,你看到的不是一堆报错,而是运行记录里的模型悄悄变成了Ollama/qwen2.5之类的本地模型——盯盘不停机,这就是 Failover 的意义。

快速上手:配置多服务商让 Failover 生效

  1. 设置 → AI 服务商:添加至少一个主服务商(如 DeepSeek)和一个备服务商(如本地 Ollama 的http://localhost:11434/v1),均为 OpenAI 兼容 API;
  2. 给备模型配置好 Key 与模型名,系统会自动按默认模型优先的顺序挂入候选链;
  3. 无需任何额外开关,Failover 随每次 AI 调用自动生效。

更多架构细节可阅读 src/ARCHITECTURE.md 与 README.zh-CN.md。

小结

PanWatch 的 AI Failover 机制用"错误分类 + 负缓存冷却 + 候选链降级"三板斧,把单点依赖某一家模型服务商的风险降到最低:参数问题就地修复,服务问题自动切换,内容问题快速失败不空转。对新手来说只需把两个服务商配好,剩下的交给它——行情不停,你的 AI 盯盘也不该停。

【免费下载链接】PanWatchPanWatch — AI stock monitoring for A-shares, HK & US markets, powered by TradingAgents. Portfolio insights, real-time alerts & automated reports.|盯盘侠:覆盖 A股/港股/美股的 AI 盯盘、持仓分析、实时提醒与自动报告。项目地址: https://gitcode.com/GitHub_Trending/pa/PanWatch

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询