diff --git a/PROGRESS.md b/PROGRESS.md index 6cdfe16..f45d7fd 100644 --- a/PROGRESS.md +++ b/PROGRESS.md @@ -402,3 +402,24 @@ AI 分析瓶颈: 帧5耗时 229s (疑似 ARM CPU 热降频), 其余帧 50-65s - 摘要行:前缀浅蓝完整日期 `2026-08-20 · 摘要…`(年月日齐全,#7dd3fc) - 摘要截断 26→30 字适配前缀长度,单行不溢出 - 浏览器验证 15 个按钮均正确显示、无排版错乱 + +## Gemini 全量降级 NVIDIA 排查修复 (2026-08-21 00:10, commit eaf4ef3) + +**现象**:UI 事件全是"模型: nvidia",Gemini 不出结果。 + +**排查发现的三个链路问题**: +1. **Gemini 每日配额耗尽(根因)**:`GenerateRequestsPerDayPerProjectPerModel-FreeTier` 每天每模型仅 **20 个请求**(实测 429 响应体 quotaValue=20,模型 gemini-3.7-flash)。日均 30+ 任务,配额烧光后持续 429 → 全部降级 NVIDIA(最近 40 任务:35 nvidia / 4 gemini)。且 429/503 无重试无换模型,一次失败即放弃。 +2. **Edge 日志黑洞**:gunicorn 手动 nohup 启动,stdout/stderr 指向 /dev/null,**所有 Edge 日志全部丢失**,线上问题无法排查。 +3. **配置漂移**:commit 55633d3 当时 nemotron 模型名只改了 Oracle 线上 config 未回传 git 仓库;本次 scp 部署 config 时把线上 nvidia 覆盖回 llama-3.2(丢失原生视频输入能力)。 + +**修复**: +- `gemini_adapter` 抽 `_generate()` 统一模型链调用:`gemini-flash-latest → gemini-flash-lite-latest`(各自独立 20/天配额,合计翻倍);429 立即切换下一模型(当日配额不会恢复,不重试);503 退避 3s 同模型重试一次再切换;视觉分析与问答统一走链 +- config:gemini 增 `fallback_models`;nvidia 恢复 `nemotron-3-nano-omni-30b-a3b-reasoning` + timeout 120(nemotron 实测仍在线 200) +- **systemd 接管 Edge 服务**:`fam-edge.service`(Restart=always + 日志 append 到 `/opt/fam-edge/logs/fam-edge.log`),取代 nohup 黑洞 +- 健康检查校验整条模型链 + +**端到端验证**:task 73(30 分钟视频 12 关键帧)—— flash 429 → lite 1s 接管 → 12 帧直出 JSON → event_52 落库 `provider=["gemini"]`。链路恢复:Gemini flash(20/天) → Gemini lite(20/天) → NVIDIA nemotron 兜底。 + +**经验**: +- Gemini 免费层配额按模型独立计算,多模型 fallback 链是免费层扩容的唯一手段;429 响应体的 `quotaValue` 字段会写明每日上限 +- 线上手动改过的配置必须回传 git 仓库,否则下次部署必然回退(本次真实踩坑)