import streamlit as st import json from scorer import IntroductionScorer st.set_page_config(page_title="Intro Scorer", layout="wide") st.title(" Introduction Scoring System") st.write("Enter your speech transcript and duration to get a detailed rubric score.") with st.form("score_form"): transcript = st.text_area("Transcript", height=200, placeholder="Hello, my name is...") duration = st.number_input("Duration (seconds)", min_value=0, value=0) submitted = st.form_submit_button("Analyze Score") if submitted and transcript: with st.spinner("Analyzing... (Loading AI models might take a moment)"): scorer = IntroductionScorer(transcript, duration) results = scorer.calculate_overall_score() st.metric(label="Total Score", value=f"{results['Total Score']} / 100") st.subheader("Detailed Breakdown") breakdown = results['Breakdown'] for category, data in breakdown.items(): with st.expander(f"{category} (Score: {data['score']})"): st.write(f"**Feedback:** {data['feedback']}") st.progress(data['score'] / (data.get('max', 10) if data.get('max') else 15)) st.subheader("Raw JSON Data") st.json(results)