sentinel / apps /streamlit_ui /ui_utils.py
jeuko's picture
Sync from GitHub (main)
8018595 verified
Raw
History Blame Contribute Delete
1.53 kB
"""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