RayMelius Claude Sonnet 4.6 commited on
Commit
f723585
Β·
1 Parent(s): 2f14920

Set default LLM call probability to 10% for all providers

Browse files

Prevents hitting daily quotas quickly. Users can raise via the slider
or SOCI_LLM_PROB env var. At 10%: ~15 calls/h on Gemini free tier.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

Files changed (1) hide show
  1. src/soci/api/server.py +9 -9
src/soci/api/server.py CHANGED
@@ -345,15 +345,15 @@ async def lifespan(app: FastAPI):
345
  else:
346
  logger.warning("All provider fallbacks failed β€” simulation will run in routine-only mode")
347
 
348
- # Default LLM call probability β€” tuned per provider to stay within free-tier daily quotas.
349
- # Gemini free tier: 4 RPM, ~1500 RPD β†’ 0.45 β‰ˆ 150 calls/h β†’ ~10h runtime per day.
350
- # Groq free tier: 30 RPM, limited daily tokens β†’ 0.70 to conserve budget.
351
- # Ollama / Claude: no quota β†’ 1.0 (full fidelity).
352
- # Override via SOCI_LLM_PROB env var (0.0–1.0).
353
  _provider_default_prob = {
354
- PROVIDER_GEMINI: 0.45,
355
- PROVIDER_GROQ: 0.70,
356
- PROVIDER_HF: 0.45,
 
 
357
  }
358
  env_prob = os.environ.get("SOCI_LLM_PROB")
359
 
@@ -371,7 +371,7 @@ async def lifespan(app: FastAPI):
371
  if saved is not None:
372
  _llm_call_probability = float(saved)
373
  else:
374
- _llm_call_probability = _provider_default_prob.get(_llm_provider, 1.0)
375
  logger.info(f"LLM call probability: {_llm_call_probability:.0%}")
376
 
377
  # Pull saved state from GitHub before trying to load locally
 
345
  else:
346
  logger.warning("All provider fallbacks failed β€” simulation will run in routine-only mode")
347
 
348
+ # Default LLM call probability β€” 0.10 for all providers to conserve daily quotas.
349
+ # At 0.10: ~15 calls/h with Gemini (5 RPM) β†’ stays well within 1500 RPD limit.
350
+ # Raise via slider in the UI or SOCI_LLM_PROB env var (0.0–1.0).
 
 
351
  _provider_default_prob = {
352
+ PROVIDER_GEMINI: 0.10,
353
+ PROVIDER_GROQ: 0.10,
354
+ PROVIDER_HF: 0.10,
355
+ PROVIDER_CLAUDE: 0.10,
356
+ PROVIDER_OLLAMA: 0.10,
357
  }
358
  env_prob = os.environ.get("SOCI_LLM_PROB")
359
 
 
371
  if saved is not None:
372
  _llm_call_probability = float(saved)
373
  else:
374
+ _llm_call_probability = _provider_default_prob.get(_llm_provider, 0.10)
375
  logger.info(f"LLM call probability: {_llm_call_probability:.0%}")
376
 
377
  # Pull saved state from GitHub before trying to load locally