TutorBot / pythia.py
erokou's picture
Upload 8 files
2139cb3 verified
Raw History Blame Contribute Delete
1.03 kB
import numpy as np
from langchain_core.tools import tool
@tool
def scenario_simulator(params: dict) -> str:
"""Simulates product adoption scenarios using Monte Carlo. Params: initial_users, growth_rate, time_months, uncertainty."""
try:
initial_users = params.get("initial_users", 1000)
growth_rate = params.get("growth_rate", 0.05) # 5%/month default
time_months = params.get("time_months", 12)
uncertainty = params.get("uncertainty", 0.1) # 10% variance
runs = 1000
final_users = []
for _ in range(runs):
users = initial_users
for _ in range(time_months):
users *= (1 + np.random.normal(growth_rate, uncertainty))
final_users.append(users)
mean = np.mean(final_users)
std = np.std(final_users)
return f"Predicted users after {time_months} months: {mean:.0f} ± {std:.0f} (mean ± std, {runs} runs)."
except Exception as e:
return f"Sim error: {e}. Check params: {params}"