|
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: |
|
|
|
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: |
|
|
|
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 |
|
|