Soumik555 commited on
Commit
7a95386
·
1 Parent(s): 0b01c12
Files changed (1) hide show
  1. controller.py +19 -2
controller.py CHANGED
@@ -214,11 +214,13 @@ def groq_chat(csv_url: str, question: str):
214
  except Exception as e:
215
  error_message = str(e)
216
  if "429" in error_message:
 
217
  with current_groq_key_lock:
218
  current_groq_key_index += 1
219
  if current_groq_key_index >= len(groq_api_keys):
220
  return {"error": "All API keys exhausted."}
221
  else:
 
222
  return {"error": error_message}
223
 
224
  # Modified langchain_csv_chat with thread-safe key rotation
@@ -263,7 +265,14 @@ def langchain_csv_chat(csv_url: str, question: str, chart_required: bool):
263
  return result.get("output")
264
 
265
  except Exception as e:
266
- logger.error(f"Error with key index {current_key}: {str(e)}")
 
 
 
 
 
 
 
267
 
268
  return {"error": "All API keys exhausted"}
269
 
@@ -737,8 +746,16 @@ def langchain_csv_chart(csv_url: str, question: str, chart_required: bool):
737
  logger.info(f"Langchain chart error (key {current_key}): {output}")
738
 
739
  except Exception as e:
740
- logger.error(f"Langchain chart error (key {current_key}): {str(e)}")
 
 
 
 
 
 
 
741
 
 
742
  return "Chart generation failed after all retries"
743
 
744
 
 
214
  except Exception as e:
215
  error_message = str(e)
216
  if "429" in error_message:
217
+ logger.warning("Rate limit exceeded. Switching to next API key.")
218
  with current_groq_key_lock:
219
  current_groq_key_index += 1
220
  if current_groq_key_index >= len(groq_api_keys):
221
  return {"error": "All API keys exhausted."}
222
  else:
223
+ logger.error("Error in groq_chat: %s", e)
224
  return {"error": error_message}
225
 
226
  # Modified langchain_csv_chat with thread-safe key rotation
 
265
  return result.get("output")
266
 
267
  except Exception as e:
268
+ error_message = str(e)
269
+ if "429" in error_message:
270
+ with current_langchain_chart_lock:
271
+ current_langchain_chart_key_index = (current_langchain_chart_key_index + 1) % len(groq_api_keys)
272
+ logger.warning(f"Rate limit exceeded. Switching to next API key: {groq_api_keys[current_langchain_chart_key_index]}")
273
+ else:
274
+ logger.error(f"Error with API key {api_key}: {error_message}")
275
+ return {"error": error_message}
276
 
277
  return {"error": "All API keys exhausted"}
278
 
 
746
  logger.info(f"Langchain chart error (key {current_key}): {output}")
747
 
748
  except Exception as e:
749
+ error_message = str(e)
750
+ if "429" in error_message:
751
+ with current_langchain_chart_lock:
752
+ current_langchain_chart_key_index = (current_langchain_chart_key_index + 1) % len(groq_api_keys)
753
+ logger.warning(f"Rate limit exceeded. Switching to next API key: {groq_api_keys[current_langchain_chart_key_index]}")
754
+ else:
755
+ logger.error(f"Error with API key {api_key}: {error_message}")
756
+ return {"error": error_message}
757
 
758
+ logger.error("All API keys exhausted for chart generation")
759
  return "Chart generation failed after all retries"
760
 
761