v4.3.19-6: Google 일일 사용량 표시 + 한도 도달시 자동 폴백

- google-usage.ts: Gemini 무료티어 RPD(하루 500회 추정치) 대비 요청 카운트를
  날짜별로 추적(.smallclaw/google-usage.json, 자정 자동 리셋)
- openai-compat-adapter.ts: google provider일 때 post() 호출마다 카운트
- factory.ts: getProvider()/getModelForRole() 둘 다 getEffectiveProviderConfig()
  경유하도록 통일 — 카운트가 480(여유분 20 적용) 넘으면 자동으로
  ollama+deepseek-v4-flash:cloud로 전환(429 맞고 반응하는 게 아니라 사전 차단).
  provider/model 선택이 별도 함수라 따로 고치면 불일치 날 수 있어서 공유
  헬퍼로 묶음
- 메인 채팅 사이드바 모델 pill에 "N/500" 뱃지 추가(Google일 때만 표시,
  70%↑ 노랑/90%↑ 빨강), 기존 10초 폴링(checkStatus)에 얹어서 실시간 반영
- 실사용 확인: 배포 직후 실제 채팅으로 카운트 0→1 증가 확인, 480 시뮬레이션
  으로 폴백 전환/복귀 양쪽 다 확인

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
kim
2026-07-26 17:37:03 +09:00
co-authored by Claude Sonnet 5
parent 814f32a63e
commit a80ad9e809
6 changed files with 107 additions and 2 deletions
+1
View File
@@ -136,6 +136,7 @@
<span style="font-size:11px;color:var(--muted);font-weight:700">모델</span>
<span id="current-provider-badge" style="font-size:11px;font-weight:800;color:var(--muted)"></span>
<span id="current-model" style="overflow:hidden;text-overflow:ellipsis;white-space:nowrap">-</span>
<span id="google-usage-badge" title="Gemini 무료 티어 일일 요청 한도(대략치, 예고없이 바뀔 수 있음)" style="display:none;font-size:10px;font-weight:700;font-family:'IBM Plex Mono',monospace;color:var(--muted);padding:2px 6px;border-radius:6px;background:var(--panel);flex-shrink:0"></span>
<span class="status-pill" style="margin-left:auto;flex-shrink:0;padding:4px 9px;font-size:11px">
<span class="dot" id="ollama-dot"></span>
<span id="ollama-status" style="font-weight:700">확인 중...</span>