RizwanSajad's picture
Update app.py
8789b7b verified
import os
import streamlit as st
import numpy as np
from groq import Groq
# Initialize Groq client
client = Groq(
api_key="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")
# Function to calculate power requirements
def calculate_solar_requirements(appliances):
total_load_kw = 0
for appliance, details in appliances.items():
total_load_kw += details['count'] * details['wattage'] / 1000 # Convert to kW
battery_ah = (total_load_kw * 6 * 1000) / 24 # Assuming 6 hours backup at 24V
solar_panels = np.ceil(total_load_kw / 0.585) # 585W panels for direct load
return total_load_kw, battery_ah, solar_panels
# Streamlit App
st.title("Solar System Calculator")
# Input Section
st.header("Input Appliance Details")
appliances = {}
appliance_list = {
"Fan": 75,
"Light": 20,
"Water Pump": 500,
"Air Conditioner": 1500,
"LCD": 100,
"Computer": 200,
}
for appliance, wattage in appliance_list.items():
count = st.number_input(f"Number of {appliance}s", min_value=0, value=0)
if count > 0:
appliances[appliance] = {"count": count, "wattage": wattage}
# Calculate Button
if st.button("Calculate"):
if appliances:
total_load_kw, battery_ah, solar_panels = calculate_solar_requirements(appliances)
st.subheader("Results")
st.write(f"Total Load: {total_load_kw:.2f} kW")
st.write(f"Required Battery Capacity: {battery_ah:.0f} Ah (24V)")
st.write(f"Number of Solar Panels (585W): {solar_panels:.0f}")
else:
st.warning("Please enter at least one appliance.")
# Interaction with Groq
st.header("AI-Powered Help")
user_query = st.text_input("Ask the AI about Solar Systems:")
if st.button("Get AI Response"):
if user_query.strip():
chat_completion = client.chat.completions.create(
messages=[
{"role": "user", "content": user_query}
],
model="llama3-8b-8192",
)
st.write("AI Response:")
st.write(chat_completion.choices[0].message.content)
else:
st.warning("Please enter a query.")