import streamlit as st # Page configuration st.set_page_config( page_title="Therapist Conversation Evaluator", page_icon="🧠", layout="wide" ) # Custom CSS for better styling st.markdown(""" """, unsafe_allow_html=True) def main(): st.markdown('

🧠 Therapist Conversation Evaluator

', unsafe_allow_html=True) st.markdown(""" This tool evaluates therapist-patient conversations using multiple LLM models to provide comprehensive metrics including empathy, clarity, therapeutic alliance, and more. """) # Initialize session state if 'orchestrator' not in st.session_state: from services.orchestrator import ConversationOrchestrator st.session_state.orchestrator = ConversationOrchestrator() if 'step' not in st.session_state: st.session_state.step = 1 if 'selected_metrics' not in st.session_state: st.session_state.selected_metrics = [] if 'selected_model' not in st.session_state: st.session_state.selected_model = None if 'conversation_uploaded' not in st.session_state: st.session_state.conversation_uploaded = False if 'utterances' not in st.session_state: st.session_state.utterances = [] # Progress indicator steps = ["1️⃣ API Keys", "2️⃣ Upload File", "3️⃣ Select Metrics", "4️⃣ View Results"] current_step = st.session_state.step # Create progress bars cols = st.columns(4) for i, (col, step_name) in enumerate(zip(cols, steps)): with col: if i + 1 < current_step: st.success(step_name) elif i + 1 == current_step: st.info(step_name) else: st.write(step_name) st.divider() # Render the appropriate step if current_step == 1: from pages.step1 import render_step1 render_step1() elif current_step == 2: from pages.step2 import render_step2 render_step2() elif current_step == 3: from pages.step3 import render_step3 render_step3() elif current_step == 4: from pages.step4 import render_step4 render_step4() if __name__ == "__main__": main()