Fix API issues

This commit is contained in:
2026-02-20 09:31:31 -05:00
parent 0ce071a5f0
commit 442406628a

View File

@@ -52,8 +52,9 @@ class ResilientModel:
try: try:
return self.model.generate_content(*args, **kwargs) return self.model.generate_content(*args, **kwargs)
except Exception as e: except Exception as e:
is_quota = "429" in str(e) or "quota" in str(e).lower() err_str = str(e).lower()
if is_quota and retries < max_retries: is_retryable = "429" in err_str or "quota" in err_str or "500" in err_str or "503" in err_str or "504" in err_str or "deadline" in err_str or "internal error" in err_str
if is_retryable and retries < max_retries:
delay = base_delay * (2 ** retries) delay = base_delay * (2 ** retries)
utils.log("SYSTEM", f"⚠️ Quota error on {self.role} ({self.name}). Retrying in {delay}s...") utils.log("SYSTEM", f"⚠️ Quota error on {self.role} ({self.name}). Retrying in {delay}s...")
time.sleep(delay) time.sleep(delay)
@@ -75,7 +76,7 @@ def get_optimal_model(base_type="pro"):
if not candidates: return f"models/gemini-1.5-{base_type}" if not candidates: return f"models/gemini-1.5-{base_type}"
def score(n): def score(n):
# Prioritize stable models (higher quotas) over experimental/beta ones # Prioritize stable models (higher quotas) over experimental/beta ones
if "exp" in n or "beta" in n: return 0 if "exp" in n or "beta" in n or "preview" in n: return 0
if "latest" in n: return 50 if "latest" in n: return 50
return 100 return 100
return sorted(candidates, key=score, reverse=True)[0] return sorted(candidates, key=score, reverse=True)[0]
@@ -138,7 +139,7 @@ def select_best_models(force_refresh=False):
- ARTIST: Needs visual prompt understanding. - ARTIST: Needs visual prompt understanding.
CONSTRAINTS: CONSTRAINTS:
- Avoid 'experimental' unless no stable version exists. - Avoid 'experimental' or 'preview' unless no stable version exists.
- Prioritize 'latest' or stable versions. - Prioritize 'latest' or stable versions.
OUTPUT_FORMAT (JSON): OUTPUT_FORMAT (JSON):