Download src/ui/load.py from bpratik/Chatbot: direct link, hf CLI and curl.
- Browser
- Download file 3.68 kB
-
https://huggingface.co/spaces/bpratik/Chatbot/resolve/main/src/ui/load.py
- Command line
-
hf download hf://spaces/bpratik/Chatbot/src/ui/load.py
-
curl -L -o load.py https://huggingface.co/spaces/bpratik/Chatbot/resolve/main/src/ui/load.py
3.68 kB
| import os | |
| import streamlit as st | |
| from datetime import datetime | |
| from langchain_core.messages import AIMessage, HumanMessage | |
| from src.ui.config import LoadConfig | |
| class LoadStreamlitUI: | |
| def __init__(self): | |
| self.config = LoadConfig() | |
| self.user_controls = {} | |
| def initialize_session(self): | |
| return { | |
| 'current_step': 'requirements', | |
| 'requirements': "", | |
| 'user_stories': "", | |
| 'po_feedback': "", | |
| 'generated_code': "", | |
| 'review_feedback': "", | |
| 'decision': None, | |
| } | |
| def load_ui(self): | |
| st.set_page_config(page_title=" π€" + self.config.get_title(), page_icon=":robot_face:", layout="wide") | |
| st.header(" π€" + self.config.get_title()) | |
| st.session_state.timeframe = '' | |
| st.session_state.IsFetchButtonClicked = False | |
| st.session_state.IsSDLC = False | |
| with st.sidebar: | |
| llm_options = self.config.get_llm_options() | |
| # LLM Selection | |
| self.user_controls['Selected LLM'] = st.selectbox('Select LLM', llm_options) | |
| if self.user_controls['Selected LLM'] == 'Groq': | |
| # Groq Model Selection | |
| groq_models = self.config.get_groq_models() | |
| self.user_controls['Selected Model'] = st.selectbox('Select Groq Model', groq_models) | |
| self.user_controls['API Key'] = st.text_input('Enter Groq API Key', type='password') | |
| if not self.user_controls['API Key']: | |
| st.warning('Please enter a valid Groq API key to proceed . If you don\'t have an API key, please visit https://console.groq.com to create one.') | |
| if self.user_controls['Selected LLM'] == 'OpenAI': | |
| # OpenAI Model Selection | |
| openai_models = self.config.get_openai_models() | |
| self.user_controls['Selected Model'] = st.selectbox('Select OpenAI Model', openai_models) | |
| self.user_controls['API Key'] = st.text_input('Enter OpenAI API Key', type='password') | |
| if not self.user_controls['API Key']: | |
| st.warning('Please enter a valid OpenAI API key to proceed . If you don\'t have an API key, please visit https://platform.openai.com/account/api-keys to create one.') | |
| use_case = self.config.get_use_case() | |
| # Use Case Selection | |
| self.user_controls['Selected Use Case'] = st.selectbox('Select Use Case', use_case) | |
| # Tavily API Key for Web Search | |
| if self.user_controls['Selected Use Case'] == 'Chatbot with Web Search': | |
| self.user_controls['Tavily API Key'] = st.text_input('Enter Tavily API Key for Web Search', type='password') | |
| if not self.user_controls['Tavily API Key']: | |
| st.warning('Tavily API key is required for web search functionality. Get one at https://tavily.com') | |
| # Memory Management Section | |
| st.divider() | |
| st.subheader("π Memory Management") | |
| # Display current session ID | |
| if "session_id" in st.session_state: | |
| st.text(f"Session: {st.session_state.session_id[-8:]}") # Show last 8 characters | |
| # Clear conversation button | |
| if st.button("ποΈ Clear Conversation", help="Clear chat history and start fresh"): | |
| if "messages" in st.session_state: | |
| st.session_state.messages = [] | |
| if "memory_manager" in st.session_state and "session_id" in st.session_state: | |
| # Clear the session from memory manager | |
| st.session_state.memory_manager.clear_session(st.session_state.session_id) | |
| # Create new session ID | |
| st.session_state.session_id = f"user_{hash(str(st.session_state))}" | |
| st.rerun() | |
| if 'state' not in st.session_state: | |
| st.session_state.state = self.initialize_session() | |
| return self.user_controls | |