trish06 commited on
Commit
bb15a1c
·
verified ·
1 Parent(s): 3acffda

rate limit chcek

Browse files
Files changed (1) hide show
  1. backend/main.py +25 -1
backend/main.py CHANGED
@@ -187,7 +187,31 @@ def call_groq_with_backoff(client: Groq, messages: list) -> str:
187
  if "413" in err or "too large" in err.lower() or "rate_limit_exceeded" in err.lower():
188
  attempt += 1
189
  if attempt >= len(word_limits):
190
- raise ValueError("Request too large even after maximum reductions.,"+err[:100])
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
191
  new_limit = word_limits[attempt]
192
  for msg in messages:
193
  if msg["role"] == "user":
 
187
  if "413" in err or "too large" in err.lower() or "rate_limit_exceeded" in err.lower():
188
  attempt += 1
189
  if attempt >= len(word_limits):
190
+ if "429" in err:
191
+
192
+ retry_after = None
193
+
194
+ try:
195
+ # Try to read headers if available
196
+ if hasattr(e, "response") and e.response:
197
+
198
+ headers = getattr(e.response, "headers", {})
199
+
200
+ retry_after = headers.get("retry-after")
201
+
202
+ except Exception:
203
+ pass
204
+
205
+ if retry_after:
206
+ raise ValueError(
207
+ f"Rate limit exceeded. Retry after {retry_after} seconds."
208
+ )
209
+
210
+ else:
211
+ raise ValueError(
212
+ "Rate limit exceeded. Retry later."
213
+ )
214
+ raise ValueError("Request too large even after maximum reductions.")
215
  new_limit = word_limits[attempt]
216
  for msg in messages:
217
  if msg["role"] == "user":