MLDeveloper commited on
Commit
c148187
·
verified ·
1 Parent(s): 14479f3

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +34 -21
app.py CHANGED
@@ -5,6 +5,13 @@ import os
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
 
@@ -33,21 +40,13 @@ df = load_data()
33
  def build_prompt(location, project_type, roof_size=None, desired_kwh=None, electricity_bill=None, ghi=None, solar_cost_per_kw=None):
34
  if project_type == "Rooftop Solar":
35
  prompt = f"""
36
- You are a solar project estimator tool. Based on the following details, calculate and return only the values and formulas used, without any extra description:
37
  Project Type: Rooftop Solar
38
  Location: {location}
39
  Roof size: {roof_size} sq meters
40
  Monthly electricity bill: ₹{electricity_bill}
41
  Average GHI: {ghi} kWh/m²/day
42
  Solar system cost per kW: ₹{solar_cost_per_kw}
43
-
44
- Formulas:
45
- 1. Estimated solar system size in kW = (Desired monthly production in kWh) / (GHI * Roof Area)
46
- 2. Estimated daily solar output in kWh = System size (kW) * GHI
47
- 3. Total system cost in ₹ = System size (kW) * Solar cost per kW (₹)
48
- 4. Monthly savings in ₹ = Monthly bill * (Solar output in kWh / Monthly consumption)
49
- 5. Payback period in years = Total system cost / (Monthly savings * 12)
50
-
51
  Respond strictly in this format (do not add anything extra):
52
  Estimated solar system size in kW: <value>
53
  Estimated daily solar output in kWh: <value>
@@ -57,21 +56,13 @@ Payback period in years: <value>
57
  """
58
  else: # Ground Mount Solar
59
  prompt = f"""
60
- You are a solar project estimator tool. Based on the following details, calculate and return only the values and formulas used, without any extra description:
61
  Project Type: Ground Mount Solar
62
  Location: {location}
63
  Desired monthly solar production: {desired_kwh} kWh
64
  Monthly electricity bill: ₹{electricity_bill}
65
  Average GHI: {ghi} kWh/m²/day
66
  Solar system cost per kW: ₹{solar_cost_per_kw}
67
-
68
- Formulas:
69
- 1. Required solar system size in kW = Desired monthly production (kWh) / GHI
70
- 2. Estimated daily solar output in kWh = System size (kW) * GHI
71
- 3. Total system cost in ₹ = System size (kW) * Solar cost per kW (₹)
72
- 4. Monthly savings in ₹ = Monthly bill * (Solar output in kWh / Monthly consumption)
73
- 5. Payback period in years = Total system cost / (Monthly savings * 12)
74
-
75
  Respond strictly in this format (do not add anything extra):
76
  Required solar system size in kW: <value>
77
  Estimated daily solar output in kWh: <value>
@@ -129,7 +120,7 @@ if submitted and location:
129
  monthly_savings_rs = None
130
  total_system_cost = None
131
  payback_period_years = None
132
- daily_output_kwh = None # Add this variable
133
 
134
  for point in estimated_data:
135
  if ":" in point:
@@ -156,11 +147,34 @@ if submitted and location:
156
  if system_size_kw is not None and ghi is not None:
157
  daily_output_kwh = system_size_kw * ghi # Estimate daily output in kWh
158
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
159
  # Visual Summary - Grouped Bar Chart
160
  if system_size_kw is not None and total_system_cost is not None:
161
  st.subheader("📊 Visual Summary")
162
 
163
- # Grouped Bar chart for all the values
164
  fig = go.Figure(data=[
165
  go.Bar(
166
  name="System Size (kW)",
@@ -176,7 +190,6 @@ if submitted and location:
176
  )
177
  ])
178
 
179
- # Update layout
180
  fig.update_layout(
181
  barmode='group',
182
  title="Comparison of Solar System Parameters",
 
5
  from dotenv import load_dotenv
6
  import plotly.graph_objects as go
7
 
8
+ import streamlit as st
9
+ import pandas as pd
10
+ import google.generativeai as genai
11
+ import os
12
+ from dotenv import load_dotenv
13
+ import plotly.graph_objects as go
14
+
15
  # Load environment variables from .env file
16
  load_dotenv()
17
 
 
40
  def build_prompt(location, project_type, roof_size=None, desired_kwh=None, electricity_bill=None, ghi=None, solar_cost_per_kw=None):
41
  if project_type == "Rooftop Solar":
42
  prompt = f"""
