Spaces:
Sleeping
Sleeping
| import os | |
| import sys | |
| # Add the src directory to the Python path | |
| sys.path.append(os.path.join(os.path.dirname(__file__), '..', '..', '..')) | |
| import streamlit as st | |
| from datetime import datetime | |
| from langchain_core.messages import HumanMessage, AIMessage | |
| from src.user_interface.uiconfig import config | |
| import sys | |
| class LoadStreamlitUI: | |
| def __init__(self): | |
| self.config = config() | |
| self.user_controls = {} | |
| def initialize_session(self): | |
| return { | |
| "current_step": "requirements", | |
| "requirements": "", | |
| "user_stories": "", | |
| "po_feedback": "", | |
| "generated_code": "", | |
| "review_feedback": "", | |
| "decision": None | |
| } | |
| def load_streamlit_ui(self): | |
| st.set_page_config(page_title= "🤖 " + self.config.get_page_title(), | |
| layout="wide", | |
| page_icon="🧊") | |
| st.header("🤖 " + self.config.get_page_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() | |
| use_case_options = self.config.get_usecase_options() | |
| self.user_controls["selected_llm"] = st.selectbox("Select LLM", llm_options) | |
| if self.user_controls["selected_llm"] == 'Groq': | |
| #select the model from the list | |
| groq_model_options = self.config.get_groq_model_options() | |
| self.user_controls["selected_model"] = st.selectbox("Select Model", groq_model_options) | |
| #ask to enter the API Key as well | |
| self.user_controls["GROQ_API_KEY"] = st.session_state["GROQ_API_KEY"] = st.text_input("Enter your Groq API Key", type="password") | |
| #Validate the API key | |
| if not self.user_controls["GROQ_API_KEY"]: | |
| st.warning("⚠️ Please enter your GROQ API key to proceed. Don't have? refer : https://console.groq.com/keys ") | |
| self.user_controls["selected_usecase"] = st.selectbox("Select Use Case", use_case_options) | |
| if self.user_controls["selected_usecase"] == 'Chatbot with Tool': | |
| #ask for Tavily API key | |
| os.environ["TAVILY_API_KEY"] = self.user_controls["TAVILY_API_KEY"]= st.session_state["TAVILY_API_KEY"] = st.text_input("Enter your Tavily API Key", type="password") | |
| if not self.user_controls["TAVILY_API_KEY"]: | |
| st.warning("⚠️ Please enter your TAVILTY API key to proceed. Don't have? refer : https://tavily.com/") | |
| if "state" not in st.session_state: | |
| st.session_state.state = self.initialize_session() | |
| return self.user_controls | |
| ## UI testing code | |
| # if __name__ == "__main__": | |
| # a= LoadStreamlitUI() | |
| # a.load_streamlit_ui() | |
| # print(a.config.get_page_title()) | |