amiguel commited on
Commit
bdbf77c
Β·
verified Β·
1 Parent(s): fe1fad9

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +15 -4
app.py CHANGED
@@ -67,10 +67,12 @@ if "file_processed" not in st.session_state:
67
  st.session_state.file_processed = False
68
  if "file_data" not in st.session_state:
69
  st.session_state.file_data = None
 
 
70
 
71
- # File processing function
72
  @st.cache_data
73
- def process_file(uploaded_file):
74
  if uploaded_file is None:
75
  return None
76
 
@@ -101,7 +103,7 @@ def process_file(uploaded_file):
101
  st.error(f"πŸ“„ Error processing file: {str(e)}")
102
  return None
103
 
104
- # Model loading function
105
  @st.cache_resource
106
  def load_model(hf_token):
107
  if not TRANSFORMERS_AVAILABLE:
@@ -164,9 +166,18 @@ if "model" not in st.session_state:
164
  model = st.session_state.get("model")
165
  tokenizer = st.session_state.get("tokenizer")
166
 
 
 
 
 
 
 
 
167
  # Process uploaded file once
168
  if uploaded_file and not st.session_state.file_processed:
169
- file_data = process_file(uploaded_file)
 
 
170
  if file_data:
171
  st.session_state.file_data = file_data
172
  st.session_state.file_processed = True
 
67
  st.session_state.file_processed = False
68
  if "file_data" not in st.session_state:
69
  st.session_state.file_data = None
70
+ if "last_uploaded_file" not in st.session_state:
71
+ st.session_state.last_uploaded_file = None
72
 
73
+ # File processing function with cache
74
  @st.cache_data
75
+ def process_file(uploaded_file, _cache_key):
76
  if uploaded_file is None:
77
  return None
78
 
 
103
  st.error(f"πŸ“„ Error processing file: {str(e)}")
104
  return None
105
 
106
+ # Model loading function (cached, but only loaded once)
107
  @st.cache_resource
108
  def load_model(hf_token):
109
  if not TRANSFORMERS_AVAILABLE:
 
166
  model = st.session_state.get("model")
167
  tokenizer = st.session_state.get("tokenizer")
168
 
169
+ # Check for new file upload and clear cache
170
+ if uploaded_file and uploaded_file != st.session_state.last_uploaded_file:
171
+ st.cache_data.clear() # Clear all cached data
172
+ st.session_state.file_processed = False # Reset processing state
173
+ st.session_state.file_data = None # Clear previous file data
174
+ st.session_state.last_uploaded_file = uploaded_file # Update last uploaded file
175
+
176
  # Process uploaded file once
177
  if uploaded_file and not st.session_state.file_processed:
178
+ # Use file name and size as a cache key to ensure uniqueness
179
+ cache_key = f"{uploaded_file.name}_{uploaded_file.size}"
180
+ file_data = process_file(uploaded_file, cache_key)
181
  if file_data:
182
  st.session_state.file_data = file_data
183
  st.session_state.file_processed = True