Spaces:
Runtime error
Runtime error
| import os | |
| import streamlit as st | |
| from chatbot import Chatbot | |
| from embedding import Embedder | |
| class Sidebar: | |
| MODEL_OPTIONS = ["gpt-3.5-turbo", "gpt-4"] | |
| TEMPERATURE_MIN_VALUE = 0.0 | |
| TEMPERATURE_MAX_VALUE = 1.0 | |
| TEMPERATURE_DEFAULT_VALUE = 0.0 | |
| TEMPERATURE_STEP = 0.01 | |
| def about(): | |
| about = st.sidebar.expander("About π€") | |
| sections = [ | |
| "This is for Demo of the 506 CompanyGPT Functions only. Please visit https://www.506.ai for more Details" | |
| "β‘", | |
| ] | |
| for section in sections: | |
| about.write(section) | |
| def model_selector(self): | |
| model = st.selectbox(label="Model", options=self.MODEL_OPTIONS) | |
| st.session_state["model"] = model | |
| def reset_chat_button(): | |
| if st.button("Reset chat"): | |
| st.session_state["reset_chat"] = True | |
| st.session_state.setdefault("reset_chat", False) | |
| def temperature_slider(self): | |
| temperature = st.slider( | |
| label="Temperature", | |
| min_value=self.TEMPERATURE_MIN_VALUE, | |
| max_value=self.TEMPERATURE_MAX_VALUE, | |
| value=self.TEMPERATURE_DEFAULT_VALUE, | |
| step=self.TEMPERATURE_STEP, | |
| ) | |
| st.session_state["temperature"] = temperature | |
| def show_options(self): | |
| with st.sidebar.expander("π οΈ Tools", expanded=True): | |
| self.reset_chat_button() | |
| self.model_selector() | |
| self.temperature_slider() | |
| st.session_state.setdefault("model", self.MODEL_OPTIONS[0]) | |
| st.session_state.setdefault("temperature", self.TEMPERATURE_DEFAULT_VALUE) | |
| class Utilities: | |
| def load_api_key(): | |
| """ | |
| Loads the OpenAI API key from the .env file or from the user's input | |
| and returns it | |
| """ | |
| if os.path.exists(".env") and os.environ.get("OPENAI_API_KEY") is not None: | |
| user_api_key = os.environ["OPENAI_API_KEY"] | |
| st.sidebar.success("API key loaded from .env", icon="π") | |
| else: | |
| user_api_key = st.sidebar.text_input( | |
| label="#### Your OpenAI API key π", placeholder="Paste your openAI API key, sk-", type="password" | |
| ) | |
| if user_api_key: | |
| st.sidebar.success("API key loaded", icon="π") | |
| return user_api_key | |
| def handle_upload(): | |
| """ | |
| Handles the file upload and displays the uploaded file | |
| """ | |
| uploaded_file = st.sidebar.file_uploader("upload", type="pdf", label_visibility="collapsed") | |
| if uploaded_file is not None: | |
| pass | |
| else: | |
| st.sidebar.info( | |
| "Upload your PDF file to get started", icon="π" | |
| ) | |
| st.session_state["reset_chat"] = True | |
| return uploaded_file | |
| def setup_chatbot(uploaded_file, model, temperature): | |
| """ | |
| Sets up the chatbot with the uploaded file, model, and temperature | |
| """ | |
| embeds = Embedder() | |
| with st.spinner("Processing..."): | |
| uploaded_file.seek(0) | |
| file = uploaded_file.read() | |
| vectors = embeds.getDocEmbeds(file, uploaded_file.name) | |
| chatbot = Chatbot(model, temperature, vectors) | |
| st.session_state["ready"] = True | |
| return chatbot |