File size: 1,530 Bytes
8018595
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
"""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