import streamlit as st import requests from dotenv import load_dotenv # Load environment variables load_dotenv() def handle_enter(): st.session_state['submitted'] = True if __name__ == "__main__": # Streamlit UI st.title("RFP Q/A") # Sidebar for settings with st.sidebar: st.title("Settings") st.divider() protect_enabled = st.toggle("Galileo Protect", value=False, help="Enable content protection with Galileo") # Callback function when Enter is pressed def on_enter(): st.session_state["run_search"] = True # User input st.text_input("Ask your question:", key="query", on_change=on_enter) # Search button if st.button("Search"): st.session_state["run_search"] = True # Run the search if triggered by button or Enter if st.session_state.get("run_search"): try: query = st.session_state.get("query", "").strip() # Make request to FastAPI endpoint response = requests.post( "http://localhost:8000/rag/search", json={"query": query, "protect_enabled": protect_enabled} ) if response.status_code == 200: result = response.json() st.success("Search Results:") st.write(result["response"]) else: st.error(f"Error: {response.text}") except Exception as e: st.error(f"Error: {str(e)}")