Spaces:
Sleeping
Sleeping
Update app.py
Browse files
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 |
-
|
|
|
|
|
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
|