"""Utilities for Streamlit UI components and helpers.""" from pathlib import Path import streamlit as st def initialize_session_state() -> None: """Initialize Streamlit session state with default values.""" if "user_profile" not in st.session_state: st.session_state.user_profile = None if "config" not in st.session_state: # Load all available options as defaults root = Path(__file__).resolve().parents[2] # Go up to project root cancer_dir = root / "configs" / "knowledge_base" / "cancer_modules" all_cancer_modules = sorted([p.stem for p in cancer_dir.glob("*.yaml")]) protocol_dir = root / "configs" / "knowledge_base" / "dx_protocols" all_dx_protocols = sorted([p.stem for p in protocol_dir.glob("*.yaml")]) model_dir = root / "configs" / "model" model_options = sorted([p.stem for p in model_dir.glob("*.yaml")]) if model_options: default_model = ( "gemini_2.5_pro" if ("gemini_2.5_pro" in model_options) else model_options[0] ) else: default_model = None st.session_state.config = { "model": default_model, "cancer_modules": all_cancer_modules, "dx_protocols": all_dx_protocols, } if "assessment" not in st.session_state: st.session_state.assessment = None if "conversation_manager" not in st.session_state: st.session_state.conversation_manager = None