Gemini API 多账号轮换池
背景
视觉模型用 Gemini 免费层(gemini-3.6-flash),免费 quota 有限(用完报 429)。用户有多个 Google 账号 → 用多 key 轮换,一个账号 exhausted 自动 fallback 到下一个。
轮换机制
- Hermes 原生支持 Gemini 多 key 自动轮换(
mark_exhausted_and_rotate,key exhausted 自动跳过),无需自建脚本 - key 配置在 Hermes 模型配置(GOOGLE_API_KEY 系列);本文件不存 key 原文(防泄密,key 只存 Hermes 配置)
- 单账号免费 quota 用完约 1 小时重置(429 → 重置后可再用)
轮换池(2026-08-02 配置)
| # | 账号 | 状态 |
|---|---|---|
| 0 | GOOGLE_API_KEY(原默认) | exhausted (429) 自动跳过 |
| 1 | tttttttttze@gmail.com | exhausted (429) 自动跳过 |
| 2 | healthspace.lab@gmail.com | ✅ 可用 |
| 3 | Jinchai135@gmail.com | ✅ 可用(已验证 HTTP 200) |
应用位置(20:43 配置,用户批准)
- fallback 链:deepseek-flash → deepseek-pro → gemini(免费) → openrouter/gpt-4.1(付费兜底,平时几乎碰不到)
- web_extract → gemini-3.6-flash(原 auto→deepseek 花 token)
- compression → gemini-3.6-flash
- 主文本模型:deepseek-v4-flash(不变)
备注
- Gemini 免费层只补视觉缺口;文本缺口已由 Gemini fallback 覆盖,无其他缺口
- 用户后续若提供更多账号 key,直接加进轮换池即可
2026-08-02 深夜教训:compression/web_extract 撤出 Gemini 免费层
- 20:43 曾把 compression + web_extract 指到 gemini-3.6-flash 免费层 → 21:30 告警:compression 30s 超时(免费层额度 ~450 req/天被高频任务烧光,全 key 429 exhausted)+ state.db 写入失败(gateway 重启争锁)
- 已改回 auto(走主模型 deepseek),仅 vision 留 Gemini ✅
- ⚠️ 教训:免费层只留给低频任务(vision);高频辅助任务(压缩/网页提取)用主模型
2026-08-05 凌晨新增:语音转录也走 Gemini 免费层(与视觉共用配额)
- 新用途:个人语音转录(
voice-transcript-learningskill)→ gemini-3.6-flash,prompt 注入词库(约 100 token/条,可忽略) - ⚠️ 实测 429(00:43):当天 computer use 视觉用多了 → 语音转录跟着撞配额 → 证明语音 + 视觉共用同一免费 key 的配额
- 新规则(用户拍板):语音转录永远优先,视觉省着用;撞 429 时自动降级本地 Whisper(
D:\hermesfaster-whisper base/small/large-v3-turbo 已装) - ⚠️ 实测发现 .env 只有 1 个 GOOGLE_API_KEY(无池可轮换)——之前配置的多账号池未生效/未落地;要恢复轮换需把多 key 补回 Hermes 模型配置
- 音频 1 分钟 ≈ 2000 token;免费层额度:语音每天几十条 × 1~5K token + 视觉偶尔 ≈ 几万 token/天,正常够用
- 详见 personal-voice-transcript-learning