43
+ You are a solar project estimator tool. Based on the following details, calculate and return only the values without any extra description:
44
  Project Type: Rooftop Solar
45
  Location: {location}
46
  Roof size: {roof_size} sq meters
47
  Monthly electricity bill: ₹{electricity_bill}
48
  Average GHI: {ghi} kWh/m²/day
49
  Solar system cost per kW: ₹{solar_cost_per_kw}
 
 
 
 
 
 
 
 
50
  Respond strictly in this format (do not add anything extra):
51
  Estimated solar system size in kW: <value>
52
  Estimated daily solar output in kWh: <value>
 
56
  """
57
  else: # Ground Mount Solar
58
  prompt = f"""
59
+ You are a solar project estimator tool. Based on the following details, calculate and return only the values without any extra description:
60
  Project Type: Ground Mount Solar
61
  Location: {location}
62
  Desired monthly solar production: {desired_kwh} kWh
63
  Monthly electricity bill: ₹{electricity_bill}
64
  Average GHI: {ghi} kWh/m²/day
65
  Solar system cost per kW: ₹{solar_cost_per_kw}
 
 
 
 
 
 
 
 
66
  Respond strictly in this format (do not add anything extra):
67
  Required solar system size in kW: <value>
68
  Estimated daily solar output in kWh: <value>
 
120
  monthly_savings_rs = None
121
  total_system_cost = None
122
  payback_period_years = None
123
+ daily_output_kwh = None
124
 
125
  for point in estimated_data:
126
  if ":" in point:
 
147
  if system_size_kw is not None and ghi is not None:
148
  daily_output_kwh = system_size_kw * ghi # Estimate daily output in kWh
149
 
150
+ # Show the formulas
151
+ st.subheader("🧮 Formulas Used:")
152
+
153
+ if project_type == "Rooftop Solar":
154
+ st.markdown(f"""
155
+ **For Rooftop Solar:**
156
+ - Estimated Solar System Size (kW) = Roof Size (m²) × 0.15
157
+ - Estimated Daily Solar Output (kWh) = System Size (kW) × Average GHI (kWh/m²/day)
158
+ - Total System Cost (₹) = System Size (kW) × Solar Cost per kW (₹)
159
+ - Monthly Savings (₹) = (Estimated Daily Output × 30 × Tariff Rate per kWh) [Approximate]
160
+ - Payback Period (years) = Total System Cost ÷ (Monthly Savings × 12)
161
+ """)
162
+ else:
163
+ st.markdown(f"""
164
+ **For Ground Mount Solar:**
165
+ - Required Solar System Size (kW) = Desired Monthly Solar Production ÷ (30 × Average GHI)
166
+ - Estimated Daily Solar Output (kWh) = System Size (kW) × Average GHI (kWh/m²/day)
167
+ - Total System Cost (₹) = System Size (kW) × Solar Cost per kW (₹)
168
+ - Monthly Savings (₹) = (Estimated Daily Output × 30 × Tariff Rate per kWh) [Approximate]
169
+ - Payback Period (years) = Total System Cost ÷ (Monthly Savings × 12)
170
+ """)
171
+
172
+ st.info("Note: Tariff rate is assumed based on your state electricity average or ₹7/kWh (default).")
173
+
174
  # Visual Summary - Grouped Bar Chart
175
  if system_size_kw is not None and total_system_cost is not None:
176
  st.subheader("📊 Visual Summary")
177
 
 
178
  fig = go.Figure(data=[
179
  go.Bar(
180
  name="System Size (kW)",
 
190
  )
191
  ])
192
 
 
193
  fig.update_layout(
194
  barmode='group',
195
  title="Comparison of Solar System Parameters",