import streamlit as st import tempfile import json def add_upload(choice): """ Provdies the user with choice to either 'Upload Document' or 'Try Example'. Based on user choice runs streamlit processes and save the path and name of the 'file' to streamlit session_state which then can be fetched later. """ if choice == 'Upload Document': # if 'filename' in st.session_state: # Delete all the items in Session state # for key in st.session_state.keys(): # del st.session_state[key] uploaded_file = st.sidebar.file_uploader('Upload the File', type=['pdf', 'docx', 'txt']) if uploaded_file is not None: with tempfile.NamedTemporaryFile(mode="wb", delete = False) as temp: bytes_data = uploaded_file.getvalue() temp.write(bytes_data) st.session_state['filename'] = uploaded_file.name st.session_state['filepath'] = temp.name else: # listing the options with open('docStore/sample/files.json','r') as json_file: files = json.load(json_file) option = st.sidebar.selectbox('Select the example document', list(files.keys())) file_name = file_path = files[option] st.session_state['filename'] = file_name st.session_state['filepath'] = file_path