Lets go
Browse files- 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 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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 |
|