dvwn/nl2sql-api
0
1# Path: frontend/app.py2# Main application entry point, setting up the app and routing.3import sys4import os5from pathlib import Path6 7project_root = Path(__file__).resolve().parent8backend_dir = project_root / "backend"9 10if str(backend_dir) not in sys.path:11 sys.path.insert(0, str(backend_dir))12 13# if str(current_dir) not in sys.path:14# sys.path.insert(0, str(current_dir))15 16import streamlit as st17from components.sidebar import render_sidebar18from components.chat import render_chat_interface19 20st.set_page_config(21 page_icon=":material/sql:",22 page_title="NL2SQL Assistant",23 layout="wide",24 initial_sidebar_state="expanded"25)26 27# def load_css():28# """Load custom CSS file"""29# css_path = os.path.join("assets", "styles.css")30# if os.path.exists(css_path):31# with open(css_path) as f:32# st.markdown(f"<style>{f.read()}</style>", unsafe_allow_html=True)33 34def init_session_state():35 """Initialize global variables and authentication states"""36 if 'auth_stat' not in st.session_state:37 st.session_state.auth_stat = "guest"38 39 if 'username' not in st.session_state:40 st.session_state.username = "guest"41 42 if 'messages' not in st.session_state:43 st.session_state.messages = []44 45 if 'current_model' not in st.session_state:46 st.session_state.current_model = "default"47 48def main():49 # load_css()50 init_session_state()51 52 render_sidebar()53 render_chat_interface()54 55if __name__ == "__main__":56 main()