Spaces:
Sleeping
Sleeping
| # 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)} |