fix: SyntaxError global declaration must be at function top not inside with-block
This commit is contained in:
@@ -32,6 +32,8 @@ def get_ai_analysis(weather_insights: str, city_name: str, temp_symbol: str) ->
|
|||||||
logger.warning("GROQ_API_KEY 未配置,跳过 AI 分析")
|
logger.warning("GROQ_API_KEY 未配置,跳过 AI 分析")
|
||||||
return ""
|
return ""
|
||||||
|
|
||||||
|
global _rate_limit_until # 必须在函数顶部声明,不能放在 with 块内
|
||||||
|
|
||||||
# ── 缓存配置 ─────────────────────────────────────────
|
# ── 缓存配置 ─────────────────────────────────────────
|
||||||
cache_ttl = int(os.getenv("GROQ_CACHE_TTL_SEC", "1200")) # 默认 20 分钟
|
cache_ttl = int(os.getenv("GROQ_CACHE_TTL_SEC", "1200")) # 默认 20 分钟
|
||||||
rl_cooldown = int(os.getenv("GROQ_RATE_LIMIT_COOLDOWN_SEC", "600")) # 默认 10 分钟
|
rl_cooldown = int(os.getenv("GROQ_RATE_LIMIT_COOLDOWN_SEC", "600")) # 默认 10 分钟
|
||||||
@@ -51,7 +53,6 @@ def get_ai_analysis(weather_insights: str, city_name: str, temp_symbol: str) ->
|
|||||||
|
|
||||||
# ── 全局 429 冷却期检查 ───────────────────────────────
|
# ── 全局 429 冷却期检查 ───────────────────────────────
|
||||||
with _rate_limit_lock:
|
with _rate_limit_lock:
|
||||||
global _rate_limit_until
|
|
||||||
if now < _rate_limit_until:
|
if now < _rate_limit_until:
|
||||||
remaining = int(_rate_limit_until - now)
|
remaining = int(_rate_limit_until - now)
|
||||||
logger.warning(f"Groq 冷却期中,还需等待 {remaining}s,跳过本次请求")
|
logger.warning(f"Groq 冷却期中,还需等待 {remaining}s,跳过本次请求")
|
||||||
@@ -163,7 +164,6 @@ P4 **预报背景**(最低优先级):
|
|||||||
if status == 429:
|
if status == 429:
|
||||||
# 触发限流:设置全局冷却期,后续请求不再尝试
|
# 触发限流:设置全局冷却期,后续请求不再尝试
|
||||||
with _rate_limit_lock:
|
with _rate_limit_lock:
|
||||||
global _rate_limit_until
|
|
||||||
_rate_limit_until = time.time() + rl_cooldown
|
_rate_limit_until = time.time() + rl_cooldown
|
||||||
logger.warning(f"Groq 触发限流,设置 {rl_cooldown}s 全局冷却期")
|
logger.warning(f"Groq 触发限流,设置 {rl_cooldown}s 全局冷却期")
|
||||||
break # 不再尝试其他模型,直接走 stale cache 逻辑
|
break # 不再尝试其他模型,直接走 stale cache 逻辑
|
||||||
|
|||||||
Reference in New Issue
Block a user