Fix API issues
This commit is contained in:
@@ -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):
|
||||||
|
|||||||
Reference in New Issue
Block a user