import os import streamlit as st from QA_Bot import QA_Bot from PDF_Reader import PDF_4_QA from PIL import Image from pathlib import Path # Streamlit app def main(): st.session_state.disabled = False st.session_state.visibility = "visible" # Page config st.set_page_config(page_title="Q&A ChatBot", layout="wide" ) st.sidebar.title("Upload PDF") # st.sidebar.write("Download Demo PDF file from Below....") # with open("docs/SamarthTandon_cv_2.pdf", "rb") as file: # btn = st.sidebar.download_button( # label="Download PDF", # data=file, # file_name="SamarthTandon_cv_2.pdf" # ) uploaded_file = st.sidebar.file_uploader("Choose a PDF file", type="pdf") api_input = st.sidebar.text_input( "Enter The API KEY 👇", label_visibility=st.session_state.visibility, disabled=st.session_state.disabled, type="password") if uploaded_file is not None and api_input is not "": save_folder = 'docs/' if not os.path.isdir(save_folder): os.makedirs(save_folder) save_path = Path(save_folder, uploaded_file.name) print("Save Path :{} , API Input {} iss".format(save_path,api_input)) with open(save_path, mode='wb') as w: w.write(uploaded_file.getvalue()) st.sidebar.success("File uploaded successfully",icon="✅") vector_store , documents = PDF_4_QA(save_path) st.sidebar.success("Vector database created successfully",icon="✅") QA_Bot(vector_store,api_input,documents) if __name__ == '__main__': main()