MLDeveloper commited on
Commit
2c7e9af
·
verified ·
1 Parent(s): 9d998f3

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +8 -9
app.py CHANGED
@@ -5,7 +5,6 @@ import os
5
  from dotenv import load_dotenv
6
  import plotly.graph_objects as go
7
 
8
-
9
  # Load environment variables from .env file
10
  load_dotenv()
11
 
@@ -35,16 +34,13 @@ def build_prompt(location, project_type, roof_size=None, desired_kwh=None, elect
35
  if project_type == "Rooftop Solar":
36
  prompt = f"""
37
  You are an AI-based solar project estimator.
38
-
39
  Use the following calculation methods:
40
-
41
  - Estimated system size (kW) = Roof size (sq meters) × 0.15
42
  - Estimated daily solar output (kWh) = System size (kW) × Average GHI (kWh/m²/day)
43
  - Total system cost (₹) = System size (kW) × Solar system cost per kW
44
  - Assume tariff rate = ₹7/kWh
45
  - Monthly savings (₹) = Estimated daily output × 30 × 7
46
  - Payback period (years) = Total system cost ÷ (Monthly savings × 12)
47
-
48
  Inputs:
49
  - Project Type: Rooftop Solar
50
  - Location: {location}
@@ -52,7 +48,6 @@ Inputs:
52
  - Monthly Electricity Bill: ₹{electricity_bill}
53
  - Average GHI: {ghi} kWh/m²/day
54
  - Solar System Cost per kW: ₹{solar_cost_per_kw}
55
-
56
  Now, calculate and return strictly in this format:
57
  Estimated solar system size in kW: <value>
58
  Estimated daily solar output in kWh: <value>
@@ -63,16 +58,13 @@ Payback period in years: <value>
63
  else:
64
  prompt = f"""
65
  You are an AI-based solar project estimator.
66
-
67
  Use the following calculation methods:
68
-
69
  - Required system size (kW) = Desired monthly solar production ÷ (30 × Average GHI)
70
  - Estimated daily solar output (kWh) = System size (kW) × Average GHI (kWh/m²/day)
71
  - Total system cost (₹) = System size (kW) × Solar system cost per kW
72
  - Assume tariff rate = ₹7/kWh
73
  - Monthly savings (₹) = Estimated daily output × 30 × 7
74
  - Payback period (years) = Total system cost ÷ (Monthly savings × 12)
75
-
76
  Inputs:
77
  - Project Type: Ground Mount Solar
78
  - Location: {location}
@@ -80,7 +72,6 @@ Inputs:
80
  - Monthly Electricity Bill: ₹{electricity_bill}
81
  - Average GHI: {ghi} kWh/m²/day
82
  - Solar System Cost per kW: ₹{solar_cost_per_kw}
83
-
84
  Now, calculate and return strictly in this format:
85
  Required solar system size in kW: <value>
86
  Estimated daily solar output in kWh: <value>
@@ -124,6 +115,14 @@ if submitted and location:
124
  ghi = state_data['Avg_GHI (kWh/m²/day)']
125
  solar_cost_per_kw = state_data['Solar_Cost_per_kW (₹)']
126
 
 
 
 
 
 
 
 
 
127
  prompt_text = build_prompt(location, project_type, roof_size=roof_size, desired_kwh=desired_kwh, electricity_bill=electricity_bill, ghi=ghi, solar_cost_per_kw=solar_cost_per_kw)
128
 
129
  # Call Gemini API
 
5
  from dotenv import load_dotenv
6
  import plotly.graph_objects as go
7
 
 
8
  # Load environment variables from .env file
9
  load_dotenv()
10
 
 
34
  if project_type == "Rooftop Solar":
35
  prompt = f"""
36
  You are an AI-based solar project estimator.
 
37
  Use the following calculation methods:
 
38
  - Estimated system size (kW) = Roof size (sq meters) × 0.15
39
  - Estimated daily solar output (kWh) = System size (kW) × Average GHI (kWh/m²/day)
40
  - Total system cost (₹) = System size (kW) × Solar system cost per kW
41
  - Assume tariff rate = ₹7/kWh
42
  - Monthly savings (₹) = Estimated daily output × 30 × 7
43
  - Payback period (years) = Total system cost ÷ (Monthly savings × 12)
 
44
  Inputs:
45
  - Project Type: Rooftop Solar
46
  - Location: {location}
 
48
  - Monthly Electricity Bill: ₹{electricity_bill}
49
  - Average GHI: {ghi} kWh/m²/day
50
  - Solar System Cost per kW: ₹{solar_cost_per_kw}
 
51
  Now, calculate and return strictly in this format:
52
  Estimated solar system size in kW: <value>
53
  Estimated daily solar output in kWh: <value>
 
58
  else:
59
  prompt = f"""
60
  You are an AI-based solar project estimator.
 
61
  Use the following calculation methods:
 
62
  - Required system size (kW) = Desired monthly solar production ÷ (30 × Average GHI)
63
  - Estimated daily solar output (kWh) = System size (kW) × Average GHI (kWh/m²/day)
64
  - Total system cost (₹) = System size (kW) × Solar system cost per kW
65
  - Assume tariff rate = ₹7/kWh
66
  - Monthly savings (₹) = Estimated daily output × 30 × 7
67
  - Payback period (years) = Total system cost ÷ (Monthly savings × 12)
 
68
  Inputs:
69
  - Project Type: Ground Mount Solar
70
  - Location: {location}
 
72
  - Monthly Electricity Bill: ₹{electricity_bill}
73
  - Average GHI: {ghi} kWh/m²/day
74
  - Solar System Cost per kW: ₹{solar_cost_per_kw}
 
75
  Now, calculate and return strictly in this format:
76
  Required solar system size in kW: <value>
77
  Estimated daily solar output in kWh: <value>
 
115
  ghi = state_data['Avg_GHI (kWh/m²/day)']
116
  solar_cost_per_kw = state_data['Solar_Cost_per_kW (₹)']
117
 
118
+ # Check roof size limit for rooftop solar
119
+ if project_type == "Rooftop Solar" and roof_size:
120
+ max_allowed_kw = roof_size * 0.15
121
+ if max_allowed_kw > 5: # Maximum 5 kW limit
122
+ st.warning(f"Roof size exceeds the maximum allowed capacity of 5 kW. The system size will be limited to 5 kW.")
123
+ max_allowed_kw = 5
124
+ roof_size = max_allowed_kw / 0.15 # Adjust roof size to fit within the limit
125
+
126
  prompt_text = build_prompt(location, project_type, roof_size=roof_size, desired_kwh=desired_kwh, electricity_bill=electricity_bill, ghi=ghi, solar_cost_per_kw=solar_cost_per_kw)
127
 
128
  # Call Gemini API