A day of replay runs (server-26#170) spent ~$5 of Gemini on ~7 two-hour windows (~$0.70 per 290 calls) — several dollars a day per live deployment for correlation alone — and nothing could say where it went (#45). Gemini 3.x thinks by default and bills it as output; the deprecated google-generativeai SDK these calls used cannot set a thinking level. - app/internal/gemini.py: every Gemini call (correlation + transcript correction) goes through google-genai with JSON mode, an explicit thinking level, and logs in/out/thinking tokens. A model that rejects the level is retried without it once and remembered, so the tier is never lost to a config param. API failures still raise for ai_health. - correlator: thinking_level "minimal" (a link/new/orphan choice). transcript correction: "low" until a replay shows minimal is safe. - replay: runs record real Gemini token usage (metrics.gemini_usage), shown in the Replay tab. - requirements: google-genai. c2-core: 474 pass. Frontend typecheck not run (no Node on this box). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
15 lines
188 B
Plaintext
15 lines
188 B
Plaintext
fastapi
|
|
uvicorn[standard]
|
|
pydantic-settings
|
|
paho-mqtt>=2.0.0
|
|
firebase-admin
|
|
google-cloud-storage
|
|
openai
|
|
google-generativeai
|
|
google-genai
|
|
numpy
|
|
httpx
|
|
python-multipart
|
|
pytest
|
|
pytest-asyncio
|