# Base costs mapping: {"category": {"water": L, "energy": kWh}} BASE_COSTS = { "simple factual question": {"water": 0.5, "energy": 0.01}, "mathematical calculation": {"water": 0.3, "energy": 0.005}, "creative content generation": {"water": 5.0, "energy": 0.5}, "complex research query": {"water": 10.0, "energy": 1.0} } def get_confidence_multiplier(confidence_score): if confidence_score > 0.8: return 1.0 elif 0.5 <= confidence_score <= 0.8: return 1.2 # Add 20% uncertainty buffer else: return 1.5 # Add 50% buffer def get_length_factor(query_text): word_count = len(query_text.split()) if word_count < 20: return 1.0 elif 20 <= word_count <= 50: return 1.3 else: return 1.5 def calculate_impact(category, confidence_score, query_text): base_cost = BASE_COSTS.get(category, {"water": 0, "energy": 0}) conf_mult = get_confidence_multiplier(confidence_score) len_factor = get_length_factor(query_text) water_impact = base_cost["water"] * conf_mult * len_factor energy_impact = base_cost["energy"] * conf_mult * len_factor return {"water": round(water_impact, 2), "energy": round(energy_impact, 3)}