import gradio as gr import pandas as pd import random from transformers import AutoTokenizer, AutoModelForCausalLM import plotly.graph_objects as go # Attempt to import PyTorch try: import torch except ImportError: torch = None # Load GPT-2 model if PyTorch is available if torch: tokenizer = AutoTokenizer.from_pretrained("gpt2") model = AutoModelForCausalLM.from_pretrained("gpt2") else: tokenizer, model = None, None print("PyTorch not available. GPT-2 model will not be loaded.") # Analyze energy data and provide consumption details, recommendations, and weather tips def analyze_energy_data(energy_data, location, language): appliances = {} total_kwh = 0 peak_hours_rate = 20 off_peak_hours_rate = 12 benchmarks = {"AC": 400, "Refrigerator": 200, "Lighting": 150, "Fan": 100} alerts = [] try: for line in energy_data.strip().split("\n"): appliance, kwh = line.split(":") kwh_value = float(kwh.strip().split(" ")[0]) appliances[appliance.strip()] = kwh_value total_kwh += kwh_value if appliance.strip() in benchmarks and kwh_value > benchmarks[appliance.strip()]: alert_message = ( f"Your {appliance.strip()} usage exceeds the limit by " f"{kwh_value - benchmarks[appliance.strip()]:.2f} kWh." ) alerts.append(alert_message) except Exception: return ( "Error: Enter data in the correct format (e.g., AC: 500 kWh).", "", "", "", "", "", "", 0.0 ) total_bill = total_kwh * peak_hours_rate optimized_bill = sum( appliances[app] * (off_peak_hours_rate if app in ["AC", "Refrigerator"] else peak_hours_rate) for app in appliances ) savings = total_bill - optimized_bill carbon_emissions = total_kwh * 0.707 # Approx kg of CO2 per kWh weather_tips = ( f"Considering high temperatures in {location}, keep windows closed during peak heat hours to optimize cooling." if "Lahore" in location else "Check local weather to optimize energy usage." ) return ( f"Your current bill is PKR {total_bill:.2f}, potentially saving PKR {savings:.2f}.", "\n".join([f"{appliance}: {random.choice(['Use during off-peak hours.', 'Turn off when not in use.'])}" for appliance in appliances]), weather_tips, "\n".join(alerts), f"Your carbon footprint: {carbon_emissions:.2f} kg of CO2. Consider using renewable energy.", f"AI Recommendation: Optimize usage of AC and lighting based on peak hours to reduce costs and emissions.", savings # Return savings for ROI calculation ) # The rest of the code remains the same # Build the Gradio UI def build_ui(): with gr.Blocks() as demo: # Your UI code pass # Replace with the full UI code return demo demo = build_ui() demo.launch()