import streamlit as st from QA_Bot import QA_Bot from PDF_Reader import PDF_4_QA from PIL import Image import cProfile import pstats from io import StringIO import time def print_time(start, end): # Initialize chat history if "messages" not in st.session_state: st.session_state.messages = [] st.session_state.messages.append({"role": "assistant", "content": f"Execution time: {end - start} seconds"}) # Streamlit app def main(): # Page icon icon = Image.open('td-logo.png') # Page config st.set_page_config(page_title="Q&A ChatBot", page_icon=icon, layout="wide" ) company_logo_path = 'td-logo.png' st.sidebar.image(company_logo_path, width=50) st.sidebar.title("Upload PDF") st.sidebar.write("Download Demo PDF file from Below....") with open("Kia_EV6.pdf", "rb") as file: btn = st.sidebar.download_button( label="Download PDF", data=file, file_name="Kia_EV6.pdf" ) uploaded_file = st.sidebar.file_uploader("Choose a PDF file", type="pdf") if uploaded_file is not None: # profiler = cProfile.Profile() # profiler.enable() st.sidebar.success("File uploaded successfully.") start_time = time.time() vector_store = PDF_4_QA(uploaded_file) end_time = time.time() print_time(start_time, end_time) start_time = time.time() QA_Bot(vector_store) end_time = time.time() print_time(start_time, end_time) # profiler.disable() # s = StringIO() # ps = pstats.Stats(profiler, stream=s).sort_stats('cumulative') # Print the profiling results to the StringIO object # ps.print_stats() # Get the profiling results as a string # profiling_results = s.getvalue() # Print the profiling results # st.session_state.messages.append({"role": "assistant", "content": profiling_results}) if __name__ == '__main__': main()