ankitpatil3003/Basic-AI-Chatbot-using-Langgraph
1
1import streamlit as st2import os3from datetime import date4 5from langchain_core.messages import AIMessage,HumanMessage6from src.langgraphagenticai.ui.uiconfigfile import Config7 8 9class LoadStreamlitUI:10 def __init__(self):11 self.config = Config() # config12 self.user_controls = {}13 14 def initialize_session(self):15 return {16 "current_step": "requirements",17 "requirements": "",18 "user_stories": "",19 "po_feedback": "",20 "generated_code": "",21 "review_feedback": "",22 "decision": None23 }24 25 def load_streamlit_ui(self):26 st.set_page_config(page_title= "🤖 " + self.config.get_page_title(), layout="wide")27 st.header("🤖 " + self.config.get_page_title())28 st.session_state.timeframe = ''29 st.session_state.IsFetchButtonClicked = False30 st.session_state.IsSDLC = False31 32 33 with st.sidebar:34 # Get options from config35 llm_options = self.config.get_llm_options()36 usecase_options = self.config.get_usecase_options()37 38 # LLM selection39 self.user_controls["selected_llm"] = st.selectbox("Select LLM", llm_options)40 41 if self.user_controls["selected_llm"] == 'Groq':42 # Model selection43 model_options = self.config.get_groq_model_options()44 self.user_controls["selected_groq_model"] = st.selectbox("Select Model", model_options)45 # API key input46 self.user_controls["GROQ_API_KEY"] = st.session_state["GROQ_API_KEY"] = st.text_input("API Key",47 type="password")48 # Validate API key49 if not self.user_controls["GROQ_API_KEY"]:50 st.warning("⚠️ Please enter your GROQ API key to proceed. Don't have? refer : https://console.groq.com/keys ")51 52 # Use case selection53 self.user_controls["selected_usecase"] = st.selectbox("Select Usecases", usecase_options)54 55 if self.user_controls["selected_usecase"] =="Chatbot with Tool":56 # API key input57 os.environ["TAVILY_API_KEY"] = self.user_controls["TAVILY_API_KEY"] = st.session_state["TAVILY_API_KEY"] = st.text_input("TAVILY API KEY",58 type="password")59 # Validate API key60 if not self.user_controls["TAVILY_API_KEY"]:61 st.warning("⚠️ Please enter your TAVILY_API_KEY key to proceed. Don't have? refer : https://app.tavily.com/home")62 63 if "state" not in st.session_state:64 st.session_state.state = self.initialize_session()65 66 return self.user_controls