jeuko's picture
Sync from GitHub (main)
8018595 verified
"""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