import streamlit as st import pandas as pd from groq import Groq # Initialize the Groq API GROQ_API_KEY = "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" client = Groq(api_key=GROQ_API_KEY) # Load CSV dataset st.title("🚀 Mission Analytics & Recommendations") uploaded_file = st.file_uploader("Upload your dataset (CSV format)", type="csv") if uploaded_file: # Read the uploaded CSV data = pd.read_csv(uploaded_file) st.write("### Dataset Overview", data.head()) # Select Mission ID mission_id = st.selectbox("Select a Mission ID for Prediction and Recommendation", data["Mission ID"].unique()) # Display mission information if mission_id: mission_data = data[data["Mission ID"] == mission_id].iloc[0] st.subheader(f"Mission Details: {mission_id}") st.write(mission_data) # API call function for prediction and recommendation def fetch_recommendation(mission_details): """Fetch recommendations based on mission data.""" content = ( f"Given this mission data: " f"Name: {mission_details['Mission Name']}, " f"Target Type: {mission_details['Target Type']}, " f"Distance: {mission_details['Distance from Earth (light-years)']} light-years, " f"Cost: {mission_details['Mission Cost (billion USD)']} billion USD, " f"Success Rate: {mission_details['Mission Success (%)']}%, " f"Provide insights and suggestions for optimization." ) try: response = client.chat.completions.create( messages=[{"role": "user", "content": content}], model="llama-3.3-70b-versatile", ) return response.choices[0].message.content except Exception as e: return f"Error fetching prediction: {e}" # Fetch and display prediction/recommendation if st.button("Get Prediction and Recommendations"): st.text("Fetching insights from Groq API...") result = fetch_recommendation(mission_data) st.write("### Recommendations") st.success(result) else: st.warning("Please upload a CSV file to proceed.")