Aniket2006 commited on
Commit
83e9fb0
·
1 Parent(s): 56a0fa6

Fix: record_api_call once per query, not per key rotation

Browse files
Files changed (1) hide show
  1. app.py +4 -4
app.py CHANGED
@@ -203,6 +203,9 @@ def call_gemini_api(prompt: str) -> str:
203
  logger.warning("RATE LIMIT EXCEEDED - returning fallback signal")
204
  return "RATE_LIMITED"
205
 
 
 
 
206
  if not GEMINI_API_KEYS:
207
  return "Please configure GEMINI_API_KEY for real responses."
208
 
@@ -215,9 +218,6 @@ def call_gemini_api(prompt: str) -> str:
215
 
216
  for attempt in range(max_retries_per_key):
217
  try:
218
- # Record the call BEFORE making it (counts against limit)
219
- record_api_call()
220
-
221
  response = requests.post(
222
  url,
223
  headers={"Content-Type": "application/json"},
@@ -238,7 +238,7 @@ def call_gemini_api(prompt: str) -> str:
238
  return "No response generated."
239
 
240
  elif response.status_code in [400, 429, 403, 500, 502, 503]:
241
- # Bad request (invalid key), Rate limit, quota exceeded, or server error - try next key
242
  logger.warning(f"API key {current_key_index + 1} got {response.status_code}, rotating...")
243
  get_next_api_key()
244
  keys_tried += 1
 
203
  logger.warning("RATE LIMIT EXCEEDED - returning fallback signal")
204
  return "RATE_LIMITED"
205
 
206
+ # Record ONE API call at the start (not per retry/rotation)
207
+ record_api_call()
208
+
209
  if not GEMINI_API_KEYS:
210
  return "Please configure GEMINI_API_KEY for real responses."
211
 
 
218
 
219
  for attempt in range(max_retries_per_key):
220
  try:
 
 
 
221
  response = requests.post(
222
  url,
223
  headers={"Content-Type": "application/json"},
 
238
  return "No response generated."
239
 
240
  elif response.status_code in [400, 429, 403, 500, 502, 503]:
241
+ # Rate limit, quota exceeded, or server error - try next key
242
  logger.warning(f"API key {current_key_index + 1} got {response.status_code}, rotating...")
243
  get_next_api_key()
244
  keys_tried += 1