thigobr's picture
Add caching
a0378f2
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()