import os import streamlit as st from groq import Groq # Set the Groq API key os.environ["GROQ_API_KEY"] = "key" # Initialize Groq client client = Groq(api_key=os.environ.get("key")) # Carbon footprint reduction data (kg CO2 per kg recycled) carbon_reduction_data = { "Plastic Bottles": 3.8, "Glass Bottles": 0.5, "Metal Cans": 9.0, "Old Clothes": 2.0, "Paper and Cardboard": 1.3, "E-Waste": 15.0, "Tires": 8.0, } # Function to call Groq LLM def get_recycling_suggestions_from_groq(item, quantity): prompt = ( f"You are an expert in recycling and sustainability. " f"Suggest profitable and eco-friendly uses for {quantity} kg of {item}, " f"including household uses, ways to monetize them, and calculate carbon footprint reduction." f"Keep your responce to maximum 5 points." f"add emojis in your responce." ) chat_completion = client.chat.completions.create( messages=[{"role": "user", "content": prompt}], model="llama-3.3-70b-versatile", stream=False, ) return chat_completion.choices[0].message.content # App title st.title("♻️ Recycle-Smart-PK powered by LLM 🌍") st.write("Select clutter items, specify quantities, and get tailored, profitable recycling suggestions along with carbon footprint reduction scores!") # Multi-select input for clutter items selected_items = st.multiselect( "Select items to recycle:", list(carbon_reduction_data.keys()) ) # Quantity input for selected items quantities = {} for item in selected_items: quantities[item] = st.number_input( f"Enter quantity for {item} (in kg):", min_value=0, step=1 ) # Process and display results if st.button("Get Recycling Suggestions"): if selected_items: total_carbon_reduction = 0 st.write("### ♻️ Recycling Suggestions and Impact:") for item, quantity in quantities.items(): if quantity > 0: # Call Groq LLM for dynamic suggestions llm_response = get_recycling_suggestions_from_groq(item, quantity) # Fetch carbon footprint reduction carbon_reduction = carbon_reduction_data.get(item, 0) * quantity total_carbon_reduction += carbon_reduction # Display results for each item st.write(f"**{item} ({quantity} kg)**") st.write(llm_response) st.write(f"🌍 **Carbon Footprint Reduction**: {carbon_reduction:.2f} kg CO₂") st.write("---") # Display total carbon footprint reduction credit score st.write("### 🌟 Your Total Carbon Footprint Reduction 🌟") st.write(f"🌍 **{total_carbon_reduction:.2f} kg CO₂ saved**") st.success("Great job contributing to a greener planet! 🌱💚") else: st.error("Please select at least one item and specify its quantity.") # Follow-up Q&A with Groq LLM st.write("### 🤔 Have more questions about recycling?") user_query = st.text_input("Ask me about recycling:") if st.button("Ask and you will learn"): if user_query: follow_up_response = client.chat.completions.create( messages=[{"role": "user", "content": user_query}], model="llama-3.3-70b-versatile", stream=False, ).choices[0].message.content st.write("### 🧠 LLM's Answer: Tailored for you") st.write(follow_up_response) else: st.error("Please enter a question.")